Почему мое соединение ODBC не работает при запуске нагрузки SSIS в Visual Studio, но не при запуске одного и того же пакета с помощью утилиты Execute Package Utility - программирование

Почему мое соединение ODBC не работает при запуске нагрузки SSIS в Visual Studio, но не при запуске одного и того же пакета с помощью утилиты Execute Package Utility

Я работаю над загрузочным пакетом Data Mart в SSIS 2012. При попытке выполнить пакет в Visual Studio я получаю эту ошибку:

"Метод метода AcquireConnection для диспетчера соединений Data Ошибка Warehouse.ssusr с кодом ошибки 0xC0014009".

Когда я проверяю подключение Connection Manager Data Warehouse.ssusr, я вижу, что он проходит.

Когда я выполняю пакет за пределами Visual Studio с помощью утилиты Execute Package Utility, пакет запускается.

Я не понимаю, что происходит.

Пакет также отказывается запускаться с использованием расписания заданий SQL Server, если это имеет какое-либо отношение к чему-либо.

4b9b3361

Ответ 1

Сделаем некоторые предположения здесь, но я собираюсь предположить, что это проблема с 32 и 64 бит. Чтобы проверить, попробуйте эти две команды из командной строки (Windows Key, R, cmd.exe или Start, Run, cmd.exe)

"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx
"C:\Program Files\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx

Первый будет запускать ваш пакет в 32-битном режиме, а второй - в режиме 64 бит. Это будет иметь значение, так как ваши драйверы и любые созданные вами DSN будут отображаться только в мире с 32/64 бит.

Фиксация SSDT

Как только вы определили, какая из них вам понадобится, возможно, 32-разрядная версия, вам нужно будет убедиться, что ваш проект использует подходящее время выполнения. Щелкните правой кнопкой мыши на своем проекте и выберите "Свойства", а затем перейдите на вкладку "Отладка" в разделе "Свойства конфигурации".

Debugging Tab, Run64BitRuntime

После инвертирования значения Run64BitRuntime я предполагаю, что ваш пакет будет работать из SSDT.

Исправление агента SQL

Вам нужно будет отредактировать существующее задание SQL-агента, чтобы изменить сложность шага задания. Это будет отображаться на вкладке "Конфигурация", а затем на вкладке "Дополнительно". Установите/снимите отметку с 32-разрядной среды выполнения.

agent 32bit tab

Ложь и обман

Наблюдатели могут видеть, что dtexec предлагает опцию /X86. Не верьте. Единственный способ получить правильную бит-версию - это явно вызвать правильный файл dtexec.exe. Документация даже говорит о многом, но никто не читает документацию.

Этот параметр используется только агентом SQL Server. Этот параметр игнорируется если вы запустите утилиту dtexec в командной строке.