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

Comment éviter les délais d'attente de connexion dans les applications Spring Boot à l'aide de JPA-Hibernate et MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-25 00:09:02780parcourir

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

Délai d'expiration de connexion dans Spring Boot avec Jpa-Hibernate et MySQL

Les applications Spring Boot utilisent souvent le framework JPA-Hibernate pour faciliter les interactions avec les bases de données. Cependant, un défi courant rencontré concerne les échecs de connexion après un intervalle de temps spécifié, en particulier lorsqu'il s'agit de MySQL comme base de données sous-jacente.

Dans de tels scénarios, le journal de l'application affiche généralement un message d'erreur indiquant : "Le dernier paquet a réussi reçu du serveur il y a X millisecondes...", où X dépasse la valeur du délai d'attente configurée par le serveur.

Pour résoudre ce problème, plusieurs approches ont été suggérées, notamment l'utilisation de spring.datasource.testOnBorrow =propriétés true et spring.datasource.validationQuery. Cependant, ces méthodes sont généralement déconseillées.

Solution recommandée : mettre en œuvre la validation de la connexion

La solution privilégiée consiste à mettre en œuvre la validation de la connexion tout au long de la durée de vie de l'application. Cela peut être accompli en configurant les propriétés suivantes :

  • spring.datasource.max-active : spécifiez le nombre maximal de connexions actives autorisées dans le pool.
  • spring.datasource.initial-size : Définissez le nombre initial de connexions à créer dans le pool.
  • spring.datasource.max-idle et spring.datasource.min-idle : Définissez les connexions inactives minimales et maximales.
  • spring .datasource.test-while-idle=true : Valider les connexions pendant les périodes d'inactivité.
  • spring.datasource.test-on-borrow=true : Valider les connexions lors de leur récupération du pool.
  • spring.datasource.validation-query : fournissez une requête de validation pour tester les connexions.

Ces paramètres permettent une validation périodique des connexions lorsqu'elles sont inactives, permettant au pool de détecter et de supprimer les connexions rompues.

Validation automatique des connexions dans HikariCP

En raison de l'adoption par Spring Boot 2.x de HikariCP comme pool de connexions par défaut, la validation de connexion est désormais effectuée automatiquement par HikariCP lors de l'utilisation du mécanisme de validation JDBC.

Ainsi, en activant la validation et en fournissant des configurations appropriées pour la gestion des connexions, il est possible d'atténuer les erreurs de délai de connexion et de garantir des interactions de base de données fiables dans les applications Spring Boot utilisant JPA-Hibernate avec MySQL.

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