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"/>

  6. <property name="url" value="jdbc:mysql://192.168.0.109:3306/test?useUnicode=true&characterEncoding=UTF-8"/>

  7. <property name="username" value="root"/>

  8. <property name="password" value="root"/>

  9. <!--maxActive: 最大连接数量-->

  10. <property name="maxActive" value="150"/>

  11. <!--minIdle: 最小空闲连接-->

  12. <property name="minIdle" value="5"/>

  13. <!--maxIdle: 最大空闲连接-->

  14. <property name="maxIdle" value="20"/>

  15. <!--initialSize: 初始化连接-->

  16. <property name="initialSize" value="30"/>

  17. <!-- 连接被泄露时是否打印 -->

  18. <property name="logAbandoned" value="true"/>

  19. <!--removeAbandoned: 是否自动回收超时连接-->

  20. <property name="removeAbandoned"  value="true"/>

  21. <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->

  22. <property name="removeAbandonedTimeout" value="10"/>

  23. <!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒-->

  24. <property name="maxWait" value="1000"/>

  25. <!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->

  26. <property name="timeBetweenEvictionRunsMillis" value="10000"/>

  27. <!--  在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->

  28. <property name="numTestsPerEvictionRun" value="10"/>

  29. <!-- 1000 * 60 * 30  连接在池中保持空闲而不被空闲连接回收器线程-->

  30. <property name="minEvictableIdleTimeMillis" value="10000"/>

  31. <property name="validationQuery" value="SELECT NOW() FROM DUAL"/>

  32. </bean>

下面的注释为转来的。很详细

tomcat 的 DHCP的配置
<Resource
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
logAbandoned="true"
maxActive="20" maxIdle="2" maxWait="5000"
name="system" 
removeAbandonedTimeout="60"
removeAbandoned="true" 
password="xx"
type="javax.sql.DataSource"
url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=base" 
username="sa"/>
当中的
logAbandoned="true" 
removeAbandoned="true" removeAbandonedTimeout="60"
就是用来配置数据库断开后自动连接的。

数据库连接池会在启动时就建立所需的若干连接,并一直保持连接状态,
但是当数据库服务停止后,这些连接就被外部因素给中断了
网上优化了的配置信息:

[plain] view
plain
copyprint?

  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

  2. <property name="driverClassName" value="${db.driverClassName}"/>

  3. <property name="url" value="${db.url}"/>

  4. <property name="username" value="${db.username}"/>

  5. <property name="password" value="${db.password}"/>

  6. <!--initialSize: 初始化连接-->

  7. <property name="initialSize" value="5"/>

  8. <!--maxIdle: 最大空闲连接-->

  9. <property name="maxIdle" value="10"/>

  10. <!--minIdle: 最小空闲连接-->

  11. <property name="minIdle" value="5"/>

  12. <!--maxActive: 最大连接数量-->

  13. <property name="maxActive" value="15"/>

  14. <!--removeAbandoned: 是否自动回收超时连接-->

  15. <property name="removeAbandoned" value="true"/>

  16. <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->

  17. <property name="removeAbandonedTimeout" value="180"/>

  18. <!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->

  19. <property name="maxWait" value="3000"/>

  20. <property name="validationQuery">

  21. <value>SELECT 1</value>

  22. </property>

  23. <property name="testOnBorrow">

  24. <value>true</value>

  25. </property>

  26. </bean>

dbcp配置中文版本,自apache
官方文档
原文请见http://commons.apache.org/dbcp/configuration.html。

参数  描述
username  传递给JDBC驱动的用于建立连接的用户名
password
 传递给JDBC驱动的用于建立连接的密码
url  传递给JDBC驱动的用于建立连接的URL
driverClassName
 使用的JDBC驱动的完整有效的java 类名
connectionProperties
 当建立新连接时被发送给JDBC驱动的连接参数,
格式必须是 [propertyName=property;]*
注意
:参数user/password将被明确传递,所以不需要包括在这里。

参数  默认值  描述
defaultAutoCommit  true
 连接池创建的连接的默认的auto-commit状态
defaultReadOnly  driver default
 连接池创建的连接的默认的read-only状态. 
如果没有设置则setReadOnly方法将不会被调用.
(某些驱动不支持只读模式,比如:Informix)
defaultTransactionIsolation  driver default
 连接池创建的连接的默认的TransactionIsolation状态. 
下面列表当中的某一个: (参考javadoc)

* NONE
    *
READ_COMMITTED
    * READ_UNCOMMITTED
    *
REPEATABLE_READ
    * SERIALIZABLE

defaultCatalog   连接池创建的连接的默认的catalog

参数  默认值  描述
initialSize  0
 初始化连接:连接池启动时创建的初始化连接数量,1.2版本后支持
