Prev Next

Integration / ActiveMQ Interview Questions Intermediate

How do you configure a Dead Letter Queue policy?

Redelivery attempts and DLQ routing are configured together in activemq.xml:

<redeliveryPolicy maximumRedeliveries="3" initialRedeliveryDelay="1000"
                  backOffMultiplier="2" useExponentialBackOff="true"/>

<deadLetterStrategy>
  <individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true"/>
</deadLetterStrategy>

maximumRedeliveries controls how many attempts happen before a message is considered undeliverable. individualDeadLetterStrategy routes each source destination to its own DLQ.<name> queue instead of one shared ActiveMQ.DLQ, making it much easier to trace which queue a failed message originally came from.

Redelivery delay grows with each attempt when useExponentialBackOff is enabled, starting at initialRedeliveryDelay and multiplying by backOffMultiplier on every retry, up to an optional maximumRedeliveryDelay ceiling. This spacing gives transient issues, like a brief database outage, more time to resolve between attempts instead of hammering the same failing operation immediately. Once individualDeadLetterStrategy is enabled, an operator can look directly at a queue like DLQ.OrdersQueue to know exactly which upstream destination a poisoned message originated from, rather than digging through one shared ActiveMQ.DLQ full of unrelated messages from every queue on the broker.

What does individualDeadLetterStrategy provide over the default shared DLQ?
Which element controls how many redelivery attempts happen before DLQ?

More Related questions...

Show more question and Answers...


Comments & Discussions