Oracle® Fusion Middleware Oracle WebLogic ServerメッセージドリブンBeanのプログラミング 11g リリース1(10.3.4) B61425-02 |
|
![]() 前 |
![]() 次 |
この項では、メッセージドリブンBeanインスタンスのライフサイクルのフェーズと、ライフサイクルを制御するMDBの構成について説明します。
メッセージドリブンBeanは、リクエストに対するレスポンスが即時である必要のない疎結合(非同期)のビジネス・ロジックを実装します。メッセージドリブンBeanは、JMSキューまたトピックからメッセージを受信し、そのメッセージの内容に基づいてビジネス・ロジックを実行します。それは、EJBとJMSの間の非同期インタフェースです。
メッセージドリブンBeanのすべてのインスタンスは均等です。EJBコンテナは任意のMDBインスタンスにメッセージを割り当てることが可能です。コンテナは、メッセージ・ストリームが同時に処理されるようにこのようなインスタンスをプールできます。
EJBコンテナは、必要に応じてBeanのインスタンスを作成し、JMSメッセージをインスタンスに渡すことによってメッセージドリブンBeanと直接対話します。コンテナは、デプロイメント時にBeanのインスタンスを作成し、メッセージのトラフィックに基づいて作動時にインスタンスを追加および削除できます。
MDBは、トピックとキューの両方で並行処理をサポートしています。トピックとキューの詳細は、「MDBとメッセージング・モデル」を参照してください。
WebLogic Serverインスタンスでは、各MDBデプロイメントは1つ以上のMDBインスタンス・プールを保存します。これは空きプールとしても知られ、現在はリクエストを提供していないMDBインスタンスを保持します。空きプール内のMDBインスタンスの最大数は、max-beans-in-free-pool
属性の値、スレッド・プール内の使用可能なスレッドの数、スレッド・プールのタイプ、その他の要因で制御されます。『Oracle WebLogic Serverパフォーマンスおよびチューニング』のメッセージドリブンBeanのチューニングに関する項を参照してください。
MDBデプロイメントに関連付けられる空きプール数は、MDBデプロイメントの接続先の宛先の種類に依存します。通常、MDBデプロイメントは、デプロイメントをホストする各WebLogic Serverインスタンス上の単一の空きプールに関連付けられます。ただし、デプロイメントをホストする各WebLogic Serverインスタンス上では、WebLogic JMS分散宛先に接続されるMDBデプロイメントは、分散宛先に関連付けられた物理的な宛先のそれぞれに対して1つの空きプールを持つ場合があります。空きプール数は、EJBコンテナによって自動的に決定されます。JMS宛先に関連付けられるMDBの場合、各MDB空きプールは常に単一のJMS接続に対応します。
キュー・ベースのJMSアプリケーション(ポイントツーポイント・モデル)では、各MDBインスタンスは単一の内部JMSセッションを作成し、MDBスレッドに対応します。
トピック・ベースのJMSアプリケーション(パブリッシュ/サブスクライブ・モデル)には単一のインスタンスが必要になり、複数のインスタンス間で単一のJMSセッションを共有するか、または各インスタンスに対してセッションを作成できます。これは、MDBアプリケーション設定、トピックの種類、ワークマネージャ、およびmax-beans-in-free-pool
設定によって指定されるメッセージ処理パターンに基づいて、MDBコンテナによって自動的に決定されます。第10章「JMSトピックを使用したMDBの構成とデプロイ」を参照してください。また、『Oracle WebLogic Serverパフォーマンスおよびチューニング』のメッセージドリブンBeanのチューニングに関する項も参照してください。
非トランザクション・トピックMDBのデフォルト動作は、メッセージ処理のマルチスレッド化です。使用時には次のいくつかの制約があります。
外部(WebLogic以外の)トピックを使用して機能する非トランザクション・トピックMDB
WebLogic JMSトピックから消費し、WebLogic JMSの順序単位(UOO)の値を持つメッセージを処理する非トランザクション・トピックMDB
詳細は、「MDB同時実行性の制御」の注意を参照してください。