statfileslevelとgracePeriodによるAEM Dispatcher キャッシュの無効化
Adobe Experience Manager (AEM) DispatcherをstatfileslevelおよびgracePeriodで構成する場合、リストと更新されたコンテンツが同じ.stat ファイル範囲にある場合、通常、リストページの明示的なキャッシュのクリアは不要です。 両方がカバーされていることを確認するには、statfileslevel設定を確認します。
説明 description
症状
コンテンツがタイプ ADDで更新された後、リスト ページに明示的なキャッシュのクリア (無効化タイプ INVALIDATE)が必要かどうかを確認します。 /publishfarm/cache/statfileslevel "2"および/publishfarm/cache/gracePeriod "2"では、リスト ページは更新されないように見えます。
再現手順
/publishfarm/cache/statfileslevel "2"と/publishfarm/cache/gracePeriod "2"を設定します。- タイプ
ADDの.statの下のファイルを無効にします。.statファイルの変更日が更新されます。 /invalidate/../type "allow"に一致するファイルを2秒以内にリクエストしてください。 結果:actionhit、キャッシュは変更されません。- 2秒後にもう一度要求します。 結果:
actionmiss、キャッシュが更新されました。
原因
ADDは、.stat ファイルのタイムスタンプを更新します。 allow ルールに一致するファイルは、そのタイムスタンプからgracePeriodが経過した後にのみ無効として扱われます。 更新されたコンテンツとリストページが同じ.stat スコープを共有している場合、リストは同じメカニズムによって無効化されるため、別のINVALIDATEは不要です。
解決策 resolution
問題を解決するには、次の手順に従います。
statfileslevelとgracePeriodの動作について:invalidate.cacheがトリガーされると(例えば、ページを公開する)、Dispatcherは、設定されたstatfileslevelで.statファイルを作成または更新します。- キャッシュされたページの次のリクエストで、Dispatcherは
.statファイルのタイムスタンプとキャッシュされたファイルを比較します。.statファイルが新しい場合、キャッシュは無効化され、コンテンツはパブリッシュから取得されます。 gracePeriod設定(例えば2秒)は、.statファイルの更新後、指定された期間のキャッシュ無効化を遅らせます。gracePeriod内のリクエストは、キャッシュされたコンテンツ (actionhit)を返します。gracePeriodの後、キャッシュは無効化されます(actionmiss)。- 設定でページの公開時に
invalidate.cacheをトリガーし、更新されたコンテンツとそのリストの両方が同じ.statファイルスコープの下にある場合、通常、リストページの明示的なキャッシュ消去は不要です。 リストはgracePeriodの後に自動的に無効化されます。 statfileslevel設定が、更新されたコンテンツと、同じ.statファイルのリスト ページの両方をカバーしていることを確認します。- キャッシュ無効化のタイミングが変更される可能性があるため、
invalidate.cacheが継続的にトリガーされるエッジケースのログを監視します。 必要に応じてgracePeriodを調整します。
キャッシュの無効化がgracePeriodの後に予想どおりに発生し、同じ.stat ファイル スコープのページの一覧表示に明示的なINVALIDATE操作が必要でないことを確認します。
experience-cloud-kcs-help-kbarticles