In einer Spring Boot-Anwendung, die JPA-Hibernate mit MySQL verwendet, tritt ein Problem auf, wenn die Verbindung zur Datenbank hergestellt wird geht nach einer Dauer von 424 Stunden verloren. Das Fehlerprotokoll zeigt Folgendes an:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 56,006,037 milliseconds ago. The last packet sent successfully to the server was 56,006,037 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
Um dieses Problem zu beheben, wird empfohlen, entsprechende Verbindungseigenschaften in der Konfigurationsdatei der Anwendung zu konfigurieren (z. B. application.properties):
<code class="properties"># Connection validation and pool configuration spring.datasource.max-active=10 spring.datasource.initial-size=5 spring.datasource.max-idle=5 spring.datasource.min-idle=1 # Periodic connection validation spring.datasource.test-while-idle=true spring.datasource.validation-query=SELECT 1 # Idle connection management spring.datasource.time-between-eviction-runs-millis=5000 spring.datasource.min-evictable-idle-time-millis=60000</code>
Diese Einstellungen ermöglichen es dem Verbindungspool:
Durch Implementierung Bei diesen Konfigurationen testet der Verbindungspool regelmäßig die Gültigkeit von Verbindungen und ersetzt veraltete Verbindungen, wodurch eine stabile Datenbankkonnektivität auch nach längeren Inaktivitätsperioden gewährleistet wird.
Das obige ist der detaillierte Inhalt vonWie kann ein Verlust der Datenbankverbindung nach 424 Stunden im Spring Boot mit Hibernate verhindert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!