我在远程MQ中接收到MQHRF2格式的消息。我们使用MISP向远程MQ发送消息。我的问题是,在MQ中如何将此格式MQHRF2更改为MQSTR,或者在C#中如何将此格式MQHRF2更改为字符串格式?有没有可能改变消息格式?请帮帮忙
发布于 2018-07-25 02:44:26
MISP如何连接和打开MQ队列?您是否使用MQ JNDI来保存连接信息?因为如果您可以在MQ JNDI中将"targetClient“设置为MQ,那么问题就解决了。
"MQ“意味着只将有效负载传递给目标应用程序(从消息中剥离属性)。
或者你可以在代码中这样做:
inQ = session.createQueue("queue://MQWT1/TEST.Q1?targetClient=1");
或
inQ.setTargetClient(WMQConstants.WMQ_CLIENT_NONJMS_MQ);
或
<config-property name="targetClient">MQ</config-property>
更新:
您可以尝试强制MQGET传递具有命名属性(消息属性)的消息,然后忽略它们。message MQMD.format字段将为MQSTR (字符串),如果未设置,则为空。
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = MQC.MQGMO_PROPERTIES_IN_HANDLE + MQC.MQGMO_FAIL_IF_QUIESCING;
MQMessage msg = new MQMessage();
inQ.Get(msg, gmo);
https://stackoverflow.com/questions/51492593
复制相似问题