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
-
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
-
Pour vérifier que l’action ci-dessus actualise le nœud,
async="async-reindex"
doit être définie. -
Appelez le
startPropertyIndexAsyncReindex
sur lePropertyIndexAsyncReindex
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…
-
Une fois la réindexation terminée, l’indicateur de réindexation est réinitialisé sur false.
-
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 :
-
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
-
Appelez l’opération
listCheckpoints()
. -
Recherchez la ligne du point de contrôle avec la propriété
name=async-reindex
. -
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
-
Ouvrez ensuite l’opération
releaseCheckpoint()
. -
Collez l’ID copié comme p1 et cliquez sur Invoke.
-
Cette étape autorisera le point de contrôle.