Microsoft KB Archive/814116

From BetaArchive Wiki

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.

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