如果 C3P0 无法获得数据库连接,则 Tomcat 挂起
Posted
技术标签:
【中文标题】如果 C3P0 无法获得数据库连接,则 Tomcat 挂起【英文标题】:Tomcat hangs if C3P0 can't get a database connection 【发布时间】:2013-05-20 07:29:40 【问题描述】:我有一个使用 Spring+Hibernate+C3P0 作为连接池的应用程序。如果我启动应用程序并且数据库已关闭,Tomcat 会挂起很长的日志时间而没有提供任何反馈。我可以设置一些属性来避免这种情况吗?例如30秒后无法连接,则抛出连接超时异常。
【问题讨论】:
【参考方案1】:默认情况下,如果 c3p0 无法获取连接,它应该需要大约 30 秒才能发出失败信号。您可以通过修改 c3p0 在数据库上的尝试次数或尝试之间的间隔来控制时间长度。
请参阅 c3p0.acquireRetryAttempts 和 c3p0.acquireRetryDelay。
如果您将 c3p0.acquireRetryAttempts 设置为 1,c3p0 将不会重试并且连接尝试将立即重试失败。
另见Configuring Recovery From Database Outages。
【讨论】:
以上是关于如果 C3P0 无法获得数据库连接,则 Tomcat 挂起的主要内容,如果未能解决你的问题,请参考以下文章
c3p0数据库连接池 原创: Java之行 Java之行 5月8日 连接池概述 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程