サイトを構築するときは常に、コンポーネントのすべてが協調して動作するようにレンダリング・エンジン・キャッシュを適切に構成することが不可欠です。この章では、レンダリング・エンジン・キャッシュとそのコンポーネントについて説明します。また、基盤となるコンテンツの変更が原因で古くなったオブジェクトのすべてのキャッシュ(ContentServer、BlobServerおよびSatellite Serverのキャッシュ)をCacheManagerでクリアできるキャッシュ構成プロパティについても説明します。
この章には次の項が含まれます。
WebCenter Sitesのレンダリング・エンジン・キャッシュは2層構造のキャッシュです。第1層はContentServerとBlobServerで構成されており、第2層はSatellite Serverで構成されています。各コンポーネントは独立した構成が可能で、キャッシュ・サイズ、キャッシュ・タイムアウトおよび依存性管理の動作を最適化するように微調整できます。
サイトを構築するときは常に、コンポーネントのすべてが協調して動作するようにレンダリング・エンジン・キャッシュを適切に構成することが不可欠です。コンポーネントが適切に構成されている場合、WebCenter Sitesは順調に動作し、キャッシュされていないコンテンツをユーザーに表示することを、ほぼ常時、効果的に防ぐことが可能です。ただし、これらのコンポーネントの構成が適切でない場合は、WebCenter Sitesの動作はわかりにくく予期しないものになる可能性があります。キャッシングが不適切だとパフォーマンスが低下し、キャッシュ・インベントリが不適切に連係されると、無効なコンテンツが無期限にレンダリングされる場合があります。これに対処するため、WebCenter SitesにはCacheManagerと呼ばれるモジュールが組み込まれており、これにより、システム全体にかわって、キャッシュを有効に管理できます。
CacheManagerを使用したサイトでは、レンダリング・エンジンによりキャッシュされるオブジェクトに対し、構成依存関係の存在を記録できます。たとえば、ページレットがアセットをレンダリングすると、そのアセットはそのページで構成依存関係になります。アセットが変化した場合、ページは無効になり、キャッシュからフラッシュする必要があります。
CacheManagerを利用してキャッシュをフラッシュするには、オブジェクトがキャッシュから失効しないように指定することにより、レンダリング・エンジンのキャッシュ・オブジェクトのライフサイクルに対する完全制御をCacheManagerに譲る必要があります。基となるコンテンツ(つまり、各オブジェクトに対して記録されている構成依存関係のいずれか)の変更によりオブジェクトが古くなったとCacheManagerにより判断された場合、それらのオブジェクトはキャッシュから削除されます。
注意: 有効期限を無期限に指定する理由は、オブジェクトに対してどの依存関係が記録されているかだけでなく、キャッシュされたすべてのオブジェクトについて、CacheManagerがレコードに残すようにするためです。このレコードはWebCenter Sitesに格納されており、第1層にキャッシュされたオブジェクトの有無とリンクしています。このレコードにより、第2層のキャッシュのオブジェクトの有無をCacheManagerが推測して、第2層のキャッシュからオブジェクトをフラッシュできるようになります。 ただし、オブジェクトがキャッシュから失効するようになっていると、レコードが削除され、第2層のキャッシュからオブジェクトを適切にフラッシュするために必要となる情報が、CacheManagerに伝わらないままになります。 |
CacheManagerの機能の有効化は、次のとおりほぼ完全に自動で行われます。
デフォルトでは、キャッシュはオブジェクトが失効しないよう構成されています。
構成依存性は、下位層のBLOBおよびページ・キャッシュに対して記録されます。<asset:load
や<render:sateliteblob
などのタグを使用すると、構成依存性が自動的に記録されます(詳細なリストについては、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照)。それに対し、<portal:logdep
と<render:logdep
という2つのタグを使用すると、構成依存性が明示的に記録されます。
アセットが変更またはパブリッシュされた場合は、WebCenter SitesではCacheManagerが自動的に起動され、キャッシュから古いコンテンツが消去されます。また、パブリッシュの場合は、第2層のキャッシュをフラッシュする前にバックグラウンドで新しいコンテンツをあらかじめキャッシュするように、WebCenter SitesからCacheManagerに指示されます。
サイトの訪問者は、キャッシュされていないコンテンツを表示する必要がなく、最高のキャッシュ・パフォーマンスを得られます。構成依存関係の記録の詳細は、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照してください。
この項では、第1層および第2層のキャッシュ構成プロパティと、CacheManagerを有効化するためにそれらのプロパティをどのように設定する必要があるかについて説明します。
この項の内容は、次のとおりです。
この項に記載する表では、WebCenter Sitesのページ・キャッシュおよびBlobServerのBLOBキャッシュを調整するプロパティについて説明します。
詳細は、『Oracle Fusion Middleware WebCenter Sitesプロパティ・ファイル・リファレンス』を参照してください。
表6-1 WebCenter Sitesのページ・キャッシュ・プロパティ
プロパティ | 説明 |
---|---|
|
このプロパティでは、ページがWebCenter Sitesのページ・キャッシュに存在する期間を指定します。また、CacheManagerには次のような影響が発生します。 デフォルトでは、このプロパティは このプロパティに正の整数を設定すると、整数で指定された時間(単位は分)後にページが期限切れになります。 |
|
このプロパティでは、
無効な値を設定するとCacheManagerは無効になります。 |
|
これらのプロパティはページ・キャッシュの構成に使用されますが、CacheManagerには影響しません。これらのプロパティの詳細は、『Oracle Fusion Middleware WebCenter Sitesプロパティ・ファイル・リファレンス』を参照してください。 |
表6-2 BlobServerのキャッシュ・プロパティ
プロパティ | 説明 |
---|---|
|
このプロパティでは、BlobServerによりキャッシュにBLOBが保持される秒数を指定します。また、CacheManagerには次のような影響が発生します。 構成依存関係が |
|
このプロパティでは、BlobServerのキャッシュに格納するBLOBの個数を指定します。また、CacheManagerには影響しません。
|
|
このプロパティでは、BLOBに対して構成依存関係を記録するかどうかを指定します。 このプロパティは、CacheManagerでBLOBを操作するように、 |
|
このプロパティでは、BlobServerのセキュリティ機能を制御します。また、CacheManagerには次のような影響が発生します。 BlobServerのセキュリティが有効な場合は、キャッシングが無効になります。したがって、BlobServerのセキュリティは、CacheManagerのインテリジェント・キャッシュ管理機能とは両立しません。 デフォルトでは、このセキュリティのレベルは無効です。 BlobServerのセキュリティの詳細は、第5章「ページのデザインとキャッシング」および第7章「ページ・キャッシングの高度な手法」を参照してください。 |
|
このプロパティでは、BLOBがBLOBキャッシュから失効した後に、
|
第2層のキャッシュ構成プロパティは、Satellite Serverのページ・キャッシュとBLOBキャッシュの両方を扱います。
第2層のプロパティは、CacheManagerの正常動作に一切影響しません。ただし、CacheManagerが正常に動作しなくなった場合には、重要な診断支援機能を果たします。第2層のキャッシュ・プロパティのタイムアウト値および構成値は、予期しない動作のトラブルシューティングにとって重要です。
通常の場合、オブジェクトが第2層のキャッシュにはキャッシュされているのに、第1層のキャッシュにはキャッシュされていないと、依存アセットの保存またはパブリッシュ時に、オブジェクトが有効にフラッシュされないため、予期しない動作が起こります。構成の詳細は、『Oracle Fusion Middleware WebCenter Sitesプロパティ・ファイル・リファレンス』を参照してください。
予期しない動作は、キャッシュされたオブジェクトに対して構成依存関係が記録されていない場合にも起こります。その場合、キャッシュ上の該当オブジェクトに対するあらゆる有効な管理ができなくなります。構成依存関係を自動的に記録するタグ、また:logdep
タグのいずれかを使用した明示的な記録と組み合せて使用する必要のあるタグの詳細は、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照してください。
注意: ページまたはBLOB上の余分な構成依存関係を記録しないでください。これを行うと、キャッシュの不必要なフラッシュが発生し、特定の状況で、パブリッシュ中にパフォーマンスの深刻な問題を引き起こす可能性があります。不明な構成依存関係を記録する場合は特に注意してください。構成依存関係の詳細は、第28章「テンプレートおよびCSElementのエレメントのコーディング」を参照してください。 |