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 リクエスト制限によるコンテンツフラグメントモデルの保存または読み込みエラーに対処するには、次の手順に従います。

  1. error.logを確認して、発生しているエラーを特定します。

  2. ログに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 Request2000または3000などの高い値に増分して増やします。
    • AEM as a Cloud Serviceの場合は、ui.config プロジェクトのorg.apache.sling.engine.impl.SlingMainServlet.cfg.jsonを更新し、sling.max.calls20003000などの高い値に設定します。
  3. ログにFileCountLimitExceededException: attachmentが表示される場合は、request.max.file.countをApache Sling リクエストパラメーター処理で増やします。

    • AEM 6.5 オンプレミスまたはAEM Managed Servicesの場合、/system/console/configMgrを開いてApache Sling Request Parameter Handlingを見つけ、Maximum File Count10000に設定します。
    • AEM as a Cloud Serviceの場合、ui.config プロジェクトのorg.apache.sling.engine.parameters.cfg.jsonを更新し、request.max.file.count10000に設定します。
  4. これらの値を上書きして削除または修正するカスタム OSGi設定が競合しているかどうかを確認します。

  5. デプロイメントタイプに必要な場合は、更新された値が適用されるようにAEMを再起動します。

  6. フィールドを追加し、保存して、モデルを再度開いて、モデルを再度テストします。

  7. すべてのフィールドが保持され、新しいエラーがerror.logに表示されないことを確認します。

関連トピックス

recommendation-more-help
experience-cloud-kcs-help-kbarticles