Sling リクエストの制限により、コンテンツフラグメントモデルの保存または読み込みに失敗する
Sling リクエスト処理制限が低すぎる場合、コンテンツフラグメントモデルは保存に失敗するか、すべてのフィールドを表示しなかったか、変更を元に戻します。 2つの設定が一般的に含まれます。エディターが行うバックエンド呼び出しの数を制御するsling.max.callsと、マルチパート保存リクエストを制御するrequest.max.file.count。 アップグレードによって、これらの制限がリセットされるか、カスタム OSGi設定によって上書きされ、TooManyCallsExceptionや FileCountLimitExceededException などのエラーがトリガーされます。 これを修正するには、影響を受けるSling制限を上げ、競合する設定の上書きを削除し、エディターが正しく読み込まれて保存されることを確認します。
説明 description
環境
- Adobe Experience Manager as a Cloud Service
- AEM Managed Services
- AEM 6.5 オンプレミス
問題/症状
- エラーログに
TooManyCallsExceptionが表示されます。 - エラーログに
FileCountLimitExceededException: attachmentが表示されます。 - コンテンツフラグメントモデルフィールドは保存されません。
- モデルを再度開くと、新しいフィールドが表示されなくなります。
- モデルに多数のフィールドが含まれている場合、エディターにすべてのタブまたはフィールドが表示されません。
- ネストされたマルチリストを含むダイアログに追加 ボタンがありません。
原因
AEMでは、Sling リクエスト処理制限を使用して、過剰なリクエストの実行やサイズが大きすぎるマルチパートフォーム送信から保護します。 sling.max.callsが低すぎる場合、複雑なモデルを読み込んだり保存したりするときに、コンテンツフラグメントモデルエディターが許可されているバックエンド呼び出し数を超えるので、TooManyCallsExceptionが発生します。 request.max.file.countが低すぎる場合、ファイルがアップロードされていない場合でも、マルチパートの保存要求がFileCountLimitExceededExceptionで失敗します。 アップグレードまたはカスタム OSGi設定がこれらの値をリセットまたは上書きし、問題が返されます。
解決策 resolution
Sling リクエスト制限によるコンテンツフラグメントモデルの保存または読み込みエラーに対処するには、次の手順に従います。
-
error.logを確認して、発生しているエラーを特定します。 -
ログに
TooManyCallsExceptionが表示されている場合は、Apache Sling Main Servletでsling.max.callsを増やします。- AEM 6.5 オンプレミスまたはAEM Managed Servicesの場合は、
/system/console/configMgrを開いてApache Sling Main Servletを見つけ、Number of Calls per Requestを2000または3000などの高い値に増分して増やします。 - AEM as a Cloud Serviceの場合は、
ui.configプロジェクトのorg.apache.sling.engine.impl.SlingMainServlet.cfg.jsonを更新し、sling.max.callsを2000や3000などの高い値に設定します。
- AEM 6.5 オンプレミスまたはAEM Managed Servicesの場合は、
-
ログに
FileCountLimitExceededException: attachmentが表示される場合は、request.max.file.countをApache Sling リクエストパラメーター処理で増やします。- AEM 6.5 オンプレミスまたはAEM Managed Servicesの場合、
/system/console/configMgrを開いてApache Sling Request Parameter Handlingを見つけ、Maximum File Countを10000に設定します。 - AEM as a Cloud Serviceの場合、
ui.configプロジェクトのorg.apache.sling.engine.parameters.cfg.jsonを更新し、request.max.file.countを10000に設定します。
- AEM 6.5 オンプレミスまたはAEM Managed Servicesの場合、
-
これらの値を上書きして削除または修正するカスタム OSGi設定が競合しているかどうかを確認します。
-
デプロイメントタイプに必要な場合は、更新された値が適用されるようにAEMを再起動します。
-
フィールドを追加し、保存して、モデルを再度開いて、モデルを再度テストします。
-
すべてのフィールドが保持され、新しいエラーが
error.logに表示されないことを確認します。