Я пытаюсь получить данные из БД MS Access (.accdb) в фабрике данных Azure через соединение ODBC, используя локальную среду выполнения интеграции.При первом запуске конвейера копирования данных он выполняется без проблем, и данные передаются.К сожалению, при каждом следующем выполнении конвейера передача данных завершается неудачей.
Если я остановлю и перезапущу среду выполнения Microsoft Integration, конвейер выполнится в первый раз без проблем.После первого раза во все последующие периоды он снова завершается сбоем, пока я не перезапущу среду выполнения интеграции еще раз.
Однако, когда я проверяю строку подключения на вкладке диагностики времени выполнения Microsoft Integration, кажется, что она работает без проблем.независимо от того, произошел ли сбой конвейера.
Строка подключения ODBC:
Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\path\\filename.accdb;
И метод аутентификации является анонимным.
Код ошибки:
{
"errorCode": "2200",
"message": "ErrorCode=UserErrorFailedToConnectOdbcSource,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=,Source=Microsoft.DataTransfer.Runtime.GenericOdbcConnectors,''Type=System.Data.Odbc.OdbcException,Message=,Source=,'",
"failureType": "UserError",
"target": "pipeline name"
}
Моя работа заключается в том, чтобы периодически перезапускать Integration Runtime с помощью скрипта Power Shell (см. Ниже).Однако это всего лишь хак, поскольку все другие конвейеры, которые не используют соединение ODBC с базами данных Access и используют предварительные соединения SQL, работают без перезапуска службы.
Restart-Service DIAHostService -Force