【问题标题】:how to access RFH2/usr folder from WMQ using JMS API如何使用 JMS API 从 WMQ 访问 RFH2/usr 文件夹
【发布时间】:2016-05-23 20:52:05
【问题描述】:

我有一个从 MQ 队列读取消息的 Java JMS 应用程序。我的应用程序可以成功读取消息并提取 JMS 标头(例如 JMSDeliveryMode、JMSPriority 等)和消息正文,但我无法访问消息的 <usr> 文件夹部分。

我正在使用 RFHutil 将消息放入队列中。在 RFH 选项卡下,我勾选了“包括 RFH V2 标头”和“usr”,在 usr 选项卡下,我有 test1=1。如果我使用 MQExplorer 浏览队列,我可以在消息中看到 <usr><test1>1</test1></usr>,所以我认为我正确设置了 usr 文件夹。

我已经输出了整个 message.getPropertyNames() 枚举(如主题 JMS passing entire Application data <usr> block 中所述,但我的 usr 字段不在此处。我的消息正文也不包含我的 usr 字段。

我还阅读了 MQ v7 信息中心,您需要将 WMQ_MESSAGE_BODY 设置为 WMQ_MESSAGE_BODY_MQ,但我使用的是 v6MQ,不知道这是否相关/如何设置此值。

如何使用 JMS API 访问 usr 文件夹?

任何帮助/指针将不胜感激,因为我对 JMS 编程相当陌生。

【问题讨论】:

标签: jms ibm-mq


【解决方案1】:

第一个问题是为什么 USR 文件夹很重要?您是否试图让您的 JMS 应用程序与使用另一个写入自定义 RFH2 标头的应用程序的消息进行互操作。

RFHUtil 主要用于测试目的。

MQ JMS 最初使用 RFH2 标头来专门发送 JMS 属性。因此 MQ JMS 代码读取消息,移除 RFH2 并将其处理成完整的 JMS 消息。

如果您希望 JMS API 完全读取 RFH2,那么您突出显示的用于读取 MQ 消息的属性是正确的。但是这些不在 MQ v6 中。请注意,mq v6 和 V7.0.1 现在不再支持。强烈建议您调查升级到 MQ v8 - 至少 MQ 7.5。

如果您是开发人员并连接到已建立的 QueueManager,则可以免费下载客户端。客户端版本不必与 QM 匹配。

【讨论】:

  • 感谢您的回复。让我们暂时忘记 RFHUtil。我的实际情况是作为源团队将路由信息保存在 RFH2 标头中。所以,我需要使用 JMS API 获取该信息。首先请建议是否有机会访问 RFH2Header 或 JMS 协议不接受 RFH2 Header。我正在使用 MQ 7.5。
猜你喜欢
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 2010-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多