Beheben und Korrigieren von Indexbeschädigungen in AEM/AEM Forms

Wenn jemand das Problem der Indexbeschädigung in den AEM/AEM Formularen feststellt, hilft Ihnen dieser Artikel bei der Lösung des Problems, indem er zeigt, wie die im Repository enthaltenen Indexdaten gelöscht und der beschädigte Index neu indiziert werden.

Beschreibung description

Umgebung

Experience Manager Forms

Problem/Symptome

Eine Indexbeschädigung zu erleben ist ein sehr ungewöhnlicher Fall. In diesem Fall werden jedoch Protokolleinträge ähnlich wie folgt angezeigt:
17.01.2019 17:55:47.374 *WARN* [ pool-118-thread-4] org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate [ async] The index update failed org.apache.jackrabbit.oak.api.CommitFailedException: OakMerge0001: OakMerge0001: Failed to merge changes to the underlying store (retries 5, 5169 ms) at org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch.merge0(AbstractNodeStoreBranch.java:345) at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:156) at org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:160) at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1588) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.mergeWithConcurrencyCheck(AsyncIndexUpdate.java:581) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.updateIndex(AsyncIndexUpdate.java:525) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.runWhenPermitted(AsyncIndexUpdate.java:431) at org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.run(AsyncIndexUpdate.java:323) at org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:115) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1164) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:634)

Auflösung resolution

Wenn jemand mit dieser Situation konfrontiert ist, ist die wahrscheinlich schnellste Möglichkeit, dieses Problem zu lösen, indem die im Repository enthaltenen Indexdaten gelöscht und der beschädigte Index neu indiziert werden.

HINWEIS: Die Neuindizierung ist eine zeitaufwendige und ressourcenintensive Aktion für diese Beispiele. Wir werden den Index verwenden "workflowDataLucene"

Indexdaten löschen:

Die Indexdaten befinden sich im Repository unter /oak:index/workflowDataLucene als ausgeblendete Knoten verwenden. Um den beschädigten Index zu löschen, müssen Sie daher:

  1. Kopieren Sie die Indexdefinition (nur) an einen neuen Speicherort.
  2. Gesamte löschen /oak:index/workflowDataLucene Knotenstruktur.
  3. Neu erstellen /oak:index/workflowDataLucene und "tirgger reindex".

Problemumgehung:

Anstatt den Index zu löschen, können Sie ihn deaktivieren und einen neuen Index mit derselben Definition erstellen:

  1. Erstellen Sie einen neuen Index mit derselben Indexdefinition wie die beschädigte
  2. Neuindizierung des Triggers auf dem neuen Index
  3. Deaktivieren Sie den beschädigten Index, indem Sie die Eigenschaft type in "disabled"ändern.

Sobald diese Änderungen vorgenommen wurden, wird jede Abfrage an den neuen Index gesendet

Löschen Sie die Daten aus der RDB:

Als letztes Mittel und wenn Sie auf RDBmk, können Sie analysieren, um die Indexdaten direkt aus der Datenbank zu löschen, mit einer ähnlichen Abfrage wie:

DELETE FROM NODES WHERE
ID = '2:/oak:index/workflowDataLucene' OR ID LIKE '3:/oak:index/workflowDataLucene/%' OR ID LIKE '4:/oak:index/workflowDataLucene/%' OR ID LIKE '5:/oak:index/workflowDataLucene/%' OR ID LIKE '6:/oak:index/workflowDataLucene/%' OR ID LIKE '7:/oak:index/workflowDataLucene/%' OR ID LIKE '8:/oak:index/workflowDataLucene/%' OR ID LIKE '9:/oak:index/workflowDataLucene/%' OR ID LIKE '10:/oak:index/workflowDataLucene/%' OR  
ID LIKE '5:p/oak:index/workflowDataLucene/%' OR ID LIKE '6:p/oak:index/workflowDataLucene/%' OR ID LIKE '7:p/oak:index/workflowDataLucene/%' OR ID LIKE '8:p/oak:index/workflowDataLucene/%' OR ID LIKE '9:p/oak:index/workflowDataLucene/%' OR ID LIKE '10:p/oak:index/workflowDataLucene/%' OR ID LIKE '11:p/oak:index/workflowDataLucene/%' OR ID LIKE '12:p/oak:index/workflowDataLucene/%' OR


Wenn Sie sich für diesen Pfad entscheiden, überprüfen Sie die Abfrage, bevor Sie sie ausführen, da möglicherweise einige Änderungen erforderlich sind

NOTE:  AEM müssen heruntergefahren und lokale persistente Cache- und Indexdateien (< crx-quickstart> /repository/cache und < crx-quickstart> /repository/index) gelöscht, bevor AEM nach diesem Löschen gestartet wird.

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