Message Queuing in workstation mode does not receive acknowledgements (328999)



The information in this article applies to:

  • Microsoft Message Queuing 2.0

This article was previously published under Q328999

SYMPTOMS

Microsoft Message Queuing in workstation mode may not receive acknowledgements (ACKs). This problem only occurs when opening a remote transactional queue that does not exist. However, the open message and the send message to the queue seem successful.

Note Acknowledgements are confirmations that messages that are sent are received.

RESOLUTION

The multiple negative acknowledgement messages (NACKs) is a problem that occurs because of a race condition between Session ACKs and Order ACKs that causes the destination computer to return to the source. If the Order ACK arrives before the Session ACK, then the Session ACK is ignored. The lost NACK occurs because of the race nature of this bug. If the Session ACK arrives before the Order NACK, then the NACK is accepted. Typically, the Session ACK arrives later because the receiver delays the Session ACK to accumulate more ACKs in one Session ACK and therefore reduce the overall traffic.

This problem will not be fixed, not even for Microsoft .NET. Internally, the exactly-once delivery code is almost completely decoupled from the Session Management code. This has many benefits, but it also causes bugs like this. Consider the exactly-once delivery code as an internal application that is on top of the Session Management code. This problem is not high priority because it is not a mainstream scenario, it does not affect performance, and it does not cause memory leaks. An application that opens and sends messages to a non-existent remote transactional queue is not a common scenario in a production environment.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MajorLast Reviewed:4/20/2005
Keywords:kbbug KB328999 kbAudDeveloper kbAudITPRO