簡體   English   中英

如何在C#中將消息格式從MQHRF2更改為字符串格式

[英]How to change message format from MQHRF2 to string format in C#

我正在以遠程MQ接收MQHRF2格式的消息。 我們正在使用MISP將消息發送到遠程MQ。 我的問題是如何在MQ中將此格式MQHRF2更改為MQSTR或在C#中如何將此格式MQHRF2更改為字符串格式? 有什么辦法可以更改消息格式? 請幫忙

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傳遞具有命名屬性(消息屬性)的消息,然后忽略它們。 消息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);

對我來說,這個解決方案有效:

我使用IBM MQ Explorer連接到遠程MQ。 我正在以MQHRF2格式將消息接收到遠程MQ中,但是我想使用MQSTR格式。 提取MQSTR消息更容易。

連接到遠程MQ,然后轉到預訂->轉到MQ->屬性->常規選項卡中->將屬性更改為無。

瞧! 它為我工作:)。 默認情況下,消息格式為MQSTR。 因此,如果我們將MQHRF2更改為none,那么它將被更改為MQSTR。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM