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

Pour réindexer un index AEM synchrone, vous pouvez simplement définir la propriété reindex sur true. Cependant, cela peut entraîner un blocage d’une instance Oak et, dans ce cas, vous devez envoyer l’indexation à un thread d’arrière-plan. Cet article explique comment procéder.

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é reindex sur true génère une opération synchrone qui peut provoquer le blocage d’une instance Oak.

Pour éviter cette situation, envoyez l’indexation à un thread d’arrière-plan. Procédez comme suit :

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

  1. Définissez les propriétés suivantes de 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 la startPropertyIndexAsyncReindex sur le MBean PropertyIndexAsyncReindex.

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

    Après un appel, vous devriez voir une réindexation de ligne de journal être 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é, il peut être nécessaire d’appeler plusieurs fois le MBean (cela peut arriver si des modifications se produisent simultanément et affectent cet index).

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

    La propriété 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 : supprimez le point de contrôle de réindexation (AEM 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 libérée comme décrit ci-dessous, afin de garantir une récupération de l’espace mémoire de révision fluide ultérieurement :

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

    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’identifiant dans le presse-papiers :

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

    Sur TarMK, elle 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
experience-cloud-kcs-help-kbarticles