스프링이있는 c3p0 연결 풀 (일반 jdbc, 최대 절전 모드 없음)을 사용하고 있습니다. 다음은 풀 구성입니다.c3p0 풀이 줄어들지 않습니다.
<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="acquireIncrement" value="3"/>
<property name="minPoolSize" value="3"/>
<property name="maxPoolSize" value="25"/>
<property name="maxStatementsPerConnection" value="0"/>
<property name="numHelperThreads" value="6"/>
<property name="testConnectionOnCheckout" value="false" />
<property name="testConnectionOnCheckin" value="false" />
<property name="idleConnectionTestPeriod" value="10"/>
<property name="preferredTestQuery" value="select curdate()"/>
<property name="maxIdleTime" value="5" />
<property name="unreturnedConnectionTimeout" value="5" />
<property name="debugUnreturnedConnectionStackTraces" value="true" />
</bean>
연결 풀을 모니터링하는 데 JMX를 사용하고 있습니다. 나는 나의 수영장이 25의 아래에서로드에 관해 성장하는 것을 안다. 그러나 결코 뒤로 물러 서지 마라. 여기에 코피를 놓친 건가?
는 "maxIdleTime는 연결이 풀에서 도태되기 전에 사용하지 않는 이동하도록 허용해야하는 시간 (초)을 정의합니다." 풀에서 유휴 연결을 제거하는 데 사용되는 것으로 생각했습니다. – Pushkar
@Pushkar, 나는 c3p0를 사용하기 시작할 때 maxIdleTime 매개 변수에 대해 동일한 가정을했다. 나는 JMX 풀 크기를 모니터링하는 것과 같은 연습을했고 풀이 줄어들지는 않았 음을 알았다. maxIdleTime과 maxIdleTimeExcessConnections의 조합이라는 것을 알게되었습니다. maxIdleTimeExcessConnections가 없으면 연결이 유휴 상태가 될 수 있지만 즉시 풀 크기로 유지하기 위해 새 연결로 바뀝니다. –