3p0连接mysql经常断开连接解决方案
来源:互联网 发布:app软件测试面试 编辑:程序博客网 时间:2024/05/17 17:16
c3p0连接mysql 数据库(解决掉线问题)2009-06-05 17:47最近项目用到了hibernate3.0 c3po mysql的数据层组合,开发部署非常顺利,但每天早上访问应用都抛出 Could not open Hibernate session for transaction 异常,Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception,但经过几次访问后又恢复正常,datasource配置如下: <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"> <value>com.mysql.jdbc.Driver</value> </property> <property name="jdbcUrl"> <value><![CDATA[jdbc:mysql://localhost:3306/WAP2?useUnicode=true&characterEncoding=latin1]></value> </property> <property name="user"> <value>root</value> </property> <property name="password"> <value>zznode</value> </property> <property name="minPoolSize"> <value>3</value> </property> <property name="maxPoolSize"> <value>20</value> </property> <property name="maxStatements"> <value>50</value> </property> <property name="maxIdleTime"> <value>6000000</value> </property> </bean>根据问题现象初步认为是数据库连接出现问题,逐用异常作为关键词google;得到了相关信息:1、mysql 数据库链接默认的超时时长为28800秒,2、c3p0 的几个参数意思; 通过以上信息的收集隐隐知道了问题所在(mysql经过28800秒也就是8个小时后关掉空闲链接,而c3p0是经过6000000妙才断开链接,就有可 能出现c3po保持的连接有可能已经被mysql关掉了,自然就出现了hibernate不能打开session,并且都是第二天一早就出错);为了验证 我的想法,决定在开发机上重现这个错误;首先在mysql配置文件my.ini 加上 wait_timeout=30 让mysql经过30妙就关掉链接,重启应用,第一次访问成功,等待一分钟后访问果然出现同样的错误,说明问题诊断正确,着手修改配置如下: <property name="maxIdleTime"> <value>28000</value> </property> <property name="idleConnectionTestPeriod"> <value>28000</value> </property> 配置解释:28000<28800 使c3p0 在mysql关不连接之前关闭自己持有的链接,配置idleConnectionTestPeriod 参数使c3po每隔28000检查已有的连接是否可用,这样应该确保拿到的连接都是可用的,如果还不放心可以加 上 testConnectionOnCheckout参数每当拿出连接的时候就检查一下是否可以,这个可能会使mysql有一定的性能牺牲; <property name="testConnectionOnCheckout"> <value>true</value> </property> 通过以上修改检测一段时间没有出现同样问题,问题解决!总结解决问题的三个步骤:收集相关信息、重现问题、解决测试
阅读全文
0 0
- 3p0连接mysql经常断开连接解决方案
- NAO连接经常断开连接的解决方案
- Oracle经常断开连接
- mysql连接和断开
- 连接、断开mysql
- MySQL的连接断开
- 解决adb经常断开后自动连接
- mysql连接空闲8小时自动断开问题DBCP解决方案
- c3p0连接池连接MySql数据库时,无请求自动断开连接的解决方案
- MySQL连接与断开服务器
- mysql 连接断开的问题
- Hibernate MySql 连接池隔天断开
- MYSQL连接与断开服务器
- Mysql 断开连接之后自动重新连接
- 连接指定wifi,断开wifi解决方案
- linux用rz传大文件连接经常断开解决办法
- PLSQL 经常自动断开失去连接的解决过程
- PLSQL 经常自动断开失去连接的解决过程
- 获取系统日期前某天的日期
- Hadoop-2.9.0 编译 (CentOS6.7 64位)
- 深入浅出之正则表达式(一)
- 深入浅出之正则表达式(二)
- select元素javascript常用操作
- 3p0连接mysql经常断开连接解决方案
- 【Scikit-Learn 中文文档】数据集加载工具
- 671. Second Minimum Node In a Binary Tree
- text_area限定字数
- sql_oracle_实用命令
- html进度条
- C++ 压缩文件与解压文件
- 防火墙添加端口
- 批量删除90天前日期命名的文件夹.bat