Проблема створення транзакції в пакеті 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 встановлено на обов'язкове
  • Працює проти екземпляра R2 2008 року
  • Я можу створити розподілену транзакцію вручну на екземплярі і відповідно до переглядача подій 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 (у тому числі в коментарях нижче), але коли я переглянув це, я не зовсім впевнений, що з ним робити.


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 Я просто мав на увазі ім'я сервера в тесті на перекладі повноважень, якщо ви отримали інформацію назад, тоді 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, щоб дозволити мережевий доступ і т.д.

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

Я не впевнений, що це мінімальні дозволи, необхідні для локального з'єднання, але, здається, це є.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.