【发布时间】:2016-07-08 13:06:57
【问题描述】:
我在 Tomcat7 上使用 c3p0 作为数据源池管理器运行应用程序。我添加了一个连接定制器来记录每个获取/签出/签入的数据源。
我的日志 (catalina.out) 包含许多条目,因此:
收购 com.cloudera.impala.jdbc41.ImpalaJDBC41Connection@e5059be [z8kfsx9f16wfz9m1p2ghf4|729e8277] 收购com.cloudera.impala.jdbc41.ImpalaJDBC41Connection@217a2a9 [z8kfsx9f16wfz9m1p2ghf4|729e8277] 签入 com.cloudera.impala.jdbc41.ImpalaJDBC41Connection@e5059be 签出 com.cloudera.impala.jdbc41.ImpalaJDBC41Connection@e5059be
我还注意到一些 sql 异常,例如:
java.sql.SQLException: 关闭 com.mchange.v2.c3p0.impl.NewPooledConnection@6c5ca37c 时某些资源未能正确关闭 在 com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:571) 在 com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234) 在 com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470) 在 com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964) 在 com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
当我在日志文件中搜索“6c5ca37c”时,我没有看到任何表明何时获得连接的行。解析日志显示,所有“已获取”的连接都已成功“销毁”,但所有出现 sql 异常的连接都没有任何对应的已获取行
任何见解都会有所帮助。
【问题讨论】: