IBM MQ websphere-创建一个额外的TCP“ACK”并等待13秒等待应答

IBM MQ websphere-创建一个额外的TCP“ACK”并等待13秒等待应答,tcp,ibm-mq,Tcp,Ibm Mq,我有两个Tomcat,它们具有相同的java应用程序“客户端”,可以与单个MQ服务器通信 在一台客户机上,通信速度很快,但在另一台客户机上,通信时间超过13秒 在基础设施上,唯一的区别是“慢速客户端”与服务器位于不同的域上,而“快速客户端”位于相同的域上,据我所知,这应该会造成任何问题 我已经嗅探到了与Wireshark的双向通信,我发现了一个区别:MQ服务器向慢速客户端发送额外的ACK,没有得到任何信息,等待13秒,然后发送实际开始工作的初始数据包,如下所示: 客户端->服务器:IBM Web

我有两个Tomcat,它们具有相同的java应用程序“客户端”,可以与单个MQ服务器通信

在一台客户机上,通信速度很快,但在另一台客户机上,通信时间超过13秒

在基础设施上,唯一的区别是“慢速客户端”与服务器位于不同的域上,而“快速客户端”位于相同的域上,据我所知,这应该会造成任何问题

我已经嗅探到了与Wireshark的双向通信,我发现了一个区别:MQ服务器向慢速客户端发送额外的ACK,没有得到任何信息,等待13秒,然后发送实际开始工作的初始数据包,如下所示:

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

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

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

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

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

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

服务器->客户端:初始数据//从这里开始,它在两个客户端上流动

注:

1与服务器的通信不是SSL,而是使用IP地址而不是DNS名称,因此不应出现解决问题的情况


2我以前发表过一个类似的问题——情况不同!上次是BIOS对TCP的问题

我们用来解决这个问题的方法是使用SimpleConctionManager和长时间超时


这是一个解决方案,但它可以工作。

MQ服务器不发送ACK。操作系统中的TCP/IP堆栈发送ACK。因此,您应该完全停止考虑应用程序服务器,开始考虑网络条件和配置。这使问题脱离主题。@EJP如果MQ配置中的某些内容导致此行为,则是MQ问题。无论如何,我们用连接池解决了这个问题。