20.2. Java Message Service (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 モードを使用して、単一のトランザクションでメッセージを送受信します。

    メッセージを単一のトランザクションでバッチ処理することにより、AMQ Broker では、送信または受信のたびにではなく、コミット時に 1 回のネットワークラウンドトリップのみが必要になります。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る