19.2. Dead Letter Addresses

To prevent a client infinitely receiving the same undelivered message (regardless of what is causing the unsuccessful deliveries), messaging systems define dead letter addresses: after a specified unsuccessful delivery attempts, the message is removed from the queue and send instead to a dead letter address.
Any such messages can then be diverted to one or more queues where they can later be perused by the system administrator for action to be taken.
HornetQ addresses can be assigned a dead letter address. Once the messages have been unsuccessfully delivered for a given number of attempts, they are removed from the queue and sent to the dead letter address. These dead letter messages can later be consumed for further inspection.

19.2.1. Configuring Dead Letter Addresses

The dead letter address is defined in the address-setting configuration:
<!-- undelivered messages in exampleQueue will be sent to the dead 
letter address deadLetterQueue after 3 unsuccessful delivery attempts-->
<address-setting match="jms.queue.exampleQueue">
   <dead-letter-address>jms.queue.deadLetterQueue</dead-letter-address>
   <max-delivery-attempts>3</max-delivery-attempts>
</address-setting>
If a dead-letter-address is not specified, messages will be removed after max-delivery-attempts unsuccessful attempts.
By default, messages are redelivered a maximum of 10 times. Set max-delivery-attempts to -1 for infinite redeliveries.
A dead letter address can be set globally for a set of matching addresses, with max-delivery-attempts set to -1 for a specific address setting to allow infinite redeliveries only for this address.
Address wildcards can be used to configure dead letter settings for a set of addresses (see Chapter 11, Understanding the HornetQ Wildcard Syntax).