位置: 编程技术 - 正文
推荐整理分享C3P0连接池+MySQL的配置及wait_timeout问题的解决方法(c3p0连接池提供了哪些方式来配置连接池的参数),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:c3p0连接池怎么使用,c3p0连接池配置增加解密,c3p0连接池参数,c3p0连接池提供了哪些方式来配置连接池的参数,c3p0连接池参数,c3p0连接池不释放连接,c3p0连接池配置详解,c3p0连接池配置,内容如对您有帮助,希望把文章链接给更多的朋友!
一、配置环境
spring4.2.4+mybatis3.2.8+c3p0-0.9.1.2+Mysql5.6.
二、c3p0的配置详解及spring+c3p0配置
1.配置详解
官方文档 : milliseconds超过了mysql数据库设置的wait_timeout
修改命令:mysql>set global wait_timeout=;
3.问题解决
1)log中也给了解决方案:
You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
你应该考虑到期和/或有效性测试连接在应用程序中使用之前,增加服务器为客户机超时配置值,或使用连接器/ J连接属性“autoReconnect = true”来避免这个问题。
2)后两种方法显然不太实用
增加mysql数据库的超时时间,由于最大超时时间是一年,不可无限制增加,再说也不应该随便增加。'autoReconnect=true'如果使用的时候reconnect会影响效率,而且据说mysql5以上无效(本人没试),而且官方也不建议 most reliable time to test Connections is on check-out. But this is also the most costly choice from a client-performance perspective. Most applications should work quite reliably using a combination of idleConnectionTestPeriod and testConnectionOnCheckin. Both the idle test and the check-in test are performed asynchronously, which can lead to better performance, both perceived and actual. For some applications, high performance is more important than the risk of an occasional database exception. In its default configuration, c3p0 does no Connection testing at all. Setting a fairly long idleConnectionTestPeriod, and not testing on checkout and check-in at all is an excellent, high-performance approach.
最可靠的是退出时间测试连接。但这也是最昂贵的从客户端性能的角度选择。大多数应用程序应该使用idleConnectionTestPeriod和testConnectionOnCheckin相当可靠。闲置的测试和登记测试是异步执行的,这可能导致更好的性能,感知和实际。
对于某些应用程序,高性能比偶尔的风险更重要数据库异常。在默认配置中,c3p0没有连接测试。设置一个相当长的idleConnectionTestPeriod,而不是测试是一个很好的检验和登记,高性能的方法。
考虑再三可以如下设置
设置c3p0中连接池内连接的生存周期(idleConnectionTestPeriod)小于数据库中的wait_timeout的值
四、c3p0中用到的定时任务是Java中的Timer实现的,实际上是TimerThread的定时执行
checkidle源码
BasicResourcePool.java
最终测试:
C3P0PooledConnectionPool.java
以上所述是小编给大家介绍的C3P0连接池+MySQL的配置及wait_timeout问题的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!
sysbench对mysql压力测试的详细教程 前言在对网站整体性能进行benchmark时,可以使用多种工具,比如大名鼎鼎的ab(Apachebench),http_load等工具。这里我们不关注他们的使用,如果你想了解,
Mysql中Identity 详细介绍 假如表中包含一列为auto_increment,如果是Myisam类型的引擎,那么在删除了最新一笔数据,无论是否重启Mysql,下一次插入之后仍然会使用上次删除的最大I
mysql 复制表结构和数据实例代码 在mysql数据库开发中,我们有时候需要复制或拷贝一张表结构和数据到例外一张表,这个时候我们可以使用create...select...from语句来实现,本文章向大家
上一篇:MySQL隐式类型的转换陷阱和规则(mysql 隐式游标)
下一篇:sysbench对mysql压力测试的详细教程(sysbench测试mysql,自带的测试套)
友情链接: 武汉网站建设