Java 错误org.hibernate.util.jdbceptionReporter-通信链路故障

Java 错误org.hibernate.util.jdbceptionReporter-通信链路故障,java,mysql,spring,hibernate,Java,Mysql,Spring,Hibernate,我正在做一个Spring、MySQL和Hibernate项目,其中还包含一个主应用程序,它会不断地查看它工作所依据的数据库,但几分钟后应用程序就会抛出异常 0 [Thread-1] ERROR org.hibernate.util.JDBCExceptionReporter - Communications link failure Last packet sent to the server was 1 ms ago. Exception in thread "Thread-1" 3

我正在做一个
Spring
MySQL
Hibernate
项目,其中还包含一个主应用程序,它会不断地查看它工作所依据的数据库,但几分钟后应用程序就会抛出异常

0    [Thread-1] ERROR org.hibernate.util.JDBCExceptionReporter  - Communications link failure

Last packet sent to the server was 1 ms ago.
Exception in thread "Thread-1" 3    [Thread-1] ERROR org.hibernate.util.JDBCExceptionReporter  - Communications link failure

Last packet sent to the server was 1 ms ago.
org.hibernate.exception.JDBCConnectionException: Cannot open connection
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:99)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
    at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1596)
    at org.hibernate.loader.Loader.doQuery(Loader.java:717)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
    at org.hibernate.loader.Loader.doList(Loader.java:2294)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2172)
    at org.hibernate.loader.Loader.list(Loader.java:2167)
    at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1706)
    at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347)
    at com.qait.cdl.commons.dao.impl.CDLHibernateDaoImpl.findAll(CDLHibernateDaoImpl.java:77)
    at com.qait.cdl.insertIsbn.InsertIsbnDatabaseLookup.run(InsertIsbnDatabaseLookup.java:27)
    at java.lang.Thread.run(Thread.java:724)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 1 ms ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2103)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    at sun.reflect.GeneratedConstructorAccessor11.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:187)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:153)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
    at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:83)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
    ... 14 more
Caused by: java.net.NoRouteToHostException: Cannot assign requested address
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at java.net.Socket.<init>(Socket.java:425)
    at java.net.Socket.<init>(Socket.java:241)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2026)
    ... 30 more
0[Thread-1]错误org.hibernate.util.jdbceptionReporter-通信链路故障
发送到服务器的最后一个数据包是1毫秒前。
线程“thread-1”3[thread-1]错误org.hibernate.util.jdbceptionReporter中出现异常-通信链路故障
发送到服务器的最后一个数据包是1毫秒前。
org.hibernate.exception.jdbconnectionexception:无法打开连接
位于org.hibernate.exception.sqlstatecoverter.convert(sqlstatecoverter.java:99)
位于org.hibernate.exception.jdbceptionhelper.convert(jdbceptionhelper.java:66)
位于org.hibernate.exception.jdbceptionhelper.convert(jdbceptionhelper.java:52)
位于org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
位于org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
位于org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
位于org.hibernate.loader.loader.prepareQueryStatement(loader.java:1596)
位于org.hibernate.loader.loader.doQuery(loader.java:717)
在org.hibernate.loader.loader.doQueryAndInitializeNonLazyCollections(loader.java:270)上
位于org.hibernate.loader.loader.doList(loader.java:2294)
位于org.hibernate.loader.loader.listIgnoreQueryCache(loader.java:2172)
位于org.hibernate.loader.loader.list(loader.java:2167)
位于org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119)
位于org.hibernate.impl.SessionImpl.list(SessionImpl.java:1706)
位于org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347)
位于com.qait.cdl.commons.dao.impl.CDLHibernateDaoImpl.findAll(CDLHibernateDaoImpl.java:77)
运行(insertisbdatabaselookup.java:27)
运行(Thread.java:724)
原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障
发送到服务器的最后一个数据包是1毫秒前。
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:406)
位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2103)
位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:718)
JDBC4Connection.(JDBC4Connection.java:46)
位于sun.reflect.GeneratedConstructorAccessor11.newInstance(未知源)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:406)
位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
位于java.sql.DriverManager.getConnection(DriverManager.java:571)
位于java.sql.DriverManager.getConnection(DriverManager.java:187)
位于org.springframework.jdbc.datasource.DriverManager数据源.getConnectionFromDriverManager(DriverManager数据源.java:173)
位于org.springframework.jdbc.datasource.driverManager数据源.getConnectionFromDriver(driverManager数据源.java:164)
位于org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:153)
位于org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
位于org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:83)
位于org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 14多
原因:java.net.NoRouteToHostException:无法分配请求的地址
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
位于java.net.socksocketimpl.connect(socksocketimpl.java:392)
位于java.net.Socket.connect(Socket.java:579)
位于java.net.Socket.connect(Socket.java:528)
位于java.net.Socket。(Socket.java:425)
位于java.net.Socket(Socket.java:241)
位于com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)
在com.mysql.jdbc.MysqlIO上(MysqlIO.java:280)
位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2026)
... 30多

我搜索了许多链接,但没有找到确切/令人满意的原因以及如何克服根本原因是
noroutetohestexception
,这意味着基础操作系统正在向JVM发送“无主机路由”TCP/IP错误。这表示数据库服务器与此计算机之间存在网络问题;检查系统的操作系统日志(如Linux上的
dmesg
),查看网卡是否存在连接问题。否则,网络路由会出现间歇性问题,您需要与网络管理员一起排除故障。

正如我所说,有一个主应用程序不断地在数据库中查找,它在每次访问数据库时都使用套接字,当所有套接字都被使用时,它会给出
noroutetohestexception
,由操作系统发送到JVM。在或