Datenbank-Timeout und Verbindungspooling-Überlastung
Dieses Problem im Ruhezustand: „com.mysql.jdbc.Exceptions.jdbc4.MySQLNonTransientConnectionException: Keine Vorgänge zulässig.“ „After Connection Closed“ entsteht, wenn eine dauerhafte Verbindung aufgrund von Inaktivität implizit geschlossen wird.
Ursache:
Die Verbindung wird hergestellt, bleibt aber über einen längeren Zeitraum inaktiv das „wait_timeout“ des Servers oder die Client-Timeout-Einstellungen wie „connectionTimeout“.
Lösung:
1. Server- und Client-Timeouts anpassen:
2. Verbindungspooling konfigurieren:
Beispielkonfiguration für hibernate.cfg.xml mit C3P0:
<code class="xml"><property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="c3p0.max_size">20</property> <property name="c3p0.min_size">5</property> <property name="c3p0.timeout">1800</property> <property name="c3p0.idleTestPeriod">3600</property> <property name="c3p0.maxIdleTime">3600</property></code>
Zusätzlich Tipps:
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „MySQLNonTransientConnectionException: Nach dem Schließen der Verbindung sind keine Vorgänge zulässig' und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!