Foros del Web » Programación para mayores de 30 ;) » Java »

Reconexion con Hibernate

Estas en el tema de Reconexion con Hibernate en el foro de Java en Foros del Web. Tengo un problema con hibernate y la conexion. Luego de un rato de inactividad, unas horas aproximadamente, que no se realizan consultas, se pierde la ...
  #1 (permalink)  
Antiguo 07/02/2011, 11:51
Avatar de francopai  
Fecha de Ingreso: agosto-2008
Mensajes: 42
Antigüedad: 16 años, 3 meses
Puntos: 2
Reconexion con Hibernate

Tengo un problema con hibernate y la conexion. Luego de un rato de inactividad, unas horas aproximadamente, que no se realizan consultas, se pierde la conexion con la base de datos, en este caso My SQL. No utilizo ningun tipo de pool de conexiones ni nada raro, simplemente la config normal de hibernate.
Alguien podria decirme porque ocurre esto y donde se podria configurarlo para que no se pierda la conexion?

Gracias
  #2 (permalink)  
Antiguo 07/02/2011, 12:34
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 14 años
Puntos: 32
Respuesta: Reconexion con Hibernate

Hola:

MySql cierra automáticamente las conexiones inactivas. Necesitas configurar algunas propiedades en el hibernate.cfg.xml
Mira este link:
http://www.codefin.net/2007/05/hiber...-timeouts.html

saludos;

Nup_
  #3 (permalink)  
Antiguo 07/02/2011, 18:06
Avatar de francopai  
Fecha de Ingreso: agosto-2008
Mensajes: 42
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Reconexion con Hibernate

Gracias nup_ por contestar, te cuento que estuve mirando y aplicando todo lo que dice en el link que me pasaste y no conseguí que funcione. Entonces segui investigando y encontré varios lugares donde dicen que el pool de conexiones por defecto de Hibernate no es bueno y no es muy recomendable, etc. Entonces decidí implementar C3P0, pero tampoco conseguí resultados. Te dejo a continuacion el link que segui y mi archivo de configuracion hibernate.cfg.xml.

http://rodrigomontemayor.wordpress.com/2009/10/05/como-configurar-c3p0-para-hibernate-y-encontrar-sesiones-no-cerradas/"]http://rodrigomontemayor.wordpress.com/2009/10/05/como-configurar-c3p0-para-hibernate-y-encontrar-sesiones-no-cerradas/

Código:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- <property name="connection.url">jdbc:mysql://localhost:3306/sic</property>
        <property name="connection.username">xxxx</property>
        <property name="connection.password">xxxx</property> -->
        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>
        <!-- Disable the second-level cache -->
        <!--<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> -->
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <!-- Drop and re-create the database schema on startup -->
        <!-- <property name="hbm2ddl.auto">create</property> -->
        <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>

        <!-- configuration pool via c3p0-->
        <property name="c3p0.acquire_increment">1</property>
        <property name="c3p0.idle_test_period">60</property> <!-- seconds -->
        <property name="c3p0.max_size">10</property>
        <property name="c3p0.max_statements">0</property>
        <property name="c3p0.min_size">3</property>
        <property name="c3p0.timeout">1000</property> <!-- seconds -->
        <!-- configuration pool via c3p0-->

         <!-- los mapping vienen aca -->
        
    </session-factory>
</hibernate-configuration>
Muchas Gracias
  #4 (permalink)  
Antiguo 07/02/2011, 18:54
Avatar de francopai  
Fecha de Ingreso: agosto-2008
Mensajes: 42
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Reconexion con Hibernate

Encontré el problema. La configuracion que publiqué en el post anterior funciona perfecto, el problema era que no me estaba encontrando el archivo hibernate.cfg.xml, entonces le cambié de nombre al archivo y funciona todo. Ahora lo que me pregunto es porque pasa esto, siempre que cambio una configuracion dentro de ese xml de hibernate, me da este problema, y se arregla cambiando el nombre, es como que estuviera "cacheando" una version vieja de ese archivo y nunca lee la nueva.
Si alguien sabe esto, le agradeceria el comentario

Gracias
  #5 (permalink)  
Antiguo 08/02/2011, 07:54
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 1 mes
Puntos: 51
Respuesta: Reconexion con Hibernate

El fichero hibernate.cfg.xml se guarda en el directorio classes y se carga a través del classpath, por lo que una vez cargado no pilla los cambios hasta que no reinicias la MVJ donde está la aplicación.
Si una vez reiniciada la aplicacación no te pilla los cambios, es que alguien está guardando una versión antigua de ese fichero. Podría ser el servidor de aplicaciones.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #6 (permalink)  
Antiguo 08/02/2011, 15:24
Avatar de francopai  
Fecha de Ingreso: agosto-2008
Mensajes: 42
Antigüedad: 16 años, 3 meses
Puntos: 2
Reconexion con Hibernate

Gracias a todos por su ayuda!, espero poder aportar tambien desde mi experiencia a la comunidad.
Saludos

Etiquetas: hibernate
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:13.