J'ai une machine à exécuter une application Java parlant à une instance MySQL en cours d'exécution sur la même instance. l'application Utilise les pilotes JDBC4 de MySQL. Je continue à obtenir com.mysql.jdbc.exceptions.jdbc4.communicationSexception à des moments aléatoires.
Voici tout le message. p>
n'a pas pu ouvrir la connexion JDBC pour la transaction; Une exception imbriquée est p> pour mysql, la valeur de global "wait_timeout" et "interactive_timeout" est définie sur 3600 secondes et "Connect_Timeout" est défini sur 60 secondes. La valeur du délai d'attente est beaucoup plus élevée que les 26 secondes (25899 ms). mentionné dans la trace d'exception. p> J'utilise DBCP pour la mise en commun de la connexion et voici la configuration de Spring Bean pour la DataSource. P> <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db"/>
<property name="username" value="xxx"/>
<property name="password" value="xxx" />
<property name="poolPreparedStatements" value="false" />
<property name="maxActive" value="3" />
<property name="maxIdle" value="3" />
</bean>
4 Réponses :
Je suivrais les conseils à l'exception. Vous devriez considérer soit: p>
Je doute que C3P0 soit aussi mieux que le DBCP que vous utilisez déjà. L'exception vous donne des conseils spécifiques. Vous avez essayé # 3. Qu'en est-il des deux autres? P>
Je sais comment demander à Weblogic de vérifier les connexions avant de les utiliser. Vous devriez savoir comment faire la même chose avec Tomcat. P>
Essayé de sortir, maintenant "ne pouvait pas ouvrir la connexion JDBC pour la transaction; une exception imbriquée est com.mysql.jdbc.excepts.jdbc4.comMunicationSexception: défaillance de la liaison de communication"
Pouvez-vous décrire comment votre application manipule la mise en commun de la connexion? Je doute que Autoreconnect = true dans le pilote JDBC rétablisse des connexions de votre application. L'application doit se reconnecter lorsqu'il perd une connexion. P>
J'ai vu avant que les machines Windows qui ont été déplacées sur le réseau ont eu des problèmes avec se connectant à eux-mêmes. P>
Y a-t-il des problèmes de connectivité à l'extérieur du client JVM - I.e. MySQL Connexion au serveur, et chronométrage, etc. p>
Essayez de configurer correctement le DBCP Apache Commons DBCP. P>
Vous devez définir: p>
qui devrait résoudre le problème. p>