环境weblogic8.1,数据库oracle,
在消息Bean中调用Hibernate的
session.close()的时候抛出了下面的错误,请教是什么原因
21:16:54,480 WARN JDBCExceptionReporter:38 - SQL Error: 0, SQLState: null
21:16:54,480 ERROR JDBCExceptionReporter:46 - The transaction is no longer activ
e - status: 'Committed'. No further JDBC access is allowed within this transacti
on.
21:16:54,500 ERROR JDBCExceptionReporter:38 - Cannot close connection
java.sql.SQLException: The transaction is no longer active - status: 'Committed'
. No further JDBC access is allowed within this transaction.
at weblogic.jdbc.wrapper.JTSConnection.checkIfRolledBack(JTSConnection.j
ava:118)
at weblogic.jdbc.wrapper.JTSConnection.checkConnection(JTSConnection.jav
a:127)
at weblogic.jdbc.wrapper.Connection.preInvocationHandler(Connection.java
:67)
at weblogic.jdbc.wrapper.JTSConnection_oracle_jdbc_driver_OracleConnecti
on.getWarnings(Unknown Source)
at net.sf.hibernate.impl.BatcherImpl.closeConnection(BatcherImpl.java:27
4)
at net.sf.hibernate.impl.SessionImpl.disconnect(SessionImpl.java:3337)
at net.sf.hibernate.impl.SessionImpl.close(SessionImpl.java:504)
at com.whir.ezoffice.personalwork.innermailbox.ejb.InnerMailJMSBean.onMe
ssage(InnerMailJMSBean.java:45)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:382)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.
java:316)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
net.sf.hibernate.JDBCException: Cannot close connection
at net.sf.hibernate.impl.BatcherImpl.closeConnection(BatcherImpl.java:28
0)
at net.sf.hibernate.impl.SessionImpl.disconnect(SessionImpl.java:3337)
at net.sf.hibernate.impl.SessionImpl.close(SessionImpl.java:504)
at com.whir.ezoffice.personalwork.innermailbox.ejb.InnerMailJMSBean.onMe
ssage(InnerMailJMSBean.java:45)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:382)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.
java:316)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
Caused by: java.sql.SQLException: The transaction is no longer active - status:
'Committed'. No further JDBC access is allowed within this transaction.
at weblogic.jdbc.wrapper.JTSConnection.checkIfRolledBack(JTSConnection.j
ava:118)
at weblogic.jdbc.wrapper.JTSConnection.checkConnection(JTSConnection.jav
a:127)
at weblogic.jdbc.wrapper.Connection.preInvocationHandler(Connection.java
:67)
at weblogic.jdbc.wrapper.JTSConnection_oracle_jdbc_driver_OracleConnecti
on.getWarnings(Unknown Source)
at net.sf.hibernate.impl.BatcherImpl.closeConnection(BatcherImpl.java:27
4)
... 10 more