MSDTCの初期設定まとめ
ずいぶん昔にMSDTCに関する日記を書きました(http://d.hatena.ne.jp/kurip/20051223).といっても初心者丸出しの,うまく動かないよーってへたれの内容だったんですが,なにを勘違いしたのか検索サイトからこのキーワードで自分の日記に誘導される人が多いことに気付きました.
そんなわけで大変心苦しかったのですが,先日のプロジェクトでMSDTCを使用し本番環境へのセットアップもしたので,ひとまずまとめておこうと思いました.この内容なら少しはお役に立てるかな?今となってはあまり需要がないかもしれませんが.
参考リンク
いきなりですが(^^;;
http://support.microsoft.com/kb/839279
もうこれさえ読めば十分です.これから書くのは上記リンクを参考にしながら自分のやった手順を書いてみただけ,あまり意味ないかも(^^;;
MSDTCサービスの動作アカウントの確認
当然ですが,Distributed Transaction Cordinatorサービスが動作していないといけません.また動作アカウントは規定値(NT Authority\NetworkService)にしておきます.
MSDTCサービスのSetup
[Start]→[管理ツール]→[コンポーネントサービス]*1を起動し,[コンピュータ]→[マイ コンピュータ]まで開いて右クリックしてプロパティ.[MSDTC]タブを選んでセキュリティの構成ボタンを押します.
[ネットワークDTCアクセス]チェックボックスをチェックし,[トランザクション マネージャ通信]の
- 受信を許可する
- 送信を許可する
- 認証を必要としない
- XA トランザクションを有効にする
にそれぞれチェックを入れます*2.
Portの設定
MSDTCは標準で135番Portを使用するので,ファイアウォール等を使用している場合には必ず開けておく.
開発環境では,通常の(プログラマの)マシンOSはWindows XPで,Windowsファイアウォールが有効になっており,既定では135番Portは閉じていました.開け方は……上記リンクを見れば分かりますよね.
ここまでを,アプリが動作するサーバ/データベースサーバそれぞれに設定すればOKです.
最小特権の原則を忠実に守るなら,MSDTCサービスのSetupはより細かくチューニングすべき……かな?なんか違ってたら教えてください.