プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebCenter Sitesでの開発
12c (12.2.1)
E72540-01
目次へ移動
目次

前
次

40 WebCenter Sitesでのキャッシュ管理の使用

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

キャッシュ管理の詳細は、次の項を参照してください。

40.1 WebCenter Sitesのレンダリング・エンジン・キャッシュについて

WebCenter Sitesのレンダリング・エンジン・キャッシュは2層構造のキャッシュです。

  • 第1層はContentServerとBlobServerで構成されています。

  • 第2層はSatellite Serverで構成されています。

各コンポーネントは独立した構成が可能で、キャッシュ・サイズ、キャッシュ・タイムアウトおよび依存性管理の動作を最適化するように微調整できます。

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

40.2 CacheManagerについて

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

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

注意:

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

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

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

  • デフォルトでは、キャッシュはオブジェクトが失効しないよう構成されています。

  • 構成依存性は、下位層のBLOBおよびページ・キャッシュに対して記録されます。<asset:load<render:sateliteblobなどのタグを使用すると、構成依存性が自動的に記録される(詳細なリストについては、Oracle WebCenter Sitesタグ・リファレンスを参照)のに対し、<portal:logdep<render:logdepという2つのタグを使用すると、構成依存性が明示的に記録されます。

  • アセットが変更またはパブリッシュされた場合は、WebCenter SitesによりCacheManagerが自動的に起動され、キャッシュから古いコンテンツを消去し、パブリッシュの場合は、第2層のキャッシュをフラッシュする前にバックグラウンドで新しいコンテンツをあらかじめキャッシュするように、WebCenter SitesからCacheManagerに指示されます。

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

40.3 CacheManagerの有効化

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

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

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

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

表40-1では、ページ・キャッシュ・プロパティについて説明します。

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

プロパティ 説明

cs.pgCacheTimeout

このプロパティでは、ページがページ・キャッシュに存在する期間を指定します。

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

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

cs.IItemList

このプロパティでは、IItemListインタフェースを実装するクラスを指定します。

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

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

cc.SystemPageCacheCSz

cc.SystemPageCacheTimeout

cs.alwaysusedisk

cs.freezeCache

cs.nocache

cs.requiresessioncookies

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

表40-2では、BlobServerのキャッシュ・プロパティについて説明します。

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

プロパティ 説明

bs.bCacheTimeout

このプロパティでは、BlobServerによりキャッシュにBLOBが保持される秒数を指定します。

構成依存関係が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のセキュリティ機能を制御します。

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

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

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

cs.manage.expired.blob.inventory

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

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

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

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

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

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

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

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

注意:

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