1 はじめに

この章では、WebLogic Server用のCoherenceアプリケーションについて説明し、Coherenceアプリケーションの作成およびパッケージ化の概要を示します。

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

Coherenceアプリケーションの概要

Coherenceは、分散キャッシングおよびインメモリー・データ・グリッド・コンピューティングのソリューションです。通常、アプリケーションはスケーラビリティ、可用性およびパフォーマンスを向上させるためにCoherenceを使用します。

CoherenceはWebLogic Serverと密接に統合されます。統合することで、Coherenceクラスタ・メンバーのライフサイクルが、管理対象サーバーのライフサイクルにそろいます。つまり、管理対象サーバーJVMの開始または終了に合せてCoherenceクラスタ・メンバーを開始および終了することになります。クラスタ・メンバーである管理対象サーバーは、管理対象Coherenceサーバーと呼ばれます。Coherenceの一般的なユースケースには、データ・キャッシング、HTTPセッション・レプリケーション、およびデータベース・キャッシュ・ストア(Java Persistence API (JPA)レベル2キャッシュなど)が含まれます。

その他のJava EEモジュールと同様に、Coherenceはグリッド・アーカイブ(GAR)という独自のアプリケーション・モジュールをサポートします。GARには、Coherenceアプリケーションのアーティファクトが格納され、デプロイメント・ディスクリプタが含まれています。GARはJava EEモジュールと同様にデプロイおよびアンデプロイされ、アプリケーション・ライフサイクルはクラスタ・サービス・ライフタイムから分離されています。Coherenceアプリケーションと管理対象CoherenceサーバーはJavaEE仕様で規定されていませんが、WebLogic Serverに固有のものです。

Coherenceの一般的な使用法

Coherenceは、アプリケーション・データ・キャッシング、データ・グリッド・コンピューティング、セッション状態の永続性、およびデータ・キャッシュのJava永続性API (JPA)エンティティの管理とアクセスなどのソリューションを提供するのに使用されます。

この項では、WebLogic ServerでのCoherenceの一般的な使用法について説明します。WebLogic ServerとCoherenceの統合により、アプリケーションはCoherenceデータ・キャッシュを使用し、センション管理にCoherence*Webを組み込み、オブジェクトからリレーショナルへの永続化フレームワークとしてTopLink Gridを組み込むことが容易になります。

アプリケーション・データ・キャッシングおよびデータ・グリッド・コンピューティングの提供

アプリケーションは、レプリケートされた分散キャッシングにCoherenceを使用します。アプリケーションは、データ・キャッシュへのアクセスに、リソース・インジェクションまたはコンポーネントベースのJNDIルックアップを使用します。Oracle WebLogic Server管理コンソールおよびOracle WebLogic Scripting Toolは、Coherenceクラスタの管理および構成に使用します。Coherence統合を使用すると、アプリケーション・データのキャッシングおよびレプリケートされたセッション状態の格納専用のデータ層を作成できます。これはアプリケーション層(アプリケーションの実行専用のWebLogic Serverインスタンス)から分離されます。

「WebLogic Server用Coherenceアプリケーションの作成」を参照してください。

セッション状態の永続性および管理の提供

Coherence*Webを使用すると、WebLogic Server上で実行されるアプリケーションにCoherenceベースのHTTPセッション状態の永続性を提供できます。Coherence*Webは、異なる複数のWebアプリケーション、ドメインおよび異機種のアプリケーション・サーバー間におけるHTTPセッション共有および管理を実現します。セッション・データは、アプリケーション・サーバー外のデータ・キャッシュに格納できるため、アプリケーション・サーバーのヒープ・スペースを解放し、セッション・データを消失させずにサーバーを再起動できます。

「Coherence*Webの概要」を参照してください。

データ・キャッシュ内のJava Persistence API (JPA)エンティティへのアクセス

TopLink Gridのリレーショナルとオブジェクトのマッピング機能によって、データベース問合せおよび結果セットのコピーをCoherenceデータ・キャッシュに格納できます。この機能により、データベース・アクセスは、必要なデータのキャッシュされたコピーが存在しない場合、またはデータベースに対して永続的である必要がある作成、更新または削除操作をアプリケーションが実行する場合にのみ発生します。この追加の最適化により、システムのスケーラビリティおよびパフォーマンスが向上します。

