Como reindexar um índice do AEM síncrono | AEM, Oak

Descrição

Ambiente
Adobe Experience Manager

Problema
Como faço para reindexar corretamente um índice Oak síncrono sem causar tempo de inatividade?

Resolução

Solução
Reindexação de um índice síncrono simplesmente definindo a propriedade reindex como true O resulta em uma operação síncrona que pode causar a interrupção de uma instância do Oak.
Para evitar essa situação, envie a indexação para um thread em segundo plano.
Para fazer isso, siga as etapas abaixo:

Etapa 1: reindexe em uma thread em segundo plano

  1. Defina as seguintes propriedades de CRXDE Lite na definição de índice do índice de propriedade a ser ativado para indexação assíncrona:

    /oak:index/property index
    reindex=true
    reindex-async=true
    
  2. Para validar a atualização do nó, async="async-reindex" deve ser definido.

  3. Chame o startPropertyIndexAsyncReindex no PropertyIndexAsyncReindex MBean.

    Isso iniciaria o trabalho em segundo plano que pesquisaria esses tipos de índices.

    Após a invocação, você deverá ver uma reindexação de linha de log executada…

  4. Quando a reindexação estiver concluída, o sinalizador de reindexação será redefinido para 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, o Mbean poderá ter que ser chamado várias vezes (isso pode acontecer se ocorrerem alterações afetando esse índice simultaneamente).

    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: remova 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 o listCheckpoints() operação.

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

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

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

Nesta página