0
votes

Was running a system that uses multiple msmq's on the same machine, ran fine for about a day then I get the error about Insufficient resources when trying to post a message to one of the queues. Investigated via this blog post:

http://blogs.msdn.com/b/johnbreakwell/archive/2006/09/18/761035.aspx

I don't see anything in there about investigating the dead-letter queue.

Looked at the queues, realized the only queue that had any messages left in it was the transactional dead-letter queue, purged it, now the app(s) run again and can post messages to private queues.

I guess my main question is explain to me the trans dead-letter queue and how I can manage it.

thanks.

2

2 Answers

2
votes

There will be nothing in the blog about the Dead Letter Queue as it is just a queue, like any other.

You have messages in the DLQ because you have enabled Negative Source Journaling in your application. An error condition has meant the original messages have died and ended up in the DLQ, as requested by your application. Ideally, if you are using the DLQ, you have a separate thread looking for messages in it.

You should have monitoring enabled on the total number of messages in the server so that you get an early alert when messages start piling up somewhere unexpectedly.

Cheers
John Breakwell

1
votes

Ran into this issue today with our MSMQ/NServiceBus setup. From what I understand, manual queue purges will move messages to the Transaction Dead Messages queue. Clearing this queue out resolved the problem for us.