When you send a Microsoft Message Queuing 3.0 message between two servers that are running Microsoft Windows Server 2003 with Service Pack (SP1), the message may not be acknowledged. The receiving server seems to be unable to store the incoming message.
Specifically, the following problems occur:
The sending server keeps sending a transactional message after the 30-second default resend interval. The sending server does not increment the order acknowledgement.
The receiving server returns the same order acknowledgement and seems to be unable to store the message for unknown reasons.
The sending server closes the connection and then reconnects. However, the sending server never tries to resend the message.
This problem occurs because of a race condition. A token is used to identify the location of a message in the message list. The race condition allows for this token to be reused for a new message before the old message is removed from the list.
How to obtain the latest service pack for Windows Server 2003
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
You must install Windows Server 2003 SP1 before you apply this hotfix.
You must restart the computer if the files that are being updated are running when you apply this hotfix.
Hotfix replacement information
This hotfix does not replace any other hotfixes.
The English version of this hotfix has the file attributes (or later file attributes) 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.
When a message arrives in Message Queuing 3.0, the message is put in a list, and an asynchronous write is issued. When the write finishes, the process finds the message in the list and then starts the next step for the message.
Therefore, when the write for a new message finishes, the process looks for the new message in the list. However, the process finds the old message instead. Because the write for the new message never appears to finish, the process stops processing the new message and all the following messages.
New messages keep being added to the list, but the new messages are never acknowledged. The new messages are never acknowledged because the write for the first message in the list never appears to finish.
For more information about how hotfix packages are named, click the following article number to view the article in the Microsoft Knowledge Base: