数据库连接池之超时总结 .

       大家都觉得使用连接池可以使连接更好的控制,于是乎简单的配置了一下连接池就行了,只要能连接到数据库就觉得什么都ok了.其实不然,如果不正确的配置一 下连接池,那将得不偿失!原因是:连接池的确会减少每次连接数据库对系统带来的开销,因为连接池中会存在一些可用的连接,程序使用的时候直接来这里取就行 了,连接池中的连接一般情况下是不会被关闭的,这点就是问题的所在!这么多的没关闭连接会直接耗掉数据库所能提供的连接数!这和直接使用程序去连接而忘了 关闭连接是一样的效果!甚至更为严重(因为连接池中的连接会不停的被发sql去test而不会过时,程序中的连接会超时)!      

        所以以后使用连接池时,一定要记得配置超时选项,而不是简单的配置一下最大数和最小数就行了.大多数连接池都有一个配置池中超时连接的选项,比如dpcp 的maxWait,proxool的maximum-connection-lifetime,jboss自带连接池的 IdleTimeoutMinutes等,但是它们默认都是0过-1L!也就是说,默认情况下,连接池中的连接是不会超时的!这点很重要:池中的连接永远保持着与数据库的连接!!当使用完这些连接后如果再有其它外来连接想使用数据库的话,数据库就再没有可用的连接可以提供了!(注:这句话可能有问题,需要查证

         所以在配置连接池的时候一定要记得把这些超时选项配置好,不然,使用连接池将得不偿失. 
造成数据库连接池之超时总结:  
     1.连接池配置时,要注意的 地方:最大连接数小于或者等于数据库服务器端配置的最大连接数,否则多余的连接在被应用程序使用时将可能会出现连接超时 

     2.网络阻塞:由于每次连接同时往数据库服务器端提交或者维护大量数据,如果网络不稳定也会造成连接超  时
     3.应用程序中释放占用的数据库资源,由于connect--->statement--->resultSet为爷--->父--->子关系,
statement和resultSet被实例化,实际上在数据库端开启游标之类的资源,需要应用程序这边close掉,所以在close连接时,先要关闭resultSet,statement ,否则可能导致服务器端资源耗尽,同样也会出现应用程序连接超时问题

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值