IBM MQ websphere - 创建一个额外的 TCP "ACK" 并等待 13 秒回答

IBM MQ websphere - creates an additional TCP "ACK" and waiting 13 sec for answer

我有两个具有相同 java 应用程序 ('clients') 的 Tomcat,它们与单个 MQ 服务器通信

在一台客户端上,通信速度很快,但在另一台上却需要很多时间(> 13 秒)。

在基础架构上,唯一的区别是 'slow client' 与服务器位于不同的域,而 'fast client' 位于同一域,这应该会造成任何麻烦,至于我知道。

我已经嗅探了 Wireshark 的两种通信方式,我发现了一个不同之处:MQ 服务器向慢速客户端发送了一个额外的 "ACK",没有收到任何信息,等待 13 秒,然后然后发送真正开始工作的"INITIAL DATA"数据包,像这样:

客户端 -> 服务器:IBM WebSphere SYN

服务器 -> 客户端:IBM WebSphere SYN-ACK

客户端 -> 服务器:IBM WebSphere ACK

客户端 -> 服务器:初始数据

服务器 -> 客户端:IBM WebSphere ACK // 仅在慢速客户端上!!!

// 等待 13 秒 - 仅在慢速客户端上。

Server -> client :INITIAL DATA // 从这里开始,它在两个客户端上流动

备注:

1) 与服务器的通信不是 SSL,而是使用 IP 地址而不是 DNS 名称,因此应该不会出现解析问题。

2) 我之前发表过类似的问题——这不是同一个案例!上次是 BIOS over TCP 问题。

我们用来解决问题的方法是使用 SimpleConnctionManager 和长时间超时。

这是一种变通方法,但确实有效。