ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebCenter PortalおよびOracle JDeveloperでのポータルの開発
11gリリース1 (11.1.1.8.3)
E49666-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

73 パーソナライズのためのキャッシュ管理

この章では、パーソナライズ用のキャッシュ管理について説明します。

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

73.1 パーソナライズ用のキャッシュ管理の概要

WebCenter Portalでは、Oracle Coherenceを使用して、パーソナライズ機能用のサーバー側キャッシュを管理します。すべてのWebCenterのインストールには、ローカルのCoherenceライセンスが提供されます。パーソナライズは、Coherenceが使用するさらに複雑な他のモードをサポートしますが、その場合は、適切なCoherenceライセンスを購入する必要があります。

この章では、シナリオやデータ・プロバイダなどの、WebCenter Portalのパーソナライズ機能でのキャッシュの使用方法について説明します。


注意:

これは、キャッシュの概念および手法の基礎を理解していることを前提としています。この章全般では、これらの概念について説明することはありません。また、Oracle Coherenceについても精通していることを前提としています。Coherenceの詳細は、『Oracle Coherenceスタート・ガイド』を参照してください。

また、第66章「Oracle WebCenter Portalアプリケーションのパーソナライズ」で説明されている、WebCenter Portalパーソナライズの概念および機能についても、精通していることが前提です。


73.2 キャッシュ構成ファイルの配置および更新

WebCenter Portalでは、パーソナライズでの使用のため、2つのCoherenceキャッシュ構成ファイルが提供されています。これらのファイルの使用方法は、この項で説明します。


注意:

WebCenter Personalization Server (WCPS)によってインスタンス化されたキャッシュ・ファクトリはすべて、WCPSのクラス・ローダーに固有のものです。


73.2.1 キャッシュ構成ファイルの格納先

キャッシュ構成ファイルは、次の場所にあります。

$ORACLE_HOME/user_projects/applications/<domain>/conductor-extensions-library/WEB-INF/classes

カスタム構成ファイルを作成した場合は、これと同じディレクトリに格納することが最善の方法です。一方で、これらのファイルはWCPSのWebアプリケーションのクラスパス内であれば、どこでも配置できます。新しいクラスを認識させるには、WCPS Webアプリケーションを再デプロイするか、サーバーを再起動する必要があります。第73.2.2.3項「カスタム・キャッシュ構成ファイルの作成」も参照してください。

73.2.2 キャッシュ構成ファイルの使用

この項では、パーソナライズ機能で使用される、各キャッシュ構成ファイルと、カスタム・キャッシュ構成ファイルの作成について説明します。

73.2.2.1 内部キャッシュ構成ファイル

キャッシュ構成ファイルwcps-coherence-cache-config.xmlは、プロパティ・サービス、コンダクタおよびデータ・プロバイダの中核機能などの、内部の統合コンポーネントをサポートします。


注意:

この構成ファイル内のキャッシュの名前は変更しないでください。ただし、このファイル内のキャッシュ構成パラメータは変更できます。


73.2.2.2 データ・プロバイダのキャッシュ・ファイル

キャッシュ構成ファイル、wcps-dataprovider-cache-config.xmlでは、データ・プロバイダと関連付けられているキャッシュのアドレスが指定されています。このファイルでは、ワイルドカード・パターンが使用されており、wcps-dp-small-contentmy-custom-cacheなどのいずれのパターンを使用しても、利用者が固有のキャッシュを持てるようにしています。たとえば、wcps-dp-medium-*のようなワイルドカード・パターンは、wcps-dp-small-contentまたはwcps-dp-small-ebsなどのキャッシュ名を指定すると、解決されます。

デフォルトのデータ・プロバイダの構成は、ニーズに合うように変更するか、カスタム・データ・プロバイダをサポートするように、新しいエントリを追加しても構いません。既存のデフォルトの構成へのいかなる変更でも、使用する環境にデプロイされた他のカスタム・データ・プロバイダに影響する可能性があることに注意してください。

デフォルトのデータ・プロバイダのキャッシュ構成には、次のものが含まれます。

  • メモリーに実装されたローカル・キャッシュ

  • LRU削除ポリシー

  • 小容量: 100エントリ、デフォルトは1時間のTTL

  • 中容量: 1000エントリ、デフォルトは1時間のTTL

  • 大容量: 10000エントリ、デフォルトは1時間のTTL


    注意:

    Coherenceライセンス機能のアップグレードをサポートするため、これらの構成が変更される場合があります。


このキャッシュ構成ファイルはCoherenceパラメータ・マクロを利用するため、特定のニーズに合わせて容易に変更できます。パラメータに固有のCoherenceドキュメントへのリンクは、構成ファイルそのものの中で提供されています。

利用者は、この構成ファイルに追加のエントリを構成できます。これらのエントリは、パーソナライズ・キャッシュAPIで使用できるようになります。第73.3項「パーソナライズ・コンポーネントでのキャッシュの使用」を参照してください。

