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 2012/06/01 16:39:24 UTC

[jira] [Resolved] (AMQ-3872) Implement "exactly once" delivery with JDBC and XA in the event of a failure post prepare

     [ https://issues.apache.org/jira/browse/AMQ-3872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-3872.
-----------------------------

    Resolution: Fixed
      Assignee: Gary Tully

fix in http://svn.apache.org/viewvc?rev=1345202&view=rev

JDBC 2PC is now two JDBC ops, an insert/update in prepare and an update for the outcome.
An additional xid column is needed in both the acks and messages table. A non null value for the xid means that the update is pending the outcome of the xa transaction matching that xid.
Recovery scans for non null xid and recreates the appropriate state pending the outcome.
Pending transactions are visible via jmx so that they can be forced.
                
> Implement "exactly once" delivery with JDBC and XA in the event of a failure post prepare
> -----------------------------------------------------------------------------------------
>
>                 Key: AMQ-3872
>                 URL: https://issues.apache.org/jira/browse/AMQ-3872
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Message Store
>    Affects Versions: 5.6.0
>         Environment: jdbc persistence adapter, XA
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>              Labels: JDBC, MessageStore, XA, recovery
>             Fix For: 5.7.0
>
>
> JDBC store does not honor the prepare phase so a broker failure after prepare always results in a rollback which is in violation of the contract.
> In the cases where XA is required, the store needs to do its best to respect a prepare outcome.
> Having the TM use last resource commit one phase (or the one phase commit optimisation) avoids this issue but is not always possible.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira