EJB 3.x アプリケーションの実装

このタスクは、Enterprise JavaBeans (EJB) 3.x アプリケーションを実装する場合に使用してください。

このタスクについて

Enterprise JavaBeans (EJB) 仕様によれば、エンタープライズ Bean は、一般に Java™ Platform, Enterprise Edition (JEE) アプリケーションのビジネス・ロジックを実装し、かつデータにアクセスする Java コンポーネントです。 IBM® WebSphere® Application Server は、EJB 2.x および EJB 3.x 仕様を含め、エンタープライズ Bean を幅広くサポートします。 EJB 3 仕様は、エンタープライズ・アプリケーションのためのビジネス・ロジックの開発およびデータ処理を単純化します。 アセンブリー・ツールの 1 つを使用して、Bean を 1 つ以上の EJB 3.x モジュールにアセンブルします。

EJB 3.0 仕様は、Java™ Platform, Enterprise Edition 5 (Java EE 5) プログラミング・モデルに対して行われた最も重要なアップグレードとして定評があります。EJB 3.0 仕様では、Java EE で使用されるビジネス・ロジックおよびパーシスタンス・プログラミング・モデルが単純化および合理化されています。Java パーシスタンス API (JPA) 置き換えはエンティティー・クラスと呼ばれていますが、エンティティー・エンタープライズ Bean と混同してはなりません。JPA エンティティーはエンタープライズ Bean ではなく、EJB コンテナー内で実行する必要はありません。

EJB 仕様では、同一アプリケーション内にパッケージ化された複数の EJB について、ローカル・クライアント・ビューがサポートされている必要があります。 これには、ローカル・ホーム、ローカル・ビジネス・インターフェース、および非インターフェース・ビューが含まれます。 WebSphere Application Server は、別々のアプリケーション内にパッケージ化された複数の EJB に対してはローカル・クライアント・ビューへのアクセスを許可しますが、以下のようないくつかの制約事項があります。
  • ローカル・インターフェースと、ローカル・インターフェースが使用するすべてのパラメーター、戻り、および例外のタイプは、呼び出し元アプリケーションとターゲット EJB アプリケーションの両方のクラス・ローダーから認識できる必要があります。 これは、サーバー・クラス・ローダーに関連付けられた共有ライブラリーを使用するか、または、両方のアプリケーションに関連付けられた独立した共有ライブラリーを使用することによって、実現できます。 詳しくは、『共有ライブラリーの作成』トピックを参照してください。
  • ターゲット EJB アプリケーションが停止された場合は、EJB に対するすべてのキャッシュ参照はリフレッシュされる必要があります。 以下のいずれかを行うことができます。
    • 呼び出し元アプリケーションを再始動します。呼び出し元アプリケーションが依存しているターゲット EJB アプリケーションを再始動するときはいつでも、その呼び出し元アプリケーションを再始動するのが、最も簡単なソリューションです。
    • JNDI から新しい参照を取得します。デフォルトで、Java 名前空間からの JNDI 検索はキャッシュされており、新しい参照を取得するためにはそのキャッシュを使用不可にするか、またはクリアする必要があります。 詳しくは、『JNDI を使用するアプリケーションの開発』を参照してください。

      EJB メソッドの呼び出しは、ターゲット EJB アプリケーションが停止されると com.ibm.websphere.ejbcontainer.EJBStoppedException をスローします。 @EJB 注入または JNDI 検索のいずれかを使用してインスタンス変数の EJB 参照をキャッシュに入れている場合、 この例外をキャッチして、キャッシュに入れない検索を実行して EJB 参照をリフレッシュすることができます。

チューニングおよびトラブルシューティングのヒントを含め、WebSphere Application Server で EJB 3.x アプリケーションを実装するには、以下の手順を実行してください。

手順

  1. エンタープライズ Bean コードをマイグレーションします。
    1. EJB 3.x Bean の使用に関連したマイグレーション上の問題はありません。 既存のアプリケーションは、以前と同じように実行され、エラーなしでコンパイルすることができます。EJB 3.0 および 3.1 仕様では、EJB 1.1 スタイルのエンティティー Bean の使用は非推奨でした。 エンティティー Bean の代わりに Java™ Persistence API (JPA) または JDBC へのマイグレーションを開始することをお勧めします。
  2. EJB 3.x アプリケーションを開発します。
    1. Java EE アプリケーションおよびそれが必要とするエンタープライズ Bean を設計します。 CMP を使用するエンティティー Bean を開発する前に、『並行性制御』のトピックをお読みください。 EJB 3.x モジュールはエンティティー Bean をサポートしないということを覚えておいてください。 ご使用の EJB 2.x レベル・モジュールにエンティティー Bean を引き続き配置する必要があります。
  3. EJB 3.x アプリケーションをアセンブルします。
    1. EJB 3.x モジュールをアセンブルして、エンタープライズ Bean および関連するコードの成果物を含めます。Web コンポーネント、クライアント・コード、およびリソース・アダプター・コードを別々のモジュールにグループ化します。EJB モジュールは、アセンブルされた後、スタンドアロン・アプリケーションとしてインストールするか、または他のモジュールと組み合わせて 1 つのエンタープライズ・アプリケーションを作成します。
  4. EJB 3.x アプリケーションをデプロイします。
    1. EJB モジュールをデプロイする際には、デプロイされたモジュールをサポートするように構成されたサーバーにそのモジュールをインストールします。 1 つ以上の EJB モジュールをアセンブルし、1 つ以上の Web モジュールをアセンブルして、それらを Java EE アプリケーションにアセンブルします。
  5. EJB 3.x アプリケーションを管理します。
    1. EJB コンテナーを管理したり、セッション Bean およびエンティティー Bean を管理したりします。
  6. EJB 3.x アプリケーションを保護します。
    1. エンタープライズ Bean メソッドは、セキュリティー・ロールを割り当てることによって 保護できます。セキュリティー・ロールを割り当てる前に、保護が必要な EJB メソッドとその保護方法について知る必要があります。
  7. EJB 3.x アプリケーションをチューニングします。
    1. EJB コンテナー・キャッシュのサイズに影響を与えるアプリケーションを使用した場合は、誤ったサイズ設定により、アプリケーションのパフォーマンスが影響を受けることがあります。 EJB 3.x モジュールではエンティティー Bean がサポートされないことを認識しておくことが重要です。 EJB コンテナーを最適パフォーマンス・レベルにチューニングする手順の 1 つに、EJB キャッシュの微調整があります。
  8. EJB 3.x アプリケーションをトラブルシューティングします。
    1. 以下のトラブルシューティングのヒントは、エンタープライズ Bean へのアクセスに関連する問題に使用してください。

タスクの結果

WebSphere Application Server への EJB 3.x アプリケーションの実装が完了しました。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_implement_ejb3x_apps
ファイル名:tejb_implement_ejb3x_apps.html