Comment réindexer un index AEM synchrone | AEM, Oak

Pour réindexer un index d’AEM synchrone, il vous suffit de définir la propriété reindex sur true. Cependant, cela peut entraîner le blocage d’une instance Oak, auquel cas vous devez envoyer l’indexation à un thread d’arrière-plan. Cet article explique comment.

Description description

Environnement

Adobe Experience Manager

Problème

Comment réindexer correctement un index Oak synchrone sans provoquer de temps d’arrêt ?

Résolution resolution

Réindexation d’un index synchrone en définissant simplement la propriété reindex sur true  entraîne une opération synchrone qui peut entraîner le blocage d’une instance Oak.

Pour éviter cette situation, envoyez l’indexation à un thread d’arrière-plan. Suivez les étapes ci-dessous :

Étape 1 : réindexation dans un thread d’arrière-plan

  1. Définissez les propriétés suivantes à partir de CRXDE Lite sur la définition d’index pour que l’index de propriété soit activé pour l’indexation asynchrone :

    code language-none
    /oak:index/<property index>
    reindex=true
    reindex-async=true
    
  2. Pour vérifier que l’action ci-dessus actualise le nœud, async="async-reindex" doit être définie.

  3. Appeler la variable startPropertyIndexAsyncReindex sur le PropertyIndexAsyncReindex MBean.

    Cela lancerait la tâche d’arrière-plan qui rechercherait de tels types d’index.

    Après l’appel, une réindexation de ligne de journal s’effectuera…

  4. Une fois la réindexation terminée, l’indicateur de réindexation est réinitialisé sur false.

  5. Appelez à nouveau l’étape 3 pour rétablir l’index en index de synchronisation. Si l’indicateur asynchrone n’est pas supprimé, le MBean doit peut-être être appelé plusieurs fois (cela peut se produire si des modifications se produisent simultanément affectant cet index).

    Remarque : Seule la variable async="async-reindex" sera supprimé, car il contrôle le thread sur lequel l’indexation se produira.

    La variable reindex-async est simplement un indicateur de configuration qui ne change pas automatiquement.

    L’idée est que vous la définissiez une fois pour les définitions d’index spécifiques contrôlant toute réindexation future.

    On s’attend alors à ce qu’elle reste ainsi et que vous n’ayez plus à la toucher.

Étape 2 : suppression du point de contrôle de réindexation (AEM version 6.2 et versions antérieures uniquement)

Pendant le processus de réindexation asynchrone, un point de contrôle de référentiel est créé.
Une fois la tâche d’indexation terminée, elle doit être publiée comme décrit ci-dessous, afin de garantir un nettoyage fluide de la mémoire d’analyse plus tard :

  1. Tout d’abord, ouvrez le CheckpointManager MBean :

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

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

  2. Appeler la variable listCheckpoints() opération.

  3. Recherchez la ligne du point de contrôle avec la propriété name=async-reindex.

  4. Copiez sa valeur d’id dans le Presse-papiers :

    Sur MongoMK, cela ressemblera à ceci : r1234567aaaa-0-1

    Sur TarMK, cela ressemblera à ceci : 6eac07d0-fe27-4d16-82f8-6d5da4cefd67

  5. Ouvrez ensuite l’opération releaseCheckpoint().

  6. Collez l’id copié en tant que p1 et cliquez sur Appeler.

  7. Cette étape autorisera le point de contrôle.

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