java - c3p0 - maxIdleTime 配置

标签 java c3p0

我有一个基本的 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/

相关文章:

java - java Stream.peek() 如何影响字节码?

java - 使用连接池时,我应该在每次查询时获取连接还是每批获取一次连接?

hibernate - Play 框架连接超时问题

hibernate - 我可以使用 Spring/Hibernate/c3p0 为多个数据库使用一个池数据源吗?

java - hibernate "APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!"

Java工厂方法缓存

java - 配置 Swagger-UI 以获取 Spring 的 HttpSecurity Logout 端点

java - Oozie Java Action System.out

Java 函数式接口(interface)与具有较少输入参数的方法匹配

datasource - c3p0 连接池是否确保最大池大小?