Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连接池C3P0日志记录_Java_Spring_Hibernate_Connection_C3p0 - Fatal编程技术网

Java 连接池C3P0日志记录

Java 连接池C3P0日志记录,java,spring,hibernate,connection,c3p0,Java,Spring,Hibernate,Connection,C3p0,我有一个web应用程序,它使用c3p0作为连接池。我们使用hibernate作为orm工具。 最近,我们遇到了连接超时异常。为了调试这些异常,我启用了C3p0的日志记录,并在日志中获得了一些信息。有谁能帮我弄清楚这件事的意义吗 DEBUG 2012-08-05 14:43:52,590 [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] com.mchange.v2.c3p0.stmt.GooGooStatement

我有一个web应用程序,它使用c3p0作为连接池。我们使用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_连接和num键是什么


谢谢..

您在引用的日志位中看到的是语句缓存的快照,而不是连接池。在记录该消息时,有两个缓存的PreparedStatements属于一个连接。两条语句均未签出/正在使用


我希望这有帮助

您在引用的日志位中看到的是语句缓存的快照,而不是连接池。在记录该消息时,有两个缓存的PreparedStatements属于一个连接。两条语句均未签出/正在使用


我希望这有帮助

异常可能是由于错误定义C3P0设置造成的。确保链接到正确的jar文件,您的应用程序必须链接到“hibernate-c3p0*.jar”而不是“c3p0*.jar”。hibernate.cfg文件必须定义
hibernate.connection.provider\u 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>
org.hibernate.connection.C3P0ConnectionProvider
5.
10
300
50
3000

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

异常可能是由于错误地定义了C3P0设置。确保链接到正确的jar文件,您的应用程序必须链接到“hibernate-c3p0*.jar”而不是“c3p0*.jar”。hibernate.cfg文件必须定义
hibernate.connection.provider\u 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>
org.hibernate.connection.C3P0ConnectionProvider
5.
10
300
50
3000

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

谢谢steve…我更改了log4j.properties中的日志,现在有了一组不同的日志..DEBUG 2012-08-05 19:44:02526[Timer-2]com.mchange.v2.resourcepool.BasicResourcePool:trace com.mchange.v2.resourcepool.resourcepool。BasicResourcePool@5c73f637 [管理:4,未使用:4,排除:0](例如com.mchange.v2.c3p0.impl。NewPooledConnection@74904d13)您能告诉我此日志中托管、未使用和排除的含义吗?“托管”表示池中的连接数;“未使用”表示客户端当前未签出且池中可用的连接数;“排除”表示已签出但遇到某种错误或故障的连接,因此当客户端尝试将其签回池时,c3p0已将其标记为待处理而不是重新合并。感谢steve…我在log4j.properties中更改了日志记录程序,现在有了一组不同的日志..DEBUG 2012-08-05 19:44:02526[Timer-2]com.mchange.v2.resourcepool.BasicResourcePool:trace com.mchange.v2.resourcepool。BasicResourcePool@5c73f637[管理:4,未使用:4,排除:0](例如com.mchange.v2.c3p0.impl。NewPooledConnection@74904d13)您能告诉我此日志中托管、未使用和排除的含义吗?“托管”表示池中的连接数;“未使用”表示当前未由客户端签出且在池中可用的连接数;“排除”表示已签出但遇到某种错误或故障的连接,因此当客户端尝试将其签回池时,c3p0已将其标记为待处理而不是重新合并。