Una Broken pipe
mensaje significa que el otro extremo cerró la conexión, posiblemente debido a un orden incorrecto de los paquetes recibidos, o porque el estado entre el cliente y el servidor no está sincronizado o algo por el estilo. ¿Quizás hay un firewall entre su aplicación y el servidor que elimina las conexiones persistentes? ¿O tal vez no pasó nada en la tubería (conexión) durante algún tiempo y el servidor la cerró? En cualquier caso, si está utilizando un mecanismo de agrupación de conexiones (¡debería hacerlo!)
, debería ser posible delegarle el manejo de tales situaciones.
O, si tiene la intención de usar siempre MySQL, puede intentar agregar failOverReadOnly=false&maxReconnects=10&autoReconnect=true
a su cadena de conexión. Esto es específico del controlador MySQL JDBC, por lo que le recomiendo que configure su mecanismo de agrupación de conexiones para probar las conexiones antes de enviarlas a su aplicación.