我有一个基于Camel / Spring的Java MQ客户端,该客户端应连接到MQ并从队列中获取一些消息。建立了连接,但是客户端没有下载任何消息。 Wireshark网络分析表明,在进行一些初始处理之后,会生成MQCLOSE,并且只会再出现心跳流量。
IBM MQ服务器版本为8.0.0.5,而客户端JAR版本为7.1.0.3。但是我相信这种组合可以在其他环境下使用。
我已经在其他环境下检查了该应用程序,在该环境下它可以正常工作,并且在MQCLOSE_REPLY之后出现了许多其他消息,从Wireshark识别为SOCKET_ACTION开始。但这在这种环境下不会发生,为什么?
最佳答案
您的应用程序没有请求任何消息,这就是为什么它没有收到任何消息的原因。
根据非工作环境中的网络跟踪摘要,它仅在连接(打开,查询和关闭队列管理器-它在连接处理期间和MQCONN之后执行)。然后将不使用创建的连接-没有MQGET或SPI流,只有心跳。
您为什么仍要尝试使用网络数据包跟踪来调试它?
查看该应用程序,确定连接后的用途,并确定为什么不请求任何消息。