ヘッダーをスキップ
Oracle® Fusion Middleware WebCenter Sites開発者ガイド
11gリリース1 (11.1.1.8.0)
E49681-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

6 WebCenter Sitesのインテリジェント・キャッシュ管理

サイトを構築するときは常に、コンポーネントのすべてが協調して動作するようにレンダリング・エンジン・キャッシュを適切に構成することが不可欠です。この章では、レンダリング・エンジン・キャッシュとそのコンポーネントについて説明します。また、基盤となるコンテンツの変更が原因で古くなったオブジェクトのすべてのキャッシュ(ContentServer、BlobServerおよびSatellite Serverのキャッシュ)をCacheManagerでクリアできるキャッシュ構成プロパティについても説明します。

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

6.1 WebCenter Sitesのレンダリング・エンジン・キャッシュ

WebCenter Sitesのレンダリング・エンジン・キャッシュは2層構造のキャッシュです。第1層はContentServerとBlobServerで構成されており、第2層はSatellite Serverで構成されています。各コンポーネントは独立した構成が可能で、キャッシュ・サイズ、キャッシュ・タイムアウトおよび依存性管理の動作を最適化するように微調整できます。

サイトを構築するときは常に、コンポーネントのすべてが協調して動作するようにレンダリング・エンジン・キャッシュを適切に構成することが不可欠です。コンポーネントが適切に構成されている場合、WebCenter Sitesは順調に動作し、キャッシュされていないコンテンツをユーザーに表示することを、ほぼ常時、効果的に防ぐことが可能です。ただし、これらのコンポーネントの構成が適切でない場合は、WebCenter Sitesの動作はわかりにくく予期しないものになる可能性があります。キャッシングが不適切だとパフォーマンスが低下し、キャッシュ・インベントリが不適切に連係されると、無効なコンテンツが無期限にレンダリングされる場合があります。これに対処するため、WebCenter SitesにはCacheManagerと呼ばれるモジュールが組み込まれており、これにより、システム全体にかわって、キャッシュを有効に管理できます。

6.2 CacheManager

CacheManagerを使用したサイトでは、レンダリング・エンジンによりキャッシュされるオブジェクトに対し、構成依存関係の存在を記録できます。たとえば、ページレットがアセットをレンダリングすると、そのアセットはそのページで構成依存関係になります。アセットが変化した場合、ページは無効になり、キャッシュからフラッシュする必要があります。

CacheManagerを利用してキャッシュをフラッシュするには、オブジェクトがキャッシュから失効しないように指定することにより、レンダリング・エンジンのキャッシュ・オブジェクトのライフサイクルに対する完全制御をCacheManagerに譲る必要があります。基となるコンテンツ(つまり、各オブジェクトに対して記録されている構成依存関係のいずれか)の変更によりオブジェクトが古くなったとCacheManagerにより判断された場合、それらのオブジェクトはキャッシュから削除されます。


注意:

有効期限を無期限に指定する理由は、オブジェクトに対してどの依存関係が記録されているかだけでなく、キャッシュされたすべてのオブジェクトについて、CacheManagerがレコードに残すようにするためです。このレコードはWebCenter Sitesに格納されており、第1層にキャッシュされたオブジェクトの有無とリンクしています。このレコードにより、第2層のキャッシュのオブジェクトの有無をCacheManagerが推測して、第2層のキャッシュからオブジェクトをフラッシュできるようになります。

ただし、オブジェクトがキャッシュから失効するようになっていると、レコードが削除され、第2層のキャッシュからオブジェクトを適切にフラッシュするために必要となる情報が、CacheManagerに伝わらないままになります。


CacheManagerの機能の有効化は、次のとおりほぼ完全に自動で行われます。

サイトの訪問者は、キャッシュされていないコンテンツを表示する必要がなく、最高のキャッシュ・パフォーマンスを得られます。構成依存関係の記録の詳細は、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照してください。

6.3 CacheManagerの有効化

この項では、第1層および第2層のキャッシュ構成プロパティと、CacheManagerを有効化するためにそれらのプロパティをどのように設定する必要があるかについて説明します。

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

6.3.1 第1層のキャッシュ構成プロパティ

この項に記載する表では、WebCenter Sitesのページ・キャッシュおよびBlobServerのBLOBキャッシュを調整するプロパティについて説明します。

詳細は、『Oracle Fusion Middleware WebCenter Sitesプロパティ・ファイル・リファレンス』を参照してください。

表6-1 WebCenter Sitesのページ・キャッシュ・プロパティ

プロパティ 説明

cs.pgCacheTimeout

このプロパティでは、ページがWebCenter Sitesのページ・キャッシュに存在する期間を指定します。また、CacheManagerには次のような影響が発生します。

デフォルトでは、このプロパティは0に設定されます。この場合、ページはこのキャッシュに永久に存在し、これらのページの削除は明示的に行われる必要があります。CacheManagerが適切に動作するには、このプロパティを0に設定してください。0に設定しない場合、ページの有効期限が切れ、CacheManagerによる第2層キャッシュからの対応ページの削除ができなくなるため、ユーザーには失効したデータが表示されます。

