MySQL 中默认在8小时后关闭闲置链接。为了测试,修改my.ini文件在最后添上以下内容:
#auto close idle connection after 10 seconds.
wait_timeout=10
假设使用DBCP做链接池,做如下配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.gjt.mm.mysql.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<property name="initialSize" value="1"/>
<property name="maxActive" value="20"/>
<property name="maxWait" value="10"/>
<property name="maxIdle" value="2"/>
<property name="minIdle" value="1"/>
<property name="testWhileIdle" value="true"/>
<property name="minEvictableIdleTimeMillis" value="10000"/>
<property name="timeBetweenEvictionRunsMillis" value="10000"/>
</bean>
这样保证了被MySQL 关闭的连接对应于 链接池中的连接对象及时被清理,可以避免了MySQLIO异常,The last packet successfully received from the server was 46,958,922 milliseconds ago. The last packet sent successfully to the server was 46,958,922 milliseconds ago. is longer than the server configured value of 'wait_timeout'. 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.
配置解释:
timeBetweenEvictionRunsMillis=10000启动一个子线程每隔10秒检测闲置连接,连接对象个数,并对无效连接进行Evict清理操作。
minEvictableIdleTimeMillis=10000连接对象闲置10秒后允许被Evict清理。
testWhileIdle=true是否检查闲置连接对象。
hibernate里配置C3P0链接池属性:
<!-- C3P0 Connection Pool -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.timeout">100</property><!-- 连接对象允许的闲置时间(以秒为单位) -->
<property name="hibernate.c3p0.idle_test_period">100</property><!-- 每隔100秒检测连接是否可正常使用 -->
<property name="hibernate.c3p0.acquire_increment">3</property><!-- 当池中的连接耗尽的时候,一次性增加的连接数量,默认为3 -->
<property name="hibernate.c3p0.max_statements">100</property><!-- statemnets缓存大小 -->
<!-- hibernate.c3p0.validate :检查连接,推荐使用hibernate.c3p0.idle_test_period_代替,默认值为false -->
分享到:
相关推荐
MySQL连接池在Java应用开发中扮演着至关重要的角色,它是一种管理数据库连接的机制,能够有效地提高数据库操作的性能和效率。在这个项目中,我们看到的是一个纯手工编写的Java源码实现,不依赖任何外部数据库驱动,...
在"java连接mysql数据库连接池demo"这个项目中,我们可以深入探讨以下几个方面: 1. **JDBC**: JDBC是Java平台的标准接口,它允许Java程序与各种数据库进行交互。通过JDBC,开发者可以执行SQL语句,处理结果集,...
### Java常用数据源连接池配置详解 #### 一、引言 在Java Web开发中,数据库连接管理是一项至关重要的任务。为了提高应用性能并确保资源的有效利用,通常会使用数据源连接池技术来管理和复用数据库连接。本文将详细...
本文将详细介绍在Java环境中配置连接池的多种方式,涵盖不同常用的Java框架。 一、C3P0连接池 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。配置C3P0连接池通常需要在...
**描述**: Tomcat连接池配置涉及到在Apache Tomcat服务器中设置数据源,以便高效地管理和复用数据库连接。这包括对Oracle和MSSQL Server这两种不同类型的数据库进行配置,并在Java应用程序中引用这些连接池。提供的...
MySQL和Tomcat是Java Web开发中常用的数据库管理系统和应用服务器,它们之间的连接池配置是确保高效数据访问的关键。本文将详细介绍如何配置MySQL与Tomcat的连接池,以便在Java应用程序中实现优化的数据交互。 首先...
总的来说,Tongweb5中的JDBC连接池配置是一项关键的系统优化工作,通过合理的配置和使用,可以显著提升Web应用的性能和稳定性。在实践中,开发者需要根据具体的应用场景和负载情况,进行细致的调整和测试,以达到...
Oracle数据库的连接池配置则需要用到ojdbc驱动,其连接字符串格式为`jdbc:oracle:thin:@<host>:<port>:<service_name>`。Oracle的连接池配置通常还需要设置SID或Service Name,以及其他特定的连接属性。 在Java中,...
### Tomcat与MySQL连接池的配置详解 #### 一、引言 在Java Web开发过程中,数据库连接管理是一项至关重要的任务。为了提高系统的性能和稳定性,通常会采用连接池技术来管理和复用数据库连接资源。本文将详细介绍...
本文将详细介绍三个重要的组件:C3P0连接池、MySQL的JDBC驱动(mysql-connector-java-5.1.37)以及Druid连接池,以及它们在Java中的应用和作用。 首先,C3P0是一个开源的JDBC连接池,全称为ComMchange V2 C3P0。它...
本文将详细介绍如何在 Java 中实现一个完整的数据库连接池,并探讨其核心概念、工作原理以及如何根据需求进行配置。 首先,我们需要理解数据库连接池的基本概念。数据库连接池是一种对象池设计模式的应用,它维护了...
Druid是阿里巴巴开源的一款高效、强大的数据库连接池组件,它在Java编程中广泛应用于大数据量、高并发的Web应用中。Druid不仅提供了基础的数据库连接池功能,还集成了监控、SQL解析、参数绑定等多个高级特性,为开发...
在实际开发中,开发者还需要了解如何处理异常、事务管理、连接池配置等高级主题。例如,使用`try-with-resources`语句可以确保资源的正确关闭,而连接池(如C3P0、HikariCP或Apache DBCP)则可以提高应用程序的性能...
在Java开发中,常见的MySQL连接池实现有Apache的DBCP、C3P0、HikariCP以及Tomcat JDBC Connection Pool等。这些连接池库提供了配置参数,允许开发者调整连接的最大数量、最小数量、超时时间、空闲连接检查频率等,以...
在实际应用中,开发者通常会在Spring框架中配置数据源,选择合适的连接池实现,如在Spring Boot项目中,可以通过YAML或properties配置文件设置连接池的相关参数: ```yaml spring: datasource: type: ...
本篇文章将详细介绍如何在Tomcat中配置MySQL连接池,以便你的应用程序能够高效、稳定地访问MySQL数据库。 首先,我们需要了解连接池的基本概念。连接池是在应用启动时预创建一定数量的数据库连接,然后在应用运行...
此外,连接池通常还提供线程安全、连接池配置参数等高级功能,如最大连接数、最小连接数、超时设置等。 5. **池化技术**:数据连接池采用池化技术,将数据库连接对象进行管理和调度,使得多个应用程序可以共享这些...
4. **MySQL连接池配置**: - 使用MySQL的JDBC驱动,配置JDBC提供程序 - 定义数据源和定制属性,输入正确的URL、driverType、databasename等 完成上述配置后,记得保存并测试连接,确保能够成功连接到数据库。如果...
根据Tomcat官方网站做的Tomcat-Mysql连接池配置实例。里面有用到的所有的包,还有context.xml,web.xml,test.jsp等。 mysql-connector-java-5.1.8-bin.jar 放到D:\Program Files\apache-tomcat-6.0.16\lib下,我用的...