Maison >base de données >tutoriel mysql >Comment dépanner \'com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException : aucune opération autorisée après la fermeture de la connexion\' ?
"com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException : aucune opération autorisée après la fermeture de la connexion"
Problème :
Lors du déploiement d'une application sur un serveur distant, une exception de connexion MySQL se produit après plus d'une journée d'exécution de l'application. Le message d'exception indique qu'aucune opération n'est autorisée après la fermeture de la connexion.
Cause :
L'exception est probablement causée par une connexion interrompue en raison de l'inactivité. Les paramètres de délai d'attente par défaut pour le serveur et le client MySQL peuvent être trop courts, entraînant la fermeture prématurée des connexions.
Solution :
1. Ajuster les délais d'attente du serveur et du client
Serveur (configuration MySQL) :
Client (pool de connexions Hibernate/JDBC) :
2. Activer le pool de connexions
Mesures supplémentaires :
Configuration Hibernate mise à jour :
Le fichier de configuration Hibernate mis à jour fourni utilise le pool de connexions C3P0 et inclut les paramètres recommandés :
<hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/xyz</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <!-- Enable C3P0 connection pooling --> <property name="hibernate.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.max_statements">0</property> <property name="c3p0.timeout">600</property> <property name="c3p0.idleConnectionTestPeriod">3600</property> <property name="c3p0.testConnectionOnCheckout">true</property> </session-factory> </hibernate-configuration>
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!