【问题标题】:Connection pool C3P0 logging连接池 C3P0 日志记录
【发布时间】:2012-08-02 21:53:39
【问题描述】:

我有一个使用 c3p0 作为连接池的 Web 应用程序。我们使用hibernate作为orm工具。 最近,我们收到了连接超时异常。为了调试这些异常,我启用了 C3p0 的日志记录并在日志中获取了一些信息。任何人都可以帮助我完全理解它。

DEBUG 2012-08-05 14:43:52,590 [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] com.mchange.v2.c3p0.stmt.GooGooStatementCache: checkinAll(): com.mchange.v2.c3p0.stmt.GlobalMaxOnlyStatementCache stats -- total size: 2; checked out: 0; num connections: 1; num keys: 2

从上面我可以观察到连接池的总大小是2。签出的连接数是0。对吗?而上面的num_connections和num keys是什么?

谢谢..

【问题讨论】:

    标签: java spring hibernate connection c3p0


    【解决方案1】:

    您在引用的日志中看到的是语句缓存的快照,而不是连接池。在记录该消息时,有两个缓存的 PreparedStatement,它们属于单个 Connection。这两个语句都没有被签出/正在使用中。

    我希望这会有所帮助!

    【讨论】:

    • 谢谢 steve...我更改了 log4j.properties 中的记录器,现在有一组不同的日志..
    • 调试 2012-08-05 19:44:02,526 [Timer-2] com.mchange.v2.resourcepool.BasicResourcePool:跟踪 com.mchange.v2.resourcepool.BasicResourcePool@5c73f637 [托管:4 ,未使用:4,排除:0](例如 com.mchange.v2.c3p0.impl.NewPooledConnection@74904d13)你能告诉我这个日志中托管、未使用和排除的含义吗?
    • "managed" 表示池中的连接数; “未使用”是指客户端当前未签出的连接数,因此在池中可用; “排除”是指已签出但遇到某种错误或故障的连接,因此当客户端尝试将它们签回池中时,c3p0 已将它们标记为待处理而不是重新合并。
    【解决方案2】:

    异常可能是由于错误地定义了 C3P0 设置。确保链接到正确的 jar 文件 您的应用程序必须链接到“hibernate-c3p0*.jar”而不是“c3p0*.jar”。 hibernate.cfg 文件必须定义 hibernate.connection.provider_class 属性才能使 c3p0 设置生效。下面是一个示例设置

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

    日志条目指定池中有 4 个连接,并且所有 4 个连接都可供应用程序使用。对数据库运行查询以列出所有活动连接将显示池连接。例如,在 Mysql 中,您可以运行“show processlist;”来查看这些连接。

    【讨论】:

      猜你喜欢
      • 2011-02-27
      • 2013-08-20
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多