Tillfällig lösning och åtgärda fel i index med AEM/AEM Forms

Om någon får problem med att indexet är skadat i AEM-/AEM-formulären kan den här artikeln hjälpa dig att lösa problemet genom att visa hur du tar bort de indexdata som finns i databasen och indexerar om det skadade indexet.

Beskrivning description

Miljö

Experience Manager Forms

Problem/symtom

Det är mycket ovanligt att uppleva en indexskada. Men om det händer ser du loggposter som liknar:
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)

Upplösning resolution

Om någon råkar ut för den här situationen är det troligtvis snabbaste sättet att lösa problemet genom att ta bort de indexdata som finns i databasen och indexera om det skadade indexet.

Obs! Omindexering är en tids- och resurskrävande åtgärd för de här exemplen kommer indexet "workflowDataLucene" att användas

Ta bort indexdata:

Indexdata finns i databasen under /oak:index/workflowDataLucene som dolda noder. Därför måste du:

  1. Kopiera indexdefinitionen (endast) till en ny plats.
  2. Ta bort hela /oak:index/workflowDataLucene-nodstrukturen.
  3. Återskapa /oak:index/workflowDataLucene och indexera igen.

Tillfällig lösning:

I stället för att ta bort indexet kan du som en tillfällig lösning inaktivera det och skapa ett nytt index med samma definition:

  1. Skapa ett nytt index med samma indexdefinition som den skadade
  2. Utlös omindexering för det nya indexet
  3. Inaktivera det skadade indexet genom att ändra type-egenskapen till "disabled"

när ändringarna är klara kommer varje fråga att gå till det nya indexet

Ta bort data från RDB:

Som en sista utväg och om du kör på RDBmk kan du analysera för att ta bort indexdata direkt från databasen med en fråga som liknar:

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 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


Om du väljer att gå till den här sökvägen måste du verifiera frågan innan du kör den, eftersom det kan kräva vissa ändringar'5:p/oak:index/workflowDataLucene/%'

OBS! AEM måste stängas och lokala beständiga cache- och indexfiler (< crx-quickstart> /database/cache och < crx-quickstart> /database/index) måste tas bort innan AEM startas efter den här borttagningen.

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