【问题标题】:IBMMQ, under what scenario will MQMD.MsgType=1 be interpreted as MQMT_SYSTEM_FIRST instead of MQMT_REQUESTIBMMQ,在什么场景下 MQMD.MsgType=1 会被解释为 MQMT_SYSTEM_FIRST 而不是 MQMT_REQUEST
【发布时间】:2020-10-24 03:46:19
【问题描述】:

我们正在使用 JmsTemplate 将消息发送到 IBM MQ 的本地队列。我们将 MQMD 属性 MsgType 设置为 1,但是当从队列中查看消息头时,该值被解释为 MQMT_SYSTEM_FIRST 而不是 MQMT_REQUEST。这是为什么?这是对方系统无法回复回复信息的原因吗?

我们正在使用另一个系统进行调试。根据他们的反馈,他们在队列中检查我们的消息头是这样的。 enter image description here

但是根据过去的经验,我们的消息应该是这样的(请只关注 MsgType 字段)。 enter image description here 并且没有线索说明为什么会出现这两种不同的情况。它们的值都是1,但是分别显示MQMT_SYSTEM_FIRST和MQMT_REQUEST。

【问题讨论】:

  • 请提供更多信息来说明“值被解释为”的含义。在做什么解释?如果您查看 cmqc.h 文件,您将看到 MQMT_SYSTEM_FIRSTMQMT_REQUEST 都定义为值 1。这不是错误,而是因为它们用于不同的目的。以同样的方式,可以将星期几编码为 1-7,一年中的月份编码为 1-12。
  • 这在 - stackoverflow.com/questions/64460680/… 中有解释 - 如果您在 MQMD 中看到值 1,那么它就是 MQMT_REQUEST
  • 我上传了图片,描述更详细,请帮帮我
  • 正如 JasonE 所说,显示消息的系统中似乎存在错误。该字段不能是MQMT_SYSTEM_FIRST。如果其他系统将其解释为MQMT_SYSTEM_FIRST,那么这是一个错误。

标签: ibm-mq


【解决方案1】:

我怀疑这只是您用来查看标头的任何内容的一个缺陷,因为它没有意识到 MQMT_SYSTEM_FIRST 永远不会“设置”,它只是一个范围标识符。

你用什么来查看标题?

这个问题真的是和IBM MQMD header how to distinguish重复的

【讨论】:

    猜你喜欢
    • 2012-01-30
    • 2014-07-10
    • 2012-04-24
    • 1970-01-01
    • 2022-06-27
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多