tags:

views:

273

answers:

1

MSMQ maintains a type of queue called "Outgoing Queues". These queues are used by the MSMQ service to hold messages destined for servers that it cannot contact when the message is generated. These are special, temporary queues that are separate from the normal Public and Private queues.

I've recently encountered a scenario where some messages destined for the local system (i.e. the same computer that generated the message) end up in one of the "Outgoing Queues". When drilling into the Outgoing Queues with the Management Console one can see that the destination has the correct path information for the local system and the queue. In this particular scenario, the messages that are held in these "Outgoing Queues" are never delivered to the correct queue. The remain there, effectively lost.

Some messages destined for queues on the local system, including ones for the same queues listed in the "Outgoing Queues", are delivered just fine. When messages end up in the "Outgoing Queues" seems to be random. That is: some will work fine, others will not.

The queues that seem to be afflicted by this are all non-transactional. Transactional queues always seem to receive messages. At least, the application sending the message has not captured an exception for transactional queues.

What would cause MSMQ to place messages destined for queues on the local system into the "Outgoing Queues"? Is it that the MSMQ service cannot contact itself to send the message? The system is pretty busy (80%+ CPU usage). Could MSMQ be starved for resources when it does this?

A: 

I've seen issues with MSMQ in the past in relation to DNS. Try putting a fully qualified DNS entry in the C:\Windows\System32\Drivers\etc\HOSTS file to see if it helps.

Not sure why you'd have a DNS issue here, but it may help.

Clarence Klopfstein
I don't think DNS is the issue. We generally create queue instances with the FQDN as part of the connection string. Pinging by name works when items are stuck in the "Outgoing Queue". So it seems like MSMQ should pickup and begin sending, but it doesn't.
Mike Chess