Vai su http://aem-host:port/crx/de/index.jsp e accedi come amministratore.
L'operazione di eliminazione o lo spostamento di determinate cartelle o risorse in AEM tramite l'interfaccia utente /assets.html o /damadmin è lenta o non riesce.
Se l'operazione di eliminazione o spostamento non riesce, nel file di log viene visualizzato questo [1] messaggio di log WARN, "La query ha letto o attraversato più di X nodi."
java.lang.UnsupportedOperationException: The query read or traversed more than 100000 nodes. To avoid affecting other tasks, processing was stopped. at org.apache.jackrabbit.oak.query.FilterIterators.checkReadLimit(FilterIterators.java:66) at org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy$PathIterator.fetchNextPossiblyDuplicate(ContentMirrorStoreStrategy.java:422) at org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy$PathIterator.fetchNext(ContentMirrorStoreStrategy.java:365) at org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy$PathIterator.next(ContentMirrorStoreStrategy.java:449) at org.apache.jackrabbit.oak.plugins.index.property.strategy.ContentMirrorStoreStrategy$PathIterator.next(ContentMirrorStoreStrategy.java:303) at com.google.common.collect.Iterators$7.computeNext(Iterators.java:646) at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) at org.apache.jackrabbit.oak.spi.query.Cursors$PathCursor.hasNext(Cursors.java:205) at org.apache.jackrabbit.oak.query.ast.SelectorImpl.next(SelectorImpl.java:407) at org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.fetchNext(QueryImpl.java:773) at org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.hasNext(QueryImpl.java:798) at com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at org.apache.jackrabbit.oak.query.FilterIterators$DistinctIterator.fetchNext(FilterIterators.java:137) at org.apache.jackrabbit.oak.query.FilterIterators$DistinctIterator.hasNext(FilterIterators.java:151) at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$3.fetch(QueryResultImpl.java:181) at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$3.<init>(QueryResultImpl.java:176) at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl.getNodes(QueryResultImpl.java:170) at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.findResources(JcrResourceProvider.java:346) at org.apache.sling.resourceresolver.impl.tree.RootResourceProviderEntry$2.seek(RootResourceProviderEntry.java:148) at org.apache.sling.resourceresolver.impl.tree.RootResourceProviderEntry$2.<init>(RootResourceProviderEntry.java:134) at org.apache.sling.resourceresolver.impl.tree.RootResourceProviderEntry.findResources(RootResourceProviderEntry.java:132) at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.findResources(ResourceResolverImpl.java:694) at com.day.cq.dam.core.impl.AssetReferenceResolverImpl.getReferences(AssetReferenceResolverImpl.java:524) at com.day.cq.wcm.core.impl.commands.DeletePageCommand.performCommand(DeletePageCommand.java:142) at com.day.cq.wcm.core.impl.commands.WCMCommandServlet$CommandHolder.performCommand(WCMCommandServlet.java:161) at com.day.cq.wcm.core.impl.commands.WCMCommandServlet.performCommand(WCMCommandServlet.java:264) at com.day.cq.commons.servlets.AbstractCommandServlet.doPost(AbstractCommandServlet.java:49)
Durante alcune azioni in AEM Assets, il sistema eseguirà la seguente ricerca originata da AssetReferenceResolverImpl.getReferences:
//element(*, nt:unstructured)[(jcr:like(@dam:resolvedPath, '/content/dam/geometrixx/services%') or jcr:like(@sling:resource , '/content/dam/geometrixx/services%'))]
Quando il sistema ha molti contenuti, quella ricerca non funziona sempre bene e potrebbe non riuscire con l'errore di cui sopra.
Per risolvere questo problema, possiamo aggiungere alcune proprietà all'indice preconfigurato /oak:index/ntBaseLucene.
Vai su http://aem-host:port/crx/de/index.jsp e accedi come amministratore.
Sfoglia fino a /oak:index/ntBaseLucene/indexRules/nt:base/properties
Aggiungere due nodi nt:unstructured slingResource e damResolvedPath sotto /oak:index/ntBaseLucene/indexRules/nt:base/properties.
Imposta le proprietà qui sotto sui nodi (dove le proprietà ordinate e propertyIndex sono di tipo booleano):
slingResource
name="sling:resource"
ordered=false
propertyIndex= true
type="String"
damResolvedPath
name="dam:resolvedPath"
ordered=false
propertyIndex=true
type="String"
Nel nodo /oak:index/ntBaseLucene, imposta la proprietà reindex=true.
Fai clic su Salva tutto.
Monitora il log degli errori per vedere quando l'indicizzazione è completata:
Reindicizzazione completata per gli indici: [/oak:index/ntBaseLucene]
Come puoi vedere l'indicizzazione è completata aggiornando il nodo /oak:index/ntBaseLucene in CRXDe, dato che la proprietà reindicizzazione ridiventerebbe falsa.
Una volta completata l'indicizzazione, torna a CRXDe e imposta il valore della proprietà "tipo" su "disabilitata" su questi due indici:
Fai clic su "Salva tutto"
Ora le operazioni di eliminazione e spostamento delle cartelle e delle risorse dovrebbero essere più veloci e più stabili.
Accedi al tuo account