2014-01-24 2 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

См. Параметры конфигурации maxIdleTime и maxIdleTimeExcessConnections.

Если вы хотите агрессивно исправлять размер пула при освещении груза, установите короткий maxIdleTimeExcessConnections. Оставьте просто maxIdleTime довольно длинным, так что вам не нужно излишне отказываться от подключений после того, как ваш пул ударил minPoolSize.

Если вам все равно, просто установите maxIdleTime, и в конечном итоге пул будет сокращаться, так как простаивает. Но при разумных значениях maxIdleTime это произойдет медленно.

Если ни maxIdleTime, ни maxIdleTimeExcessConnections (ни maxConnectionAge) устанавливаются эти значения по умолчанию все к нулю, а это означает Connections никогда не истекает, и бассейн будет сокращаться только Connections сломать и не тесты.

Смежные вопросы