コンテンツへスキップ

Failed to obtain TransactionDispenserInterface: Result Code = 0x8004d01b

2009年1月14日

Windows Server 2003
SQL Server 2000 SP3 クラスタ

メインのDBサーバーなんだけど分散トランザクションができなくなった!
きっかけは昨晩のハード保守でのDBサーバー再起動だろう。

MSDTC(リンクサーバー)を利用している夜間バッチやらBizTalkのSQLアダプタやらで不具合続出して困った・・・。

クライアントでは
サーバー : メッセージ 8501、レベル 16、状態 3、行 1
サーバー ‘サーバー名’ の MSDTC は使用できません。

サーバーでは
イベントログにはコレといったエラーや警告は出ていない。
クラスタアドミニストレータでも全く異常無し。
サービスが停止しているということも無い。
ただ、最後に見たSQL Serverログに
Failed to obtain TransactionDispenserInterface: Result Code = 0x8004d01b

SQL Serverサービスを再起動すりゃ治りそうだなと思って
フェールオーバー&フェールバックしてみたら、とりあえずは復旧した。

今回は富士通サポートデスクにご協力いただきました。
MSSQLの契約は無いんだけれども、OS絡みということでなんとか・・・。
ありがとうございました。

Windows Server 2003 ベースのコンピュータを起動する SQL Server サービスの長い時間がかかる
http://support.microsoft.com/kb/911845/ja
とか
MSDTCが起動する前にMSSQLが起動しちゃうと、MSSQLがトランザクションマネージャから応答が得られずXACT_E_TMNOTAVAILABLE(0x8004d01b)となってしまう。
前者はSQL ServerのSP4を、後者は Windows Server 2003 COM+ Rollup Package4 またはSP1&Rollup Package5以降の適用で治るっぽい。

いつも通りの手順で起動したはずなんだけれども、
SQL Serverのスタートアップで問題出ちゃったんだなぁ・・・。
スタートアップ時のログ確認するようにせにゃならんな。

更新プログラムの適用も検討しないとなぁ。

初めて目の当たりにした現象。
発覚してから復旧までに時間掛かった。
やれやれ。

From → SQL

One Comment
  1. 松太郎 permalink

    Availability of Windows Server 2003 COM+ 1.5 Rollup Package 4http://support.microsoft.com/kb/895250/en-us–When Microsoft SQL Server becomes available online before Microsoft Distributed Transaction Coordinator (MSDTC) is online in an Active / Active Microsoft Cluster Server (MSCS) cluster environment, you may receive an error message that is similar to the following: Failed to obtain TransactionDispenserInterface: XACT_E_TMNOTAVAILABLE. –メッセージも条件も一致してるからコレだねぇ。確かにMSSQLクラスタはアクティブ/アクティブ環境。このRollup Package 4だが、WebSphere MQでの件(http://kame-taro.spaces.live.com/blog/cns!CD806281181610EF!828.entry)についてでも書いたが、WS2003SP1に含まれているけれども一部含まれていなかったりと注意が必要。まあ、最新のSPを当てちゃえばいいんだろうけど。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。