Replica

Adobe Experience Manager as a Cloud Service utilizza la funzionalità Sling Content Distribution per spostare il contenuto in modo da replicarlo in un servizio pipeline eseguito su un Adobe I/O che si trova al di fuori del runtime AEM.

NOTA

Leggi Distribuzione per ulteriori informazioni.

Metodi di pubblicazione dei contenuti

Annullamento/pubblicazione rapida - Annullamento/pubblicazione pianificata

Questo consente di pubblicare immediatamente le pagine selezionate, senza le opzioni aggiuntive possibili con l’approccio Gestisci pubblicazione .

Per ulteriori informazioni, consulta Gestisci pubblicazione.

Tempi di attivazione e disattivazione - Configurazione dell'attivatore

Le possibilità aggiuntive di On Time e Off Time sono disponibili nella scheda Basic delle Proprietà pagina.

Per realizzare la replica automatica è necessario abilitare Auto Replicate nella configurazione OSGi On Off Trigger Configuration:

Configurazione trigger OSGi On Off

Gestisci pubblicazione

Gestisci pubblicazione offre più opzioni rispetto alla pubblicazione rapida e consente di includere pagine figlie, personalizzare i riferimenti e avviare tutti i flussi di lavoro applicabili; consente inoltre di pubblicare la pagina in un secondo momento.

L’inclusione degli elementi figlio di una cartella per l’opzione "Pubblica più tardi" richiamerà il flusso di lavoro Pubblica albero del contenuto descritto in questo articolo.

Per ulteriori informazioni su Gestisci pubblicazione, consulta la documentazione Nozioni di base sulla pubblicazione.

Attivazione albero

NOTA

Questo approccio deve essere considerato obsoleto e verrà rimosso il 30 settembre 2021 o dopo tale data, in quanto non persiste dello stato ed è meno scalabile di altri approcci. Il consiglio di Adobe è invece di utilizzare i metodi di pubblicazione o flusso di lavoro di gestione

Per eseguire un'attivazione ad albero:

  1. Dal menu di avvio AEM passa a Strumenti > Implementazione > Distribuzione

  2. Seleziona la scheda pubblica

  3. Una volta nell'interfaccia utente della console Web di pubblicazione, seleziona Distribuisci

  4. Seleziona il percorso nel browser percorsi, scegli di aggiungere un nodo, un albero o elimina come richiesto e seleziona Invia

Per ottenere le migliori prestazioni, segui queste linee guida quando utilizzi questa funzione:

  • Si consiglia di replicare meno di 100 percorsi alla volta, con un limite rigido del percorso di 500.
  • La dimensione totale del contenuto replicato deve essere inferiore a 5 MB. Questo include solo i nodi e le proprietà, ma non tutti i binari, che includono pacchetti di flusso di lavoro e pacchetti di contenuto.

Flusso di lavoro della struttura del contenuto di Pubblica

Puoi attivare una replica ad albero scegliendo Strumenti - Flusso di lavoro - Modelli e copiando il modello di flusso di lavoro preconfigurato Pubblica albero dei contenuti , come mostrato di seguito:

Non modificare o richiamare il modello originale. Assicurati invece di copiare prima il modello e quindi modificare o richiamare tale copia.

Come tutti i flussi di lavoro, può anche essere richiamato tramite API. Per ulteriori informazioni, vedere Interazione con i flussi di lavoro a livello di programmazione.

In alternativa, è possibile ottenere questo risultato anche creando un modello di flusso di lavoro che utilizza il passaggio del processo Publish Content Tree:

  1. Dalla home page di AEM come Cloud Service, vai a Strumenti - Flusso di lavoro - Modelli

  2. Nella pagina Modelli di flusso di lavoro, premi Crea nell'angolo superiore destro dello schermo

  3. Aggiungete un titolo e un nome al modello. Per ulteriori informazioni, consulta Creazione di modelli di flusso di lavoro

  4. Seleziona il modello appena creato dall'elenco e premi Modifica

  5. Nella finestra seguente, trascina e rilascia il Passaggio processo nel flusso del modello corrente:

    Passaggio processo

  6. Fai clic sul passaggio Processo nel flusso e seleziona Configura premendo l'icona a forma di chiave inglese

  7. Fai clic sulla scheda Processo e seleziona Publish Content Tree dall’elenco a discesa

    Attivazione ad albero

  8. Imposta eventuali parametri aggiuntivi nel campo Argomenti . Gli argomenti separati da virgole multipli possono essere raggruppati. Esempio:

    enableVersion=true,agentId=publish

    NOTA

    Per l'elenco dei parametri, consulta la sezione Parametri di seguito.

  9. Premere Fine per salvare il modello Flusso di lavoro.

