在配置DBCP连接池时,主要难以理解的主要有:removeAbandoned 、logAbandoned、removeAbandonedTimeout、maxWait这四个参数,设置了rmoveAbandoned=true那么在getNumActive()快要到getMaxActive()的时候,系统会进行无效的Connection的回收,回收的Connection为removeAbandonedTimeout(默认300秒)中设置的秒数后没有使用的Connection,激活回收机制好像是getNumActive()=getMaxActive()-2。
如果开启"removeAbandoned",那么连接在被认为泄露时可能被池回收. 这个机制在(getNumIdle() < 2) and (getNumActive() > getMaxActive() - 3)时被触发.
举例当maxActive=20, 活动连接为18,空闲连接为1时可以触发"removeAbandoned".但是活动连接只有在没有被使用的时间超过"removeAbandonedTimeout"时才被删除,默认300秒.在resultset中游历不被计算为被使用.
logAbandoned=true的话,将会在回收事件后,在log中打印出回收Connection的错误信息,包括在哪个地方用了Connection却忘记关闭了,在调试的时候很有用。
在这里私人建议maxWait的时间不要设得太长,maxWait如果设置太长那么客户端会等待很久才激发回收事件。
以下是我的配置的properties文件:
#连接设置
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:DBSERVER
jdbc.username=user
jdbc.password=pass
#<!-- 初始化连接 -->
dataSource.initialSize=10
#<!-- 最大空闲连接 -->
dataSource.maxIdle=20
#<!-- 最小空闲连接 -->
dataSource.minIdle=5
#最大连接数量
dataSource.maxActive=50
#是否在自动回收超时连接的时候打印连接的超时错误
dataSource.logAbandoned=true
#是否自动回收超时连接
dataSource.removeAbandoned=true
#超时时间(以秒数为单位)
dataSource.removeAbandonedTimeout=180
#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
dataSource.maxWait=1000
分享到:
相关推荐
在Web项目开发中,DBCP连接池是不可或缺的一部分,因为它能够有效地管理数据库资源,避免频繁创建和关闭数据库连接,降低系统开销。 首先,让我们来了解一下DBCP的基本概念和工作原理。数据库连接池在初始化时会...
### common-dbcp2数据库连接池参数详解 随着`commons-dbcp2`的版本更新,数据库连接池的配置也有了相应的调整。为了更好地理解和配置这些参数,本文将详细解析`commons-dbcp2`中的一些关键参数及其意义。 #### 1. ...
在配置DBCP连接池时,开发者需要设置一些关键参数,例如: 1. **maxActive**:最大活动连接数,决定了连接池能够同时处理的最大并发请求。 2. **maxIdle**:最大空闲连接数,超过这个数量的空闲连接将会被池自动...
DBCP连接池在Java应用中被广泛使用,尤其是在Web应用服务器中,如Tomcat。 DBCP主要由两个核心组件组成: 1. `commons-dbcp.jar`:这是DBCP的主要库,包含了数据库连接池的实现。它提供了DataSource接口的实现,...
总的来说,Java DBCP连接池是Java应用中管理和优化数据库连接的有效工具,通过合理配置和使用,能够显著提升应用的数据库访问性能,同时降低资源消耗。在实际开发中,开发者应根据项目需求和性能要求选择合适的连接...
标题中的“dbcp连接池jar包”指的是用于实现数据库连接池功能的Java库,即Commons DBCP的jar文件。这个jar包包含了DBCP所需的全部类和资源,开发者可以通过引入这个jar包到项目中,快速地集成数据库连接池功能。 ...
以下是一些主要的配置参数及其说明: 1. `username` 和 `password`:这两个参数用于设置连接数据库所需的用户名和密码,它们会被传递给JDBC驱动进行身份验证。 2. `url`:这是数据库的JDBC URL,用于指定数据库的...
DBCP(Database Connection Pool)是Apache的一个开源项目Commons DBCP,它提供了一个数据库连接池的实现,用于管理数据库连接。数据库连接池是应用程序管理数据库连接的一种方式,通过复用已建立的数据库连接,避免...
4. **DBCP配置**:配置DBCP连接池需要在应用的配置文件(如`dbcp.properties`)中指定数据库驱动类、URL、用户名、密码等基本信息,以及连接池的配置参数,如初始化大小、最大连接数、测试连接SQL语句等。...
本文主要探讨了三个常用的数据库连接池:DBCP、c3p0和Druid,以及它们的配置说明。 1. **DBCP(Apache Commons DBCP)** DBCP是Apache Commons项目的一部分,它依赖于Apache Commons Pool对象池机制来管理数据库...
在这个场景中,"dbcp连接池所需包"指的是用于配置和使用DBCP连接池的必要Java档案库(JAR包)。 首先,`commons-dbcp.jar`是DBCP的主要实现包,它包含了一系列用于管理和维护数据库连接的类和接口。这个库提供了...
#### DBCP连接池配置参数详解 为了更好地理解DBCP的工作原理及其配置,下面我们详细介绍一些常用的配置参数。 - **maxActive**: 池中允许的最大活动连接数。 - **maxIdle**: 池中允许的最大空闲连接数。 - **...
假设有一个基于Tomcat的应用程序,其DBCP连接池配置如下: - `initialSize` = 10 - `maxActive` = 50 - `maxIdle` = 20 - `minIdle` = 5 - `maxWait` = 10000 - `validationQuery` = "SELECT 1" - `testOnBorrow` =...
3. 创建一个配置文件(如`dbcp.properties`),在这个文件中设定DBCP连接池的详细参数,如初始化大小、最大大小、超时时间等。 ```properties driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:...
总结起来,DBCP连接池是Java应用程序中管理和复用数据库连接的重要工具,通过合理配置和使用,能够显著提升数据库操作的效率,同时降低系统资源的消耗。在压缩包中的`dbcp`文件可能包含了DBCP的完整库,可以直接导入...
总的来说,DBCP连接池是Java应用程序中管理和优化数据库连接的重要工具,这三个jar文件共同构建了其核心功能,使得开发者能够高效、安全地使用数据库资源。在使用过程中,合理配置连接池参数以及选择合适的版本,...
总的来说,DBCP连接池jar资源包是Java应用中管理和优化数据库连接的关键组件,它通过提供高效的连接复用,降低了系统资源消耗,提升了应用的整体性能。正确理解和使用这些库,能够帮助开发者构建更加健壮、高效的...
在实际项目中,通常会将连接池配置信息存储在配置文件(如properties或yaml格式)中,然后在应用启动时读取这些配置,以提供更灵活的管理方式。 总结起来,DBCP连接池是Java应用中管理数据库连接的一种有效手段,...
3. **连接配置**:允许开发者调整连接池的大小、超时时间、空闲连接检测策略等参数。 4. **异常处理**:提供统一的错误处理机制,简化程序的异常处理逻辑。 5. **事务支持**:可以配合JDBC进行事务管理。 **使用...
**数据库连接池(DBCP)** 是一个在Java应用程序中管理数据库连接的工具,它能够有效地提高数据库操作的性能和效率。DBCP全称为`Jakarta Commons DBCP`,是Apache软件基金会的一个项目,提供了对数据库连接的池化...