2017-09-26 114 views
1

我有一個將消息放入JMS隊列中的應用程序。消息大小可以高達150 MB。 JMS消息包含帶有附加元數據的字節數組數據作爲xml,一旦消息放入隊列中,駱駝路由應用程序選擇該消息並使用該消息調用外部java api.i想使用camel jms從JMS隊列中傳輸消息零件。 你能告訴我,如果我可以用駱駝實現它嗎? 目前我正面臨堆錯誤問題。使用駱駝JMS流式傳輸

示例JMS消息如下。

<request> 
    <esb-metadata> 
     <source-transaction-id>1234567890</source-transaction-id> 
     <environment>Dev</environment> 
     <message-type>REQ</message-type> 
     <source-id>12345678</source-id> 
     <master-id>mst-id1234</master-id> 
    </esb-metadata> 
    <message-body> 
     <parameters> 
      <info> 
       <document-class>Document</document-class> 

       <document-guid>idd_C0A5DF59-0000-C51C-BCDA-E76E9476D5C2</document-guid> 
      </info> 
     </parameters> 
     <document> 
      <document-mime-type>std/text</document-mime-type> 
      <document-content>SGVhZGluZzEgQ2hhbmdlZCB0b2RheSBKYW4gMTEgc2FtcGxlIHRleHQgYmVsb3csDQpPbmNlIEkg 
cmVjZWl2ZSB0aGlzIGluZm9ybWF0aW9uLCBJIHdpbGwgdGhlbiBjb250YWN0IHlvdSBpbW1lZGlh 
dGVseSB0byBkaXNjdXNzIHRoZSByZXNvbHV0aW9uIG9mIHlvdXIgY2xhaW0uDQoNCg0KSGVhZGlu 
ZzIgc2FtcGxlIHRleHQsDQpJZiBwb3NzaWJsZSwgSSBuZWVkIHRvIHJlY2VpdmUgdGhpcyBpbmZv 
cm1hdGlvbiBmcm9tIHlvdSB3aXRoaW4gMzAgRGF5cy4NCg0KMQkxCTENCjIJMgkyDQozCTMJMw0K 
NAk0CTQNCg0KSGVhZGluZzMgc2FtcGxlIHRleHQsDQpJIHdpbGwgYXNzdW1lIHlvdSBkbyBub3Qg 
d2lzaCB0byBwdXJzdWUgdGhpcyBjbGFpbSBhbmQgSSB3aWxsIGNsb3NlIG15IGZpbGUuDQpBRERF 
RCBUSElTIE5FVyBMSU5FIFRPIFNFRSBJRiBJVCBJUyBWSVNJQkxFDQoNCnRhYmxlIHN0YXJ0cyBo 
ZXJlDQpwb2xpY3kgbnVtYmVyCWNsYWltIG51bWJlcglpbnN1cmVkDQpwMTIzCWMxMjMJYm9zY2gN 
CnAzMjEJYzMyMQlibXcNCnRhYmxlIGVuZHMgaGVyZQ0KDQomIzk2Nzk7CUJ1bGxldCBwb2ludCAx 
DQomIzk2Nzk7CUJ1bGxldCBwb2ludCAyDQomIzk2Nzk7CUJ1bGxldCBwb2ludCAzDQoNCjEuCU51 
bWJlcmVkIHBvaW50IDENCjIuCU51bWJlcmVkIHBvaW50IDINCjMuCU51bWJlcmVkIHBvaW50IDMN 
Cg==  </document-content> 
     </document> 
    </message-body> 
</request> 

回答

0

HornetQ的具有流大的消息,使客戶不必擔心擊球內存限制支持。此支持在HornetQ JMS實現中起作用,但JMS API不直接支持流式傳輸大型消息,因此標準JMS組件(例如Camel提供的組件)可能不適用於此用例。您需要使用專門爲支持HornetQ實現而編寫的組件。您可以閱讀關於HornetQ JMS客戶端如何在the documentation中傳輸大型郵件的信息。