|
以下の節では、メッセージ駆動型 Bean (MDB) のチューニングとベスト プラクティスについて説明します。
MDB のトランザクション バッチ処理では、複数の JMS メッセージを 1 つのコンテナ管理によるトランザクションで処理できます。バッチ処理を行うと複数のメッセージを扱うトランザクションのコストが償却され、適切に使用した場合には 2PC 処理と 1PC 処理のスループットの差が軽減したり、解消されたりすることもあります。『WebLogic エンタープライズ JavaBeans (EJB) プログラマーズ ガイド』の「MDB のトランザクション バッチ処理」を参照してください。
注意: | バッチ処理を使用する場合、同時に扱う MDB インスタンス数を減らす必要があることもあります。使用できる MDB インスタンスが多すぎる場合、メッセージはバッチ処理ではなく並行処理される可能性があります。「MDB スレッド管理」を参照してください。 |
注意: | 通常、バッチ処理ではスループットが向上しますが、レイテンシ (個々のメッセージの MDB 処理が完了するまでの時間) も増大する場合があります。 |
MDB のスレッド管理については、同時実行性、すなわち同時にアクティブになれる MDB インスタンス数の観点から説明します。以下の節では、MDB の同時実行性について説明します。
表 10-1 は、1 つのサーバ インスタンスに対して同時に実行する MDB インスタンスを決定する方法を示しています。
バッチ処理が有効化されたトランザクション対応 MDB では、デプロイされた各 MDB に専用のポーリング スレッドが作成されます。このポーリング スレッドは dispatch-policy
で指定されたプールから割り当てられるものではなく、システムで動作している他のすべてのスレッドに追加される、完全に新しいスレッドです。「トランザクション バッチの使用」を参照してください。
以下の節では、アプリケーションに対して同時方式を選択するための全般的な情報を示します。
注意: | アプリケーションにはそれぞれに固有の特性があります。同時方式はアプリケーションがその環境でどのように動作するのかに基づいて選択します。 |
min-threads-constraint
を指定するか、カスタム実行キューを使用します。 max-threads-constraint
パラメータおよび高いフェア シェア設定がコンフィグレーションされたカスタム ワーク マネージャに変換する。 注意: | デフォルトの同時実行数 (16) をオーバーライドするためには、max-threads-constraint パラメータをコンフィグレーションする必要があります。 |
以下の節では、外部ベンダ MDB 使用時の WebLogic Server の動作について説明します。
外部 MDB の使用時には、WebLogic Server により 表 10-2 のように同時方式が決定されます。
以下の節では、WebLogic Server を外部ベンダ MDB と相互運用する場合のスレッドの割り当て方法について説明します。
注意: | 外部のトランザクション対応 MDB を使用する場合、外部ベンダの中には同時実行する MDB インスタンスごとに恒久的にスレッドを割り当てる必要があるものもあります。このようなスレッドは dispatch-policy で指定されたプールから取得され、MDB がアンデプロイされるまでプールに返されません。こうしたスレッドは共有されないため、MDB が同じプール内の他のリソースの処理を妨げることがあります。このような場合、必要に応じてプールのスレッド数を増加します。 |