名称:
Connection Lifetime
默认值:
0
说明 :
当连接被返回到池时,将其创建时间与当前时间作比较,如果时间长度(以秒为单位)超出了由 Connection Lifetime 指定的值,该连接就会被销毁。这在聚集配置中很有用(用于强制执行运行中的服务器和刚置于联机状态的服务器之间的负载平衡)。
零 (0) 值将使池连接具有最大的连接超时。
上面话容易产生误解:
我发现有很多连接已经创建很长时间并且处于等待中(sleep)却没有自动被销毁,我测试的结果是只有这些连接再次被取出用于数据库访问时连接池才会检测这些连接是否超期,如果超期则访问完本次查询后立马关闭。
如果这些连接一直没在次被使用那么则永远不会检测到超期。所以会看到有很多sleep的连接。
如果对我们的数据库持续进行访问,你会发现数据库连接会在指定的
Connection Lifetime时间长度内关闭持续使用的连接,在创建新的连接。如果突然停止,你会发现剩下的连接sleep很长时间也不会关闭。但是此时我一个一个sql去查询,发现查询一次关闭一个超期连接,直到关闭完为止才会创建新的连接。
只有连接在使用的时候ConnectionLifeTime才会起作用。