Forms のキャッシュの構成 configuring-caching-for-forms
Forms サービスは、Designer で作成されたフォームデザインを取得し、様々な形式でレンダリングします。
管理コンソールの Forms ページには、Forms サービスがアイテムをキャッシュする方法を制御する設定が含まれています。これらの設定を調整し、Forms サービスのパフォーマンスを最適化できます。
Forms サービスは次のアイテムをキャッシュします。
- フォームデザイン: Forms サービスは、リポジトリまたは HTTP ソースから取得したフォームデザインをキャッシュします。このキャッシュにより、以降のレンダリング要求では、Forms サービスがリポジトリではなくキャッシュからフォームデザインを取得するようになるため、パフォーマンスが向上します。
- フラグメントと画像: Forms サービスでは、フォームデザインで使用されるフラグメントと画像をキャッシュできます。Forms サービスがこれらのオブジェクトをキャッシュすると、フラグメントと画像がリポジトリから読み取られるのは初回要求時のみになるので、パフォーマンスが向上します。
- フォーム: Forms サービスでは、レンダリング対象のフォームをキャッシュします。このタイプのキャッシュにより、Forms サービスが以降のリクエストで同じフォームを解決およびレンダリングする必要がなくなるのでパフォーマンスが向上します。
Forms では、次の 2 つの場所にキャッシュが格納されます。
- メモリ内: すばやくアクセスできるようにメモリ内にアイテムが格納されます。メモリ内キャッシュはサイズに制限があり、サーバーを再起動すると削除されます。
- ディスク上: サーバーのファイルシステムにアイテムが格納されます。ディスクキャッシュはメモリ内キャッシュよりも容量が大きく、サーバーを再起動しても保持されます。ディスクキャッシュの場所はアプリケーションサーバーによって異なります。ディスクキャッシュの場所の変更については、Forms の場所の設定を参照してください。
キャッシュモードの指定 specifying-the-cache-mode
Forms では、次の 2 つのモードのキャッシュがサポートされています。
- 無条件
- キャッシュのチェックポイントの使用
2 つのキャッシュモード間で切り替えを行った場合、変更を有効にするには、Forms サービスを再起動します。このサービスを再起動するには、Workbench を使用するか、AEM Forms モジュール関連サービスの開始と停止の説明を参照してください。
キャッシュのチェックポイント時間は、モードを切り替えるときに自動的にリセットされます。
無条件キャッシュの使用 using-unconditional-caching
このモードでは、Forms サービスはリクエストを受け取るときに、必要なリソース(フォームデザインおよびフラグメントや画像などの関連アセット)を検証します。Forms サービスは、リポジトリ内のリソースのタイムスタンプとキャッシュ内のリソースのタイムスタンプを比較し、キャッシュ内のリソースの方が古い場合は、そのリソースを更新します。
このキャッシュモードでは、必ず最新のリソースが使用されますが、Forms サービスはキャッシュされたアイテムをリクエストごとにリポジトリと比較して検証するので、パフォーマンスが低下します。このキャッシュモードは、リソースが頻繁に更新され、パフォーマンスを重要視しない開発およびステージング環境に適しています。
無条件キャッシュを指定
- 管理コンソールで、サービス/Forms をクリックします。
- 「フォームキャッシュコントロールの設定」で「無条件」を選択し、「保存」をクリックします。
キャッシュのチェックポイントを使用する use-the-cache-check-point
このモードでは、Forms サービスは、キャッシュされたリソースのタイムスタンプがキャッシュのチェックポイント時間よりも古い場合にのみ、リポジトリで新しいバージョンのリソースを確認します。最新のキャッシュのチェックポイント時間は、管理コンソールの Forms ページに表示されます。
このキャッシュモードは、パフォーマンスが重視され、リソースに対する変更が頻繁に行われない、高パフォーマンスの実稼動環境で使用します。キャッシュのチェックポイント時間は、リポジトリリソースに対する変更をデプロイするときにリセットできます。
キャッシュのチェックポイント使用を指定
- 管理コンソールで、サービス/Forms をクリックします。
- 「フォームキャッシュコントロールの設定」で「最後の検証がキャッシュのチェックポイント時間よりも前に行われた場合」を選択し、「保存」をクリックします。
キャッシュのチェックポイントをリセット
- 管理コンソールで、サービス/Forms をクリックします。
- 「フォームキャッシュコントロールの設定」で、「キャッシュチェックポイント」をクリックします。
キャッシュの内容をリセット
キャッシュの内容はいつでもクリアできます。キャッシュをリセットすると、Forms サービスは完全なレンダリングを実行して新しいキャッシュを作成するので、各フォームでの初回リクエスト時の速度が低下します。
- 管理コンソールで、サービス/Forms をクリックします。
- 「フォームキャッシュコントロールの設定」で、「キャッシュをリセット」を選択します。
キャッシュ設定の指定 configuring-cache-settings
Forms でキャッシュを使用するように設定を指定できます。こうすることにより、お使いの AEM Forms 環境のパフォーマンスを最適化することができます。
これらの設定にアクセスするには、管理コンソールで、サービス/Forms をクリックします。
グローバルキャッシュ設定の指定 specifying-global-cache-settings
「グローバルキャッシュ設定」領域の設定は、すべての種類のキャッシュに影響します。これらの設定のいずれかを変更する場合、その変更を有効にするには、Forms サービスを再起動します。このサービスを再起動するには、Workbench を使用するか、AEM Forms モジュール関連サービスの開始と停止の説明を参照してください。
最大キャッシュドキュメントサイズ(KB): 任意のメモリ内キャッシュに保存できるフォームデザインまたはその他のリソースの最大サイズ(キロバイト単位)です。これはすべてのメモリ内キャッシュに適用されるグローバル設定です。リソースのサイズがこの値よりも大きい場合、そのリソースはメモリにキャッシュされません。デフォルト値は 1024 キロバイトです。この設定は、ディスクキャッシュには影響しません。
フォームレンダリングキャッシュの有効化: デフォルトでは、このオプションが選択されており、レンダリングされたフォームがその後の取得のためにキャッシュされます。この設定により、Forms サービスは特定のフォームを 1 回レンダリングするだけで済み、以降はキャッシュされたバージョンを使用するのでパフォーマンスが向上します。このオプションは、フォームデザインのキャッシュプロパティと連動します。フォームデザインでのこの値の設定について詳しくは、Designer ヘルプを参照してください。
フォームデザインをキャッシュ caching-form-designs
Forms サービスはレンダリングリクエストを受け取ると、リポジトリからフォームデザインを取得してキャッシュします。このキャッシュにより、以降のレンダリング要求では、Forms サービスがリポジトリではなくキャッシュからフォームデザインを取得するようになるため、パフォーマンスが向上します。
Forms サービスは、常にディスク上にフォームデザインをキャッシュします。フォームデザインがサーバー上に格納されている場合、これらのファイルはディスクキャッシュと見なされます。また、Forms サービスは、「メモリ内テンプレートキャッシュ」領域の設定に従って、フォームデザインをメモリ内にもキャッシュします。これらの設定のいずれかを変更した場合、その変更を有効にするには、Forms サービスを再起動します。このサービスを再起動するには、Workbench を使用するか、AEM Forms モジュール関連サービスの開始と停止の説明を参照してください。
テンプレート設定キャッシュサイズ: メモリに保持するテンプレート設定オブジェクトの最大数です。デフォルト値は 100 です。この値は、テンプレートキャッシュサイズの値と同じかそれ以上の値に設定することをお勧めします。この設定は、ディスクキャッシュには影響しません。
テンプレートキャッシュサイズ: メモリ内に保持するテンプレートコンテンツオブジェクトの最大数です。デフォルト値は 100 です。この設定は、ディスクキャッシュには影響しません。
有効: デフォルトでは、このチェックボックスが選択されており、フォームテンプレートがメモリ内にキャッシュされます。このオプションが選択されていない場合、フォームテンプレートはディスク上にのみキャッシュされます。
レンダリングされたフォームのキャッシュ caching-rendered-forms
Forms サービスは、レンダリングされたフォームをキャッシュします。これにより、以降のリクエストで同じフォームを解決およびレンダリングする必要がなくなります。レンダリングされたフォームは、ディスク上およびメモリ内の両方にキャッシュされます。
次の設定は、「メモリ内フォームレンダリングキャッシュ」領域にあります。これらの設定のいずれかを変更する場合、その変更を有効にするには、Forms サービスを再起動します。このサービスを再起動するには、Workbench を使用するか、AEM Forms モジュール関連サービスの開始と停止の説明を参照してください。
キャッシュサイズ: メモリ内キャッシュに格納できるレンダリングされたフォームの最大数を指定します。デフォルト値は 100 です。この設定は、ディスクキャッシュには影響しません。
有効: デフォルトでは、このオプションが選択されており、レンダリングされたフォームがメモリ内にキャッシュされます。このオプションが選択されていない場合、レンダリングされたフォームはディスク上にのみキャッシュされます。
フラグメントと画像のキャッシュ caching-fragments-and-images
Forms サービスは、フォームデザインで使用されるフラグメントと画像をディスク上にキャッシュします。これにより、フラグメントと画像がリポジトリから読み取られるのは初回リクエスト時のみになるので、パフォーマンスが向上します。以降のリクエストでは、Forms サービスは、ディスクキャッシュからフラグメントと画像を読み取ります。フラグメントと画像はディスク上にのみキャッシュされます。メモリ内にはキャッシュされません。
ディスク上でのフラグメントおよび画像のキャッシュを制御するには、次の設定を使用します。これらの設定は、「テンプレートリソースキャッシュ設定」領域にあります。
リソースキャッシュ: リストから次のいずれかのオプションを選択します。
フラグメントと画像に対して有効: Forms サービスはフラグメントと画像をキャッシュします。これはデフォルトのオプションです。
フラグメントに対して有効: Forms サービスはフラグメントをキャッシュしますが、画像はキャッシュしません。
無効: Forms サービスは、フラグメントも画像もキャッシュしません。
クリーンアップ間隔(秒): Forms サービスが無効な古いキャッシュファイルを削除する頻度を指定します。Forms サービスでは、有効なキャッシュファイルは削除されません。クリーンアップの間隔を変更する場合、その変更を有効にするには、Forms サービスを再起動します。このサービスを再起動するには、Workbench を使用するか、AEM Forms モジュール関連サービスの開始と停止の説明を参照してください。デフォルト値は 600 秒です。
クラスター環境のキャッシュに関する考慮事項 clustering-considerations-for-caches
クラスター環境では、ノードごとに独自のメモリ内キャッシュとディスクキャッシュが保持されます。各ノードのキャッシュ内容は、そのノードでレンダリングされているフォームによって異なります。
キャッシュの場所は、クラスターの各ノードで同一(同じディスクおよびパス)である必要があります。共有ストレージにはキャッシュを置かないでください。
管理コンソールの Forms ページを使用して特定のノードのキャッシュ設定を変更すると、リクエストがそのノードに送信されると、他のノードのキャッシュ設定が更新されます。この動作は、「キャッシュをリセット」ボタンにも適用されます。あるノードの「キャッシュをリセット」ボタンをクリックすると、そのノードからは直ちにキャッシュが削除されます。他のノードのキャッシュについては、リクエストがそのノードに送信されるとクリアされます。