この章では、WebLogic ServerにデプロイされたTopLink Java Persistence API (JPA) 2.0のアプリケーションに対してTopLinkを永続性プロバイダとして使用する方法を説明します。
この章には次の項が含まれます:
WebLogic Serverは、エンタープライズ対応のスケーラブルなJava Platform, Enterprise Edition (Java EE)アプリケーション・サーバーです。WebLogic ServerにはJava EE 5.0の仕様が完全に実装されており、データベースやメッセージング・サービス、外部のエンタープライズ・システムへの接続など広範なサービスにアクセス可能な分散Javaアプリケーションを作成するための標準APIセットが用意されています。WebLogic Serverでは、Java EEの実装に加えて、堅牢かつセキュアで可用性が高くスケーラブルな環境にミッションクリティカルなアプリケーションを企業がデプロイできるようになっています。これらの特徴により、企業はWebLogic Serverインスタンスのクラスタを構成し、ロードを分散し、ハードウェアまたはその他の障害が発生した際にかわりとなる処理能力を提供できます。WebLogic Serverのこれらおよび他の機能の詳細は、WebLogic Serverの紹介を参照してください。
WebLogic Serverでは他の永続性プロバイダを使用でき、TopLinkは他のアプリケーション・サーバーで使用できるので、WebLogic ServerをTopLinkとともに使用すると、次のような多くの利点があります。
TopLinkはWebLogic Serverのすべてのディストリビューションに含まれているので、TopLinkをWebLogic Serverドメインのデフォルト永続性プロバイダにして、JPA 2.0をサポートするWebLogic Serverを構成できます。2.3.1項「タスク1: デフォルトJPAプロバイダとしてTopLinkを設定(WebLogic Server 11g)」および2.3.2項「タスク2: WebLogic Server 11gでJPA 2.0をサポートするためのパッチの適用」を参照してください。
Oracle WebLogic Suiteには、データ・キャッシング、データ・レプリケーションおよび分散コンピューティング・サービスを提供するJavaベースのインメモリー・データグリッド製品であるOracle Coherenceが含まれています。WebLogic ServerとCoherenceは密に統合されているので、アプリケーションはCoherenceのデータ・キャッシュを使用できます。WebLogic ServerのアプリケーションはTopLink Gridを使用できます。TopLink GridはTopLinkとCoherenceの間を統合したもので、TopLinkがCoherenceをエンティティのレベル(L2)キャッシュおよび永続性レイヤーとして使用できるようにします。これらの統合の使用方法は、このドキュメントでは説明しません。詳細は、Oracle Coherence開発者ガイドおよび『Oracle Fusion Middleware Oracle TopLinkのためのCoherence Grid統合ガイド』を参照してください。
注意: 別途ライセンスされた製品としてCoherenceを入手して、WebLogic Server Standard EditionおよびWebLogic Server Enterprise Editionを使用することもできます。詳細は、前述のリンクを参照してください。 |
WebLogic ServerのTopLinkロギング統合では、包括的な統合ロギング・インフラストラクチャが実現されています。2.3.5項「タスク5: ロギング統合の使用または再構成」を参照してください。
WebLogic Serverは、StrutsとJavaServer Faces (JSF)に基づいたエンド・ツー・エンドのJava EEフレームワークであるOracle Application Framework (ADF)をサポートしています。ADFでは、インフラストラクチャ・サービスおよび視覚的で宣言的な開発エクスペリエンスを実現することにより、アプリケーション開発が簡素化されています。TopLinkおよびADFをともに使用することにより、完全なJava EEアプリケーション・インフラストラクチャが実現されます。ADFの使用方法は、このドキュメントでは説明しません。『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。
WebLogic Server、TopLinkおよびADFはすべてJDeveloperと統合されています。JDeveloperは、TopLinkを永続性プロバイダとして使用し、WebLogic Serverにデプロイされるアプリケーションを含むJava EEアプリケーションのモデリング、開発、デバッグ、最適化およびデプロイをエンドツーエンドでサポートするOracleの統合開発環境(IDE)です。JDeveloperの使用方法は、このドキュメントでは説明しません。JDeveloperに関する一般的な情報は、http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html
を参照してください。JDeveloperのタスクに関する情報は、JDeveloper IDEのJDeveloperオンライン・ヘルプを参照してください。
図2-1は、他のOracle製品に対するWebLogic ServerとTopLinkの関係および使用方法を示しています。JDeveloper (またはOracle Enterprise Pack for EclipseまたはNetBeans)はJava EEアプリケーションの開発に使用できます。TopLinkは永続性プロバイダとして使用します。データ・キャッシング、データ・レプリケーションおよび分散コンピューティング・サービスには、Oracle Coherenceを(TopLink Gridの統合を介して)使用します。WebLogicはアプリケーション・サーバーとして使用し、TopLink JPAアプリケーションからデータの永続化に関してはOracleデータベースを使用し、TopLink MOXyアプリケーションからのデータの永続化に関してはXMLを使用します。
Oracle WebLogic Serverに対して、TopLink アプリケーションを開発およびデプロイするには、次のものが必要です。
WebLogic Server。このドキュメントは、Oracle WebLogic Serverリリース 11gR1 (10.3.6)に基づいています。
詳細およびダウンロードは、Oracle Technology Networkのhttp://www.oracle.com/technetwork/middleware/weblogic/overview/index.html
を参照してください。
Oracle、Oracle Express、MySQLなどのJDBC準拠データベース。
Oracleデータベースについては、http://www.oracle.com/technetwork/database/enterprise-edition/overview/index.html
を参照してください。Oracle 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 (OEPE)およびOracle NetBeansにはすべて、高度なJava EE開発ツールが用意されています。このドキュメントでは、WebLogic Serverのスタンドアロン・インスタンスについて説明しますが、JDeveloperとOEPEの両方にWebLogic Serverの埋込みバージョンが含まれています。
JDeveloperについては、http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html
を参照してください。OEPEについては、http://www.oracle.com/technetwork/developer-tools/eclipse/overview/index.html
を参照してください。NetBeansについては、http://www.oracle.com/us/products/tools/050845.html
を参照してください。
TopLink JPAアプリケーションをWebLogic Serverで実行するには、次の手順に示すように、WebLogic Serverを構成してサーバーとアプリケーションの特定の設定を調整する必要があります。
JPAアプリケーションのpersistence.xml
ファイルに、エンティティごとにどのJPA永続性プロバイダを使用するかを指定できます。ただし、永続性プロバイダが指定されていない場合は、WebLogic Serverに指定されているドメイン全体のデフォルト・プロバイダが使用されます。
注意: Oracle TopLinkは、WebLogic Server 12cのデフォルトのJPA永続性プロバイダなので、そのリリース以降でデフォルト・プロバイダとして使用する場合は何もする必要はありません。 |
Oracle TopLinkは、WebLogic Server 11g (10.3.n)のデフォルトのJPA永続性プロバイダとしては設定されていないので、これらのリリースではデフォルト・プロバイダになるように設定する必要があります。
注意: TopLinkがデフォルトの永続性プロバイダでない理由は、WebLogic Server 10.3の以前のバージョンとの下位互換性を維持するためです。これにより、永続性プロバイダを変更せずに、WebLogic Serverのバージョンを今後の10.3のパッチ・セットにアップグレードできようになっています。 |
デフォルト・プロバイダを変更しても、すでにデプロイされているアプリケーションには影響しません。設定は、サーバーを再起動またはアプリケーションを手動で再デプロイしたときに有効になります。
TopLinkをデフォルトのJPAプロバイダとしてWebLogic Server管理コンソールで指定するには:
WebLogic Serverを開始して、管理コンソールを開始します。
まだ行っていない場合は、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします。
管理コンソールの左ペインのドメイン構造の下で、ドメイン名を選択します。
「構成」→「一般」→「JPA」を選択します。
「デフォルトJPAプロバイダ」リストで、「TopLink」を選択します。
「保存」をクリックします。
これらの変更を有効にするために、管理コンソールの「チェンジ・センター」で「変更のアクティブ化」をクリックします。
WebLogic Server 11gR1 (10.3.6)はデフォルトでJPA 1.0をサポートしています。ただし、パッチを適用すれば、JPA 2.0をサポートできます。手順の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Enterprise JavaBeansバージョン3.0のプログラミング』のWebLogic ServerのTopLinkでJPA 2.0を使用する方法に関する項を参照してください。
注意: JPA 2.0には下位互換性があるので、JPA 1.0 APIを使用するアプリケーションをサポートできます。 |
注意: WebLogic Server 12cはデフォルトでJPA 2.0をサポートしています。 |
TopLinkにはEclipseLinkのすべてのライブラリが含まれています。これらのライブラリでは、JPA、MOXy、DBWSおよび他の永続性サービスおよび変換サービスがサポートされています。TopLinkのEclipseLinkのバージョンは、Eclipse Foundationから入手できる最新のバージョンではない可能性があります。ただし、WebLogic ServerのFilteringClassLoader
および共有ライブラリ機能を使用すれば、EclipseLinkのバージョンをアップグレードできます。
様々なリリースでサポートされている内容については、次を参照してください。
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のサポートに関する項
FilteringClassLoader
は、デプロイメント・ディスクリプタを構成して、特定のパッケージが常にシステム・クラス・ローダーではなくアプリケーションからロードされるように指定するためのメカニズムとして用意されています。このメカニズムを使用すれば、新しいバージョンのEclipseLinkがアプリケーションで使用されるように指定できます。クラスローダーのフィルタリングの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverアプリケーションの開発』のフィルタリング・クラスローダーの使用方法に関する項を参照してください。
共有ライブラリは、複数のエンタープライズ・アプリケーションで共有できるJava EEモジュールです。共有ライブラリはWebLogic Serverのターゲットにデプロイされ、その後アプリケーションで参照できるようになります。デプロイされると、WebLogic Serverでは、共有ライブラリの内容がアプリケーションとマージされます。さらに、共有ライブラリは標準のJava EEアーカイブとしてパッケージ化できるので、デプロイ時には、ディスクリプタもアプリケーションとマージされます。WebLogic Serverの共有ライブラリ詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverアプリケーションの開発』のJava EEの共有ライブラリおよびオプション・パッケージの作成に関する項を参照してください。
WebLogic Serverにデプロイされたアプリケーションで使用されるEclipseLinkのバージョンを更新するには、次を実行します:
必要なEclipseLinkのバージョンのeclipselink-
version_no
.zip
をhttp://www.eclipse.org/eclipselink/downloads/index.php
のEclipseLink Webサイトからダウンロードします。
次のアイテムを含む共有ライブラリを、eclipselink-shared-lib.ear
などの名前を付けた標準Java EE Enterprise Archive (EAR)として準備します。
META-INF/weblogic-application.xml META-INF/application.xml lib/eclipselink.jar
EARの作成の詳細は、『Oracle Fusion Middleware 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
ファイルに追加します。たとえば、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
eclipselink-shared-lib.ear
をWebLogic Serverにデプロイします。この結果、サーバー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のリソースを構成、監視および管理します。TopLinkのアプリケーションの場合、MBeanは永続性ユニットの様々な面の監視および設定に使用され、ロギングにも使用されます。
注意: TopLinkのアプリケーションがWebLogic Serverにデプロイされると、デプロイ時ではなくデータベースへの接続時にMBeanがデプロイされます。 |
WebLogic ServerでのMBeanの使用方法の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発』および『Oracle Fusion Middleware Oracle WebLogic Server JMXによる管理の容易なアプリケーションの開発』を参照してください。
WebLogic ServerでのTopLinkのロギングの詳細は、2.3.5項「タスク5: ロギング統合の使用または再構成」を参照してください。
デフォルトでは、EclipseLinkアプリケーションをOracle WebLogic Serverにデプロイすると、EclipseLinkのランタイムが、各EclipseLinkセッションのOracle WebLogic Server JMXサービスに対して、次のJava Management Extensions (JMX) MBeanをデプロイします。
org.eclipse.persistence.services.DevelopmentServices
: これは、EclipseLinkの内部的なEclipseLinkセッションをJMX経由で管理する機能を提供するためのクラスです。
org.eclipse.persistence.services.RuntimeServices
: これは、EclipseLinkの外部的なEclipseLinkセッションをJMX経由で管理する機能を提供するためのクラスです。
このJMX MBeanが公開するAPIを使用すれば、自分で記述したJMXコードを使用してTopLinkセッションの実行時にアクセスおよび構成をしたり、JConsoleなどのサード・パーティのJMX管理アプリケーションを使用してTopLinkアプリケーションを統合したりできます。
カスタムMBeanに関するアクセス情報を入手するには、まず匿名ルックアップを有効にしてから、別のツールを使用してMBean情報にアクセスします。
honeymoonerルックアップを管理コンソールで有効にするには、次を実行します:
まだ行っていない場合は、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします。
まず左側のペインで、ドメインを選択し、ドメインの「設定」ページを開きます。
「セキュリティ」→「一般」を展開します。
「匿名Adminのルックアップを有効化」を選択します。
これらの変更を有効にするために、管理コンソールの「チェンジ・センター」で「変更のアクティブ化」をクリックします。
様々なツールを使用してMBeanにアクセする方法の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JMXによる管理の容易なアプリケーションの開発』のカスタムMBeanへのアクセスに関する項を参照してください。
WebLogic Server管理コンソールのカスタムMBeanのモニタリングの詳細は、Oracle Fusion Middleware Oracle WebLogic Server管理コンソールのオンライン・ヘルプのカスタムMBeanの監視に関する項を参照してください。
デフォルトでは、TopLinkのロギングはWebLogic Serverのロギング・インフラストラクチャに統合されます。統合の動作の詳細およびそれをオーバーライドする方法は、次の項を参照してください。WebLogic Serverのロギングの詳細は、次を参照してください。
Oracle Fusion Middleware Oracle WebLogic Serverアプリケーション・ロギングのためのロギング・サービスの使用
Oracle Fusion Middleware Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・オンライン・ヘルプのロギングに関する項
JPA永続性ユニットに対するロギングの構成方法の詳細は、http://wiki.eclipse.org/EclipseLink/Examples/JPA/Logging
にあるEclipseLinkドキュメントの『How to Configure Logging』を参照してください。
デフォルトでは、WebLogic Serverのロギング実装は永続性コンテキストに注入されるので、WebLogic Serverのロギング構成に従ってTopLinkのすべてのロギング・メッセージが出力されるようになります。
この統合の結果、表2-1に示すように、TopLinkのロギング・レベルがWebLogic Serverのロギング・レベルに変換されます。
表2-1 WebLogic Serverのロギング・レベルへのTopLinkのロギング・レベルのマッピング
TopLinkのロギング・レベル | WebLogic Serverのロギング・レベル |
---|---|
ALL、FINEST、FINER、FINE |
DEBUG |
CONFIG |
INFO |
INFO |
NOTICE |
WARNING |
WARNING |
SEVERE |
ALERT |
OFF |
OFF |
表2-2に示すように、WebLogic Serverのロギング・レベルがTopLinkのレベルにマップされます。
2.3.11項「タスク12: WebLogic Serverの永続性設定の構成および監視」に説明されているように、永続性ユニットに定義されているTopLinkのロギング・レベルを管理コンソールに表示できます。ただし、デフォルトのWebLogic Server/TopLinkロギング統合を使用すると、persistence.xmlに設定されているこのロギング・レベルがオーバーライドされることに注意してください。統合をオーバーライドする手順は、次の2.3.5.3項「デフォルト・ロギング統合のオーバーライド」を参照してください。
デフォルト統合を使用すると、永続性に対するEJBロギング・オプションがすべてマップされて、管理コンソールのTopLinkのロギング出力が制御されます。
TopLinkのロギング・レベルはpersistence.xml
ファイルに設定します。ただし、WebLogic Severとのデフォルト・ロギング統合を受け入れると、これらの設定は無視され、WebLogic Serverに設定されているロギング構成が使用されます。TopLinkのロギング・レベルは、TopLinkのネイティブのロギング実装を使用する場合のみに使用されます。
次のようにeclipselink.logging.logger
プロパティ名を別の設定にすると、デフォルト・ロギング統合をオーバーライドできます。
TopLinkのデフォルト・ロギングを有効にするには、eclipselink.logging.logger
プロパティを次のように設定します。
<property name="eclipselink.logging.logger" value="DefaultLogger"/>
java.util.logging
を使用して、java.util.logging
などの別のロギング実装をTopLinkメッセージに対して使用することもできます。
<property name="eclipselink.logging.logger" value="JavaLogger"/>
TopLinkのネイティブのロギング実装を使用する場合は、登録されたログの宛先にWebLogic ServerがJava Virtual Machine (JVM)の出力をリダイレクトするように構成すれば、TopLinkのロギング・メッセージをWebLogic Serverドメインのログ・ファイルに引き続き表示できます。
リダイレクトの構成の詳細および手順は、『Oracle Fusion Middleware Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理』のJVM出力のリダイレクトに関する項を参照してください。管理コンソールでこのオプションを設定するには、Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJVM出力のリダイレクトに関する項を参照してください。
次の考慮事項に注意してください。
メッセージID 2005000
は、TopLinkのすべてのログ・メッセージに対して使用されています。
実行時にアプリケーションのエンティティ・マネージャ・ファクトリがTopLinkのロギング・インフラストラクチャおよびTopLinkのロギング設定のみを使用する場合でも、(ロギング・レベルの設定によっては)WebLogic Serverの統合ロガーによって処理される一部のロギング・メッセージがWebLogic Serverのコンソールまたはサーバー・ログにデプロイ中に表示される場合があります。
WebLogic ServerのインストールにバンドルされているEclipseLinkとは別のバージョンを(フィルタリング・クラスローダーを使用して)使用する場合に、デフォルトの統合ロギングを使用しようとすると、クラスローディングの競合のためにエラーが発生する可能性があります。この問題を回避するには、統合されたWebLogic Serverロガー以外のものにeclipselink.logging.logger
プロパティを明示的に設定してください。
TopLink JPAを使用してアプリケーションに対する永続性を実現することは、この章で説明する他のすべてのタスクで仮定されている基本的なタスクですが、実際のJPAプログラミング技法の大部分はこのドキュメントでは説明しません。WebLogic Serverでは、この章で説明する詳細以外に、TopLinkアプリケーションに対する特別な要件はありません。
これは、TopLinkが、Eclipse Foundationのオープン・ソースの永続性プロジェクトであるEclipseLinkに基づいているためです。EclipseLink 2.nは、Java Persistence APIバージョン2.0仕様のリファレンス実装です。TopLinkには、EclipseLinkのすべてのJARおよびOracleの追加のツールおよび機能が含まれています。そのため、TopLinkを使用して永続性レイヤーをJavaアプリケーションに追加する際には、JPAおよびEclipseLinkで提供されるすべての範囲の機能を利用できます。
この章では、TopLink (ランタイムおよび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/5/tutorial/doc/bnbpy.html
にあるJava EE 5チュートリアルの第V部「永続性」
JPAを使用したJavaアプリケーションのプログラミングについて説明したサード・パーティの書籍
TopLinkの機能と概念の詳細は、第1章「概要」および『Oracle Fusion Middleware Oracle TopLinkコンセプト』を参照してください。
関連するWebLogic Serverのプログラミング・トピックについては、WebLogic Serverのドキュメント・セットのドキュメント(『Oracle Fusion Middleware Oracle WebLogic Serverインフォメーション・ロードマップ』を参照)、特に次のドキュメントを参照してください。
『Oracle Fusion Middleware Oracle WebLogic Server Enterprise JavaBeansバージョン3.0のプログラミング』
『Oracle Fusion Middleware Oracle WebLogic Serverアプリケーションの開発』
『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』
『Oracle Fusion Middleware Oracle WebLogic Server JDBCのプログラミング』
WebLogic Serverでデータベース接続を構成するには、JDBCデータ・ソースをWebLogic Serverドメインに追加します。各WebLogicデータ・ソースは、データベース接続のプールを保有しています。各アプリケーションは、JNDIツリーまたはローカル・アプリケーション・コンテキストでデータ・ソースをルックアップし、getConnection()
メソッドを使用してデータベース接続を予約します。データ・ソースおよびその接続プールは、システムの効率的な稼働を維持するための接続管理プロセスを備えています。
WebLogic ServerでJDBCを使用する方法の詳細は、次を参照してください。
WebLogic ServerでJDBCを使用する方法の詳細なドキュメントは、『Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理』の次の項を特に参照してください。
WebLogic JDBCリソースの構成
JDBCデータ・ソースの構成
WebLogic管理コンソールでJDBCデータ・ソースを操作する方法の詳細は、Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDBCの構成に関する項にあるトピックを参照してください。
最も一般的なデータ・ソース構成は、グローバル・スコープのJNDIデータ・ソースで、トランザクション管理にJTAを使用して、persistence.xml
ファイルに指定します。構成は簡単で、複数のアプリケーションがデータ・ソースにアクセスできます。
次を実行します:
グローバル・スコープのJNDIデータ・ソースをWebLogic Server管理コンソールで設定するには、次を実行します:
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDBC汎用データ・ソースの作成に関する項の説明に従って、新しいデータ・ソースを作成します。
注意: TopLinkは、名前による標準のJNDIデータ・ソース・ルックアップを使用してアクセスできるWebLogic Serverのデータ・ソースと互換性があります。これらの手順では、汎用データ・ソースのウィザードについて説明します。 |
必要に応じて、「新しいJDBCデータ・ソースの作成」ウィザードに値を入力します。詳細は、Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDBCデータ・ソースの作成に関する項を参照してください。
重要: JDBCデータ・ソースのプロパティ・ページの「JNDI名」に使用する値は、 |
『Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理』の接続プール機能の構成に関する項の説明に従って、接続プールを構成します。接続プールの構成は、アプリケーションからの同時リクエストをTopLinkが処理する能力に影響を及ぼす可能性があります。リソースおよびアプリケーションの応答性を最適化するために接続プールをチューニングするのと同じ方法で、プロパティをチューニングしてください。
次の例2-1に示すように、persistence.xml
ファイルに、transaction-type
がJTA
であることを指定して、データ・ソースの名前をjta-data-source
要素(前にjdbc/
が付く場合とそうでない場合があります)に指定します。
例2-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
フォルダに置きます。例2-2に示すように、そのファイルのjdbc-data-source-params
セクションに<scope>Application</scope>
を追加します。
例2-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>
ヒント: 2.3.7.2項「グローバル・スコープのJTAデータ・ソースの作成」の説明に従って、WebLogic Server管理コンソールからグローバル・スコープのデータ・ソースを作成すれば、
|
JDBCモジュール構成ファイルおよびjdbc-data-source
(<jdbc-driver-params
および<jdbc-connection-pool-params
を含む)の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理』のWebLogic JDBCリソースの構成に関する項を参照してください。
例2-3に示すように、EARアーカイブの/META-INF/weblogic-application.xml
アプリケーション・デプロイメント・ディスクリプタにJDBCモジュールへの参照を追加します。これにより、アプリケーションで使用するデータ・ソースが登録されます。
例2-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 Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』のアプリケーション・デプロイメント・ディスクリプタの理解に関する項および『Oracle Fusion Middleware Oracle WebLogic Serverアプリケーションの開発』のエンタープライズ・アプリケーション・デプロイメント・ディスクリプタの要素に関する項を参照してください。
TopLinkランタイムがアプリケーション・スコープのデータ・ソースをレイジー・ルックアップできるようにするには、persistence.xml
の永続性ユニットの定義に追加のデータ・ソース・プロパティを指定する必要があります。例2-4に示すように、JTAデータ・ソースの場合は、javax.persistence.jtaDataSource
完全修飾プロパティに値java:/app/jdbc/
data_source_name
を指定して追加します。
<jta-data-source>
プロパティの値と<javax.persistence.jtaDataSource>
プロパティの値は一致する必要があります。
例2-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データ・ソースを構成するには、2.3.7.3項「アプリケーション・スコープのJTAデータ・ソースの構成」の説明と同じことをしますが、例2-5に示すように、非JTAデータ・ソースを指定して、非JTAデータ・ソースを使用するようにJPAの永続性を構成します。
例2-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 Fusion Middleware 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
と一致する必要があります。
次の例は、ドメインのconfig.xml
ファイルとアプリケーションのpersistence.xml
ファイルで共有する必要がある値を示しています。
Oracle SpatialおよびOracle XDBマッピングの機能を(スタンドアロンのOracle WebLogic ServerとOracle JDeveloperに統合されたWebLogic Serverの両方で)完全にサポートするには、それぞれtoplink-spatial-template.jar
およびtoplink-xdb-template.jar
を使用してWebLogic Serverドメインを拡張し、Oracle Spatialと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ドメイン・テンプレートの使用方法の詳細は、『Oracle Fusion Middlewareドメイン・テンプレート・リファレンス』を参照してください。
WebLogic Serverへのデプロイの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。『Oracle Fusion Middleware Oracle Application Development FrameworkのためのFusion開発者ガイド』のFusion Webアプリケーションのデプロイに関する項も参照してください。
デプロイされたアプリケーションをWebLogic管理コンソールから起動する手順の詳細は、管理コンソール・オンライン・ヘルプのデプロイされたエンタープライズ・アプリケーションの起動と停止に関する項を参照してください。
WebLogic Server管理コンソールでは、永続性ユニットを構成して、永続性ユニットのJTAおよび非JTAのデータ・ソースを構成できます。次に方法を説明します。
まだ行っていない場合は、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします。
管理コンソールの左ペインで、「デプロイメント」を選択します。
右ペインで、構成するアプリケーションまたはモジュールを選択します。
「構成」を選択します。
「永続性」を選択します。
構成する永続性ユニットを表から選択します。
構成ページのプロパティを確認および編集します。ページのヘルプは、管理コンソールの上部の「ヘルプ」リンクをクリックすれば表示されます。
次のようなプロパティを表示できます。
名前
プロバイダ
説明
トランザクション・タイプ
データ・キャッシュ・タイムアウト
バッチ・サイズのフェッチ
デフォルト・スキーマ名
名前
persistence.xml
ファイルに定義されている永続性ユニット・プロパティの値、たとえば、eclipselink.session-name
、eclipselink.logging.level
およびeclipselink.target-server
。
永続性ユニットのトランザクション・データ・ソースと非トランザクション・データ・ソースに関連する属性も「データ・ソース」構成ページに設定できます。
これらの変更を有効にするために、管理コンソールの「チェンジ・センター」で「変更のアクティブ化」をクリックします。
管理コンソールの永続性の操作に関する他のヘルプ・トピックへのリンクについては、管理コンソール・オンライン・ヘルプの目次で「永続性(Persistence)」を検索してください。