2017-09-26 15 views
1

私はJMSキューにメッセージを配置するアプリケーションを持っています。メッセージサイズは最大150メガバイトです。 JMSメッセージには、追加のメタデータを含むバイト配列データが含まれています。メッセージがキューに入れられると、ラクダルートアプリケーションはメッセージを選択し、messageを持つ外部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実装をサポートするために書かれたコンポーネントを使用する必要があります。 the documentationで、HornetQ JMSクライアントが大量のメッセージをどのように流すことができるかについて読むことができます。

関連する問題