Lösa distributionsfel i AEM as a Cloud Service

I den här artikeln behandlas distributionsfel i Adobe Experience Manager (AEM) as a Cloud Service som orsakas av anpassningar i databasens initieringsskript. När du distribuerar en funktionsgren till utvecklingsscenen kan dessa fel utgöra ett hinder för en lyckad distribution och visas inte så lätt i loggarna. Felet har åtgärdats genom att felsökningsloggar analyseras.

Beskrivning description

Miljö

  • Produkt: Adobe Experience Manager (AEM) as a Cloud Service - Webbplatser
  • Scen: Utveckling
  • Begränsningar: Direktändringar via Felix Console är begränsade.

Problem/symtom

  • Distributionen av en funktionsgren misslyckas på grund av databasinitieringsfel.

  • Loggar visar meddelanden som:

    code language-none
    Exception in a SlingRepositoryInitializer, SlingRepository service registration aborted
    javax.jcr.RepositoryException: Applying repoinit operation failed despite retry; set loglevel to DEBUG to see all exceptions.
    Last exception message from "Configuration PID 310, script[ 0] " was: CreatePath execution failed at cq(sling:Folder): javax.jcr.nodetype.ConstraintViolationException: org.apache.jackrabbit.oak.spi.state.ReadyOnlyBuilderException: This builder is read-only...
    
  • Fel indikerar försök att ändra skrivskyddade noder eller oföränderliga delar av databasen.

Upplösning resolution

Så här löser du problemet:

  1. Ange loggnivån till DEBUG för repo-init-åtgärder för att få detaljerad undantagsinformation under databasinitieringen. Eftersom direkt åtkomst via Felix Console är begränsad kan du använda en anpassad loggningskonfiguration i ditt projekt.

  2. Skapa en OSGi-konfigurationsfil i projektets /apps/<your-project>/config/-mapp, till exempel com.adobe.granite.logging.impl.LogManagerFactory.config.

    • Inkludera följande egenskaper i den här filen:

      code language-none
      loggers=[ "org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory"]
      org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory.log.level=DEBUG
      
  3. Distribuera den uppdaterade konfigurationen via Cloud Manager och verifiera att detaljerade felsökningsloggar för repo-init-åtgärder visas efter distributionen.

  4. Granska felsökningsloggarna för ytterligare kontext om fel vid databasinitiering, och leta efter tecken på obehöriga ändringar eller försök att ändra skrivskyddade noder.

  5. Kontrollera att repo-init-skriptet inte försöker skapa eller ändra noder i oföränderliga delar av databasen (till exempel systemsökvägar).

  6. Ta bort eller justera alla CreatePath-kommandon som har noder definierade som cq(sling:Folder) om de finns i skrivskyddade områden. Om nya noder eller strukturer måste läggas till paketerar du dessa ändringar separat med innehållspaket som distribueras till tillåtna sökvägar.

Följ de här stegen för att identifiera och åtgärda distributionsfel samtidigt som du respekterar AEM systemsökvägsbegränsningar.

Relaterad läsning

Felsöka versioner och distributioner av AEM as a Cloud Service

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f