2012-09-16 31 views
9

Estamos implementando una aplicación web usando JPA2.0 e Hibernate3.0. Las configuraciones del conjunto de conexiones se configuran en persistence.xml ubicado en la carpeta META-INF.C3P0 ¡Configuraciones! ¿Dónde y cómo?


persistence.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> 

Tenemos un problema con las configuraciones de agrupación de conexiones. Parece que las configuraciones no tienen ningún efecto y la conexión se interrumpirá después de 8 horas. ¿Necesitamos otro archivo de configuración como hibernate.cfg.xml o hibernate.properties?

Cualquier ayuda es bienvenida.

Respuesta

4

Tuve el mismo problema con las propiedades que puse en persistence.xml no afectó a c3p0.

Buscando en http://www.mchange.com/projects/c3p0/index.html#configuration_files Intenté poner un archivo xml llamado c3p0-config.xml y ponerlo en WEB-INF/classes y funciona perfectamente.

Aquí es un ejemplo de un archivo 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> 
+0

Philipi Willemann tiene razón, si agrega c3p0 config xml, las propiedades se leerán correctamente. N.B. si agrega algunas propiedades de configuración que ya están descritas en el archivo hibernate.config, hibernate las ignorará. Para referencia, puede encontrar más información aquí http://www.mchange.com/projects/c3p0/index.html#configuration_files en la sección "Anulación de c3p0 porfaults vía c3p0-config.xml" – sataniccrow

1

que tenían el mismo problema exacto, mi problema es que mi contenedor de aplicaciones Web (Tomcat) fue la gestión de mis conexiones de bases de datos. Tuve que mover la configuración c3p0 de mi archivo persistence.xml a context.xml de Tomcat. El enlace Domenic D proporcionado es un excelente lugar para comenzar si ese es tu problema.

Cuestiones relacionadas