Correção e solução alternativa de corrupção de índice com AEM/AEM Forms

Se alguém tiver o problema de corrupção de índice nos formulários AEM/AEM, este artigo ajudará a resolver o problema, mostrando como excluir os dados de índice contidos no repositório e reindexar o índice corrompido.

Descrição description

Ambiente

Experience Manager Forms

Problema/Sintomas

Experimentar uma corrupção de índice é um caso muito incomum. Mas, se isso acontecer, será possível ver entradas de log semelhantes a:
17.01.2019 17:55:47.374 *WARN* [ pool-118-thread-4] org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate [ async] The index update failed org.apache.jackrabbit.oak.api.CommitFailedException: OakMerge0001: OakMerge0001: Failed to merge changes to the underlying store (retries 5, 5169 ms) at org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch.merge0(AbstractNodeStoreBranch.java:345) at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:156) at org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:160) at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1588) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.mergeWithConcurrencyCheck(AsyncIndexUpdate.java:581) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.updateIndex(AsyncIndexUpdate.java:525) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.runWhenPermitted(AsyncIndexUpdate.java:431) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.run(AsyncIndexUpdate.java:323) at org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:115) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1164) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:634)

Resolução resolution

Se alguém enfrentar essa situação, provavelmente a maneira mais rápida de resolver esse problema é excluindo os dados de índice contidos no repositório e reindexando o índice corrompido.

OBSERVAÇÃO: a reindexação é uma ação que consome tempo e recursos para esses exemplos, e usaremos o índice "workflowDataLucene"

Excluir os dados do índice:

Os dados de índice estão localizados no repositório abaixo de /oak:index/workflowDataLucene como nós ocultos. Portanto, para excluir o índice corrompido, é necessário:

  1. Copie a definição do índice (somente) para um novo local.
  2. Excluir toda a estrutura do nó /oak:index/workflowDataLucene.
  3. Recrie /oak:index/workflowDataLucene e acione a reindexação.

Solução alternativa:

Como solução, em vez de excluir o índice, você pode desativá-lo e criar um novo índice com a mesma definição:

  1. Criar um novo índice com a mesma definição do índice corrompido
  2. Acionar reindexação no novo índice
  3. Desative o índice corrompido alterando a propriedade de tipo para "desativado"

depois que essas alterações forem feitas, cada consulta passará para o novo índice

Excluir os dados do RDB:

Como último recurso, e se você executar em RDBmk, poderá analisar para excluir os dados do índice diretamente do banco de dados com uma consulta do tipo:

DELETE FROM NODES WHERE
ID = '2:/oak:index/workflowDataLucene' OR ID LIKE '3:/oak:index/workflowDataLucene/%' OR ID LIKE '4:/oak:index/workflowDataLucene/%' OR ID LIKE '5:/oak:index/workflowDataLucene/%' OR ID LIKE '6:/oak:index/workflowDataLucene/%' OR ID LIKE '7:/oak:index/workflowDataLucene/%' OR ID LIKE '8:/oak:index/workflowDataLucene/%' OR ID LIKE '9:/oak:index/workflowDataLucene/%' OR ID LIKE '10:/oak:index/workflowDataLucene/%' OR  
ID LIKE '5:p/oak:index/workflowDataLucene/%' OR ID LIKE '6:p/oak:index/workflowDataLucene/%' OR ID LIKE '7:p/oak:index/workflowDataLucene/%' OR ID LIKE '8:p/oak:index/workflowDataLucene/%' '9:p/oak:index/workflowDataLucene/%' OR ID LIKE '10:p/oak:index/workflowDataLucene/%' OR ID LIKE '11:p/oak:index/workflowDataLucene/%' OR ID LIKE '12:p/oak:index/workflowDataLucene/%' OR


Se decidir seguir esse caminho, verifique a consulta antes de executá-la, pois ela pode exigir algumas alteraçõesOR ID LIKE

OBSERVAÇÃO: o AEM deve ser desligado e os arquivos de índice e cache persistentes locais (< crx-quickstart> /repository/cache e < crx-quickstart> /repository/index) devem ser excluídos antes de o AEM ser iniciado após essa exclusão.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f