2015-04-22 71 views
0

我試圖設置標誌的無縫閱讀分段消息GetBefore退出呼叫,象下面這樣:設置MQ標誌讀取分段消息API出口

(*ppGetMsgOpts)->Options = MQGMO_WAIT | MQGMO_LOGICAL_ORDER | MQGMO_ALL_SEGMENTS_AVAILABLE | MQGMO_COMPLETE_MSG | (*ppGetMsgOpts)->Options; 

它工作得很好,如果我使用rfhutil如閱讀客戶端,整個消息即刻被讀取,即使它被存儲分段。 但是,當我嘗試用JMS客戶端讀取,它結束了下面的錯誤代碼:

'2046' ('MQRC_OPTIONS_ERROR') 

MQ日誌沒有給出線索,只講述了「內部錯誤」。

能用JMS客戶端閱讀這樣的消息嗎? 即使不是,選項可能會出現什麼問題?

回答

0

消息分段是消息傳遞提供程序的特定功能,並未在JMS規範中定義。因此,您必須使用提供程序特定的API(例如,MQ基類Java類)來獲取分段消息。

+0

我試圖實現的目的是讓消息在兩個遠程QM之間分段傳輸,以便在不穩定的頻道上使這種傳輸更可靠。有沒有辦法做到這一點與退出API,以最終客戶端是JMS的?或者無論如何,我必須使用一些MQI客戶端從中間隊列中讀取數據並將它們聚集在一起? – user3714601

+0

對不起,我之前注意到您的評論。我們在這裏看到什麼樣的消息大小以及爲什麼你認爲細分能夠解決問題。你能否詳細說明一下? – Shashi

+0

我們使用最大可能的,所以我們的消息可能高達100M。但是我們期望在遠程主機之間傳輸如此大的消息時會遇到一些麻煩,這些消息在地理上分佈並且在某些情況下具有不穩定的網絡信道。在這種情況下傳輸分段消息可能會有所幫助,對嗎? – user3714601