You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2013/04/04 00:45:16 UTC

[jira] [Resolved] (AMQCPP-367) failover: receiving duplicate messages after a broker restart

     [ https://issues.apache.org/jira/browse/AMQCPP-367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish resolved AMQCPP-367.
---------------------------------

    Resolution: Fixed

Added message audit feature to filter duplicates on failover. 
                
> failover: receiving duplicate messages after a broker restart
> -------------------------------------------------------------
>
>                 Key: AMQCPP-367
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-367
>             Project: ActiveMQ C++ Client
>          Issue Type: New Feature
>          Components: CMS Impl
>    Affects Versions: 3.4.0
>         Environment: GNU/Linux
>            Reporter: Chris Hoffmann
>            Assignee: Timothy Bish
>             Fix For: 3.7.0
>
>
> When testing AMQCPP-364/AMQCPP-363, we noticed that on broker shutdown, a listener receives a message twice through onMessage callbacks. 
> Testcase for a 5.3 broker
> 1) In the onMessage before acknowledging the message, shutdown the broker. 
> 2) Then acknowledge the message while broker is still off. 
> 3) Bring the broker back up and you see the message delivered again to the onMessage () callback.
> With a 5.5 broker, the problem also happens when ack'ing the message when the broker is back alive. When ack'ing the firs message, you see an error messag in the broker log:
>  WARN | Ignoring ack received before dispatch; result of failover with an outstanding ack. Acked messages will be replayed if present on this broker. 
> Ignored ack: MessageAck {commandId = 22, responseRequired = false, ackType = 2, consumerId = ID:HOSTNAME-44923-1303316424844-0:0:0:0,
> firstMessageId = ID:HOSTNAME-58084-1303317597544-0:0:0:0:0,
> lastMessageId = ID:HOSTNAME-58084-1303317597544-0:0:0:0:0,
> destination = queue://TESTQUEUE, transactionId = null, messageCount = 1, poisonCause = null}
> A java test program (e.g. the ones in the activeMQ examples directory) work fine: no message duplicates there. When the message gets redelivered to a different client, the second ack'ing results in an exception raised to the java client.
> Kind regards,
> Chris

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira