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:
-
Identifique qual erro está ocorrendo revisando o
error.log. -
Se o log mostrar
TooManyCallsException, aumentesling.max.callsno Apache Sling Main Servlet.- Para AEM 6.5 no local ou AEM Managed Services, abra
/system/console/configMgr, localizeApache Sling Main Servlete aumenteNumber of Calls per Requestincrementalmente para um valor maior, como2000ou3000. - Para o AEM as a Cloud Service, atualize
org.apache.sling.engine.impl.SlingMainServlet.cfg.jsonem seu projetoui.confige definasling.max.callscom um valor maior, como2000ou3000.
- Para AEM 6.5 no local ou AEM Managed Services, abra
-
Se o log mostrar
FileCountLimitExceededException: attachment, aumenterequest.max.file.countna 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, localizeApache Sling Request Parameter Handlinge definaMaximum File Countcomo10000. - Para o AEM as a Cloud Service, atualize
org.apache.sling.engine.parameters.cfg.jsonem seu projetoui.confige definarequest.max.file.countcomo10000.
- Para AEM 6.5 no local ou AEM Managed Services, abra
-
Verifique se há configurações OSGi personalizadas conflitantes que substituam esses valores e remova-os ou corrija-os.
-
Reinicie o AEM onde for necessário para o tipo de implantação para que os valores atualizados sejam aplicados.
-
Teste o modelo novamente adicionando campos, salvando e reabrindo o modelo.
-
Confirme se todos os campos persistem e se nenhum novo erro aparece em
error.log.