(四)配置池大小和连接的年龄

一、配置项

连接池池在连接增长很快的情况下,c3p0提供了几种加快revert 到池最小size(minPoolSize)的配置,以及旧的连接是否应该被主动替换掉。

  1. maxConnectionAge
    单位:秒。设置每个connection的年龄,到了这个年龄,自动被替剔除掉。该配置强行剔除掉任何获得到的设置了时长,且超过了该时长的连接
  2. maxIdleTime
    单位:秒。定义一个在被从pool中剔除掉的连接前,未使用时最长可以空间的时间。
  3. maxIdleTimeExcessConnections
    默认情况下,只有在连接test失败或者前面2个配置描述过期之后,c3p0连接数才会减少。
    值要比maxIdleTime小。

默认情况下,池连接永远不会过期。如果想被设置过期时间,设置maxIdleTimemaxConnectionAge.

二、advice

通常情况下,连接池需要从DB获取连接是要花费很大的代价,任何会重复使用多次。大多数DB支持保持连接时长以小时计算的。没必要通过设置idletime几分钟或者几秒钟来反复折腾连接池.

There's no need to churn through all your Connections every few seconds or minutes.

通常设置maxConnectionAge或者maxIdleTime 1800s(30 mins)是最有效果的。

你可能感兴趣的:((四)配置池大小和连接的年龄)