java – 间歇性SQLException:OALL8处于不一致状态

我间歇性地得到以下错误.

ERROR Exception occured while fetching the available subscriptions from the database - Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed    
org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed    
Caused by: org.hibernate.TransactionException: JDBC rollback failed    
       at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:204)
           at org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:676)    
       ... 80 more    
Caused by: java.sql.SQLException: No more data to read from socket    
java.sql.SQLException: Closed Connection    
ERROR org.hibernate.transaction.JDBCTransaction 17/11/2010 20:49:41 - JDBC rollback failed
java.sql.SQLException: Io exception: Broken pipe
ERROR org.springframework.transaction.interceptor.TransactionInterceptor 17/11/2010 20:49:41 - Application exception overridden by rollback exception
org.hibernate.exception.GenericJDBCException: could not execute query
java.sql.SQLException: OALL8 is in an inconsistent state

数据库:Oracle9i

JDBC驱动程序:10.2.0.4.0

开发环境:Mule 3.0,Spring 3.0和Hibernate 3

解决方法:

“OALL8处于不一致状态”是JDBC 10.1,10.2和11.1中发生的一般异常.它表示在JDBC连接中检测到内部不一致,但它不提供导致不一致的原因的信息. JDBC 11.2中不再出现该异常.
该错误通常是由JDBC代码中的错误引起的.这些很难分析.最简单的解决方案是升级JDBC驱动程序.

上一篇:java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Time


下一篇:java – Spring JDBCTemplate给出InvalidResultSetAccessException无效的列索引