EJB 1.1 から EJB 2.x に変換されるプロジェクトについては、
既存の EJB 1.1 コードを EJB 2.x にマイグレーションするためのステップを実行する必要があります。
注: EJB 2.x Bean は EJB 2.x プロジェクトでのみサポートされます
(ただし、2.x プロジェクトは 1.1 Bean もサポートします)。
- CMP 1.1 Bean については、各 CMP フィールドを getXXX および
setXXX 抽象メソッドと置換します
(Bean クラスは抽象である必要があります)。
- CMP については、基本キーの getXXX および setXXX 抽象
メソッドを作成します。
- CMP 1.1 ファインダー・メソッドについては、各ファインダー・メソッドごとに
EJBQL (EJB 照会言語) メソッドを作成します。
注: Rational® Application
Developer V6.0 では、
EJB 照会言語に以下の制限があります。
- 他の EJB への関係で構成されたキーを持つ EJB を使用する EJB 照会言語の照会は無効と表示され、デプロイメント時にエラーが発生します。
- IBM®
EJB 照会言語サポートはいくつかの制限を緩和したり、
DB2® 機能を
さらに追加するなど、さまざまな方法で EJB 2.x 仕様を拡張します。各種ベンダー・データベース間や
EJB デプロイメント・ツール間の移植性に心配がある場合は、
「EJB 2.x 仕様」の第 11 章にある指示に厳密に従って、
慎重にすべての EJB 照会言語クエリーを作成する必要があります。
- CMP 1.1 ファインダーについては、java.util.Enumeration の代わりに
java.util.Collection を戻します。
- CMP 1.1 Bean については、ejbCreate() 内、およびコード内のどこでも、
this.field = value のすべてのオカレンスを setField(value) に変更します。
- 非アプリケーション例外の例外処理 (ロールバックの振る舞い) を更新します。
- java.rmi.RemoteException の代わりに javax.ejb.EJBException を
スローして、非アプリケーション例外を報告します。
- EJB 2.x および 1.1 では、インスタンスによってスローされたすべての
非アプリケーション例外により、インスタンスを実行したトランザクションが
ロールバックされ、インスタンスが廃棄されます。
- アプリケーション例外の例外処理 (ロールバックの振る舞い) を更新します。
- EJB 2.x および 1.1 では、アプリケーション例外が原因でコンテナーが
自動的にトランザクションをロールバックすることはありません。
- EJB 1.1 では、インスタンスがその EJBContext オブジェクトで
setRollbackOnly() メソッドを使用して呼び出された場合にのみ、
コンテナーはロールバックを実行します。
- ejbCreate 内のアプリケーション固有のデフォルト値の CMP 設定をすべて更新します
(EJB 1.1 コンテナーは前のアプリケーション固有のデフォルトを上書きする
ejbCreate を呼び出す前にすべてのフィールドを汎用のデフォルト値に
設定してしまうため、グローバル変数を使用しないで行います)。