
Queue with ‘Maximum Redelivery Count’ set (Redeliver Forever disabled), and a DMQ configured.If you want messages that reach the maximum redelivery count to go to a DMQ, you need: Published messages can have a ‘Message-TTL’ and must be ‘DMQ-Eligible’.Queue with ‘Respect-TTL’ enabled, a DMQ configured, and optionally a ‘Maximum-TTL’ specified.If you want messages that expire to go to a DMQ, you need: That is an important point that bears repeating: Messages must be DMQ-Eligible! Without this set, the messages will be deleted from the original queue when they lose delivery eligibility.

Note that messages will not be moved into a DMQ unless they are published with the flag ‘DMQ-Eligible’. Once created, the DMQ is configured on the original endpoint in the ‘DMQ Name’ field. How do I use a Dead Message Queue with Solace PubSub+ Event Broker?Ī DMQ on Solace PubSub+ Event Broker is configured as a normal queue and can be created in the same manner on the Queue page of PubSub+ Broker Manager. Once exceeded, the message will be removed from the endpoint or can be moved to a DMQ. To ensure an application does not get stuck in this loop, an endpoint can be set to redeliver a message a maximum number of times with the setting ‘Maximum Redelivery Count’. In this case, the message is referred to as a poison message. When that application reconnects to the endpoint, it will receive the same message and would be stuck in a loop. This scenario could occur when a consumer is unable to process a message and crashes before sending an application acknowledgement. Poison Message: The second reason a message can lose delivery eligibility is if it is redelivered from an endpoint to a consumer too many times.When this timer expires, the message is removed from the original endpoint and can be deleted or can be moved to a DMQ.

#Pub sub message queue series
Message Expiry: The first post in this series goes into more detail on message expiry, but as a summary it is when a message is published to an endpoint with a timer, or time-to-live.

There are two ways messages can be deemed ineligible for delivery: You might be wondering how a message can lose delivery eligibility, especially when it is originally published as persistent. What is a Dead Message Queue?Ī dead message queue, sometimes referred to as a dead letter queue, is an endpoint to store messages that have lost delivery eligibility in their original endpoint, and stores messages for special processing or delayed consumption. Here I’ll look at dead message queues (DMQs), which assumes you have background knowledge on Solace endpoints and Solace persistent messaging. In the first blog in this series, I explained the concept of message expiry, or message-TTL.
