ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLinkソリューション・ガイド
11g リリース1 (11.1.1)
B66616-01
  目次へ移動
目次

前
 
次
 

2 WebLogic ServerでのTopLinkの使用

この章では、WebLogic ServerにデプロイされたTopLink Java Persistence API (JPA) 2.0のアプリケーションに対してTopLinkを永続性プロバイダとして使用する方法を説明します。

この章には次の項が含まれます:

2.1 TopLinkおよびWebLogic Serverの理解

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の紹介を参照してください。

2.1.1 WebLogic ServerでTopLinkを使用する利点

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.2 他のFusion Middleware製品に対するTopLinkの関係

図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を使用します。

図2-1 WebLogic Server、TopLinkおよび関連製品の関係

図2-1の説明が続きます
図2-1「WebLogic Server、TopLinkおよび関連製品の関係」の説明

2.2 開始時の必要事項

Oracle WebLogic Serverに対して、TopLink アプリケーションを開発およびデプロイするには、次のものが必要です。

2.3 主なタスク

TopLink JPAアプリケーションをWebLogic Serverで実行するには、次の手順に示すように、WebLogic Serverを構成してサーバーとアプリケーションの特定の設定を調整する必要があります。

2.3.1 タスク1: デフォルトJPAプロバイダとしてTopLinkを設定(WebLogic Server 11g)

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管理コンソールで指定するには:

  1. WebLogic Serverを開始して、管理コンソールを開始します。

  2. まだ行っていない場合は、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします。

  3. 管理コンソールの左ペインのドメイン構造の下で、ドメイン名を選択します。

  4. 「構成」→「一般」→「JPA」を選択します。

  5. 「デフォルトJPAプロバイダ」リストで、「TopLink」を選択します。

  6. 「保存」をクリックします。

  7. これらの変更を有効にするために、管理コンソールの「チェンジ・センター」で「変更のアクティブ化」をクリックします。

2.3.2 タスク2: WebLogic Server 11gでJPA 2.0をサポートするためのパッチの適用

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をサポートしています。


2.3.3 タスク3: WebLogic ServerのEclipseLinkのバージョンの更新

TopLinkにはEclipseLinkのすべてのライブラリが含まれています。これらのライブラリでは、JPA、MOXy、DBWSおよび他の永続性サービスおよび変換サービスがサポートされています。TopLinkのEclipseLinkのバージョンは、Eclipse Foundationから入手できる最新のバージョンではない可能性があります。ただし、WebLogic ServerのFilteringClassLoaderおよび共有ライブラリ機能を使用すれば、EclipseLinkのバージョンをアップグレードできます。

様々なリリースでサポートされている内容については、次を参照してください。

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のバージョンを更新するには、次を実行します:

  1. 必要なEclipseLinkのバージョンのeclipselink-version_no.ziphttp://www.eclipse.org/eclipselink/downloads/index.phpのEclipseLink Webサイトからダウンロードします。

  2. 次のアイテムを含む共有ライブラリを、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アプリケーションの作成と構成に関する項を参照してください。

  3. 次に示すように、サブ要素<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>
    
  4. アプリケーションのapplication.xmlファイルを作成します。このファイルは、ランタイム・ライブラリのマージをサポートするために必要です。最小構成は次のとおりです。

    <application>
      <display-name>eclipselink-shared-lib</display-name>
      <module>
            <java></java>
      </module>
    </application>
    
  5. 拡張の名前、仕様バージョンおよび実装バージョンを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
    
  6. eclipselink-shared-lib.earをWebLogic Serverにデプロイします。この結果、サーバーeclipselink#2.0@2.2.0で新しいライブラリが使用可能になります。

  7. 次に示すように、更新されたバージョンの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>
    

2.3.4 タスク4: WebLogic ServerのJMX MBean拡張の構成

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ルックアップを管理コンソールで有効にするには、次を実行します:

  1. まだ行っていない場合は、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします。

  2. まず左側のペインで、ドメインを選択し、ドメインの「設定」ページを開きます。

  3. 「セキュリティ」→「一般」を展開します。

  4. 「匿名Adminのルックアップを有効化」を選択します。

  5. これらの変更を有効にするために、管理コンソールの「チェンジ・センター」で「変更のアクティブ化」をクリックします。

様々なツールを使用してMBeanにアクセする方法の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JMXによる管理の容易なアプリケーションの開発』のカスタムMBeanへのアクセスに関する項を参照してください。

