I am using an MDB to pick up messages from a queue. Then I process
this error message in a session bean to write it to an Oracle
database. I am using Oracle thin XA driver. When I am writing to the
database I am getting the below mentioned exception.
1. I tried doing explicit connection.commit but that didnt work either
as it threw an error message saying you cannot call commit in a global
transaction.
2. I have my MDB and Session bean transaction attribute as Required.
3. I have the isolation of the Oracle jdbc datasource as Read
committed.
I have not got a comprehensive solution to this problem yet. I have
tried the above three methods. Please let me know what I maybe
missing. I am using classes12.zip for oracle driver. Thanks in advance
[9/13/04 9:19:44:750 CDT] 66101199 MCWrapper E J2CA0081E: Method
cleanup failed while trying to execute method cleanup on
ManagedConnection com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl@771991b5
from resource jdbc/EIErrorListenerOracleDataSource. Caught exception:
com.ibm.ws.exception.WsException: DSRA0080E: An exception was received
by the Data Store Adapter. See original exception message: Use
explicit XA call.
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:244)
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:171)
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:124)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:2357)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanup(WSRdbManagedConnectionImpl.java:2249)
at com.ibm.ejs.j2c.MCWrapper.cleanup(MCWrapper.java:1160)
at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:291)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:1219)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1667)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletionCode(XATransactionWrapper.java:359)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletion(XATransactionWrapper.java:300)
at com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeAfter(RegisteredSyncs.java:161)
at com.ibm.ws.Transaction.JTA.TransactionImpl.distributeAfter(TransactionImpl.java:2344)
at com.ibm.ws.Transaction.JTA.RegisteredResources.distributeCommit(RegisteredResources.java:1570)
at com.ibm.ws.Transaction.JTA.TransactionImpl.internalCommit(TransactionImpl.java:1432)
at com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1012)
at com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:150)
at com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:182)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:696)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:165)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:565)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3038)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:372)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
Caused by: java.sql.SQLException: Use explicit XA call
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:273)
at oracle.jdbc.driver.OracleConnection.setAutoCommit(OracleConnection.java:791)
at com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCleanup(OracleDataStoreHelper.java:1005)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:2335)
... 22 more
---- Begin backtrace for nested exception
java.sql.SQLException: Use explicit XA call
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:273)
at oracle.jdbc.driver.OracleConnection.setAutoCommit(OracleConnection.java:791)
at com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCleanup(OracleDataStoreHelper.java:1005)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:2335)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanup(WSRdbManagedConnectionImpl.java:2249)
at com.ibm.ejs.j2c.MCWrapper.cleanup(MCWrapper.java:1160)
at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:291)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:1219)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1667)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletionCode(XATransactionWrapper.java:359)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletion(XATransactionWrapper.java:300)
at com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeAfter(RegisteredSyncs.java:161)
at com.ibm.ws.Transaction.JTA.TransactionImpl.distributeAfter(TransactionImpl.java:2344)
at com.ibm.ws.Transaction.JTA.RegisteredResources.distributeCommit(RegisteredResources.java:1570)
at com.ibm.ws.Transaction.JTA.TransactionImpl.internalCommit(TransactionImpl.java:1432)
at com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1012)
at com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:150)
at com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:182)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:696)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:165)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:565)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3038)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:372)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
[9/13/04 9:19:44:797 CDT] 66101199 WSRdbManagedC W DSRA0180W:
Exception detected during ManagedConnection.destroy(). The exception
is: com.ibm.ws.exception.WsException: DSRA0080E: An exception was
received by the Data Store Adapter. See original exception message:
Use explicit XA call.
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:244)
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:171)
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:124)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:2357)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.destroy(WSRdbManagedConnectionImpl.java:1945)
at com.ibm.ejs.j2c.MCWrapper.destroy(MCWrapper.java:1310)
at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:304)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:1219)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1667)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletionCode(XATransactionWrapper.java:359)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletion(XATransactionWrapper.java:300)
at com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeAfter(RegisteredSyncs.java:161)
at com.ibm.ws.Transaction.JTA.TransactionImpl.distributeAfter(TransactionImpl.java:2344)
at com.ibm.ws.Transaction.JTA.RegisteredResources.distributeCommit(RegisteredResources.java:1570)
at com.ibm.ws.Transaction.JTA.TransactionImpl.internalCommit(TransactionImpl.java:1432)
at com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1012)
at com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:150)
at com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:182)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:696)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:165)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:565)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3038)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:372)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
Caused by: java.sql.SQLException: Use explicit XA call
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:273)
at oracle.jdbc.driver.OracleConnection.setAutoCommit(OracleConnection.java:791)
at com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCleanup(OracleDataStoreHelper.java:1005)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:2335)
... 22 more
---- Begin backtrace for nested exception
java.sql.SQLException: Use explicit XA call
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:273)
at oracle.jdbc.driver.OracleConnection.setAutoCommit(OracleConnection.java:791)
at com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCleanup(OracleDataStoreHelper.java:1005)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:2335)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.destroy(WSRdbManagedConnectionImpl.java:1945)
at com.ibm.ejs.j2c.MCWrapper.destroy(MCWrapper.java:1310)
at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:304)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:1219)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1667)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletionCode(XATransactionWrapper.java:359)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletion(XATransactionWrapper.java:300)
at com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeAfter(RegisteredSyncs.java:161)
at com.ibm.ws.Transaction.JTA.TransactionImpl.distributeAfter(TransactionImpl.java:2344)
at com.ibm.ws.Transaction.JTA.RegisteredResources.distributeCommit(RegisteredResources.java:1570)
at com.ibm.ws.Transaction.JTA.TransactionImpl.internalCommit(TransactionImpl.java:1432)
at com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1012)
at com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:150)
at com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:182)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:696)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:165)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:565)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3038)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:372)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
.
[9/13/04 9:19:44:828 CDT] 66101199 MCWrapper E J2CA0081E: Method
destroy failed while trying to execute method destroy on
ManagedConnection com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl@771991b5
from resource No longer available. Caught exception:
com.ibm.ws.exception.WsException: DSRA0080E: An exception was received
by the Data Store Adapter. See original exception message: Use
explicit XA call.
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:244)
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:171)
at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:124)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:2357)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.destroy(WSRdbManagedConnectionImpl.java:1945)
at com.ibm.ejs.j2c.MCWrapper.destroy(MCWrapper.java:1310)
at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:304)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:1219)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1667)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletionCode(XATransactionWrapper.java:359)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletion(XATransactionWrapper.java:300)
at com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeAfter(RegisteredSyncs.java:161)
at com.ibm.ws.Transaction.JTA.TransactionImpl.distributeAfter(TransactionImpl.java:2344)
at com.ibm.ws.Transaction.JTA.RegisteredResources.distributeCommit(RegisteredResources.java:1570)
at com.ibm.ws.Transaction.JTA.TransactionImpl.internalCommit(TransactionImpl.java:1432)
at com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1012)
at com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:150)
at com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:182)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:696)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:165)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:565)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3038)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:372)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
Caused by: java.sql.SQLException: Use explicit XA call
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:273)
at oracle.jdbc.driver.OracleConnection.setAutoCommit(OracleConnection.java:791)
at com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCleanup(OracleDataStoreHelper.java:1005)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:2335)
... 22 more
---- Begin backtrace for nested exception
java.sql.SQLException: Use explicit XA call
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:273)
at oracle.jdbc.driver.OracleConnection.setAutoCommit(OracleConnection.java:791)
at com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCleanup(OracleDataStoreHelper.java:1005)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:2335)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.destroy(WSRdbManagedConnectionImpl.java:1945)
at com.ibm.ejs.j2c.MCWrapper.destroy(MCWrapper.java:1310)
at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:304)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:1219)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1667)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletionCode(XATransactionWrapper.java:359)
at com.ibm.ejs.j2c.XATransactionWrapper.afterCompletion(XATransactionWrapper.java:300)
at com.ibm.ws.Transaction.JTA.RegisteredSyncs.distributeAfter(RegisteredSyncs.java:161)
at com.ibm.ws.Transaction.JTA.TransactionImpl.distributeAfter(TransactionImpl.java:2344)
at com.ibm.ws.Transaction.JTA.RegisteredResources.distributeCommit(RegisteredResources.java:1570)
at com.ibm.ws.Transaction.JTA.TransactionImpl.internalCommit(TransactionImpl.java:1432)
at com.ibm.ws.Transaction.JTA.TransactionImpl.commit(TransactionImpl.java:1012)
at com.ibm.ws.Transaction.JTA.TranManagerImpl.commit(TranManagerImpl.java:150)
at com.ibm.ws.Transaction.JTA.TranManagerSet.commit(TranManagerSet.java:182)
at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:696)
at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:165)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:565)
at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:3038)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:102)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:372)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
We changed MDB to 'Bean Managed' and problem went away. Try this if
you are using 'Container Managed '.
ksto...@yahoo.com (Kamlesh Totlani) wrote in message news:<23e7a1b4.04091...@posting.google.com>...
I found a solution to my problem but dont know if its a good one. I
just upgraded my oracle driver to the latest one available for jdk1.3
from the Oracle website
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html
After that I never got the error. Its just doesnt seem appropriate to
me that the version of the driver can solve this error. But I am not
complaining.
Thanks,
use...@hotmail.com (userwas) wrote in message news:<94c26615.0409...@posting.google.com>...