[
https://issues.apache.org/jira/browse/JCR-2861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Köll updated JCR-2861:
----------------------------
Fix Version/s: 2.3.0
> Internal Timeout Handling in the TransactionContext is not XA Spec. conform
> ---------------------------------------------------------------------------
>
> Key: JCR-2861
> URL: https://issues.apache.org/jira/browse/JCR-2861
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 2.2.0
> Reporter: Claus Köll
> Assignee: Claus Köll
> Priority: Critical
> Fix For: 2.3.0
>
> Attachments: JCR-2861.patch
>
>
> The problem here is that in a 2 phase transaction the xa spec does not
> permit a RB* return code in response to xa_commit(). The xa spec says
> the following about RB* return codes in the xa_commit() section:
>
> "The resource manager did not commit the work done on behalf of the
> transaction branch. Upon return, the resource manager has rolled back
> the branch?s work and has released all held resources. These values may
> be returned only if TMONEPHASE is set in flags"
>
> Essentially, the only two return codes from xa_commit that J2EE Containers
> can
> handle sensibly are XA_OK (normal case) and XA_RMFAIL. RMFAIL will
> cause the containers to retry to commit the transaction. Any other return
> code will result in a heuristic
> transaction outcome (non-atomic).
> In a xa environment the TMONEPHASE is not set on the flags and so
> XA_RBTIMEOUT is
> not a permitted return code. A Container transaction service cannot do
> anything to ensure an atomic
> outcome if an XAResource fails to honour its promise to be able to commit it
> made when it answer XA_OK in response to xa_prepare().
> The internal timeout handling will rollback the Jackrabbit XAResource if the
> time exceeds between prepare and commit.
> and in the commit Method will always throw a XA_RBTIMEOUT.
> We should not handle the timeout internal because this should make the
> container in a 2 Phase transaction.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.