相关配置说明:
这里贴了一个相关validate代码,具体类可见:PoolableConnectionFactor
pool池的evict调用代码:GenericObjectPool (apache commons pool version
1.5.4)
目前dbcp的pool的实现是使用了公用的apache common
pools进行扩展处理,所以和原生的连接池处理,代码看上去有点别扭,感觉自动重连这块异常处理不怎么好,我也就只重点关注了这部分代码而已
10.16.2.69 -j REJECT
/sbin/iptables -A FORWARD -p tcp -s 10.16.2.69 –dport 3306 -m
state –state NEW,ESTABLISHED -j DROP
5. iptables -F 清空规则,恢复链接通道。
分别测试了两种配置,有validateObject的配置和没有validateObject的相关配置。1. 没有validate配置
问题一: 异常重启mysql数据库后,居然也可以自动恢复链接,sql查询正常
跟踪了一下代码,发现这么一个问题:解释:
问题二:validateObject调用时,dbcp设置的validationQueryTimeout居然没效果
看了mysql
statement代码实现,找到了答案。
部分代码
对应的CancelTask的代码:
queryTimeout的实现是通过底层数据库提供的机制,比如KILL QUERY pid.
最后还是决定配置testWhileIdle扫描,主要考虑:
——————————————–新加的内容:
以前使用jboss的jndi数据源的方式,是通过配置oracle-ds.xml,可以设置EncryptDBPassword,引用jboss
login-config.xml配置的加密配置。
dbcp配置时,也有类似密码加密的功能,运行期进行密码decode,最后进行数据链接。
实现方式很简单,分析jboss的对应SecureIdentityLoginModul
——————————————–新加的内容:常见的问题:
1.
2.
3.
1.
,即我前面提到的sql validate相关配置2.
3.
, removeAbandonedTimeout(链接泄漏)。可以见前面的参数解释。
MySQL中的数据用各种不同的技术存储在文件(或内存)中。每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。这些不同的技术以及配套的相关功能在MySQL…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。