RAD 8 Exception
Please help me understand the possible causes of this exception, or better still how to fix it?
The exception stack trace is as follows:
com.ibm.ws.Transaction.XAResourceNotAvailableException: java.lang.Exception: Parameter xaResInfo lacks an RA wrapper and an RA wrapper could not be resolved using RA key.
at com.ibm.ejs.j2c.J2CXAResourceFactory.getXAResource(J2CXAResourceFactory.java:399)
at com.ibm.ws.Transaction.JTA.XARecoveryData.getXARminst(XARecoveryData.java:433)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:559)
at com.ibm.tx.jta.PartnerLogTable.recover(PartnerLogTable.java:389)
at com.ibm.tx.jta.RecoveryManager.resync(RecoveryManager.java:1523)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:127)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:2200)
at java.lang.Thread.run(Thread.java:736)
Caused by: java.lang.Exception: Parameter xaResInfo lacks an RA wrapper and an RA wrapper could not be resolved using RA key.
at com.ibm.ejs.j2c.J2CXAResourceFactory$1.run(J2CXAResourceFactory.java:237)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ejs.j2c.J2CXAResourceFactory.getXAResource(J2CXAResourceFactory.java:185)
... 7 more
[6/14/11 15:01:02:685 EDT] 00000009 WSRdbDataSour W DSRA8023W: "" is not a valid option for oracleRACXARecoveryDelay. oracleRACXARecoveryDelay will default to 0.
[6/14/11 15:01:05:185 EDT] 00000009 InternalGener I DSRA8203I: Database product name : Oracle
[6/14/11 15:01:05:185 EDT] 00000009 InternalGener I DSRA8204I: Database product version : Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
[6/14/11 15:01:05:185 EDT] 00000009 InternalGener I DSRA8205I: JDBC driver name : Oracle JDBC driver
[6/14/11 15:01:05:185 EDT] 00000009 InternalGener I DSRA8206I: JDBC driver version : 11.2.0.2.0
[6/14/11 15:01:05:185 EDT] 00000009 InternalOracl I DSRA8212I: DataStoreHelper name is: com.ibm.websphere.rsadapter.Oracle10gDataStoreHelper.
[6/14/11 15:01:05:185 EDT] 00000009 InternalOracl W DSRA7041W: You must use the Oracle11gDataStoreHelper class or a subclass of that data store helper when you configure a data source to use this JDBC driver: Oracle 11g JDBC driver
[6/14/11 15:01:05:185 EDT] 00000009 WSRdbDataSour I DSRA8208I: JDBC driver type : ""
[6/14/11 15:01:05:185 EDT] 00000009 WSRdbXaResour E DSRA0304E: XAException occurred. XAException contents and details are: The cause is : null.
[6/14/11 15:01:05:185 EDT] 00000009 WSRdbXaResour E DSRA0302E: XAException occurred. Error code is: XAER_RMERR (-3). Exception is: <null>
[6/14/11 15:01:05:185 EDT] 00000009 XARminst E WTRN0037W: The transaction service encountered an error on an xa_recover operation. The resource was com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl@19b619b6. The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:709)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:1086)
at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:141)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:602)
at com.ibm.tx.jta.PartnerLogTable.recover(PartnerLogTable.java:389)
at com.ibm.tx.jta.RecoveryManager.resync(RecoveryManager.java:1523)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:127)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:2200)
at java.lang.Thread.run(Thread.java:736)
[6/14/11 15:01:05:185 EDT] 00000009 J2CXAResource W J2CA0061W: Error creating XA Connection and Resource java.lang.Exception: Parameter xaResInfo lacks an RA wrapper and an RA wrapper could not be resolved using RA key.
at com.ibm.ejs.j2c.J2CXAResourceFactory$1.run(J2CXAResourceFactory.java:237)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ejs.j2c.J2CXAResourceFactory.getXAResource(J2CXAResourceFactory.java:185)
at com.ibm.ws.Transaction.JTA.XARecoveryData.getXARminst(XARecoveryData.java:433)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:559)
at com.ibm.tx.jta.PartnerLogTable.recover(PartnerLogTable.java:389)
at com.ibm.tx.jta.RecoveryManager.resync(RecoveryManager.java:1523)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:127)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:2200)
at java.lang.Thread.run(Thread.java:736)
[6/14/11 15:01:05:185 EDT] 00000009 XARecoveryDat W WTRN0005W: The XAResource for a transaction participant could not be recreated and transaction recovery may not be able to complete properly. The resource was J2CXAResourceInfo :
cfName = JMS$null$JMSManagedConnection@0
configProps = [Deployed Resource Adapter Properties]
TransactionResourceRegistration java.lang.String dynamic
InactiveConnectionSupport java.lang.Boolean true
mcfClassname java.lang.String com.ibm.ejs.jms.GenericJMSManagedQueueConnectionFactory
mcfUserName java.lang.String fcuser
mcfPassword java.lang.String {xor}Kiw6LTk8
mcfConnectorName java.lang.String JMS$null
mcfProviderURL java.lang.String jnp://localhost:1099
mcfContextFactoryClassname java.lang.String org.jnp.interfaces.NamingContextFactory
mcfJndiPath java.lang.String XAConnectionFactory
dd = [Resource Adapter DD]
ManagedConnectionFactory Class Name: com.ibm.ejs.jms.JMSManagedQueueSessionFactory
Connection Factory Interface Name: NO_CF_INTERFACE_SPECIFIED
Transaction Support: 2
Reauthentication Support: false
dsProps = {java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
mcfProps = null
mmProps = null
mbeanProps = null
cmConfig =
[Resource-ref CMConfigData key items]
res-sharing-scope: 1 (UNSHAREABLE)
res-isolation-level: 0 (TRANSACTION_NONE)
res-auth: 1 (APPLICATION)
isCMP1_x: false (not CMP1.x)
isJMS: true (JMS)
commitPriority 0
loginConfigurationName: null
loginConfigProperties: null
Resource ref name: not set
[Resource-ref non-key items]
J2EE Name: not set
isCMP: false (not set)
isWar: false (looked-up component was not a War module)
recoveryClasspath = null
raKey = null
. The exception stack trace follows: com.ibm.ws.Transaction.XAResourceNotAvailableException: java.lang.Exception: Parameter xaResInfo lacks an RA wrapper and an RA wrapper could not be resolved using RA key.
at com.ibm.ejs.j2c.J2CXAResourceFactory.getXAResource(J2CXAResourceFactory.java:399)
at com.ibm.ws.Transaction.JTA.XARecoveryData.getXARminst(XARecoveryData.java:433)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:559)
at com.ibm.tx.jta.PartnerLogTable.recover(PartnerLogTable.java:389)
at com.ibm.tx.jta.RecoveryManager.resync(RecoveryManager.java:1523)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:127)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:2200)
at java.lang.Thread.run(Thread.java:736)
Caused by: java.lang.Exception: Parameter xaResInfo开发者_运维技巧 lacks an RA wrapper and an RA wrapper could not be resolved using RA key.
at com.ibm.ejs.j2c.J2CXAResourceFactory$1.run(J2CXAResourceFactory.java:237)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ejs.j2c.J2CXAResourceFactory.getXAResource(J2CXAResourceFactory.java:185)
... 7 more
[6/14/11 15:01:05:201 EDT] 00000009 WSRdbDataSour W DSRA8023W: "" is not a valid option for oracleRACXARecoveryDelay. oracleRACXARecoveryDelay will default to 0.
[6/14/11 15:01:07:701 EDT] 00000009 InternalGener I DSRA8203I: Database product name : Oracle
[6/14/11 15:01:07:701 EDT] 00000009 InternalGener I DSRA8204I: Database product version : Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
[6/14/11 15:01:07:701 EDT] 00000009 InternalGener I DSRA8205I: JDBC driver name : Oracle JDBC driver
[6/14/11 15:01:07:701 EDT] 00000009 InternalGener I DSRA8206I: JDBC driver version : 11.2.0.2.0
[6/14/11 15:01:07:701 EDT] 00000009 InternalOracl I DSRA8212I: DataStoreHelper name is: com.ibm.websphere.rsadapter.Oracle10gDataStoreHelper.
[6/14/11 15:01:07:701 EDT] 00000009 InternalOracl W DSRA7041W: You must use the Oracle11gDataStoreHelper class or a subclass of that data store helper when you configure a data source to use this JDBC driver: Oracle 11g JDBC driver
[6/14/11 15:01:07:701 EDT] 00000009 WSRdbDataSour I DSRA8208I: JDBC driver type : ""
[6/14/11 15:01:07:701 EDT] 00000009 WSRdbXaResour E DSRA0304E: XAException occurred. XAException contents and details are: The cause is : null.
[6/14/11 15:01:07:701 EDT] 00000009 WSRdbXaResour E DSRA0302E: XAException occurred. Error code is: XAER_RMERR (-3). Exception is: <null>
[6/14/11 15:01:07:701 EDT] 00000009 XARminst E WTRN0037W: The transaction service encountered an error on an xa_recover operation. The resource was com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl@15411541. The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:709)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:1086)
at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:141)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:602)
at com.ibm.tx.jta.PartnerLogTable.recover(PartnerLogTable.java:389)
at com.ibm.tx.jta.RecoveryManager.resync(RecoveryManager.java:1523)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:127)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:2200)
at java.lang.Thread.run(Thread.java:736)
[6/14/11 15:01:07:716 EDT] 00000009 J2CXAResource W J2CA0061W: Error creating XA Connection and Resource java.lang.Exception: Parameter xaResInfo lacks an RA wrapper and an RA wrapper could not be resolved using RA key.
at com.ibm.ejs.j2c.J2CXAResourceFactory$1.run(J2CXAResourceFactory.java:237)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ejs.j2c.J2CXAResourceFactory.getXAResource(J2CXAResourceFactory.java:185)
at com.ibm.ws.Transaction.JTA.XARecoveryData.getXARminst(XARecoveryData.java:433)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:559)
at com.ibm.tx.jta.PartnerLogTable.recover(PartnerLogTable.java:389)
at com.ibm.tx.jta.RecoveryManager.resync(RecoveryManager.java:1523)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:127)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:2200)
at java.lang.Thread.run(Thread.java:736)
[6/14/11 15:01:07:716 EDT] 00000009 XARecoveryDat W WTRN0005W: The XAResource for a transaction participant could not be recreated and transaction recovery may not be able to complete properly. The resource was J2CXAResourceInfo :
cfName = JMS$null$JMSManagedConnection@0
configProps = [Deployed Resource Adapter Properties]
TransactionResourceRegistration java.lang.String dynamic
InactiveConnectionSupport java.lang.Boolean true
mcfClassname java.lang.String com.ibm.ejs.jms.GenericJMSManagedQueueConnectionFactory
mcfUserName java.lang.String fcuser
mcfPassword java.lang.String {xor}Kiw6LTk8
mcfConnectorName java.lang.String JMS$null
mcfProviderURL java.lang.String jnp://localhost:1099
mcfContextFactoryClassname java.lang.String org.jnp.interfaces.NamingContextFactory
mcfJndiPath java.lang.String XAConnectionFactory
dd = [Resource Adapter DD]
ManagedConnectionFactory Class Name: com.ibm.ejs.jms.JMSManagedQueueSessionFactory
Connection Factory Interface Name: NO_CF_INTERFACE_SPECIFIED
Transaction Support: 2
Reauthentication Support: false
dsProps = {java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
mcfProps = null
mmProps = null
mbeanProps = null
cmConfig =
[Resource-ref CMConfigData key items]
res-sharing-scope: 1 (UNSHAREABLE)
res-isolation-level: 0 (TRANSACTION_NONE)
res-auth: 1 (APPLICATION)
isCMP1_x: false (not CMP1.x)
isJMS: true (JMS)
commitPriority 0
loginConfigurationName: null
loginConfigProperties: null
Resource ref name: not set
[Resource-ref non-key items]
J2EE Name: not set
isCMP: false (not set)
isWar: false (looked-up component was not a War module)
recoveryClasspath = null
raKey = null
. The exception stack trace follows: com.ibm.ws.Transaction.XAResourceNotAvailableException: java.lang.Exception: Parameter xaResInfo lacks an RA wrapper and an RA wrapper could not be resolved using RA key.
at com.ibm.ejs.j2c.J2CXAResourceFactory.getXAResource(J2CXAResourceFactory.java:399)
at com.ibm.ws.Transaction.JTA.XARecoveryData.getXARminst(XARecoveryData.java:433)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:559)
at com.ibm.tx.jta.PartnerLogTable.recover(PartnerLogTable.java:389)
at com.ibm.tx.jta.RecoveryManager.resync(RecoveryManager.java:1523)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:127)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:2200)
at java.lang.Thread.run(Thread.java:736)
Caused by: java.lang.Exception: Parameter xaResInfo lacks an RA wrapper and an RA wrapper could not be resolved using RA key.
at com.ibm.ejs.j2c.J2CXAResourceFactory$1.run(J2CXAResourceFactory.java:237)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ejs.j2c.J2CXAResourceFactory.getXAResource(J2CXAResourceFactory.java:185)
... 7 more
[6/14/11 15:01:07:716 EDT] 00000009 WSRdbDataSour W DSRA8023W: "" is not a valid option for oracleRACXARecoveryDelay. oracleRACXARecoveryDelay will default to 0.
Could it be your Oracle or Java process was shutdown without completing a transaction? which is it trying to recover but can't, see IBM - WebSphere Application Server fails to start with XAException: XAER_RMERR (xa_recover)
snippet
This means that the transaction manager could not perform an XA recover operation, and Oracle returned an XAER_RMERR error to indicate that WebSphere did not close its connection with Oracle properly. When WebSphere Application Server attempts to reestablish the connection, Oracle must rollback any transactions that were in progress, but the Oracle user that WebSphere uses to log into the database (scott, in this example) cannot perform the recovery.
The solution is to give the Oracle user permission to perform the recovery, specifically to access the internal Oracle tables used to manage recovery.
To do this:
- Login in to SQL Plus as SYSOPER or SYSDBA. Run the following command:
grant select on DBA_PENDING_TRANSACTIONS to PUBLIC
Note: If you don't want to grant this permission to all users, specify only the user listed in the error (in this example, scott).
- Restart the database. Restart the
- WebSphere server.
Just delete the two log files from this path:
[your_project]/.metadata/.plugins/com.ibm.etools.server.core/tmp0/tranlog/server1/transaction
There are two folders there: partnerlog and tranlog. Inside, there are two log files, log1 and log2. Delete them both. Then restart your websphere.
A solution as well as the work around mentioned above for the javax.transaction.xa.XAException
are described in this article from IBM's product support:
http://www-01.ibm.com/support/docview.wss?uid=swg21196663
精彩评论