druid连接池的超时回收机制
<!-- 打开removeAbandoned功能 -->
<property name="removeAbandoned" value="true" />
<!-- 1800秒,也就是30分钟 -->
<property name="removeAbandonedTimeout" value="1800" />
<!-- 关闭abanded连接时输出错误⽇志 -->
<property name="logAbandoned" value="true" />
数据库有些连接会忘记关闭,这样连池的连接就会逐渐达到maxActive直⾄连接池⽆法提供服务。
使⽤druid连接池的超时回收机制就可以解决连接泄露问题
上⾯的代码解析如下:
设置removeAbandoned="true"时,当连接池连接数到达(getNumIdle() < 2) and (getNumActive() > getMaxActive() - 3) [空闲的连接⼩于2并且活动的连接⼤于(最⼤连接-3)] 时便会启动连接回收,
那种活动时间超过removeAbandonedTimeout="1800"的连接将会被回收,druid连接池配置详解
同时如果logAbandoned="true"设置为true,程序在回收连接的同时会打印⽇志。
removeAbandoned是连接池的⾼级功能,理论上这中配置不应该出现在实际的⽣产环境,因为有时应⽤程序执⾏长事务,可能这种情况下,会被连接池误回收,该种配置⼀般在程序测试阶段,为了定位连接泄漏的具体代码位置,被开启。
⽣产环境中连接的关闭应该靠程序⾃⼰保证。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论