2016-05-23 2 views
1

У меня есть базовая конфигурация c3p0, как показано ниже. Я спрашиваю, когда в приложении нет трафика (соединения остаются бездействующими), может ли c3p0 сжимать пул, когда maxIdleTime достигается для каждого соединения, так как минимальные и максимальные номера соединений одинаковы?c3p0 - конфигурация maxIdleTime

<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"/> 

ответ

1

maxIdleTimeExcessConnections о минимизации количества соединений, принадлежащих C3P0 бассейнов, когда бассейн не находится под нагрузкой. По умолчанию пулы c3p0 растут под нагрузкой, но только сжимаются, если Connections не проходят проверку соединения или истекают через параметры, описанные выше. Некоторые пользователи хотят, чтобы их пулы быстро освобождали ненужные соединения после использования всплеска, что заставляет большой размер пула. Вы можете достичь этого, установив maxIdleTimeExcessConnections на значение, намного меньшее, чем maxIdleTime, заставляя соединения за пределами установленного минимального размера освобождаться, если они сидят без дела в течение более короткого периода времени.

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