Maison > base de données > tutoriel mysql > Comment réparer les délais d'expiration du pool de connexion Spring Boot avec Hibernate et MySQL ?

Comment réparer les délais d'expiration du pool de connexion Spring Boot avec Hibernate et MySQL ?

Mary-Kate Olsen
Libérer: 2024-12-18 01:32:10
original
872 Les gens l'ont consulté

How to Fix Spring Boot Connection Pool Timeouts with Hibernate and MySQL?

Délai d'expiration du pool de connexions dans Spring Boot avec Hibernate et MySQL

Lors de l'utilisation de Spring Boot, JPA-Hibernate et MySQL, les utilisateurs peuvent rencontrer un délai d'attente erreurs indiquant des problèmes « CommunicationsException ». Pour résoudre ce problème, l'approche recommandée consiste à activer la validation des connexions et à spécifier le nombre maximum de connexions autorisées dans le pool.

Configurer les propriétés du pool de connexions :

Vous pouvez efficacement configurez votre pool de connexions en définissant les propriétés suivantes dans votre application.properties :

  • spring.datasource.max-active : nombre maximum de connexions actives (par défaut : 8)
  • spring.datasource.initial-size : Nombre de connexions initiales (par défaut : 0)
  • spring.datasource.max-idle : Nombre maximum de connexions inactives (par défaut : 8)
  • spring.datasource.min-idle : nombre minimum de connexions inactives (par défaut : 0)
  • spring.datasource.time-between-eviction-runs-millis : délai entre les contrôles de validation de connexion (par défaut : 5 000 ms)
  • spring.datasource.min-evictable-idle-time -millis : temps d'inactivité minimum avant qu'une connexion soit expulsée (par défaut : 60 000 ms)

Activer la validation des connexions :

Pour valider périodiquement les connexions et supprimer celles qui sont rompues du pool, définissez les propriétés suivantes :

  • spring.datasource.test-while-idle : valider les connexions lorsqu'elles sont inactives (par défaut : false)
  • spring.datasource.test-on-borrow : Valider les connexions avant de les emprunter au pool (par défaut : false)
  • spring.datasource.validation-query : requête SQL à effectuer pour validation de connexion (par défaut : SELECT 1)

Approche alternative (non Recommandé) :

Bien que cela ne soit pas recommandé, vous pouvez également spécifier autoReconnect=true dans l'URL JDBC pour vous reconnecter automatiquement en cas d'expiration du délai :

spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true
Copier après la connexion

Cependant, cette approche peut conduire à problèmes lors des transactions actives lorsqu'une reconnexion se produit.

En implémentant ces paramètres, vous pouvez vous assurer que les connexions sont activement testées et supprimées lorsqu'elles sont inactives, évitant ainsi les erreurs de délai d'attente. et maintenir la stabilité de la connexion de votre application à la base de données.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal