Délai d'expiration de la base de données et surcharge du pool de connexions
Ce problème Hibernate, "com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException : aucune opération autorisée après la fermeture de la connexion", se produit lorsqu'une connexion persistante est implicitement fermée en raison de l'inactivité.
Cause :
La connexion est établie mais reste inactive pendant une période prolongée, dépassant le "wait_timeout" du serveur ou les paramètres de délai d'expiration du client comme "connectionTimeout".
Résolution :
1. Ajuster les délais d'attente du serveur et du client :
2. Configurez le pool de connexions :
Exemple de configuration hibernate.cfg.xml utilisant C3P0 :
<code class="xml"><property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="c3p0.max_size">20</property> <property name="c3p0.min_size">5</property> <property name="c3p0.timeout">1800</property> <property name="c3p0.idleTestPeriod">3600</property> <property name="c3p0.maxIdleTime">3600</property></code>
Supplémentaire Conseils :
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!