`

tomcat数据库连接池连接数耗尽的解决方法

 
阅读更多

 

一般来说,在tomcat中配置数据库连接池,而我们不停的建立数据库连接,而没有关闭数据库的连接的话就会产生这样的异常:Cannot get a connection, pool exhaustedCannot get a connection, pool exhausted 。其实,这是由于连接池中的连接被消耗殆尽的缘故。我们实际上,在开发中应该养成良好的开发习惯,就是在用完连接后应该马上关闭Connection,这样就很好的解决了这样的问题。

    可能有人会说,那每次用完池的连接都要关闭数据库的连接,那池就不起作用了吗?那不就是用完一次连接就关闭,然后再次建立连接,这样效率不是依然很低吗?其实不然,这里调用con.close()其实并没有把这个连接真正的关闭掉,而是容许池把此连接再次放回到池中分配给别的客户端来使用,所以大可以放心的关闭连接,而不影响连接池的效率。

    当然,这不是唯一的解决方案,但是我认为这是最好的解决方案。但是,如果你在编程的时候的确是忘记关闭数据库的连接,那依然有其他的解决方案:(当然最好是在finally中关闭con)

    1. 可以重新启动你的tomcat服务器,这是最灵的解决方案,不过没什么技术含量
    2. 在数据源的配置文件中把maxactive属性的值调整到更大,比如100 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics