一、配置项
连接池池在连接增长很快的情况下,c3p0提供了几种加快revert 到池最小size(minPoolSize)的配置,以及旧的连接是否应该被主动替换掉。
-
maxConnectionAge
单位:秒。设置每个connection的年龄,到了这个年龄,自动被替剔除掉。该配置强行剔除掉任何获得到的设置了时长,且超过了该时长的连接。 -
maxIdleTime
单位:秒。定义一个在被从pool中剔除掉的连接前,未使用时最长可以空间的时间。 -
maxIdleTimeExcessConnections
默认情况下,只有在连接test失败或者前面2个配置描述过期之后,c3p0连接数才会减少。
值要比maxIdleTime小。
默认情况下,池连接永远不会过期。如果想被设置过期时间,设置maxIdleTime
和maxConnectionAge
.
二、advice
通常情况下,连接池需要从DB获取连接是要花费很大的代价,任何会重复使用多次。大多数DB支持保持连接时长以小时计算的。没必要通过设置idletime几分钟或者几秒钟来反复折腾连接池.
There's no need to churn through all your Connections every few seconds or minutes.
通常设置maxConnectionAge或者maxIdleTime 1800s(30 mins)是最有效果的。