0 0

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个答案 按时间排序 按投票排序

0 0

采纳的答案

2014年2月21日 10:21
0 0

1、修改数据库配置
interactive_timeout=?
wait_timeout=?

2、c3p0在断开连接时,不能自动重连,所以不能保证连接池有连接。

3、建议使用proxool连接池。

2014年2月21日 16:16
0 0

c3p0应该有闲置多少时间把连接返库的配置吧

2014年2月21日 16:11

相关推荐

    c3p0+mysql驱动jar包

    在Java编程环境中,数据库连接管理是一项关键任务,而c3p0和MySQL驱动程序是实现这一目标的重要组件。本文将详细介绍这两个组件以及如何在项目中使用它们。 c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定...

    c3p0配置mysql8.0.21的3个jar包

    C3P0库可以帮助我们高效、稳定地管理数据库连接,避免因数据库连接泄露或资源耗尽而导致的问题。在这个场景中,我们将探讨如何配置C3P0以连接MySQL 8.0.21数据库,以及涉及到的三个关键JAR文件的作用。 首先,我们...

    c3p0配置,解决mysql8小时问题

    mysql默认8小时闲置就会断开,会导致下次操作数据库报异常,c3p0可以完美解决!

    c3p0 mysql 例子

    【c3p0 MySQL 例子】是一个关于在Eclipse环境中使用c3p0连接池与MySQL数据库进行数据操作的实践教程。c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。这个例子旨在帮助...

    java c3p0连接mysql数据库

    Java C3P0连接MySQL数据库是Java开发中常见的数据库连接池技术,用于提高数据库操作的效率和性能。C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。下面我们将详细探讨这个...

    c3p0-0.9.5.2及配置文件和mysql8驱动包.zip

    这个压缩包"**c3p0-0.9.5.2及配置文件和mysql8驱动包.zip**"包含了c3p0的0.9.5.2版本jar包以及适用于MySQL 8.x版本的驱动包,这是为了确保与较新版本的MySQL数据库兼容。 **c3p0** 是由Miquel Arroyo开发的一个轻量...

    c3p0和MySQL的jar包.rar

    C3P0工具包包含的版本:c3p0-0.9.5.2 、mchange-commons-java-0.2.11 mysql的驱动包的版本:mysql-connector-java-5.1.46 如果是使用c3p0连接数据库,就需要导入c3p0的专用工具包。

    c3p0连接mysql8.0.11驱动打包

    本文将详细探讨如何使用C3P0连接MySQL 8.0.11版本的驱动,并对打包过程进行说明。 C3P0连接池提供了数据库连接的自动管理,如连接创建、释放和维护,有助于减少系统资源的消耗,提高系统性能。它支持多种数据库,...

    Java使用C3P0连接MySQL数据库查询

    在这个场景中,我们将深入探讨如何使用C3P0连接池来与MySQL数据库进行交互,并结合log4j进行日志记录。 首先,要使用C3P0,你需要在项目中引入相应的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```...

    c3p0-0.9.5.2及依赖文件和mysql-connector

    **c3p0-0.9.5.2与MySQL Connector/J** 在Java应用程序中,数据库连接管理是一项关键任务,因为它涉及到资源的高效利用和系统的稳定性。`c3p0`是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和...

    MySQL8.0与C3P0连接池jar包.rar

    使用C3P0与MySQL 8.0配合,开发者需要注意的是MySQL 8.0引入了一些新特性,比如新的加密协议,可能需要在连接URL中指定`useSSL=false`来禁用SSL,以及`serverTimezone`来处理时区问题。同时,由于MySQL驱动的更新,...

    C3P0和MySQL8.0驱动.7z

    C3P0与MySQL 8.0驱动是Java应用程序中常用的数据库连接池技术和数据库驱动,它们在企业级应用开发中扮演着重要的角色。C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。而...

    C3P0和DButils

    C3P0和DBUtils是两个非常重要的库,用于简化Java应用程序中的数据库操作。以下是这两个库的详细介绍: C3P0是一个开源的JDBC连接池,它的全称是Commerical-grade Connection Pooling for JDBC。C3P0-0.9.1.2.jar是...

    最新mysql8.0.11的c3p0的3个jar包

    总结来说,这个压缩包包含的是用于Java应用程序与MySQL 8.0.11数据库交互的必要组件:c3p0作为连接池管理器,mchange-commons-java作为辅助库,而mysql-connector-java则作为数据库驱动。这些组件的协同工作,使得...

    SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip

    在本项目"SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip"中,开发者使用了SpringMVC4作为表现层,Spring4作为控制层和服务层,Hibernate4作为持久层,c3p0作为数据库连接池,以及MySQL作为数据库。...

    c3p0mysql配置

    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和mysql5.1.6jar包

    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包

    mysql8.x_java_c3p0_jar.rar

    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 连接字符串...

    c3p0 连接池 jar 文件合集(mysql)

    在本合集中,我们重点关注的是如何使用C3P0连接池来连接MySQL数据库,以及涉及到的duutils库。 首先,了解C3P0的基本概念。C3P0是基于Apache License 2.0发布的,它提供了连接池的功能,可以创建、管理和维护数据库...

    c3p0-0.9.2-pre1.jar+mysql-connector-java-5.1.13-bin.jar

    c3p0和MySQL Connector/J是两个非常重要的组件,它们在这个领域起着至关重要的作用。这里我们主要讨论这两个jar包的功能、使用方法以及它们如何协同工作。 c3p0-0.9.2-pre1.jar是c3p0数据库连接池的实现,它是一个...

Global site tag (gtag.js) - Google Analytics