DBCP参数配置:
属性
默认值
建议值
说明
defaultAutoCommit
true
False
是否自动提交,为false时spring才会接管事务
initialSize
0
[0/1/2]
该参数为连接池启动时创建的初始化连接数量,worker建议0,Web接口1, 压力大的Web接口2,需
要和minIdle保持一致,afs可以设为2
maxActive
8
[10/20/40]
最大活动连接:连接池在同一时间能够分配的最大活动连接的数量,压力小的应用10,worker 20,
特殊应用为40,afs可以设为40
maxIdle
8
[1/2/5/10]
最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为
负数表示不限制, worker建议1,压力小的WEB2,普通应用5,压力大的应用10,afs可以设为10
minIdle
0
[0/1/2]
最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新连接,如果设置
为0则不创建, worker建议0,一般选1,2,afs可以设为2
maxWait
无限
15000
最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(毫秒),超过时间抛出异
常,设为-1无限等待
validationQuery
无默认值
select 1
sql查询语句,mysql中可以设置为"select 1"
testOnBorrow
True
false
指明是否在从池中取出连接前进行检验,如果检验失败则尝试取新连接。设为true后validationquery
必须设置,数据库在将连接交给DAO前,会事先检验这个连接是否是好的,如果连接有问题(在数据库
端被关闭),则会去其他连接给DAO
testOnReturn
false
不设
指明是否归还到池中前进行检验。设置为true后如果要生效,validationquery必须设置
testWhileIdle
false
true
指明连接是否被空闲连接回收器进行检验,如果检验失败,则连接将被从池中去除,设置为true后如
果要生效,validationquery必须设置
timeBetweenEvictionRunsMillis
-1
120000
空闲连接回收器线程运行的周期,以毫秒为单位。如果设置为非正数,则不运行空闲连接回收器线
程,设置为true后如果要生效,validationquery必须设置,如果要minIdle起作用的话,需要配置
timeBetweenEvictionRunsMillis,如果不配置这两个参数的话,连接池会回收到maxIdle。
numTestsPerEvictionRun
3
不设
在每次空闲连接回收器线程运行时检查的连接数量
minEvictableIdleTimeMillis
1000*60*30
300000
连接在可被空闲连接回收器回收前已经在池中的空闲时间,以毫秒为单位
poolPreparedStatements
false
不设
开启池的prepared statement池功能,设为true时,所有callablestatement和preparedstatement都
会被缓存起来
注意:
- 在mysql中,当空闲连接过期时间interactive-timeout达到设定值时就会自动将连接关闭,此时应用端并不知道,获取连接时就会报“无效连接”异常,前段时间备件库就出现过。要解决这类问题可以设置连接前检验,但如果将testOnBorrow设为true,数据源在将连接交给DAO前,会事先检测这个连接是否是好的,如果连接有问题(在数据库端被关闭),则会取一个其他的连接给DAO。如果每次将连接交给DAO前都检测连接有效性,在高并发的而应用中将会带来性能问题,因为会增加数据库请求。所以我们将testOnBorrow设为false,将testWhileIdle设为true,再设置一个timeBetweenEvictionRunsMillis值。这样DBCP将通过一个后台线程定时对空闲连接进行检测,当发现无用的空闲连接(那些被数据库关闭的连接)时,就会将它们清除掉。只要将timeBetweenEvictionRunsMillis的值设置小于Mysql的interactive-timeout(单位为秒),那些被mysql关闭的连接就会被清除出去。
相关推荐
### common-dbcp2数据库连接池参数详解 随着`commons-dbcp2`的版本更新,数据库连接池的配置也有了相应的调整。为了更好地理解和配置这些参数,本文将详细解析`commons-dbcp2`中的一些关键参数及其意义。 #### 1. ...
### Commons DBCP 配置参数详解 #### 一、简介 Commons DBCP (Database Connection Pool) 是Apache Commons项目下的一个子项目,旨在提供一种高效管理数据库连接的方式。在大多数应用程序中,频繁地创建和销毁...
5. **性能优化**:为了提高性能,应合理设置连接池参数,如适当增加`maxIdle`以避免过多空闲连接,设置`timeBetweenEvictionRunsMillis`定期检查并回收过期连接,以及启用`removeAbandoned`机制防止应用忘记关闭连接...
这段配置定义了一个名为`dataSource`的bean,类为`BasicDataSource`,并设置了数据库连接的相关参数。 5. **使用DataSource**:在SpringMVC的控制器或服务层,可以通过@Autowired注解自动注入这个`dataSource`,...
4. **配置参数**:DBCP 允许开发者通过配置文件或代码设置各种参数,如最大活动连接数、最大空闲连接数、超时时间等,以便根据应用需求调整连接池的性能。 5. **异常处理**:DBCP 提供了对数据库连接异常的处理机制...
开发者可以通过配置XML或使用Java配置来设置DBCP的数据源,包括最大连接数、最小连接数、超时时间等参数。 **压缩包子文件名称解析** 压缩包中的"commons-dbcp-1.2.jar"是Apache Commons DBCP 1.2版本的JAR文件,...
在Spring框架中集成DBCP,可以通过配置XML来设置连接池的相关参数。以下是一段典型的Spring配置示例: ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> ...
DBCP和C3P0连接池常用配置参数一览表DBCP和C3P0连接池常用配置参数一览表DBCP和C3P0连接池常用配置参数一览表
使用DBCP数据库连接池,你需要在你的Java项目中引入这三个JAR文件,并进行相应的配置。以下是一些基本配置步骤: 1. 将这三个JAR文件添加到项目的类路径中。 2. 创建一个XML配置文件(如`dbcp-config.xml`),定义...
使用DBCP时,你需要在工程中引入对应的jar包。在提供的信息中,压缩包文件名为"dbcp",通常这个压缩包会包含DBCP所需的全部依赖,包括dbcp.jar和可能的commons-pool.jar。将这些jar包添加到项目的类路径中,就可以...
例如,你可以设置`maxActive`属性来指定池中最大活动连接数,`maxIdle`为最大空闲连接数,`testOnBorrow`则表示在借用连接前是否进行验证。 `commons-dbcp-1.4-bin.zip` 是DBCP的二进制发行版,包含了jar文件和其他...
在文档中设置为5,该参数接近maxIdle时性能较好,但也不能设置得过大,以避免不必要的资源浪费。 5. **maxWait**: 当没有可用连接时,连接池等待连接释放的最大时间,超过该时间将抛出异常。在文档中设置为60000ms,...
开发工具 commons-dbcp2-2.1.1开发工具 commons-dbcp2-2.1.1开发工具 commons-dbcp2-2.1.1开发工具 commons-dbcp2-2.1.1开发工具 commons-dbcp2-2.1.1开发工具 commons-dbcp2-2.1.1开发工具 commons-dbcp2-2.1.1开发...
在项目中,你需要将此JAR文件添加到类路径中,以便能够使用DBCP的功能。 3. `commons-dbcp-1.4-sources.jar`:这个文件包含了DBCP 1.4的源代码,对于开发者来说,这是一个很好的学习和调试资源,可以查看源码了解...
1. 初始化:配置DBCP的连接池参数,如最大连接数、最小连接数、超时时间等,并加载相应的数据库驱动。 2. 请求连接:当应用程序需要访问数据库时,向DBCP连接池申请一个连接,连接池会检查当前是否有空闲连接,如果...
3. **配置DBCP**:讲解如何在Java应用中引入commons-dbcp-1.4.jar,并配置数据库连接池的参数,如最大连接数、最小连接数、超时时间等。 4. **API使用**:阐述如何使用DBCP提供的API来获取和关闭数据库连接,以及...
DBCP(Database Connection Pool)是Apache软件基金会的Commons项目中的一个数据库连接池组件,它提供了数据源管理和数据库连接复用的功能,以提高应用程序的性能和效率。在Java Web开发中,DBCP常用于管理数据库...
3. **管理便捷**:DBCP提供了配置参数,如最大连接数、超时时间等,便于管理数据库连接。 4. **线程安全**:连接池保证了多线程环境下的安全性。 **DBCP使用步骤** 1. **引入依赖**:在项目中添加DBCP的jar包依赖...
配置好这些jar包后,你可以在Java代码或应用服务器的配置文件中设置DBCP连接池的参数,然后在需要的地方通过DataSource对象获取数据库连接。 总的来说,DBCP连接池是Java Web开发中管理数据库连接的重要工具,通过...
2. **配置参数**:在配置DBCP数据源时,需要设置一系列参数来控制连接池的行为,例如: - `driverClassName`:指定数据库驱动类名,例如"com.mysql.jdbc.Driver"对于MySQL。 - `url`:数据库连接URL,包括数据库...