[MSMQ] トランザクション処理中にシステム時刻を変更すると、メッセージが送受信されない

この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
トランザクション処理中にシステム時刻を進めた場合、MSMQ がメッセージの送受信を停止することがあります。
原因
この問題は、Microsoft Message Queue Server (MSMQ) のスケジューラが最も緊急度の高いタスクに基づいてタスクを起動することが原因で発生します。システム時刻が起動時刻より後の時刻に変更された場合、キュー マネージャは起動時刻を調整しません。起動時刻が現在の時刻より前であるため、タスクの起動が行われることはありません。
解決方法
マイクロソフトでは、現在この問題を修正する修正プログラムを提供中ですが、修正プログラムはこの資料に記載された問題のみを修正することを目的としており、障害があったコンピュータに対してのみ適用することを推奨します。この修正プログラムは、今後さらにテストを受ける場合があります。この問題で深刻な影響を受けていない場合は、この修正プログラムが含まれる次の Windows 2000 Service Pack がリリースされるまで待つことを推奨します。

この問題を解決するには、Microsoft Product Support Services にお問い合わせのうえ、修正プログラムを入手してください。Microsoft Product Support Services の電話番号一覧およびサポート料金については、次の Web ページを参照してください。 : Microsoft Support Professional が、特定のアップデートを適用することにより問題が解決されると判断した場合、まれに通常サポート依頼にかかる料金が免除されることがあります。ただし、特定のアップデートの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。

修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。
 		日付         時刻     バージョン        サイズ      ファイル名                ----------------------------------------------------------                05-Feb-2003  23:58  5.0.0.766         281,360  Mq1repl.dll                04-Feb-2003  15:51  5.0.0.766          14,096  Mq1sync.exe                19-Dec-2002  21:37  5.0.0.764          75,408  Mqac.sys                05-Feb-2003  23:58  5.0.0.760         217,360  Mqads.dll                30-Oct-2002  16:43  5.0.0.761          25,360  Mqbkup.exe                       05-Feb-2003  23:58  5.0.0.750          76,560  Mqdscli.dll                05-Feb-2003  23:58  5.0.0.735          41,744  Mqdssrv.dll                21-Oct-2002  20:31  5.0.0.759          98,064  Mqmig.exe                        05-Feb-2003  23:58  5.0.0.759         265,488  Mqmigrat.dll                05-Feb-2003  23:58  5.0.0.740         222,480  Mqoa.dll                         05-Feb-2003  23:58  5.0.0.762           8,464  Mqperf.dll                       05-Feb-2003  23:58  5.0.0.767         425,744  Mqqm.dll                05-Feb-2003  23:58  5.0.0.765         102,672  Mqrt.dll                05-Feb-2003  23:58  5.0.0.759          70,928  Mqsec.dll                05-Feb-2003  23:58  5.0.0.762          23,824  Mqupgrd.dll                05-Feb-2003  23:58  5.0.0.767         110,352  Mqutil.dll                05-Feb-2003  23:58  5.0.0.748          64,784  Msmq.cpl

状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。

この問題を解決するためのモジュールは、Windows 2000 日本語版 Service Pack 4 以降に含まれております。
Windows 2000 日本語版の最新 Service Pack については、以下の Web サイトから入手できます。
詳細
Windows 2000 Datacenter Server 用修正プログラムの入手方法を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
265173 The Datacenter Program and Windows 2000 Datacenter Server Product
265173 Datacenter Program と Windows 2000 Datacenter Server


MSMQ スケジューラは、次回の起動時刻を保存します。新しいタスクは、タスクの起動が可能な最後の時刻 (タイムアウト時刻) を決定します。タイムアウト時刻が起動時刻より前の場合、システムは起動時刻をそれに応じて調整します。ただし、設定された起動時刻より後にシステム時刻を進めた場合、キュー マネージャは起動時刻を調整しません。起動時刻が現在の時刻より前であるため、タスクの起動が行われることはありません。

以下は、MSMQ の起動アルゴリズムです。
0:026> kbChildEBP RetAddr  Args to Child              012ef854 77f5166a 77e4c4d1 000002a4 00000000 SharedUserData!SystemCallStub+0x4012ef858 77e4c4d1 000002a4 00000000 012ef89c ntdll!ZwWaitForSingleObject+0xc 012ef8c8 77e4c352 000002a4 01499700 00000000 kernel32!WaitForSingleObjectEx+0xac 012ef8d8 61adb222 000002a4 01499700 61b4a9a8 kernel32!WaitForSingleObject+0xf 012ef8fc 61ae63bd 00dd46ac 012efae8 61b4a9a8 MQQM!CTransaction::InternalCommit+0x57012ef91c 61abc447 00daa690 61aa28c2 00daa690 MQQM!QMDoCommitTransaction+0xc0 012ef924 61aa28c2 00daa690 61aa28b3 77d0ec9e MQQM!qmcomm_v1_0_S_QMCommitTransaction+0x9012ef930 77d0ec9e 012ef968 00daac88 00000000 MQQM!qmcomm_R_QMCommitTransaction_Thunk+0xf555]012efd04 77d0d377 00000000 00000000 00dd46ac RPCRT4!NdrStubCall2+0x1a4 012efd20 77c983bd 00dd46ac 00daac88 00dd46ac RPCRT4!NdrServerCall2+0x17 012efd54 77c98942 61af4864 00dd46ac 012efdf8 RPCRT4!DispatchToStubInCNoAvrf+0x38012efda8 77c989ee 00000011 00000000 61b3f32c RPCRT4!RPC_INTERFACE::DispatchToStubWorker+0x112012efdcc 77c9cc1c 00dd46ac 00000000 61b3f32c RPCRT4!RPC_INTERFACE::DispatchToStub+0xa1 012efe04 77c9c7ff 000c1f60 00d97cf0 00dafdc0 RPCRT4!LRPC_SCALL::DealWithRequestMessage+0x2e1012efe28 77c91734 00d97d28 012efe40 000c1f60 RPCRT4!LRPC_ADDRESS::DealWithLRPCRequest+0x16b 012eff8c 77c97858 77c97688 00d97cf0 00000000 RPCRT4!LRPC_ADDRESS::ReceiveLotsaCalls+0x423 012eff90 77c97688 00d97cf0 00000000 00000000 RPCRT4!RecvLotsaCallsWrapper+0x9 012effb0 77c97f23 0008dbb0 77e556d0 000b0048 RPCRT4!BaseCachedThreadRoutine+0x9c 012effb8 77e556d0 000b0048 00000000 00000000 RPCRT4!ThreadStartRoutine+0x17 012effec 00000000 77c97f0c 000b0048 00000000 kernel32!BaseThreadStart+0x34 
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 814116 (最終更新日 2003-04-29) を基に作成したものです。
プロパティ

文書番号:814116 - 最終更新日: 02/26/2014 21:02:02 - リビジョン: 2.0

  • Microsoft Message Queue Server 2.0
  • kbnosurvey kbarchive kbhotfixserver kbqfe kbwin2000presp4fix kbfix kbbug KB814116
フィードバック