常见的DBCP连接池配置

  项目中使用mybatis出现一个问题,项目刚启动时,查询项目列表是ok的,过上一段时间之后,再次查询项目列表,查询失败,初步判断是因为mysql的连接问题,最后查阅资料,发现是连接池中的连接失效,导致项目查询失败。

  最后修改了连接池的配置信息,当从池中取出连接的时候验证连接的有效性。如果失效,则移除该连接,重新取连接。下面描述了DBCP连接池常见的一些配置,

  官方地址 http://commons.apache.org/proper/commons-dbcp/configuration.html

    

 1 <bean id="dataSource"
 2           class="org.apache.commons.dbcp.BasicDataSource"
 3           destroy-method="close">
 4         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
 5         <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"/>
 6         <property name="username" value="root"/>
 7         <property name="password" value="mysql123456"/>
 8         <!--maxActive: 最大连接数量-->
 9         <property name="maxActive" value="150"/>
10         <!--minIdle: 最小空闲连接-->
11         <property name="minIdle" value="5"/>
12         <!--maxIdle: 最大空闲连接-->
13         <property name="maxIdle" value="20"/>
14         <!--initialSize: 初始化连接-->
15         <property name="initialSize" value="30"/>
16         <!-- 连接被泄露时是否打印 -->
17         <property name="logAbandoned" value="true"/>
18         <!--removeAbandoned: 是否自动回收超时连接-->
19         <property name="removeAbandoned"  value="true"/>
20         <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
21         <property name="removeAbandonedTimeout" value="10"/>
22         <!--maxWait: 超时等待时间以毫秒为单位 -->
23         <property name="maxWait" value="1000"/>
24         <!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->
25         <property name="timeBetweenEvictionRunsMillis" value="10000"/>
26         <!--  在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->
27         <property name="numTestsPerEvictionRun" value="10"/>
28         <!-- 1000 * 60 * 30  连接在池中保持空闲而不被空闲连接回收器线程-->
29         <property name="minEvictableIdleTimeMillis" value="10000"/>
30         <!-- 用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。 -->
31         <property name="validationQuery" value="SELECT 1"/>
32         <!-- 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 -->
33         <property name="testOnBorrow" value="true"/>
34         <!-- 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
35         <property name="testOnReturn" value="false"/>
36         <!-- 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 -->
37         <property name="testWhileIdle" value="true"/>
38         <!-- 检测连接的时间间隔 -->
39         <property name="timeBetweenEvictionRunsMillis" value="90000"/>
40     </bean>  

原文地址:https://www.cnblogs.com/kellyJAVA/p/8278934.html

时间: 2024-10-28 10:46:26

常见的DBCP连接池配置的相关文章

DBCP连接池配置参数说明

<!-- 数据源1 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property n

(数据库)DBCP连接池配置参数说明

<!-- 数据源1 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property n

DBCP连接池配置示例

<bean id="dataSourceOracle2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>${jdbc.oralce.driverClassName}</value> </prope

MySQL---数据库从入门走向大神系列(十三)-BasicDataSource创建DataSource(DBCP连接池配置)

DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件.单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去. 首先,下载必须的jar包 dbcp包,目前版本是2.1.1 : htt

dbcp连接池配置参数

1.<!-- 数据源1 --> 2. <bean id="dataSource" 3. class="org.apache.commons.dbcp.BasicDataSource" 4. destroy-method="close"> 5. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>

[转]MySQL连接池配置详解(DBCP)

DBCP连接池介绍 ----------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4. DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 JDBC 3. DBCP 1.4 版本需要运行于 JDK 1.6 ,支持 JDBC 4. 1.3和1.4基于同一套源代码,含有所有的bug修复和新特性.因此在选择DBCP版本的时候,要看你用的是什么JDK版本. DBCP1.2版本性能一般,比c3p0差挺多.DBCP1.4和1.3,配合(依赖)co

DBCP连接池介绍

# 初始化连接:连接池启动时创建的初始化连接数量 initialSize=1 # 最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建 minIdle=1 # 最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制 maxIdle=2 # 最大活动连接:连接池在同一时间能够分配的最大活动连接的数量,如果设置为非正数则表示不限制 maxActive=3 # 借出连接时不要测试,否则很影响性能   te

【转】DBCP连接池原理分析

---------------------------- 目前 DBCP 有两个版本分别是 1.3 和 1.4. DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 JDBC 3. DBCP 1.4 版本需要运行于 JDK 1.6 ,支持 JDBC 4. 1.3和1.4基于同一套源代码,含有所有的bug修复和新特性.因此在选择DBCP版本的时候,要看你用的是什么JDK版本. DBCP1.2版本性能一般,比c3p0差挺多.DBCP1.4和1.3,配合(依赖)commons pool

Tomcat7中配置Oracle 11g数据库DBCP连接池

将       ojdbc6.jar       tomcat-jdbc-7.0.37.jar            拷贝到工程的WEB-INF\lib  下面 一.在Tomcat的配置文件Tomcat7.0\conf\context.xml中添加信息: ? 1 2 3 4 5 6 7 8 9 10 11 <?xml version='1.0' encoding='utf-8'?> <Resource  name="jdbcoracle"   auth="C