BUG: Message Problems with MSMQ Connector Processing (182121)
The information in this article applies to:
- Microsoft Message Queue Server (MSMQ) 1.0
This article was previously published under Q182121 SYMPTOMS
After a restart of the Microsoft Message Queue Server (MSMQ) Queue Manager
on a computer with a connector service, any of the following may occur:
- The connector may not see the messages that were left in the queue.
- The connector may not be able to read the messages in the queue,
even though they appear in Windows NT Performance Monitor.
- The connector receives messages out of order.
CAUSE
The first problem described above occurs when the messages are not in the
connector queue after Queue Manager initialization. The messages are
returned to the temporary queue and moved back to the connector queue. The
recovery process may take a significant amount of time to determine the
connector queue and place the messages there, so that they can be read by
the application.
The second problem described above occurs if, after recovery, the message
cannot be read from the connector queue. The message can be seen in the
performance counter, but when the application tries to read it, it stops
responding. This is because Transactional messages are stored in two steps.
The first step is to store the message on the disk and update the logger.
The second step allows the application to read the message. There is a
problem in the logic of the first step that prevents the second step from
happening.
In the third case described above, you should understand that, during
recovery, the messages are ordered according to the packet allocation time.
For the connector, it is possible for packets to be out of order
chronologically.
STATUS
Microsoft has confirmed this to be a problem in Microsoft Message Queue
Server version 1.0.
A supported fix is now available, but has not been fully regression-
tested and should be applied only to systems experiencing this specific
problem. Unless you are severely impacted by this specific problem,
Microsoft recommends that you wait for the next Service Pack that contains
this fix. Contact Microsoft Technical Support for more information.
WORKAROUND
To work around these problems, obtain the hotfix mentioned in the STATUS
section of this article. With the hotfix installed, MSMQ returns the
message directly to the connector queue during recovery. To properly track
this, a field was added to the end of the packet containing the GUID of the
destination connector queue.
If the Foreign Connection Network (CN) is deleted (the connector queue is
no longer valid), MSMQ identifies this case during the validation process.
In such a case, MSMQ closes the queue and deletes all the messages.
However, MSMQ does not send any negative acknowledgment (nack), because the
connector queue is marked as a temporary queue in the driver. The sender
will receive Time To Reach Queue expiration nack.
Modification Type: | Minor | Last Reviewed: | 9/22/2005 |
---|
Keywords: | kbHotfixServer kbQFE kbbug kbfix KB182121 |
---|
|