Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SQLException Use Explicit XA Call

29 views
Skip to first unread message

Kamlesh Totlani

unread,
Sep 13, 2004, 3:00:53 PM9/13/04
to
Hi,

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)

userwas

unread,
Sep 14, 2004, 1:56:08 PM9/14/04
to
Are you using 'Container Managed ' or 'Bean Managed' ? We had a
similar problem though not exactly the same. It was on DB2 though.

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>...

Kamlesh Totlani

unread,
Oct 4, 2004, 5:10:33 PM10/4/04
to
Hi,

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>...

0 new messages