■ 現象
デバッグ中に、以下の例外が発生。 基本トランザクション マネージャとの通信が失敗しました。 MSDTC トランザクション マネージャーは、通信の問題のため、送信元のトランザクション マネージャーから トランザクションをプルできませんでした。 原因として、ファイアウォールが存在していて MSDTC プロセスの例外がないこと、 2 台のコンピューターが NetBIOS 名でお互いを識別できないこと、 または 2 つのトランザクション マネージャーのいずれかでネットワーク トランザクションのサポートが 有効になっていないことが考えられます。 (HRESULT からの例外: 0x8004D02B) 以下のコールスタックと同じ。http://incomesoft.net/baseTransactionMgrConctionErr.aspx
■ 発生環境
* OS : Win7 * VS : Visual Studio 2008 / C# / Framework 3.5 * DB : SQL Server 2008 R2
■ 原因
* 調査中 * メッセージから判断して、ファイアウォールでMSDTCプログラムのポートが許可されていない可能性がある
■ 対策(仮)
以下の手順で現象がかなり起こりづらくなった(ただし、たまにまだ起こる...) [1] コントロールパネルで、[windowsファイアウォール]を選択 [2][Windowsファイアウォールを介したプログラムまたは機能を許可する]を選択 [3] 「分散トランザクションコーディネータ」にチェックを入れる(ドメイン~プライベートにもチェックを入れる) [4] 「OK」押下http://www.bunkerhollow.com/blogs/matt/archive/2009/10/26/network-access-for-distributed-transaction-manager-msdtc-has-been-disabled.aspx
以下の設定も必要だと思う。 [1] [コントロールパネル]-[管理ツール]-[コンポーネント サービス]を選択 (または、[スタート]-[ファイル名を指定して実行する]を選択し「dcomcnfg」を入力) [2] [コンポーネント サービス] ウィンドウで、[コンポーネント サービス]-[コンピュータ]-[マイ コンピュータ]-[Distributed Transaction Coordinator]-[ローカル DTC]を選択。 [3] その状態で、右クリックして、プロパティをクリック。 [4] MSDTC タブの [セキュリティの構成] ボタンを押下。 [5] 以下を設定 * [ネットワーク DTC アクセス]にチェック。 * クライアント及び管理の [リモート クライアントを許可する]と[リモート管理を許可する]にチェック。 * トランザクション マネージャ通信の [受信を許可する]と[送信を許可する]にチェック。 * その下のラジオボタンは、[認証を必要としない]を選択。 * [XA トランザクションを有効にする]をチェック。http://naoko.wankuma.com/beginner/beginner_0010_winDbApp04.html
http://www.logistech.co.jp/techtips/msdtc.html
http://kametaro.wordpress.com/2008/04/17/biztalk-server%E3%81%AEmsdtc%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%80%80%EF%BC%88%E4%B8%BB%E3%81%ABsql-server%E3%81%AE%E5%88%86%E6%95%A3%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3/
参考資料
http://dev-hijiki.blogspot.jp/2006/09/system.htmlhttp://kkkw.hatenablog.jp/entry/20080812/1218515341
From Microsoft
http://support.microsoft.com/kb/839279http://msdn.microsoft.com/ja-jp/library/aa561924.aspx
http://support.microsoft.com/kb/250367/ja
関連記事
MSDTC に関するトラブル
例外「サーバー ‘XXXXX’ の MSDTC は使用できません。」が発生https://blogs.yahoo.co.jp/dk521123/29737310.html