2

時折、この例外が表示されます。これは、アプリケーションの重要なビジネス プロセスの一部に影響を与えます。どうなり得るか?誰かに同様のエラーがありましたか?

OJDBC14 & Hibernate 3 で WebSphere 6 を使用しています。

[21.02.14 06:46:03:209 PST] 00000031 MCWrapper     E   J2CA0081E: Method cleanup failed while trying to execute method cleanup on ManagedConnection WSRdbManagedConnectionImpl@4d34b403 from ressource jdbc/MYDS. Caught exception: com.ibm.ws.exception.WsException: DSRA0080E: An exception was received by the Data Store Adapter. See original exception message: Cannot call 'cleanup' on a ManagedConnection while it is still in a transaction..
    at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:226)
    at com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:177)
    at com.ibm.ws.rsadapter.AdapterUtil.createDataStoreAdapterException(AdapterUtil.java:232)
    at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupTransactions(WSRdbManagedConnectionImpl.java:3392)
    at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanup(WSRdbManagedConnectionImpl.java:3025)
    at com.ibm.ejs.j2c.MCWrapper.cleanup(MCWrapper.java:1353)
    at com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:462)
    at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:1543)
    at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:2031)
    at com.ibm.ejs.j2c.ConnectionEventListener.connectionClosed(ConnectionEventListener.java:263)
    at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.processConnectionClosedEvent(WSRdbManagedConnectionImpl.java:1477)
    at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.closeWrapper(WSJdbcConnection.java:724)
    at com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java(Compiled Code))
    at com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java(Compiled Code))
    at org.hibernate.connection.DatasourceConnectionProvider.closeConnection(DatasourceConnectionProvider.java:74)
    at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:445)
    at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:379)
    at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:318)
    at org.hibernate.impl.SessionImpl.close(SessionImpl.java:293)

更新: これは、finally ブロックで session.close() を実行すると発生します。このようなもの:

try {
    tx = session.beginTransaction();

    // some code

    if (!tx.wasRolledBack() && !tx.wasCommitted()) {
        tx.commit();
    }
} catch (Exception ex) {
    // rollback transaction in case of errors
}
finally {
    session.close(); // Exception happens here!
}
4

1 に答える 1

2

私はいくつかのエラーを抱えています. 彼は次のように述べています。同じ接続オブジェクトに対する単一のステートメントで、それらはコミットされませんでした。". お役に立てば幸いです。

于 2016-07-26T17:34:14.913 に答える