セッション bean を使用して、ビジネスロジックを管理します。セッション bean には、次の 2 つのタイプがあります。
ステートレスセッション bean では、会話ステートが維持されません。ただし、ステートレスセッション bean は、セッション/エンティティのファサードパターンで利用される場合は特に有効です。この場合、セッション bean のメソッドによって、1 つ以上のエンティティ bean にある 1 つ以上のメソッドを呼び出して、1 つの単位の作業が実行されます。
詳細については、弟 14 章、「EJB プログラミングテクニック」を参照してください。
ステートフルセッション bean では、会話ステートが維持されます。クラスタ環境で JRun を使用すると、JRun は、クラスタ全体でステートフルセッション bean ステートを維持することによってフェイルオーバーをサポートします。
詳細については、弟 14 章、「EJB プログラミングテクニック」を参照してください。
エンティティ bean は、サーバがシャットダウンするまで存続するオブジェクトを表します。エンティティ bean のインスタンスを表現するデータは通常、関係データベースのテーブルの行に保管されています。このデータベースには、JDBC データソースからアクセスします。テーブルは、複数のデータベースに及ぶ場合もあります。
BMP では、コールバックメソッドの適切なデータベースの更新をコーディングすることによって、開発者がパーシスタンスを管理します。たとえば、ejbUpdate
メソッドにはデータベースを更新するコードがあり、ejbFindByPrimaryKey
メソッドにはプライマリキーを使用してデータベース行を見つけるコードがあります。
詳細については、samples JRun サーバの compass-ear ディレクトリにある Order
EJB を参照してください。
CMP では、ライフサイクルのある時点でデータベースと bean を自動的に同期することによって、コンテナがパーシスタンスを管理します。CMP を使用すると、bean 実装コーディングがより簡単になるので、ビジネスロジックに焦点を合わせることができます。
EJB 2.0 仕様では、アプリケーションサーバで EJB 1.1 CMP および EJB 2.0 CMP がサポートされている必要があります。
EJB 2.0 仕様は CMP に対する主要な変更を特徴としており、次の機能が含まれています。
finder
メソッドだけではなく、select
メソッドも使用できます。CMP の拡張が EJB 2.0 の主な特徴になっています。このマニュアルのリソースおよび例を使用するだけでなく、EJB 2.0 に関する業界誌も参照してください。このマニュアルの序章にはこれらの本のリストが記載されています。
EJB 2.0 サポートの詳細については、第 14 章を参照してください。
JRun 4 の EJB 1.1 CMP のサポートは、JRun の以前のバージョンの CMP とは異なります。以前は、ejb-jar.xml ファイルの環境エントリでパーシスタンス情報を指定していました。JRun 4 では、jrun-ejb-jar.xml ファイルの要素でパーシスタンス情報を指定します。これらの要素で、store、load、findByPrimaryKey などの適切なパーシスタンスアクションのパーシスタンス管理方法を EJB コンテナに通知します。
EJB 1.1 サポートの詳細については、第 14 章を参照してください。
メモ: JRun では、JRun 3.1 スタイルの CMP bean のオートデプロイもサポートしています。
MDB (message-driven bean:メッセージ駆動型 bean) は JMS メッセージリスナとしての役割を果たします。MDB にはリモート、リモートホーム、ローカル、またはローカルホームインターフェイスがない点で、セッション bean およびエンティティ bean とは異なります。MDB は、bean 実装があるという点で他の bean タイプと同じであり、ejb-jar.xml ファイルで定義されます。トランザクション、セキュリティ、ライフサイクル管理などの EJB 機能を利用できます。単純な JMS メッセージコンシューマに対する MDB の主な利点は、コンテナで複数の MDB インスタンスをインスタンス化して複数のメッセージを同時に処理できることです。
MDB の詳細については、第 14 章を参照してください。