このプロパティに正の整数を設定すると、整数で指定された時間(単位は分)後にページが期限切れになります。

cs.IItemList

このプロパティでは、IItemListインタフェースを実装するクラスを指定します。また、CacheManagerには次のような影響が発生します。

IItemListインタフェースは、ページ・キャッシュに複合依存性を記録する場合に使用されます。このプロパティを有効なクラスに設定すると、依存性項目は、SystemItemCache表のページIDに対して記録されます。これで、CacheManagerが有効になります。

無効な値を設定するとCacheManagerは無効になります。

cc.SystemPageCacheCSz

cc.SystemPageCacheTimeout

cs.alwaysusedisk

cs.freezeCache

cs.nocache

cs.requiresessioncookies

これらのプロパティはページ・キャッシュの構成に使用されますが、CacheManagerには影響しません。これらのプロパティの詳細は、『Oracle Fusion Middleware WebCenter Sitesプロパティ・ファイル・リファレンス』を参照してください。


表6-2 BlobServerのキャッシュ・プロパティ

プロパティ 説明

bs.bCacheTimeout

このプロパティでは、BlobServerによりキャッシュにBLOBが保持される秒数を指定します。また、CacheManagerには次のような影響が発生します。

構成依存関係がSystemItemCache表のBLOBに対して記録されている場合、この構成依存関係は、BLOBがキャッシュから失効した後に表から削除されるように構成されています。これにより、SystemItemCache表の肥大化が防止されます。ただし、表からエントリを削除すると、対応するBLOBをCacheManagerが第2層のキャッシュから削除できなくなり、失効したデータが表示されることになります。

bs.bCacheSize

このプロパティでは、BlobServerのキャッシュに格納するBLOBの個数を指定します。また、CacheManagerには影響しません。

bs.bCacheTimeoutプロパティと異なり、キャッシュが一杯になったためにBLOBがBLOBメモリー・キャッシュから削除された場合は、対応する行はSystemItemCache表から削除されません。したがって、このプロパティはCacheManagerには影響しません。

cs.recordBlobInventory

このプロパティでは、BLOBに対して構成依存関係を記録するかどうかを指定します。

このプロパティは、CacheManagerでBLOBを操作するように、true(デフォルト)に設定する必要があります。

bs.security

このプロパティでは、BlobServerのセキュリティ機能を制御します。また、CacheManagerには次のような影響が発生します。

BlobServerのセキュリティが有効な場合は、キャッシングが無効になります。したがって、BlobServerのセキュリティは、CacheManagerのインテリジェント・キャッシュ管理機能とは両立しません。

デフォルトでは、このセキュリティのレベルは無効です。

BlobServerのセキュリティの詳細は、第5章「ページのデザインとキャッシング」および第7章「ページ・キャッシングの高度な手法」を参照してください。

cs.manage.expired.blob.inventory

このプロパティでは、BLOBがBLOBキャッシュから失効した後に、SystemItemCache表からBLOB依存性レコードを削除することを制御します。CacheManagerへの影響は、bs.bCacheTimeoutの値に依存します。

  • bs.bCacheTimeoutが0以下に設定されている場合、このプロパティは無効です。

  • bs.bCacheTimeoutが正の整数に設定されている場合、このプロパティにtrueを設定すると、CacheManagerはそのまま正常に動作しますが、SystemItemCache表は肥大します。デフォルト値はfalseです。


6.3.2 第2層のキャッシュ構成プロパティ

第2層のキャッシュ構成プロパティは、Satellite Serverのページ・キャッシュとBLOBキャッシュの両方を扱います。

第2層のプロパティは、CacheManagerの正常動作に一切影響しません。ただし、CacheManagerが正常に動作しなくなった場合には、重要な診断支援機能を果たします。第2層のキャッシュ・プロパティのタイムアウト値および構成値は、予期しない動作のトラブルシューティングにとって重要です。

通常の場合、オブジェクトが第2層のキャッシュにはキャッシュされているのに、第1層のキャッシュにはキャッシュされていないと、依存アセットの保存またはパブリッシュ時に、オブジェクトが有効にフラッシュされないため、予期しない動作が起こります。構成の詳細は、『Oracle Fusion Middleware WebCenter Sitesプロパティ・ファイル・リファレンス』を参照してください。

予期しない動作は、キャッシュされたオブジェクトに対して構成依存関係が記録されていない場合にも起こります。その場合、キャッシュ上の該当オブジェクトに対するあらゆる有効な管理ができなくなります。構成依存関係を自動的に記録するタグ、また:logdepタグのいずれかを使用した明示的な記録と組み合せて使用する必要のあるタグの詳細は、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照してください。


注意:

ページまたはBLOB上の余分な構成依存関係を記録しないでください。これを行うと、キャッシュの不必要なフラッシュが発生し、特定の状況で、パブリッシュ中にパフォーマンスの深刻な問題を引き起こす可能性があります。不明な構成依存関係を記録する場合は特に注意してください。構成依存関係の詳細は、第28章「テンプレートおよびCSElementのエレメントのコーディング」を参照してください。