Что является отсутствующим параметром в пуле соединений? - PullRequest
1 голос
/ 11 сентября 2009
  <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>

            <property name="c3p0.max_size">100</property>
    <property name="c3p0.idleConnectionTestPeriod">300</property>
    <property name="c3p0.acquire_increment">1</property> 
    <property name="c3p0.idle_test_period">100</property> <!-- seconds --> 
    <property name="c3p0.max_statements">0</property> 
    <property name="c3p0.min_size">10</property> 
    <property name="c3p0.timeout">100</property> <!-- seconds --> 

Это конфигурация в hibernate.cfg.xml. Я использую hibernate 3.2.5 и c3p0 0.9. Я не знаю, что я пропустил в этой конфигурации. После нескольких запросов он показывает, что соединение достигло максимального размера пула и ожидает свободных ресурсов. Если я использую конфигурацию пула подключений без подключения к моей локальной машине, сообщение об ошибке не появится. Пожалуйста, помогите мне найти недостающую часть.

1 Ответ

2 голосов
/ 11 сентября 2009

Я использую следующую конфигурацию и без проблем работает в долгосрочных тестах: (Мой источник данных настроен Spring, но вы все равно можете увидеть свойства для c3p0)

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> 
    <property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
    <property name="jdbcUrl" value="${database.url}" />
    <property name="user" value="${database.login}" />
    <property name="password" value="${database.password}" />
    <property name="minPoolSize" value="3" />
    <property name="maxPoolSize" value="100" />
    <property name="maxStatements" value="1100" />
    <property name="maxStatementsPerConnection" value="120" />      
    <property name="checkoutTimeout" value="5000" />
    <property name="idleConnectionTestPeriod" value="60" />
</bean>

Однако я думаю, что ваша проблема не в конфигурации. Я предполагаю, что не все соединения возвращаются в пул, и поэтому пул через некоторое время работает всухую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...