Overview
Dead Letter Channel (DLC) is a sub-set of a queue which is specifically designed to persist messages which are typically marked for deletion, providing the user the choice whether to delete, retrieve or reroute the messages from the DLC. The default behavior of WSO2 Message Broker (MB) is to retry a defined number of times if a subscriber does not positively acknowledge. Once the retry count has breached it would remove the message from the queue where the message was originated and place the message into the DLC.
By default MB is configured to retry 10 number of times before placing it to the DLC. However, this value is configurable. The configuration steps can be found under the section "Message Retry Count Policy".
Functionality Narration
Browsing through the DLC Queue
All the messages that has breached the retry count will be dumped into the DLC queue, the content of the queue could be viewed from following,
1. On the main tab in the management console click, Dead Letter Channel - > Browse
2. The DLC browser would be displayed in the right side of the pane as shown below
“Message Count” signifies the number of messages in the DLC queue
By clicking on ‘browse’ under the view column would navigate the user towards each individual message stored in the DLC.
3. The ‘browse’ link would result listing the queue contents as shown in the following,
The browser would display each message in the DLC along with its message content details
The destination column reflects the name of the queue where the message was originated from
The user could select one or more messages and perform the operations listed on the top right side corner.
The user could perform the above operations by selecting one or more messages.
Operations in DLC
Delete
The operation would result in permanently deleting the message from the Message Broker.
Restore
This operation would re-insert the message/s back to the queue where the message was originated from.
Reroute
Re-route will allow a user to select a destination of choice, instead of having it restored to the queue it originated from, Once the reroute is clicked it would result in a pop-up menu as shown below,
Once the user selects the queue name he/she desires the message to be re routed to and click on ‘ok’ the message will be placed at the relevant queue.
Functional Aspects
Constraints
Publishing and subscribing to DLC queue would not be permitted for external publishers or subscribers.
DLC queue would be created upon the first subscription made for a specific domain. (superuser or tenant)
The messages would be inserted into the DLC queue when the subscribers do not respond positively and when the retry message count is breached. By default the message retry count would be 10. This is configurable. Which could be found under the section "Message Retry Count Policy"
Multitenancy
In order to ensure that the messages would be distinguishable per tenant, upon creation of a tenant a separate DLC would be created. The signature of the DLC queue would look something similar to the following,
{tenant_name}/DeadLetterChannel
The above would ensure that only the messages exchanged through the queues in a specific tenant domain would be inserted into the DLC queue.
Message Retry Count Policy
The message retry count could be configured by following the steps mentioned below,
1) Locate the andes-config.xml file located on $MB_HOME/repository/conf/advanced
2) Locate the attibute “maximumNumberOfMessageDeliveryAttempts” in the file. By modifying the value of the above mentioned attribute the retry count could be changed.