これらのトランザクション実装は、MSDTCが起動されていないと正常に動作しない。
MSDTCは Distributed Transaction Coordinator という名前でWindowsサービスに登録されている。
MSDTCが起動されていない場合は、以下のようにしてMSDTCが自動で起動するよう設定する。
- [ コントロール パネル ] - [ 管理ツール ] - [ サービス ] を開く。
- サービスの [ Distributed Transaction Coordinator ] という項目を右クリックし、プロパティを開く。
- [ 全般 ]タブの中にある [ スタートアップの種類 ] を [ 自動 ] に変更する。
- [ 開始 ] ボタンをクリックする。
- [ OK ] ボタンをクリックする。
これで正常にトランザクション処理が行われる。
また、SQL Server 2005のドキュメントの [ 2.5.3 Windows で MS DTC が一部無効になっている ] という項目を見ると、MS DTCを完全に有効にする手順が記載されている。
分散トランザクションを使用するリンク サーバー、分散クエリ、およびリモート ストアド プロシージャが、この問題の影響を受ける場合があります。
このような問題を回避するには、SQL Server 2005 がインストールされているサーバーで MS DTC を完全に有効にする必要があります。
と書いてあるので、そういう問題に遭遇した場合は完全に有効にすればいい(遭遇しなきゃしなくていい)ってことかな。たぶん。
トラックバックURL↓
http://csharper.blog57.fc2.com/tb.php/27-844ffc41