Maison >Java >javaDidacticiel >Comment éviter les délais d'attente de connexion à la base de données dans les applications Spring Boot à l'aide de JPA et Hibernate ?

Comment éviter les délais d'attente de connexion à la base de données dans les applications Spring Boot à l'aide de JPA et Hibernate ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-25 05:38:29460parcourir

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

La connexion à la base de données disparaît après un intervalle de temps spécifique : Spring Boot, JPA, Hibernate

Dans les applications Spring Boot utilisant JPA et Hibernate avec MySQL, les utilisateurs peuvent rencontrer une erreur indiquant que la connexion à la base de données a expiré. Pour résoudre ce problème, explorons les approches recommandées et déconseillées :

Approche déconseillée : activation de la reconnexion automatique

Bien que rapide et simple, l'activation de la reconnexion automatique dans JDBC L'URL n'est pas recommandée. Cela peut créer des problèmes lors des connexions actives, en particulier lorsque les transactions sont interrompues.

Approche recommandée : validation de connexion

Pour résoudre ce problème efficacement, il est crucial d'activer la validation de connexion tout au long la durée de vie de l'application. Cela implique de configurer plusieurs propriétés :

  • Nombre maximum de connexions actives :spring.datasource.max-active (par exemple, 10)
  • Nombre de Connexions initiales : spring.datasource.initial-size (par exemple, 5)
  • Nombre minimum et maximum de connexions inactives : spring.datasource.max-idle et spring.datasource. min-idle (par exemple, 5 et 1)
  • Validation en période d'inactivité et lors de l'emprunt : spring.datasource.test-while-idle et spring.datasource.test-on-borrow (tous deux défini sur true)
  • Requête de validation : spring.datasource.validation-query (par exemple, "SELECT 1")
  • Délai entre les exécutions de validation : spring.datasource.time-between-eviction-runs-millis (par exemple, 5 000 millisecondes)
  • Durée d'inactivité minimale pour l'expulsion : spring.datasource.min-evictable-idle-time- millis (par exemple, 60 000 millisecondes)

Ces configurations garantissent que la validité des connexions est régulièrement testée et que les connexions inactives sont supprimées du pool si elles restent inutilisées pendant une période spécifiée.

Mise à jour Spring Boot 2.x :

Notez que Spring Boot 2.x est passé à HikariCP comme pool de connexions par défaut au lieu de Tomcat JDBC. Par conséquent, les propriétés de configuration pour la validation de la connexion peuvent varier légèrement.

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