來使用WMQ7.0與WMB 6.1MQRFH2.usr主消息體
我有一個流,其中我改造的消息,並使用MQRFH2.usr舉辦一些數據。
但是,我面臨的問題是主消息正文中會出現MQRFH2.usr。
我在不同的環境中部署了相同的代碼,但我只在一個環境中得到這個問題。
所以,它似乎不是一個代碼問題。它與配置有關。
請注意,建議可能的原因是什麼。
來使用WMQ7.0與WMB 6.1MQRFH2.usr主消息體
我有一個流,其中我改造的消息,並使用MQRFH2.usr舉辦一些數據。
但是,我面臨的問題是主消息正文中會出現MQRFH2.usr。
我在不同的環境中部署了相同的代碼,但我只在一個環境中得到這個問題。
所以,它似乎不是一個代碼問題。它與配置有關。
請注意,建議可能的原因是什麼。
檢查隊列的PROPCTL
設置。如果設置爲NONE
,則行爲如下:
如果應用程序不創建一個消息句柄,所有的消息 屬性是從MQRFH2刪除。消息中留下了MQRFH2 標題中的名稱/值對。
一定要通過幾次讀doc page,也許使用不同的設置進行測試,以充分了解如何PROPCTL
修改您的應用程序接收到該消息的內容。
感謝您提供的信息。實際上,我的問題是MQMD.FORMAT應該是'MQRFH2',但它是'MQSTR'。但是,仍然不知道它是如何與WMB 8和WMQ 7.0組合工作正常的,它只能用WMB6.1和WMQ 7.0組合失敗。 – nitgeek
運行一個跟蹤。我希望你會發現WMB 6沒有設置'MQGMO_PROPERTIES',而是WMB 8將它設置爲[這裏]描述的值之一(http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/話題/ com.ibm.mq.explorer.doc/e_properties_gmo.htm)。 –
MQRFH2頭部(如果有的話)總是進入消息的有效載荷部分(這是webpshere組織它的方式)。您可以接收一個或多個MQRFH2標題(結構)。
也許你期待只有一個,並收到兩個?這將解釋您的留言數據留有亂碼。
我使用下面的代碼在收到消息
MQRFH2 header = null;
// Find and store message length
int msglen = replyMessage.getMessageLength();
MQHeaderList list = new MQHeaderList(replyMessage);
int indexOf = list.indexOf("MQRFH2");
if (indexOf >= 0) {
header = (MQRFH2) list.get(indexOf);
msglen = msglen - header.size();
}
String msgText = replyMessage.readStringOfCharLength(msglen);
希望它可以幫助到處理器這些heards。
馬丁斯
我想這是一個更坦布爾韋德批我...:d – nitgeek
都在使用什麼版本的WMQ QMgrs的? –
@ T.Rob所有隊列管理員都在WMQ 7.0上 – nitgeek