第34章 JMS の調整


JMS API を使用する場合は、パフォーマンスを改善するためのヒントについて、以下の情報を確認してください。

  • メッセージ ID を無効にします。

    メッセージ ID が必要ない場合は、MessageProducer クラスで setDisableMessageID() メソッドを使用して無効にします。値を true に設定すると、一意の ID 作成のオーバーヘッドがなくなり、メッセージのサイズが小さくなります。

  • メッセージのタイムスタンプを無効にします。

    メッセージのタイムスタンプが必要ない場合は、MessageProducer クラスで setDisableMessageTimeStamp() メソッドを使用して無効にします。値を true に設定すると、タイムスタンプ作成のオーバーヘッドがなくなり、メッセージのサイズが減少します。

  • ObjectMessage を使用しません。

    ObjectMessage は、シリアライズされたオブジェクトを含むメッセージを送信するために使用されます。つまり、メッセージの本文 (ペイロード) が、バイトストリームとしてネットワーク経由で送信されます。オブジェクトが小さくても Java のシリアライズ形式は非常に大きく、ネットワーク上の多くのスペースを占有します。また、カスタムマーシャリング手法と比較すると低速です。ObjectMessage は、他のメッセージタイプの 1 つを使用できない場合にのみ使用します。たとえば、ランタイムまでペイロードタイプがわからない場合に使用します。

  • AUTO_ACKNOWLEDGE を使用しません。

    コンシューマーで確認応答モードを選択すると、ネットワーク経由で送信される確認応答メッセージの送信により発生する追加のオーバーヘッドとトラフィックによってパフォーマンスに影響します。AUTO_ACKNOWLEDGE でこのオーバーヘッドが発生するのは、クライアント上で受信される各メッセージについてサーバーから確認応答の送信が必要であるためです。可能であれば DUPS_OK_ACKNOWLEDGE を使用して、レイジー方法でメッセージを確認応答します。CLIENT_ACKNOWLEDGE は、クライアントコードがメソッドを呼び出してメッセージを確認応答するか、トランザクションセッションの 1 つの確認応答またはコミットとして数多くの確認応答をまとめます。

  • 永続メッセージを使用しません。

    デフォルトでは、JMS メッセージは永続化されます。永続メッセージが必要ない場合は、それらを non-durable に設定します。永続メッセージは、ストレージに永続化されるために多くのオーバーヘッドが発生します。

  • TRANSACTED_SESSION モードを使用して、単一のトランザクションでメッセージを送受信します。

    単一のトランザクションでメッセージをバッチ処理することで、JBoss EAP に統合された ActiveMQ Artemis サーバーで必要なネットワークラウンドトリップは、送信または受信ごとではなく、コミット時に 1 つのみになります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat