java.sql.SQLRecoverableException: ¿No hay más datos para leer del socket cuando se usa un grupo de conexiones?

Cuando me conecto a una base de datos utilizando un grupo de conexiones obtengo esta excepción.

Entonces intenté conectarme a la base de datos utilizando el Class.forName básico (); y el método DriverManager pude hacerlo … ¿por qué sucede esto?

Este problema puede surgir dondequiera que esté involucrado un conjunto de conexiones. La razón de esto es la siguiente.

La razón:

  • Digamos que en su aplicación ha configurado un conjunto de conexiones. Y pides 5 objetos de conexión.
  • Su conjunto de conexiones suele ser manejado por un contenedor como Tomcat, Spring o CQ5 (en mi caso)
  • Ahora deja su aplicación inactiva durante algún tiempo, pero el contenedor y el grupo de conexiones aún están activos.
  • Y ahora, el truco de magia , el servidor de la base de datos se reinicia según lo progtwigdo.
  • Esto hace que los objetos de conexión activos / activos dentro de la agrupación de conexiones de los servidores de su aplicación se rompan.
  • Entonces, llega en el siguiente momento y, de repente, recibe estos errores cuando funcionaba bien hace algún tiempo.

La solución:

  • Puede restablecer el grupo de conexiones: esta es la mejor opción. Esto eliminaría las conexiones rotas actuales que residen en el grupo y creará a la fuerza un nuevo grupo de conexiones con nuevos objetos de conexión dentro de ellos.

  • Puede reiniciar el servidor de aplicaciones. No recomendado. (No puede seguir reiniciando servidores de aplicaciones en Producción)

Enlace de referencia