[
https://issues.jboss.org/browse/JBTM-1988?page=com.atlassian.jira.plugin....
]
Tom Jenkinson resolved JBTM-1988.
---------------------------------
Fix Version/s: (was: 5.0.0.Final)
Resolution: Rejected
It appears that this was caused by JBJCA-1101 closing the underlying connection to the
database when it received an XA_RB* out of XAR::end(TMFAIL)
Downgrade certain log messages when we end a branch using TMFAIL
----------------------------------------------------------------
Key: JBTM-1988
URL:
https://issues.jboss.org/browse/JBTM-1988
Project: JBoss Transaction Manager
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: JTA, Resource Manager
Reporter: Tom Jenkinson
Assignee: Tom Jenkinson
JBTM-1786 changed the XAResourceRecord::topLevelAbort such that the flag we send to
XAR::end() from TMSUCCESS to TMFAIL.
It is possible that when we call XAResource::end(TMFAIL) the branch may have been:
1. marked as rollback only
2. rolled back
From the XA spec: "The portion of work has failed. A resource manager might choose
to mark a transaction branch as rollback-only at this point. In fact, a transaction
manager does so for the global transaction. If a resource manager chooses to do so also,
xa_end() returns one of the [XA_RB∗] values. TMFAIL cannot be used in conjunction with
either TMSUSPEND or TMSUCCESS."
We cannot rely on the resource manager having rolled back the branch so we have to call
XAR::rollback. An example is DB2, in this case it _has_ rolled back the branch and so can
raise an XAException when we call rollback on it.
We should record if the RM has returned an XA_RBROLLBACK during end and if the RM then
returns XAER_RMFAIL during rollback we should downgrade the logging to debug level.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira