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