Cause
There can be many causes for asynchronous indexes to not get updated in AEM.
Some possible causes are:
- A corrupt lucene index file
- Oak repository corruption causing errors during indexing
Resolution
First step in solving such an issue is to debug the root cause. Once you know the root cause, then you can decide whether reindexing is required or not.
On AEM versions prior to 6.2, all indexes used one lane "async". That index lane's status could be viewed in the IndexStats MBean:
http://aem-host:port/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3Dasync%2Ctype%3DIndexStats
In AEM6.2, there are two index lanes:
- "fulltext-async" used by the /oak:index/lucene index - http://aem-host:port/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3Dfulltext-async%2Ctype%3DIndexStats
- "async" used by all other lucene indexes - http://aem-host:port/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3Dasync%2Ctype%3DIndexStats
You can view the IndexStats MBeans to see the status of indexing and identify if indexing has failed or if it is taking a long time.
The key fields to refer are:
- LatestError - the error that is causing indexing to fail if it is failing.
- LatestErrorTime - the time when the error occurred.
- LastIndexedTime - the last time when an indexing cycle succeeded.
If you see an error listed in LatestError, then you have to work on fixing that error to make indexing work again. Contact AEM Customer Care for assistance if you are unsure of next steps to resolve the issue.