DBCP主要用于数据库连接池中,DBCP本身并没有池的功能,它使用Common Pool对象池,实现了数据库连接池的功能,Common Pool中有很多参数,一直想做个小小的总结,因为很容易忘记,另外很多文章的参数总结都不是很全
1.maxActive:
最大的活跃连接的数量,默认值为8
注:
活跃连接指的是正在用于程序和数据库之间进行交互的连接
闲置连接指的是,在连接池中,没有被应用程序使用的连接
2.maxIdle:
最大的闲置连接的数量,默认值为8
注:
当大于最大的闲置数量时,会被连接池主动销毁
3.minIdle:
连接池中最小的闲置连接的数量,默认值为0
注:
当连接池中小于最小的闲置数量时,会创建新的连接对象
4.maxWait:
当向连接池请求连接资源时,连接池中的连接数量已经全部被使用(或者说没有闲置连接),等待连接释放所等待的最大时间,当超过这个时间,则抛出异常,默认值为-1,表示无限等待,直到池中有可用连接为止
5.minEvictableIdleTimeMillis:
清理线程保持闲置状态的最小时间,默认值为1000L * 60L * 30L=30分钟
注:
连接池是用清理线程进行一些清理工作,如当池中的闲置连接数量大于最大的闲置连接数量时,清理线程会去关闭超过部分的连接对象
6.testOnBorrow:
当client向连接池请求连接时,先进行test,如果test通过,则给请求者使用,反之,则抛出异常validate object failed。默认值为false
7.testOnReturn:
当client使用完连接之后,将连接返还给连接池时,先进行校验,如果校验通过,则让此连接返回给连接池,反之抛出异常,默认值为false
8.numTestsPerEvictionRun:
每次运行闲置对象清理器时,检查最大的对象(数据库连接对象)数目
注:
英文原文如下:
The max number of objects to examine during each run of the idle object evictor thread (if any).
9.timeBetweenEvictionRunsMillis:
清理线程启动的间隔时间,默认为-1,表明清理线程没有启动
10.testWhileIdle:
当值为true时,则当清理线程工作时,会去validate数据库连接对象的是否处于正常状态,如果处于非正常状态,则抛出异常,销毁同时从连接池中移除,默认值为false
注:所有本文中的validate,指的是执行一个SQL语句,如果正确执行了,则连接池认为数据库连接对象是正常的
11.softMinEvictableIdleTimeMillis:
当闲置对象清除器线程清除数据库连接对象之前,连接池中连接对象处于闲置状态的最小时间,注意,需要保证的是,池中的对象不能小于最小的闲置对象数量。默认值为-1,表明连接对象不会因为闲置时间过长而被销毁(清除)
英文原文如下:
The minimum amount of time an object may sit idle in the pool before it is eligible for eviction by the idle object evictor (if any), with the extra condition that at least "minIdle" amount of object remain in the pool. When non-positive, no objects will be evicted from the pool due to idle time alone.
12whenExhaustedAction:
当client想连接池请求连接时,没有可用的对象时,连接池采用的策略,默认为WHEN_EXHAUSTED_BLOCK,表明不做任何处理,处于阻塞状态,直到maxWait时间到,可选值为WHEN_EXHAUSTED_GROW,表明当连接耗尽时,池会主动create一个新的连接
分享到:
相关推荐
DBCP(Database Connection Pool)是Apache组织提供的一个开源数据库连接池组件,全称为"Jakarta DBCP"。它在Java应用中起到了...在实际项目中,需要根据具体需求调整连接池参数,以达到最佳的资源利用率和系统性能。
在配置DBCP连接池时,开发者需要设置一些关键参数,例如: 1. **maxActive**:最大活动连接数,决定了连接池能够同时处理的最大并发请求。 2. **maxIdle**:最大空闲连接数,超过这个数量的空闲连接将会被池自动...
3. **commons-pool-1.5.6.jar**:Apache Commons Pool是对象池设计模式的实现,DBCP连接池依赖于这个库来管理其内部的数据库连接对象。对象池允许开发者在应用程序中复用已经创建的对象,而不是每次需要时都创建新的...
DBCP连接池在Java应用中被广泛使用,尤其是在Web应用服务器中,如Tomcat。 DBCP主要由两个核心组件组成: 1. `commons-dbcp.jar`:这是DBCP的主要库,包含了数据库连接池的实现。它提供了DataSource接口的实现,...
DBCP(Database Connection Pool)是Apache软件基金会的Commons DBCP项目提供的一个数据库连接池组件,它在Java应用程序中用于管理和复用数据库连接。连接池是提高数据库应用性能的重要手段,通过预先创建并维护一定...
标题中的“dbcp连接池jar包”指的是用于实现数据库连接池功能的Java库,即Commons DBCP的jar文件。这个jar包包含了DBCP所需的全部类和资源,开发者可以通过引入这个jar包到项目中,快速地集成数据库连接池功能。 ...
总的来说,Java DBCP连接池是Java应用中管理和优化数据库连接的有效工具,通过合理配置和使用,能够显著提升应用的数据库访问性能,同时降低资源消耗。在实际开发中,开发者应根据项目需求和性能要求选择合适的连接...
DBCP(Database Connection Pool)是Apache组织提供的一种开源数据库连接池组件,主要...总的来说,DBCP连接池是Java应用程序中用于高效管理数据库连接的重要工具,通过合理的配置和使用,可以显著提升系统运行效率。
6. **优化建议**:为了提高性能,可以根据应用的并发量和数据库的处理能力调整连接池参数。例如,如果并发请求较少,可以降低最大连接数以减少资源消耗;如果数据库响应较慢,可以适当增加超时时间。 7. **其他连接...
**DBCP连接池的工作原理:** 1. **初始化**:在应用程序启动时,DBCP会预先创建一定数量的数据库连接并放入连接池。 2. **请求连接**:当程序需要与数据库交互时,它向连接池请求一个连接。连接池检查是否有空闲的...
DBCP(Database Connection Pool)是Apache Commons项目中的一个数据库连接池组件,主要目的是为了提高数据库连接的复用性,减少创建和销毁连接的开销,从而提升应用的性能。DBCP2是其第二个主要版本,提供了更稳定...
- 调整连接池参数需根据应用的实际需求和数据库的承载能力进行。 - 定期检查和监控连接池的状态,避免资源耗尽或连接泄露。 - 注意线程安全问题,确保多个线程并发访问连接池时不会出现竞态条件。 DBCP虽然历史悠久...
### common-dbcp2数据库连接池参数详解 随着`commons-dbcp2`的版本更新,数据库连接池的配置也有了相应的调整。为了更好地理解和配置这些参数,本文将详细解析`commons-dbcp2`中的一些关键参数及其意义。 #### 1. ...
- 调整连接池参数以适应不同的应用场景,如并发量、数据库响应速度等。 - 定期检查和监控连接池状态,防止资源耗尽或长时间未释放的连接。 - 注意数据库驱动的兼容性,确保与所使用的DBCP版本匹配。 通过这个例子,...
在这个场景中,"dbcp连接池所需包"指的是用于配置和使用DBCP连接池的必要Java档案库(JAR包)。 首先,`commons-dbcp.jar`是DBCP的主要实现包,它包含了一系列用于管理和维护数据库连接的类和接口。这个库提供了...
#### DBCP连接池配置参数详解 为了更好地理解DBCP的工作原理及其配置,下面我们详细介绍一些常用的配置参数。 - **maxActive**: 池中允许的最大活动连接数。 - **maxIdle**: 池中允许的最大空闲连接数。 - **...
**DBCP连接池详解** DBCP(Database Connection Pool)是Apache组织提供的一个开源数据库连接池组件,全称为Apache Commons DBCP。它基于Jakarta-DBCP,是Java应用程序中管理数据库连接的一种高效方式,通过复用已...
DBCP(BasicDataSource Connection Pool)是Apache组织提供的一款开源数据库连接池组件,它基于Jakarta Commons DBCP项目...在使用过程中,合理配置连接池参数以及选择合适的版本,对于提升系统性能和稳定性至关重要。
4. **连接管理**:DBCP连接池会监控连接的状态,如果发现某个连接已经超时或者出现异常,会自动进行回收或重新建立,确保连接池中的连接始终处于可用状态。 5. **配置参数**:DBCP允许开发者通过配置参数来调整连接...