In Adobe Experience Manager, vengono utilizzati agenti di replica per:
- Pubblicare (attivare) contenuti da un autore a un ambiente di pubblicazione.
- Esegui il flush esplicito del contenuto dalla cache del Dispatcher.
- Restituisci l'input dell'utente (ad esempio, l'input del modulo) dall'ambiente di pubblicazione all'ambiente dell'autore (sotto il controllo dell'ambiente dell'autore).
Questo articolo tratta le domande frequenti sull'uso della funzionalità di replicazione AEM.
La replicazione della pagina con molte pagine sorelle richiede molto tempo
Invece di inserire tutte le pagine sorelle su un unico livello, crea dei sottolivelli e distribuisci le pagine di conseguenza. Circa 100 pagine su un singolo livello sono accettabili. Per ulteriori informazioni, consulta http://helpx.adobe.com/it/experience-manager/kb/ReplicationSiblingReordering.html.
Replicazione non riuscita dopo il rinnovo dell'IP
Riavvia l'istanza o riconfigura l'agente di replicazione per utilizzare l'IP invece del nome host. Per ulteriori informazioni, consulta http://helpx.adobe.com/it/experience-manager/kb/ReplicationFailureAfterNewIP.html.
Come limitare l’accesso agli agenti di replicazione
È possibile controllare questa impostazione utilizzando le autorizzazioni di pagina utente/gruppo sotto etc/Replication (cioè il nodo /etc/replication). Per ulteriori informazioni, consulta http://helpx.adobe.com/it/experience-manager/kb/LimitAccessToReplicationAgents.html.
Le autorizzazioni della pagina non vengono replicate all'attivazione dell'utente
Le autorizzazioni di pagina non vengono replicate perché sono memorizzate sotto i nodi ai quali è concesso l'accesso, non con l'utente.
In generale, le autorizzazioni di pagina non devono essere replicate dall'autore per la pubblicazione e non sono un'impostazione predefinita. Questo perché i diritti di accesso dovrebbero essere diversi in questi due ambienti. Di conseguenza, configura le ACL alla pubblicazione separate rispetto all'autore. Per ulteriori informazioni, consulta http://helpx.adobe.com/it/experience-manager/kb/PagePermissionsNotReplicatedWithUser.html.
Utilizza la replicazione inversa
Secondo la preconfigurazione, solo i nodi cq:Page sono replicati inversamente. Per ogni altro nodo, è necessario utilizzare gli ultimi due metodi, come implementazione specifica di un progetto.
Queste sono le tre possibilità:
- Utilizza lo SlingPostServlet (cioè, non creare post servlet personalizzati o POST.jsp per gestire le richieste in arrivo) in modo che inneschi implicitamente un PageEvent correlato. Quindi, imposta un nome di proprietà "cq:distribute" e imposta il suo valore su "true" sui nodi a cui vuoi applicare la replicazione inversa. Per implementare questa soluzione, non è necessario scrivere alcun codice. Puoi utilizzare il componente Form per impostare tutti i campi nascosti necessari.
- Usa il tuo codice che accede all'archivio, modifica le proprietà "cq:lastModified," "cq:lastModifiedBy" e "cq:distribute." I dati postati si possono controllare, il codice interno scrive i dati. Per implementare questa soluzione, è necessario scrivere il codice per tuo progetto.
- Utilizza il tuo codice che chiama il metodo di replicazione dal servizio Replicatore con opzioni per utilizzare la modalità di distribuzione. La replicazione è controllata dal tuo codice. Per implementare questa soluzione, scrivi il codice specifico per il tuo progetto.
Attiva ad un agente di replicazione specifico
Puoi creare un oggetto ReplicationOptions con un AgentFilter:
ReplicationOptions opts = new ReplicationOptions();
opts.setFilter(new AgentFilter(){
public boolean isIncluded(final Agent agent) {
return "expectedAgentId".equals(agent.getId());
}
});
poi usa il metodo replica del replicatore:
/**
* Attiva una nuova replicazione con le opzioni in dotazione.
*
* @param session user session
* @param type The type of replication
* @param path The path specified the content to be replicated
* @param options Additional replication options
* @throws ReplicationException if an error occurs
*/
void replicate(Session session, ReplicationActionType type, String path,
ReplicationOptions options)
Per ulteriori informazioni, consulta http://helpx.adobe.com/it/experience-manager/kb/CQ5ReplicateToSpecificAgents.html.
Implementa un ascoltatore di eventi di replicazione
- Crea una classe che implementa le interfacce EventHandler.
- Aggiungi le seguenti annotazioni SCR:
@scr.component metatype="false" immediate="true"
- Implementa il metodo handleEvent(Event event) nullo pubblico.
@scr.service interface="org.osgi.service.event.EventHandler" @scr.property name="event.topics" valueRef="ReplicationAction.EVENT_TOPIC"
Problemi di coda di replicazione
La replicazione del contenuto del CQ5 sembra essere bloccata
Gli editor possono creare contenuti, ma le pagine attivate non sono aggiornate nell'istanza di pubblicazione di CQ5.
Assicurati che ogni agente di replicazione sia abilitato e configurato correttamente
- Vai alla lista degli agenti di replica (/etc/replication/agents.author.html).
- Per ogni agente di replicazione, procedi come segue:
- Assicurati che l'agente sia abilitato.
- Verifica la connettività con l'istanza di pubblicazione facendo clic su Test della connessione. Se non riesce, assicurati che a livello di rete TCP, il server che ospita l'istanza dell'autore di CQ possa connettersi alla porta dell'istanza di pubblicazione.
- Apri il registro di replica tramite il link "Vedi Log" e verifica quando l'ultimo tentativo di replicazione ha avuto successo.
- Nota il primo percorso del carico utile nella coda di replicazione. Poi prova a eliminare il primo elemento della coda di replicazione. Quindi, verifica se la replicazione riprende (iniziando da CQ5.4). Una volta ripresa, attiva nuovamente il primo carico annotato in coda.
- Controlla con il CRX Content Explorer e assicurati che non ci sia nessun nodo /bin/receive sull'istanza di pubblicazione. Altrimenti, eliminalo.
- Controlla con il CRX Content Explorer e assicurati che non ci sia nessun nodo /bin/replicate sull'istanza dell'autore. Altrimenti, eliminalo.
- Se i log non mostrano alcun tentativo di replicazione per alcuni minuti, riavvia il bundle di replicazione nella console Felix. Se non si verifica ancora nessun tentativo di replicazione nei log di replicazione, riavvia il bundle di supporto per l'evento Apache Sling:
(http://<host>:<port>/system/console/bundles/org.apache.sling.event)
Privilegi di replicazione mancanti dopo l’aggiornamento a CQ 5.5
I privilegi di replicazione vengono persi a causa della nuova proprietà introdotta nel CQ 5.5 chiamata crx:replicate.
Puoi individuare un allegato che è un pacchetto con uno script che risolve il problema. Basta eseguirlo PRIMA dell'aggiornamento a CQ5.5. Per informazioni, vedi http://helpx.adobe.com/it/experience-manager/kb/replication-privileges-missing-after-upgrade-to-cq-5-5.html.
CQ5.3: agenti di replicazione non riusciti a causa del limite massimo di code di lavoro
La causa di questo problema è che org.apache.sling.event.impl.JobEventHandler ha un limite predefinito di 10 per il numero di code di lavoro che il sistema può creare.
Risoluzione
Aumenta il numero massimo di code di lavoro secondo necessità (il numero di code dovrebbe essere superiore al numero di agenti di replicazione configurati + il numero di modelli di workflow)
- Accedi alla console Felix (http://host:port/system/console/configMgr).
- Vai alla scheda Configurazione nella console Felix.
- Seleziona "Apache Sling Job Event Handler (org.apache.sling.event.impl.JobEventHandler)" dall'elenco a discesa.
- Modifica il valore "Code di lavoro massime".
- Fai clic su Salva.
Per ulteriori informazioni, consulta http://helpx.adobe.com/it/experience-manager/kb/CQ53UnableToCreateJobQueueDueToMaxQueues.html.
Replica ACL
Non è più possibile replicare le ACL (cioè dall'istanza dell'autore all'istanza di pubblicazione). Questo comportamento è previsto e parte delle funzionalità.
Le ACL in CQ5 sono incentrate sul contenuto e non sull'utente come in CQ4. Di solito si hanno diritti di accesso diversi per pubblicare e autorizzare dal punto di vista dei contenuti. Quindi, non ha più senso replicare le ACL incentrate sui contenuti.
Con un CUG (gruppo chiuso di utenti), Adobe sta lavorando ad una soluzione preconfigurata. Nei pageprops di una pagina, permette di proteggere questa pagina (e tutte le sottopagine) con un CUG specifico. In questo modo, solo gli utenti che sono membri di un gruppo specifico hanno accesso. L'ACL sulla pubblicazione è impostato sulla pubblicazione stessa automaticamente se la pagina è attivata. Per ulteriori informazioni, consulta http://helpx.adobe.com/it/experience-manager/kb/ACLReplication.html.
Aumento del contenuto a causa della replicazione inversa
L'archivio cresce velocemente (diversi MB al minuto) e i log mostrano un errore di replicazione inversa.
Ad esempio, "WARN [Reverse Replication Processor] com.day.cq.replication.Agent.publish_reverse Reverse Replication not implemented for action: TEST. Percorso outbox remoto: /var/replication/outbox."
Nell'istanza di pubblicazione, trova e elimina manualmente l'articolo dalla casella di pubblicazione.
Per evitare questo problema in futuro, aggiorna a CQ 5.6 o non utilizzare il pulsante Test della connessione sull'agente di replicazione inversa.
Verifica con il supporto Adobe per una hotfix esistente se hai problemi simili con la replicazione inversa. (Vedi anche l'elenco consigliato di hotfix per CQ 5.4.)
Per ulteriori informazioni, vedi http://helpx.adobe.com/it/experience-manager/kb/content-grow-due-reverse-replication.html.
L'agente di replicazione utilizza l'utente anonimo come utente di trasporto
Hai un agente di replicazione con i diritti ACL corretti. Tuttavia, quando si tenta di replicare con questo agente, si vede quanto segue nei log di replica:
13.06.2007 12:34:36 *INFO * author: << Date: Wed, 13 Jun 2007 10:34:36 GMT 13.06.2007 12:34:36 *INFO * author: << error: java.security.AccessControlException: User 'anonymous' not allowed rights '---c-' on handle /content/playground/en 13.06.2007 12:34:36 *INFO * author: Message sent. 13.06.2007 12:34:36 *INFO * author: ---------------------------
Per risolvere questo problema, nega l'accesso in lettura di /system/replication/content all'utente anonimo nell'istanza target. Per ulteriori informazioni, consulta http://helpx.adobe.com/it/experience-manager/kb/ReplicationAgentUsingAnonUser.html.