Details
Description
1. Message in queue A fails enough times to be moved to the DLQ.
2. We move/copy the message back to queue A to attempt reprocessing. Invoking the retry operation from JMX can also be used.
3. The consumer once again fails to consume the message greater than the max number of times.
4. The message is not put back into the DLQ. If it was moved rather than copied, it means we have a message that was never successfully consumed, but has nevertheless disappeared.
This is all with the default ActiveMQ settings, though I tried adjusted the DLQ configuration to support both expired and non-persistent messages.
I found this posting which seems to indicate the same issue I am seeing: http://www.mail-archive.com/users@activemq.apache.org/msg09683.html. One difference that I am seeing is that restarting ActiveMQ does not cause the message to show up in the DLQ again. Once it is lost, it is lost forever.
To replicate this, I believe you can use a consumer that just fails on every invocation.
One interesting thing is that if I put a message into the DLQ directly, then move it to a queue with a consumer, it will end up in the DLQ again as you would expect. If I then move the DLQ message back to the original queue, it will then show the bevahiour outlined above.
Attachments
Issue Links
- is duplicated by
-
AMQ-4616 Message moved from ActiveMQ.DLQ to another queue can be lost
- Closed