この章では、Oracle TopLinkをOracle WebLogic Serverにデプロイされたアプリケーションの永続性プロバイダとして使用する方法を説明します。
この章は次の項で構成されています。
ユース・ケース
WebLogic Serverの開発者、管理者およびユーザーが、TopLinkの永続性および変換サービスをすべて利用したいと考えています。
解決方法
WebLogic Serverでは他の永続性プロバイダを使用でき、TopLinkは他のアプリケーション・サーバーで使用できるので、WebLogic ServerをTopLinkとともに使用すると、多くの利点があります。
コンポーネント
WebLogic Server 12c以上。WebLogic ServerにTopLinkが含まれます。
注意: TopLinkのコア機能は、オープン・ソースのEclipse Foundationの永続性フレームワークであるEclipseLinkによって提供されています。EclipseLinkでは、Java Persistence API (JPA)、Java Architecture for XML Binding (JAXB)、および標準に基づいたその他の永続性テクノロジと、それらの標準の拡張が実装されます。TopLinkには、EclipseLinkのすべてに加え、Oracleの追加機能が含まれています。 |
Oracle Database、Oracle Express、MySQLなど、対応するJava Database Connectivity (JDBC)データベース。
必須ではありませんが、Java EE統合開発環境(IDE)を開発に使用すると便利です。
サンプル
関連情報については、次のEclipseLinkの例を参照してください。
http://wiki.eclipse.org/EclipseLink/Examples/JPA/WebLogic_Web_Tutorial
http://wiki.eclipse.org/EclipseLink/Examples/JPA/WLS_AppScoped_DataSource
WebLogic Serverは、エンタープライズ対応のスケーラブルなJava Platform, Enterprise Edition (Java EEプラットフォーム)アプリケーション・サーバーです。WebLogic ServerにはJava EE 6の仕様が完全に実装されており、データベースやメッセージング・サービス、外部のエンタープライズ・システムへの接続など広範なサービスにアクセス可能な分散Javaアプリケーションを作成するための標準APIセットが用意されています。WebLogic Serverでは、Java EEの実装に加えて、堅牢かつセキュアで可用性が高くスケーラブルな環境にクリティカルなアプリケーションを企業がデプロイできるようになっています。これらの特徴により、企業はWebLogic Serverインスタンスのクラスタを構成し、ロードを分散し、ハードウェアまたはその他の障害が発生した際にかわりとなる処理能力を提供できます。WebLogic Serverのこれらおよび他の機能の詳細は、WebLogic Serverの概要に関するマニュアルを参照してください。
TopLinkには、(Java SEアプリケーションに加え)Java EEアプリケーションの永続性レイヤーを実装するためのAPIとランタイム環境が備わっています。
WebLogic Serverでは他の永続性プロバイダを使用でき、TopLinkは他のアプリケーション・サーバーで使用できるので、WebLogic ServerをTopLinkとともに使用すると、次のような多くの利点があります。
EclipseLinkは、JPA 2.1をサポートするWebLogic Serverドメインのデフォルトの永続性プロバイダです。
EclipseLinkに実装されているJava Architecture for XML Binding (JAXB)は、WebLogic ServerのデフォルトのJAXBの実装です。EclipseLinkはJAXBを完全に実装するのみではなく、その他の高度な機能も含んでいます。Java API for XML Web Services (JAX-WS)およびJava API for RESTful Web Services (JAX-RS)アプリケーションのEclipseLink JAXBの利点をデフォルトで利用できます。
Oracle WebLogic Suiteには、データ・キャッシング、データ・レプリケーションおよび分散コンピューティング・サービスを提供するJavaベースのインメモリー・データグリッド製品であるOracle Coherenceが含まれています。WebLogic ServerとCoherenceは密に統合されているので、アプリケーションはCoherenceのデータ・キャッシュを使用できます。WebLogic ServerにデプロイされたEclipseLinkアプリケーションでは、Oracle TopLink Gridを使用して、Coherenceをエンティティのレベル2 (L2)キャッシュおよび永続性レイヤーとして使用してEclipseLink JPAと統合できます。詳細は、『Oracle Coherenceでのアプリケーションの開発』および『Oracle Coherenceの統合』を参照してください。
注意: 別途ライセンスされた製品としてCoherenceを入手して、WebLogic Server Standard EditionおよびWebLogic Server Enterprise Editionを使用することもできます。 |
WebLogic ServerにEclipseLinkのロギングを統合することにより、包括的な統合ロギング・インフラストラクチャが実現されています。3.2.4項「タスク4: ロギング統合の使用または再構成」を参照してください。
WebLogic Serverでは、StrutsおよびJavaServer Faces (JSF)に基づくエンドツーエンドのJava EEフレームワークであるOracle Application Development Framework (Oracle ADF)をサポートしています。Oracle ADFでは、インフラストラクチャ・サービスおよび視覚的で宣言的な開発エクスペリエンスを実現することにより、アプリケーション開発が簡素化されています。TopLinkおよびOracle ADFをともに使用することにより、完全なJava EEアプリケーション・インフラストラクチャが実現されます。Oracle ADFについては、このマニュアルでは説明しません。『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』を参照してください。
WebLogic Server、TopLinkおよびOracle ADFはすべて、TopLinkを永続性プロバイダとして使用し、WebLogic Serverにデプロイされるアプリケーションを含むJava EEアプリケーションのモデリング、開発、デバッグ、最適化およびデプロイをサポートするOracleの統合開発環境(IDE)であるOracle JDeveloperと統合されています。JDeveloperの使用方法は、このドキュメントでは説明しません。JDeveloperに関する一般的な情報は、http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html
を参照してください。JDeveloperのタスクに関する情報は、JDeveloper IDEのJDeveloperオンライン・ヘルプを参照してください。
図3-1は、他のOracle製品に対するWebLogic ServerとTopLinkの関係および使用方法を示しています。次のように、製品をともに使用することが可能です。
JDeveloper (またはOracle Enterprise Pack for EclipseまたはNetBeans)をJava EEアプリケーションの開発に使用します。
永続性プロバイダとしてEclipseLinkを使用します。
データのキャッシュ、データのレプリケーション、分散コンピューティング・サービスに(TopLink Gridへの統合を介して)Oracle Coherenceを使用します。
アプリケーション・サーバーとしてWebLogicを使用します。
EclipseLink JPAアプリケーションからのデータを永続化するにはOracle Databaseを使用し、EclipseLink JAXBアプリケーションからデータを永続化するには、XMLを使用します。
EclipseLink JPAアプリケーションをWebLogic Serverで実行するには、次のタスクに示すとおり、WebLogic Serverを構成してサーバーとアプリケーションで特定の設定を調整する必要があります。
このドキュメントは、次の製品およびツールに基づいていますが、原則は、サポートされているすべてのデータベースまたは開発環境に適用できます。後の項で特記されている場合以外、ソフトウェアはすでにインストールされているものと仮定しています。
WebLogic Server 12c以上。
詳細およびダウンロードは、Oracle Technology Networkのhttp://www.oracle.com/technetwork/middleware/weblogic/overview/index.html
を参照してください。
Oracle Database、Oracle Express、MySQLなど、対応するすべてのJava Database Connectivity (JDBC)データベース。
Oracle Databaseについては、http://www.oracle.com/technetwork/database/enterprise-edition/overview/index.html
を参照してください。Oracle Database Express Editionについては、http://www.oracle.com/technetwork/database/express-edition/overview/index.html
を参照してください。MySQLについては、http://www.oracle.com/us/products/mysql/index.html
を参照してください。
必須ではありませんが、Java開発環境(IDE)を開発に使用すると便利です。たとえば、JDeveloper、Oracle Enterprise Pack for EclipseおよびNetBeansにはすべて、高度なJava EE開発ツールが用意されています。このドキュメントでは、WebLogic Serverのスタンドアロン・インスタンスについて説明しますが、JDeveloperとOracle Enterprise Pack for Eclipseの両方にWebLogic Serverの組込みバージョンが含まれています。
JDeveloperについては、http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html
を参照してください。Oracle Enterprise Pack for Eclipseについては、http://www.oracle.com/technetwork/developer-tools/eclipse/overview/index.html
を参照してください。NetBeansについては、http://www.oracle.com/us/products/tools/050845.html
を参照してください。
古いバージョンのWebLogic Serverを使用している場合、使用されているEclipseLinkのバージョンを更新できます。より新しいTopLinkの配布からeclipselink.jar
を取得し、次の手順で説明するとおり、WebLogic Serverのフィルタリング・クラス・ローダーおよび共有ライブラリ機能を使用します。
FilteringClassLoader
クラスは、デプロイメント・ディスクリプタを構成して、特定のパッケージが常にシステム・クラス・ローダーではなくアプリケーションからロードされるように指定するメカニズムがあります。このメカニズムを使用すれば、新しいリリースのEclipseLinkがアプリケーションで使用されるように指定できます。WebLogic Serverでのクラスローダーのフィルタリングの詳細は、『Oracle WebLogic Serverアプリケーションの開発』のフィルタリング・クラスローダーの使用方法に関する項を参照してください。
共有ライブラリは、複数のエンタープライズ・アプリケーションで共有できるJava EEモジュールです。共有ライブラリはWebLogic Serverのターゲットにデプロイされ、その後アプリケーションで参照できるようになります。デプロイされると、WebLogic Serverでは、共有ライブラリの内容がアプリケーションとマージされます。さらに、共有ライブラリは標準のJava EEアーカイブとしてパッケージ化できるので、デプロイ時には、ディスクリプタもアプリケーションとマージされます。WebLogic Serverの共有ライブラリの詳細は、『Oracle WebLogic Serverアプリケーションの開発』のJava EEの共有ライブラリおよびオプション・パッケージの作成に関する項を参照してください。
様々なリリースでサポートされている内容については、次を参照してください。
http://www.oracle.com/technetwork/middleware/ias/jpa-082702.html#eclipselink
にあるOracle TopLink: JPA認証に関する項
http://www.oracle.com/technetwork/middleware/ias/weblogic-086699.html
にあるOracle TopLinkおよびWebLogicのサポートに関する項
WebLogic ServerでEclipseLinkのリリースを更新するには、次の手順を実行します。
http://www.oracle.com/technetwork/middleware/toplink/downloads/index.html
から必要なTopLinkのバージョンをダウンロードし、eclipselink.jar
ファイルを探します。TopLinkのクイック・インストーラを使用して作成されたディレクトリでは、eclipselink.jar
ファイルは、oracle_common\modules\oracle.toplink_
version_no
にあります。クイック・インストーラの詳細は、第2章「Oracle TopLinkのインストール」を参照してください。
アプリケーションのlib
ディレクトリにeclipselink.jar
ファイルを配置します。
次のアイテムを含む共有ライブラリを、eclipselink-shared-lib.ear
などの名前を付けた標準Java EE Enterprise Archive (EAR)として準備します。
META-INF/weblogic-application.xml META-INF/application.xml lib/eclipselink.jar
EARの作成の詳細は、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のWebアプリケーションの作成と構成に関する項を参照してください。
次に示すとおり、サブ要素<package-name>org.eclipse.persistence.*</package-name>
が指定されたprefer-application-packages
要素をアプリケーションのweblogic-application.xml
ディスクリプタ・ファイルに追加します。
<weblogic-application> <prefer-application-packages> <package-name>org.eclipse.persistence.*</package-name> </prefer-application-packages> </weblogic-application>
アプリケーションのapplication.xml
ファイルを作成します。このファイルは、ランタイム・ライブラリのマージをサポートするために必要です。最小構成は次のとおりです。
<application> <display-name>eclipselink-shared-lib</display-name> <module> <java></java> </module> </application>
拡張の名前、仕様バージョンおよび実装バージョンをEARのMETA-INF/MANIFEST.MF
ファイルに追加します。たとえば、Apache Antを使用している場合は次を実行できます。
<target name="package" depends="prepare"> <jar destfile="dist/${ant.project.name}.ear"> <metainf dir="etc" includes="*.xml"/> <manifest> <attribute name="Extension-Name" value="eclipselink"/> <attribute name="Specification-Version" value="2.0"/> <attribute name="Implementation-Version" value="2.2.0"/> </manifest> <fileset dir="build" includes="**/*"/> </jar> </target>
デプロイ時には、デプロイされた共有ライブラリのメタデータとして、WebLogic Serverがこの属性を使用します。
最終的なEARファイル、次のようになります。
META-INF/ META-INF/MANIFEST.MF META-INF/application.xml META-INF/weblogic-application.xml lib/ lib/eclipselink.jar
WebLogic Serverにeclipselink-shared-lib.ear
ファイルをデプロイします。この結果、サーバーeclipselink#2.0@2.2.0
で新しいライブラリが使用可能になります。
次に示すとおり、更新されたリリースのEclipseLinkを使用するアプリケーションのweblogic-application.xml
ファイルに、共有ライブラリへの参照を追加します。
<weblogic-application> <library-ref> <library-name>eclipselink</library-name> <specification-version>2.0</specification-version> <implementation-version>2.2.0</implementation-version> </library-ref> </weblogic-application>
WebLogic ServerはJava Management Extensions (JMX) MBeanを使用して、WebLogic Serverのリソースを構成、監視および管理します。EclipseLinkのアプリケーションの場合、MBeanは永続性ユニットの様々な面の監視および設定に使用され、ロギングにも使用されます。
注意: EclipseLinkのアプリケーションがWebLogic Serverにデプロイされている場合、デプロイ時ではなくデータベースへの接続時にMBeanがデプロイされます。 |
WebLogic ServerでMBeanがどのように使用されるかの詳細は、『Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発』および『Oracle WebLogic Server JMXによる管理可能アプリケーションの開発』を参照してください。
WebLogic ServerでのEclipseLinkのロギングの詳細は、3.2.4項「タスク4: ロギング統合の使用または再構成」を参照してください。
デフォルトでは、EclipseLinkアプリケーションをWebLogic Serverにデプロイすると、EclipseLinkのランタイムが、各EclipseLinkセッションのWebLogic Server JMXサービスに対して、次のJMX MBeanをデプロイします。
org.eclipse.persistence.services.DevelopmentServices
: これは、EclipseLinkの内部的なEclipseLinkセッションをJMX経由で管理する機能を提供するためのクラスです。
org.eclipse.persistence.services.RuntimeServices
: これは、EclipseLinkの外部的なEclipseLinkセッションをJMX経由で管理する機能を提供するためのクラスです。
このJMX MBeanが公開するAPIを使用すれば、自分で記述したJMXコードを使用してEclipseLinkセッションの実行時にアクセスおよび構成をしたり、JConsoleなどのサード・パーティのJMX管理アプリケーションを使用してEclipseLinkアプリケーションを統合したりできます。
カスタムMBeanに関するアクセス情報を入手するには、まず匿名参照を有効にしてから、別のツールを使用してMBean情報にアクセスします。
WebLogic Serverの管理コンソールで匿名参照を有効にするには、次の手順を実行します。
まだ行っていない場合は、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします。
まず左側のペインで、ドメインを選択し、ドメインの「設定」ページを開きます。
「セキュリティ」→「一般」を展開します。
「匿名Adminのルックアップを有効化」を選択します。
これらの変更を有効にするために、管理コンソールの「チェンジ・センター」で「変更のアクティブ化」をクリックします。
様々なツールを使用してMBeanにアクセスする方法の詳細は、『Oracle WebLogic Server JMXによる管理可能アプリケーションの開発』のカスタムMBeanへのアクセスに関する項を参照してください。
管理コンソールでカスタムMBeanを監視する方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのカスタムMBeanの監視に関する項を参照してください。
デフォルトでは、EclipseLinkのロギングはWebLogic Serverのロギング・インフラストラクチャに統合されます。統合の動作の詳細およびそれをオーバーライドする方法は、次の項を参照してください。WebLogic Serverのロギングの詳細は、次を参照してください。
Oracle WebLogic ServerにデプロイされたアプリケーションへのWebLogicロギング・サービスの追加
Oracle WebLogic Serverのログ・ファイルの構成とログ・メッセージのフィルタ処理
Oracle WebLogic Serverの管理コンソール・オンライン・ヘルプのロギングに関する項
JPA永続性ユニットに対するロギングの構成方法の詳細は、http://wiki.eclipse.org/EclipseLink/Examples/JPA/Logging
にあるEclipseLinkドキュメントの『How to Configure Logging』を参照してください。
デフォルトでは、WebLogic Serverのロギング実装は永続性コンテキストに注入されるので、WebLogic Serverのロギング構成に従ってEclipseLinkのすべてのロギング・メッセージが生成されるようになります。
この統合の結果、表3-1に示すとおり、EclipseLinkのロギング・レベルがWebLogic Serverのロギング・レベルに変換されます。
表3-1 WebLogic Serverのロギング・レベルへのEclipseLinkのロギング・レベルのマッピング
EclipseLinkのロギング・レベル | WebLogic Serverのロギング・レベル |
---|---|
ALL、FINEST、FINER、FINE |
DEBUG |
CONFIG |
INFO |
INFO |
NOTICE |
WARNING |
WARNING |
SEVERE |
ALERT |
OFF |
OFF |
表3-2に示すとおり、WebLogic Serverのロギング・レベルがEclipseLinkのレベルにマップされます。
3.2.10項「タスク10: WebLogic Serverの永続性設定の構成および監視」に説明されているように、永続性ユニットに定義されているEclipseLinkのロギング・レベルを管理コンソールに表示できます。ただし、デフォルトのWebLogic ServerとEclipseLinkロギング統合を使用すると、persistence.xml
に設定されているこのロギング・レベルがオーバーライドされることに注意してください。統合をオーバーライドする手順は、3.2.4.3項「デフォルト・ロギング統合のオーバーライド」を参照してください。
デフォルト統合を使用すると、永続性に対するEnterprise JavaBeans (EJB)ロギング・オプションがすべてマップされて、管理コンソールのEclipseLinkのロギング出力が制御されます。
EclipseLinkのロギング・レベルはpersistence.xml
ファイルに設定します。ただし、WebLogic Severとのデフォルト・ロギング統合を受け入れると、これらの設定は無視され、WebLogic Serverに設定されているロギング構成が使用されます。EclipseLinkのロギング・レベルは、EclipseLinkのネイティブのロギング実装を使用する場合のみに使用されます。
eclipselink.logging.logger
プロパティ名を別の設定にすると、デフォルト・ロギング統合をオーバーライドできます。EclipseLinkのデフォルト・ロギングを有効にするには、たとえばeclipselink.logging.logger
プロパティを次のように設定します。
<property name="eclipselink.logging.logger" value="DefaultLogger"/>
たとえばjava.util.logging
パッケージなど、EclipseLinkメッセージ用に別のログの実装を使用することも可能です。
<property name="eclipselink.logging.logger" value="JavaLogger"/>
EclipseLinkのネイティブのロギング実装を使用する場合は、登録されたログの宛先にWebLogic ServerがJava Virtual Machine (JVM)の出力をリダイレクトするように構成すれば、EclipseLinkのロギング・メッセージをWebLogic Serverドメインのログ・ファイルに引き続き表示できます。
リダイレクトの詳細および手順は、『Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理』のJVM出力のリダイレクトに関する項を参照してください。管理コンソールでこのオプションを設定するには、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJVM出力のリダイレクトに関する項を参照してください。
次なども考慮します。
メッセージID 2005000
は、EclipseLinkのすべてのログ・メッセージに対して使用されています。
実行時にアプリケーションのエンティティ・マネージャ・ファクトリがEclipseLinkのロギング・インフラストラクチャおよびEclipseLinkのロギング設定のみを使用する場合でも、(ロギング・レベルの設定によっては)WebLogic Serverの統合ロガーによって処理される一部のロギング・メッセージがWebLogic Serverのコンソールまたはサーバー・ログにデプロイ中に表示される場合があります。
WebLogic ServerのインストールにバンドルされているEclipseLinkとは別のリリースを(フィルタリング・クラスローダーを使用して)使用する場合に、デフォルトの統合ロギングを使用しようとすると、クラスローディングの競合のためにエラーが発生する可能性があります。この問題を回避するには、統合されたWebLogic Serverロガー以外のものにeclipselink.logging.logger
プロパティを明示的に設定してください。
EclipseLink JPAを使用してアプリケーションに対する永続性を実現することは、この章で説明する他のすべてのタスクで仮定されている基本的なタスクですが、実際のJPAプログラミング技法の大部分はこのドキュメントでは説明しません。WebLogic Serverでは、この章で説明する詳細以外に、EclipseLinkアプリケーションに対する特別な要件はありません。
この章では、EclipseLink (ランタイムおよびAPI)をWebLogic Serverで使用する場合に固有の機能、設定およびタスクについて説明します。JPAを使用したJavaアプリケーションの開発、パッケージ化およびデプロイの詳細は、次を参照してください。
http://wiki.eclipse.org/EclipseLink
にあるEclipseLinkプロパティのwiki
http://wiki.eclipse.org/EclipseLink/Documentation_Center
にあるEclipseLink Documentation Center
http://jcp.org/en/jsr/detail?id=317
にあるJava Persistence APIバージョン2.0仕様
http://download.oracle.com/javaee/6/tutorial/doc/bnbpy.html
にあるJava EE 6チュートリアルの第V部「永続性」
JPAを使用したJavaアプリケーションのプログラミングについて説明したサード・パーティの書籍
TopLinkの機能と概念の詳細は、第1章「概要」および『Oracle TopLinkの理解』を参照してください。
WebLogic Serverのプログラミングについては、WebLogic Serverのマニュアル・セット内の特に次などの任意のマニュアルを参照してください。
Oracle WebLogic Server用のEnterprise JavaBeansの構築
『Oracle WebLogic Serverアプリケーションの開発』
Oracle WebLogic Serverへのアプリケーションのデプロイ
Oracle WebLogic ServerのJDBCアプリケーションの開発
WebLogic Serverでデータベース接続を構成するには、JDBCデータ・ソースをWebLogic Serverドメインに追加します。各WebLogicデータ・ソースは、データベース接続のプールを保有しています。アプリケーションは、Java Naming and Directory Interface (JNDI) ツリー上またはローカルのアプリケーション・コンテキスト内でデータ・ソースを検索し、getConnection()
メソッドを使用してデータベース接続を予約します。データ・ソースおよびその接続プールは、システムの効率的な稼働を維持するための接続管理プロセスを備えています。
WebLogic ServerでJDBCを使用する方法の詳細は、次を参照してください。
WebLogic ServerでJDBCを使用する方法の完全なドキュメントは、『Oracle WebLogic Server JDBCデータ・ソースの管理』の次の項を特に参照してください。
WebLogic JDBCリソースの構成
JDBCデータ・ソースの構成
WebLogic Server管理コンソールでJDBCデータ・ソースを操作する方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDBCの構成に関する項のトピックを参照してください。
最も一般的なデータ・ソース構成は、グローバル・スコープのJNDIデータ・ソースで、トランザクション管理にJava Transaction API (JTA)を使用して、persistence.xml
ファイルに指定します。構成は次の手順のとおり簡単で、複数のアプリケーションがデータ・ソースにアクセスできます。
グローバル・スコープのJNDIデータ・ソースをWebLogic Server管理コンソールで設定するには、次を実行します。
Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDBC汎用データ・ソースの作成に関する項の説明に従って、新しいデータ・ソースを作成します。
注意: EclipseLinkは、名前による標準のJNDIデータ・ソース・ルックアップを使用してアクセスできるWebLogic Serverのデータ・ソースと互換性があります。これらの手順では、汎用データ・ソースのウィザードについて説明します。 |
必要に応じて、「新しいJDBCデータ・ソースの作成」ウィザードに値を入力します。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDBCデータ・ソースの作成に関する項を参照してください。
重要: JDBCデータ・ソースのプロパティ・ページの「JNDI名」に使用する値は、 |
Oracle WebLogic Server JDBCデータ・ソースの管理の接続プール機能の構成に関する項に従って、接続プールを構成します。接続プールの構成は、アプリケーションからの同時リクエストをEclipseLinkが処理する能力に影響を及ぼす可能性があります。リソースおよびアプリケーションの応答性を最適化するために接続プールをチューニングするのと同じ方法で、プロパティをチューニングしてください。
次の例3-1に示すとおり、persistence.xml
ファイルに、transaction-type
がJTA
であることを指定して、データ・ソースの名前をjta-data-source
要素(前にjdbc/
が付く場合とそうでない場合があります)に指定します。
例3-1 JTAを使用するJNDIデータ・ソースが指定されたpersistence.xmlファイル
... <persistence-unit name="example" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>JDBC Data Source-1</jta-data-source> <class>org.eclipse.persistence.example.jpa.server.business.Cell</class> <class>org.eclipse.persistence.example.jpa.server.business.CellAttribute</class> </persistence-unit>
トランザクション管理にJTAを使用するアプリケーション・スコープのデータ・ソースを構成するには、次の手順を実行します。
アプリケーション・スコープのデータ・ソースを定義するには、name
-jdbc.xml
JDBCモジュール・ファイルを作成して、アプリケーションのEARファイルのMETA-INF
フォルダに置きます。例3-2に示すとおり、そのファイルのjdbc-data-source-params
セクションに<scope>Application</scope>
を追加します。
例3-2 name-jdbc.xmlファイルに定義されたJDBCデータ・ソース
<jdbc-data-source ...>
...
<jdbc-data-source-params>
<jndi-name>SimpleAppScopedDS</jndi-name>
<scope>Application</scope>
</jdbc-data-source-params>
</jdbc-data-source>
ヒント: 3.2.6.2項「グローバル・スコープのJTAデータ・ソースの作成」の説明に従って、WebLogic Server管理コンソールからグローバル・スコープのデータ・ソースを作成すれば、
|
JDBCモジュール構成ファイルおよびjdbc-data-source
(<jdbc-driver-params
および<jdbc-connection-pool-params
を含む)の詳細は、『Oracle WebLogic Server JDBCデータ・ソースの管理』のWebLogic JDBCリソースの構成に関する項を参照してください。
例3-3に示すとおり、EARファイルの/META-INF/weblogic-application.xml
アプリケーション・デプロイメント・ディスクリプタにJDBCモジュールへの参照を追加します。これにより、アプリケーションで使用するデータ・ソースが登録されます。
例3-3 weblogic-application.xmlファイルに定義されたJDBCモジュール
<wls:module> <wls:name>SimpleAppScopedDS</wls:name> <wls:type>JDBC</wls:type> <wls:path>META-INF/simple-jdbc.xml</wls:path> </wls:module>
weblogic-application.xml
アプリケーション・デプロイメント・ディスクリプタの詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』のアプリケーション・デプロイメント・ディスクリプタの理解に関する項および『Oracle WebLogic Serverアプリケーションの開発』のエンタープライズ・アプリケーション・デプロイメント・ディスクリプタの要素に関する項を参照してください。
EclipseLinkランタイムがアプリケーション・スコープのデータ・ソースを遅延参照できるようにするには、persistence.xml
ファイルの永続性ユニットの定義に追加のデータ・ソース・プロパティを指定する必要があります。例3-4に示すとおり、JTAデータ・ソースの場合は、javax.persistence.jtaDataSource
完全修飾プロパティに値java:/app/jdbc/
data_source_name
を指定して追加します。
<jta-data-source>
プロパティの値と<javax.persistence.jtaDataSource>
プロパティの値は一致する必要があります。
例3-4 persistence.xmlファイル内のJTAデータ・ソースの定義
<?xml version="1.0" encoding="windows-1252" ?> <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="employee" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>java:/app/jdbc/SimpleAppScopedDS</jta-data-source> <properties> <property name="javax.persistence.jtaDataSource" value="java:/app/jdbc/SimpleAppScopedDS" /> </properties> </persistence-unit> </persistence>
アプリケーションが管理する非JTAデータ・ソースを構成するには、3.2.6.3項「アプリケーション・スコープのJTAデータ・ソースの構成」の説明と同じことをしますが、例3-5に示すとおり、非JTAデータ・ソースを指定して、非JTAデータ・ソースを使用するようにJPAの永続性を構成します。
例3-5 persistence.xmlファイル内の非JTAデータ・ソースの定義
<?xml version="1.0" encoding="windows-1252" ?> <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="employee" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <non-jta-data-source>OracleDS</non-jta-data-source> <properties> <property name="javax.persistence.nonJtaDataSource" value="OracleDS" /> </properties> </persistence-unit> </persistence>
たとえば、Oracle WebLogic Server JTAアプリケーションの開発のEJBアプリケーションのトランザクションに関する項に従って、トランザクションを処理するコードをアプリケーションに記述します。
データ・ソース構成の特定の設定は、アプリケーションのejbModule/META-INF/persistence.xml
ファイルの特定の設定と一致する必要があります。WebLogic Serverのデータ・ソース構成については、構成ファイルまたは管理コンソールで設定を確認できます。
管理コンソールでは、次のように設定を確認します。
「ドメイン構造」ツリーで「サービス」を開き、「データ・ソース」を選択します。
「JDBCデータ・ソースのサマリー」ページで、データ・ソースの名前をクリックします。
「data_source_nameの設定」→「構成」→「一般」ページで、localDSなどの「JNDI名」の値を検索します。JTAを使用している場合は、persistence.xml
ファイルの<jta-data-source>
と名前が一致する必要があります。
「data_source_nameの設定」→「構成」→「接続プール」ページで、これらの設定を確認します。
「URL」の値は、persistence.xml
ファイルのjavax.persistence.jdbc.url
の値、たとえばjdbc:oracle:thin:@127.0.0.1:1521:XE
と一致する必要があります。
「ドライバ・クラス名」の値は、persistence.xml
ファイルのjavax.persistence.jdbc.driver
の値、たとえば(JTAデータ・ソースの場合は)oracle.jdbc.xa.client.OracleXADataSource
と一致する必要があります。
例3-6では、ドメインのconfig.xml
ファイルとアプリケーションのpersistence.xml
ファイルで共有する必要がある値を示しています。
Oracle SpatialおよびOracle XDBマッピングの機能を(スタンドアロンのWebLogic ServerとJDeveloperに統合されたWebLogic Serverの両方で)完全にサポートするには、それぞれtoplink-spatial-template.jar
ファイルおよびtoplink-xdb-template.jar
ファイルを使用してWebLogic Serverドメインを拡張し、Oracle SpatialとOracle XDBをサポートする必要があります。
WebLogic Serverドメインを拡張するには、次の手順を実行します。
toplink-spatial-template.jar
ファイル(Oracle Spatialのサポート用)とtoplink-xdb-template.jar
ファイル(Oracle XDBのサポート用)を次の場所からダウンロードします。
構成ウィザード(WL_HOME
/common/bin/config.sh
(または.bat
))を起動します。
「既存のWebLogicドメインの拡張」を選択します。
WebLogic Serverドメインを参照して選択します。
「既存の拡張テンプレートを使用してドメインを拡張する」を選択します。
必要なテンプレートJARファイルを参照して選択します(Oracle Spatialの場合はtoplink-spatial-template.jar
、Oracle XDBの場合はtoplink-xdb-template.jar
)。
ウィザードの残りのページを完了します。
WebLogic Serverドメイン・テンプレートの使用方法の詳細は、ドメイン・テンプレート・リファレンスを参照してください。
WebLogic Serverヘのデプロイに関する詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のFusion Webアプリケーションのデプロイに関する項を参照してください。
デプロイされたアプリケーションをWebLogic Server管理コンソールから起動する手順の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのデプロイされたエンタープライズ・アプリケーションの起動と停止に関する項を参照してください。
WebLogic Server管理コンソールでは、永続性ユニットを構成して、永続性ユニットのJTAおよび非JTAのデータ・ソースを次のように構成できます。
まだ行っていない場合は、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします。
管理コンソールの左ペインで、「デプロイメント」を選択します。
右ペインで、構成するアプリケーションまたはモジュールを選択します。
「構成」を選択します。
「永続性」を選択します。
構成する永続性ユニットを表から選択します。
構成ページのプロパティを確認および編集します。ページのヘルプは、管理コンソールの上部の「ヘルプ」リンクをクリックすれば表示されます。
次のようなプロパティを表示できます。
名前
プロバイダ
説明
トランザクション・タイプ
データ・キャッシュ・タイムアウト
バッチ・サイズのフェッチ
デフォルト・スキーマ名
persistence.xml
ファイルに定義されている永続性ユニット・プロパティの値、たとえば、eclipselink.session-name
、eclipselink.logging.level
およびeclipselink.target-server
永続性ユニットのトランザクション・データ・ソースと非トランザクション・データ・ソースに関連する属性も「データ・ソース」構成ページに設定できます。
これらの変更を有効にするために、管理コンソールの「チェンジ・センター」で「変更のアクティブ化」をクリックします。
管理コンソールの永続性の操作に関する他のヘルプ・トピックへのリンクについては、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの目次で「永続性」を検索してください。
この章のソリューションが実装されているその他のテクノロジおよびツールの詳細は、次の参考資料を参照してください。
次などのOracle TopLink Java APIリファレンス
org.eclipse.persistence
org.eclipse.persistence.jpa.PersistenceProvider
org.eclipse.persistence.services.mbean