Heim  >  Artikel  >  Java  >  Wie verhindert man Zeitüberschreitungen bei Datenbankverbindungen in Spring Boot-Anwendungen mithilfe von JPA und Hibernate?

Wie verhindert man Zeitüberschreitungen bei Datenbankverbindungen in Spring Boot-Anwendungen mithilfe von JPA und Hibernate?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-25 05:38:29349Durchsuche

How to Prevent Database Connection Timeouts in Spring Boot Applications Using JPA and Hibernate?

Verbindung zur Datenbank verschwindet nach einem bestimmten Zeitintervall: Spring Boot, JPA, Hibernate

In Spring Boot-Anwendungen, die JPA und Hibernate mit MySQL verwenden, Benutzern wird möglicherweise ein Fehler angezeigt, der darauf hinweist, dass die Verbindung zur Datenbank abgelaufen ist. Um dieses Problem zu lösen, sehen wir uns die empfohlenen und nicht empfohlenen Ansätze an:

Abgeratener Ansatz: Aktivieren der automatischen erneuten Verbindung

Während schnell und einfach, aktivieren Sie die automatische erneute Verbindung im JDBC URL wird nicht empfohlen. Dies kann bei aktiven Verbindungen zu Problemen führen, insbesondere wenn Transaktionen unterbrochen werden.

Empfohlener Ansatz: Verbindungsvalidierung

Um dieses Problem effektiv zu beheben, ist es wichtig, die Verbindungsvalidierung durchgehend zu aktivieren die Lebensdauer der Anwendung. Dies beinhaltet die Konfiguration mehrerer Eigenschaften:

  • Maximale Anzahl aktiver Verbindungen: spring.datasource.max-active (z. B. 10)
  • Anzahl von Anfängliche Verbindungen: spring.datasource.initial-size (z. B. 5)
  • Minimale und maximale Anzahl inaktiver Verbindungen: spring.datasource.max-idle und spring.datasource. min-idle (z. B. 5 und 1)
  • Validierung im Leerlauf und beim Ausleihen: spring.datasource.test-while-idle und spring.datasource.test-on-borrow (beide auf true gesetzt)
  • Validierungsabfrage:spring.datasource.validation-query (z. B. „SELECT 1“)
  • Zeit zwischen Validierungsläufen: spring.datasource.time-between-eviction-runs-millis (z. B. 5000 Millisekunden)
  • Mindestleerlaufzeit für die Räumung: spring.datasource.min-evictable-idle-time- Millis (z. B. 60000 Millisekunden)

Diese Konfigurationen stellen sicher, dass Verbindungen regelmäßig auf Gültigkeit getestet werden und inaktive Verbindungen aus dem Pool entfernt werden, wenn sie für einen bestimmten Zeitraum ungenutzt bleiben.

Spring Boot 2.x-Update:

Beachten Sie, dass Spring Boot 2.x auf HikariCP als Standardverbindungspool anstelle von Tomcat JDBC umgestellt hat. Daher können die Konfigurationseigenschaften für die Verbindungsvalidierung geringfügig variieren.

Das obige ist der detaillierte Inhalt vonWie verhindert man Zeitüberschreitungen bei Datenbankverbindungen in Spring Boot-Anwendungen mithilfe von JPA und Hibernate?. 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