Jms 如何使用WSO2 ESB将消息格式设置为MQSTR

Jms 如何使用WSO2 ESB将消息格式设置为MQSTR,jms,wso2,esb,mq,Jms,Wso2,Esb,Mq,我正在使用WSO2 ESB 4.9通过.bindings文件连接到WebSphere MQ队列。默认情况下,WSO2 ESB通过JMS发送格式为MQHRF2的MQ消息。如何配置WSO2 ESB,使其以MQSTR格式发送MQ消息,类似于以下Java编码: Queue myQueue=session.createQueue(“queue:///myQueue?targetClient=1"); 或 非常感谢 以下是我在WSO2 ESB上配置的代理的一部分,建议如下: <outSequ

我正在使用WSO2 ESB 4.9通过.bindings文件连接到WebSphere MQ队列。默认情况下,WSO2 ESB通过JMS发送格式为MQHRF2的MQ消息。如何配置WSO2 ESB,使其以MQSTR格式发送MQ消息,类似于以下Java编码:

Queue myQueue=session.createQueue(“queue:///myQueue?targetClient=1");

非常感谢

以下是我在WSO2 ESB上配置的代理的一部分,建议如下:

     <outSequence>
     <property name="TRANSPORT_HEADERS" scope="axis2" action="remove"/>
     <property name="messageType" value="text/plain" scope="axis2"/>
     <property name="JMS_IBM_Format"
               value="MQSTR"
               scope="transport"
               type="STRING"/>
     <send/>
  </outSequence>
  <endpoint>
     <address uri="jms:/xxxx?transport.jms.ConnectionFactoryJNDIName=..."
              format="soap11"/>
  </endpoint>

以下属性设置用于通过不将不需要的HTTP头信息发送到下游(XML/JMS),从上游(JSON/HTTP)删除该信息:


您可以尝试在将以下属性发送到MQ之前添加它

 <property name="JMS_IBM_Format"
               value="MQSTR"
               scope="transport"
               type="STRING"/>
<send>
    <!-- your MQ endpoint here -->
</send>

您可以尝试在将以下属性发送到MQ之前添加它

 <property name="JMS_IBM_Format"
               value="MQSTR"
               scope="transport"
               type="STRING"/>
<send>
    <!-- your MQ endpoint here -->
</send>


您好。。。。谢谢你这么快就发布了你的建议。我已经测试了您的解决方案,但它不起作用,即MQHRF2的MQ标头格式保持不变。当我们添加该属性时,它将作为标头与消息一起传递给MQ(除此之外,没有进行任何特殊处理)。在您的情况下,在MQ接收的头值是否保持为“MQHRF2”?或者,您指的是esb从MQ接收的消息头?还有MQ版本/环境是什么?您好。。。WSO2 ESB似乎忽略了上述属性设置,而没有抛出任何错误,因此在MQ服务器上接收到的头值仍保持为MQHRF2。如果我使用Java JMS代码通过将MQ头格式设置为MQSTR来发送MQ消息,那么我的MQ服务器在按预期接收正确的MQ消息头方面没有问题。因此,我怀疑根本问题与我的MQ环境(接收器)有关。这很奇怪,因为我们最近使用ESB4.9.0(到MQ7.1)能够以MQSTR格式发送消息。您可以尝试在属性配置中添加“action”参数。i、 e.action=“set”显式设置属性hello。。。。谢谢你这么快就发布了你的建议。我已经测试了您的解决方案,但它不起作用,即MQHRF2的MQ标头格式保持不变。当我们添加该属性时,它将作为标头与消息一起传递给MQ(除此之外,没有进行任何特殊处理)。在您的情况下,在MQ接收的头值是否保持为“MQHRF2”?或者,您指的是esb从MQ接收的消息头?还有MQ版本/环境是什么?您好。。。WSO2 ESB似乎忽略了上述属性设置,而没有抛出任何错误,因此在MQ服务器上接收到的头值仍保持为MQHRF2。如果我使用Java JMS代码通过将MQ头格式设置为MQSTR来发送MQ消息,那么我的MQ服务器在按预期接收正确的MQ消息头方面没有问题。因此,我怀疑根本问题与我的MQ环境(接收器)有关。这很奇怪,因为我们最近使用ESB4.9.0(到MQ7.1)能够以MQSTR格式发送消息。您可以尝试在属性配置中添加“action”参数。i、 e.action=“set”显式设置属性
 <property name="JMS_IBM_Format"
               value="MQSTR"
               scope="transport"
               type="STRING"/>
<send>
    <!-- your MQ endpoint here -->
</send>