[ 
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)

Reply via email to