Проблема создания транзакции в пакете служб SSIS

12

Я работаю над пакетом, который должен использовать транзакцию, но в настоящее время я получаю следующую ошибку:

SSIS package "CATS-Package.dtsx" starting.
Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning.
Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001401A at CATS-Package: The SSIS Runtime has failed to start the distributed transaction due to error 0x8004D01B "The Transaction Manager is not available.". The DTC transaction failed to start. This could occur because the MSDTC Service is not running.
SSIS package "CATS-Package.dtsx" finished: Failure.

Вот что я знаю до сих пор:

  • Пакет 2012
  • Я бегу в развертывании пакета
  • Для свойства TransactionOption установлено значение Required
  • Запуск против экземпляра 2008 R2
  • Я могу создать распределенную транзакцию вручную на экземпляре, и в соответствии с программой просмотра событий MSDTC работает.
  • MSDTC имеет следующие настройки

введите описание изображения здесь

Может ли кто-нибудь указать направление, чтобы найти дополнительную информацию.

Изменить: Один из шагов, которые я прочитал, сказал, чтобы запустить DTC на локальном компьютере, на котором запущен пакет, а также на сервере, содержащем экземпляр. Как только я это сделал, я получил новую ошибку:

Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001402C at CATS-Package, Connection manager "connectionName": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D024 "The transaction manager has disabled its support for remote/network transactions.".
Error: 0xC0202009 at CATS-Package, Connection manager "connectionName": SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x8004D024.
Error: 0xC00291EC at Execute SQL Task - Max Product ID, Execute SQL Task: Failed to acquire connection "connectionName". Connection may not be configured correctly or you may not have the right permissions on this connection.

Важной частью является The transaction manager has disabled its support for remote/network transactions. то, что я что-то упустил в разрешениях? Примечание: Allow Remote Clientsтакже был проверен.

Я видел упомянутый MSDTC ping (в том числе в комментариях ниже), но когда я смотрел на него, я не совсем уверен, что с ним делать.

Кеннет Фишер
источник
1
Нашел более подробную информацию, которая фактически показывает некоторые шаги по устранению неисправностей для DTC и SSIS: richardlees.blogspot.com/2010/01/…
1
Какой метод вы используете для установки транзакции в пакете служб SSIS?
Зейн
1
Проверьте журнал событий приложения на наличие ошибок из msdtc, получите MSDTC ping support.microsoft.com/en-us/kb/918331
Spörri
@ Spörri Я не видел ничего в журнале событий на клиенте или сервере. Я посмотрел на MSDTC, но он выглядит (на первый взгляд) над моей головой.
Кеннет Фишер
1
@KennethFisher Я только что имел в виду servername в тесте powershell, если вы получили информацию назад, то RPC открыт.
Боб Климс

Ответы:

10

Я решил проблему. В нескольких местах я читал, что DTC нужно запускать на исходном компьютере, а также на месте назначения. Таким образом, на моем месте моя рабочая станция и сервер включены.

Как только я включил MSDTC, я получил новую ошибку:

Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001402C at CATS-Package, Connection manager "connectionName": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D024 "The transaction manager has disabled its support for remote/network transactions.".
Error: 0xC0202009 at CATS-Package, Connection manager "connectionName": SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x8004D024.
Error: 0xC00291EC at Execute SQL Task - Max Product ID, Execute SQL Task: Failed to acquire connection "connectionName". Connection may not be configured correctly or you may not have the right permissions on this connection.

С важной частью The transaction manager has disabled its support for remote/network transactions.

Оказавшись там, я провел дополнительное исследование и, наконец, понял, что не настроил свой локальный код неисправности, чтобы разрешить доступ к сети и т. Д. После того, как я настроил его, чтобы разрешить доступ по сетевому DTC, разрешить удаленные подключения и разрешить выходные соединения, все работало гладко.

введите описание изображения здесь

Я не уверен, что это минимальные разрешения, необходимые для локального подключения, но, похоже, это.

Кеннет Фишер
источник