http://shmilyaw-hotmail-com.iteye.com/blog/1986566
首先通过factory.makeObject来创建对象,然后通过validateObject验证对象,验证通过之后再passivateObject,将它加入到idleReferences里面。这里凡是创建的对象不管是不是合法的都会加入到allReferences。这个allReferences相当于一个记录本一样,所有打过交道的对象都会在他这边有备案。所以我们在查找一些对象引用的时候会用到它。
http://www.jianshu.com/p/b0189e01de35
-
lifo:连接池放池化对象方式,默认为true
true:放在空闲队列最前面
false:放在空闲队列最后面 -
fairness:等待线程拿空闲连接的方式,默认为false
true:相当于等待线程是在先进先出去拿空闲连接
-
maxWaitMillis:当连接池资源耗尽时,调用者最大阻塞的时间,超时将跑出异常。单位,毫秒数;默认为-1.表示永不超时. 默认值 -1
maxWait:commons-pool1中
-
minEvictableIdleTimeMillis:连接空闲的最小时间,达到此值后空闲连接将可能会被移除。负值(-1)表示不移除;默认值1000L 60L 30L
-
softMinEvictableIdleTimeMillis:连接空闲的最小时间,达到此值后空闲链接将会被移除,且保留“minIdle”个空闲连接数。负值(-1)表示不移除。默认值1000L 60L 30L
-
numTestsPerEvictionRun:默认值 3
-
evictionPolicyClassName:默认值
org.apache.commons.pool2.impl.DefaultEvictionPolicy
-
testOnCreate:默认值false
-
testOnBorrow:向调用者输出“链接”资源时,是否检测是有有效,如果无效则从连接池中移除,并尝试获取继续获取。默认为false。建议保持默认值.
-
testOnReturn:默认值false
-
testWhileIdle:向调用者输出“链接”对象时,是否检测它的空闲超时;默认为false。如果“链接”空闲超时,将会被移除;建议保持默认值。默认值false
-
timeBetweenEvictionRunsMillis:“空闲链接”检测线程,检测的周期,毫秒数。如果为负值,表示不运行“检测线程”。默认值 -1L
-
blockWhenExhausted:默认值true
-
jmxEnabled:默认值true
-
jmxNamePrefix:默认值
pool
-
jmxNameBase:默认值 null
-
maxTotal:链接池中最大连接数,默认值8
commons-pool1 中maxActive改成maxTotal
-
maxIdle:连接池中最大空闲的连接数,默认为8
-
minIdle: 连接池中最少空闲的连接数,默认为0
-
softMinEvictableIdleTimeMillis: 连接空闲的最小时间,达到此值后空闲链接将会被移除,且保留“minIdle”个空闲连接数。默认为-1.
-
numTestsPerEvictionRun: 对于“空闲链接”检测线程而言,每次检测的链接资源的个数。默认为3.
-
whenExhaustedAction: 当“连接池”中active数量达到阀值时,即“链接”资源耗尽时,连接池需要采取的手段, 默认为1:
0:抛出异常
1:阻塞,直到有可用链接资源
2:强制创建新的链接资源