Objectif

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

Étapes

Réindexer un index synchrone en définissant simplement la propriété reindex sur true donne lieu à une opération synchrone pouvant entraîner le blocage d’une instance Oak. Pour éviter cette situation, envoyez l’indexation à un thread d’arrière-plan.  Pour ce faire, procédez comme suit :

  1. Effectuez la 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 - /oak:index/<property index>
      reindex=true

      reindex-async=true

    2. Pour valider le fait que la méthode ci-dessus rafraîchit le nœud, async="async-reindex" doit être défini.

    3. Appelez le startPropertyIndexAsyncReindex sur le MBean PropertyIndexAsyncReindex. Cela lancerait le job d’arrière-plan qui rechercherait de tels types d’index. Après l’invocation, vous devriez voir une ligne de journal « La réindexation sera effectuée » ...

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

    5. Relancez l’étape 3 pour rétablir l’index dans un index de synchronisation. Si l’indicateur asynchrone n’est pas supprimé, le Mbean devra peut-être être appelé plusieurs fois (cela peut se produire si des modifications affectant cet index se produisent simultanément).

    Remarque : Seul le ‘async="async-reindex"’ sera supprimé car cela contrôle le thread sur lequel l’indexation aura lieu.  La propriété ‘reindex-async’ est juste un indicateur de configuration qui ne changera pas automatiquement. L’idée est que vous le définissiez une fois pour les définitions d’index spécifiques contrôlant toutes les réindexations futures. Les paramètres devraient alors rester ainsi et vous n’aurez plus besoin de les toucher à nouveau.

  2. Supprimer le point de contrôle de réindexation (AEM 6.2 et versions antérieures uniquement)

    Au cours du 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 de la manière décrite ci-dessous, afin de garantir une récupération des ordures de révision ultérieure :

    1. Invoquer l’opération listCheckpoints ()

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

    3. Copiez la valeur de son identifiant dans le presse-papier
      sur MongoMK, cela ressemble à ceci : r1234567aaaa-0-1
      sur TarMK, cela ressemblera à ceci : 6eac07d0-fe27-4d16-82f8-6d5da4cefd67.

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

    5. Collez l’identifiant copié en tant que p1 et cliquez sur Invoquer.

    6. Cette étape libère le point de contrôle.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne