FIX: MSMQ Logger Error Processing Causes Log Data Loss at Hardware Failures

This article was previously published under Q254294
This article has been archived. It is offered "as is" and will no longer be updated.
When you experience a system failure, the Message Queuing (MSMQ) transaction log files can corrupt. When you restart the MSMQ service, the service fails and the following two error messages are displayed in the event log from the MSMQ service:
2078 "Unable to recover checkpoint for the ... checkpoint"
2053 "Unable to initialize..."
To provide transaction consistency, MSMQ logs transaction status changes and incoming messages to a log file (QMLog), and then creates a checkpoint that is written to a separate file. The checkpoint file contains version information, and the QMLog is updated to reference that version of the checkpoint file as being the current checkpoint.

During MSMQ service initialization there is a recovery phase for transactional messages where the QMLog file is read. It contains the version information for the most current checkpoint entry in the checkpoint files, and then uses the current checkpoint file to perform recovery of transactional messages.

If there was a failure between the time that the checkpoint file was created and when the QMLog was updated with the new version, then the QMLog file refers to the earliest checkpoint file version and recovery fails.
To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
260910 How to Obtain the Latest Windows 2000 Service Pack
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 Windows 2000 Service Pack 1.

Article ID: 254294 - Last Review: 02/28/2014 00:31:06 - Revision: 1.2

  • Microsoft Message Queuing 2.0
  • kbnosurvey kbarchive kbproductlink kbbug kbfix kbmsmq200fix kbwin2000sp1fix KB254294