Microsoft KB Archive/814116

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

Article ID: 814116

Article Last Modified on 2/20/2007

-

APPLIES TO


 * Microsoft Message Queuing 2.0

-



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.



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:

http://support.microsoft.com/contactus/?ws=support

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> kb

ChildEBP RetAddr Args to Child 012ef854 77f5166a 77e4c4d1 000002a4 00000000 SharedUserData!SystemCallStub+0x4 012ef858 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+0x57 012ef91c 61abc447 00daa690 61aa28c2 00daa690 MQQM!QMDoCommitTransaction+0xc0 012ef924 61aa28c2 00daa690 61aa28b3 77d0ec9e MQQM!qmcomm_v1_0_S_QMCommitTransaction+0x9 012ef930 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+0x38 012efda8 77c989ee 00000011 00000000 61b3f32c RPCRT4!RPC_INTERFACE::DispatchToStubWorker+0x112 012efdcc 77c9cc1c 00dd46ac 00000000 61b3f32c RPCRT4!RPC_INTERFACE::DispatchToStub+0xa1 012efe04 77c9c7ff 000c1f60 00d97cf0 00dafdc0 RPCRT4!LRPC_SCALL::DealWithRequestMessage+0x2e1 012efe28 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

Keywords: kbhotfixserver kbqfe kbwin2ksp4fix kbwin2000presp4fix kbfix kbbug KB814116

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.