1 メッセージドリブンBeanの理解

メッセージドリブンBean (MDB)とは、Java EEアプリケーションが非同期でメッセージを処理できるようにするエンタープライズBeanのことです。MDBは、JMSまたはJCAメッセージ・リスナー(イベントのかわりにメッセージを受信することを除いてイベント・リスナーと同様)として機能します。メッセージは、アプリケーション・クライアント、別のエンタープライズBean、またはWebコンポーネントなど、どのJava EEコンポーネントまたは非Java EEアプリケーションからでも送信されます。

メッセージドリブンBeanの主な特長は以下のとおりです。

  • クライアントはインタフェースを通じてメッセージドリブンBeanにアクセスしません。メッセージドリブンBeanが持つのはBeanクラスのみです。

  • メッセージドリブンBeanのインスタンスは、特定クライアントのデータや会話状態を維持しません。メッセージドリブンBeanのインスタンスはすべて同じ機能であり、EJBコンテナはどのメッセージドリブンBeanインスタンスにもメッセージを割り当てることができます。コンテナは、それらのインスタンスをプールしてメッセージのストリームの並行処理を可能にします。

メッセージ受信時に、コンテナはメッセージドリブンBeanのonMessageメソッドを呼び出してメッセージを処理します。onMessageメソッドはヘルパー・メソッドを呼び出すか、セッションBeanまたはエンティティBeanを呼び出してメッセージ内の情報を処理するか、あるいはその情報をデータベースに格納します。

メッセージはトランザクション・コンテキスト内のメッセージドリブンBeanに配信することもできます。そうすれば、onMessageメソッドのすべての処理が単一トランザクションに属することになります。メッセージの処理がロールバックされた場合、そのメッセージは再配信されます。

メッセージドリブンBeanを設計する上での選択肢については、「MDBとメッセージング・モデル」を参照してください

EJB開発プロセス全体については、『Oracle WebLogic Server Enterprise JavaBeansの開発』を参照してください。

JCAベースのMDB

MDBがJCA 1.7準拠のリソース・アダプタからメッセージを受信し、resource-adapter-jndi-nameデプロイメント記述子を構成する方法を学習します。

JCA 1.7仕様と、『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発』resource-adapter-jndi-nameに関する項を参照してください。