【问题标题】:Getting MQHRF2 MQMD header instead of MQRFH2,Middleware team getting MQHRF2 instead of MQRFH2 from Spring JMS IBM MQ获取 MQHRF2 MQMD 标头而不是 MQRFH2,中间件团队从 Spring JMS IBM MQ 获取 MQHRF2 而不是 MQRFH2
【发布时间】:2016-07-26 10:38:15
【问题描述】:

我正在使用 Spring JMS IBM MQ 连接 SAP bapi 服务,但是在发送 jms 消息时,它会根据中间件团队自动创建 MQMD 标头作为 MQHRF2 而不是 MQRFH2,这是不正确的。因此,请您帮忙。,我正在使用 Spring JMS IBM MQ 连接 SAP BAPI 服务,以便将 jms 消息发送到中间件,但它们获取的是 MQHRF2 标头而不是 MQRFH2。所以为了改变这个我必须做什么???我尝试设置非 jms (MQSTR),但它仍然只发送 MQHRF2。

【问题讨论】:

  • 请澄清您的问题,中间件团队是否需要 MQRFH2(可能在 WMB 中使用 JMS 节点进行中间件解析)或标头或 MQSTR 标头(使用 MQ 节点进行解析)?据我了解,您正在发送 MQRFH2 并且中间件需要 MQSTR 吗?如果您使用 JMS,您如何为 QCF 和队列进行 JNDI 查找?
  • 中间件需要 MQRFH2,但从我们的 Spring 编码方面来看,它正在创建 MQHRF2。我尝试使用 MQMD 格式属性进行设置,但它仍在发送 MQHRF2

标签: spring ibm-mq mq


【解决方案1】:

这是 IBM MQ 团队所做的那些总是让新手感到困惑的事情之一。

“MQRFH2”是一种结构,具有标题和 1 个或多个“文件夹”。它位于您的消息数据(有效负载)之前。

MQMessage 的 MD 有一个名为“格式”的字段,当您有一条包含 MQRFH2 结构的消息时,MD 的格式的值为“MQHRF2”(8 个字符)。

因此,正确创建的 MQ/JMS aka(MQRFH2 消息)将具有值为“MQHRF2”的消息的 MD 格式字段。

因此,您发送的是格式正确的消息 - 您只是因为 IBM 的怪异而感到困惑。

注意:他们对其他内部消息结构做了同样的事情。即MQIIH使用MQIMS格式,MQCIH使用MQCICS格式等。

【讨论】:

  • 谢谢 Roger,但是中间件团队期待 MQRFH2 调用 SAP bapi 服务,所以我们有什么办法可以设置或中间件团队必须在他们的最后进行更改?
  • 没有将 MD 格式字段设置为“MQRFH2”的 MQRFH2 消息。 MQRFH2 消息(又名 JMS)必须将 MD 格式字段设置为“MQHRF2”。中间件团队显然不了解 MQ。阅读此 IBM 支持文档:www-01.ibm.com/support/docview.wss?uid=swg27017014 它讨论了查看 MQRFH2 消息。向下滚动到消息的 amqsbcg 显示,您将看到 Format : 'MQHRF2' in BOLD。
  • 非常感谢 Roger,我们也得到了 IBM 的相同回复。
猜你喜欢
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
  • 2016-11-14
相关资源
最近更新 更多