2014-02-23 14 views
1

경우에 따라이 예외가 표시됩니다. 이는 응용 프로그램의 중요한 비즈니스 프로세스 중 일부에 영향을줍니다. 뭐가 될수 있었는지? 비슷한 오류가있는 사람이 있습니까? I finally 블록에 session.close()를 수행 할 때이 문제가 발생 : J2CA0081E Websphere 6 예외

나는 OJDBC14 & 최대 절전 모드 3.

[21.02.14 06:46:03:209 PST] 00000031 MCWrapper  E J2CA0081E: Method cleanup failed while trying to execute method cleanup on ManagedConnection [email protected] 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) 

업데이트와는 WebSphere 6 사용합니다. 다음과 같은 메시지가 표시됩니다.

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! 
} 
+0

오라클 드라이버 버전은 무엇입니까? –

+0

OJDBC 10.2.0.1.0 –

+0

또한 드라이버를 10.2.0.5.0으로 업데이트하려고 시도했습니다. 같은 문제가 계속 발생합니다. –

답변

1

나는이 메시지가 https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014153732 인 것을 발견했습니다. 그는 "마침내 내 질문에 대답했습니다. 문제는 내 코드가 트랜잭션 시작시 자동 커밋을 false로 설정하고 트랜잭션이 끝났을 때 자동 커밋을 true로 설정하지 않았기 때문입니다. 동일한 연결 개체에서 단일 문을 실행하면 커밋되지 않았습니다. " 도와 드리겠습니다.