0

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

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

16:45:35,890 | 调试 | com.mchange.v2.sql.SqlUtils - 尝试将 SQLException 转换为 SQLException。不理它。[SQL状态:08003;错误代码:17010] java.sql.SQLRecoverableException:关闭结果集:下一个在 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配置。

感谢您提供帮助。

4

1 回答 1

0

这基本上是一个跟踪消息。c3p0 将在 DEBUG 级别记录大量日志。c3p0 库通常用于记录在 INFO 中。

所有消息都告诉您,c3p0 观察到一个异常,为了符合 JDBC API,需要将其作为 SQLException 重新抛出。但是,它已经是一个 SQLException,所以 c3p0 不理会它。看起来您的应用程序在一个封闭的结果集上调用了 next()。如果此消息后面没有出现异常的一些证据,则您的应用程序可能会处理(或吞下或做某事)它。希望它做正确的事。

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

请升级到 c3p0-0.9.2.1。

于 2013-05-19T11:59:59.220 回答