Question

J'ai cette exception réelle bizarre lors de l'émission d'un SELECT de base, en utilisant MySQL 5.1.32 communautaire à partir du code JDK 1.6.0_16. Les conditions de répéter: à tout endroit dans mon application, si je change la date de mon OS (Windows XP SP3) et après qui a frappé une touche de rafraîchissement, qui est la base de données rechargent information, tout en faisant ce à plusieurs reprises (en général 2-3 fois suffisent) je reçois cette erreur:

Last packet sent to the server was 0 ms ago.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3134)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1818)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2537)
    at com.mysql.jdbc.ConnectionImpl.setTransactionIsolation(ConnectionImpl.java:5148)

suivi d'une partie de mon propre code, et poursuivi par ceci:

Caused by: java.net.SocketException: Software caused connection abort: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3119)
    ... 128 more

Maintenant, je l'ai déjà google et j'ai trouvé zéro solutions. Je l'ai déjà essayé d'utiliser « 127.0.0.1 » au lieu de « localhost » sans résultat. De plus, j'ai pu tester cela sur MySQL 4.12 et 1.4 et JRE le problème est là inexistant. J'utilise JDBC simple, connexion unique à DB (non Connexions mises en commun) et mes tables SQL utilisent le type InnoDB.  Toute aide sera très appréciée comme je suis assez coincé là-bas par ce phénomène.

Était-ce utile?

La solution

D'après ce que vous avez décrit, le pilote utilise le temps du système d'exploitation en temps une connexion ou un fonctionnement réseau.

La solution est juste susceptible d'attraper l'exception et une nouvelle tentative d'établir la connexion.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top