Stuart Wheater created JBTM-1614:
------------------------------------
Summary: XA delist with TMFAIL flag
Key: JBTM-1614
URL:
https://issues.jboss.org/browse/JBTM-1614
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: JTA
Affects Versions: 5.0.0.M2, 4.3.0.GA, 4.2.3
Environment: Fedora 18, Oracle 11 JDBC XAResource, JDK 1.5 & 1.6
Reporter: Stuart Wheater
Assignee: Tom Jenkinson
Priority: Minor
The scenario was as follows:
enlist jms xaresource
do some work
delist jms xaresource
enlist jdbc xaresource
do some work which results in a failure(inserting NULL into a non null column for
example)
delist jdbc xaresource with TMFAIL flag.
call tm.rollback()
During rollback, an exception in XARerource.end() as follows:
oracle.jdbc.xa.OracleXAException with error code=-3
It appears that end is called, in rollback, although already been called in delist.
I think the resolution is to change, endAssociation of
narayana-full-5.0.0.M2src/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
from:
if (_theTransaction.getXAResourceState(_theXAResource) == TxInfo.NOT_ASSOCIATED)
to:
int txInfo = _theTransaction.getXAResourceState(_theXAResource);
if ((txInfo == TxInfo.NOT_ASSOCIATED) || (txInfo == TxInfo.FAILED))
This fix works for JBossTS 4.2.3 and JBossTS 4.3, haven't been able test it Narayana
5.0.0.M2 yet, as Fedora 18 doesn't seem to be a supported build/test environment.
--
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