Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド 10g(10.1.3.1.0) B31852-03 |
|
この章の内容は次のとおりです。
詳細は、Oracle Application Serverのリリース・ノートを参照してください。
このリリースでは、OC4JはEJB 3.0最終仕様(http://jcp.org/aboutJava/communityprocess/pr/jsr220/index.html)で指定されたごく一部のサブセットを除くすべての機能をサポートします。
OC4Jが完全なEJB 3.0準拠に更新された後で、EJB 3.0 OC4Jアプリケーションに若干のコード変更を加えることが必要な場合があります。詳細は、「リリース10.1.3.0のTopLink JPAプレビュー・アプリケーションからリリース10.1.3.1のTopLink Essentials JPAへの移行」を参照してください。
このリリースのOC4Jでは、オブジェクト・リレーショナル・エンティティ・マッピング・タイプ(基本、バイナリ・ラージ・オブジェクト(LOB)、シリアライズ、1対1、多対1、
1対多、多対多および集約マッピング)を除くすべてのEJB 3.0機能に対して、アノテーションまたは標準のデプロイXML(ejb-jar.xml
またはorion-ejb-jar.xml
)の一方または両方の機能を使用できます。この場合、アノテーションまたはTopLink JPA永続性プロバイダのカスタマイズを使用する必要があります。
OC4Jでは、『Oracle Application Server Annotations API Reference』に記載されている固有のEJB 3.0アノテーションがサポートされます。
詳細は、次を参照してください。
このリリースのOC4Jでは、Web層でのリソース・インジェクションがサポートされます。詳細は、「Web層でのアノテーション」を参照してください。
この項の内容は次のとおりです。
デフォルトでは、EJB 3.0を使用している場合は、JDK 1.5を使用する必要があります。OC4Jのデフォルトでは、EJB 3.0とJDK 1.4の使用はサポートされません。
OC4JでEJB 3.0(アノテーションおよびインターセプタを除く)とJDK 1.4の使用がサポートされるのは、TopLink JPAプレビュー永続性プロバイダを使用する場合のみです。詳細は、
「JPA永続性JARファイル」に記載されているシステム・プロパティdefault.persistence.provider
の説明を参照してください。
エンティティの場合、OC4Jは、EJB JARがejb-jar.xml
ファイルなしでデプロイされる場合にアプリケーションがEJB 3.0アプリケーションであると想定します。詳細は、「EJB永続性サービスについて」を参照してください。
セッションBeanおよびメッセージドリブンBeanの場合、OC4Jは、ejb-jar.xml
ファイルの<ejb-jar>
要素のversion
属性が3.0
に設定されている場合にアプリケーションがEJB 3.0アプリケーションであると想定します。
EJB 3.0アプリケーションでは、OC4JはJPA永続性プロバイダに永続性操作を委任します。このリリースのOC4Jは、EJB 3.0リファレンス実装のJPA永続性プロバイダであるTopLink Essentialsを使用します(「TopLink Essentials JPA永続性プロバイダ」を参照)。
Oracle TopLinkは、高度なオブジェクト永続性およびオブジェクト変換フレームワークであり、開発作業と保守作業を削減し、エンタープライズ・アプリケーションの機能を高める開発ツールおよびランタイム機能を提供します。
このリリースでは、OC4JはEJB 3.0リファレンス実装のJPA永続性プロバイダであるTopLink Essentialsを使用してEJB 3.0エンティティを管理します。詳細は、『Oracle TopLink開発者ガイド』のTopLinkの概要に関する項を参照してください。
OC4Jには、EJB 3.0永続性仕様に規定されているクラスと、TopLink Essentials JPA永続性プロバイダ実装を構成するクラスの両方に対応するJARファイルが付属します。永続性JARファイルの詳細は、「JPA永続性JARファイル」を参照してください。
EJB 3.0プロジェクトの場合は、アノテーションまたはpersistence.xml
ファイルを通じて永続性プロパティを構成します。OC4Jは、このメタデータをTopLink構成に変換します。TopLink Essentials EJB 3.0 JPA永続性プロバイダのカスタマイズの詳細は、「JPA永続性プロバイダのカスタマイズ」を参照してください。
OC4Jでは、TopLink Essentials JPA永続性プロバイダ実装を提供するために、表3-1にリストされたJARファイルを使用します。これらのJARファイルは、<ORACLE_HOME>/toplink/
ディレクトリにあります。
jlib
OC4Jで使用されるJPA永続性プロバイダ実装は、システム・プロパティdefault.persistence.provider
により決定されます。有効な値は次のとおりです。
essentials
(デフォルト): OC4Jでは、<ORACLE_HOME>/j2ee/home/lib/
persistence.jar
を使用してEJB 3.0永続性仕様に規定されたEJB 3.0 JPAクラスを提供し、永続性プロバイダ実装として<ORACLE_HOME>/toplink/jlib/
toplink-essentials.jar
およびtoplink-essentials-agent.jar
を使用してEJB 3.0永続性の最終仕様の完全サポートを提供します。toplink
: OC4Jでは、<ORACLE_HOME>/j2ee/home/lib/preview-persistence.jar
を使用してEJB 3.0パブリック・レビュー永続性仕様に規定されたEJB 3.0 JPAクラスを提供し、永続性プロバイダ実装として<ORACLE_HOME>/toplink/jlib/toplink.jar
を使用してEJB 3.0パブリック・レビュー・ドラフトに指定された一部の機能に基づくJPAプレビューを提供します。このオプションを使用すると、プレビューAPIに記述されたアプリケーションを実行できます。このオプションは使用しないことをお薦めします。JARファイル | 内容 |
---|---|
|
このJARファイルには、Antlr(ANother Tool for Language Recognition)ツールが含まれます。 |
|
このJARファイルには、Oracle JDBC依存を伴うクラスなど、TopLink APIを構成するすべてのクラスが含まれます。 OC4JとともにインストールされるOracle JDBCドライバのデフォルト・バージョンとは異なるバージョンを使用する場合、「TopLinkとOracle JDBCドライバとの関連付け」を参照してください。 |
|
このJARファイルには、EJB 3.0リファレンス実装のJPA永続性プロバイダであるオープン・ソースJPAエディションのTopLinkが含まれます。 |
|
このJARファイルには、JPAエンティティに対するバイトコード・ウィービングを実行して
このJARファイルでは、EJB 3.0リファレンス実装のJPA永続性プロバイダであるTopLink Essentialsの一部が提供されます。このファイルは、
このJRAはオプションです。クラスパスには配置せず、 |
|
このJARには、Oracle Containers for J2EEとの統合のためにTopLinkが使用するクラスが含まれます。
このJARファイルは、OC4Jでのみ使用します。コンテナは、 |
通常は、オブジェクト・リレーショナル・アノテーション(「JPAエンティティのコンテナ管理の関連性フィールドの構成」を参照)を使用して、OC4Jがデータベースに永続性フィールドを格納する方法を指定します。また、このような各アノテーションについてデフォルトのTopLink EJB 3.0 JPA永続性プロバイダ構成に依存します。ただし、このデフォルト動作は、アプリケーション要件に合うようオーバーライドできます。同様に、TopLink EJB 3.0 JPA永続性プロバイダはJPA準拠ですが、JPA仕様に定義された機能を超える追加の拡張機能を使用できます。
OC4J JPA永続性プロバイダは、次の方法でカスタマイズできます。
persistence.xml
ファイルの<properties>
要素に、またはjavax.persistence.Persistence
のメソッドcreateEntityManagerFactory
に渡されるプロパティのMap
にベンダー固有のプロパティを設定します(「永続性ユニットでのベンダー拡張の構成」を参照)。
ejb3-toplink-sessions.xml
およびtoplink-ejb-jar.xml
ファイルを作成し、EJB 3.0エンティティを含むEJB-JARのMETA-INF
ディレクトリにこれらをパッケージ化することにより、実行時にJPAエンティティ・アプリケーションでTopLink APIにアクセスできます(「TopLink JPAプレビュー永続性を使用したTopLink APIへの実行時アクセス」を参照)。
TopLink Essentials JPA永続性プロバイダを使用している場合(デフォルト)、TopLink JPA拡張のtoplink.session.customizerおよびtoplink.descriptor.customizer.<ENTITY>を使用して実行時にJPAエンティティ・アプリケーションでTopLink APIにアクセスできます(表26-5を参照)。
TopLink JPAプレビュー永続性プロバイダを使用している場合、ejb3-toplink-sessions.xml
ファイル(「ejb3-toplink-sessions.xmlファイルとは」を参照)およびtoplink-ejb-jar.xml
ファイル(「toplink-ejb-jar.xmlファイルとは」を参照)を作成して実行時にJPAエンティティ・アプリケーションでTopLink APIにアクセスできます。
注意 OC4Jでは、TopLink Essentials JPA永続性プロバイダがデフォルトで使用されます。この場合、TopLink JPA拡張を使用して実行時にJPAエンティティ・アプリケーションでTopLink APIにアクセスします(「TopLink Essentials JPA永続性を使用したTopLink APIへの実行時アクセス」を参照)。 |
EJB 3.0エンティティを含むEJB-JARのMETA-INFディレクトリにこれらのファイルをパッケージ化します。
ejb3-toplink-sessions.xml
ファイルのみです。
ejb3-toplink-sessions.xml
ファイルとtoplink-ejb-jar.xml
ファイルの両方が必要です。
TopLink APIを使用して、アノテーションをオーバーライドするかアノテーションを完全に置換することにより、永続性をカスタマイズできます。たとえば、オブジェクト・リレーショナル・マッピングの大部分およびejb3-toplink-sessions.xml
ファイルとtoplink-ejb-jar.xml
ファイルでアノテーションを使用して、アノテーションに適していない複雑な関連のサブセットに対してオブジェクト・リレーショナル・マッピングを指定できます。
エンティティ・クラスで使用しているJDK 1.5言語拡張がアノテーションのみの場合は、TopLink Workbenchを使用してこれらのファイルを作成および構成できます。TopLink Workbenchを使用して、これらのファイルを作成および構成することをお薦めします。
TopLink JPAプレビュー永続性プロバイダをカスタマイズするには、次のようにします。
toplink-ejb-jar.xml
として)構成し、場所を保存します(『Oracle TopLink開発者ガイド』のプロジェクトのデプロイXMLオプションの構成に関する項を参照)。
toplink-ejb-jar.xml
XMLファイルにエクスポートします(『Oracle TopLink開発者ガイド』のデプロイXML情報のエクスポートに関する項を参照)。
ejb3-toplink-sessions.xml
という名前のTopLinkセッション構成ファイルを作成します(『Oracle TopLink開発者ガイド』のサーバー・セッションの作成に関する項を参照)。
ejb3-toplink-sessions.xml
ファイルのプライマリ・プロジェクトをtoplink-ejb-jar.xml
ファイルに設定します(『Oracle TopLink開発者ガイド』のプライマリ・マッピング・プロジェクトの構成に関する項を参照)。
ejb3-toplink-sessions.xml
およびtoplink-ejb-jar.xml
ファイルをパッケージ化します。
または、JDeveloperを使用して、
注意
ejb3-toplink-sessions.xml
およびtoplink-ejb-jar.xml
ファイルを作成できます(「EJB開発ツールの使用方法」を参照)。
リリース10.1.3.0の場合、OC4Jでは、EJB 3.0パブリック・レビュー・ドラフトで指定された機能のサブセットに基づくTopLink JPAプレビュー永続性プロバイダを使用します。
リリース10.1.3.1の場合、OC4Jでは、EJB 3.0リファレンス実装のJPA永続性プロバイダであるTopLink Essentials JPA永続性プロバイダを使用して、EJB 3.0最終仕様に従ってJPAを完全にサポートします。
OC4Jリリース10.1.3.1でTopLink EssentialsおよびEJB 3.0最終版APIと組み合せて使用する前に、JPAプレビューに基づくアプリケーションのコードを変更する必要があります。
一般的に、次の手順を実行する必要があります。
次の項で、変更箇所の識別に役立つTopLink JPAプレビューとTopLink完全版JPAの重要な相違点について説明します。
OC4Jリリース10.1.3.0.0にリリース10.1.3.1.0のパッチ・セットを適用したら、次のようにOC4J構成ファイルを手動で編集する必要があります。
<ORACLE_HOME>/j2ee/home/config/server.xml
ファイルを編集して次の要素を追加します。
<shared-library name="oracle.persistence" version="1.0" library-compatible="true"> <code-source path="../../../toplink/jlib/toplink-essentials.jar"/> </shared-library>
<ORACLE_HOME>/j2ee/home/config/system-application.xml
ファイルを編集して<imported-shared-libraries>
要素に次の属性を追加します。
<import-shared-library name="oracle.persistence"/>
表3-2に、リリース10.1.3.0と10.1.3.1のjavax.persistence
パッケージで追加、削除および変更された内容をリストします。アプリケーションでこれらのクラスを使用する場合、最新のEJB 3.0仕様とJPA Javadocでその詳細を確認してください。
リリース10.1.3.1では、次の新規クラスが追加されました。
OC4JでTopLink JPAを使用する場合、インターセプタは、TopLink JPAプレビューとEJB 3.0最終仕様の間で大幅に変更されていることに注意してください。
EJB 3.0最終仕様では、インターセプタとライフ・サイクル・イベント・リスナーがマージされ、その両方でjavax.interceptors.Interceptors
が使用されます。このことは、特にセッションBeanとメッセージドリブンBeanでインターセプタまたはライフ・サイクル・イベント・リスナーを使用しているすべてのコードに影響します。
詳細は、次を参照してください。
リリース10.1.3.0では、java.persistence.setup.config
プロパティを使用して、エンティティ・マネージャが管理するエンティティのリストでクラスを識別します。
リリース10.1.3.1では、このプロパティは廃止されました。かわりに、EJB 3.0仕様で指定されているとおり、永続性ユニットに管理対象エンティティ・クラスを定義する必要があります。
リリース10.1.3.0では、@Resource
アノテーションを使用してエンティティ・マネージャを注入します。
リリース10.1.3.1では、次のように@PersistenceContext
アノテーションを使用してエンティティ・マネージャを注入します。
@PersistenceContext protected EntityManager entityManager;
リリース10.1.3.1では、下位互換性を確保する目的で、OC4Jにより
@Resource
を使用したエンティティ・マネージャの注入がサポートされます。
ただし、EJB 3.0仕様に準拠するため、かわりに@PersistenceContext
アノテーションを使用することをお薦めします。
詳細は、次を参照してください。
リリース10.1.3.0の場合、OC4Jでは、persistence-preview.jar
およびtoplink.jar
ファイルを使用してJPAプレビュー実装を提供します。
リリース10.1.3.1の場合、OC4Jでは、persistence.jar
、toplink-essentials.jar
およびtoplink-essentials-agent.jar
ファイルを使用して完全なJPA実装を提供します。
使用中のIDEで、プロジェクトに関連付けられたライブラリ定義にリリース10.1.3.1のJPAライブラリのみが含まれ、旧リリースの10.1.3.0のライブラリは除外されていることを確認してください。
TopLink JARファイルの詳細は、「JPA永続性JARファイル」を参照してください。
このリリースでは、OC4JはEJB 2.1最終リリース仕様(http://java.sun.com/products/ejb/docs.html)で指定されている機能をサポートしています。
この項の内容は次のとおりです。
EJB 2.1を使用している場合は、JDK 1.4以上を使用する必要があります。
デフォルトでは、モジュール・バージョン(ejb-jar.xml
ファイルの<ejb-jar>
要素のversion
属性)は、2.x
に設定されます。
通常、この値は、明示的に3.0
に設定するか、ejb-jar.xml
ファイルを省略した場合にのみ変化します。
CMPバージョン(ejb-jar.xml
ファイルの<cmp-version>
要素)は、EJBモジュール・バージョンとは無関係です。EJB 2.x CMPエンティティBeanの場合、<cmp-version>
を2.x
に設定します。
この設定は、EJB 2.x CMPエンティティBeanとEJB 3.0エンティティを両方とも使用するEJB 3.0モジュールが存在する場合に有効です。
詳細は、「EJB永続性サービスについて」を参照してください。
OC4Jは、永続性マネージャに永続性操作を委任します。このリリースでは、OC4JはデフォルトでTopLink永続性マネージャを使用します(「TopLink EJB 2.1永続性マネージャ」を参照)。
Orion永続性マネージャは推奨されません。新規開発にはOC4JおよびTopLink永続性マネージャを使用することをお薦めします。移行ツール(「TopLink EJB 2.1永続性マネージャへの移行」を参照)を使用すると、Orion永続性マネージャでEJB 2.0エンティティBeanを使用する既存のOC4Jアプリケーションを簡単に移行して、TopLink永続性マネージャでEJB 2.0エンティティBeanを使用できます。Orion永続性マネージャの詳細は、『Oracle Containers for J2EE Orion CMP開発者ガイド』を参照してください。
Oracle TopLinkは、高度なオブジェクト永続性およびオブジェクト変換フレームワークであり、開発作業と保守作業を削減し、エンタープライズ・アプリケーションの機能を高める開発ツールおよびランタイム機能を提供します。
このリリースでは、OC4Jは、コンテナ管理の永続性を備えたEJB 2.1エンティティBeanの永続性マネージャとしてTopLinkを使用します。TopLink永続性マネージャの詳細は、『Oracle TopLink開発者ガイド』のTopLinkの概要に関する項を参照してください。
OC4Jには、TopLink EJB 2.1永続性マネージャ実装を構成するクラスのJARファイルが付属します。永続性JARファイルの詳細は、「EJB 2.1永続性JARファイル」を参照してください。
EJB 2.1プロジェクトの場合は、TopLink Workbench(『Oracle TopLink開発者ガイド』のTopLink Workbenchの理解に関する項を参照)を使用して、toplink-ejb-jar.xml
ファイル(「toplink-ejb-jar.xmlファイルとは」を参照)で永続性プロパティを構成します。Orion CMPアプリケーションをTopLink永続性に移行する場合(「TopLink EJB 2.1永続性マネージャへの移行」を参照)、TopLink移行ツールはTopLink Workbenchプロジェクトを自動的に作成します。
TopLinkカスタマイズ・クラスを使用して実行時にこの構成をカスタマイズできます
(「TopLink EJB 2.1永続性マネージャのカスタマイズ」を参照)。
OC4Jでは、TopLink EJB 2.1永続性マネージャ実装を提供するために、表3-3にリストされたTopLink JARファイルを使用します。これらのJARファイルは、<ORACLE_HOME>/toplink/
ディレクトリにあります。
jlib
JARファイル | 内容 |
---|---|
|
このJARには、Antlr(ANother Tool for Language Recognition)ツールが含まれます。 |
|
このJARには、Oracle JDBC依存を伴うクラスなど、TopLink APIを構成するすべてのクラスが含まれます。 OC4JとともにインストールされるOracle JDBCドライバのデフォルト・バージョンとは異なるバージョンを使用する場合、「TopLinkとOracle JDBCドライバとの関連付け」を参照してください。 |
|
このJARには、EJB 2.1エンティティBeanクラスに対するバイトコード・ウィービングを実行して
このJRAはオプションです。クラスパスには配置せず、 |
|
このJARには、Oracle Containers for J2EEとの統合のためにTopLinkが使用するクラスが含まれます。
このJARファイルは、OC4Jでのみ使用します。コンテナは、 |
実行時に、TopLink永続性マネージャAPIを使用して高度なTopLink機能を利用できます。
EJB 2.1 CMPアプリケーションでTopLink永続性マネージャAPIにアクセスするために、デプロイJARにTopLinkカスタマイズ・クラスを含めることができます。
このオプションのJavaクラスは、oracle.toplink.ejb.cmp.DeploymentCustomization
を実装して、TopLinkマッピングおよびランタイム構成のデプロイのカスタマイズを可能にします。デプロイ時に、TopLinkランタイムはこのクラスの新規インスタンスを作成し、そのメソッドbeforeLoginCustomization
(TopLinkランタイムがセッションにログインする前)およびafterLoginCustomization
(TopLinkランタイムがセッションにログインした後)を起動して、TopLinkセッションをパラメータとして渡します。
beforeLoginCustomization
メソッドの実装を使用して、キャッシュ調整、パラメータ使用のSQL、ネイティブSQL、バッチ書込み/バッチ・サイズ、バイト配列/文字列バインディング、ログイン、イベント・リスナー、表の修飾子、順序付けなどのTopLinkセッション属性を構成します。
EJB 2.1の場合は、TopLinkカスタマイズ・クラスを使用して、TopLink Workbench GUIからはアクセスできないTopLink永続性マネージャAPIにアクセスできます。
詳細は、次を参照してください。
TopLink移行ツールを使用すると、Orion永続性マネージャでEJB 2.0エンティティBeanを使用する既存のOC4Jアプリケーションを簡単に移行して、TopLink永続性マネージャでEJB 2.0エンティティBeanを使用できます。
TopLink移行ツールの使用方法の詳細は、『Oracle TopLink開発者ガイド』のOC4J Orion永続性からOC4J TopLink永続性への移行に関する項を参照してください。
|
![]() Copyright © 2002, 2008 Oracle Corporation. All Rights Reserved. |
|