Vai a CRXDe http://aem-host:port/crx/de/index.jsp e accedi come amministratore.
Problema
L'istanza autore di AEM è lenta e si blocca a causa dell'accumulo di workflow non riusciti e del badge delle chiamate pulse.data.json della casella di entrata del workflow. Il badge della casella in entrata del workflow è l'icona a campana in alto a destra dell'interfaccia Touch.
Nel log degli accessi si osserva che molte chiamate a pulse.data.json vengono effettuate dagli stessi utenti.
10.43.34.55 - user 06/Jan/2017:18:17:11 +0900 "GET /mnt/overlay/granite/ui/content/shell/header/actions/pulse.data.json?_=1483664547926 HTTP/1.1" 500 1234 "https://authorhost/sites.html/content/geometrixx/en" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0" 10.43.34.55 - user 06/Jan/2017:18:17:13 +0900 "GET /mnt/overlay/granite/ui/content/shell/header/actions/pulse.data.json?_=1483664547927 HTTP/1.1" 500 1234 "https://authorhost/sites.html/content/geometrixx/en" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0" 10.43.34.55 - user 06/Jan/2017:18:17:15 +0900 "GET /mnt/overlay/granite/ui/content/shell/header/actions/pulse.data.json?_=1483664547928 HTTP/1.1" 500 1234 "https://authorhost/sites.html/content/geometrixx/en" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0" 10.43.34.55 - user 06/Jan/2017:18:17:17 +0900 "GET /mnt/overlay/granite/ui/content/shell/header/actions/pulse.data.json?_=1483664547929 HTTP/1.1" 500 1234 "https://authorhost/sites.html/content/geometrixx/en" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
Inoltre, il server AEM mostra un elevato utilizzo della CPU e scarichi di thread catturati da thread AEM come quello sottostante:
"192.168.10.5 [1485896535734] GET /mnt/overlay/granite/ui/content/shell/header/actions/pulse.data.json HTTP/1.1" #1969 prio=5 os_prio=0 tid=0x0000000001a39800 nid=0xaf2 runnable [0x00007f2f5ae4f000] java.lang.Thread.State: RUNNABLE at org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:101) at org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:150) at org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:115) at org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getEntries(PermissionEntryCache.java:48) at org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:63) at org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:109) at org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.<init>(PermissionEntryProviderImpl.java:72) at org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.<init>(CompiledPermissionImpl.java:112) at org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:126) at org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.<init>(PermissionProviderImpl.java:71) at org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:185) at org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:134) at org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:126) at org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:123) at org.apache.jackrabbit.oak.core.LazyValue.get(LazyValue.java:53) - locked <0x0000000726732148> (a org.apache.jackrabbit.oak.core.MutableRoot$1) at org.apache.jackrabbit.oak.core.MutableRoot$2.getExecutionContext(MutableRoot.java:311) at org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:256) at org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:233) at org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:314) at org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:308) at org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:304) at org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getTree(IdentifierManager.java:133) at org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByContentID(AuthorizableBaseProvider.java:56) at org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByID(AuthorizableBaseProvider.java:51) at org.apache.jackrabbit.oak.security.user.UserProvider.getAuthorizable(UserProvider.java:211) at org.apache.jackrabbit.oak.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:110) at org.apache.jackrabbit.oak.jcr.delegate.UserManagerDelegator$1.performNullable(UserManagerDelegator.java:64) at org.apache.jackrabbit.oak.jcr.delegate.UserManagerDelegator$1.performNullable(UserManagerDelegator.java:61) at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:243) at org.apache.jackrabbit.oak.jcr.delegate.UserManagerDelegator.getAuthorizable(UserManagerDelegator.java:61) at com.adobe.granite.workflow.core.WorkflowSessionFactory.isSuperUser(WorkflowSessionFactory.java:356) at com.adobe.granite.workflow.core.WorkflowSessionFactory.getWorkflowSession(WorkflowSessionFactory.java:389) at com.adobe.granite.workflow.core.WorkflowSessionFactory.getAdapter(WorkflowSessionFactory.java:515) at org.apache.sling.adapter.internal.AdapterManagerImpl.getAdapter(AdapterManagerImpl.java:147) at com.adobe.granite.workflow.core.jcr.WorkItemAdapterFactory.getAdapter(WorkItemAdapterFactory.java:128) at org.apache.sling.adapter.internal.AdapterManagerImpl.getAdapter(AdapterManagerImpl.java:147) at com.adobe.granite.workflow.core.jcr.WorkItemManager.getInboxItems(WorkItemManager.java:289) at com.adobe.granite.workflow.core.WorkflowSessionImpl.getActiveInboxItems(WorkflowSessionImpl.java:711) at com.adobe.granite.workflow.core.WorkflowSessionImpl.getActiveInboxItems(WorkflowSessionImpl.java:618) at org.apache.jsp.libs.cq.gui.components.shell.badge.data_json_jsp._jspService(data_json_jsp.java:609)
Ambiente
AEM 6.2 SP1
Causa
Quando un utente o un gruppo ha molti elementi in sospeso nella casella in entrata, rallenta le chiamate badge pulse.data.json. Le chiamate a pulse.data.json poi scadono e si combinano, ciò sovraccarica AEM.
Risoluzione
Installa l'ultimo pacchetto correzioni cumulativo per risolvere il bug.
I. Applica la soluzione
Poiché non è possibile installare un pacchetto correzioni su un ambiente AEM di produzione in un breve arco temporale, come soluzione temporanea, procedi come segue:
-
-
Crea questa struttura di cartelle da sling: Folder nodes /apps/granite/ui/components/shell/clientlibs/shell/js
-
Fai clic su "Salva tutto"
-
Sfoglia per sovrapporre per /libs/granite/ui/components/shell/clientlibs/shell/js/badge.js e modifica il codice come mostrato di seguito:
Prima:
setInterval(function() { updateBadge(el, src, true); }, 2000);
Dopo (impostare l'aggiornamento ogni 5 minuti):
setInterval(function() { updateBadge(el, src, true); }, 300000);
Scarica
II. Eliminazione di vecchi workflow e attività in esecuzione
Oltre a fissare l'intervallo del badge di notifica del workflow, la causa del problema è dovuta a troppe attività in sospeso nella casella in entrata dell'utente. Per risolvere questo problema, è necessario eliminare gli elementi della casella in entrata del workflow e le attività che non sono più necessarie:
-
Vai all'oggetto JMX Manutenzione Workflow:
http://host:port/system/console/jmx/com.adobe.granite.workflow%3Atype%3DMaintenance -
Se non è necessario eseguire attivamente i workflow, eseguire l'eliminazione del workflow avviando purgeActive con dryRun = false.
-
Vai su http://host:port/crx/explorer/index.jsp e accedi come amministratore.
-
Apri Content Explorer.
-
Sfoglia e vai su /etc/taskmanagement/tasks.
-
Elimina le attività facendo clic con il tasto destro del mouse sul nodo della cartella e selezionando Elimina ricorsivamente.
-
Disattiva la scansione preliminare e esegui l'eliminazione.
-
Inoltre, hai più attività sotto i progetti in /content/projects. Usa il file /projects.html per rimuovere i vecchi progetti che non sono più necessari.
-
Usa CRXDe per sfogliare i sottonodi /content/projects e elimina tutti i compiti che non sono più necessari. Per esempio: /content/projects/geometrixx/outdoors/jcr:content/dashboard/gadgets/tasks
Accedi al tuo account