[
https://issues.jboss.org/browse/JBTM-1249?page=com.atlassian.jira.plugin....
]
Jonathan Halliday commented on JBTM-1249:
-----------------------------------------
I last looked at this some years ago and was unable to reproduce it. We'll need the
version of oracle server and driver, plus ideally the content of the objectstore and the
data from DBA_2PC_PENDING. It's likely attributable to something in the
XidImple.generateHash usage. Since our internal XID.data arrays are always zero padded
anyhow, the hash calculation should probably just ignore the length params and always
operate over the full array.
XA recovery Failed on Oracle (pad-xid=true not propagated to the
XARecoveryModule)
----------------------------------------------------------------------------------
Key: JBTM-1249
URL:
https://issues.jboss.org/browse/JBTM-1249
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Application Server Integration, JCA, JTS
Affects Versions: 4.16.2
Environment: JBoss AS 7.1.1 Final, Windows, Oracle
Reporter: Michel PRUNET
Assignee: Tom Jenkinson
Labels: jboss, jts, recovery, xa
The XARecoveryManager is unable to recover an Oracle Prepared Transaction.
The reason:
Oracle needs the Xid to be padded (pad-xid set to true in xa-datasource).
When the method XARecoveryModule.getNewXAResource(Xid xid) is called. The value of xid is
not padded (retrieved from the tx-object-store). The XID contained in the RecoveryXids
are padded (retrieved from oracle). When the method execute xids.remove(xid), it never
found the xid. The transaction is never recovered.
In a debug session, if you pad the xid in that method (change the xid.gtrud_length and or
bqual_length), the transaction will be recovered successfully.
--
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