java – 使用’debugUnreturnedConnectionStackTraces’调试连接丢失

我正在努力解决正在进行的项目的连接超时问题.我们使用c3p0来管理连接池和hibernate作为orm工具.我们也用春天.

要查找是否有任何未返回的连接,我已在我的c3p0配置中将debugUnreturnedConnectionStackTraces设置为true(不在c3p0属性中).

还有什么我需要做的.我是否还要向lod4j.properties添加任何内容,还是仅将debugUnreturnedConnectionStackTraces设置为true?

另外,我应该在c3p0属性中将debugUnreturnedConnectionStackTraces设置为true吗?

谢谢您的帮助

解决方法

对Corey的答案进行了扩展:

如果unreturnedConnectionTimeout为正且debugUnreturnedConnectionStackTraces设置为true,则记录器“com.mchange.v2.resourcepool.BasicResourcePool”将在INFO级别记录生成未返回异常的堆栈跟踪.

通常人们会从所有记录器中记录INFO级别以上的任何内容,因此这些堆栈跟踪只会出现在您的日志中.但是,如果您没有看到它们,请检查您的日志记录配置,以确保不会过滤来自该记录器的INFO消息.

请注意,如果未设置unreturnedConnectionTimeout,则debugUnreturnedConnectionStackTraces将执行nothing.

看到

http://www.mchange.com/projects/c3p0/#unreturnedConnectionTimeout

http://www.mchange.com/projects/c3p0/#debugUnreturnedConnectionStackTraces

我希望这有帮助!

附:只要设置正确,无论如何设置这些属性都无关紧要. c3p0在池启动时转储INFO池配置;检查您的日志以确保无论您是否尝试设置参数,都可以获得预期的配置.或者,您可以使用JMX检查参数.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...