[
https://issues.apache.org/jira/browse/AMQ-6162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15137850#comment-15137850
]
Timothy Bish commented on AMQ-6162:
-----------------------------------
The message will be filtered as a duplicate when the rollback attempts to place
it back onto the DLQ1 queue in the no restart case. In the restart case the
queues are essentially all fresh so the message is not tagged as a duplicate
because that broker instance has in fact not seen that message in that queue
before as it was just freshly baked following the restart. If you were to
repeat the sequence a second time following the restart the message would again
be filtered as a duplicate as it has now passed through DLQ1 once before during
this broker run.
> DLQ'd message does not get DLQ'd again until broker restart
> -----------------------------------------------------------
>
> Key: AMQ-6162
> URL: https://issues.apache.org/jira/browse/AMQ-6162
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.13.0
> Reporter: Jo Vandermeeren
> Priority: Critical
> Attachments: AMQ6162Test.java
>
>
> Given the following setup: Q1 -> DLQ1 (dead letter for Q1) -> DLQ2 (dead
> letter for Q2).
> Sessions are transacted.
> 1. Send message to Q1
> 2. Consume Q1 and rollback
> 3. Message is DLQ'd to DLQ1
> 4. Consume DLQ1 and rollback
> 5. Message is DLQ'd to DLQ2
> 6. Move message via JMX from DLQ2 to Q1 (QueueViewMBean.moveMessageTo())
> 7. Consume Q1 and rollback
> 8. DLQ1 stays empty, message seems lost
> If you restart the broker between step 5 and step 6, the message does get
> DLQ'd to DLQ1 again.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)