tags:

views:

343

answers:

2

I'm developing a system which will be posting messages onto a remote MSMQ queue. If messages cannot be delivered or received then I would like to attempt a resend at a later time.

One approach would be to list all the System Dead Letter Queue (DLQ) messages on the sending computer and resend any relevant ones. Another approach would be to use an admin queue to receive any negative acknowledgments and resend all messages on this queue.

Is one approach better than the other ?

One advantage I would see is that only relevant messages will be present on the admin queue, while the system DLQ can have messages from other queues.

Are there any scenarios where failed messages would go to the DLQ but not the admin queue ?

Thanks K.

+1  A: 

I will suggest to resend from DLQ as it can become generalized solution and handle messages from different Queue to resend them.

Also DLQ is a system queue and there is guarantee that if message didn't delivered to respective queue it will be available in DLQ.

Morbia
A: 

Er. " If messages cannot be delivered or received then I would like to attempt a resend at a later time "

isnt that what MSMQ is supposed to do?

James Anderson
MSMQ will only keep trying to send until a timeout (TTRQ or TTBR) is reached. While these can be set to Infinite, this prevents any errors being detected if there is a connection/setup problem.
canice