Oracle® Fusion Middleware Oracle WebLogic ServerメッセージドリブンBeanのプログラミング 11g リリース1(10.3.3) B61425-01 |
|
前 |
次 |
メッセージドリブンBean (MDB)とは、J2EEアプリケーションが非同期でメッセージを処理できるようにするエンタープライズBeanのことです。MDBは、JMSまたはJCAメッセージ・リスナー(イベントのかわりにメッセージを受信することを除いてイベント・リスナーと同様)として機能します。メッセージは、どのJ2EEコンポーネント(アプリケーション・クライアント、別のエンタープライズBean、またはWebコンポーネント)または非J2EEアプリケーションからでも送信できます。
メッセージドリブンBeanの主な特長は以下のとおりです。
クライアントはインタフェースを通じてメッセージドリブンBeanにアクセスしません。メッセージドリブンBeanが持つのはBeanクラスのみです。
メッセージドリブンBeanのインスタンスは、特定クライアントのデータや会話状態を維持しません。メッセージドリブンBeanのインスタンスはすべて同じ機能であり、EJBコンテナはどのメッセージドリブンBeanインスタンスにもメッセージを割り当てることができます。コンテナは、それらのインスタンスをプールしてメッセージのストリームの並行処理を可能にします。
メッセージドリブンBeanのインスタンスはそのライフサイクルを通じて、同時にではないが複数のクライアントからのメッセージを処理できます。
メッセージが到着すると、コンテナはメッセージドリブンBeanのonMessage
メソッドを呼び出してそのメッセージを処理します。onMessage
メソッドは通常はメッセージを5つあるJMSメッセージ・タイプのいずれかにキャストし、アプリケーションのビジネス・ロジックに従って処理します。onMessage
メソッドはヘルパー・メソッドを呼び出すか、セッションBeanまたはエンティティBeanを呼び出してメッセージ内の情報を処理するか、あるいはその情報をデータベースに格納します。
メッセージはトランザクション・コンテキスト内のメッセージドリブンBeanに配信することもできます。そうすれば、onMessage
メソッドのすべての処理が単一トランザクションに属することになります。メッセージの処理がロールバックされた場合、そのメッセージは再配信されます。
メッセージドリブンBeanを設計する上での選択肢については、「MDBとメッセージング・モデル」を参照してください。
EJB開発プロセス全体については、『Oracle Fusion Middleware Oracle WebLogic Server Enterprise JavaBeansバージョン3.0のプログラミング』を参照してください。