Broken pipe
komunikat oznacza, że drugi koniec zamknął połączenie, prawdopodobnie z powodu niewłaściwej kolejności odebranych pakietów lub z powodu braku synchronizacji stanu między klientem a serwerem lub czegoś w tym rodzaju. Być może między twoją aplikacją a serwerem znajduje się zapora, która zabija trwałe połączenia? A może przez jakiś czas nic się nie działo na rurze (połączeniu), a serwer ją zamknął? W każdym razie, jeśli używasz mechanizmu puli połączeń (powinieneś!)
, powinno być możliwe przekazanie mu obsługi takich sytuacji.
Lub, jeśli zamierzasz zawsze używać MySQL, możesz spróbować dodać failOverReadOnly=false&maxReconnects=10&autoReconnect=true
do ciągu połączenia. Jest to specyficzne dla sterownika MySQL JDBC, więc naprawdę radziłbym skonfigurować mechanizm puli połączeń w celu przetestowania połączeń przed dostarczeniem ich do aplikacji.