- PR -

Windows Server 2003のMSDTCのネットワークアクセスが有効になりません。

1
投稿者投稿内容
新米技術者
会議室デビュー日: 2009/02/26
投稿数: 1
投稿日時: 2009-02-26 20:37
いつも拝見させていただいております。
こちらに質問しても良いのか悩みましたが、他に該当するカテゴリがなかったため、
書きこませていただきます。

【困っている現象】
 MSDTCのネットワークアクセスが有効になりません。

【環境】
 環境の構成は下記のとおりです。

 ○Webサービスサーバー(以後、WSサーバー)
  Windows Server 2003 R2 Standard Edition SP2 + IIS6.0
  用途:Web サービスが稼働しています。
    このWeb サービスは分散トランザクションを発行します。

 ○DBサーバー(以後、DBサーバー)
  Windows Server 2003 [各種] + SQLServer2000 SP4
  用途:Web サービスからアクセスされ、データの操作等が行われます。

 ここで、DBサーバーのOSが特定のバージョンにおいて、MSDTCのネットワークアクセス
が有効にならない問題が発生しています。

 アクセスしたWebサービス側のエラーログには下記のメッセージが表示されています。

 「分散トランザクション マネージャ (MSDTC) のネットワーク アクセスは
  無効になっています。 コンポーネント サービス管理ツールを使用して、
  MSDTC のセキュリティ構成でネットワーク アクセスの DTC を有効にして
  ください。」

 DBサーバーのSQLServerのSQLプロファイラにはエラーは発生していません。

 上記のことから、DBサーバーのOSのバージョンとSQLServerの組み合わせによって、
MSDTCが有効にならないのではないかと考えております。

【検証】
 私の方で確認できている環境をOK/NG別に記載させていただきます。

 OK環境
  Windows Server 2003 Standard SP1 + SQLServer2005EE(9.00.2047.00)
  Windows Server 2003 Enterprise SP1 + SQLServer2000(8.00.2039)
  Windows Server 2003 R2 Standard SP1 + SQLServer2005(9.00.1399.00)
  Windows Server 2003 R2 Standard SP2 + SQLServer2000(8.00.2039)

 NG環境
  Windows Server 2003 Standard SP1 + SQLServer2000(8.00.2039)
  Windows Server 2003 Standard SP2 + SQLServer2000(8.00.2039)

 いずれの環境も基本的には同じ設定を施しています。
 MicrosoftのKBなども調べいろいろ試行しましたが、NG環境の問題が解決できません。

【試行した内容】
 ○MSDTCの設定
  ネットワークDTCアクセス:ON
  トランザクションマネージャ通信
   受信を許可する:ON
   送信を許可する:ON
   認証を必要としない:ON
  そのほかはすべてOFF(いろいろONしてみたり試しました。)
  OK環境はこれだけで問題なく動作しています。
  ※ファイアウォールは無効にしています。

 ○Windowsの再起動

 ○MSDTCの設定後、SQLServerのサービスを再起動
  SQLServerのバージョンによっては、SQLServerのサービスが先に立ちあがってしまう
 と、MSDTCの設定を認識しないことがあるという情報がありましたので試してみました。

 ○Windowsコンポーネントの「ネットワークDTCアクセスの有効化」を設定
  (OK環境では必要なかった作業です)
  また、この変更後もWindowsの再起動を行っています。

 ○レジストリ内の設定値の確認
  (MSDTCの設定内容が正しくレジストリに反映されています。)

【考察】
  NG環境の共通点としては下記のとおりですので、この組み合わせはダメなのでは
 ないかと考えていますが、確証もなにもありません。

  OS:R2ではない
    Standard Edition
  DB:SQLServer2000 SP4

 手も足もでない状況に陥っていますのでどなたか解決方法をご存じの方が居られれば、
ご教授のほどよろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)