我最近从 Apache DBCP 连接池切换到 C3P0 并查看了我的日志,发现存在连接超时问题。我过去在 DBCP 和 Tomcat 中没有遇到过这种情况,所以我想知道这是配置问题还是驱动程序问题。
每当我在服务器闲置一段时间后加载页面时,我都会看到某些内容未发送(因为服务器无法获得连接或其他原因)。当我刷新页面时,所有内容都在那里。
既然我一直在使用 MySQL,有人推荐使用 MySQL 连接池吗?您对 MySQL 连接池有何体验?
沃尔特
最佳答案
如果您正在使用的数据库被配置为在一段时间不活动后超时连接,则它们已经关闭,因此在从池中借用它们时无法使用。
如果您不能或不想重新配置您的数据库服务器,您可以配置 C3P0(和大多数其他连接池)以在从池中借用连接时使用测试查询来测试连接。您可以在 the relevant section of the C3P0 documentation 中找到更多详细信息。 .
编辑: 当然,您是对的,也有可能在 DBCP 池中配置了最长空闲时间,导致它们在超时之前从池中删除。无论如何,使用测试查询或确保连接在超时之前从池中删除应该可以解决问题。
关于mysql - Hibernate、C3P0、Mysql 连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1860419/