Java IBM MQ 客户端已连接但未从队列获取消息

标签 java ibm-mq

我有一个基于 Camel/Spring 的 Java MQ 客户端,它应该连接到 MQ 并从队列中获取一些消息。连接已建立,但客户端未下载任何消息。 Wireshark 网络分析显示,经过一些初始处理后,会生成 MQCLOSE,之后仅出现心跳流量。

Doesn't work

IBM MQ 服务器版本为 8.0.0.5,而客户端 JAR 版本为 7.1.0.3。但我相信这种组合适用于其他环境。

我已经在其他一些环境中检查了该应用程序,它工作正常,并且在 MQCLOSE_REPLY 之后出现了许多其他消息,首先是 Wireshark 识别为 SOCKET_ACTION 的消息。但在这个环境上不会发生这种情况,为什么?

Works

最佳答案

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

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

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

查看应用程序并弄清楚它在连接后执行的操作,并确定它不请求任何消息的原因。

关于Java IBM MQ 客户端已连接但未从队列获取消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46846718/

相关文章:

C#MQ Api如何在空队列的情况下获取消息而不会出现异常

java - 在scala中声明类级别变量

java boolean 值在被调用的方法中没有改变

java - 如果我事先不知道它的对象模型,我该如何解析一个 json 字符串?

java - Jasper Reports 中的子报表

java - Apache Camel : Is it possible to configure WMQ without using Spring?

java - 是否可以在没有 QueueConnectionFactory 的情况下从 WAS JNDI 获取 JMS 队列引用?

web-services - 使用 Websphere MQ 时,Camel JMS 对象消息有效负载从对象转换为字节消息

java - 在 WAS 应用程序中配置/访问 MQQueueConnectionFactory

java - Maven 无法转换为 javax.servlet.Filter