>> Some brokers like IBM MQ allows defining a dead letter channel per Queue
Manager. Some allow define one for the whole broker and some MQs allow to
keep a dead letter channel per a queue.

>>IBM MQ when putting a message to a dead letter queue it injects a jms
header why it is in dead letter queue (there are some predefined error
codes). Looking at that error code client can know why it was in dead
letter queue.

>>Some brokers like qpid (it is supposed to have one [1]) handle this in a
simple way. There is a preconfigured number of times message is re-tried to
deliver. After that number is consumed (this is enforced at
Session#rollback() (or Session#recover() if the session is not transacted))
message is sent to dead letter queue.

>> IBM MQ allows a separate listener to listen for messages in Dead Letter
queue. You can define policies for them.

>> Qpid is supposed to have a way of handling messages in DLQ in following
way. There is a DLQ (pre-defined). The DLQ feature causes generation of a
Dead Letter Exchange and a Dead Letter Queue. Rather than consuming
messages from DLQ via management console it displays the messages in DLQ
and user can manually transfer messages from DLQ to respective queues
resetting delivery count back to zero.

IMO, simply we can implement the latter with carbon UI involved.
We will need to handle authentication, authorization (permissions) and
tenancy related aspects.

Thanks.



[1].
http://qpid.apache.org/components/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html

-- 
*Hasitha Abeykoon*
Software Engineer; WSO2, Inc.; http://wso2.com
*cell:* *+94 719363063*
*blog: **abeykoon.blogspot.com* <http://abeykoon.blogspot.com>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to