activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <>
Subject [jira] [Resolved] (AMQ-3305) Implement "exactly once" delivery with kahaDB and XA in the event of a failure post prepare
Date Fri, 06 May 2011 13:57:03 GMT


Gary Tully resolved AMQ-3305.

    Resolution: Fixed

fix in

camel xml with route from jms queue to jdbc that does XA is at:

> Implement "exactly once" delivery with kahaDB and XA in the event of a failure post prepare
> -------------------------------------------------------------------------------------------
>                 Key: AMQ-3305
>                 URL:
>             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:

View raw message