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

Pour réindexer un index d’AEM synchrone, vous pouvez simplement définir la propriété reindex sur true. Cela peut toutefois 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/Symptômes

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

Résolution resolution

La réindexation d’un index synchrone en définissant simplement la propriété de réindexation 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 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. Appelez le startPropertyIndexAsyncReindex sur le PropertyIndexAsyncReindex MBean.

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

    Appel de Post : une réindexation de ligne de journal sera effectuée…

  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 : Seul async="async-reindex" sera supprimé, car il contrôle le thread sur lequel l’indexation va se produire.

    La propriété reindex-async est simplement un indicateur de configuration qui ne changera 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 fichier 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. Appelez l’opération listCheckpoints().

  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, il ressemblera à ceci : r1234567aaaa-0-1

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

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

  6. Collez l’ID copié comme p1 et cliquez sur Invoke.

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

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