web-dev-qa-db-ja.com

SSISパッケージでトランザクションを作成する際の問題

トランザクションを使用する必要があるパッケージで作業していますが、現在次のエラーが発生しています。

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には次の設定があります

enter image description here

誰もが追加情報を見つけるための方向を指すことができます。

編集:私が読んだ手順の1つは、パッケージを実行しているローカルマシンとインスタンスを保持しているサーバーで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について(以下のコメントを含めて)言及しているのを見たことがありますが、それを見て、どうすればよいのかよくわかりません。

12
Kenneth Fisher

私は問題を解決しました。ソースマシンと宛先の両方で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を構成していないことに気づきました。ネットワークDTCアクセスを許可するように構成すると、リモート接続を許可し、出力接続を許可するすべてがスムーズに機能しました。

enter image description here

これがローカル接続に必要な最低限の権限であるかどうかはわかりませんが、そうであるようです。

10
Kenneth Fisher