18.2. 非トランザクションメッセージ送信の保証


メッセージが非トランザクションセッションを使用してサーバーに送信される場合、HornetQ はメッセージがサーバーに完全に到着し、応答がクライアントに送り返されるまで送信をブロックできます。これは、耐性および非耐性メッセージに対して個別に設定でき、以下の 2 つのパラメーターによって決定されます。
BlockOnDurableSend
これが true に設定された場合、非トランザクションセッションの耐性メッセージに対するすべての送信コールは、メッセージがサーバーに到達し、応答が送り返されるまでブロックされます。デフォルト値はtrue です。
BlockOnNonDurableSend
これが true に設定された場合、非トランザクションセッションの非耐性メッセージに対するすべての送信コールは、メッセージがサーバーに到達し、応答が送り返されるまでブロックされます。デフォルト値はfalse です。
送信ブロックを true に設定すると、次の送信が実行される前に各送信がネットワークラウンドトリップを必要とするため、パフォーマンスが低下することがあります。つまり、メッセージを送信するパフォーマンスは、ネットワークの帯域幅ではなくネットワークのネットワークラウンドトリップ時間 (RTT) によって制限されます。パフォーマンスを向上させるために、多くのメッセージ送信を 1 つのトランザクションでバッチ処理するか (トランザクションセッションでは、コミット/ロールバックのみが各送信をブロックしません)、「非同期送信承認」 で説明された 非同期送信承認機能を使用します。
JMS 接続ファクトリーインスタンスを JNDI にロードするためにサーバーで JMS と JMS サービスを使用している場合は、要素 block-on-durable-send および block-on-non-durable-send を使用してこれらのパラメーターを JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-jms.xml で設定できます。JMS を使用し、JNDI を使用していない場合は、適切なセッターメソッドを使用して HornetQConnectionFactory インスタンスで直接これらの値を設定できます。
コアを使用している場合は、適切なセッターメソッドを使用して ClientSessionFactory インスタンスで直接これらの値を設定できます。
サーバーが非トランザクションセッションから送信されたメッセージを受け取り、このメッセージが耐性であり、少なくとも 1 つの耐性キューにルーティングされる場合は、サーバーがメッセージを永久ストレージに永続化します。ジャーナルパラメーター journal-sync-non-transactionaltrue に設定されている場合、サーバーは、メッセージが永続化され、データがディスクに永続化されたことがサーバーで保証されるまで応答をクライアントに送り返しません。このパラメーターのデフォルト値は true です。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat