潜龙

不易乎世,不成乎名;遯世无闷,不见是而无闷;乐则行之,忧则违之,确乎其不可拔,潜龙也。...

数据库连接优化

*****修复连接泄露代码*****

1. ndao封装的方法,不需要修复
2. 直接操作DBResource的方法,通过定义vo类来使用ndao的封装
3. 其他特殊情况,谨慎使用DBResource,确保所有的statement、resultset、transaction资
源及时回收释放
4. 线上紧急bug可先按3来处理


一、基本参数配置

1. initialSize
初始化连接数
2. maxActive
最大连接数,结合系统并发数和DB资源来确定
3. minIdle
最小空闲连接
4. maxIdle
最大空闲连接
5. maxWait
超时等待时间,不宜过长,10s以内


二、探活
1. testOnBorrow
从池中拿到一个数据库连接时,先检查是否可用。是否开启视具体情况。
2. testOnReturn
向池中放回连接时,确认连接是否可用。是否开启视具体情况。
3. validateQuery
检查连接是否可用的探活SQL

三、关闭空闲连接

1. testWhileIdle
是否定期检查空闲连接并关闭。必须开启。
2. timeBetweenEvictionRunsMillis
两次检查空闲连接任务的间隔时间
3. numTestsPerEvictionRun
每次检查池中多少条连接
4. minEvictableIdleTimeMillis
连接多长时间不使用被认为空闲


作用:防止长期不适用的数据库连接在服务端失效


四、关闭未释放连接

1. removeAbandoned
是否检查无效(未释放)的连接。必须开启。
2. removeAbandonedTimeout
检查被打开的连接据上次使用时间,超过此值被认为abandoned
3. logAbandoned
在对泄露连接做回收时是否打印日志

作用:检查连接池泄露,log在测试环境开启,做好充分测试后可在线上关闭。



阅读更多
个人分类: java 数据库
上一篇深入理解JVM—JVM内存模型
下一篇事务隔离性和锁的区别和联系
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