Heim  >  Artikel  >  Java  >  Wie kann ein Verlust der Datenbankverbindung nach 424 Stunden im Spring Boot mit Hibernate verhindert werden?

Wie kann ein Verlust der Datenbankverbindung nach 424 Stunden im Spring Boot mit Hibernate verhindert werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-24 18:38:06203Durchsuche

How to Prevent Database Connection Loss After 424 Hours in Spring Boot with Hibernate?

Beheben von Datenbankverbindungsverlusten nach 424 Stunden in Spring Boot mit Hibernate

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:

  • Eine maximale Anzahl aktiver Verbindungen einzurichten (spring.datasource.max-active).
  • Verbindungen regelmäßig validieren (spring.datasource.test-while -idle).
  • Leerlaufverbindungen entfernen, wenn sie nicht innerhalb einer bestimmten Zeit verwendet wurden (spring.datasource.min-evictable-idle-time-millis).

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn