- 浏览: 60900 次
- 性别:
- 来自: 北京
最新评论
-
suifeng214:
想问一下 楼主高并发是怎样测试的
java连接池性能测试报告 -
HeartArea:
这个不错,先留着
Tomcat jdbc-pool 与 commons DBCP 的参数对比【翻译全部属性】 -
chaodongyue:
求测试代码
java连接池性能测试报告 -
duzc2:
chgyan 写道 guangyan ?
服务端Mina线程关系和数据流动分析 -
chgyan:
服务端Mina线程关系和数据流动分析
通用属性
属性名 | 描述(DBCP/Tomcat jdbc-pool 差别 ) | DBCP默认值 | jdbc-pool默认值 |
username | 传递给JDBC 驱动的用于建立连接的用户名 | ||
password | 传递给JDBC 驱动的用于建立连接的密码 | ||
url | 传递给JDBC 驱动的用于建立连接的URL | ||
driverClassName | 使用的JDBC 驱动的完整有效的java 类名 | ||
connectionProperties |
(String)
当建立新连接时被发送给JDBC
驱动的连接参数,格式必须是 [propertyName=property;]* 注意 :参数user/password 将被明确传递,所以不需要包括在这里。 |
null | |
defaultAutoCommit | (boolean) 连接池创建的连接的默认的auto-commit 状态 | true | driver default |
defaultReadOnly | (boolean) 连接池创建的连接的默认的read-only 状态. 如果没有设置则setReadOnly 方法将不会被调用. ( 某些驱动不支持只读模式, 比如:Informix) | driver default | driver default |
defaultTransactionIsolation |
(String) 连接池创建的连接的默认的TransactionIsolation 状态. 下面列表当中的某一个: ( 参考javadoc)
|
driver default | driver default |
defaultCatalog | (String) 连接池创建的连接的默认的catalog | driver default | |
initialSize | (int) 初始化连接: 连接池启动时创建的初始化连接数量,1.2 版本后支持 | 0 | 10 |
maxActive | (int) 最大活动连接: 连接池在同一时间能够分配的最大活动连接的数量, 如果设置为非正数则表示不限制 | 8 | 100 |
maxIdle |
(int) 最大空闲连接: 连接池中容许保持空闲状态的最大连接数量, 超过的空闲连接将被释放, 如果设置为负数表示不限制 如果启用,将定期检查限制连接,如果空闲时间超过minEvictableIdleTimeMillis 则释放连接 ( 参考testWhileIdle ) |
8 | 与maxActive |
minIdle |
(int) 最小空闲连接: 连接池中容许保持空闲状态的最小连接数量, 低于这个数量将创建新的连接, 如果设置为0 则不创建如果连接验证失败将缩小这个值( 参考testWhileIdle )
|
0 | 与 initialSize 相同 |
maxWait | (int) 最大等待时间: 当没有可用连接时, 连接池等待连接被归还的最大时间( 以毫秒计数), 超过时间则抛出异常, 如果设置为-1 表示无限等待 | 无限 | 30000 (30 秒) |
validationQuery |
(String) SQL 查询, 用来验证从连接池取出的连接, 在将连接返回给调用者之前. 如果指定, 则查询必须是一个SQL SELECT 并且必须返回至少一行记录 查询不必返回记录,但这样将不能抛出SQL异常 |
null | |
testOnBorrow |
(boolean)
指明是否在从池中取出连接前进行检验,
如果检验失败,
则从池中去除连接并尝试取出另一个. 参考validationInterval以获得更有效的验证 |
true | false |
testOnReturn |
(boolean)
指明是否在归还到池中前进行检验 注意: 设置为true 后如果要生效,validationQuery 参数必须设置为非空字符串 |
false | false |
testWhileIdle |
(boolean)
指明连接是否被空闲连接回收器(
如果有)
进行检验.
如果检测失败,
则连接将被从池中去除. 要启用空闲连接回收器线程,必须启用 |
false | false |
timeBetweenEvictionRunsMillis |
(int) 在空闲连接回收器线程运行期间休眠的时间值, 以毫秒为单位. 如果设置为非正数, 则不运行空闲连接回收器线程 这个值不应该小于1秒,它决定线程池多久验证连接空闲或丢弃连接。 |
-1 |
5000 (5 seconds) |
numTestsPerEvictionRun |
(int) 在每次空闲连接回收器线程( 如果有) 运行时检查的连接数量 jdbc-pool中未使用此属性 |
3 | - |
minEvictableIdleTimeMillis | 连接在池中保持空闲而不被空闲连接回收器线程( 如果有) 回收的最小时间值,单位毫秒 | 1000 * 60 * 30(30分钟) | 60000 (60 秒) |
poolPreparedStatements |
(boolean) 开启池的prepared statement 池功能
jdbc-pool中未使用此属性 |
false | |
maxOpenPreparedStatements |
(int)statement 池能够同时分配的打开的statements 的最大数量, 如果设置为0 表示不限制 jdbc-pool中未使用此属性 |
不限制 | |
accessToUnderlyingConnectionAllowed |
(boolean) 控制PoolGuard 是否容许获取底层连接 jdbc-pool中未使用此属性;可以通过调用连接的unwrap方法取得控制权。参考javax.sql.DataSource接口,通过反射调用getConnection方法,或强制转换为javax.sql.PooledConnection对象。 |
false | - |
removeAbandoned |
(boolean) 标记是否删除泄露的连接, 如果他们超过了removeAbandonedTimout 的限制. 如果设置为true, 连接被认为是被泄露并且可以被删除, 如果空闲时间超过removeAbandonedTimeout. 设置为true 可以为写法糟糕的没有关闭连接的程序修复数据库连接. 参考logAbandoned |
false | false |
removeAbandonedTimeout |
(int) 泄露的连接可以被删除的超时值, 单位秒 这个值应该设为应用中查询执行最长的时间 |
300 | 60 |
logAbandoned | (boolean) 标记当Statement 或连接被泄露时是否打印程序的stack traces 日志。被泄露的Statements 和连接的日志添加在每个连接打开或者生成新的Statement, 因为需要生成stack trace 。 | false | false |
Tomcat jdbc-pool 新增属性
属性名 | 描述 | 默认值 |
validatorClassName
|
(String)实现org.apache.tomcat.jdbc.pool.Validator接口的类名,必须存在默认或明确的无参构造方法。将建立一个指定类的实例作为验证器,用来代替执行查询的连接验证。例如:com.mycompany.project.SimpleValidator。 |
null
|
initSQL |
(String) 当连接第一次建立时执行的SQL | null |
jdbcInterceptors |
(String)(**杜天微注:jdbc拦截器——jdbc-pool的高级扩展属性)用分号分隔的、继承org.apache.tomcat.jdbc.pool.JdbcInterceptor的类名列表。这些拦截器将被插入到对java.sql.Connection操作之前的拦截器链上。 预制的拦截器有: org.apache.tomcat.jdbc.pool.interceptor.ConnectionState
- 追踪自动提交、只读状态、catalog和事务隔离等级等状态。(keeps track of auto commit, read only,
catalog and transaction isolation level.) 更多预制拦截器详细描述请参见JDBC拦截器部分 (**杜天微注:英文内容)。 |
null |
validationInterval |
(long) 避免过度验证,保证验证不超过这个频率——以毫秒为单位。如果一个连接应该被验证,但上次验证未达到指定间隔,将不再次验证。 | 30000 (30 秒) |
jmxEnabled |
是否将连接池注册到JMX | true |
fairQueue |
(boolean) 如果被设为true ,getConnection 方法将被以先进先出的方式对待。此属性使用 org.apache.tomcat.jdbc.pool.FairBlockingQueue 实现闲置连接列表。 如果需要使用异步连接回收,这个标记是必须的。 这个标记确保线程取得连接的顺序和他们调用getConnection 方法的顺序是相同的。 在性能测试中,这个标记对锁和锁等待有非常大的影响。当fairQueue=true ,将有一个依赖于操作系统的线程作为决定线程。如果是Linux 系统( 系统属性os.name=Linux )可以在线程池的类加载之前设置系统属性 org.apache.tomcat.jdbc.pool.FairBlockingQueue.ignoreOS=true 关闭Linux 特定行为但仍然使用公平队列 |
true |
abandonWhenPercentageFull |
(int)正在被使用的连接超过这个百分比以前被丢弃的连接不会被断开或报告。这个值应被设为0-100之间。默认值为0,意味着达到 removeAbandonedTimeout 时将被尽快关闭。 | 0 |
maxAge |
(long)保持连接的最大毫秒数。当一个连接被归还时,连接池将检查是否满足:现在时间-连接时长>maxAge,如果条件满足,连接将被关闭而不是回到池中。默认值为0,标识禁用该功能。 |
0 |
useEquals |
(boolean)如果希望ProxyConnection类使用String.equals方法对比方法名,设为true;否则将使用==判断。这个属性不会影响单独配置的拦截器。 | true |
suspectTimeout(怀疑超时) |
(int)以秒为单位的超时时间。类似 removeAbandonedTimeout,但不会将连接丢弃甚至关闭,如果logAbandoned为true,则 只是记录一个警告。如果这个值小于等于0,不会有怀疑超时检测被执行。怀疑检测只有当超时时间大于0并且连接未丢弃,或者丢弃检测被禁用的情况下才占用空间。如果一个连接被怀疑,将记录一条警告消息,并发送一个JMX通知。 | 0 |
rollbackOnReturn |
(boolean)如果autoCommit==false,当连接被归还时,通过调用连接的rollback方法中断事务。 | false |
commitOnReturn | (boolean)如果autoCommit==false,当连接被归还时,通过调用连接的commit方法完成事务。如果rollbackOnReturn==ture,这个属性将被忽略。 |
false |
alternateUsernameAllowed |
(boolean)为了提高性能,默认情况下,jdbc-pool将忽略DataSource.getConnection(username,password)调用,直接返回一个以已有的全局配置的用户名和密码创建的连接。连接池仍然可以用不同的用户名和密码,但已经通过旧的用户名和密码创建的连接将被关闭,然后重新以新的用户名和密码连接。这样连接池将以全局级别管理连接数,而不是schema级别。设置这个属性为true来启用DataSource.getConnection(username,password)方法描述的行为。 这个属性为bug 50025 增加。 |
false |
dataSource |
(javax.sql.DataSource)向连接池注入一个数据源,连接池将使用这个数据源索取连接,而不是通过java.sql.Driver接口建立。当您希望池化XA连接或者使用数据源而不是url时,这个属性非常有用。 | null |
dataSourceJNDI |
(String)用来建立数据连接的JNDI名称。参考dataSource属性。 | null |
useDisposableConnectionFacade |
(boolean)如果您希望在连接上建立一道屏障防止连接关闭之后被重新使用,设置这个属性为true。这个属性用来预防线程保持已关闭连接的引用,并在上面执行查询动作。 | true |
logValidationErrors |
(boolean)如果设置为true,将在验证相位时向日志文件写入错误。如果值为true,错误将被记录为SEVER。默认值是false以向后兼容。 | false |
propagateInterruptState |
(boolean)设置这个属性为true,可以传播一个被中断的线程(还没有清除中断状态)的中断状态。默认值为false以向后兼容。 | false |
发表评论
-
在 Eclipse 里使用 Java 6 注解处理器
2012-06-29 23:49 3577在 Eclipse 里使用 Java 6 注解处理器 ... -
JDK 7 特性
2012-06-29 00:09 1447JDK 7 特性 虚拟机 JSR 292:支持动 ... -
Java SE 7 和 JDK 7 兼容性
2012-06-29 00:08 5996Java SE 7 和 JDK 7 兼容性 兼 ... -
java的Integer缓冲
2012-05-28 15:14 2545java.lang.Integer.valueOf ... -
DBCP和Tomcat jdbc-pool 对比
2012-05-23 17:29 3505一 性能 低并发情况下DBCP略强于jdbc-pool,高 ... -
不同并发量下Tomcat jdbc-pool和DBCP连接池的性能和包依赖
2012-05-22 11:47 3082最小连接5,最大连接50,无延迟,排除预热,循环查询“sele ... -
[翻译]DBCP释放历史
2012-05-22 00:28 1495版本日期 描述 ... -
[翻译]Why another connection pool project?为什么还需要另外的连接池项目?
2012-05-22 00:01 1764英文原文: http://www.tomcatexpert.c ... -
(翻译)Tomcat JDBC 连接池
2012-05-21 17:52 4379介绍 org.apache.tomcat.jdbc. ... -
java连接池性能测试报告
2012-05-21 13:39 11367一 当前问题 1 ... -
JAVA NIO和MINA发送数据过程解析
2012-05-11 14:30 4413NIO发送数据过程: 1 将 ... -
开发环境Eclipse和GameServer的JVM调优
2012-05-11 10:03 1603杜天微 2012-3-29 系统信息: XP SP ... -
JVM编译期字符串连接优化分析
2012-05-11 09:57 2334为了研究javac对于String ... -
为了研究变量声明在for语句块前和for语句块内部的区别
2012-05-11 09:54 1233编译并反编译BeforeFor和InFor,对比如图《java ... -
服务端Mina线程关系和数据流动分析
2012-05-11 09:50 3665一 线程关系 NioSocketAcceptor类 线 ...
相关推荐
这两个JAR文件,`commons-dbcp-1.4.jar` 和 `commons-pool-1.5.6.jar`,在Java应用中起到了重要的角色,特别是对于那些需要高效管理数据库连接的大型系统。 Apache Commons DBCP是Apache Commons项目的一部分,它...
标题中的三个文件——"commons-collections-3.1.jar","commons-dbcp-1.2.1.jar",和"commons-pool-1.2.jar",是Apache Commons项目的一部分,它们在Java应用程序中扮演着重要角色。Apache Commons是一个为Java开发...
`commons-dbcp-1.2.2.jar`包含了实现DBCP连接池所需的类和接口,如BasicDataSource、PoolableConnection和PoolManager等。这些类用于初始化和配置数据库连接池,管理数据库连接的生命周期,以及处理连接的分配和释放...
这两个JAR文件——commons-dbcp-1.4.jar和commons-pool-1.4.jar,是Apache软件基金会提供的开源组件,用于优化数据库资源的管理和复用。 **Apache Commons DBCP** Apache Commons DBCP 是一个基于Apache Commons ...
Apache Commons DBCP虽然历史悠久,但在现代项目中可能已经被更先进的连接池如HikariCP、Tomcat JDBC Pool所取代,因为它们在性能和稳定性方面有更出色的表现。然而,理解DBCP的工作原理和使用方法仍然是Java开发者...
The JDBC Connection Pool org.apache.tomcat.jdbc.pool is a replacement or an alternative to the commons-dbcp connection pool.
标题"commons-dbcp-1.4-bin"指的是Apache Commons DBCP的1.4版本的二进制发行版。这个版本包含了编译后的Java类文件和其他运行时需要的资源,可以直接在Java环境中使用而无需进行额外的编译步骤。 描述中提到了...
java中DBCP数据库连接池使用方法以及代码文件:(dbcpconfig.properties+JdbcPool_dbcp.java)以及jjdbc所需的ar包(commons-pool.jar+commons-dbcp-1.2.2.jar)
Apache Commons DBCP(Database Connection Pool)是Apache Commons项目中的一个数据库连接池组件,它提供了在Java应用程序中管理和复用数据库连接的能力。DBCP的主要作用是提高应用性能,通过池化技术减少创建和...
DBCP是Apache Commons的一个子项目,它提供了一个实现JDBC连接池的工具,而`BasicDataSource`是DBCP中用来管理数据库连接的核心类。 Apache Commons Pool是DBCP的基础,因为DBCP依赖于Pool来实现其对象池化功能。`...
Apache Commons DBCP,全称为“Database Connection Pool”,是一个开源的Java数据库连接池组件,源自Apache Commons项目。这个组件在Java应用开发中扮演着重要的角色,特别是在构建基于JDBC的应用时,它提供了一种...
在Tomcat环境下,连接池通常使用Apache Commons DBCP(Database Connection Pool)来管理数据库连接。默认情况下,DBCP会直接读取配置文件中的用户名和密码,这意味着这些信息是以明文形式存在的。一旦服务器被非法...
1. **JAR文件**:通常包含`commons-dbcp-1.4.jar`,这是DBCP的核心库,其中封装了数据库连接池的实现,如`BasicDataSource`类,用于创建和管理数据库连接。 2. **文档**:可能包括API文档(如`apiDocs`目录下的HTML...
1. 添加依赖:在Java项目中,需要将`commons-dbcp-1.4.jar`作为依赖引入,通常是通过Maven或Gradle等构建工具完成。 2. 配置连接池:创建一个配置文件,定义数据库的相关参数,如URL、用户名、密码等,以及DBCP的...
这个“commons-dbcp2-2.1.1.zip”压缩包包含了DBCP2的特定版本(2.1.1)所需的全部资源,特别是其中的“commons-dbcp2-2.1.1.jar”文件,这是核心库,包含了DBCP2的所有功能。 数据库连接池(Database Connection ...
Apache Commons DBCP,全称为"Database Connection Pool",是Apache软件基金会开发的一个开源Java数据库连接池组件。这个库提供了一种有效管理数据库连接的方法,从而提高了应用在处理多个并发请求时的性能和效率。...
Apache Commons DBCP(Database Connection Pool)是一个开源的、基于Apache Commons项目的数据源池组件。它提供了一个实现JDBC(Java Database Connectivity)规范的连接池,可以显著提高数据库操作的性能,因为...
- **简介**:DBCP是Apache Commons的一个子项目,提供了一个基于 Jakarta POOL 的数据库连接池实现。 - **特性**:DBCP支持JNDI配置,具有基本的连接池功能,如连接验证、空闲连接检测等。 - **性能**:由于其...
DBCP(DataBase connection pool),数据库连接池。...本资源内含Apache Commons Pool 2.4.2 (Java 6.0+)、Apache Commons DBCP 2.1.1 for JDBC 4.1 (Java 7.0+)、Apache Commons DBCP 1.4 for JDBC 4 (Java 6.0)。