java使用小记
2016年 05月 24日
c3p0连接池
c3p0做连接池,大量数据查找和更新,由于是并发任务,所以呢会出现数据库连接打开之后,
没有操作,当前连接会处于sleep状态,当超过wait_timeout的时间后,连接会被关闭
所以再想执行数据库操作的话,而从线程池里取连接时若是没加以验证的话,就会报错,这样我们可以适当的修改wait_timeout的值,
set global wait_timeout = 60
若是权限不够,那只能通过修改c3p0的配置来达到目的
testConnectionOnCheckout
从连接池中取出连接时是否做连接检查。
默认是false,当设置为true时则会检查连接是否有效,若是无效就从连接池中剔除。该操作是为同步操作
testConnectionOnCheckin
往连接池中加入连接时是否做连接检查。
默认是false,当设置为true时则会检查连接是否有效,若是无效肯定就不加进去了。该操作是为异步操作
以上配置若是被设置为true时,肯定对性能是有一定的影响的。所以要两相权衡,哪个方案好便使用哪个方案
总的来说,配置很重要。