`

DBCP2数据源配置含义说明[转]

阅读更多

dbcp官网:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

文档:http://commons.apache.org/proper/commons-dbcp/configuration.html 

 

BasicDataSource Configuration 配置参数

Parameter Descripton
username 用来建立jdbc连接的用户名
password 用来建立jdbc连接的密码
url 建立连接的url
driverClassName jdbc driver className
connectionProperties 连接使用的properties.使用的格式必须是[propertyName=property;]*

properties配置:

Parameter default Description
defaultAutoCommit driver default 这个连接池默认的自动提交状态.如果没有设置,setAutoCommit方法不会被调用
defaultReadOnly driver default 这个连接池默认的读写状态。如果没有设置,setReadOnly方法就不会调用(一些数据库不支持readOnly模式,比如informix)
defaultTransactionIsolation driver default 默认的隔离级别.必须是其中一个(NONE,READ_COMMITTED,READ_UNCOMMITTED,REPEATABLE_READ,SERIALIZABLE)
defaultCatalog   连接池默认创建的连接数
cacheState true 如果是true, 连接池将会缓存readOnly和auto Commit配置,在第一次进行读或者写的时候.这会减少以后的数据库查询.如果获取连接后,这个连接自己设置readOnly和自动提交设置,这些配置不会影响到当前中的配置。在这种情况下,如果我们想要这种设置生效,caching应该把这个设置成disable.
defaultQueryTimeout null 如果不是null,这个Integer的value将会用来衡量timeout,从连接创建时就开始计算。null意味着driver default将会被使用.
enableAutocommitOnReturn true 如果是true,连接如果返回到池的时候,将会检查是否被设置成了autoAutoCommit为false,那么就会调用Connection.setAutoCommit(true)
roolbackOnReturn true True意味着如果设置了autoCommit为false和readonly胃false的时候,当回到连接池的时候就回滚

Parameter Default Description
initialSize 0 连接池创建的时候,建立的连接数.从1.2起
maxTotal 8 一个时间最大的活跃连接数,负数代表没有上限
maxIdle 8 最大的idle保持数,其他的将会释放,负数代表没有上限
minIdle 0 最小的idle保持数,其他的将会被创建,0代表不保持
maxWaitMillis indefinitely 获取连接最大等待时间,-1代表一直等

Parameter Default Description
validationQuery   在返回连接前,是否进行验证。如果使用,必须使用一个SQL SELECT返回至少一行.如果没有配置,连接调用isValid()方法.
validationQueryTimeout no timeout 连接验证超时的秒数,如果设置为正数,将会用来验证连接的sql执行
testOnCreate false 在连接创建时,是否进行验证。如果验证失败,从连接池获取就会失败.
testOnBorrow true 在从池中借连接的时候是否验证。如果验证失败,就会放弃这个连接,试图获取另外一个.
testOnReturn true 在返回连接给连接池的时候,是否进行验证.
testWhileIdle false 空闲连接是否进行验证,如果失败,就会从连接池去除.
timeBetweenEvictionRunsMillis -1 空闲连接验证执行的时间间隔,负数将会代表不会执行
numTestsPerEvictionRun 3 执行空闲连接验证的线程数.
minEvictableIdleTimeMillis 1000 * 60 * 30 空闲保持时间,在这时间之后再进行空闲验证
softMinEvictableIdleTimeMillis -1 这个是空闲保持时间的软限制,如果设置最小空闲保持时间(这时候不考虑需要保持空闲连接数),则先和最小空闲保持时间对比,再和这个参数比。
maxConnLifetimeMillis -1 连接最大的生命时间。如果超过了这个时间,那么在下次活跃,不活跃或者验证测试的时候就会失败。0或者小于0代表连接没有生命上限
logExpiredConnections true 是否记录超时的连接数
connectionInitSqls null 建立连接的时候调用的sql,只有在connection fatory创建的时候调用
lifo true 这个一个队列模式lifo(last in first out)。如果设置为false,则为FIFO

Parameter Default Description
accessToUnderlyingConnectionAllowed false 是否可以PoolGuard可以获取底层连接
removeAbandonedOnMaintenance removeAbandonedOnBorrow false 这个是用来保证应用程序关闭连接失败的情况。在超时不使用并且超过抛弃时间后就会被抛弃掉。条件超时,还有其他条件:getNumActive() > getMaxTotal() - 3; and getNumIdle() < 2
removeAbandonedTimeout 300 抛弃的时间
logAbandoned false 是否记录abandoned的日志
abandonedUsageTracking false 是否记录trace,debug的时候比较有用
fastFailValidation false 这个设置为true的时候,validation快速失败当connection抛出fatal SqlException的时候。当对一个已经关闭的连接发出isValid方法和一个合法query的时候,就会快速失败.SQL_STATE默认是:(57P01 (ADMIN SHUTDOWN) 57P02 (CRASH SHUTDOWN) 57P03 (CANNOT CONNECT NOW) 01002 (SQL92 disconnect error) JZ0C0 (Sybase disconnect error) JZ0C1 (Sybase disconnect error) Any SQL_STATE code that starts with “08”) 可以通过设置disconnectionSqlCodes属性进行override
disconnectionSqlCodes null 配合fastValidation使用,用来设置需要包括的sql_state
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics