Diagnose des Fehlers „com.mysql.jdbc.Exceptions.jdbc4.MySQLNonTransientConnectionException: Nach dem Schließen der Verbindung sind keine Vorgänge zulässig“
Bei Verwendung des Ruhezustands Bei Remote-Verbindungen kann es aufgrund unterbrochener Verbindungen zu der Fehlermeldung „Nach dem Schließen der Verbindung sind keine Vorgänge zulässig“ kommen. Standardmäßig verfügt MySQL über eine wait_timeout-Einstellung, die dazu führen kann, dass die Verbindung nach einem Zeitraum der Inaktivität geschlossen wird. Dies kann bei längeren Anwendungsläufen oder bei Netzwerkinstabilität passieren.
Verbindungspooling mit C3P0
Um dieses Problem zu beheben, wird empfohlen, eine Verbindungspooling-Bibliothek wie zu verwenden C3P0. Das native Verbindungspooling von Hibernate ist begrenzt und nicht für Produktionsumgebungen geeignet. Durch Verbindungspooling wird ein Pool von Verbindungen erstellt, die von der Anwendung verwaltet und wiederverwendet werden, wodurch der Aufwand für die Einrichtung neuer Verbindungen für jede Abfrage reduziert wird.
C3P0 mit Ruhezustand konfigurieren
Hier eine aktualisierte Konfigurationsdatei mit C3P0:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
In dieser Konfiguration ist der C3P0-Verbindungsanbieter mit den entsprechenden Einstellungen für Poolgröße, Timeout und Verbindungstests aktiviert.
Sonstiges Mögliche Ursachen
Wenn das Problem durch Verbindungspooling nicht behoben wird, lohnt es sich, andere mögliche Ursachen zu untersuchen, wie zum Beispiel:
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „com.mysql.jdbc.Exceptions.jdbc4.MySQLNonTransientConnectionException: Keine Operationen zulässig, nachdem die Verbindung geschlossen wurde' im Ruhezustand?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!