Выполнение пакета служб SSIS в качестве задания SQLAgent
У меня есть задание SQLIS 2008 SSIS, которое выполняет некоторые Win 32 EXE-файлы. Эта работа работает нормально, когда я выполняю работу через BIDS (в Windows 2008 box). Теперь я развернул пакет в базе данных MSDB и пытаюсь выполнить его как задание SQLAgent.
Когда я делаю это, работа завершается сбоем и выдает сообщение об ошибке во время выполнения Win 32 EXE. Я могу запустить exe из командного файла на том же сервере. Но когда задание агента SQL Server пытается выполнить, оно выдает ошибку ниже
Код: 0xC0029151, Код завершения процесса был "1", а ожидаемый - "0". Ошибка завершения DTExec: выполнение пакета вернуло DTSER_FAILURE (1).
Есть идеи?
2 ответа
Мое предположение, что сервер является 64-битным сервером, да? Если это так, агент будет работать с SSIS в 64-битном режиме, что приводит к несовместимости с исполняемыми файлами.
В задании агента на вкладке "Параметры выполнения" установите флажок "Использовать 32-разрядную среду выполнения", и все должно быть в порядке.
Вопрос помечен как 2008, но, если я правильно помню, задачи агента SQL 2005 типа пакета служб интеграции SQL Server не имели возможности работать в 32-разрядном режиме, и по умолчанию все выполнялось в 64-разрядном режиме. Чтобы обойти это, нужно было запустить команду ОС и вызвать 32-битный dtexec.exe, который, скорее всего, был найден в C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
Это также необходимо изменить на BIDS. Обозреватель решений> Щелкните правой кнопкой мыши Свойства проекта> Свойства конфигурации> Параметры отладки>Run64BitRuntime - False