Permítanme describir mi pregunta –

Tengo una aplicación Java – Hibernate como el DB interfaz de la capa de más de MySQL. Me sale el enlace de comunicaciones error en mi aplicación. La aparición de este error es un caso específico. Me sale este error , Cuando dejo a un servidor mysql desatendido durante más de 6 horas aproximadamente (es decir, cuando no hay consultas emitidas a MySQL por más de 6 horas aproximadamente). Me estoy pegando un top de ‘excepción’ nivel de descripción que sigue, y la adición de un enlace de pastebin para una detallada stacktrace descripción.

javax.la persistencia.PersistenceException:
org.hibernate.excepción.JDBCConnectionException:
No se puede abrir la conexión
– Causada por: org.hibernate.excepción.JDBCConnectionException:
No se puede abrir la conexión
– Causada por el: com.mysql.jdbc.excepciones.jdbc4.CommunicationsException:
La falla de un enlace de comunicaciones
– El último paquete recibido correctamente desde el servidor
1,274,868,181,212 milisegundos atrás.
El último paquete enviado con éxito a
el servidor fue de 0 milisegundos atrás.
– Causada por el: com.mysql.jdbc.excepciones.jdbc4.CommunicationsException:
La falla de un enlace de comunicaciones
– El último paquete recibido correctamente desde el servidor
1,274,868,181,212 milisegundos atrás.
El último paquete enviado con éxito a
el servidor fue de 0 milisegundos atrás.
– Causada por: java.net.ConnectException: Conexión
se negó: conectar

el enlace a pastebin para una mayor investigación – http://pastebin.com/4KujAmgD

Lo que yo entiendo de estas excepción de las declaraciones es que MySQL es negarse a tomar en cualquier conexiones después de un período de inactividad/sin actividad. He estado leyendo un poco acerca de esto a través de la búsqueda de google, y llegó a saber que una de las posibles formas de superar este es para establecer los valores de c3p0 propiedades como c3p0 viene con Hibernate. Específicamente, he leído de aquí http://www.mchange.com/projects/c3p0/index.html que la configuración de dos propiedades idleConnectionTestPeriod y preferredTestQuery va a resolver esto por mí. Pero estos valores no parecen haber tenido un efecto.

Este es el enfoque correcto para arreglar esto? Si no, ¿cuál es el camino correcto para llegar a más de esto?

Las siguientes son las Comunicaciones relacionadas con la Falla en el Enlace de preguntas stackoverflow.com, pero no he encontrado una respuesta satisfactoria en sus respuestas.
com.mysql.jdbc.excepciones.jdbc4.CommunicationsException:la falla de un enlace de Comunicaciones
Cómo manejar: error de vínculo de Comunicación

Nota 1 – no me aparece este error cuando estoy usando mi aplicación continuamente.
Nota 2 – puedo usar JPA con Hibernate y de ahí mi hibernación.dialecto,etc hibernate propiedades residen dentro de la persistence.xml en la carpeta META-INF (¿ que impiden la c3p0 propiedades de trabajo?)

editar –
el c3p0 parámetros traté de salir en los comentarios

  • Por favor, actualice su pregunta para incluir la plena Hibernación c3p0 de configuración.
  • Aquí están – <property name=»hibernate.c3p0.idle_test_period» value=»14400″/> <property name=»hibernate.c3p0.tiempo de espera» value=»25200″ /> <property name=»hibernate.c3p0.preferredTestQuery»>seleccione 1;</propiedad> <property name=»hibernate.c3p0.acquireIncrement»>2</propiedad>
InformationsquelleAutor Vatsala | 2010-05-26

4 Comentarios

  1. 1

    Incluso me enfrenté a este error, lo tengo resuelto sólo después de habilitar autoReconnect=true en c3p0 config

    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/ex_app?autoReconnect=true</property>
  2. 0

    He resuelto mi error de vínculo de comunicación con c3p0.
    Me encontré con el blog de abajo que explicó que el
    org.hibernate versión debe ser igual a la c3p0 versión,
    así que este es el pom de configuración que hizo que mi día

    <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>4.3.6.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
         <artifactId>hibernate-entitymanager</artifactId>
         <version>4.3.1.Final</version>
     </dependency>
    <dependency>
     <groupId>org.hibernate</groupId>
      <artifactId>hibernate-c3p0</artifactId>
     <version>4.3.6.Final</version>
    </dependency>
    
      <dependency>
        <groupId>c3p0</groupId>
        <artifactId>c3p0</artifactId>
       <version>0.9.1.2</version>
    </dependency>

    como él explica, fue suficiente para añadir una propiedad a hibernate.cfg.xml
    para obtener c3p0 la agrupación de

           <property name="hibernate.c3p0.min_size">10</property>

    no más de vínculo de comunicaciones «error» , «espera a leer 5 bytes,0» después de eso.
    aquí está el enlace:https://howtodoinjava.com/hibernate/hibernate-c3p0-connection-pool-configuration-tutorial/

Dejar respuesta

Please enter your comment!
Please enter your name here