druid连接池的超时回收机制


		
		
		
		
		

数据库有些连接会忘记关闭,这样连池的连接就会逐渐达到maxActive直至连接池无法提供服务。

使用druid连接池的超时回收机制就可以解决连接泄露问题

上面的代码解析如下:

设置removeAbandoned="true"时,当连接池连接数到达(getNumIdle() < 2) and (getNumActive() > getMaxActive() - 3)  [空闲的连接小于2并且活动的连接大于(最大连接-3)] 时便会启动连接回收,

那种活动时间超过removeAbandonedTimeout="1800"的连接将会被回收,

同时如果logAbandoned="true"设置为true,程序在回收连接的同时会打印日志。

removeAbandoned是连接池的高级功能,理论上这中配置不应该出现在实际的生产环境,因为有时应用程序执行长事务,可能这种情况下,会被连接池误回收,该种配置一般在程序测试阶段,为了定位连接泄漏的具体代码位置,被开启。

生产环境中连接的关闭应该靠程序自己保证。


你可能感兴趣的:(spring,database)