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