数据库连接异常Cannot get a connection, pool error Timeout waiting for idle object

中文解释

无法获取连接,连接池等待空闲对象超时错误

原因1

应用程序没有很好的关闭使用后的连接

方案1:

请检查自己的应用程序是否正确关闭了数据库连接,注意一定要放到finally中关闭

方案2:

如果确实无法排查出具体哪些代码没有关闭数据库连接,可以通过配置参数完成自动回收,并记录回收日志,以便于定位问题代码;tomcat中连接池的配置自动回收参数为:removeAbandoned、 removeAbandonedTimeout、logAbandoned三个。

原因2

应用压力过大,确实无法获取空闲连接

方案1:

这种情况可以调整maxActive、maxIdle、maxWait等连接池的容量和超时限制等参数以获取更大的连接池容量和等待时间。

参考资料

下面以tomcat配置sqlserver的连接池为例进行参数说明

关于tomcat连接池参数以及参数说明,请参考:http://static.helloworld114.com/pages/essay/38437.html

<Resource 

            name=" test " 

            auth="Container" 

            type="javax.sql.DataSource" 

            maxActive="500" 

            maxIdle="30" 

            maxWait="10000" 

            username="sa" 

            password="sa" 

            driverClassName="net.sourceforge.jtds.jdbc.Driver" 

            url="jdbc:jtds:sqlserver://127.0.0.1:1433/test;selectMODE=cursor"

             removeAbandoned="true"

removeAbandonedTimeout="60"

logAbandoned="true"

         />

本文转载自:http://static.helloworld114.com/pages/exception/4.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是由于连接池中的连接资源被耗尽或者连接超时导致的。当应用程序需要从连接池获取一个数据库连接时,如果连接池中没有可用的空闲连接,并且已经达到了最大连接数限制,就会出现"Cannot get a connection, pool error Timeout waiting for idle object"的错误。 解决这个问题的方法有以下几种: 1. 增加连接池的最大连接数:可以通过增加连接池的最大连接数来避免连接资源不足的问题。但是要注意,过多的连接数可能会对数据库服务器造成负担,所以需要根据实际情况进行调整。 2. 检查数据库连接是否正确关闭:在使用完数据库连接后,一定要及时将其关闭,释放给连接池。如果没有正确关闭连接,连接池中的连接资源就会被占用而无法释放,导致连接池中的连接数量逐渐减少,最终耗尽。 3. 调整连接超时时间:连接池通常会设置一个连接的最大空闲时间和最大生存时间,如果连接在规定的时间内没有被使用,则会被回收。可以根据实际情况调整连接超时时间,确保连接能够得到有效地复用。 4. 检查数据库服务器性能:如果数据库服务器的性能较差,处理请求的速度较慢,可能会导致连接池中的连接等待超时。可以通过优化数据库服务器的配置或者增加硬件资源来提升性能。 5. 检查网络连接是否正常:如果应用程序和数据库服务器之间的网络连接存在问题,也有可能导致连接超时错误。可以检查网络连接是否稳定,并且确保防火墙或其他安全设置没有阻止数据库连接。 希望以上解答对您有帮助!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值