none
分散トランザクションを開始できないという現象について RRS feed

  • 質問

  • 2台ともにSQLSever2008R2, Win2008Serverの環境です。

    Aサーバー側にて コンポーネントサービス>コンピュータ>マイ コンピュータ>Distributed Transaction Coordinator>ローカル DTC のセキュリティ設定等を変更し、ファイアウォールの例外で、分散トランザクションコーディネータにチェックをつけています。(他のサイトを参考にした推奨設定)

    Bサーバー側のトリガは、UPDATE時にAサーバー側のテーブルの値を更新するという内容ですが、実際にトリガが実行されると、「リンクサーバ~~OLE DB プロバイダ "SQLNCLI" で分散トランザクションを開始できなかったので、この操作を実行できませんでした」というエラーが発生します。

    Aサーバーは設定変更後に再起動をしているため、設定値は反映されているものと思いますが、上記設定の他に必要な処理はありますでしょうか。

    よろしくお願いします。

    2013年1月15日 4:33

回答

  • ご参考までに以下連携します。

    この場合、Bサーバー側のトリガーで、Aサーバーのテーブルを更新しようとしているのでしたら、分散トランザクションコーディネーターはBサーバー側のものが利用されるのではないでしょうか?

    ですので、Bサーバー側にDTCの設定を行う必要があるのではないでしょうか?

     

    文脈からは、AサーバーのみDTCの設定をされているようでしたので、補足させていただきました。

    BサーバーにもDTC設定を行っていた場合は、その旨を追加でご連絡いただきますと幸いです。

    • 回答としてマーク TwSoft 2013年1月15日 8:57
    2013年1月15日 7:45

すべての返信

  • ご参考までに以下連携します。

    この場合、Bサーバー側のトリガーで、Aサーバーのテーブルを更新しようとしているのでしたら、分散トランザクションコーディネーターはBサーバー側のものが利用されるのではないでしょうか?

    ですので、Bサーバー側にDTCの設定を行う必要があるのではないでしょうか?

     

    文脈からは、AサーバーのみDTCの設定をされているようでしたので、補足させていただきました。

    BサーバーにもDTC設定を行っていた場合は、その旨を追加でご連絡いただきますと幸いです。

    • 回答としてマーク TwSoft 2013年1月15日 8:57
    2013年1月15日 7:45
  • ご教示、ありがとうございます。

    Bサーバーに設定が必要ですか!

    メッセージが「リンクサーバー"A"のOLEDBプロバイダー"SQLNCLI10"で分散トランザクションを開始できなかったので・・・・」であるため、Aサーバーを指摘しているものと考えておりました。

    Bサーバー設定後深夜に再起動し、明日結果を確認してみます。

    結果は明日投稿させていただきます。

    2013年1月15日 8:25
  • Bサーバーに設定後、再起動なしで正常に動作しました。

    ありがとうございました。

    2013年1月15日 8:58