Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Intermittierender JDBC-Pipe- und Link-Fehler

Ein Broken pipe Nachricht bedeutet, dass das andere Ende die Verbindung geschlossen hat, möglicherweise aufgrund einer falschen Reihenfolge der empfangenen Pakete oder weil der Status zwischen Client und Server nicht synchronisiert ist oder ähnliches. Vielleicht befindet sich zwischen Ihrer Anwendung und dem Server eine Firewall, die dauerhafte Verbindungen beendet? Oder war vielleicht einige Zeit nichts in der Pipe (Verbindung) und der Server hat sie geschlossen? In jedem Fall, wenn Sie einen Verbindungspooling-Mechanismus verwenden (sollten Sie!) , sollte es möglich sein, die Behandlung solcher Situationen an sie zu delegieren.

Wenn Sie beabsichtigen, immer MySQL zu verwenden, können Sie versuchen, failOverReadOnly=false&maxReconnects=10&autoReconnect=true hinzuzufügen zu Ihrer Verbindungszeichenfolge. Dies ist spezifisch für den MySQL-JDBC-Treiber, daher würde ich Ihnen wirklich raten, Ihren Connection-Pooling-Mechanismus zu konfigurieren, um die Verbindungen zu testen, bevor Sie sie an Ihre Anwendung liefern.