activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raul Kripalani (Created) (JIRA)" <>
Subject [jira] [Created] (AMQ-3781) Redelivery counter is not maintained across Session.close()
Date Tue, 20 Mar 2012 18:25:40 GMT
Redelivery counter is not maintained across Session.close()

                 Key: AMQ-3781
             Project: ActiveMQ
          Issue Type: Bug
            Reporter: Raul Kripalani

If a message enters a redelivery cycle of e.g. 10 maximum redelivery attempts, and the session
is closed halfway through it (e.g. after consuming attempt 5), the next time the session is
established and the message is consumed, it will have RedeliveryCount=2 rather than 6. As
a result, the message will end up being materially redelivered 14 times, thus exceeding the
configured maximum.

With the current set up, where it's the consumer-side AMQ logic who is in charge of tallying
up the redelivery attempts and sending back the Poison ACK, it seems that there is a missing
command when the session is being closed *gracefully* from consumer -> broker informing
of the redelivery counters of messages in redelivery process.

If the session was being closed suddenly, I suppose to some extent it would be okay to miscount
the redeliveries, since there was no chance to execute a closure process for the client to
update the broker accordingly.

This is also a case for AMQ to support broker-controlled redeliveries (see AMQ-3597). 

Unit test reproducing the problem is attached.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message