73.2.2.3 カスタム・キャッシュ構成ファイルの作成

特定のユース・ケースに対処するため、カスタムCoherenceキャッシュ構成ファイルを作成できます。Coherenceキャッシュ構成ファイルを、次の一般的な規則に準拠させることをお薦めします。


注意:

実際は、キャッシュ構成ファイルは、WCPS Webアプリケーションのクラス・ローダーから参照可能であれば、どこにでも配置できます。このファイルを上のディレクトリに配置すると、他のWCPSキャッシュ構成ファイルとの整合性を保てます。ただし、キャッシュ構成ファイルを異なる方法で定義およびパッケージ化する場合もあります。


CoherenceCacheFactoryは、URIを使用してファイルをロードするため、キャッシュ構成ファイルは、データ・プロバイダのJARファイルの一部としても、ファイル・システム上の任意の場所でもパッケージ化できます。CoherenceCacheFactoryは、データ・プロバイダのプログラムまたはWCPSサーバーにデプロイされたその他のクラスのプログラムによって使用されます。第73.3.2項「CoherenceCacheFactoryの使用」を参照してください。


注意:

データ・プロバイダのJARファイルは、次の場所にあります。

$DOMAIN_HOME/conductor-extensions-library/WEB-INF/lib.

データ・プロバイダのパッケージ化およびデプロイの詳細は、第67章「カスタム・データ・プロバイダの実装」を参照してください。


新しいクラスを認識させるには、WCPS Webアプリケーションを再デプロイするか、サーバーを再起動する必要があります。

73.3 パーソナライズ・コンポーネントでのキャッシュの使用

データ・プロバイダ、ファンクション・プロバイダおよびカスタム・データ・プロバイダなどのパーソナライズ・コンポーネントは、コンテキストにより、2つの方法の中の1つの方法でCoherenceと連携します。

73.3.1 キャッシュ・ファンクション・プロバイダ

CacheFunctionProviderは、シナリオ内からキャッシュを管理するメソッドを提供します。このファンクション・プロバイダは、CoherenceCacheFactoryクラスに委任し、複数の簡便性メソッドをインクルードします。

キャッシュ・ファンクション・プロバイダのメソッドについては、第69章「ファンクション・プロバイダ・リファレンス」「キャッシュ・メソッド」で説明されています。

CacheFunctionProviderの接頭辞は、cache (シナリオ・エディタの「式ビルダー」ダイアログに表示される名前)です。図73-1に、「式ビルダー」ダイアログでのキャッシュ・ファンクション・プロバイダを示します。

図73-1 キャッシュ・ファンクション・プロバイダ

図73-1の説明が続きます
「図73-1 キャッシュ・ファンクション・プロバイダ」の説明

例73-1は、キャッシュ・ファンクション・プロバイダのメソッド、getMediumCache()を使用するシナリオのXML構造をリストしています。最初に、キャッシュが返され、変数に格納されます。その後、その変数を使用してキャッシュから特定の値が返されます。

例73-1 シナリオでのキャッシュ・ファンクション・プロバイダの使用

<!-- Check cache first, using CacheFunctionProvider -->
        <assign-variable>
            <variable>userIdCache</variable>
            <expression>${cache:getMediumCache('userIdCache')}</expression>
        </assign-variable>
 
        <assign-variable>
            <variable>userId</variable>
            <expression>${cache:get(userIdCache,username)}</expression>
        </assign-variable>

例73-2に、CacheFunctionProviderのメソッドをプログラムを使用してコールする方法を示します。必ず、次をインポートしてください。oracle.wcps.dataprovider.base.CacheFunctionProvider

例73-2 Javaクラスでのキャッシュ・ファンクション・プロバイダの使用

NamedCache myCache = CacheFunctionProvider.getMediumCache("userIdCache");
String userId = (String)myCache.get("jpalmer");

注意:

例73-1および例73-2の両方の例で、wcps-cp-medium-userIdCacheという名前のキャッシュが返されています。このキャッシュがまだ存在していない場合は、作成されます。


例73-3に、カスタム・キャッシュの使用例を示します。この例では、返されるキャッシュには接頭辞がなく、完全なキャッシュ名ではありません。

例73-3 Javaクラスでのキャッシュ・ファンクション・プロバイダの使用

NamedCache myCache = CacheFunctionProvider.getCustomCache("my-custom-cache");

73.3.2 CoherenceCacheFactoryの使用

WCPSにデプロイされたデータ・プロバイダおよび他のクラスは、このファクトリ・クラスを使用して、プログラムによりキャッシュを実装します。このクラスは、デプロイ先のWebアプリケーションにスコープ設定されています。

CoherenceCacheFactoryのコールするメソッドは1つです。

public static NamedCache getCache(String cacheConfigFile, String cacheName)

例73-4は、前の第73.2.2.3項「カスタム・キャッシュ構成ファイルの作成」で説明したベスト・プラクティスに従って、WCPSのクラスパスにキャッシュ構成ファイルがある場合の、getCache()のコール方法を示しています。

