-
c3p0关于mysql8小时的问题5
jar包:c3p0-0.9.5-pre6.jar mchange-commons-java-0.2.6.3.jar
背景:以前在使用ORM框架的情况下,使用连接池没出现过空闲连接超时的问题,现在新建个项目没什么框架,使用c3p0,代码如下:private static ComboPooledDataSource ds = null; static { try { ds = new ComboPooledDataSource(); ds.setDriverClass(Constant.DRIVER_CLASS_NAME); ds.setJdbcUrl(Constant.URL); ds.setUser(Constant.USERNAME); ds.setPassword(Constant.PASSWORD); ds.setMaxPoolSize(40); ds.setMinPoolSize(5); ds.setAutomaticTestTable("C3P0TestTable"); ds.setIdleConnectionTestPeriod(1800); ds.setTestConnectionOnCheckin(true); ds.setTestConnectionOnCheckout(true); ds.setMaxIdleTime(25000); } catch (PropertyVetoException e) { gLog.error("ComboPooledDataSource", e); } } public static synchronized Connection getConn() { Connection con = null; try { con = ds.getConnection(); } catch (SQLException e1) { gLog.error("getConn", e1); } return con; }
有个线程用 getConn()获取连接后,长时间不进行数据库操作,隔天触发数据库操作时会报异常com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.SocketException MESSAGE: Software caused connection abort: socket write error STACKTRACE: java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2637) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665) at com.mysql.jdbc.Connection.execSQL(Connection.java:3176) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1153) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1266) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:144) ** END NESTED EXCEPTION ** Last packet sent to the server was 0 ms ago. at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2652) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1554) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665) at com.mysql.jdbc.Connection.execSQL(Connection.java:3176) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1153) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1266) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:144)
有个线程一直有进行数据库操作,则正常,因此判断是MYSQL8小时问题。但是代码里几个重要属性已经配置了,是否哪里还漏了,错了。
求教!2014年2月21日 09:18
3个答案 按时间排序 按投票排序
-
采纳的答案
修改mysql的配置文件,http://www.2cto.com/database/201301/185712.html
2014年2月21日 10:21
-
1、修改数据库配置
interactive_timeout=?
wait_timeout=?
2、c3p0在断开连接时,不能自动重连,所以不能保证连接池有连接。
3、建议使用proxool连接池。2014年2月21日 16:16
相关推荐
c3p0+mysql驱动jar包 c3p0+mysql驱动jar包 c3p0+mysql驱动jar包
mysql默认8小时闲置就会断开,会导致下次操作数据库报异常,c3p0可以完美解决!
java c3p0连接mysql数据库 java c3p0连接mysql数据库 java c3p0连接mysql数据库 可以直接运行
c3p0-0.9.5.5 mchange-commons-java-0.2.19 mysql-connector-java-8.0.21
C3P0工具包包含的版本:c3p0-0.9.5.2 、mchange-commons-java-0.2.11 mysql的驱动包的版本:mysql-connector-java-5.1.46 如果是使用c3p0连接数据库,就需要导入c3p0的专用工具包。
c3p0 mysql eclipse 例子 可以在eclipse中运行
c3p0连接mysql8.0.11驱动打包c3p0连接mysql8.0.11驱动打包
Java连接MySQL数据库查询。 使用C3P0连接池查询数据库,用log4j做日志。
c3p0连接池jar包,0.9.2.1版本,包括mchange-commons-java-0.2.3.4.jar、mysql-connector-java-5.1.18-bin.jar、c3p0-0.9.2.1jar
c3p0-0.9.5.2jar包及连接池配置文件和mysql8驱动包,如果mysql版本为8.XXX版本直接可使用本版本解决问题,本人亲测。
SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zipSSH -
c3p0的3个jar包 c3p0-0.9.5.2.jar c3p0-oracle-thin-extras-0.9.5.2.jar mchange-commons-java-0.2.11.jar mysql5.1.5的jar包
c3p0-0.9.5.2.jar mchange-commons-java-0.2.15.jar mysql-connector-java-8.0.12.jar JDBC驱动类库名称变化 driverClass 由原来的 com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver 连接字符串...
mysql.c3p0驱动包mysql.c3p0驱动包mysql.c3p0驱动包mysql.c3p0驱动包mysql.c3p0驱动包mysql.c3p0驱动包
c3p0-0.9.1.2.jar、commons-dbutils-1.4.jar、mysql-connector-java-5.1.39-bin.jar
内含c3p0-0.9.5.2及依赖文件和MySQL JDBC驱动程序 mysql-connector-java-5.1.42.jar
c3p0配置mysql8的3个jar包.rar
SSH - Struts2 + Spring4 + Hibernate4 + c3p0 + Mysql.rar
java语言连接Mysql数据库。通过Eclipse集成开发工具,编写java类文件,实现JDBC连接。 通过c3p0连接数据库的三种方法,包括xml文件、properties文件。
资源包含MySQL8.0.11与C3P0-0.9.5.2连接池的jar包,以及xml配置文件。