我有一个基本的 c3p0 配置如下。我要问的是,当应用程序上没有流量(连接保持空闲)时,当每个连接达到 maxIdleTime 时,c3p0 是否可以缩小池,因为最小和最大连接数相同?
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
<property name="jdbcUrl" value="#[jdbc.url]"/>
<property name="user" value="#[jdbc.username]"/>
<property name="password" ref="DbPassword"/>
<property name="minPoolSize" value=25/>
<property name="maxPoolSize" value=25/>
<property name="acquireIncrement" value= 1/>
<property name="idleConnectionTestPeriod" value="100"/>
<property name="maxIdleTime" value="120"/>
<property name="preferredTestQuery" value ="select 1 from dual"/>
最佳答案
maxIdleTimeExcessConnections
是关于在池未负载时最小化 c3p0 池所持有的连接数。默认情况下,c3p0 池会在负载下增长,但只有在连接测试失败或通过上述参数过期时才会收缩。一些用户希望他们的池在使用量激增后快速释放不必要的连接,从而强制使用较大的池大小。您可以通过将 maxIdleTimeExcessConnections
设置为远小于 maxIdleTime
的值来实现此目的,如果连接闲置时间超过短时间,则强制释放超出您设置的最小大小的连接。时间。
关于java - c3p0 - maxIdleTime 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37393267/