Maison  >  Article  >  Java  >  Comment éviter la perte de connexion à la base de données après 424 heures au démarrage de Spring avec Hibernate ?

Comment éviter la perte de connexion à la base de données après 424 heures au démarrage de Spring avec Hibernate ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 18:38:06203parcourir

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

Résolution de la perte de connexion à la base de données après 424 heures dans Spring Boot avec Hibernate

Un problème survient dans une application Spring Boot utilisant JPA-Hibernate avec MySQL lors de la connexion à la base de données est perdu après une durée de 424 heures. Le journal des erreurs affiche :

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.

Pour résoudre ce problème, il est recommandé de configurer les propriétés de connexion appropriées dans le fichier de configuration de l'application (par exemple, 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>

Ces Les paramètres permettent au pool de connexions de :

  • Établir un nombre maximum de connexions actives (spring.datasource.max-active).
  • Valider périodiquement les connexions (spring.datasource.test-while -idle).
  • Supprimez les connexions inactives si elles n'ont pas été utilisées dans un délai spécifié (spring.datasource.min-evictable-idle-time-millis).

En implémentant Ces configurations, le pool de connexions testera régulièrement la validité des connexions et remplacera celles devenues obsolètes, garantissant ainsi une connectivité stable à la base de données même après de longues périodes d'inactivité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn