Errore “Impossibile derivare il nome utente per il bundle e il servizio secondario” in Sling JobConsumer
Questo articolo spiega come risolvere i problemi in cui il JobConsumer Sling non riesce a elaborare i processi pianificati in ambienti Adobe Experience Manager as a Cloud Service, causando errori come “Impossibile derivare il nome utente per il bundle … e il servizio secondario …”. La soluzione prevede la verifica della mappatura degli utenti del servizio, dell’esistenza degli utenti del servizio e delle autorizzazioni.
Descrizione description
Ambiente
- Adobe Experience Manager (AEM) as a Cloud Service
Problema/Sintomi
-
I processi pianificati rimangono non elaborati e bloccati nella coda
-
I report non vengono aggiornati con i nuovi dati
-
Il dashboard della coda dei processi mostra i percorsi in coda non utilizzati
-
I registri contengono errori quali:
Cannot derive user name for bundle [ bundle-symbolic-name] and sub service [ subservice-name]
Causa
Questo errore si verifica quando Sling JobConsumer tenta di ottenere un servizio ResourceResolver utilizzando un mapping di servizi secondari mancante, non configurato correttamente o privo delle autorizzazioni necessarie nell’ambiente. Di conseguenza, i processi in coda non possono essere elaborati.
Risoluzione resolution
Per risolvere l’errore Impossibile derivare il nome utente per il bundle e il servizio secondario e ripristinare l’elaborazione Sling JobConsumer, eseguire la procedura seguente:
-
Verifica il mapping degli utenti del servizio Sling.
- Verificare che nella configurazione dell’ambiente sia presente il mapping utente del servizio corretto.
- Verifica che la mappatura corrisponda al nome simbolico del bundle e al nome del servizio secondario utilizzati nel codice.
- Verifica che la mappatura non faccia riferimento a un nome simbolico bundle obsoleto o errato.
Esempio di mappatura in una configurazione
org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-*:code language-none { "user.mapping": [ "[ bundle-symbolic-name] :[ subservice-name] =[ service-user-name] " ] }Sostituisci
[ bundle-symbolic-name],[ subservice-name]e[ service-user-name]con i tuoi valori effettivi. -
Convalida l’esistenza e le autorizzazioni dell’utente del servizio.
-
Verificare che l’utente del servizio specificato nella mappatura esista nell’ambiente.
-
Assicurati che l’utente del servizio disponga delle autorizzazioni necessarie per il tuo processo sui percorsi applicabili:
/content/dam/var/home- Tutti i percorsi personalizzati utilizzati dal processo, ad esempio
/var/yourproject/attestation
-
Controlla i registri di errore per individuare eventuali problemi di accesso relativi alle autorizzazioni o al risolutore risorse.
-
-
Verifica distribuzione e attivazione del bundle.
- Nella console di sistema di AEM (
/system/console/bundles), verificare che il bundle pertinente sia distribuito e attivo. - Se manca il bundle, distribuiscilo. Se è inattiva, risolvi i problemi OSGi che impediscono l’attivazione.
- Nella console di sistema di AEM (
-
Esaminare la configurazione di JobConsumer e del modulo di pianificazione.
- Verificare che Sling
JobConsumere il modulo di pianificazione siano registrati e attivi. - Verificare che il codice del ciclo di vita, ad esempio i metodi
@Deactivate, non annulli la pianificazione dei processi a livello globale durante gli arresti del pod, in quanto ciò può influire sugli ambienti cluster.
- Verificare che Sling
-
Verifica e monitora l’elaborazione dei processi.
- Dopo aver corretto le mappature e le autorizzazioni, mette nuovamente in coda i percorsi interessati e monitora l’esecuzione dei processi.
- Controllare i registri per verificare che l’elaborazione del processo sia stata completata correttamente e verificare che l’errore Impossibile derivare il nome utente per il bundle e il servizio secondario non sia più visualizzato.