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 :
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!