2014-01-25 53 views
0

我有一個JDBC連接MySQL服務器,但每天早上我得到這個錯誤,當我檢查服務器:Java的MySQL的JDBC通信鏈路故障

值java.sql.SQLException:通信鏈路故障: 的java .io.EOFException,根本原因:空

** BEGIN嵌套異常**

java.io.EOFException的

堆棧跟蹤:

java.io.EOFException的 在com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1395) 在com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1539) 在com.mysql。 jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1930) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1168) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279) at com.mysql.jdbc.Connection.execSQL(Connection.java:2281) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1634) at hu.craftbox.Server.CraftboxServerHandler.messageReceived(CraftboxServerHandler.java: 158) at org.jboss.netty.channel.SimpleChannelUpstreamHandler。 handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline $ DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 在org.jboss.netty.handler.timeout.ReadTimeoutHandler.messageReceived(ReadTimeoutHandler.java:184) 在org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 在org.jboss.netty。 channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 在org.jboss.netty.channel.DefaultChannelPipeline $ DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 在org.jboss.netty.channel.Channels.fireMessageReceived(查nnels.java:296) 在org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70) 在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) 在org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) 在org.jboss.netty.channel。 Channels.fireMessageReceived(Channels.java:255) at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) at org.jboss.netty.channel.socket.nio.AbstractNioWorker。過程(AbstractNioWorker.java:108) at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) at org.jboss.netty.util.internal.DeadLockProofWorker $ 1.run(DeadLockProofWorker.java:42) at java.util.concurrent.ThreadPoolExecutor (ThreadPoolExecutor.java:115) at java.lang.Thread.run(Thread。Java的:744)

** END嵌套異常**

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1714) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1930) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1168) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279) 
    at com.mysql.jdbc.Connection.execSQL(Connection.java:2281) 
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1634) 
    at hu.craftbox.Server.CraftboxServerHandler.messageReceived(CraftboxServerHandler.java:158) 
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 
    at org.jboss.netty.handler.timeout.ReadTimeoutHandler.messageReceived(ReadTimeoutHandler.java:184) 
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) 
    at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) 
    at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) 
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) 
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) 
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) 
    at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) 
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) 
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:744) 

這是什麼原因這個問題,我該如何解決?

+0

確保雙方都使用正確導入的mysql連接器 – Boopathi

+0

連接器沒有任何問題,因爲它連接到mysql並且工作正常。問題在於它會在夜間拋出此錯誤的連接。 – TMS

+0

檢查[this](http://forums.mysql.com/read.php?39,16257,33865#msg-33865),它可能有幫助。 – Salah

回答

1

MySQL在一段時間後丟棄未使用的連接,因爲它假定對方忘記關閉它。

你需要做的是正確配置你的MySQL取決於你的業務, 檢查here如何配置你的MySQL。

+0

謝謝,我用自動ping功能解決了這個問題,它可以防止MySQL因爲不活動而斷開連接。 – TMS

+0

@TMS可以解釋什麼是'自動ping功能' –

相關問題