Выполнение пакета служб 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

Другие вопросы по тегам