Messages are not sent or received if you change the system time during transaction processing

This article has been archived. It is offered "as is" and will no longer be updated.
SYMPTOMS
If you move the system time ahead during transaction processing, Microsoft Message Queuing, also known as MSMQ, 2.0 may stop sending and receiving messages.
CAUSE
This problem occurs because the Message Queuing 2.0 scheduler wakes up to perform tasks according to the most urgent task. If the system clock is moved ahead after the wake up, the queue manager does not adjust the wake up. The wake up is never reached, because it is earlier than the current time.
RESOLUTION

Service Pack Information

To resolve this problem, obtain the latest service pack for Microsoft Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
260910 How to Obtain the Latest Windows 2000 Service Pack

Hotfix Information

A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem. This fix may receive additional testing. Therefore, if you are not severely affected by this problem, Microsoft recommends that you wait for the next Windows 2000 service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
 		Date         Time   Version            Size    File Name                ----------------------------------------------------------                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				

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft Windows 2000 Service Pack 4.
MORE INFORMATION
For additional information about how to obtain a hotfix for Windows 2000 Datacenter Server, click the article number below to view the article in the Microsoft Knowledge Base:
265173 The Datacenter Program and Windows 2000 Datacenter Server Product


The Message Queuing 2.0 Scheduler saves the next wake up time. A new task determines the latest time that the wake up can be performed (timeout). If the timeout is earlier than the wake up time, the system adjusts the wake up accordingly. However, if the system clock is moved ahead after the wake up time is set, the queue manager does not adjust the wake up time. The wake up is never reached, because it is earlier than current time.

The following is the Message Queuing 2.0 wake up algorithm:
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 
Properties

Article ID: 814116 - Last Review: 02/27/2014 21:16:53 - Revision: 2.4

  • Microsoft Message Queuing 2.0
  • kbnosurvey kbarchive kbhotfixserver kbqfe kbwin2ksp4fix kbwin2000presp4fix kbfix kbbug KB814116
Feedback