Configurations C3P0! Où et comment?

nous implémentons une application web utilisant JPA2.0 et Hibernate3.0. Les configurations du pool de connexion sont définies dans la persistance.xml situé dans le dossier META-INF.


la persistance.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>

nous avons un problème avec les configurations du pool de connexion. Il semble que les configurations n'ont aucun effet et la connexion sera rompue après 8 heures. Avons-nous besoin d'un autre fichier de configuration comme hiberner.cfg.xml ou mise en veille prolongée.propriétés?

Toute aide est la bienvenue.

10
demandé sur Babak Behzadi 2012-09-16 14:44:31

4 réponses

j'ai eu ce même problème avec les propriétés que j'ai mis dans la persistance.xml n'a pas affecté c3p0.

en regardant http://www.mchange.com/projects/c3p0/index.html#configuration_files j'ai essayé de mettre un fichier xml nommé c3p0-config.xml et de le mettre dans WEB-INF/classes et il fonctionne parfaitement.

voici un exemple de fichier 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>
4
répondu Philipi Willemann 2013-02-27 11:44:31

bonne question, mauvais titre. :) Je pense que j'ai répondu à cette question sur votre re-post: Meilleure configuration de c3p0

2
répondu Domenic D. 2017-05-23 12:25:47

j'avais exactement le même problème, mon problème était que mon conteneur d'application Web (Tomcat) gérait mes connexions de base de données. J'ai dû déplacer la configuration c3p0 de ma persistance.fichier xml dans le contexte de Tomcat.XML. Le lien Domenic D fournie est un excellent endroit pour commencer si c'est votre problème.

1
répondu The Gilbert Arenas Dagger 2014-09-10 14:50:14

il y a une typographie dans vos paramètres, elle devrait être idle_test_period et non idle_test_periods .

Voir ce post pour plus d'informations sur le paramètre: L'utilisation de c3p0.idle_test_period.

-1
répondu Guest 2018-03-14 12:03:32