首先,我知道这个问题被问了很多次,但对我来说,复制场景与我想的几乎没有什么不同(很可能是这样)。
对于mysql健康检查,我们执行一个简单的select查询(从dual中选择1)。一旦mysql服务器闲置一段时间(大约1分钟),我们尝试运行状况检查,就会出现此问题。。
通信链路故障\n\n发送到服务器的最后一个数据包是4毫秒前的
“消息”:“无法从服务器读取响应。应读取4个字节,在连接意外丢失之前读取0个字节。”,“堆栈”:[“com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2431)”、“com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2882)”、“com.mysql.jdbc.reuseAndReadPacket(MysqlIO.java:2871)”、“com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3414)”、“com.mysql.jdbc.MysqlIO.MysqlIO.sendCommand(MysqlIO.java:1936)”,“com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)”,“com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)”,“com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)”,“com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:734)”,“org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)”,
如果我们再次尝试,我们会立即成功连接,一切正常。所以它在本质上是非常零星的。
我见过这个stackoverflow后com.mysql.jdbc.exceptions.jdbc4。通信链路故障
所以在所有这些可能性中...我会回答其中几个-
>
本地DNS服务器无法识别JDBC URL中的主机名-否(原因与步骤1相同)
JDBC URL中缺少端口号或端口号错误-否(原因与步骤1相同)
数据库服务器已关闭-否-(服务器已启动并正在运行)
DB服务器不接受TCP/IP连接-否(原因与步骤1相同)
DB服务器已用完连接。-否(我已将连接数增加到1000)
介于Java和DB之间的东西正在阻止连接,例如防火墙或代理。
是的。代理配置如下:
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
我的etc/我的同事很少。详情如下:--
connect_timeout = 10
wait_timeout = 28800
bind-address = 0.0.0.0
max_connections = 1000
为了创建连接,我使用commons dbcp数据源(org.apache.commons.dbcp.BasicDataSource)
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("url");
dataSource.setUsername("username");
dataSource.setPassword("pwd");
dataSource.getConnection();
请帮我找出可能出错的地方...是代理配置导致问题还是其他什么???帮助将不胜感激。
不,因为您已经达到了执行语句()
,这意味着您已经有了一个连接和一个准备语句
。
对的
对的
没有,原因与(1)、(2)、(3)相同。
对的
没有,原因与(1)、(2)、(3)、(4)、(5)相同。
不,原因与(1), (2), (3), (4), (5), (6)相同。
建立连接后,您的通信出现故障。这就排除了你在这里提到的一切。剩下的是(a)服务器或网络中的瞬态条件,(b)客户端的连接池特性,(c)JDBC驱动程序提交的一些灾难性错误命令,等等。最有可能的是(a)。
问题内容: 我有以下例外 javax.persistence.PersistenceException:异常[EclipseLink-4002](Eclipse Persistence Services-2.5.2.v20140319-9ad6abd):org.eclipse.persistence.exceptions.DatabaseException内部异常:com.mysql.jdbc.e
我用java从MySQL查询了一些记录。但是在一些查询中,我遇到了一个问题,使查询失败,但在其他情况下,它查询成功。错误消息是下一个: 我尝试过一些方法,比如: 在 但什么都没发生。 我的环境是: MySQL: 5.5.3-m3-log源代码分布 Java: 1.60_16 jdk: HotSpot(TM)64位服务器VM(构建14.2-b01,混合模式) JDBC: mysql连接器-java-
我在Stackoverflow的另一个问题中尝试了这个建议,并在连接方面做了如下更改 但我的项目还是失败了 严重:执行身份验证com时发生异常。mysql。jdbc。例外情况。jdbc4。通信异常:通信链路故障 谁能告诉我克服这个问题的最好方法是什么?
我已经在centos上安装了tomcat,并部署了java web应用程序。我正在使用mysql数据库。每天早上,当我尝试作为第一个用户登录时,它会给我以下错误: 您的登录尝试未成功,请重试。原因:org.hibernate.exception.jdbcConnectionException:从服务器成功接收的最后一个数据包是在66,913,221毫秒之前。最后一个成功发送到服务器的数据包是在66
StackOverflow上发布的与通信有关的问题似乎已经够多了。但没有一个能帮我走出困境。 但是,当我试图通过JDBC连接DB服务器时,它仍然失败,出现异常“com.mysql.JDBC.exceptions.jdbc4.CommunicationsException:Communications link Failure”。 测试类如下所示。