例73-4 クラスパスにある構成ファイルを使用したgetCache()のコール

NamedCache myCache = CoherenceCacheFactory.getCache("content-cache-config.xml", "userIdCache");
String userId = (String)myCache.get("jpalmer");

例73-5は、ファイル・システムの別の場所に、キャッシュ構成ファイルが配置されている場合のgetCache()のコール方法を示しています。

例73-5 ファイル・システムにある構成ファイルを使用したgetCache()のコール

NamedCache myCache = CoherenceCacheFactory.getCache("file:///myconfig/content-cache-config.xml", "userIdCache");
StringuserId = (String)myCache.get("jpalmer");

73.4 パーソナライズ・コンポーネント向けのキャッシュの構成

この項では、構成ファイルでのキャッシュの構成方法について説明します。wcps-datatprovider-cache-config.xmlに構成されている、事前構成済のキャッシュおよびカスタム・キャッシュについて説明します。その後、キャッシュが独自の構成ファイルを持つ場合について説明します。

73.4.1 事前構成済キャッシュ

構成ファイルには、事前構成済キャッシュ(小容量、中容量、大容量)が含まれています。これらのキャッシュには、キャッシュ・ファンクション・プロバイダ(第73.3.1項「キャッシュ・ファンクション・プロバイダ」参照)を介してアクセスできます。アクセス・メソッドについては、第69章「ファンクション・プロバイダ・リファレンス」「キャッシュ・メソッド」で説明されています。これらには次のものがあります。

  • getSmallCache(String cacheName)

  • getMediumCache(String cacheName)

  • getLargeCache(String cacheName)


注意:

wcps-dataprovider-cache-config.xml内のパターンと一致するように、内部の接頭辞の後にcacheNameパラメータが追加されます。たとえば、次のようになります。wcps-dp-large-<cacheName>詳細は、第73.2.2.2項「データ・プロバイダのキャッシュ・ファイル」を参照してください。


73.4.2 カスタム・キャッシュ

カスタム・キャッシュは、新しいエントリがwcps-dataprovider-cache-config.xmlに追加されていることを前提にしています。構成ファイルに指定されたとおりに構成された、cacheName (接頭辞なし)を使用してキャッシュを返します。

wcps-dataprovider-cache-config.xmlに構成されたカスタム・キャッシュを返すために使用される、キャッシュ・ファンクション・プロバイダ・メソッドは、次のとおりです。

getCustomCache(String cacheName)

詳細は、第69章「ファンクション・プロバイダ・リファレンス」「キャッシュ・メソッド」を参照してください。

73.4.3 キャッシュが独自の構成ファイルを持つ場合

WCPS Webアプリケーションのクラス・ローダーで、構成ファイルconfigFileが使用可能である必要があります。第73.2.2.3項「カスタム・キャッシュ構成ファイルの作成」も参照してください。

カスタム・キャッシュ構成ファイルに構成されたキャッシュを返すために使用される、ファンクション・プロバイダのメソッドは、次のとおりです。

getCache(String myConfigFile.xml, String cacheName)


注意:

キャッシュ構成ファイルは、アプリケーションのクラスパス内に存在する必要があります。言い換えると、コールする側のクラスパス内であれば、どこにあっても構いません。


詳細は、第69章「ファンクション・プロバイダ・リファレンス」「キャッシュ・メソッド」を参照してください。

73.5 データ・プロバイダ接続上のキャッシュの構成

キャッシュ名は、データ・プロバイダ内にハードコードできます。または、キャッシュ名をパラメータとして、wcps-connections.xmlプロバイダ構成ファイルに設定できます。このファイルの詳細は、第67.5.6項「WCPS接続構成ファイルの更新」で説明しています。


ヒント:

キャッシュ名を接続パラメータとして設定することの利点は、実行時にキャッシュ名を変更できることです。


例73-6は、wcps-connnections.xmlへのキャッシュの構成方法を示しています。<connection>要素には、2つのプロパティを追加する必要があります。

この例では、<connection>要素には、demo-cacheという値の<cache-name>プロパティが設定されています。

例73-6 データ・プロバイダの接続構成

<connection>
        <connection-name>TestConnection</connection-name>
        <connection-type>my.test.connection</connection-type>
        <namespace>default</namespace>
        <properties>
            <property>
                <name>cacheName</name>
                <value>demo-cache</value>
            </property>
            <property>
                <name>configFileUri</name>
                <value>file:///Users/jpalmer/demo-cache.xml</value>
            </property>
        </properties>
    </connection>

73.6 Oracle Coherenceの監視

Coherenceには、そのキャッシュを監視するためのMBeanコンソールが用意されています。サーバーのプロパティを設定して、この機能を有効にする方法の詳細は、「JMXを使用したOracle Coherenceの管理」を参照してください。

図73-2 Coherence監視コンソール

図73-2の説明が続きます
「図73-2 Coherence監視コンソール」の説明