首页 > 解决方案 > C3P0:池已满

问题描述

有人能告诉我这是什么意思吗?我最近将我几乎所有的代码都转换为 try-with-resources,这样清理连接的问题就会减少。我假设我已经用完了 C3P0 将在没有额外配置的情况下处理的连接数。这是一个主要是单线程的东西。这里还有另一个线程在工作,但我确实有代码在完成后关闭连接。我正在尝试查看我的日志文件以查找在 C3P0 达到最大值之前发生 15 次的事情。现在我的程序似乎被挂起并且没有为它做新的工作。

2020-04-28 14:17:12 [DEBUG] [main] - acquire test -- pool is already maxed out. [managed: 15; max: 15]
2020-04-28 14:17:12 [DEBUG] [main] - awaitAvailable(): com.mchange.v2.c3p0.impl.NewPooledConnection@c1997cd
2020-04-28 14:17:42 [DEBUG] [RepostWatcher] - acquire test -- pool is already maxed out. [managed: 15; max: 15]
2020-04-28 14:17:42 [DEBUG] [RepostWatcher] - awaitAvailable(): com.mchange.v2.c3p0.impl.NewPooledConnection@c1997cd

标签: javac3p0

解决方案


您可能正在泄漏连接,即没有可靠地确保每次打开连接时都关闭它们。每当您获得连接时,您都应该使用诸如try with resources之类的构造。如果您需要调试在您的代码库连接中打开但可能尚未关闭的位置,请参阅此处的文档。


推荐阅读