Tidy up store duplicate suppression from failover recovery - consistent store
implementation with help from transportConnection
-------------------------------------------------------------------------------------------------------------------------------
Key: AMQ-2542
URL: https://issues.apache.org/activemq/browse/AMQ-2542
Project: ActiveMQ
Issue Type: Improvement
Components: Broker
Affects Versions: 5.3.0
Reporter: Gary Tully
Fix For: 5.4.0
With failover - with a failure before a reply is received to a send or a
transaction commit, the send or transaction will be replayed and will be a
duplicate.
The transportConnector should know that recovery/reconnection has happened and
should enforce duplicate suppression based on obtaining the last producer
sequence number from the store.
Currently, duplicate suppression happens at the jdbc message store add, amq
store reference store etc... it is not consistent and it is abased on a
suitable audit window which may be non deterministic. Would be best to be fully
deterministic and consistent (as in a single persistence adapter api)
To make this perform, a transportConnection needs to be flagged as a reconnect
which can precipitate the duplicate suppression, possibly needing a wireformat
update. This flag would also help with unmatched acks after failover but maybe
that flag can be in an ack...
This is relevant both when the broker is restarted or when a connection is
dropped.
related issue with relevant test :
https://issues.apache.org/activemq/browse/AMQ-2540
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.