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アクセス]チェックボックスをチェックし,[トランザクション マネージャ通信]の

にそれぞれチェックを入れます*2

Portの設定

MSDTCは標準で135番Portを使用するので,ファイアウォール等を使用している場合には必ず開けておく.
開発環境では,通常の(プログラマの)マシンOSはWindows XPで,Windowsファイアウォールが有効になっており,既定では135番Portは閉じていました.開け方は……上記リンクを見れば分かりますよね.


ここまでを,アプリが動作するサーバ/データベースサーバそれぞれに設定すればOKです.
最小特権の原則を忠実に守るなら,MSDTCサービスのSetupはより細かくチューニングすべき……かな?なんか違ってたら教えてください.

*1:ちなみに自分はmmc.exeを使うのが好みです.よく使うもの(サービスとか)をまとめてショートカットにしておくと便利

*2:XA トランザクションはちょっと不明,ここをチェックしなくても動作するマシンもあるみたい,切り分けはできてません