Parametri

  • replicateAsParticipant (valore booleano, predefinito: false). Se configurata come true, la replica utilizza userid dell'entità principale che ha eseguito il passaggio del partecipante.
  • enableVersion (valore booleano, predefinito: true). Questo parametro determina se una nuova versione viene creata al momento della replica.
  • agentId (valore stringa, per impostazione predefinita vengono utilizzati solo gli agenti per la pubblicazione). Si consiglia di essere esplicito sull'agentId; ad esempio, impostandolo come valore: pubblicare. L’impostazione dell’agente su preview consente di pubblicare nel servizio di anteprima
  • filters (valore stringa, impostazione predefinita significa che tutti i percorsi sono attivati). I valori disponibili sono:
    • onlyActivated - verranno attivati solo i percorsi non contrassegnati come attivati.
    • onlyModified - attiva solo i percorsi già attivati e la cui data di modifica è successiva alla data di attivazione.
    • Il sopra può essere OPPURE con una tubazione "|". Esempio, onlyActivated|onlyModified.

Registrazione

Quando il passaggio del flusso di lavoro di attivazione della struttura viene avviato, i relativi parametri di configurazione verranno registrati nel livello di registro INFO. Quando i percorsi vengono attivati, viene registrata anche un'istruzione INFO.

Un'istruzione INFO finale verrà quindi registrata dopo che il passaggio del flusso di lavoro ha replicato tutti i percorsi.

Inoltre puoi aumentare il livello di registro dei logger sotto com.day.cq.wcm.workflow.process.impl a DEBUG/TRACE per ottenere ulteriori informazioni sui log.

In caso di errori, il passaggio del flusso di lavoro termina con un WorkflowException, che racchiude l'eccezione sottostante.

Di seguito sono riportati alcuni esempi di registri generati durante un flusso di lavoro della struttura dei contenuti di pubblicazione di esempio:

21.04.2021 19:14:55.566 [cm-p123-e456-aem-author-797aaaf-wkkqt] *INFO* [JobHandler: /var/workflow/instances/server60/2021-04-20/brian-tree-replication-test-2_1:/content/wknd/us/en/adventures] com.day.cq.wcm.workflow.process.impl.treeactivation.TreeActivationWorkflowProcess TreeActivation options: replicateAsParticipant=false(userid=workflow-process-service), agentId=publish, chunkSize=100, filter=, enableVersion=false
21.04.2021 19:14:58.541 [cm-p123-e456-aem-author-797aaaf-wkkqt] *INFO* [JobHandler: /var/workflow/instances/server60/2021-04-20/brian-tree-replication-test-2_1:/content/wknd/us/en/adventures] com.day.cq.wcm.workflow.process.impl.ChunkedReplicator closing chunkedReplication-VolatileWorkItem_node1_var_workflow_instances_server60_2021-04-20_brian-tree-replication-test-2_1, 17 paths replicated in 2971 ms

Riprendi supporto

Il flusso di lavoro elabora il contenuto in blocchi, ognuno dei quali rappresenta un sottoinsieme del contenuto completo da pubblicare. Se per qualsiasi motivo il flusso di lavoro viene interrotto dal sistema, verrà riavviato ed elaborato il blocco non ancora elaborato. Un’istruzione di registro indicherà che il contenuto è stato ripreso da un percorso specifico.

API di replica

Puoi pubblicare il contenuto utilizzando l’API di replica in AEM come Cloud Service.

Per ulteriori informazioni, consulta la Documentazione API.

Utilizzo di base dell’API

@Reference
Replicator replicator;
@Reference
ReplicationStatusProvider replicationStatusProvider;

....
Session session = ...
// Activate a single page to all agents, which are active by default
replicator.replicate(session,ReplicationActionType.ACTIVATE,"/content/we-retail/en");
// Activate multiple pages (but try to limit it to approx 100 at max)
replicator.replicate(session,ReplicationActionType.ACTIVATE, new String[]{"/content/we-retail/en","/content/we-retail/de"});

