`
lin5061
  • 浏览: 80929 次
社区版块
存档分类
最新评论

使用连接池时一不小心犯的错 连接池释放连接

阅读更多

 

        大家都觉得使用连接池可以使连接更好的控制,于是乎简单的配置了一下连接池就行了,只要能连接到数据库就觉得什么都ok了.其实不然,如果不正确的配置一下连接池,那将得不偿失!原因是:连接池的确会减少每次连接数据库对系统带来的开销,因为连接池中会存在一些可用的连接,程序使用的时候直接来这里取就行了,连接池中的连接一般情况下是不会被关闭的,这点就是问题的所在!这么多的没关闭连接会直接耗掉数据库所能提供的连接数!这和直接使用程序去连接而忘了关闭连接是一样的效果!甚至更为严重(因为连接池中的连接会不停的被发sql去test而不会过时,程序中的连接会超时)!
        所以以后使用连接池时,一定要记得配置超时选项,而不是简单的配置一下最大数和最小数就行了.大多数连接池都有一个配置池中超时连接的选项,比如dpcp的maxWait,proxool的maximum-connection-lifetime,jboss自带连接池的IdleTimeoutMinutes等,但是它们默认都是0过-1L!也就是说,默认情况下,连接池中的连接是不会超时的!这点很重要:池中的连接永远保持着与数据库的连接!!当使用完这些连接后如果再有其它外来连接想使用数据库的话,数据库就再没有可用的连接可以提供了!
        所以在配置连接池的时候一定要记得把这些超时选项配置好,不然,使用连接池将得不偿失.
(或许大家都已经配置好了,呵呵 自己记录一下,方便后面查看)

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics