3 WebLogic ServerでのTopLinkの使用

この章では、Oracle TopLinkOracle WebLogic Serverにデプロイされたアプリケーションの永続性プロバイダとして使用する方法を説明します。

この章の内容は次のとおりです。

ユース・ケース

WebLogic Serverの開発者、管理者およびユーザーは、TopLinkの永続性および変換サービスをすべて利用したいと考えています。

解決方法

WebLogic Serverでは他の永続性プロバイダを使用でき、TopLinkは他のアプリケーション・サーバーで使用できるので、WebLogic ServerTopLinkとともに使用すると、多くの利点があります。

コンポーネント

  • WebLogic Server 12c以上。WebLogic ServerTopLinkが含まれます。

    注意:

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

ソリューションの概要

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 ServerTopLinkを使用する利点

WebLogic Serverでは他の永続性プロバイダを使用でき、TopLinkは他のアプリケーション・サーバーで使用できるので、WebLogic ServerTopLinkとともに使用すると、多くの利点があります。

  • 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 ServerEclipseLinkのロギングを統合することにより、包括的な統合ロギング・インフラストラクチャが実現されています。「タスク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 ServerTopLinkおよび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オンライン・ヘルプを参照してください。

TopLinkおよびその他のFusion Middleware製品

図3-1は、他のOracle製品に対するWebLogic ServerTopLinkの関係および使用方法を示しています。次のように、製品をともに使用することが可能です。

  • JDeveloper (またはOracle Enterprise Pack for EclipseまたはNetBeans)をJava EEアプリケーションの開発に使用します。

  • 永続性プロバイダとしてEclipseLinkを使用します。

  • データのキャッシュ、データのレプリケーション、分散コンピューティング・サービスに(TopLink Gridへの統合を介して)Oracle Coherenceを使用します。

  • アプリケーション・サーバーとしてWebLogicを使用します。

  • EclipseLink JPAアプリケーションからのデータを永続化するにはOracle Databaseを使用し、EclipseLink JAXBアプリケーションからデータを永続化するには、XMLを使用します。

図3-1 WebLogic ServerTopLinkおよび関連製品の関係

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

ソリューションの実装

タスク1: 前提条件

このドキュメントは、次の製品およびツールに基づいていますが、原則は、サポートされているすべてのデータベースまたは開発環境に適用できます。後の項で特記されている場合以外、ソフトウェアはすでにインストールされているものと仮定しています。

オプションのタスク: WebLogic ServerでのEclipseLinkのリリースの更新(オプション)

古いバージョンの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ライブラリおよびオプション・パッケージの作成」を参照してください。

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

WebLogic ServerEclipseLinkのリリースを更新するには、次の手順を実行します。

  1. http://www.oracle.com/technetwork/middleware/toplink/downloads/index.htmlから必要なTopLinkのバージョンをダウンロードし、eclipselink.jarファイルを探します。TopLinkのクイック・インストーラを使用して作成されたディレクトリでは、eclipselink.jarファイルは、oracle_common\modules\oracle.toplink_version_noにあります。クイック・インストーラの詳細は、「Oracle TopLinkのインストール」を参照してください。
  2. アプリケーションのlibディレクトリにeclipselink.jarファイルを配置します。
  3. 次のアイテムを含む共有ライブラリを、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アプリケーションの作成と構成」を参照してください。

  4. 次に示すとおり、サブ要素<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>
    
  5. アプリケーションのapplication.xmlファイルを作成します。このファイルは、ランタイム・ライブラリのマージをサポートするために必要です。最小構成は次のとおりです。
    <application>
      <display-name>eclipselink-shared-lib</display-name>
      <module>
            <java></java>
      </module>
    </application>
    
  6. 拡張の名前、仕様バージョンおよび実装バージョンを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
    
  7. WebLogic Servereclipselink-shared-lib.earファイルをデプロイします。この結果、サーバーeclipselink#2.0@2.2.0で新しいライブラリが使用可能になります。
  8. 次に示すとおり、更新されたリリースの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>

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

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のロギングの詳細は、「タスク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の管理コンソールで匿名参照を有効にするには、次の手順を実行します。

  1. まだ行っていない場合は、管理コンソールの「チェンジ・センター」で、「ロックして編集」をクリックします
  2. まず左側のペインで、ドメインを選択し、ドメインの「設定」ページを開きます。
  3. 「セキュリティ」→「一般」を展開します。
  4. 「匿名Adminのルックアップを有効化」を選択します。
  5. 管理コンソールのチェンジ・センターで「変更のアクティブ化」をクリックしてこれらの変更をアクティブ化します。

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

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

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

デフォルトでは、EclipseLinkのロギングはWebLogic Serverのロギング・インフラストラクチャに統合されます。統合の動作の詳細およびそれをオーバーライドする方法は、次の項を参照してください。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 EclipseLinkのロギング・レベルへのWebLogic Serverのロギング・レベルのマッピング

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

TRACE、DEBUG

