ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLinkソリューション・ガイド
12c (12.1.2)
E47993-02
  目次へ移動
目次

前
 
次
 

6 IBM WebSphere Application ServerでTopLinkを使用する方法

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

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

ユース・ケース

TopLinkは、WebSphere Application Serverを含む多くの一般的なJava EEアプリケーション・サーバーで使用できます。

解決方法

WebSphereを構成し、EclipseLinkランタイムを使用して、EclipseLink APIを使用して開発されたアプリケーションをデプロイします。

コンポーネント

6.1 ソリューションの概要

WebSphere Application Serverでは、Java Platform, Enterprise Edition (Java EE)が実装されます。WebSphere V8.5はJava EE 6を完全にサポートし、プラグインを介してJava Platform, Standard Edition (Java SE) 7をサポートできます。

EclipseLinkをサポートするようにWebSphereを構成することにより、EclipseLinkが完全にサポートしているJava Persistence API (JPA)およびEclipseLinkの多くの拡張を利用するアプリケーションを作成およびデプロイできます。

6.2 ソリューションの実装

IBM WebSphereでEclipseLinkアプリケーションを開発、デプロイおよび実行するには、EclipseLinkを含む様々なモジュールをWebSphereに追加し、WebSphereの様々な局面を構成してEclipseLinkをサポートするようにする必要があります。

この項では、IBM WebSphere Version 7以上でEclipseLinkを使用するその他のタスクについて説明しています。

6.2.1 タスク1: 前提条件

次のコンポーネントがインストールされていることを確認します。

  • IBM WebSphere, Version 7以上。ここで説明する手順は、WebSphereバージョン8.5のものです。

    http://www-01.ibm.com/software/webservers/appserv/was/からIBM WebSphereを入手します。

  • TopLink 12cリリース1 (12.1.2)以上。

    http://www.oracle.com/technetwork/middleware/toplink/downloads/index.htmlからTopLinkをダウンロードします。

    次のファイルを使用します。

    • TopLinkクイック・インストーラによって作成されたoracle_common\modules\oracle.toplink_ver_noディレクトリにあるeclipselink.jar

    • TopLinkのクイック・インストーラによって作成されたoracle_common\modulesディレクトリにあるjavax.persistence_ver_no.jar

6.2.2 タスク2: 永続性ユニットの構成

EclipseLinkを永続性プロバイダとして、またWebSphereをターゲット・サーバーとして使用するには、永続性ユニットを構成します。

例6-1に、コンテナで管理される永続性ユニットの構成例を示します。

例6-1 コンテナで管理される永続性ユニットのpersistence.xmlの例

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd"
      version="1.0">
    <persistence-unit name="default" transaction-type="JTA">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <jta-data-source>jdbc/EclipseLinkDS</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.target-server" value="WebSphere_7"/>
            <property name="eclipselink.target-database"
                value="org.eclipse.persistence.platform.database.oracle.Oracle11Platform"/>
            <property name="eclipselink.validate-existence" value="true"/>
            <property name="eclipselink.weaving" value="true"/>
            <property name="eclipselink.logging.level" value="FINEST"/>
        </properties>
    </persistence-unit>
</persistence>

例6-2に、アプリケーションで管理される永続性ユニットの構成例を示します。

例6-2 アプリケーションで管理される永続性ユニットのサンプルのpersistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd" version="1.0">
    <persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <non-jta-data-source>jdbc/ELNonJTADS</non-jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.target-server" value="WebSphere_7"/>
            <property name="eclipselink.target-database" 
                  value="org.eclipse.persistence.platform.database.oracle.Oracle11Platform"/>
            <property name="eclipselink.validate-existence" value="true"/>
            <property name="eclipselink.weaving" value="true"/>
            <property name="eclipselink.logging.level" value="FINEST"/>
        </properties>
    </persistence-unit>
</persistence>

前述の2例について、次を考慮してください。

  • eclipselink.target-serverWebSphere_7は、WebSphere Application Serverバージョン7以上用で使用されています。

  • 永続性スキーマのバージョンpersistence_1_0.xsd" version="1.0"はJPA 1とJPA 2の両方に指定して動作します。JPA 2.nのみのアプリケーションでは、バージョンをpersistence_2_0.xsd" version="2.n"に変更します(WebSphereでは、WebSphere Application Server 7.0.0.9以上でJPA 2をサポートするようになりました)。

