java - J2CA0081E Websphere 6 异常

标签 java websphere websphere-6.1 ojdbc

偶尔我会看到这个异常。它会影响应用程序中的一些关键业务流程。会是什么呢?有人遇到过类似的错误吗?

我使用带有 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 block 中执行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!
}

最佳答案

我遇到一些错误,我发现这个解释 https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014153732 。 他说:“我终于回答了我自己的问题。问题是我的代码在事务开始时将 auto commit 设置为 false,而在事务结束时没有将其设置回 true。所以当代码尝试执行时同一连接对象上的单个语句,它们没有被提交。”。 希望对您有所帮助。

关于java - J2CA0081E Websphere 6 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21968661/

相关文章:

java - 将输出从大到小排序?

ant - 如何从 vanilla ant(不是 ws_ant)访问 Websphere 6.1 ant 任务

websphere - IBM Websphere Portal 7 中 portlet 标签库的定义 JAR 在哪里?

java - EL 相当于 WAS 8 中的 <%= object.method(parameter) %>?

web-services - WebSphere : change port of web service from default to 443

apache - httpd.conf 中 apache ThreadsPerChild 参数的硬性限制是什么?

java - 类内部线程安全

java - 基于逗号的分割线、奇怪的线

java - 对链表进行排序而不重新链接节点

java - 安装补丁后Websphere丢失配置