You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Carey Flichel (JIRA)" <ji...@apache.org> on 2011/07/18 21:57:59 UTC

[jira] [Created] (AMQ-3405) DLQ messages moved/copied into original queue disappear after failing processing for a second time

DLQ messages moved/copied into original queue disappear after failing processing for a second time
--------------------------------------------------------------------------------------------------

                 Key: AMQ-3405
                 URL: https://issues.apache.org/jira/browse/AMQ-3405
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.4.2
         Environment: Windows 7, Java 64bit 1.6 update 20, Client and server 5.4.2
            Reporter: Carey Flichel


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.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3405) DLQ messages moved/copied into original queue disappear after failing processing for a second time

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13086035#comment-13086035 ] 

Timothy Bish commented on AMQ-3405:
-----------------------------------

The reason the Message do not reappear in the DLQ is due to Message Audit on the DLQ filtering what would be duplicate messages.  I've created a test case and included it in trunk to show that if Audit is disabled on the DLQ then the Messages are moved back in.  The Move operation places the message onto the destination without modifying its Message Id so any Audited resource will filter it as a duplicate if it was delivered to that destination previously. 

> DLQ messages moved/copied into original queue disappear after failing processing for a second time
> --------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3405
>                 URL: https://issues.apache.org/jira/browse/AMQ-3405
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.2
>         Environment: Windows 7, Java 64bit 1.6 update 20, Client and server 5.4.2
>            Reporter: Carey Flichel
>
> 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.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3405) DLQ messages moved/copied into original queue disappear after failing processing for a second time

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13067262#comment-13067262 ] 

Timothy Bish commented on AMQ-3405:
-----------------------------------

It would be really helpful if you could take a stab at creating a JUnit test to reproduce the issue, this will also ensure that if it gets fixed it won't break again.

> DLQ messages moved/copied into original queue disappear after failing processing for a second time
> --------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3405
>                 URL: https://issues.apache.org/jira/browse/AMQ-3405
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.2
>         Environment: Windows 7, Java 64bit 1.6 update 20, Client and server 5.4.2
>            Reporter: Carey Flichel
>
> 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.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3405) DLQ messages moved/copied into original queue disappear after failing processing for a second time

Posted by "Stephen Brandwood (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13086187#comment-13086187 ] 

Stephen Brandwood commented on AMQ-3405:
----------------------------------------

Timothy, I have found that any message I create through the admin console will also not be sent to the DLQ, even if I set it as persistent. Do you know the cause for this?

> DLQ messages moved/copied into original queue disappear after failing processing for a second time
> --------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3405
>                 URL: https://issues.apache.org/jira/browse/AMQ-3405
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.2
>         Environment: Windows 7, Java 64bit 1.6 update 20, Client and server 5.4.2
>            Reporter: Carey Flichel
>
> 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.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3405) DLQ messages moved/copied into original queue disappear after failing processing for a second time

Posted by "Stephen Brandwood (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13076087#comment-13076087 ] 

Stephen Brandwood commented on AMQ-3405:
----------------------------------------

I can confirm that this issue also affects version 5.5.0. It also occurs for any message created by the admin console, they just never go to the DLQ at all.


Does anyone know of a workaround?

> DLQ messages moved/copied into original queue disappear after failing processing for a second time
> --------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3405
>                 URL: https://issues.apache.org/jira/browse/AMQ-3405
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.2
>         Environment: Windows 7, Java 64bit 1.6 update 20, Client and server 5.4.2
>            Reporter: Carey Flichel
>
> 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.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Closed] (AMQ-3405) DLQ messages moved/copied into original queue disappear after failing processing for a second time

Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish closed AMQ-3405.
-----------------------------

    Resolution: Not A Problem

Working as designed.  See AMQ3405Test.java in trunk for an example.

> DLQ messages moved/copied into original queue disappear after failing processing for a second time
> --------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3405
>                 URL: https://issues.apache.org/jira/browse/AMQ-3405
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.2
>         Environment: Windows 7, Java 64bit 1.6 update 20, Client and server 5.4.2
>            Reporter: Carey Flichel
>
> 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.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira