Конфигурации C3P0! Где и как?

Мы реализуем веб-приложение с использованием JPA2.0 и Hibernate3.0. Конфигурации пула соединений задаются в файле persistence.xml, расположенном в папке META-INF.


постоянство.xml:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="MyPU" transaction-type="RESOURCE_LOCAL">
        <!-- Entity Classes-->
        <properties>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="bytecode.provider"   value="org.hibernate.bytecode.javassist.BytecodeProviderImpl"/>
            <property name="hibernate.connection.username" value="{username}"/>
            <property name="hibernate.connection.password" value="{password}"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.connection.url" value="{jdbc url}"/>

            <property name="hibernate.c3p0.min_size" value="1"/>
            <property name="hibernate.c3p0.timeout" value="1000"/>
            <property name="hibernate.c3p0.acquire_increment" value="1"/>
            <property name="hibernate.c3p0.idle_test_periods" value="600"/>
            <property name="hibernate.c3p0.testConnectionOnCheckin" value="true"/>
            <property name="hibernate.c3p0.preferredTestQuery" value="SELECT 1;"/>
       </properties>
    </persistence-unit>
</persistence>

У нас проблема с конфигурациями пула соединений. Кажется, настройки не действуют, и соединение будет разорвано через 8 часов. Нужен ли нам еще один файл конфигурации, такой как hibernate.cfg.xml или hibernate.properties?


person Babak Behzadi    schedule 16.09.2012    source источник
comment
Возможный дубликат Лучшая конфигурация c3p0   -  person Félix Adriyel Gagnon-Grenier    schedule 18.05.2019


Ответы (4)


У меня была такая же проблема с свойствами, которые я указал в файле persistence.xml, не влияли на c3p0.

Изучение http://www.mchange.com/projects/c3p0/index.html#configuration_files Я попытался поместить файл xml с именем c3p0-config.xml и поместить его в WEB-INF/classes, и он отлично работает.

Вот пример файла c3p0-config.xml:

<c3p0-config>
  <default-config>
    <property name="automaticTestTable">con_test</property>
    <property name="checkoutTimeout">30000</property>
    <property name="idleConnectionTestPeriod">30</property>
    <property name="initialPoolSize">10</property>
    <property name="maxIdleTime">30</property>
    <property name="maxPoolSize">100</property>
    <property name="minPoolSize">10</property>
    <property name="maxStatements">200</property>

    <user-overrides user="test-user">
      <property name="maxPoolSize">10</property>
      <property name="minPoolSize">1</property>
      <property name="maxStatements">0</property>
    </user-overrides>

  </default-config>
</c3p0-config>
person Philipi Willemann    schedule 27.02.2013
comment
Филиппи Виллеманн прав, если вы добавите xml конфига c3p0, свойства будут читаться правильно. Н.Б. если вы добавите некоторые свойства конфигурации, которые уже описаны в файле hibernate.config, hibernate проигнорирует их. Для справки вы можете найти дополнительную информацию здесь mchange.com/projects/c3p0/index. html#configuration_files в разделе Переопределение значений по умолчанию c3p0 через c3p0-config.xml - person sataniccrow; 14.03.2014

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

person Domenic D.    schedule 21.09.2012

У меня была точно такая же проблема, моя проблема заключалась в том, что мой контейнер веб-приложения (Tomcat) управлял моими подключениями к базе данных. Мне пришлось переместить конфигурацию c3p0 из моего файла persistence.xml в файл context.xml Tomcat. Ссылка, предоставленная Домеником Д., — отличное место для начала, если это ваша проблема.

person The Gilbert Arenas Dagger    schedule 09.09.2014

В ваших настройках опечатка, должно быть idle_test_period, а не idle_test_periods.

См. этот пост для получения информации о настройке: Использование c3p0.idle_test_period.

person Guest    schedule 14.03.2018