O modelo de fragmento de conteúdo não é salvo ou carregado devido aos limites de solicitação do Sling

Os modelos de fragmento de conteúdo não são salvos, não exibem todos os campos ou revertem alterações quando os limites de processamento de solicitação do Sling são definidos como muito baixos. Duas configurações estão normalmente envolvidas: sling.max.calls, que controla quantas chamadas de back-end o editor faz, e request.max.file.count, que controla solicitações de salvamento de várias partes. As atualizações redefinem esses limites ou as configurações OSGi personalizadas os substituem, o que aciona erros como TooManyCallsException e FileCountLimitExceededException. Para corrigir isso, aumente o limite de Sling afetado, remova substituições de configuração conflitantes e confirme se o editor é carregado e salvo corretamente.

Descrição description

Ambiente

  • Adobe Experience Manager as a Cloud Service
  • AEM Managed Services
  • AEM 6.5 No local

Problema/Sintomas

  • Os logs de erro mostram TooManyCallsException.
  • Os logs de erro mostram FileCountLimitExceededException: attachment.
  • Os campos do modelo de fragmento de conteúdo não são salvos.
  • Novos campos desaparecem após a reabertura do modelo.
  • O editor não exibe todas as guias ou campos quando o modelo contém muitos campos.
  • O botão Adicionar está ausente nas caixas de diálogo com várias listas aninhadas.

Causa

O AEM usa limites de processamento de solicitações do Sling para proteger contra execução excessiva de solicitações e envios de formulários multiparte grandes. Se sling.max.calls for muito baixo, o editor de Modelos de fragmentos de conteúdo excederá o número permitido de chamadas de back-end ao carregar ou salvar modelos complexos, o que causa TooManyCallsException. Se request.max.file.count for muito baixo, as solicitações de salvamento de várias partes falharão com FileCountLimitExceededException, mesmo quando nenhum arquivo estiver sendo carregado. As atualizações ou configurações OSGi personalizadas redefinem ou substituem esses valores e fazem com que o problema retorne.

Resolução resolution

Para solucionar falhas de salvamento ou carregamento do modelo de fragmento de conteúdo causadas por limites de solicitação do Sling, siga estas etapas:

  1. Identifique qual erro está ocorrendo revisando o error.log.

  2. Se o log mostrar TooManyCallsException, aumente sling.max.calls no Apache Sling Main Servlet.

    • Para AEM 6.5 no local ou AEM Managed Services, abra /system/console/configMgr, localize Apache Sling Main Servlet e aumente Number of Calls per Request incrementalmente para um valor maior, como 2000 ou 3000.
    • Para o AEM as a Cloud Service, atualize org.apache.sling.engine.impl.SlingMainServlet.cfg.json em seu projeto ui.config e defina sling.max.calls com um valor maior, como 2000 ou 3000.
  3. Se o log mostrar FileCountLimitExceededException: attachment, aumente request.max.file.count na Manipulação de parâmetro da solicitação do Apache Sling.

    • Para AEM 6.5 no local ou AEM Managed Services, abra /system/console/configMgr, localize Apache Sling Request Parameter Handling e defina Maximum File Count como 10000.
    • Para o AEM as a Cloud Service, atualize org.apache.sling.engine.parameters.cfg.json em seu projeto ui.config e defina request.max.file.count como 10000.
  4. Verifique se há configurações OSGi personalizadas conflitantes que substituam esses valores e remova-os ou corrija-os.

  5. Reinicie o AEM onde for necessário para o tipo de implantação para que os valores atualizados sejam aplicados.

  6. Teste o modelo novamente adicionando campos, salvando e reabrindo o modelo.

  7. Confirme se todos os campos persistem e se nenhum novo erro aparece em error.log.

Leitura relacionada

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