6.2.3 タスク3: EclipseLinkを使用するためのサーバーおよびアプリケーションの構成

次は、アプリケーション・サーバーでEclipseLinkを使用する典型的なシナリオです。

6.2.3.1 EclipseLinkをグローバルで利用できるようにするためのサーバーの変更

コンテナおよびアプリケーションで管理される永続ユニットのいずれも、次のいずれかの方法でグローバルにEclipseLinkで使用できるようにできます。

オプション1: グローバルに共有するライブラリの作成(推奨)

  1. 次のファイルを含むグローバルに共有するライブラリを作成します。

    • eclipselink.jar

      このファイルを、TopLinkクイック・インストーラによって作成されたTOPLINK_INSTALLATION\oracle_common\modules\oracle.toplink_ver_noディレクトリから探します。

    • xmlparserv2.jar

      このファイルをクイック・インストーラで作成されたTOPLINK_INSTALLATION\toplink\modulesディレクトリから探します。

    • JPAでNCHARXMLTYPEおよびMDSYS.SDO_GEOMETRYなどのOracle Databaseの機能を使用する場合、共有ライブラリにxdb.jarおよびsdoapi.jarも含める必要があります。これらのファイルはOracle Databaseの配布内にあります。

    WebSphereを使用して共有ライブラリを簡単に作成する方法の詳細は、WebSphereのドキュメントを参照してください。

  2. 共有ライブラリをアプリケーションと関連付けます。

    WebSphereを使用して共有ライブラリとアプリケーションを関連付ける方法については、WebSphereのドキュメントを参照してください。

オプション2: サーバー・ライブラリ拡張としてのEclipseLinkの追加

サーバー・ライブラリの拡張としてEclipseLinkを追加するには、前述のオプション1にあるeclipselink.jarとその他のJARファイルをWAS_HOME\lib\extディレクトリにコピーします。

6.2.3.2 アプリケーションEARへのEclipseLinkのパッケージ

サーバー構成を変更せず、eclipselink.jarをアプリケーションEARに追加して、コンテナで管理される永続性を実装できます。この場合、永続性ユニットはステートレス・セッションBeanへの@PersistenceContextエンティティ・マネージャ・プロキシの挿入で管理されています。次に、このアプローチの例を示します。

  1. アプリケーションEARの次の場所にeclipselink.jarを追加します。

    EAR_archive/APP-INF/lib/

  2. このパスを、次のようにEJB JARのejbModule/META-INF/MANIFEST.MFファイルのeclipselink.jarに追加します。

    Manifest-Version: 1.0
    Class-Path: APP-INF/lib/eclipselink.jar
    

    これは、エンティティの場所のルートのマニフェストで、この場合はejb.jar.の一部です。

  3. アプリケーションのクラス・ローダーで最初にクラスがロードされるよう、クラス・ローダーを構成します。

  4. アプリケーションをデプロイして起動します。手順については、IBM WebSphereのドキュメントを参照してください。

6.2.3.3 WARへのEclipseLinkのパッケージ

前述の2つのシナリオで説明するとおり、コンテナで管理される永続性を実装できない場合、アプリケーションで管理されるエンティティ・マネージャを作成できます。この場合、ライブラリのすべての構成およびクラスローダーの範囲の変更をEAR自体内で行う必要があります。

  1. 次の場所のWebアプリケーション・アーカイブ(WAR)ファイルに、eclipselink.jarおよびjavax.persistence_ver_no.jarを追加します。

    WAR_archive/WEB-INF/lib/

  2. アプリケーションのクラス・ローダーで最初にクラスがロードされるよう、アプリケーションのクラス・ローダーの順番を構成します。管理コンソールを使用して、クラス・ローダーの順番を設定する手順の詳細については、WebSphereのドキュメントを参照してください。

  3. アプリケーションをデプロイして起動します。手順については、IBM WebSphereのドキュメントを参照してください。

6.3 その他の参考資料

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