我有一个基于Camel / Spring的Java MQ客户端,该客户端应连接到MQ并从队列中获取一些消息。建立了连接,但是客户端没有下载任何消息。 Wireshark网络分析表明,在进行一些初始处理之后,会生成MQCLOSE,并且只会再出现心跳流量。

java - Java IBM MQ Client已连接但未从队列中获取消息-LMLPHP

IBM MQ服务器版本为8.0.0.5,而客户端JAR版本为7.1.0.3。但是我相信这种组合可以在其他环境下使用。

我已经在其他环境下检查了该应用程序,在该环境下它可以正常工作,并且在MQCLOSE_REPLY之后出现了许多其他消息,从Wireshark识别为SOCKET_ACTION开始。但这在这种环境下不会发生,为什么?

java - Java IBM MQ Client已连接但未从队列中获取消息-LMLPHP

最佳答案

您的应用程序没有请求任何消息,这就是为什么它没有收到任何消息的原因。

根据非工作环境中的网络跟踪摘要,它仅在连接(打开,查询和关闭队列管理器-它在连接处理期间和MQCONN之后执行)。然后将不使用创建的连接-没有MQGET或SPI流,只有心跳。

您为什么仍要尝试使用网络数据包跟踪来调试它?

查看该应用程序,确定连接后的用途,并确定为什么不请求任何消息。

10-07 19:19
查看更多