[
https://issues.apache.org/jira/browse/AMQ-7298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Tully resolved AMQ-7298.
-----------------------------
Resolution: Fixed
The key observation was that local rollback delayed redelivery (with the
default 1s retry delay) could produce duplicates. Messages were visible in the
unconsumed list (so could be picked up in error by the async dispatcher) and
would get replayed after the delay. Using a non default
redeliverypolicy.initialRedeliveryDelay=0 to immediately replay could avoid
some of the problems so it may be a sensible workaround.
> failover duplicate detection in error with batched local transactions
> ---------------------------------------------------------------------
>
> Key: AMQ-7298
> URL: https://issues.apache.org/jira/browse/AMQ-7298
> Project: ActiveMQ
> Issue Type: Bug
> Components: JMS client
> Affects Versions: 5.15.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Priority: Major
> Fix For: 5.16.0
>
>
> Messages can get poisonAcked in error as duplicate deliveries when a local
> transaction rollback during/after a failover (auto reconnect) event.
> The interaction between rollback and failover redelivery has a bunch of
> timing issues and did create duplicates in-error that resulted in over eager
> suppression.
> There are a bunch of related tests that validate expected behaviour, the
> related fixes needed to be revisited to better manage the delivered and
> unconsumed messages in the context of a local transaction and to avoid the
> real duplication of delivery in the client.
> There is an additional new test that demonstrates the additional dlq or
> duplicates behaviour.
> a nice cross section from the unit test suite is:
> mvn clean install
> -Dtest=CloseRollbackRedeliveryQueueTest,AMQ2149Test,JMSQueueRedeliverTest,RedeliveryPolicyTest,FailoverTransactionTest,FailoverDurableSubTransactionTest,JMSConsumerTest,JmsSessionRecoverTest,AMQ2751Test
--
This message was sent by Atlassian Jira
(v8.3.2#803003)