java.sql.SQLRecoverableException:Closed Resultset:next

时间:2013-05-19 11:20:55

标签: java hibernate c3p0

我们正在将我们的应用程序从Hibernate deault池迁移到C3P0

我们的应用程序在默认池配置中正确运行。但是对于C3P0,它显示在异常之下。

  
    

16:45:35,890 |调试| com.mchange.v2.sql.SqlUtils - 尝试将SQLException转换为SQLException。一个人待着。 [SQLState:08003; errorCode:17010]     java.sql.SQLRecoverableException:Closed Resultset:next         在oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:214)

  

我们对C3P0的配置低于

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
    <property name="hibernate.c3p0.min_size">20</property>
    <property name="hibernate.c3p0.max_size">200</property>
    <property name="hibernate.c3p0.timeout">3000</property>
    <property name="hibernate.c3p0.max_statements">50</property>
    <property name="hibernate.c3p0.idle_test_period">3000</property>

我们正在使用C3P0.0.9.1.2 jar进行配置。

感谢您提供帮助。

1 个答案:

答案 0 :(得分:0)

这基本上是一条跟踪消息。 c3p0将在DEBUG级别上记录很多内容。 c3p0库通常用于在INFO中记录。

所有消息告诉你的是c3p0观察到一个异常,为了符合JDBC API,需要重新抛出为SQLException。但是,它已经是一个SQLException,所以c3p0让它独自一人。看起来您的应用程序在关闭的结果集上调用next()。如果此消息后面没有异常的某些证据,那么您的应用程序可能会处理(或吞下或做某事)。希望它做对了。

最简单的解决方案是将com.mchange中记录器的日志记录级别设置为INFO。

请升级到c3p0-0.9.2.1。