You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2011/05/06 19:24:03 UTC

[jira] [Commented] (AMQ-3305) Implement "exactly once" delivery with kahaDB and XA in the event of a failure post prepare

    [ 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