TopLink Gridを使用すると、JPAエンティティ・キャッシングが可能になります。これにより、複数のクラスタ・ノードにわたる非常に規模の大きい、共有グリッド・キャッシュをサポートできます。データ・キャッシュにオブジェクトが含まれていない場合は、データベースへの問合せが行われます。

TopLink Gridでは、問合せをCoherenceに向けることもできます。目的の問合せ結果がキャッシュに見つからない場合は、データベースから読み取り、キャッシュに配置して以降の問合せで使用可能にできます。Coherenceでは非常に多くのオブジェクトを管理できるため、結果がキャッシュで見つかる可能性が高くなり、1つのクラスタ・メンバーでの読取り操作がすぐに他のメンバーも利用可能になります。

データベースへのJPAエンティティの書込みは、TopLink Gridでも実現可能です。アプリケーションは、JPAエンティティを直接データベースに書き込んでからデータ・キャッシュに入れるか(データベースの状態を反映するため)、またはJPAエンティティをデータ・キャッシュに入れて、データ・キャッシュからデータベースに書き込まれるようにすることができます。

「リレーショナル・データへのアクセスおよびその取得」を参照してください。

Coherenceアプリケーションの構成ファイルの理解

Coherenceアプリケーションには、キャッシュ構成、POF構成、およびキャッシュの構成に使用するCoherenceアプリケーション・デプロイメント・ディスクリプタ・ファイル、データ・タイプなどが含まれます。

WebLogic Serverにデプロイされる一般的なCoherenceアプリケーションには、次の構成ファイルが含まれます。『Oracle Coherenceでのアプリケーションの開発』を参照してください。

  • キャッシュ構成ファイル – このファイルは、Coherenceクラスタ内で使用可能な様々なタイプのキャッシュを指定するために使用され、ほとんどの場合はcoherence-cache-config.xmlという名前が付けられます。通常、このファイルはキャッシュ構成デプロイメント・ディスクリプタと呼ばれます。このファイルのスキーマは、coherence-cache-config.xsdファイルです。このファイルの要素の詳細なリファレンスは、『Oracle Coherenceでのアプリケーションの開発』を参照してください。

  • POF構成ファイル – このファイルは、Portable Object Format (POF)を使用してオブジェクトをシリアライズする場合のカスタム・データ型の指定に使用するもので、通常はpof-config.xmlという名前になります。通常、このファイルはPOF構成デプロイメント・ディスクリプタと呼ばれます。このファイルのスキーマは、coherence-pof-config.xsdファイルです。このファイルの要素の詳細なリファレンスは、『Oracle Coherenceでのアプリケーションの開発』を参照してください。

  • Coherenceアプリケーション・デプロイメント・ディスクリプタ – このファイルは、管理対象CoherenceサーバーにデプロイされるCoherenceアプリケーション・モジュールの構成に使用されます。ディスクリプタにおける要素の完全な参照は、「coherence-application.xmlデプロイメント・ディスクリプタの要素」を参照してください。

パッケージ化およびデプロイメントの概要

Coherenceアプリケーションは、デプロイメントに特定のディレクトリ構造を使用します。Coherenceアプリケーションは、展開ディレクトリ形式でデプロイしたり、アーカイブ・ファイルとしてデプロイしたりすることができます。

Coherenceアプリケーションは、展開ディレクトリ形式と呼ばれる特定のディレクトリ構造のファイルのコレクションとしてデプロイされます。アーカイブ・ファイルとしてデプロイされるCoherenceアプリケーションは、.gar拡張子を持つグリッド・アーカイブ(GAR)と呼ばれます。Coherenceアプリケーションのパッケージ化を参照してください。そのディレクトリ構造は次のとおりです。

MyCohApp/
  lib/
  META-INF/
    coherence-application.xml

