2014-01-24 3 views
0

스프링이있는 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> 

내가 볼 않는 연결 풀 (25 개) 연결의 최대 값을 명중하지만이 다시 절대 축소되지 부하가 ​​감소하면 다시 축소합니다.

여기에 설정이 누락 되었습니까?

답변

0

구성 매개 변수 maxIdleTimemaxIdleTimeExcessConnections을 참조하십시오.

로드가 밝을 때 풀 크기를 적극적으로 줄이려면 maxIdleTimeExcessConnections으로 설정하십시오. maxIdleTime은 꽤 길기 때문에 풀이 minPoolSize에 도달하면 불필요하게 연결을 끊어 버릴 필요가 없습니다.

별로 신경 쓰지 않는다면 maxIdleTime으로 설정하면 유휴 연결 만료로 풀이 축소됩니다. 그러나 합리적인 값인 maxIdleTime의 경우이 작업은 느리게 진행됩니다.

maxIdleTimemaxIdleTimeExcessConnections도 아니고도 설정되지 않은 경우이 값은 모두 기본값이 0이며 연결이 만료되지 않음을 의미하며 연결이 끊어 지거나 테스트가 실패 할 때만 풀만 축소됩니다.

관련 문제