キャッシュの一貫性について

キャッシュ内のコンテンツの一貫性を保証するために、ADF Faces Cacheには、期限切れと失効化の機能が用意されています。

期限切れ

期限切れを使用すると、オブジェクトは、指定した時間キャッシュ内に保持された後、無効のマークが付けられます。期限切れは、コンテンツのソースが変更になる時期を正確に予測できる場合に使用します。期限切れによって、オブジェクトがキャッシュ内に無制限に残ることが防止されます。デフォルトは300秒(5分)です。

期限切れを指定するには、<afc:cache>タグを指定するときに、duration属性を設定します。

失効化

失効化を使用すると、オブジェクトに無効のマークが付けられます。無効のマークが付けられたオブジェクトがクライアントからリクエストされると、そのオブジェクトは削除され、キャッシュ・タグ・ハンドラから生成された新規のコンテンツでリフレッシュされます。ユーザーが、アプリケーションWebサーバー側の状態を変更するリクエストを発行する場合など、リクエストによって変更されるコンテンツに対して失効化を使用します。

失効化リクエストは、オブジェクトの検索キーに基づいて発行します。検索キーは、リクエストへの組込みが不要な任意の文字列です。つまり、URL、Cookie、またはHTTPリクエストのリクエスト・ヘッダーに表示されない文字列です。1つの検索キーを複数のオブジェクトに関連付けることも、複数の検索キーを1つのオブジェクトに関連付けることもできます。

一般的な使用方法では、検索キーを使用して、Webページとフラグメントを様々なグループに編成します。たとえば、ニュースのWebサイトには、スポーツ、ビジネス、地方のニュースおよび世界のニュースに関するページのグループがあります。特定グループのすべてのページに同じ検索キーを割り当てることができます。たとえば、スポーツ・ニュースに関係するすべてのページに検索キーsports_newsを割り当てます。次に、他のグループにも一意の検索キー(business_newslocal_newsworld_newsなど)を割り当てます。

また、1つのオブジェクトに複数の検索キーを割り当てることもできます。たとえば、地方のスポーツ・チームに関する記事が掲載されているWebページには、検索キーlocal_newssports_newsを使用できます。

オブジェクトのグループを失効化するには、特定のグループに関連付けられている検索キー文字列を指定した失効化リクエストを発行します。たとえば、失効化リクエストで検索キーsports_newsを指定すると、スポーツ・ニュースに関連するすべてのページが失効します。

オブジェクトに1つ以上の検索キーを割り当てるには、ページまたはフラグメントに対して<afc:cache>タグのsearchKey属性を使用します。


コンテンツの失効化
ADF Faces Cacheライブラリ: <afc:cache>タグ