21.3. 大きいメッセージのストリーミング


HornetQ は、入力および出力ストリームを使用したメッセージのボディーの設定をサポートします (java.lang.io)。
これらのストリームは、メッセージを送信 (入力ストリーム) および受信 (出力ストリーム) するために直接使用されます。
メッセージを受信する場合は、出力ストリームを 2 つの方法で使用できます。メソッド ClientMessage.saveOutputStream、またはメッセージをストリームに非同期的に書きこむメソッド ClientMessage.setOutputstream を使用して出力ストリームが復元されるときにブロックを選択できます。ClientMessage.setOutputstream を選択した場合は、メッセージが完全に受信されるまでコンシューマーが存続している必要があります。
どんな種類のストリームでも使用できます。最も一般的な使用ケースは、ディスク状に保存されたファイルを送信することですが、以下のようなものを送信することもできます。
  • JDBC BLOB
  • SocketInputStream
  • HTTPRequests から復元されるものなど
メッセージを送信するために java.io.InputStream、またはメッセージを受信するために java.io.OutputStream を実装するすべてのものを使用できます。

21.3.1. コア API を介したストリーミング

以下の表は、オブジェクトプロパティーを使用することにより JMS を介して利用できる ClientMessage で利用可能なメソッドのリストを示しています。
Expand
表21.1 org.hornetq.api.core.client.ClientMessage API
名前 説明 JMS の同等プロパティー
setBodyInputStream (InputStream) メッセージの送信時にメッセージボディーを読み取るために使用する InputStream を設定します。 JMS_HQ_InputStream
setOutputStream (OutputStream) メッセージのボディーを受信する OutputStream を設定します。このメソッドはブロックしません。 JMS_HQ_OutputStream
saveToOutputStream (OutputStream) メッセージのボディーを OutputStream に保存します。これは内容全体が OutputStream に転送されるまでブロックされます。 JMS_HQ_SaveStream
コアメッセージの受信時に出力ストリームを設定する場合:
...
ClientMessage msg = consumer.receive(...);

// This will block here until the stream was transferred
msg.saveToOutputStream(someOutputStream); 

ClientMessage msg2 = consumer.receive(...);

// This will not wait the transfer to finish
msg.setOutputStream(someOtherOutputStream); 
...
Copy to Clipboard Toggle word wrap
コアメッセージの送信時に入力ストリームを設定する場合:
...
ClientMessage msg = session.createMessage();
msg.setInputStream(dataInputStream);
...
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat