【发布时间】:2015-01-27 00:01:49
【问题描述】:
我在 java 中开发了一个应用程序,它使用 Hibernate 和 mysql 作为后端。这个应用程序在每晚 12 点运行。该应用程序运行良好,但有时会显示,
引起:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 通讯链路故障
从服务器成功接收到的最后一个数据包是 59,390,356 毫秒前。最后一个成功发送到服务器的数据包是 1 毫秒前。在 sun.reflect.GeneratedConstructorAccessor66.newInstance(未知来源) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 来源)在 java.lang.reflect.Constructor.newInstance(未知来源) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:409) 在 com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1118) 在 com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3055) 在 com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2941) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489) 在 com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959) 在 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113) 在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568) 在 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113) 在 com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2275) 在 org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:56) ... 19 更多原因:java.net.SocketException:软件导致 连接中止:recv 失败于 java.net.SocketInputStream.socketRead0(本机方法)在 java.net.SocketInputStream.read(Unknown Source) 在 java.net.SocketInputStream.read(Unknown Source) 在 com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114) 在 com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161) 在 com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189) 在 com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2499) 在 com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2952) ... 27 更多
我已经使用 IP 连接了我的应用程序,
192.168.0.25:3306/dbname?user=root&password=password
Myapplication 和 mysql 只能在同一台机器上运行。
我查看了很多论坛,但我无法弄清楚,任何人都建议我解决这个问题的正确方法。
【问题讨论】:
-
你检查mysql服务是否正在运行?
-
@Arvind 是 mysql 服务正在运行。
-
可能是 MySql 用完了最大数量。与您的应用的连接数。
-
@Arvind 如果我使用最大编号。连接方式,然后它是如何在平均时间工作的。我已经放置了一些调度程序,每天晚上都会触发我的应用程序。它在周一至周五工作正常。但是星期六它显示了这种类型的错误。
-
也许你应该为 sat 安排一个时间表,以便在启用日志的情况下测试 mysql。