[jbossts-issues] [JBoss JIRA] (JBTM-1249) XA recovery Failed on Oracle (pad-xid=true not propagated to the XARecoveryModule)

Jonathan Halliday (JIRA) jira-events at lists.jboss.org
Mon Sep 17 09:39:36 EDT 2012


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

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


More information about the jbossts-issues mailing list