スタンドアロンGARは、Coherenceデータ層のすべての管理対象Coherenceサーバーにデプロイされます。また、GARはEAR内にパッケージ化され、アプリケーション層に存在するすべての管理対象Coherenceサーバーにデプロイされる必要もあります。WebLogic ServerでのCoherenceアプリケーションのデプロイを参照してください。

Coherenceアプリケーション作成の主なタスク

Coherenceアプリケーションは、スタンドアロンGARモジュールとして作成することも、エンタープライズ・アプリケーションの一部としてパッケージ化することもできます。

これらのステップの詳細は、このガイドで説明します。Coherenceアプリケーションの例全体については、WebLogic Serverインストールに付属のWebLogic Server Code Examplesを参照してください。

タスク1: Coherenceアプリケーションのディレクトリ構造を作成する

META-INF/およびlib/の2つのサブディレクトリを含む、ステージング・ディレクトリを作成します。

MyCohApp/
  lib/
  META-INF/

タスク2: Coherenceアプリケーションのアーティファクトを含める

Coherenceアプリケーション・アーティファクトをステージング・ディレクトリに含めます。Coherenceアプリケーションの作成方法の詳細は、「WebLogic Server用Coherenceアプリケーションの作成」を参照してください

  1. Coherenceアプリケーションのクラス・ファイルを、適切なパッケージ構造のステージング・ディレクトリのルートに配置します。たとえば:

    MyCohApp/
      com/
        myco/
          MyClass.class
          MySerializer.class
      lib/
      META-INF/
    
  2. アプリケーションの依存ライブラリをlib/ディレクトリに配置します。

    MyCohApp/
      com/
        myco/
          MyClass.class
          MySerializer.class
      lib/
          dependency.jar
      META-INF/
    
  3. coherence-cache-config.xmlおよびpof-config.xmlファイルをMETA-INF/ディレクトリに含めます。

    MyCohApp/
      com/
        myco/
          MyClass.class
      lib/
          dependency.jar
      META-INF/
        coherence-cache-config.xml
        pof-config.xml
    
  4. META-INFディレクトリにcoherence-application.xmlファイルを作成します。

    MyCohApp/
      com/
        myco/
          MyClass.class
      lib/
          dependency.jar
      META-INF/
        coherence-application.xml
        coherence-cache-config.xml
        pof-config.xml
    
  5. coherence-application.xmlファイルを編集し、<cache-configuration-ref>および<pof-configuration-ref>要素をそれぞれ使用して構成ファイルの場所を含めます。

    <?xml version="1.0"?>
    <coherence-application>
       xmlns="http://xmlns.oracle.com/coherence/coherence-application">
       <cache-configuration-ref>META-INF/coherence-cache-config.xml
       </cache-configuration-ref>
       <pof-configuration-ref>META-INF/pof-config.xml</pof-configuration-ref>
    </coherence-application>
    

タスク3: Coherenceアプリケーションをデプロイメント用にパッケージ化する

Coherenceデータ層へのデプロイメント用に、CoherenceアプリケーションをGARファイルとしてパッケージ化します。次に、Coherenceアプリケーション層へのデプロイメント用に、GARファイルをEAR内にパッケージ化します。WebLogic ServerでのCoherenceアプリケーションのデプロイを参照してください。

  1. コマンド行から、ディレクトリをステージング・ディレクトリのルートに変更します。

  2. Javaのjarコマンドを使用して、.gar拡張子を付けてアーカイブを圧縮します。たとえば:

    jar cvf MyCohApp.gar *
    
  3. GARをコピーし、それをエンタープライズ・アプリケーション・ディレクトリ構造内にパッケージ化します。EARの開発についての詳細は、『Oracle WebLogic Serverアプリケーションの開発』を参照してください。たとえば:

    MyEAR/
      META-INF/
        application.xml
        weblogic-application.xml
      MyWAR.war
      MyEJB.jar
      MyCohApp.gar
    

    weblogic-application.xmlファイルは、GAR用のモジュール・リファレンスを含む必要があります。たとえば:

    <weblogic-application>
       <module>
          <name>MyCohApp</name>
          <type>GAR</type>
          <path>MyCohApp.gar</path>
       </module>
    </weblogic-application>