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