dbcp 参数详解
C3P0连接池的默认配置参数满足一般应用就是没有问题的,但是DBCP的默认配置参数很不合适,我一个同事被这个问题搞得很崩溃,考虑到有些人对这些参数具体是干什么的可能也是模棱两可,就把我同事总结的这个文档拿出来和大家一起分享了~考虑到版权问题,估计得请他吃顿饭了,唉~
dbcp 连接池配置官网地址:
http://commons.apache.org/dbcp/configuration.html
username : 连接用户名
password : 连接密码
url : 连接url(如果连接mysql,格式为jdbc:mysql://ip:port/dbname)
driverClassName : jdbc driver 名字(如果是mysql,则为com.mysql.jdbc.Driver)
connectionProperties : 当建立一个数据库连接的时候,这些属性参数将传给jdbc driver,参数的形式必须是[propertyName=property;]* 。
注:username和password必须明确的传给driver,不必包含在这个属性中。
initialSize :默认值是0, 连接池创建连接的初始连接数目
maxActive : 默认值是8, 连接池中同时可以分派的最大活跃连接数
maxIdle : 默认是8,连接池中最大空闲连接数
minIdle : 默认是0, 连接数中最小空闲连接数
maxWait : 默认值是无限大,当连接池中连接已经用完了,等待建立一个新连接的最大毫秒数(在抛异常之前)
validationQuery : 一条sql语句,用来验证数据库连接是否正常。这条语句必须是一个查询模式,并至少返回一条数据。一般用“select 1”
testOnBorrow : 默认值是true,当从连接池取连接时,验证这个连接是否有效
testOnReturn : 默认值是flase, 当从把该连接放回到连接池的时,验证这个连接是否有效
testWhileIdle : 默认值是false, 当连接池中的空闲连接是否有效
timeBetweenEvictionRunsMilis : 默认值是-1,每隔一段多少毫秒跑一次回收空闲线程的线程
numTestsPerEvictionRun : 默认值是3,每次验证空闲连接的连接数目
minEvictableIdleTimeMilis : 默认值是1000 * 60 * 30(30分钟),连接池中连接可空闲的时间
connectionInitSqls : 默认值是null, 一组用来初始化连接的sql语句,这些语句只在连接工厂创建连接时执行一次。
removeAbandoned : 默认值是false, 是否清理removeAbandonedTimeout秒没有使用的活动连接,清理后并没有放回连接池
removeAbandonedTimeout : 默认值是300(秒), 活动连接的最大空闲时间
logAbandoned : 默认值false, 连接池收回空闲的活动连接时是否打印消息
注:
1.minEvictableIdleTimeMilis,removeAbandonedTimeout这两个参数针对的连接对象不一样,minEvictableIdleTimeMillis针对连接池中的连接对象,removeAbandonedTimeout针对未被close的活动连接(被调用,不在池中的连接对象)
2.maxWait、timeBetweenEvictionRunsMilis、minEvictableIdleTimeMilis单位是毫秒,removeAbandonedTimeout单位是秒