WebLogic Server管理コンソールのカスタムMBeanのモニタリングの詳細は、Oracle Fusion Middleware Oracle WebLogic Server管理コンソールのオンライン・ヘルプのカスタムMBeanの監視に関する項を参照してください。

2.3.5 タスク5: ロギング統合の使用または再構成

デフォルトでは、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』を参照してください。

2.3.5.1 ロギング統合の動作方法

デフォルトでは、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-2 TopLinkのロギング・レベルへのWebLogic Serverのロギング・レベルのマッピング

WebLogic Serverのロギング・レベル TopLinkのロギング・レベル

TRACE、DEBUG

FINEST

INFO

CONFIG

NOTICE

INFO

WARNING

WARNING

ERROR、CRITICAL、ALERT

SEVERE

EMERGENCY、OFF

OFF


2.3.5.2 管理コンソールでの永続性ユニットのロギング・レベルの表示

2.3.11項「タスク12: WebLogic Serverの永続性設定の構成および監視」に説明されているように、永続性ユニットに定義されているTopLinkのロギング・レベルを管理コンソールに表示できます。ただし、デフォルトのWebLogic Server/TopLinkロギング統合を使用すると、persistence.xmlに設定されているこのロギング・レベルがオーバーライドされることに注意してください。統合をオーバーライドする手順は、次の2.3.5.3項「デフォルト・ロギング統合のオーバーライド」を参照してください。

デフォルト統合を使用すると、永続性に対するEJBロギング・オプションがすべてマップされて、管理コンソールのTopLinkのロギング出力が制御されます。

2.3.5.3 デフォルト・ロギング統合のオーバーライド

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"/>

2.3.5.4 TopLinkのロギングを公開するためのWebLogic Serverの構成

TopLinkのネイティブのロギング実装を使用する場合は、登録されたログの宛先にWebLogic ServerがJava Virtual Machine (JVM)の出力をリダイレクトするように構成すれば、TopLinkのロギング・メッセージをWebLogic Serverドメインのログ・ファイルに引き続き表示できます。

リダイレクトの構成の詳細および手順は、『Oracle Fusion Middleware Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理』のJVM出力のリダイレクトに関する項を参照してください。管理コンソールでこのオプションを設定するには、Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJVM出力のリダイレクトに関する項を参照してください。

2.3.5.5 その他の考慮事項

次の考慮事項に注意してください。

  • メッセージID 2005000は、TopLinkのすべてのログ・メッセージに対して使用されています。

  • 実行時にアプリケーションのエンティティ・マネージャ・ファクトリがTopLinkのロギング・インフラストラクチャおよびTopLinkのロギング設定のみを使用する場合でも、(ロギング・レベルの設定によっては)WebLogic Serverの統合ロガーによって処理される一部のロギング・メッセージがWebLogic Serverのコンソールまたはサーバー・ログにデプロイ中に表示される場合があります。

  • WebLogic ServerのインストールにバンドルされているEclipseLinkとは別のバージョンを(フィルタリング・クラスローダーを使用して)使用する場合に、デフォルトの統合ロギングを使用しようとすると、クラスローディングの競合のためにエラーが発生する可能性があります。この問題を回避するには、統合されたWebLogic Serverロガー以外のものにeclipselink.logging.loggerプロパティを明示的に設定してください。

2.3.6 タスク6: TopLinkを使用した、Javaアプリケーションへの永続性の追加

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アプリケーションの開発、パッケージ化およびデプロイの詳細は、次を参照してください。

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のプログラミング』

2.3.7 タスク7: データ・ソースの構成

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の構成に関する項にあるトピックを参照してください。

2.3.7.1 JPAアプリケーションのデータ・ソースを構成する方法

WebLogic ServerにデプロイされたJPAアプリケーションのデータ・ソースは、次のような様々な方法で構成できます。

2.3.7.2 グローバル・スコープのJTAデータ・ソースの構成

最も一般的なデータ・ソース構成は、グローバル・スコープのJNDIデータ・ソースで、トランザクション管理にJTAを使用して、persistence.xmlファイルに指定します。構成は簡単で、複数のアプリケーションがデータ・ソースにアクセスできます。

次を実行します:

2.3.7.2.1 WebLogic Serverでのデータ・ソースの作成

