【问题标题】:WSO2: Remove MQRFH2 header from outgoing IBM MQ messageWSO2:从传出的 IBM MQ 消息中删除 MQRFH2 标头
【发布时间】:2018-12-28 10:40:54
【问题描述】:

我面临一个问题,即接收应用程序(IBM MQ 的消费者/侦听器)无法处理 MQHRF2 格式,而是期望使用原始 MQSTR 格式。

当使用 WSO2 Integrator (v. 6.1.1) 将普通的旧 XML 消息放入队列时,接收应用程序会看到:

RFH     €    zMQSTR      z   <mcd><Msd>jms_text</Msd></mcd>     X<jms>
<Dst>queue://QUEUE_ALIAS</Dst><Tms>1532002363544</Tms><Dlv>2</Dlv></jms>

在我的 XML 消息之前,它在 JMS 标记之后开始。

如何强制 WSO2 将 MQSTR 而不是 MQRFH2 放入 Websphere MQ?我在通过我的端点发送之前尝试了以下属性,但它没有效果。

<property name="JMS_IBM_FORMAT" value="MQSTR" scope="transport" type="STRING" action="set"/>
<send>
    <endpoint key="conf:/endpoints/MY_ENDPOINT.xml"/>
</send>

端点仅定义为:

<endpoint name="MY_ENDPOINT" xmlns="http://ws.apache.org/ns/synapse">
    <address format="pox" uri="jms://QUEUE_ALIAS"/>
</endpoint>

【问题讨论】:

标签: wso2 ibm-mq


【解决方案1】:

RFH2 标头由 MQ 添加。如果您不需要它,请将 targetClient=1 添加到位置 URI,例如:

queue:///MYQUEUE?targetClient=1

http://www.mqseries.net/phpBB2/viewtopic.php?=&p=171236

【讨论】:

  • 谢谢 - 现在测试这个并且会恢复。
  • 嗨,这不起作用。消费者仍然收到相同的标头。这是我尝试添加的配置:
【解决方案2】:

更改应用程序获取的队列定义如下:-

ALTER QLOCAL(q-name) PROPCTL(NONE)

【讨论】:

  • 谢谢,但我们无权访问队列定义或更改它们的方法,因此我们需要特定于应用程序的方法来确定消息类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
  • 1970-01-01
相关资源
最近更新 更多