数据库连接异常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

            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

你可能感兴趣的:(异常方案)