[
https://issues.apache.org/jira/browse/AMQ-3305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13030039#comment-13030039
]
Gary Tully commented on AMQ-3305:
---------------------------------
added new RecoveredTransaction JMX MBean to allow administrative heuristic
completion of recovered XA transactions.
> Implement "exactly once" delivery with kahaDB and XA in the event of a
> failure post prepare
> -------------------------------------------------------------------------------------------
>
> Key: AMQ-3305
> URL: https://issues.apache.org/jira/browse/AMQ-3305
> Project: ActiveMQ
> Issue Type: Improvement
> Components: Message Store
> Affects Versions: 5.5.0
> Environment: XA (with Geronimo for TM in the camel route test)
> Reporter: Gary Tully
> Assignee: Gary Tully
> Labels: 2pc, XA, camel, geronimo
> Fix For: 5.6.0
>
>
> With XA 2PC, a camel route, jms 'to' jdbc should ensure exactly once delivery
> to jdbc. In the event of a failure after prepare, where commit to jdbc is
> done, the jms message must remain with a pending ack till the commit outcome
> is relayed from the transaction manager.
> Current versions of geronimo will correctly retry the commit in a timer
> thread, so activemq eventually gets the commit outcome after recovery. (btw:
> it looks like howl will not persist a commit outcome per NamedXAResource, so
> after a failure of the TM it may consier the transaction completed and the
> message may still be pending, need to check that!)
> At the moment, ActiveMQ does a heuristic rollback after recovery which leads
> to message redelivery in error.
> With the fix, an acked message remains pending awaiting the outcome. On
> commit, the message is acked. On rollback the message is available for
> redelivery.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira