Oracle® Fusion Middleware Oracle WebLogic Server パフォーマンス チューニング ガイド 11g リリース 1 (10.3.1) B55570-01 |
|
戻る |
次へ |
以下の節では、メッセージング ブリッジのパフォーマンスを向上させるためのさまざまな方法について説明します。
リモートの送り先の可用性があらかじめ高い場合、メッセージング ブリッジの使用は避ける。JMS クライアントからリモートの送り先に対して直接的に配信できます。メッセージング ブリッジは、信頼性に欠けるネットワークやさまざまなメンテナンス スケジュールがあるなど、リモートの送り先の可用性が高くない状況で使用します。
リモートの送り先にメッセージを転送する場合、メッセージング ブリッジではなく、パフォーマンスの優れた JMS SAF 機能を使用する。一般に、JMS SAF エージェントはメッセージング ブリッジに比べてかなり高速です。ただし、非永続的かつ [必ず 1 回] のモードでメッセージを送信するコンフィグレーションの場合は除きます。
注意 : 外部送り先や WebLogic 9.0 よりも前のリリースの送り先にメッセージを格納および転送 (ストア アンド フォワード) するためには、現在もメッセージング ブリッジが必要です。 |
[非同期モードを有効化] 属性が false に設定されていて、サービス品質が [必ず 1 回
] の場合、[バッチ サイズ
] 属性を使用してトランザクション (バッチ) ごとのメッセージ数を増やすことで、トランザクションのコミット数を減らせます。ブリッジ インスタンスにとって最適なバッチ サイズは、使用している JMS プロバイダ、ハードウェア、オペレーティング システム、およびそのアプリケーション環境における他の要素の組み合わせで決まります。Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「トランザクション プロパティのコンフィグレーション」を参照してください。
[非同期モードを有効化] 属性が false に設定されていて、サービス品質が [必ず 1 回
] の場合、
BatchInterval
属性を使用して、バッチされたメッセージを転送する前にブリッジで各バッチがいっぱいになるまで待機する時間を調整できます。ブリッジ インスタンスにとって最適なバッチ間隔は、使用している JMS プロバイダ、ハードウェア、オペレーティング システム、およびそのアプリケーション環境における他の要素の組み合わせで決まります。たとえば、キューがそれほどビジーな状態でない場合、ブリッジで頻繁に転送を停止してバッチがいっぱいになるまで待機するには BatchInterval
属性の値を減らす必要があります。Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「トランザクション プロパティのコンフィグレーション」を参照してください。
サービス品質を [必ず 1 回] に設定すると、[最大 1 回
] や [重複可
] に設定した場合に比べ、パフォーマンスが大幅に向上したり低下したりすることがあります。
[必ず 1 回] のサービス品質を使用している場合、確実にトランザクション セマンティクスを実現するため、ブリッジでは必ず両方の JMS サーバで 2 フェーズ コミットを行います。この操作には、非常にコストがかかることがあります。ただし、[必ず 1 回
] を使用していると、他のサービス品質と違ってブリッジで複数の操作をバッチとしてまとめられます。
最大限のパフォーマンスを実現するためには、このパラメータについて検討が必要な場合があります。たとえば、キューがそれほどビジーな状態ではない、または非永続メッセージを使用している場合には、[必ず 1 回] によるバッチ処理からほとんどメリットが得られないこともあります。Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「メッセージング ブリッジ インスタンスのコンフィグレーション」を参照してください。
メッセージの順序を指定する必要がない場合、複数のブリッジをデプロイすることを検討できます。
同じ送り先を使用するブリッジ インスタンスを複数デプロイできます。このように設定すると、ブリッジの各インスタンスが並行して実行されて、メッセージのスループットが向上する場合があります。複数のブリッジ インスタンスを使用する場合、メッセージはソース送り先にあったときの順番どおりには転送されません。Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「メッセージング ブリッジ インスタンスの作成」を参照してください。
複数のブリッジを使用するかどうかを判断する際には、以下の要素を検討します。
一部の JMS 製品では、複数のブリッジを使用してもあまりメリットがないと想定される。
通常、WebLogic JMS メッセージングのパフォーマンスはかなり向上する。永続メッセージの処理では特に改善が見られます。
CPU やディスク ストレージがフルに使用されている場合、ブリッジ インスタンス数を増やすとスループットが低下することがある。
ブリッジをコンフィグレーションする際の一般的なルールとしては、サーバ インスタンスに割り当てられた各ブリッジ インスタンスに 1 つのスレッドを用意します。お使いの環境で適切な数のスレッドを利用できるようにするには、以下の方法のいずれかを行います。
共通のスレッド プールを使用する。サーバ インスタンスでスループットを最大化するために自動的にスレッド プール サイズが変更され、コンフィグレーションするブリッジ インスタンス数についても考慮されます。『Oracle Fusion Middleware Oracle WebLogic Server サーバ環境のコンフィグレーション』の「WebLogic Server でのスレッド プールの使用方法について」を参照してください。
weblogic.jms.MessagingBridge
クラスのワーク マネージャをコンフィグレーションする。『Oracle Fusion Middleware Oracle WebLogic Server サーバ環境のコンフィグレーション』の「ワーク マネージャについて」を参照してください。
Administration Console を使用して、サーバ インスタンスの [コンフィグレーション : サービス] ページにある [メッセージング ブリッジのコンフィグレーション] セクションで、[スレッド プール サイズ] プロパティを設定する。サーバ内のデフォルトの実行スレッド プールとの競合を避けるため、メッセージング ブリッジ群で別個のスレッド プールが共有されます。このスレッド プールは同期モードでのみ使用されます ([非同期モードを有効化
] は設定されていません)。非同期モードでは、ブリッジはソース送り先の JMS プロバイダで作成されたスレッドで実行されます。WebLogic Server 9.0 では非推奨になっています。
ブリッジのリスン対象がトピックで、メッセージの転送が行われていないときにメッセージが失われても構わない場合、[恒久性を有効化] フラグを無効にして、送信できなかったメッセージがソース サーバのストアに蓄積されないようにできます。このフラグを無効にすると、メッセージは非永続になります。Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「メッセージング ブリッジ インスタンスのコンフィグレーション」を参照してください。
メッセージング ブリッジのソース送り先または対象送り先が WebLogic 送り先の場合、ブリッジをその送り先と同じ WebLogic Server にデプロイします。メッセージング ブリッジをその送り先の 1 つに割り当てると、関連するネットワークおよびシリアライゼーションのオーバーへッドが削減されます。このようなオーバーヘッドは高スループットのアプリケーションで、特にメッセージが非永続の場合に増大することがあります。
[非同期モードを有効化] 属性では、メッセージング ブリッジで
JMS MessageListener
インタフェース (http://java.sun.com/javaee/5/docs/api/javax/jms/MessageListener.html
) を使用して非同期にメッセージを受信するか、同期 JMS API を使用してメッセージを受信するかを指定します。ほとんどの場合、表 15-1 に示すように、[非同期モードを有効化] 属性の値はアプリケーション環境に必要な QOS によって決まります。
脚注 1 ソース送り先が WebLogic JMS プロバイダ以外で、QOS が [必ず 1 回] の場合、[非同期モードを有効化] 属性は無効になり、メッセージは同期モードで処理されます。
Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「メッセージング ブリッジ インスタンスのコンフィグレーション」を参照してください。
[必ず 1 回] のサービス品質が指定されていると、ブリッジのパフォーマンスに大きく影響します。ブリッジによりメッセージごとに新しいトランザクションが開始され、そのトランザクションに関与する両方の JMS サーバに渡って 2 フェーズ コミットが実施されます。2 フェーズ コミットは通常、ブリッジのトランザクションでもっともコストのかかる部分です。処理されるメッセージ数が増加するとブリッジのパフォーマンスは低下する傾向があります。