maxActive  8
 最大活动连接:连接池在同一时间能够分配的最大活动连接的数量, 
如果设置为非正数则表示不限制
maxIdle  8
 最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,
如果设置为负数表示不限制
minIdle  0
 最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,
如果设置为0则不创建
maxWait
 无限
 最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),
超过时间则抛出异常,如果设置为-1表示无限等待

参数  默认值  描述
validationQuery
  SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,
则查询必须是一个SQL
SELECT并且必须返回至少一行记录
testOnBorrow  true
 指明是否在从池中取出连接前进行检验,如果检验失败,
则从池中去除连接并尝试取出另一个.
注意:
设置为true后如果要生效,validationQuery参数必须设置为非空字符串
testOnReturn  false
 指明是否在归还到池中前进行检验
注意:
设置为true后如果要生效,validationQuery参数必须设置为非空字符串
testWhileIdle  false
 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,
则连接将被从池中去除.
注意:
设置为true后如果要生效,validationQuery参数必须设置为非空字符串
timeBetweenEvictionRunsMillis
 -1
 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位.
 如果设置为非正数,则不运行空闲连接回收器线程
numTestsPerEvictionRun
 3  在每次空闲连接回收器线程(如果有)运行时检查的连接数量
minEvictableIdleTimeMillis
 1000 * 60 * 30  连接在池中保持空闲而不被空闲连接回收器线程
(如果有)回收的最小时间值,单位毫秒

参数  默认值  描述
poolPreparedStatements  false
 开启池的prepared statement 池功能
maxOpenPreparedStatements  不限制
 statement池能够同时分配的打开的statements的最大数量, 
如果设置为0表示不限制

这里可以开启PreparedStatements池. 当开启时,
将为每个连接创建一个statement池,
并且被下面方法创建的PreparedStatements将被缓存起来:
   
* public PreparedStatement prepareStatement(String sql)
    *
public PreparedStatement prepareStatement(String sql, int resultSetType, int
resultSetConcurrency)
注意: 确认连接还有剩余资源可以留给其他statement
参数  默认值
 描述
accessToUnderlyingConnectionAllowed  false
 控制PoolGuard是否容许获取底层连接

如果容许则可以使用下面的方式来获取底层连接:
    Connection conn =
ds.getConnection();
    Connection dconn =
((DelegatingConnection) conn).getInnermostDelegate();
   
...
    conn.close();

默认false不开启, 这是一个有潜在危险的功能,
不适当的编码会造成伤害.
(关闭底层连接或者在守护连接已经关闭的情况下继续使用它).请谨慎使用,
并且仅当需要直接访问驱动的特定功能时使用.
注意:
不要关闭底层连接, 只能关闭前面的那个.
参数  默认值  描述
removeAbandoned  false
 标记是否删除泄露的连接,如果他们超过了removeAbandonedTimout的限制.
如果设置为true,
连接被认为是被泄露并且可以被删除,如果空闲时间超过removeAbandonedTimeout. 
设置为true可以为写法糟糕的没有关闭连接的程序修复数据库连接.
removeAbandonedTimeout
 300  泄露的连接可以被删除的超时值, 单位秒
logAbandoned  false
 标记当Statement或连接被泄露时是否打印程序的stack
traces日志。
被泄露的Statements和连接的日志添加在每个连接打开或者生成新的Statement,
因为需要生成stack
trace。

如果开启"removeAbandoned",那么连接在被认为泄露时可能被池回收. 这个机制在(getNumIdle() <
2)
 and (getNumActive() > getMaxActive() -
3)时被触发.
举例当maxActive=20,
活动连接为18,空闲连接为1时可以触发"removeAbandoned".
但是活动连接只有在没有被使用的时间超过"removeAbandonedTimeout"时才被删除,默认300秒.
在resultset中游历不被计算为被使用.

本文转自:http://www.cnblogs.com/adolfmc/archive/2013/01/22/2872298.html

DBCP连接池配置参数说明,布布扣,bubuko.com

时间: 2024-10-10 02:16:43

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连接池配置

项目中使用mybatis出现一个问题,项目刚启动时,查询项目列表是ok的,过上一段时间之后,再次查询项目列表,查询失败,初步判断是因为mysql的连接问题,最后查阅资料,发现是连接池中的连接失效,导致项目查询失败. 最后修改了连接池的配置信息,当从池中取出连接的时候验证连接的有效性.如果失效,则移除该连接,重新取连接.下面描述了DBCP连接池常见的一些配置, 官方地址 http://commons.apache.org/proper/commons-dbcp/configuration.html

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连接池原理分析

---------------------------- 目前 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

DBCP连接池介绍

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

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