ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic ServerメッセージドリブンBeanのプログラミング
11g リリース1 (10.3.6)
B61425-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

2 MDBのライフサイクル

この項では、メッセージドリブンBeanインスタンスのライフサイクルのフェーズと、ライフサイクルを制御するMDBの構成について説明します。

概要

メッセージドリブンBeanは、リクエストに対するレスポンスが即時である必要のない疎結合(非同期)のビジネス・ロジックを実装します。メッセージドリブンBeanは、JMSキューまたトピックからメッセージを受信し、そのメッセージの内容に基づいてビジネス・ロジックを実行します。それは、EJBとJMSの間の非同期インタフェースです。

メッセージドリブンBeanのインスタンスはすべて同じ機能であり、EJBコンテナはどのMDBインスタンスにもメッセージを割り当てることができます。コンテナは、それらのインスタンスをプールしてメッセージのストリームの並行処理を可能にします。

EJBコンテナは、必要に応じてBeanのインスタンスを作成し、JMSメッセージをインスタンスに渡すことによってメッセージドリブンBeanと直接対話します。コンテナは、デプロイメント時にBeanのインスタンスを作成し、メッセージのトラフィックに基づいて作動時にインスタンスを追加および削除できます。

MDBと並行処理

MDBは、トピックとキューの両方で並行処理をサポートしています。トピックとキューの詳細は、「MDBとメッセージング・モデル」を参照してください。

WebLogic Serverインスタンスでは、各MDBデプロイメントは1つ以上のMDBインスタンス・プール(フリー・プールともいう)を保持します。このプールは、現在リクエストを送信していないMDBインスタンスも保持します。フリー・プール内のMDBインスタンスの最大数は、max-beans-in-free-pool属性の値、スレッド・プール内の利用可能なスレッド数、スレッド・プールの種類、およびその他の要因などによって制御されます。『Oracle WebLogic Serverパフォーマンスおよびチューニング』の「メッセージドリブンBeanのチューニング」を参照してください。

MDBデプロイメントに関連付けられたフリー・プールの数は、MDBデプロイメントが接続される宛先の種類に依存します。通常、MDBデプロイメントは、デプロイメントをホストする各WebLogic Serverインスタンス上で1つのフリー・プールに関連付けられます。ただし、デプロイメントをホストする各WebLogic Serverインスタンス上では、WebLogic JMS分散宛先に接続したMDBデプロイメントが分散宛先に関連付けられた各物理宛先に対して1つのフリー・プールを持つ場合があります。フリー・プールの数は、EJBコンテナによって自動的に決定されます。JMS宛先に関連付けられたMDBの場合、各MDBフリー・プールは常に1つのJMS接続に対応します。

キュー・ベースのJMSアプリケーション(ポイントツーポイント・モデル)では、各MDBインスタンスは単一の内部JMSセッションを作成し、MDBスレッドに対応します。

トピック・ベースのJMSアプリケーション(パブリッシュ/サブスクライブ・モデル)には単一のインスタンスが必要になり、複数のインスタンス間で単一のJMSセッションを共有するか、または各インスタンスに対してセッションを作成できます。これは、MDBアプリケーション設定、トピックの種類、ワークマネージャ、およびmax-beans-in-free-pool設定によって指定されるメッセージ処理パターンに基づいて、MDBコンテナによって自動的に決定されます。第10章「JMSトピックを使用したMDBの構成とデプロイ」を参照してください。また、『Oracle WebLogic Serverパフォーマンスおよびチューニング』のメッセージドリブンBeanのチューニングに関する項も参照してください。

マルチスレッド・トピックMDBの制限事項

非トランザクション・トピックMDBのデフォルト動作は、メッセージ処理のマルチスレッド化です。使用時には次のいくつかの制約があります。

詳細は、「MDB同時実行性の制御」注意を参照してください。