web-dev-qa-db-ja.com

クラスター上のリンクサーバーとMSDTC

ネットワーク上にある2つのインスタンス間にリンクサーバーを設定しようとしています。これまで何度も問題なくこれを実行しましたが、今回は次のエラーが繰り返し発生します。

OLE DB provider "SQLNCLI10" for linked server "MYLINKEDSERVERNAME" returned message 
    "The transaction manager has disabled its support for remote/network transactions.".
Msg 7391, Level 16, State 2, Procedure tableName_InsertUpdate, Line 57
The operation could not be performed because OLE DB provider "SQLNCLI10" for linked 
    server "MYLINKEDSERVERNAME" was unable to begin a distributed transaction.

クラスタの一部として、サーバー 'A'、SQL2008 R2ボックス、サーバー 'B'にはSQL2012ボックスがあります。

サーバーAにリンクサーバーをセットアップしました。単純なselect * from [linkedserver].dbname.dbo.tableは正しく動作します。

私にとってうまくいかないのは、SPサーバーAでDB 'B'のテーブルに挿入しようとするとアクティブになるDB 'A'のテーブルのトリガーです。

クエリが機能する理由について誰かが何か考えを持っていますが、SPからトリガーが発動されないでしょうか?

2
dougajmcdonald

dcomcnfgを使用して、ソースマシンとターゲットマシンの両方でMSDTCを構成しましたか?

デフォルトでは、分散トランザクションコーディネーターは分散トランザクションを許可しません。

管理者としてdcomcnfgを実行して構成し、状況に応じて適切なオプションを構成する必要があります。

enter image description here

1
Max Vernon