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:

  1. 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.

  2. 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.

  3. 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.
  4. Esaminare la configurazione di JobConsumer e del modulo di pianificazione.

    • Verificare che Sling JobConsumer e 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.
  5. 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.
recommendation-more-help
experience-cloud-kcs-help-kbarticles