我刚刚开始在带有 hibernate 的 swing 应用程序中使用 HikariCP。我正在维护旧项目,所以那里发生了很多疯狂的事情。连接泄漏检测功能帮助我了解 session 仅在某些事件时才会关闭,例如当用户单击“保存”按钮时。在其他情况下,则存在泄漏。我认为以前的开发人员试图实现“长时间对话”工作单元,但他们错过了一些(大多数)情况。
所以我现在的目标是找到所有漏洞并修复它们。我计划使用 HikariCP 调试输出来帮助我做到这一点。我不知道 HikariCP 文档上是否有一个 wiki 页面解释了调试的输出,但我想知道应用程序空闲时的输出是否正常,或者那里有一些奇怪的东西我应该调查更多:
2015-09-14 01:12:51 DEBUG HikariPool - After fill pool stats HikariPool-0 (total=10, inUse=3, avail=7, waiting=0)
2015-09-14 01:13:21 DEBUG HikariPool - Before cleanup pool stats HikariPool-0 (total=10, inUse=3, avail=7, waiting=0)
2015-09-14 01:13:21 DEBUG HikariPool - After cleanup pool stats HikariPool-0 (total=6, inUse=3, avail=3, waiting=0)
2015-09-14 01:13:21 DEBUG PoolUtilities - Closing connection com.mysql.jdbc.JDBC4Connection@4fb38272
2015-09-14 01:13:21 DEBUG PoolUtilities - Closing connection com.mysql.jdbc.JDBC4Connection@417465f4
2015-09-14 01:13:21 DEBUG PoolUtilities - Closing connection com.mysql.jdbc.JDBC4Connection@454be902
2015-09-14 01:13:21 DEBUG PoolUtilities - Closing connection com.mysql.jdbc.JDBC4Connection@496fcf
如果这是正常行为,我还想知道这 4 个连接的用途,以及它们为何在此时关闭。谢谢。
最佳答案
这都是正常输出。这些连接可能由于在“idleTimeout”期间处于空闲状态或因为达到其生命周期(“maxLifetime”)而关闭。我确实建议更新到最新版本 (2.4.x),这通常会在调试日志消息中提供连接关闭的原因。
关于swing - HikariCP 调试输出,这正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32555098/