[jbossts-issues] [JBoss JIRA] Commented: (JBTM-427) Subordinate JCA coordinator does not call synchronizations during 2PC if set rollbackOnly.

Mark Little (JIRA) jira-events at lists.jboss.org
Tue Nov 11 12:21:36 EST 2008


    [ https://jira.jboss.org/jira/browse/JBTM-427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12437927#action_12437927 ] 

Mark Little commented on JBTM-427:
----------------------------------

I suggest throwing XA_RMERR in this case and documenting the potential. Hopefully most of the time we'd just be throwing back the XA_RBROLLBACK error.

> Subordinate JCA coordinator does not call synchronizations during 2PC if set rollbackOnly.
> ------------------------------------------------------------------------------------------
>
>                 Key: JBTM-427
>                 URL: https://jira.jboss.org/jira/browse/JBTM-427
>             Project: JBoss Transaction Manager
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: JTA Implementation
>    Affects Versions: 4.2.3.SP7, 4.2.3.CP02, 4.4.0.GA
>            Reporter: Jonathan Halliday
>            Assignee: Jonathan Halliday
>             Fix For: 4.2.3.SP8, 4.2.3.CP03, 4.5
>
>
> In the case where XATerminatorImple.prepare is called and the tx has previously been set rollbackOnly, we throw XA_RBROLLBACK without actually rolling back. To make matters worse we explicitly remove the tx handle, making subsequent cleanup via commit/rollback impossible.
> The JCA 1.5 spec fails to specify the expected behaviour, but following the XA spec this would be a violation, as the XA_RBROLLBACK code indicates the RM has rolled back the branch and needs/expects no further contact.
> However, actually rolling back can cause heuristics outcomes, since the subordinate tx may contain several branches. These can't be reported from prepare, which does not support throwing the heuristic exceptions or using XAException.XA_HE* error codes. That would seem to imply a necessity for either violating the XATerminator API interface spec or returning e.g. XAER_RMERR instead of XA_RBROLLBACK, and expecting to have rollback called explicitly to allow clean up.  Or we can clean up in prepare, bury any heuristic and report it as a XA_RMERR.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jbossts-issues mailing list