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

  1. 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
    
  2. Para validar a atualização do nó, async="async-reindex" deve ser definido.

  3. Invoque o startPropertyIndexAsyncReindex no MBean PropertyIndexAsyncReindex.

    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…

  4. Quando a reindexação for concluída, o sinalizador de reindexação será redefinido como false.

  5. 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:

  1. Primeiro, abra o CheckpointManager MBean:

    No MongoMK - /system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DDocument+node+store+checkpoint+management%2Ctype%3DCheckpointManger

    No TarMK - /system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DSegment+node+store+checkpoint+management%2Ctype%3DCheckpointManger

  2. Chame a operação listCheckpoints().

  3. Encontre a linha de ponto de verificação com a propriedade name=async-reindex.

  4. 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

  5. Em seguida, abra a operação releaseCheckpoint().

  6. Cole a ID copiada como p1 e clique em Chamar.

  7. Esta etapa liberará o ponto de verificação.

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