ネットワーク上にある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からトリガーが発動されないでしょうか?
dcomcnfg
を使用して、ソースマシンとターゲットマシンの両方でMSDTCを構成しましたか?
デフォルトでは、分散トランザクションコーディネーターは分散トランザクションを許可しません。
管理者としてdcomcnfg
を実行して構成し、状況に応じて適切なオプションを構成する必要があります。