Como reindexar um índice do AEM síncrono | AEM, Oak
Para reindexar um índice AEM síncrono, basta definir a propriedade reindex como true. No entanto, isso pode fazer com que uma instância do Oak trave, caso em que é necessário enviar a indexação para uma thread em segundo plano. Este artigo explica como.
Descrição description
Ambiente
Adobe Experience Manager
Problema/Sintomas
Como faço para reindexar corretamente um índice Oak síncrono sem causar tempo de inatividade?
Resolução resolution
Reindexar um índice síncrono simplesmente definindo a propriedade reindex como true resulta em uma operação síncrona que pode fazer com que uma instância do Oak trave.
Para evitar essa situação, envie a indexação para uma thread em segundo plano. Siga as etapas abaixo:
Etapa 1: reindexe em um thread em segundo plano
-
Defina as seguintes propriedades de CRXDE Lite na definição de índice para que o índice de propriedade seja habilitado para indexação assíncrona:
code language-none /oak:index/<property index> reindex=true reindex-async=true
-
Para validar a atualização do nó,
async="async-reindex"
deve ser definido. -
Invoque o
startPropertyIndexAsyncReindex
no MBeanPropertyIndexAsyncReindex
.Isso iniciaria o trabalho em segundo plano que pesquisaria esses tipos de índices.
A invocação do Post deve ser exibida. Uma reindexação da linha de log será executada…
-
Quando a reindexação for concluída, o sinalizador de reindexação será redefinido como false.
-
Volte a invocar a etapa 3 para alterar o índice para um índice de sincronização. Se o sinalizador assíncrono não for excluído, talvez o Mbean precise ser chamado várias vezes (isso pode acontecer se ocorrerem alterações simultâneas afetando esse índice).
Observação: somente o
async="async-reindex"
será removido, pois controla em qual thread a indexação ocorrerá.A propriedade
reindex-async
é apenas um sinalizador de configuração que não será alterado automaticamente.A ideia é que você o defina uma vez para as definições de índice específicas que controlam todas as reindexações futuras.
Espera-se então que ele fique lá dentro e que você não precise tocá-lo novamente.
Etapa 2: remover o ponto de verificação de reindexação (somente AEM 6.2 e versões mais antigas)
Durante o processo de reindexação assíncrona, um ponto de verificação do repositório é criado.
Depois que a tarefa de indexação for concluída, ela deverá ser liberada conforme descrito abaixo, para garantir a coleção de lixo de revisão descomplicada mais adiante:
-
Primeiro, abra o CheckpointManager MBean:
No MongoMK -/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DDocument+node+store+checkpoint+management%2Ctype%3DCheckpointManger
-
Chame a operação
listCheckpoints()
. -
Encontre a linha de ponto de verificação com a propriedade
name=async-reindex
. -
Copie seu valor de id para a área de transferência:
No MongoMK, será semelhante a isto:r1234567aaaa-0-1
No TarMK, será semelhante a isto:
6eac07d0-fe27-4d16-82f8-6d5da4cefd67
-
Em seguida, abra a operação
releaseCheckpoint()
. -
Cole a ID copiada como p1 e clique em Chamar.
-
Esta etapa liberará o ponto de verificação.