グローバル・スコープのJNDIデータ・ソースをWebLogic Server管理コンソールで設定するには、次を実行します:

  1. Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDBC汎用データ・ソースの作成に関する項の説明に従って、新しいデータ・ソースを作成します。


    注意:

    TopLinkは、名前による標準のJNDIデータ・ソース・ルックアップを使用してアクセスできるWebLogic Serverのデータ・ソースと互換性があります。これらの手順では、汎用データ・ソースのウィザードについて説明します。


  2. 必要に応じて、「新しいJDBCデータ・ソースの作成」ウィザードに値を入力します。詳細は、Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJDBCデータ・ソースの作成に関する項を参照してください。


    重要:

    JDBCデータ・ソースのプロパティ・ページの「JNDI名」に使用する値は、persistence.xml<jta-data-source>要素に使用する値と同じである必要があります。


  3. 『Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理』の接続プール機能の構成に関する項の説明に従って、接続プールを構成します。接続プールの構成は、アプリケーションからの同時リクエストをTopLinkが処理する能力に影響を及ぼす可能性があります。リソースおよびアプリケーションの応答性を最適化するために接続プールをチューニングするのと同じ方法で、プロパティをチューニングしてください。

2.3.7.2.2 persisence.xmlの構成

次の例2-1に示すように、persistence.xmlファイルに、transaction-typeJTAであることを指定して、データ・ソースの名前を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>

2.3.7.3 アプリケーション・スコープのJTAデータ・ソースの構成

トランザクション管理にJTAを使用するアプリケーション・スコープのデータ・ソースを構成するには、次のタスクを実行します。

  1. データ・ソースがアプリケーション・スコープであることの指定

  2. WebLogicのアプリケーション構成へのJDBCモジュールの追加

  3. JTAデータ・ソースを使用するためのJPA永続性ユニットの構成

2.3.7.3.1 データ・ソースがアプリケーション・スコープであることの指定

アプリケーション・スコープのデータ・ソースを定義するには、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管理コンソールからグローバル・スコープのデータ・ソースを作成すれば、name-jdbc.xmlファイルのフレームワークを作成できますが、次の点が異なります。

  • データ・ソースをサーバーに関連付けないでください

  • <scope>要素を手動で追加してください


JDBCモジュール構成ファイルおよびjdbc-data-source (<jdbc-driver-paramsおよび<jdbc-connection-pool-paramsを含む)の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの構成と管理』のWebLogic JDBCリソースの構成に関する項を参照してください。

2.3.7.3.2 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アプリケーションの開発』のエンタープライズ・アプリケーション・デプロイメント・ディスクリプタの要素に関する項を参照してください。

2.3.7.3.3 JTAデータ・ソースを使用するためのJPA永続性ユニットの構成

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>
        

2.3.7.4 非JTAデータ・ソースの構成およびアプリケーションのトランザクション管理

アプリケーションが管理する非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アプリケーションのトランザクションに関する項に説明されているように、トランザクションを処理するコードをアプリケーションに記述します。

2.3.7.5 設定の一致の確認

データ・ソース構成の特定の設定は、アプリケーションのejbModule/META-INF/persistence.xmlファイルの特定の設定と一致する必要があります。WebLogic Serverのデータ・ソース構成については、構成ファイルまたは管理コンソールで設定を確認できます。

管理コンソールでは、次のように設定を確認します。

  1. 「ドメイン構造」ツリーで「サービス」を開き、「データ・ソース」を選択します。

  2. 「JDBCデータ・ソースのサマリー」ページで、データ・ソースの名前をクリックします。

  3. data_source_nameの設定」→「構成」→「一般」ページで、localDSなどの「JNDI名」の値を検索します。JTAを使用している場合は、persistence.xml<jta-data-source>と名前が一致する必要があります。

  4. data_source_nameの設定」→「構成」→「接続プール」ページで、これらの設定を確認します。

    • 「URL」の値は、persistence.xmljavax.persistence.jdbc.urlの値、たとえばjdbc:oracle:thin:@127.0.0.1:1521:XEと一致する必要があります。

    • 「ドライバ・クラス名」の値は、persistence.xmljavax.persistence.jdbc.driverの値、たとえば(JTAデータ・ソースの場合は)oracle.jdbc.xa.client.OracleXADataSourceと一致する必要があります。

次の例は、ドメインのconfig.xmlファイルとアプリケーションのpersistence.xmlファイルで共有する必要がある値を示しています。

例2-6 サーバー・ドメインのconfig.xmlファイル

...
<domain...>
  <jdbc-system-resource>
    <name>localJTA</name>
    <target>AdminServer,ManagedServer_1,ManagedServer_2</target>
    <descriptor-file-name>jdbc/localJTA-4636-jdbc.xml</descriptor-file-name>
  </jdbc-system-resource>
