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.
The backout queue feature that is included with IBM WebSphere MQ is a local queue that is used to store poison messages. Poison messages are MQ messages that cannot be processed and that are repeatedly returned to the message queue.
A dead-letter queue lets you set aside and isolate messages that can't be processed correctly to determine why their processing didn't succeed. Setting up a dead-letter queue allows you to do the following: Configure an alarm for any messages moved to a dead-letter queue.
A dead-letter queue is an Amazon SQS queue that an Amazon SNS subscription can target for messages that can't be delivered to subscribers successfully. Messages that can't be delivered due to client errors or server errors are held in the dead-letter queue for further analysis or reprocessing.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With