c3p0连接池maxIdleTime小于mysql数据库interactive_timeout参数导致出现NewPooledConnection close Exception的解决办法

博客讲述了在使用c3p0连接池时遇到的异常情况,即由于MySQL的interactive_timeout参数(2分钟)与c3p0的最大空闲时间(2小时)不匹配,导致连接关闭异常。解决方案包括设置MySQL的autoReconnect参数、创建测试表并配置c3p0的preferredTestQuery和idleConnectionTestPeriod属性,以保持连接的活跃状态。
摘要由CSDN通过智能技术生成

问题描述

年前我所负责的系统新上线了几家客户,这几家客户跟之前上线的客户不同的是,系统所使用的MySQL数据库不是由我们公司自己的运维安装的,而是由兄弟公司来搭建和维护的(由于这个系统会逐渐转给兄弟公司来维护)。系统上线之后,在后台经常会看到如下所示异常信息:

INFO: [c3p0] NewPooledConnection close Exception.
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at com.mysql.jdbc.Util.getInstance(Util.java:386)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
        at com.mysql.jdbc
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值