FINEST

INFO

CONFIG

NOTICE

INFO

WARNING

WARNING

ERROR、CRITICAL、ALERT

SEVERE

EMERGENCY、OFF

OFF

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

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

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

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

EclipseLinkのロギング・レベルはpersistence.xmlファイルに設定します。ただし、WebLogic Serverとのデフォルト・ロギング統合を受け入れると、これらの設定は無視され、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の構成

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プロパティを明示的に設定してください。

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

EclipseLink JPAを使用してアプリケーションに対する永続性を実現することは、この章で説明する他のすべてのタスクで仮定されている基本的なタスクですが、実際のJPAプログラミング技法の大部分はこのドキュメントでは説明しません。WebLogic Serverでは、この章で説明する詳細以外に、EclipseLinkアプリケーションに対する特別な要件はありません。

この章では、EclipseLink (ランタイムおよびAPI)をWebLogic Server使用する場合に固有の機能、設定およびタスクについて説明します。JPAを使用したJavaアプリケーションの開発、パッケージ化およびデプロイの詳細は、次を参照してください。

TopLinkの機能と概念の詳細は、「概要」および『Oracle TopLinkの理解』を参照してください。

WebLogic Serverのプログラミングについては、WebLogic Serverのマニュアル・セット内の特に次などの任意のマニュアルを参照してください。

タスク6: データ・ソースの構成

WebLogic Serverでデータベース接続を構成するには、JDBCデータ・ソースをWebLogic Serverドメインに追加します。各WebLogicデータ・ソースは、データベース接続のプールを保有しています。アプリケーションは、Java Naming and Directory Interface (JNDI) ツリー上またはローカルのアプリケーション・コンテキスト内でデータ・ソースを検索し、getConnection()メソッドを使用してデータベース接続を予約します。データ・ソースおよびその接続プールは、システムの効率的な稼働を維持するための接続管理プロセスを備えています。

WebLogic ServerでJDBCを使用する方法の詳細は、次を参照してください。

JPAアプリケーションのデータ・ソースを構成する方法
グローバル・スコープのJTAデータ・ソースの構成

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

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

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

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

    注意:

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

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

    注意:

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

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

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

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

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

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

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

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

アプリケーション・スコープのデータ・ソースを定義するには、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>

注意:

「グローバル・スコープのJTAデータ・ソースの構成」の説明に従って、WebLogic Server管理コンソールからグローバル・スコープのデータ・ソースを作成すれば、name-jdbc.xmlファイルのフレームワークを作成できますが、次の点が異なります。

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

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

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

WebLogic Serverのアプリケーション構成への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アプリケーションの開発』「エンタープライズ・アプリケーションのデプロイメント記述子の要素」を参照してください。

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

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データ・ソースの構成およびアプリケーションのトランザクション管理

アプリケーションが管理する非JTAデータ・ソースを構成するには、「アプリケーション・スコープの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のデータ・ソース構成については、構成ファイルまたは管理コンソールで設定を確認できます。

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

  1. 「ドメイン構造」ツリーで「サービス」を開き、「データ・ソース」を選択します。
  2. 「JDBCデータ・ソースのサマリー」ページで、データ・ソースの名前をクリックします。
  3. data_source_nameの設定」→「構成」→「一般」ページで、localDSなどの「JNDI名」の値を検索します。JTAを使用している場合は、persistence.xmlファイルの<jta-data-source>と名前が一致する必要があります。
  4. 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ファイル

...
<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>

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

タスク7: Oracle Databaseの高度な機能を使用するためのドメインの拡張

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ドメインを拡張する手順:

  1. toplink-spatial-template.jarファイル(Oracle Spatialのサポート用)とtoplink-xdb-template.jarファイル(Oracle XDBのサポート用)を次の場所からダウンロードします。
  2. 表3-3および表3-4に示されているファイルをコピーします。

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

    ファイル コピー元 目的

    sdoapi.jar

    ORACLE_DATABASE_HOME/md/jlib

    WL_HOME/server/lib

    表3-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ドメイン・テンプレートの使用方法の詳細は、ドメイン・テンプレート・リファレンスを参照してください。

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

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

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

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

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

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

  1. まだ行っていない場合は、管理コンソールの「チェンジ・センター」で、「ロックして編集」をクリックします
  2. 管理コンソールの左ペインで、「デプロイメント」を選択します。
  3. 右ペインで、構成するアプリケーションまたはモジュールを選択します。
  4. 「構成」を選択します。
  5. 「永続性」を選択します。
  6. 構成する永続性ユニットを表から選択します。
  7. 構成ページのプロパティを確認および編集します。ページのヘルプは、管理コンソールの上部の「ヘルプ」リンクをクリックすれば表示されます。

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

    • 名前

    • プロバイダ

    • 説明

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

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

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

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

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

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

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

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

その他の参考資料

この章のソリューションが実装されているその他のテクノロジおよびツールの詳細は、次の参考資料を参照してください。