この章では、Oracle TopLinkをJ2EEコンテナおよびアプリケーション・サーバーで使用するための構成方法について説明します。この章の内容は次のとおりです。
詳細は、次を参照してください。
TopLinkは、すべてのJ2EEアプリケーション・サーバーで使用できます。
表7-1は、TopLinkがEJBとCMPの統合を特別に提供するアプリケーション・サーバーのリストです。
表7-1 TopLinkによる統合サポート(アプリケーション・サーバーのタイプ別)
アプリケーション・サーバーのタイプ | TopLinkによる統合(アプリケーション・サーバーのバージョン別) | TopLinkによる統合(EJBバージョン別) |
---|---|---|
「Oracle Containers for J2EE(OC4J)」 |
|
|
|
|
|
「IBM WebSphere Application Server」 |
|
|
脚注1 OC4JおよびJava 1.5を使用している場合、TopLinkは、EJB 3.0の最終仕様で予定されている永続性機能のサブセットをサポートします。EJB 3.0の機能のサポートは、最終仕様の内容に応じて変更されることがあります。EJB 3.0サポートの詳細は、『Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド』を参照してください。
この項では、次のようなTopLinkアプリケーション・サーバーの統合に固有の概念について説明します。
TopLinkアプリケーションをJ2EEコンテナ内で実行するには、システムが次のソフトウェア要件を満たしている必要があります。
アプリケーション・サーバーまたはJ2EEコンテナ(表7-1を参照)
XMLパーサー(「XMLパーサー・プラットフォームの構成」を参照)
ローカル・データベース・システムに接続するよう構成されたJDBCドライバ(詳細はデータベース管理者にお問い合せください)
Java開発環境
Oracle JDeveloper
IBM WebSphere Studio Application Developer(WSAD)
Sun JDK 1.3.1以上。1.4.2以上の使用をお薦めします。
Sun JDK 1.3.1以上と互換性のあるその他のJava環境
コマンドラインのJVM実行可能ファイル(java.exe
やjre.exe
など)
TopLinkのランタイム環境は、XMLパーサーを使用して次を実行します。
XML構成ファイルの読取りと書込み(「project.xmlファイル」および「sessions.xmlファイル」を参照)
TopLink Workbenchプロジェクト・ファイルの読取りと書込み(「TopLink Workbenchの概要」を参照)
XMLレコードを使用したEISプロジェクトにおけるオブジェクト/XML間のトランスフォーメーションの実行(第53章「EISマッピングの概要」を参照)
XMLプロジェクトにおけるオブジェクト/XML間のトランスフォーメーションの実行(第62章「XMLマッピングの概要」を参照)
アプリケーション・サーバーは、XMLパーサーを使用して、ejb-jar.xml
および<
J2EE container
>-ejb-jar.xml
などのデプロイメント・ファイルを読み取ります(「デプロイ用TopLinkファイルの作成」を参照)。
XMLパーサーの競合を避けるため、アプリケーションをデプロイするアプリケーション・サーバーによって使用されるのと同じXMLパーサーを使用するように、TopLinkアプリケーションを構成する必要があります。
内部的には、TopLinkは、XMLパーサーにアクセスするためにoracle.toplink.platform.xml.XMLPlatform
クラスのインスタンスを使用します。
TopLinkを構成して、XMLPlatform
クラスが存在するXMLパーサーを使用できます(「XMLパーサー・プラットフォームの構成」を参照)。
独自のXMLPlatform
を作成して、TopLinkが現在サポートしていないXMLパーサーへのアクセスを提供することもできます(「XMLパーサー・プラットフォームの作成」を参照)。
TopLinkにより提供されるXMLPlatform
のインスタンスは、表7-2のとおりです。
表7-2 サポートされているXMLプラットフォーム
XMLPlatform | アクセスできるXMLパーサー | 使用先 |
---|---|---|
|
|
Oracle Containers for J2EE(OC4J) |
|
|
IBM WebSphere Application Server |
脚注1 デフォルト:
TopLinkアプリケーションを構成してXMLPlatform
クラスの特定のインスタンスを使用するには、システムのプロパティtoplink.xml.platform
を、次のようにXMLPlatform
クラスの完全修飾名に設定してください。
TopLinkに付属のパブリック・ソース・ファイルに含まれているoracle.toplink.platform.xml
クラスを使用する(「パブリック・ソースの使用」を参照)と、oracle.toplink.platform.xml.XMLPlatform
クラスの独自のインスタンスを作成して、表7-2にリストされていないXMLパーサーを指定できます。
XMLPlatform
の作成後、それを使用するようにTopLinkを構成します(「XMLパーサー・プラットフォームの構成」を参照)。
Crimson(http://xml.apache.org/crimson/
)は、Java 2 Platform, Standard Edition(J2SE)および一部のJAXP参照の実装に付属のXMLパーサーです。
CrimsonをJAXP APIとともに使用して、システム識別子が完全修飾されたURLでないXMLファイルを解析すると、XML解析は「not valid URL」例外で失敗します。
その他のXMLパーサーでは、システム識別子のURLが明確に参照されるまで、その検証が遅延されます。
この問題が発生した場合は、次のいずれかの代替方法を検討してください。
必ず、XMLファイルが完全修飾されたシステム識別子URLを使用するようにします。
別のXMLパーサー(OracleAS XML Parser for Java v2など)を使用します。
デフォルトでは、デフォルトでないjava.lang.SecurityManager
で構成されたJVMでTopLink対応アプリケーションを実行すると、TopLinkランタイム環境は、java.security.AccessController
メソッドdoPrivileged
でPrivilegedAction
を実行して、特定の内部関数を実行します。これにより、TopLinkがその大部分の共通の操作を実行するために、TopLinkに多くのパーミッションを付与する必要がなくなります。使用するオプションのTopLink機能のタイプに応じて、特定のパーミッションを付与するだけでよいのです。
詳細は、「セキュリティ・パーミッションの概要」を参照してください。
デフォルトでないSecurityManager
のないJVMでTopLink対応アプリケーションを実行する場合は、パーミッションを設定する必要はありません。
アプリケーション・サーバーから見ると、TopLinkは永続性マネージャです。TopLinkをデフォルトの永続性マネージャとして使用するように、アプリケーション・サーバーを構成できます。
JARファイルに含まれるコンテナ管理の永続性を備えたすべてのエンティティBeanに対して、ただ1つの永続性マネージャのみを使用できます。
TopLinkは、TopLinkを永続性マネージャとして使用するように既存のJ2EEアプリケーションを移行するための自動サポートを提供します。詳細は、次を参照してください。
大部分のアプリケーション・サーバーは、TopLinkアプリケーションで利用できるクラスタリング・サービスを備えています。アプリケーション・サーバーのクラスタでTopLinkを使用するには、次の手順を実行します。
各アプリケーション・サーバーにあるtoplink.jar
ファイルを、TopLinkアプリケーションをデプロイするためのクラスタにインストールして、このファイルをクラスパスに含めます。
アプリケーションに適したTopLinkキャッシュの一貫性オプションを構成します。
詳細は、第87章「キャッシュの概要」を参照してください。
CMPアプリケーションをデプロイするには、「cache-synchronizationのプロパティの構成」も参照してください。
各アプリケーション・サーバーでクラスタリングを構成します。
詳細は、アプリケーション・サーバーのドキュメントを参照してください。
TopLinkアプリケーションをOC4Jと統合するには、次のことを考慮する必要があります。
これらのOC4J固有のオプションの構成を考慮するのみでなく、「アプリケーション・サーバーの統合の概念」に記載の、アプリケーション・サーバーの統合に関する一般的な問題も考慮する必要があります。
OC4JにおけるTopLink CMP統合を可能にするには、次の手順に従います(この手順では、TopLinkがインストール済であることを前提にしています)。
必要であれば、TopLink移行ツールを使用してCMPアプリケーションを移行してください(「OC4J TopLinkの永続性へのOC4J Orionの永続性の移行」を参照)。
UnitOfWork
変更ポリシーの選択を評価します(「作業ユニットおよび変更ポリシー」を参照)。
必要なデプロイメント・ディスクリプタ・ファイルがすべて適切な位置にあることを確認します(「デプロイ用TopLinkファイルの作成」および「TopLinkアプリケーションのパッケージ化」を参照)。
必要に応じて、TopLinkが提供するEJBカスタマイズ・オプションを検討します(「各種EJBオプションの構成」を参照)。
10gリリース3(10.1.3.1.0)では、OC4Jは、TopLinkをそのデフォルトの永続性マネージャとして使用するように構成されて出荷されます。
OC4Jをこのリリースにアップグレードする場合、元のorion-ejb-jar.xml
ファイルからtoplink-ejb-jar.xml
ファイルに永続性の構成を移行する必要があります。
このリリースでは、Oracleは、リリース2(9.0.4)以降のOC4Jのインストールに対するこの移行の自動化に使用できるTopLink移行ツールを提供します。
TopLink移行ツールを使用した後で、「移行後の変更」で説明されているいくつかの追加変更が必要となる場合があります。
移行中に問題が発生した場合は、「移行のトラブルシューティング」を参照してください。
この項では、TopLink移行ツールの使用方法について説明します。この項の内容は次のとおりです。
TopLink移行ツールを使用する前に、この項を参照し、TopLink移行ツールの動作方法を理解して、移行させる、または移行させないOC4J永続性マネージャのメタデータを決定してください。
入力および出力
TopLink移行ツールは、次のファイルを入力としてとります。
ejb-jar.xml
orion-ejb-jar.xml
TopLink移行ツールは、OC4J固有の永続性構成をできるだけ多く新しいtoplink-ejb-jar.xml
ファイルに移行し、指定したターゲット・ディレクトリに次の新しいファイルを作成します。
orion-ejb-jar.xml
toplink-ejb-jar.xml
TopLink Workbenchプロジェクト・ファイルTLCmpProject.mwp
ejb-jar.xml
およびorion-ejb-jar.xml
ファイルは、EAR内またはJAR内のものであっても、または単にスタンドアロンであるXMLファイルであってもかまいません。EARまたはJARファイルではなく、スタンドアロンのXMLファイルから移行する場合、ドメイン・クラスがクラスパスに含まれていてアクセス可能であることを確認してください。
TopLink移行ツールは、指定したターゲット・ディレクトリに新しいorion-ejb-jar.xml
およびtoplink-ejb-jar.xml
ファイルを、読み取る元のファイルと同じ形式で作成します。たとえば、EARファイルを入力として指定すると、TopLink移行ツールは、新しいorion-ejb-jar.xml
と新しいtoplink-ejb-jar.xml
ファイルの2つを含む新しいEARファイルをステージングして作成します。この2つ以外は元のEARファイルと同じです。
TopLink Workbenchプロジェクト・ファイルは、常に独立したファイルとして作成されます。
注意: TopLink移行ツールを使用する前に、orion-ejb-jar.xml ファイルのバックアップ・コピーを作成しておくことをお薦めします。 |
移行
TopLink移行ツールを実行すると、すべてのエラーおよび診断出力が、出力ディレクトリにあるoc4j_migration.log
という名前のログ・ファイルに記録されます。TopLink WorkbenchからTopLink移行ツールを使用する場合は、ユーザーのホーム・ディレクトリ(例: C:\Documents and Settings\<
user-name
>
)にあるTopLink Workbenchログ・ファイルoracle.toplink.workbench.log
も参照してください。
TopLink移行ツールは、入力ファイルからのディスクリプタ、マッピングおよび問合せ情報を次のように処理します。
エンティティBeanごとにTopLinkディスクリプタ・オブジェクトを作成し、マップ対象の表、主キーおよびCMPとCMRのフィールドのマッピングなど、ネイティブの永続性メタデータを移行します。
エンティティBeanのCMPおよびCMRのフィールドごとにTopLinkマッピング・オブジェクトを作成し、外部キー参照などネイティブの永続性メタデータを移行します。
エンティティBeanのファインダ
またはejbSelect
ごとにTopLink問合せオブジェクトを作成し、カスタマイズした問合せ文などの永続性メタデータを移行します。
表7-3は、orion-ejb-jar.xml
ファイルからのOC4J <entity-deployment>
の属性とサブ要素をリストしたもので、TopLink移行ツールが属性とサブ要素ごとに次の動作を行うかどうかを示しています。
新しいorion-ejb-jar.xml
ファイルにそれを保持
新しいtoplink-ejb-jar.xml
ファイルにそれを移行
表7-3では、要素はかぎカッコで識別されています。属性の設定値には移行される値と破棄される値(例: exclusive-write-access
)があることに注意してください。
表7-3 OC4J orion-ejb-jar.xml機能の移行
orion-ejb-jar.xml機能 | 新しいorion-ejb-jar.xmlで保持 | 新しいtoplink-ejb-jar.xmlへ移行 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
1より大きい任意の値 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
脚注1 force-update
は移行後に有効化できます。詳細は、「EJB情報によるディスクリプタの構成」を参照してください。
脚注2 TopLinkは、実行時に外部結合
と内部結合
の両方をサポートします。これらのオプションを使用するようにEJBディスクリプタを手動で構成できます。詳細は、「結合読取りとオブジェクト・レベルの読取り問合せ」を参照してください。
脚注3 persistence-type
属性表の列サイズは、存在していても破棄されます。詳細は、「persistence-type表の列サイズの復元」を参照してください。
表7-4は、OC4J機能および、TopLink移行ツールで構成されたTopLinkの同等機能のリストです。
表7-4 OC4JおよびTopLinkの機能比較
機能 | orion-ejb-jar.xml | toplink-ejb-jar.xml |
---|---|---|
CMPフィールド・マッピング |
ダイレクト。 シリアライズ・オブジェクト。 |
フィールドへ直接。 シリアライズ・オブジェクト。 |
CMRフィールド・マッピング |
1対1。 1対多。 多対多。 |
1対1。 1対多。 多対多。 |
部分問合せ |
完全なSQL文。 |
SQLコール。 |
ファインダ |
Oracle固有構文。 |
SQLコールまたはEJB QL。 |
遅延ロード(フェッチ・グループ) |
主キーおよびCMPフィールドの遅延ロード。 |
サポートされていません。 そのかわり、適切な場合、TopLinkの同等機能を手動で構成できます(「フェッチ・グループ」を参照)。 |
SQL文のキャッシュ |
静的SQLのキャッシュ。 |
Beanレベルではサポートされていません。 TopLinkは、セッションおよび問合せレベルでのパラメータ使用のSQLおよび文のキャッシュをサポートします(第93章「TopLink問合せの概要」を参照)。 |
ロック |
オプティミスティック: データベース・レベル。 ペシミスティック: Beanインスタンス・レベル。 |
オプティミスティック: オブジェクト・レベル。 ペシミスティック: データベース・レベルでの問合せロック。 |
読取り専用 |
スローされる |
スローされる |
妥当性のタイムアウト |
リロード前に読取り専用Beanの妥当性がタイムアウト。 |
キャッシュがタイムアウト。 |
分離レベル |
コミットされます。 シリアライズ可能。 |
コミットされます。 シリアライズ可能。 コミットされません。 反復不可能。 |
コミットまで更新を遅延 |
サポートされています。 |
サポートされています(「EJB情報によるディスクリプタの構成」を参照)。 |
Beanへの排他的書込みアクセス |
デフォルト値は |
デフォルト値は |
存在チェックなしの挿入 |
サポートされています。 |
サポートされています。 |
変更済フィールドのみ更新 |
サポートされています。 |
サポートされています(「属性変更追跡ポリシー」を参照)。 |
強制的更新 |
永続性フィールドが変更されていなくてもBeanのライフ・サイクル用 |
サポートされています。 |
TopLink移行ツールを使用して、OC4Jアプリケーションからマップした新しいTopLink Workbenchプロジェクトを作成するには、次の手順に従います。
TopLink Workbenchから、「ファイル」→「移行」→「OC4J 9.0.xから」の順に選択します。
図7-1 「OC4Jの移行からMapping Workbenchプロジェクトを作成」ダイアログ・ボックス
移行後の変更へと続きます。
次の情報を参照し、「OC4Jの移行からMapping Workbenchプロジェクトを作成」ダイアログ・ボックスの各フィールドにデータを入力します。
フィールド | 説明 |
---|---|
作成元 | 次のフィールドを使用して、既存のOC4Jファイルの場所を指定します。これらのファイルは、JARまたはEARの一部、あるいは単独ファイルとして含めることができます。 |
個々のファイル | 「入力ディレクトリ」にある個々のejb-jar.xml およびorion-ejb-jar.xml ファイルからの変換を選択します。「参照」をクリックして、変換元となるXMLファイルを含むディレクトリの場所を選択します。 |
アーカイブ・ファイル | 特定のアーカイブ・ファイルを使用するように選択します。「参照」をクリックし、変換元となるアーカイブ・ファイルを選択します。 |
作成先 | 次のフィールドを使用して、移行されたファイルが書き込まれる場所を指定します。 |
出力ディレクトリ | 「参照」をクリックして、新しいXMLファイルおよびTopLink Workbenchプロジェクトを作成するディレクトリの場所を選択します。 |
クラスパス | 移行元として個々のファイルを選択する場合、ドメイン・クラスがクラスパスに含まれていてアクセス可能であることを確認してください。 |
移行ログの表示 | 移行ログ出力を別ウィンドウに表示するように選択します。 |
コマンドラインからTopLink移行ツールを使用するには、次の手順を実行する必要があります。
クラスパスに次が含まれているかを確認します。
<
TOPLINK_HOME
>/jlib/antlr.jar
<
TOPLINK_HOME
>/jlib/ejb.jar
<
TOPLINK_HOME
>/jlib/toplink.jar
<
TOPLINK_HOME
>/jlib/cmpmigrator.jar
<
TOPLINK_HOME
>/jlib/toplinkmw.jar
<
TOPLINK_HOME
>/jlib/tlmwcore.jar
<
TOPLINK_HOME
>/config
<
ORACLE_HOME
>/lib/xmlparserv2.jar
EARまたはJARファイルではなく、プレーンのXMLファイルからの移行を意図する場合、ドメイン・クラスがアクセス可能で、クラスパスに含まれていることを確認してください。
元のXMLファイルのバックアップ・コピーを作成します。
表7-5にリストされた適切な引数の使用方法を示す例7-2に倣い、TopLink移行ツールを実行してください。
TopLink移行ツールの使用方法の詳細は、次のとおりです。
java -Dtoplink.ejbjar.schemavalidation=<true|false> -Dtoplink.migrationtool.generateWorkbenchProject=<true|false> -Dhttp.proxyHost=<proxyHost> -Dhttp.proxyPort=<proxyPort> oracle.toplink.tools.migration.TopLinkCMPMigrator -s<nativePM> -i<inputDir> -a<ear>|<jar> -x -o<outputDir> -v
入力ファイルを指定するには、-a
または-x
のいずれかを指定する必要があります。
トラブルシューティング情報は、「移行のトラブルシューティング」を参照してください。
例7-2 コマンドラインからのTopLink移行ツールの使用
java -Dhttp.proxyHost=www-proxy.us.oracle.com -Dhttp.proxyPort=80 oracle.toplink.tools.migration.TopLinkCMPMigrator -sOc4j-native -iC:/mywork/in -aEmployee.ear -oC:/mywork/out -v
表7-5 TopLink移行ツールの引数
引数 | 説明 |
---|---|
|
|
|
TopLink Workbenchプロジェクトの生成を使用可能にするために使用されるシステム・プロパティ。デフォルト値は |
|
ローカルHTTPプロキシ・ホストのアドレス。 |
|
ローカルHTTPプロキシ・ホストがHTTPリクエストを受信するポート番号。 |
|
移行元のネイティブ永続性マネージャの名前。 OC4Jには、名前 |
|
移行元となるOC4Jの |
|
移行元となるOC4Jの |
|
移行元となる入力ディレクトリのOC4Jファイルが、プレーンXMLファイルで、アーカイブ・ファイル中にはないことをTopLink移行ツールに指示します。 このオプションを使用する場合、ドメイン・クラスがクラスパスに含まれていてアクセス可能であることを確認してください。 |
|
TopLink移行ツールがファイルおよびサブディレクトリを作成できるパーミッションがこのディレクトリに設定されていことを確認します。 |
|
冗長モード。エラーおよび診断情報のログをコンソールに記録するようにTopLink移行ツールに指示します。 |
orion-ejb-jar.xml
ファイルの永続性構成をtoplink-ejb-jar.xml
ファイルに移行した後、次のような移行後の変更について検討します。
persistence-type表の列サイズの復元
orion-ejb-jar.xml
ファイルにおいて、例7-3に示されているように、タイプと列サイズの両方を提供するpersistence-type
属性を使用して、マッピングcmp-field-mapping
を指定できます。
例7-3 persistence-typeで列サイズを指定したcmp-field-mapping
<cmp-field-mapping ejb-reference-home="MyOtherEntity" name="myField" persistence-name="myField" persistence-type="VARCHAR2(30)">
TopLink移行ツールは、永続性タイプを移行しますが列サイズは移行しません。TopLinkプロジェクトは、通常、このサイズ情報を含まないためです。
persistence-type
の列サイズを復元するには、次のようにします。
「コマンドラインからのTopLink移行ツールの使用」の説明に従って、移行を実行します。
生成したTopLink Workbenchプロジェクト・ファイルTLCmpProject.mwp
を開きます。
データベースにログインします(「データベースへのログインおよびデータベースからのログアウト」を参照)。
すべての列サイズが取得されます。
不明な主キー・クラス・マッピング順序表の更新
不明の主キー・クラス(「不明な主キー・クラスのサポート」を参照)の使用は、TopLinkでサポートされているため、TopLink移行ツールでもサポートされています。
OC4Jは、ネイティブのランタイム・キー・ジェネレータを使用して、自動識別キー・フィールドに対して一意のキーを生成します。これとは対照的に、TopLinkは順序付け表を使用します。
OC4Jの永続性構成に不明の主キー・クラスの使用が含まれている場合、TopLink移行ツールは、不明の主キー・クラスを使用するために順序付け表を作成します。
移行後、アプリケーションをデプロイする前に、次を行う必要があります。
移行前に生成済であった最大のキー値を確認します。
TopLink移行ツールが生成した順序付け表のカウンタを、移行前に生成済であった最大のキー値より1だけ大きな数に、手動で更新します。
次のように、プロジェクトのコンポーネントをカスタマイズできます。
OC4JにデプロイされているEJB 3.0永続アプリケーション用にTopLink永続性マネージャをカスタマイズするには、toplink-ejb-jar.xml
という名前のTopLinkプロジェクトXMLファイルと、ejb3-toplink-sessions.xml
という名前のTopLinkセッションXMLファイルを作成し、エンティティを含むEJB-JARのMETA-INF
ディレクトリにそれらをパッケージ化します。詳細は、『Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド』のEJB 3.0アプリケーションでのTopLink永続性マネージャのカスタマイズに関する項を参照してください。
OC4JにデプロイされたEJB 2.1 CMPアプリケーション用にTopLink永続性マネージャをカスタマイズするには、orion-ejb-jar.xml
ファイルのプロパティを構成します。これらのプロパティは、TopLinkランタイムがCMPプロジェクトのために内部で使用するTopLinkセッションを構成するために使用されます。詳細は、「persistence-managerのエントリの構成」を参照してください。
この項では、移行の際に発生する可能性のある問題の解決策について説明します。この項の内容は次のとおりです。
メッセージのロギング
TopLink移行ツールを実行すると、すべてのエラーおよび診断出力が、出力ディレクトリにあるoc4j_migration.log
という名前のログ・ファイルに記録されます。TopLink WorkbenchからTopLink移行ツールを使用する場合は、ユーザーのホーム・ディレクトリ(例: C:\Documents and Settings\<
user-name
>
)にあるTopLink Workbenchログ・ファイルoracle.toplink.workbench.log
も参照してください。
これらの警告に加え、TopLink移行ツールは、移行の完了を妨げる問題が発生した場合、エラーを記録します。表7-6には、これらの問題が記載され、その解決策が提案されています。
表7-6 TopLink移行ツールのエラー・メッセージ
エラー・メッセージ | 説明 |
---|---|
|
|
ネイティブの永続性メタデータが定義された |
|
|
|
予期しないリレーションの多重度
TopLink移行ツールは、OC4J ejb-jar.xml
ファイルからではなく、orion-ejb-jar.xml
ファイルからリレーションシップの多重度を取得します。
したがって、OC4J ejb-jar.xml
ファイルがリレーションシップを1対多として定義しても、orion-ejb-jar.xml
ファイルが同じリレーションシップを多対多として定義している場合、TopLink移行ツールはこれらのリレーションシップを多対多として移行することになります。
JTA統合を必要とするアプリケーションの場合、セッションでサーバー・プラットフォームを構成する際に外部トランザクション・コントローラを指定します(「サーバー・プラットフォームの構成」を参照)。
詳細は、「作業ユニットと外部トランザクション・サービスの統合」を参照してください。
TopLinkアプリケーションをBEA WebLogic Serverと統合するには、次のことを考慮する必要があります。
これらのBEA WebLogic Server固有のオプションの構成を考慮するのみでなく、「アプリケーション・サーバーの統合の概念」に記載の、アプリケーション・サーバーの統合に関する一般的な問題も考慮する必要があります。
TopLinkでのBEA WebLogic Serverのサポートを構成するには、次の手順に従います。
次のJARファイルをアプリケーション・サーバーのクラスパスに追加します。
<ORACLE_HOME>\toplink\jlib\toplink.jar
TopLinkアプリケーションがXMLパーサー・プラットフォームを定義しているかを確認します(「XMLパーサー・プラットフォームの構成」を参照)。
BEA WebLogic ServerでTopLink CMP統合を有効にするには、次の手順に従います(この手順では、TopLinkがインストール済であると仮定しています)。
persistenceディレクトリを見つけます。これは、次のようにBEA WebLogic Server実行可能ファイルのインストール・ドライブおよびルート・ディレクトリの上にあります。
バージョン | persistenceディレクトリ(<WebLogic_INSTALL_DIR>の上) |
---|---|
6.1(Service Pack 4) | \wlserver6.1\lib\persistence |
7.0(Service Pack 2) | \weblogic700\server\lib\persistence |
8.1 | \weblogic81\server\lib\persistence |
次のいずれかを実行します。
テキスト・エディタを使用して、BEA WebLogic Serverの永続性ディレクトリにあるpersistence.install
ファイルを開き、TopLink_CMP_Descriptor.xml
ファイルを参照する行を新たに追加します。
WebLogicのpersistence.install
ファイルを、<ORACLE_HOME>
\toplink\config
ディレクトリにあるTopLinkのpersistence.install
ファイルに置き換えます。
次のJARファイルをアプリケーション・サーバーのクラスパスに追加します。
<ORACLE_HOME>\toplink\jlib\toplink.jar <ORACLE_HOME>\lib\xmlparserv2.jar
必要であれば、TopLink移行ツールを使用してCMPアプリケーションを移行してください(「BEA WebLogicの永続性のOC4J TopLinkの永続性への移行」)。
必要なデプロイメント・ディスクリプタ・ファイルがすべて適切な位置にあることを確認します(「デプロイ用TopLinkファイルの作成」および「TopLinkアプリケーションのパッケージ化」を参照)。
必要に応じて、TopLinkが提供するEJBカスタマイズ・オプション(「各種EJBオプションの構成」)を検討します。
コンテナを起動した後、TopLinkアプリケーションを起動します。サポートされている場合は、起動スクリプトを使用してサーバーを起動します。独自の起動スクリプトを作成する場合、手順2にリストされているファイルを必ずクラスパスに含めてください。
デフォルトのBEA WebLogic永続性マネージャを使用するBEA WebLogicアプリケーションを、永続性マネージャとしてTopLinkを使用するOracle Containers for J2EE(OC4J)に移行できます。このリリースでは、Oracleは、この移行の自動化に使用できるTopLink移行ツールを提供します。
この項の内容は次のとおりです。
移行中に問題が発生した場合は、「移行のトラブルシューティング」を参照してください。
TopLink移行ツールを使用した後で、「移行後の変更」で説明されているいくつかの追加変更が必要となる場合があります。
TopLink移行ツールを使用する前に、この項を参照し、TopLink移行ツールの動作方法を理解して、移行させる、または移行させないBEA WebLogic永続性マネージャのメタデータを決定してください。
入力および出力
TopLink移行ツールは、次のファイルを入力としてとります。
weblogic-ejb-jar.xml
weblogic-cmp-rdbms-jar.xml
TopLink移行ツールは、BEA WebLogic固有の永続性構成をできるだけ多く新しいtoplink-ejb-jar.xml
ファイルに移行し、指定したターゲット・ディレクトリに次の新しいファイルを作成します。
orion-ejb-jar.xml
toplink-ejb-jar.xml
TopLink Workbenchプロジェクト・ファイルTLCmpProject.mwp
入力のBEA WebLogicファイルは、EAR内またはJAR内のものであっても、または単にスタンドアロンであるXMLファイルであってもかまいません。EARまたはJARファイルではなく、スタンドアロンのXMLファイルから移行する場合、ドメイン・クラスがクラスパスに含まれていてアクセス可能であることを確認してください。
TopLink移行ツールは、指定したターゲット・ディレクトリに新しいorion-ejb-jar.xml
およびtoplink-ejb-jar.xml
ファイルを、読み取る元のファイルと同じ形式で作成します。たとえば、EARファイルを入力として指定すると、TopLink移行ツールは、新しいorion-ejb-jar.xml
と新しいtoplink-ejb-jar.xml
ファイルの2つを含む新しいEARファイルをステージングして作成します。この2つ以外は元のEARファイルと同じです。
TopLink Workbenchプロジェクト・ファイルは、常に独立したファイルとして作成されます。
注意: TopLink移行ツールを使用する前に、weblogic-ejb-jar.xml 、weblogic-cmp-rdbms-jar.xml およびtoplink-ejb-jar.xml ファイルのバックアップ・コピーを作成しておくことをお薦めします。 |
weblogic-ejb-jar.xmlファイルの構成に関する詳細は、「weblogic-ejb-jar.xmlファイルのBEA WebLogic Server用の構成」を参照してください。
移行
TopLink移行ツールを実行すると、すべてのエラーおよび診断出力が、出力ディレクトリにあるwls_migration.log
という名前のログ・ファイルに記録されます。TopLink WorkbenchからTopLink移行ツールを使用する場合は、ユーザーのホーム・ディレクトリ(例: C:\Documents and Settings\<
user-name
>
)にあるTopLink Workbenchログ・ファイルoracle.toplink.workbench.log
も参照してください。
TopLink移行ツールは、入力ファイルからのディスクリプタ、マッピングおよび問合せ情報を処理します。次のように処理します。
エンティティBeanごとにTopLinkディスクリプタ・オブジェクトを作成し、マップ対象の表、主キーおよびCMPとCMRのフィールドのマッピングなど、ネイティブの永続性メタデータを移行します。
エンティティBeanのCMPおよびCMRのフィールドごとにTopLinkマッピング・オブジェクトを作成し、外部キー参照などネイティブの永続性メタデータを移行します。
エンティティBeanのファインダ
またはejbSelect
ごとにTopLink問合せオブジェクトを作成し、カスタマイズした問合せ文などの永続性メタデータを移行します。
表7-7は、BEA WebLogic機能および、TopLink移行ツールで構成されたTopLinkの同等機能のリストです。
表7-7 BEA WebLogicおよびTopLinkの機能比較
機能 | weblogic-cmp-rdbms-jar.xml | toplink-ejb-jar.xml |
---|---|---|
ダイレクト・マッピング |
フィールド・マッピング。 表マッピング。 |
フィールドへ直接。 |
リレーショナル・マッピング |
WebLogic-RDBMSリレーション。 |
1対1。 1対多。 多対多。 |
複数の表 |
表マッピング。 |
サポートされています。 |
読取り専用 |
読取り専用: 同時実行性の計画。 |
サポートされています。 |
ペシミスティック・ロック |
Bean単位でのペシミスティックな同時実行性の強制。 |
サポートされています。 |
ラージ・オブジェクト(LOB)のサポート |
現在のフィールドを次のいずれかにマップします。
|
Oracle BLOB用にのみサポートされています。 |
オプティミスティック・ロック |
オプティミスティック: 同時実行性の計画。 列の検査: オプティミスティックな同時実行性の計画。 |
バージョン。 タイムスタンプ。 |
カスケード削除 |
データベースのカスケード削除。 |
私有されます。 |
データベースの依存性をソート |
データベースの操作を順序付けます。 |
作業ユニット。 |
遅延ロード(フェッチ・グループ) |
フィールド・グループ。 |
サポートされていません。 そのかわり、適切な場合、TopLinkの同等機能を手動で構成できます(「フェッチ・グループ」を参照)。 |
TopLink移行ツールを使用して、BEA WebLogicアプリケーションからマップした新しいTopLink Workbenchプロジェクトを作成するには、次の手順に従います。
TopLink Workbenchから、「ファイル」→「移行」→「Weblogic Serverから」の順に選択します。
図7-2 「WLSの移行からMapping Workbenchプロジェクトを作成」ダイアログ・ボックス
移行後の変更へと続きます。
次の情報を参照し、「WLSの移行からMapping Workbenchプロジェクトを作成」ダイアログ・ボックスの各フィールドにデータを入力します。
フィールド | 説明 |
---|---|
作成元 | 次のフィールドを使用して、既存のBEA WebLogicファイルの場所を指定します。これらのファイルは、JARまたはEARの一部、あるいは単独ファイルとして含めることができます。 |
個々のファイル | 「入力ディレクトリ」にある単独のweblogic-ejb-jar.xml およびweblogic-cmp-rdbms-jar.xml ファイルからの変換を選択します。「参照」をクリックして、変換元となるXMLファイルを含むディレクトリの場所を選択します。 |
アーカイブ・ファイル | 特定のアーカイブ・ファイルを使用するように選択します。「参照」をクリックし、変換元となるアーカイブ・ファイルを選択します。 |
作成先 | 次のフィールドを使用して、移行されたファイルが書き込まれる場所を指定します。 |
出力ディレクトリ | 「参照」をクリックして、新しいXMLファイルおよびTopLink Workbenchプロジェクトを作成するディレクトリの場所を選択します。 |
クラスパス | 移行元として個々のファイルを選択する場合、ドメイン・クラスがクラスパスに含まれていてアクセス可能であることを確認してください。 |
移行ログの表示 | 移行ログ出力を別ウィンドウに表示するように選択します。 |
コマンドラインからTopLink移行ツールを使用するには、次の手順を実行する必要があります。
クラスパスに次が含まれているかを確認します。
<
TOPLINK_HOME
>/jlib/antlr.jar
<
TOPLINK_HOME
>/jlib/ejb.jar
<
TOPLINK_HOME
>/jlib/toplink.jar
<
TOPLINK_HOME
>/jlib/cmpmigrator.jar
<
TOPLINK_HOME
>/jlib/toplinkmw.jar
<
TOPLINK_HOME
>/jlib/tlmwcore.jar
<
TOPLINK_HOME
>/config
<
ORACLE_HOME
>/lib/xmlparserv2.jar
EARまたはJARファイルではなく、プレーンのXMLファイルからの移行を意図する場合、ドメイン・クラスがアクセス可能で、クラスパスに含まれていることを確認してください。
元のXMLファイルのバックアップ・コピーを作成します。
表7-8にリストされた適切な引数の使用方法を示す例7-4に倣い、TopLink移行ツールを実行してください。
TopLink移行ツールの使用方法の詳細は、次のとおりです。
java -Dtoplink.ejbjar.schemavalidation=<true|false> -Dtoplink.migrationtool.generateWorkbenchProject=<true|false> -Dhttp.proxyHost=<proxyHost> -Dhttp.proxyPort=<proxyPort> oracle.toplink.tools.migration.TopLinkCMPMigrator -s<nativePM> -i<inputDir> -a<ear>|<jar> -x -o<outputDir> -v
入力ファイルを指定するには、-a
または-x
のいずれかを指定する必要があります。
トラブルシューティング情報は、「移行のトラブルシューティング」を参照してください。
例7-4 コマンドラインからのTopLink移行ツールの使用
java -Dhttp.proxyHost=www-proxy.us.oracle.com -Dhttp.proxyPort=80 oracle.toplink.tools.migration.TopLinkCMPMigrator -sWebLogic -iC:/mywork/in -aEmployee.ear -oC:/mywork/out -v
表7-8 TopLink移行ツールの引数
引数 | 説明 |
---|---|
|
|
|
TopLink Workbenchプロジェクトの生成を使用可能にするために使用されるシステム・プロパティ。デフォルト値は |
|
ローカルHTTPプロキシ・ホストのアドレス。 |
|
ローカルHTTPプロキシ・ホストがHTTPリクエストを受信するポート番号。 |
|
移行元のネイティブ永続性マネージャの名前。 BEA WebLogicでは、名前 |
|
移行元となるBEA WebLogicの |
|
移行元となるBEA WebLogicの |
|
移行元となる入力ディレクトリのBEA WebLogicファイルが、プレーンXMLファイルで、アーカイブ・ファイル中にはないことをTopLink移行ツールに指示します。 このオプションを使用する場合、ドメイン・クラスがクラスパスに含まれていてアクセス可能であることを確認してください。 |
|
TopLink移行ツールが新しい TopLink移行ツールがファイルおよびサブディレクトリを作成できるパーミッションがこのディレクトリに設定されていことを確認します。 |
|
冗長モード。エラーおよび診断情報のログをコンソールに記録するようにTopLink移行ツールに指示します。 |
JTA統合を必要とするアプリケーションの場合、セッションでサーバー・プラットフォームを構成する際に外部トランザクション・コントローラを指定します(「サーバー・プラットフォームの構成」を参照)。
詳細は、「作業ユニットと外部トランザクション・サービスの統合」を参照してください。
セキュリティ・マネージャを使用する場合、(通常はBEA WebLogicのインストール・ディレクトリにある)weblogic.policy
ファイルで、次のようにセキュリティ・ポリシー・ファイルを指定します。
-Djava.security.manager -Djava.security.policy==c:\weblogic\weblogic.policy
BEA WebLogicのインストール手順は、サンプル・セキュリティ・ポリシー・ファイルを含んでいます。weblogic.policy
ファイルを編集し、TopLinkでリフレクションを使用するためのパーミッションを付与する必要があります。
次の例ではTopLinkに必要なパーミッションのみを示していますが、ほとんどのweblogic.policy
ファイルには、この例に示したもの以外のパーミッションも含まれています。
例7-5 BEA weblogic.policyファイルのgrantセクションのサブセット
grant { // "enableSubstitution" required to run the WebLogic console permission java.io.SerializablePermission "enableSubstitution"; // "modifyThreadGroup" required to run the WebLogic Server permission java.lang.RuntimePermission "modifyThreadGroup"; // grant permission for TopLink to use reflection permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; };
TopLinkアプリケーションをIBM WebSphere Application Serverと統合するには、次のことを考慮する必要があります。
これらのIBM WebSphereアプリケーション・サーバー固有のオプションの構成を考慮するのみでなく、「アプリケーション・サーバーの統合の概念」に記載の、アプリケーション・サーバーの統合に関する一般的な問題も考慮する必要があります。
使用するIBM WebSphereアプリケーション・サーバーのクラスパスは、そのサーバーのバージョンに応じて異なる手順で構成します。
TopLinkは、IBM WebSphere Application Server 4.0のCMPサポートを提供します。このバージョンのクラスパスを構成するには、次の手順を実行します。
次のJARファイルをアプリケーション・サーバーのクラスパス・ディレクトリに追加します(表7-9を参照)。
<ORACLE_HOME>\toplink\jlib\toplink.jar
TopLinkアプリケーションがXMLパーサー・プラットフォームを定義しているかを確認します(「XMLパーサー・プラットフォームの構成」を参照)。
表7-9は、IBM WebSphere Application Server 4.0のIBMコンテナ・コンポーネントのデフォルトのアプリケーション・クラスパス・ディレクトリをまとめたものです。
TopLinkは、JTAおよび、IBM WebSphere Application Server 5.0以上の統合の一般的サポートを提供します。このバージョンのクラスパスを構成するには、次の手順を実行します。
次のToplink JARファイルを含む共有ライブラリを作成し、作成した共有ライブラリをアプリケーションに関連付けます。
<ORACLE_HOME>\toplink\jlib\toplink.jar
TopLinkアプリケーションがXMLパーサー・プラットフォームを定義しているかを確認します(「XMLパーサー・プラットフォームの構成」を参照)。
IBM WebSphere Application ServerでTopLink CMP統合を有効にするには、次の手順に従います(この手順では、TopLinkがインストール済であると仮定しています)。
必要なデプロイメント・ディスクリプタ・ファイルがすべて適切な位置にあることを確認します(「デプロイ用TopLinkファイルの作成」および「TopLinkアプリケーションのパッケージ化」を参照)。
必要に応じて、TopLinkが提供するEJBカスタマイズ・オプション(「各種EJBオプションの構成」)を検討します。
JTA統合を必要とするアプリケーションの場合、セッションでサーバー・プラットフォームを構成する際に外部トランザクション・コントローラを指定します(「サーバー・プラットフォームの構成」を参照)。
詳細は、「作業ユニットと外部トランザクション・サービスの統合」を参照してください。
TopLinkアプリケーションとアプリケーション・サーバーのクラスタとの統合に関する詳細は、「クラスタリング」を参照してください。
デフォルトでは、デフォルトではないjava.lang.SecurityManager
で構成されたJVMでTopLink対応アプリケーションを実行すると、TopLinkランタイムは、java.security.AccessController
メソッドdoPrivileged
でPrivilegedAction
を実行して、特定の内部関数を実行します。これにより、TopLinkがその大部分の共通の操作を実行するために、TopLinkに多くのパーミッションを付与する必要がなくなります。使用するTopLink機能のオプションのタイプに応じて、特定のパーミッションを付与するだけでよいのです(「TopLink機能で必要なパーミッション」を参照)。
doPrivileged
メソッドを使用するとセキュリティが強化されますが、その一方で、全体的なパフォーマンスに重大な影響を及ぼします。このメソッドを使用しないようにするため、たとえデフォルトではないSecurityManager
が存在していても、doPrivileged
メソッドの使用を無効にするようにTopLinkを構成できます(「doPrivileged操作の無効化」を参照)。この場合、必要なすべてのパーミッションをTopLinkに付与する必要があります(「TopLink機能で必要なパーミッション」および「doPrivilegedの無効化時に必要なパーミッション」を参照)。
注意: doPriviledged メソッドの使用を有効にするとTopLinkアプリケーションのセキュリティは強化されますが、その一方で、システムが意図しない方法でアプリケーション・コードによりソース・コードをコールすることができない、というように保証されることがなくなります。doPriviledged メソッドの使用は、アプリケーションの全体的セキュリティ方針の状況を考慮する必要があります。詳細は、http://java.sun.com/security/index.jsp を参照してください。 |
デフォルトではないSecurityManager
のないJVMでTopLink対応アプリケーションを実行する場合は、パーミッションを付与する必要はありません。
デフォルトではないjava.lang.SecurityManager
で構成されたJVMでTopLink対応アプリケーションを実行し、doPrivileged
操作を有効にする際、アプリケーションが次のいずれかを必要とする場合は、必要に応じて追加パーミッションを付与します。
デフォルトでは、TopLink対応アプリケーションは、デフォルトの<
JAVA_HOME
>/lib/security/java.policy
ファイルで付与されたシステム・プロパティへのアクセスを必要とします。アプリケーションが他のプラットフォーム固有のプロパティか、環境またはカスタムのプロパティへのアクセスを必要とする場合、例7-6で示されているようなPropertyPermission
パーミッションをさらに付与します。
大部分のTopLink対応アプリケーションは、project.xml
およびsessions.xml
ファイルを直接読み取ります。例7-7で示されているような特定のファイルまたはファイルの場所にパーミッションを付与します。この例では、project.xml
およびsessions.xml
ファイルの両方が同じディレクトリ(アプリケーション固有のシステム・プロパティdeployment.xml.home
で既定)に置かれていることを前提としています。あるいは、ファイルごとに独立したFilePermission
を指定することもできます。
例7-7 デプロイXMLファイルのロード用パーミッション
permission java.io.FilePermission "${deployment.xml.home}/*.xml", "read";
J2EEアプリケーションにおけるFilePermission
設定の詳細は、「J2EEアプリケーションのデプロイ」を参照してください。
アプリケーションがキャッシュ・コーディネーション(「キャッシュ・コーディネーションの概要」を参照)を使用する場合、例7-8で示されているように、コーディネートされたキャッシュにより使用される特定のソケットのaccept
、connect
、listen
およびresolve
のパーミッションを付与します。この例では、コーディネートされたキャッシュのマルチキャスト・ポートが1024であることを前提としています(「マルチキャスト・ポートの構成」を参照)。
TopLink対応アプリケーションがソケットを使用してデータ・ソースにアクセスする場合、例7-9で示されているように、そのソケットのconnect
およびresolve
パーミッションを付与します。この例では、データ・ソースを提供するリモート・ホスト(リレーショナル・データベース・サーバー・ホストなど)のホスト名(またはIPアドレス)が、アプリケーション固有のシステム・プロパティremote.data.source.host
によって指定され、このホストがポート1025でデータ・ソースの接続を受け入れることを前提としています。
例7-9 非J2EEデータ・ソース接続用パーミッション
permission java.net.SocketPermission "${remote.data.source.host}:1025-", "connect, resolve";
J2EEアプリケーションでは、データ・ソースのソケットのパーミッションは、通常アプリケーション・サーバーにより処理されます。
java.util.logging
パッケージ(「ロギングの構成」を参照)を使用するようにTopLink対応アプリケーションを構成する場合、例7-10で示されているようにcontrol
パーミッションをアプリケーションに付与します。
TopLink対応J2EEアプリケーションをデプロイしている場合、次に対するパーミッションを付与する必要があります。
toplink.jar
ファイル。次に例を示します。
grant codeBase "file:<TOPLINK_HOME>/jlib/toplink.jar" { permission java.security.AllPermission;};
XMLプラットフォームを使用している場合、次のパーミッションも付与する必要があります。
toplink.xml.platform
システム・プロパティ。次に例を示します。
permission java.util.PropertyPermission "toplink.xml.platform", "read"
デフォルトではないjava.lang.SecurityManager
で構成されたJVMでTopLink対応アプリケーションを実行する場合に、doPrivileged
操作を無効にするには、次のパーミッションを付与する必要があります。
java.lang.reflect.RelectPermission "suppressAccessChecks"
java.lang.RuntimePermission "accessDeclaredMembers"
java.lang.RuntimePermission "getClassLoader"
また、アプリケーションが使用するTopLink機能に応じて、パーミッションをさらに付与する必要があります。詳細は、「TopLink機能で必要なパーミッション」を参照してください。
デフォルトではないjava.lang.SecurityManager
で構成されたJVMでTopLink対応アプリケーションを実行する場合に、doPrivileged
操作を無効にするには、システム・プロパティoracle.j2ee.toplink.security.usedoprivileged
をfalse
に設定します。OC4Jを使用している場合は、システム・プロパティoracle.j2ee.security.usedoprivileged
をfalse
に設定します。
doPrivileged
操作を有効にするには、これらのシステム・プロパティをtrue
に設定します。
TopLinkは、次のEJBオプションをカスタマイズするために使用できるシステム・プロパティを提供します。
1対1および1対多のリレーションシップのsetterのパラメータが、対応するCMRフィールドと同じタイプであることをTopLinkに検証させるには、システム・プロパティtoplink.cts.collection.checkParameters
の値をtrue
(大文字/小文字の区別はなし)に設定します。setterが同じタイプではない場合、TopLinkはjava.lang.IllegalArgumentException
をスローします。
注意: このプロパティをtrue に設定すると、パフォーマンスに影響を及ぼします。この設定は必要な場合にのみ使用してください。 |
プロパティをfalse
(デフォルト値)に設定すると、TopLinkはこの検証を行いません。この場合、パラメータが正しいタイプであるかどうかの確認は、アプリケーション側で行う必要があります。
詳細は、EJB 2.1の仕様の10.3.6項を参照してください。
特殊な状況において、コンテナ管理の永続性を持つエンティティBeanに対して、主キー・クラスまたは主キー・フィールドを指定しないことを選択することがあります。たとえば、エンティティBeanに自然な主キーがない場合、またはデプロイ担当者にデプロイ時に主キー・フィールドを選択させる場合、主キー・タイプの指定を保留しておくことができます。
この場合、findByPrimaryKey
メソッドの引数のタイプをjava.lang.Object
として宣言する必要があります。また、主キー・クラス(prim-key-class
)をデプロイ・ディスクリプタ(ejb-jar.xml
)にjava.lang.Object
として指定することも必要です。
TopLinkは、現在、そのような主キー・タイプの指定保留に対する実行時サポートを提供しています。
詳細は、EJB 2.1の仕様の10.8.3項を参照してください。