`
laowang1984
  • 浏览: 17199 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类
最新评论

一张表告诉你如何设置DBCP参数

 
阅读更多

 

下表是根据pop和青龙的经验整理的DBCP主要参数配置,但有些需要注意的地方,各系统可以根据自身情况参考,有的不一定是最优,可以在实际应用中不断总结修正。

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都

会被缓存起来


注意:

  1. 在mysql中,当空闲连接过期时间interactive-timeout达到设定值时就会自动将连接关闭,此时应用端并不知道,获取连接时就会报“无效连接”异常,前段时间备件库就出现过。要解决这类问题可以设置连接前检验,但如果将testOnBorrow设为true,数据源在将连接交给DAO前,会事先检测这个连接是否是好的,如果连接有问题(在数据库端被关闭),则会取一个其他的连接给DAO。如果每次将连接交给DAO前都检测连接有效性,在高并发的而应用中将会带来性能问题,因为会增加数据库请求。所以我们将testOnBorrow设为false,将testWhileIdle设为true,再设置一个timeBetweenEvictionRunsMillis值。这样DBCP将通过一个后台线程定时对空闲连接进行检测,当发现无用的空闲连接(那些被数据库关闭的连接)时,就会将它们清除掉。只要将timeBetweenEvictionRunsMillis的值设置小于Mysql的interactive-timeout(单位为秒),那些被mysql关闭的连接就会被清除出去。
2. 关于数据源(除了DBS数据源),建议用org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy包装dataSource,这样可以延迟获取数据库连接,缩短连接占用周期,提高并发性 能。

 

分享到:
评论

相关推荐

    common-dbcp2数据库连接池参数说明

    ### common-dbcp2数据库连接池参数详解 随着`commons-dbcp2`的版本更新,数据库连接池的配置也有了相应的调整。为了更好地理解和配置这些参数,本文将详细解析`commons-dbcp2`中的一些关键参数及其意义。 #### 1. ...

    commons DBCP 配置参数简要说明

    ### Commons DBCP 配置参数详解 #### 一、简介 Commons DBCP (Database Connection Pool) 是Apache Commons项目下的一个子项目,旨在提供一种高效管理数据库连接的方式。在大多数应用程序中,频繁地创建和销毁...

    DBCP依赖Jar包

    5. **性能优化**:为了提高性能,应合理设置连接池参数,如适当增加`maxIdle`以避免过多空闲连接,设置`timeBetweenEvictionRunsMillis`定期检查并回收过期连接,以及启用`removeAbandoned`机制防止应用忘记关闭连接...

    dbcp所需要jar

    这段配置定义了一个名为`dataSource`的bean,类为`BasicDataSource`,并设置了数据库连接的相关参数。 5. **使用DataSource**:在SpringMVC的控制器或服务层,可以通过@Autowired注解自动注入这个`dataSource`,...

    commons-dbcp-1.4

    4. **配置参数**:DBCP 允许开发者通过配置文件或代码设置各种参数,如最大活动连接数、最大空闲连接数、超时时间等,以便根据应用需求调整连接池的性能。 5. **异常处理**:DBCP 提供了对数据库连接异常的处理机制...

    commons-dbcp jar包

    开发者可以通过配置XML或使用Java配置来设置DBCP的数据源,包括最大连接数、最小连接数、超时时间等参数。 **压缩包子文件名称解析** 压缩包中的"commons-dbcp-1.2.jar"是Apache Commons DBCP 1.2版本的JAR文件,...

    创建dbcp连接,dbcp(Spring)

    在Spring框架中集成DBCP,可以通过配置XML来设置连接池的相关参数。以下是一段典型的Spring配置示例: ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> ...

    DBCP和C3P0连接池常用配置参数一览表

    DBCP和C3P0连接池常用配置参数一览表DBCP和C3P0连接池常用配置参数一览表DBCP和C3P0连接池常用配置参数一览表

    dbcp数据库连接池所需jar包

    使用DBCP数据库连接池,你需要在你的Java项目中引入这三个JAR文件,并进行相应的配置。以下是一些基本配置步骤: 1. 将这三个JAR文件添加到项目的类路径中。 2. 创建一个XML配置文件(如`dbcp-config.xml`),定义...

    dbcp jar包 dbcp jar 包

    使用DBCP时,你需要在工程中引入对应的jar包。在提供的信息中,压缩包文件名为"dbcp",通常这个压缩包会包含DBCP所需的全部依赖,包括dbcp.jar和可能的commons-pool.jar。将这些jar包添加到项目的类路径中,就可以...

    dbcp的jar包

    例如,你可以设置`maxActive`属性来指定池中最大活动连接数,`maxIdle`为最大空闲连接数,`testOnBorrow`则表示在借用连接前是否进行验证。 `commons-dbcp-1.4-bin.zip` 是DBCP的二进制发行版,包含了jar文件和其他...

    DBCP数据库连接池

    在文档中设置为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开发工具 commons-dbcp2-2.1.1开发...

    commons中的DBCP连接池jar

    在项目中,你需要将此JAR文件添加到类路径中,以便能够使用DBCP的功能。 3. `commons-dbcp-1.4-sources.jar`:这个文件包含了DBCP 1.4的源代码,对于开发者来说,这是一个很好的学习和调试资源,可以查看源码了解...

    开源数据库连接池dbcp

    1. 初始化:配置DBCP的连接池参数,如最大连接数、最小连接数、超时时间等,并加载相应的数据库驱动。 2. 请求连接:当应用程序需要访问数据库时,向DBCP连接池申请一个连接,连接池会检查当前是否有空闲连接,如果...

    commons-dbcp-1.4.jar依赖包

    3. **配置DBCP**:讲解如何在Java应用中引入commons-dbcp-1.4.jar,并配置数据库连接池的参数,如最大连接数、最小连接数、超时时间等。 4. **API使用**:阐述如何使用DBCP提供的API来获取和关闭数据库连接,以及...

    dbcp连接池常用包

    DBCP(Database Connection Pool)是Apache软件基金会的Commons项目中的一个数据库连接池组件,它提供了数据源管理和数据库连接复用的功能,以提高应用程序的性能和效率。在Java Web开发中,DBCP常用于管理数据库...

    jdbc与dbcp数据库连接

    3. **管理便捷**:DBCP提供了配置参数,如最大连接数、超时时间等,便于管理数据库连接。 4. **线程安全**:连接池保证了多线程环境下的安全性。 **DBCP使用步骤** 1. **引入依赖**:在项目中添加DBCP的jar包依赖...

    DBCP连接池所有jar包

    配置好这些jar包后,你可以在Java代码或应用服务器的配置文件中设置DBCP连接池的参数,然后在需要的地方通过DataSource对象获取数据库连接。 总的来说,DBCP连接池是Java Web开发中管理数据库连接的重要工具,通过...

    DBCP数据源需要的Jar包

    2. **配置参数**:在配置DBCP数据源时,需要设置一系列参数来控制连接池的行为,例如: - `driverClassName`:指定数据库驱动类名,例如"com.mysql.jdbc.Driver"对于MySQL。 - `url`:数据库连接URL,包括数据库...

Global site tag (gtag.js) - Google Analytics