"com.mysql.jdbc.Exceptions.jdbc4.MySQLNonTransientConnectionException: Keine Vorgänge zulässig, nachdem die Verbindung geschlossen wurde"
Problem:
Beim Bereitstellen einer Anwendung auf einem Remote-Server tritt eine MySQL-Verbindungsausnahme auf, nachdem die Anwendung länger als einen Tag ausgeführt wurde. Die Ausnahmemeldung besagt, dass nach dem Schließen der Verbindung keine Vorgänge mehr zulässig sind.
Ursache:
Die Ausnahme wird wahrscheinlich durch eine unterbrochene Verbindung aufgrund von Inaktivität verursacht. Die Standard-Timeout-Einstellungen für den MySQL-Server und -Client sind möglicherweise zu kurz, was dazu führen kann, dass Verbindungen vorzeitig geschlossen werden.
Lösung:
1. Server- und Client-Timeouts anpassen
Server (MySQL-Konfiguration):
Client (Ruhezustand/JDBC-Verbindungspool):
2. Aktivieren Sie Verbindungspooling
Zusätzliche Maßnahmen:
Aktualisierte Hibernate-Konfiguration:
Die bereitgestellte aktualisierte Hibernate-Konfigurationsdatei verwendet C3P0-Verbindungspooling und enthält die empfohlenen Einstellungen:
<hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/xyz</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <!-- Enable C3P0 connection pooling --> <property name="hibernate.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.max_statements">0</property> <property name="c3p0.timeout">600</property> <property name="c3p0.idleConnectionTestPeriod">3600</property> <property name="c3p0.testConnectionOnCheckout">true</property> </session-factory> </hibernate-configuration>
Das obige ist der detaillierte Inhalt vonWie behebe ich das Problem „com.mysql.jdbc.Exceptions.jdbc4.MySQLNonTransientConnectionException: Keine Vorgänge zulässig, nachdem die Verbindung geschlossen wurde'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!