Analysieren von AEM Indizierungsproblemen
Der Artikel enthält Anleitungen zur Analyse langsamer Abfragen, zur Neuindizierung asynchroner Indizes und zur Fehlerbehebung bei Indizierungsproblemen in Adobe Experience Manager.
Beschreibung description
Umgebung
Adobe Experience Manager
Problem/Symptome
Wie kann ich alle gängigen Indizierungsprobleme beheben?
Auflösung resolution
Analysieren langsamer Abfragen
Wenn Sie zu Tools >
Vorgänge >
Dashboard >
Diagnose >
Abfrageleistung gehen, wird die Liste der langsamen Abfragen angezeigt.
Weitere Informationen zum Analysieren der langsamen Abfragen finden Sie in diesem Dokument .
In Nicht-Produktionsumgebungen kann das Tool-Paket für Adobe Consulting Services (ACS) AEM installiert werden, um ein erklärtes Abfragetool für das weitere Debugging bereitzustellen.
Neuindizierung asynchroner Indizes
Hinweis: Die Neuindizierung löst in der Regel keine Abfrageprobleme, z. B. Abfragen, die nicht die richtigen Ergebnisse zurückgeben. Außerdem kann die Neuindizierung lange dauern, bis eine Neuindizierung vermieden wird, es sei denn, sie wird durch einen dort aufgeführten Grund abgedeckt.
Neuindizieren eines asynchronen Index
-
Melden Sie sich bei Ihrer AEM-Autoreninstanz an
-
Öffnen Sie http://aemhost:port/crx/de/index.jsp
-
Navigieren Sie zur Indexdefinition unter /oak:index .
-
Legen Sie für den Index die boolesche Eigenschaft reindex=true fest, um ihn neu zu indizieren, und speichern Sie dann. Wenn die Indizierung beginnt, wird eine Protokollmeldung wie die folgende angezeigt:
code language-none 23.06.2015 14:26:23.070 *INFO* [ FelixStartLevel] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes: [ /oak:index/cqAcUUID, /oak:index/nodetype, /oak:index/deviceIdentificationMode, /oak:index/campaignpath, /oak:index/active, /oak:index/jcrFrozenMixinTypes]
-
Während der Neuindizierung wird ausgeführt, hat das Attribut status von IndexStatsMBean den Wert running.
code language-none 23.06.2015 14:26:23.517 *INFO* [ FelixStartLevel] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing Traversed #10000 /jcr:system/jcr:versionStorage/c8/5f... 23.06.2015 14:28:51.999 *INFO* [ pool-8-thread-1] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Indexing report - /oak:index/counter (708) - /oak:index/authorizables (159) - /oak:index/cqPageLucene (1913) - /oak:index/ntBaseLucene (444) - /oak:index/cqTagLucene (512) - /oak:index/workflowDataLucene*(116)
-
Sie können bestätigen, dass die Indizierung abgeschlossen ist, indem Sie Ihren Indexdefinitionsknoten überprüfen, die Eigenschaft reindexCount hätte inkrementiert werden sollen und der boolesche Neuindizierungswert auf false gesetzt werden sollte.
Wenn die Indizierung erfolgreich abgeschlossen wurde, wird in der Protokolldatei der folgende Eintrag angezeigt:
code language-none 23.06.2015 14:28:52.009 *INFO* [ pool-8-thread-1] org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Reindexing (async) completed for indexes: [ /oak:index/counter*(708), /oak:index/authorizables*(159), /oak:index/cqPageLucene*(1913), /oak:index/ntBaseLucene*(444), /oak:index/cqTagLucene*(512), /oak:index/workflowDataLucene*(116)] in 30.36 s
-
Wenn die Neuindizierung nicht abgeschlossen ist und in eine Schleife geraten ist, lesen Sie den Abschnitt unten mit dem Titel Analysieren der fehlgeschlagenen Neuindizierung .
-
Die asynchrone Indexaktivität kann auf INFO-Ebene identifiziert werden, indem Sie Folgendes berücksichtigen:
code language-none org.apache.jackrabbit.plugins.index.IndexUpdate, and org.apache.jackrabbit.plugins.index.AsyncIndexUpdate
Leistungsprobleme bei der asynchronen Indizierung
-
Aktivieren Sie die Protokollierung, um den Zeitpunkt zu überprüfen:
TRACE-Ebene (nur in Oak 1.0.17 oder höher):
code language-none org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext.perf
DEBUGGING-Ebene:
code language-none org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate org.apache.jackrabbit.oak.plugins.index.IndexUpdate org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier
Protokolle wie diese werden generiert und zeigen den Zeitpunkt der Indizierung an:
code language-none 09.07.2015 08:13:38.401 *TRACE* [ 192.168.193.1 [ 1436444018387] POST /content/dam/site/test.createasset.html HTTP/1.1] org.apache.jackrabbit.oak.jcr.operations.writes [ session-101777] Adding node [ /content/dam/site/test/jackrabbit-oak7.png] 09.07.2015 08:13:38.583 *TRACE* [ 192.168.193.1 [ 1436444018387] POST /content/dam/site/test.createasset.html HTTP/1.1] org.apache.jackrabbit.oak.jcr.operations.writes [ session-101777] save 09.07.2015 08:13:42.823 *DEBUG* [ pool-9-thread-1] org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate Running background index task async 09.07.2015 08:13:42.963 *TRACE* [ pool-9-thread-1] org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor [ /oak:index/lucene] Indexed document for /content/dam/site/test/jackrabbit-oak7.png/jcr:content/related is Document<stored,indexed,omitNorms,indexOptions=DOCS_ONLY<:path:/content/dam/site/test/jackrabbit-oak7.png/jcr:content/related> indexed,tokenized<:fulltext:related>> 09.07.2015 08:13:43.579 *DEBUG* [ pool-9-thread-1] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Indexing report - /oak:index/siteDamIndex(2) - /oak:index/lucene(15) 09.07.2015 08:13:43.779 *TRACE* [ oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.perf [ /oak:index/siteDamIndex] Index found to be updated. Reopening the IndexNode [ took 150ms] 09.07.2015 08:13:45.248 *TRACE* [ oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier.perf [ /oak:index/lucene] Copied 0 files totaling 0 B [ took 1465ms] 09.07.2015 08:13:45.248 *TRACE* [ oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier [ /oak:index/lucene] opening remote only file segments.gen 09.07.2015 08:13:45.361 *TRACE* [ oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.perf [ /oak:index/lucene] Index found to be updated. Reopening the IndexNode [ took 1581ms]
-
Nehmen Sie eine Reihe von Thread-Sicherheitskopien und suchen Sie nach dem Thread, der AsyncIndexUpdate im Stapel enthält, um zu sehen, wo der Großteil der Indizierungszeit verbracht wird oder ob die Indizierung auf einige andere Threads wartet. Informationen zu Thread-Sicherheitskopien finden Sie in diesem Artikel.
-
Legen Sie die boolesche Eigenschaft saveDirectoryListing=true fest (nur bei Verwendung von Oak 1.0.16, wenn eine spätere Version dann nicht erforderlich ist) und legen Sie die Eigenschaft excludedPaths=
[
/var, /etc/workflow/instances, /jcr:system]
auf den OOOTB-Index /oak:index/lucene fest, um ihn zu optimieren. -
Klicken Sie auf Alle speichern.
-
Wenn Sie benutzerdefinierte Lucene-Eigenschaftenindizes erstellen, stellen Sie sicher, dass Sie saveDirectoryListing=true (Boolesch) festlegen, wenn Sie Oak 1.0.16 verwenden und die Eigenschaft includedPaths (String
[
]
) festlegen, um Ihren Index auf die Indexierung bestimmter Pfade zu beschränken. -
Wechseln Sie zu dieser URL
/system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService
Kopieren beim Lesen, Kopieren beim Schreiben (nur sicher in Oak 1.0.18 und höher) und "Vorabruf-Indexdateien"(nur in Oak 1.0.18 und höher).
Fehlgeschlagene Neuindizierung analysieren
-
Wenn die asynchrone Indizierung fehlschlägt, sehen Sie bei der Überprüfung der asynchronen Indexer-Benutzeroberfläche JMX (Link unten), dass LastIndexedTime ein altes Datum und eine alte Uhrzeit ist:
http://localhost:4502/system/console/jmx/org.apache.jackrabbit.oak%3Aid%3D11%2Cname%3D"async"%2Ctype%3D"IndexStats"
-
Wenn die Neuindizierung fehlschlägt, geht sie in eine Schleife wie diese:
code language-none 08.01.2015 01:22:04.474 *INFO* [ pool-9-thread-2] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes [ /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified] 08.01.2015 01:52:08.365 *INFO* [ pool-9-thread-5] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes [ /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified] 08.01.2015 09:33:23.306 *INFO* [ pool-9-thread-5] org.apache.jackrabbit.oak.plugins.index.IndexUpdate Reindexing will be performed for following indexes [ /oak:index/damFileSize, /oak:index/lucene, /oak:index/cqLastModified]
-
Wenn Sie dies sehen, sollten Sie die Protokollierung auf Debug-Ebene für
org.apache.jackrabbit.oak.plugins.index
aktivieren -
Wenn die Indizierung das nächste Mal eine Schleife durchläuft und die obige Protokollmeldung angezeigt wird, gibt eine Debugging-Protokollmeldung mehr Aufschluss darüber, warum die Indizierung fehlgeschlagen ist. Dann können Sie das Problem lösen, ob es sich um einen beschädigten Knoten, einen fehlenden Blob oder ein anderes Problem handelt.