// ways to get the replication status
Resource enResource = resourceResolver.getResource("/content/we-retail/en");
Resource deResource = resourceResolver.getResource("/content/we-retail/de");
ReplicationStatus enStatus = enResource.adaptTo(ReplicationStatus.class);
// if you need to get the status for more more than 1 resource at once, this approach is more performant
Map<String,ReplicationStatus> allStatus = replicationStatusProvider.getBatchReplicationStatus(enResource,deResource);

Replica con agenti specifici

Quando si replicano le risorse come nell’esempio precedente, verranno utilizzati solo gli agenti che sono attivi per impostazione predefinita. In AEM come Cloud Service, questo sarà solo l’agente denominato "publish", che collega l’autore al livello di pubblicazione.

Per supportare la funzionalità di anteprima, è stato aggiunto un nuovo agente denominato "anteprima", che non è attivo per impostazione predefinita. Questo agente viene utilizzato per collegare l’autore al livello di anteprima. Se desideri replicare solo tramite l’agente di anteprima, devi selezionare esplicitamente questo agente di anteprima tramite un AgentFilter.

Vedi l'esempio seguente su come eseguire questa operazione:

private static final String PREVIEW_AGENT = "preview";

ReplicationStatus beforeStatus = enResource.adaptTo(ReplicationStatus.class); // beforeStatus.isActivated == false

ReplicationOptions options = new ReplicationOptions();
options.setFilter(new AgentFilter() {
  @Override
  public boolean isIncluded (Agent agent) {
    return agent.getId().equals(PREVIEW_AGENT);
  }
});
// will replicate only to preview
replicator.replicate(session,ReplicationActionType.ACTIVATE,"/content/we-retail/en", options);

ReplicationStatus afterStatus = enResource.adaptTo(ReplicationStatus.class); // afterStatus.isActivated == false
ReplicationStatus previewStatus = afterStatus.getStatusForAgent(PREVIEW_AGENT); // previewStatus.isActivated == true

Nel caso in cui non si fornisca un filtro di questo tipo e si utilizzi solo l’agente "publish", l’agente "preview" non viene utilizzato e l’azione di replica non influisce sul livello di anteprima.

La ReplicationStatus complessiva di una risorsa viene modificata solo se l'azione di replica include almeno un agente attivo per impostazione predefinita. Nell’esempio precedente questo non avviene, in quanto la replica utilizza solo l’agente "preview". Pertanto, devi utilizzare il nuovo metodo getStatusForAgent(), che consente di eseguire query sullo stato di un agente specifico. Questo metodo funziona anche per l’agente "publish". Restituisce un valore non-null se è stata eseguita un'azione di replica utilizzando l'agente fornito.

Limiti di percorso e dimensioni dell’API di replica

Si consiglia di replicare meno di 100 percorsi, con 500 come limite rigido. Al di sopra del limite rigido, verrà lanciata una ReplicationException. Se la logica dell'applicazione non richiede la replica atomica, questo limite può essere superato impostando ReplicationOptions.setUseAtomicCalls su false, che accetta qualsiasi numero di percorsi, ma crea internamente bucket per rimanere al di sotto di questo limite. La quantità di contenuto trasmesso per chiamata di replica non deve superare i 5 MB, che include i nodi e le proprietà, ma non gli eventuali binari (i pacchetti di flusso di lavoro e i pacchetti di contenuto sono considerati binari).

Risoluzione dei problemi

Per risolvere i problemi di replica, accedi alle code di replica nell’interfaccia utente Web di AEM Author Service:

  1. Dal menu di avvio AEM passa a Strumenti > Implementazione > Distribuzione
  2. Seleziona la scheda pubblica
  3. Controlla lo stato della coda che dovrebbe essere verde
  4. È possibile verificare la connessione al servizio di replica
  5. Seleziona la scheda Logs che mostra la cronologia delle pubblicazioni di contenuti

Se non è stato possibile pubblicare il contenuto, l’intera pubblicazione viene ripristinata da AEM Publish Service.
In tal caso, la coda principale modificabile mostrerà uno stato rosso e dovrebbe essere rivista per identificare gli elementi che hanno causato l’annullamento della pubblicazione. Facendo clic su tale coda, verranno visualizzati i relativi elementi in sospeso, da cui è possibile cancellare un singolo elemento o tutti gli elementi, se necessario.

In questa pagina