メッセージドリブンBeanの主な特長は以下のとおりです。
クライアントはインタフェースを通じてメッセージドリブンBeanにアクセスしません。メッセージドリブンBeanが持つのはBeanクラスのみです。
メッセージドリブンBeanのインスタンスは、特定クライアントのデータや会話状態を維持しません。メッセージドリブンBeanのインスタンスはすべて同じ機能であり、EJBコンテナはどのメッセージドリブンBeanインスタンスにもメッセージを割り当てることができます。コンテナは、それらのインスタンスをプールしてメッセージのストリームの並行処理を可能にします。
メッセージ受信時に、コンテナはメッセージドリブンBeanのonMessage
メソッドを呼び出してメッセージを処理します。onMessage
メソッドはヘルパー・メソッドを呼び出すか、セッションBeanまたはエンティティBeanを呼び出してメッセージ内の情報を処理するか、あるいはその情報をデータベースに格納します。
メッセージはトランザクション・コンテキスト内のメッセージドリブンBeanに配信することもできます。そうすれば、onMessage
メソッドのすべての処理が単一トランザクションに属することになります。メッセージの処理がロールバックされた場合、そのメッセージは再配信されます。
メッセージドリブンBeanを設計する上での選択肢については、「MDBとメッセージング・モデル」を参照してください
EJB開発プロセス全体については、『Oracle WebLogic Server Enterprise JavaBeansの開発』を参照してください。