Question

What is the difference between a dead letter Queue and a back out queue?

In WebSphere MQ terms and in terms of Application Servers.

All J2EE/JEE app servers have a MQ Provider do they also have a construct of a Dead Letter Queue or is that something specific to WebSphere MQ?

My understanding of a back out queue is as follows:

If MQ is unable to deliver the message to a destination after a specified number of attempts it moves the message to the back out queue.

I do not have a clear understanding of a Dead Letter queue.

Appreciate any assistance.

Was it helpful?

Solution

The dead letter queue was always used in MQSeries (the last time I used MQ) to store messages that arrived at the queue manager but the queue didn't exist.

For example, if the message was address to queue manager X and queue Y, it would arrive via a channel at manager X.

If the receiver channel discovered there was no queue Y, it would be placed in the dead letter queue.

The backout queue, on the other hand, is more of an application-level thing (at least in terms of MQ). When an MQ client cannot process the message for some reason, it can back it out for later processing (back to it's original queue).

If it's backed out too many times (the threshold can be configured), it gets moved to the backout queue.

OTHER TIPS

Thanks for the answers. I also figured out that if the application is unable to move the message to the Back Out Queue (BOQ) for some reason, then an attempt is made to move the queue to the Dead Letter Queue (DLQ).

In our application it happened. There were some permission issues on the Back Out Queue, so the message could not be written to the BOQ and it ended up in the Dead letter Queue.

The Dead Letter Queue behaves the same as a Backout. I treat the Dead Letter Queue as the Crematorium for messages that cannot be recovered in the Error or Backout queues and have some last, non-business specific data that need be collected. Once the info is captured, the message is put down for good. Backout is good for analyzing messages for data that may need to be recovered to completely reprocess or be sent back to an application area for them to decision on.

A dead letter queue is also a local queue. If we trying to put a message from one queue to another queue and the message was not sent to the correct destination, at this time the meassage will go to a dead letter queue.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top