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数据库连接池的配置以及数据库连接池的工作原理。
mysql+tomcat连接池配置介绍
Tomcat连接池配置oracle,MSSQLserver数据库,以及在java应用程序的的引用,附带了 对应的jar包
根据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下,我用的...
java 数据库 连接池 jsp mysql oracle jdbc tomcat
此文件为个人内部文件,十个人对java web开发的总结,希望对各位朋友有所帮助
此类非常简单,免去了网上众多资料里所说的麻烦的tomcat配置,更强...不仅oracle,mysql,sqlserver2000都行,因为它依据的是你自己连接数据库的驱动。当然首先你要保证你拥有一个能连接自己数据库的对应驱动类。如下面以
用阿里巴巴Druid实现的一个简单连接池,高性能,高并发。
这是我写的一个对JDBC连接池的实现,高手见了可不要笑啊!!!! 程序是在linux下用Eclipse下编写的. 用Jude进行建模,数据库使用了mysql. 程序自带了MySql的Connection连接驱动类,你也可以使用别的驱动类和数据库, 在src/...
使用Druid数据连接池连接PostgreSQL简单例子,搭建一个简单测试环境
详细介绍Tomcat6的连接池配置,且数据库断开连接池可以自动重连,一看便会。
第一步:写javabean 代码如下: package withouttears.jdbc.db; import java.util.HashMap; import java.sql.*;... //数据库资源的连接工厂是javax.sql.DataSource对象, //它可以创建java.sql.Connec
超级经典WebSphere中流行数据库连接池的配置(Oracle、SQL_Server、Sybase、MySQL)
工具类 JDBCUtil.java(抽取公共部分,解决硬编码问题 DBCP方式实现连接池、配置连接池 ==> 获得连接对象连接数据库) 用户账号实体类 User.java(私有化数据库t_user表中的id,username,password) 接口类 ...
关于配置连接池所需要的代码(连接mysql数据库)的例子,里面包含对tomcat/conf/context的配置和web.xml的配置
主要介绍了Java数据库连接池的几种配置方法(以MySQL数据库为例) 的相关资料,需要的朋友可以参考下
数据库连接池的基础学习,针对mysql数据库的数据库连接池在java中的具体实现及应用配置
driver-3.0.2.jar,mysql-connector-java-5.1.7-bin.jar,netty-all-4.0.25.Final.jar,parserXml.rar,proxool-0.9.1.jar,proxool-cglib.jar,quartz-all-1.6.5.jar,slf4j-api-1.6.1.jar,slf4j-simple-1.6.1.jar,sqlite...
设置数据库连接串连接池信息
tomcat 6.X 连接池的配置