</domain>

2.3.8 タスク8: Oracleデータベースの高度な機能を使用するためのドメインの拡張

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ドメインを拡張するには、次の手順を実行します。

  1. toplink-spatial-template.jarファイル(Oracle Spatialのサポート用)とtoplink-xdb-template.jarファイル(Oracle XDBのサポート用)を次の場所からダウンロードします。

  2. 表2-3および表2-4に示されているように、ファイルをコピーします。

    表2-3 Oracle Spatialをサポートするためのファイル

    ファイル コピー元 目的

    sdoapi.jar

    ORACLE_DATABASE_HOME/md/jlib

    WL_HOME/server/lib


    表2-4 Oracle XDBをサポートするためのファイル

    ファイル コピー元 目的

    xdb.jar

    ORACLE_DATABASE_HOME/rdbms/jlib

    WL_HOME/server/lib

    xml.jar

    ORACLE_DATABASE_HOME/lib

    WL_HOME/server/lib

    xmlparserv2.jar

    ORACLE_DATABASE_HOME/lib

    WL_HOME/server/lib


  3. 構成ウィザード(WL_HOME/common/bin/config.sh (または.bat))を起動します。

  4. 「既存のWebLogicドメインの拡張」を選択します。

  5. WebLogic Serverドメインを参照して選択します。

  6. 「既存の拡張テンプレートを使用してドメインを拡張する」を選択します。

  7. 必要なテンプレートJARを参照して選択します(Oracle Spatialの場合はtoplink-spatial-template.jar、Oracle XDBの場合はtoplink-xdb-template.jar)。

  8. ウィザードの残りのページを完了します。

WebLogic Serverドメイン・テンプレートの使用方法の詳細は、『Oracle Fusion Middlewareドメイン・テンプレート・リファレンス』を参照してください。

2.3.9 タスク10: WebLogic Serverの起動とアプリケーションのデプロイ

WebLogic Serverへのデプロイの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。『Oracle Fusion Middleware Oracle Application Development FrameworkのためのFusion開発者ガイド』のFusion Webアプリケーションのデプロイに関する項も参照してください。

2.3.10 タスク11: アプリケーションの実行

デプロイされたアプリケーションをWebLogic管理コンソールから起動する手順の詳細は、管理コンソール・オンライン・ヘルプのデプロイされたエンタープライズ・アプリケーションの起動と停止に関する項を参照してください。

2.3.11 タスク12: WebLogic Serverの永続性設定の構成および監視

WebLogic Server管理コンソールでは、永続性ユニットを構成して、永続性ユニットのJTAおよび非JTAのデータ・ソースを構成できます。次に方法を説明します。

  1. まだ行っていない場合は、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします。

  2. 管理コンソールの左ペインで、「デプロイメント」を選択します。

  3. 右ペインで、構成するアプリケーションまたはモジュールを選択します。

  4. 「構成」を選択します。

  5. 「永続性」を選択します。

  6. 構成する永続性ユニットを表から選択します。

  7. 構成ページのプロパティを確認および編集します。ページのヘルプは、管理コンソールの上部の「ヘルプ」リンクをクリックすれば表示されます。

    次のようなプロパティを表示できます。

    • 名前

    • プロバイダ

    • 説明

    • トランザクション・タイプ

    • データ・キャッシュ・タイムアウト

    • バッチ・サイズのフェッチ

    • デフォルト・スキーマ名

    • 名前

    • persistence.xmlファイルに定義されている永続性ユニット・プロパティの値、たとえば、eclipselink.session-nameeclipselink.logging.levelおよびeclipselink.target-server

    永続性ユニットのトランザクション・データ・ソースと非トランザクション・データ・ソースに関連する属性も「データ・ソース」構成ページに設定できます。

  8. これらの変更を有効にするために、管理コンソールの「チェンジ・センター」で「変更のアクティブ化」をクリックします。

管理コンソールの永続性の操作に関する他のヘルプ・トピックへのリンクについては、管理コンソール・オンライン・ヘルプの目次で「永続性(Persistence)」を検索してください。

2.4 その他の参照資料

Oracle TopLinkおよびOracle WebLogic Serverの詳細は、次のリンクを参照してください。

2.4.2 関連Javadoc

詳細は、『Oracle Fusion Middleware Java API Reference for EclipseLink』の次のAPIを参照してください。

  • org.eclipse.persistence

  • org.eclipse.persistence.jpa.PersistenceProvider

  • org.eclipse.persistence.services.mbean