Ir al contenido
Otras versiones

Cargando…

Configurar la replicación de contenido entre dos instancias de OpenKM

El sistema sigue un modelo origen → destino: una instancia de OpenKM actúa como origen (monitoriza una o varias carpetas y registra los cambios), mientras que otra actúa como destino (se conecta a un origen, descarga los eventos y aplica los cambios localmente). Una carpeta siempre se replica en un único sentido; si necesita que el contenido fluya en ambas direcciones entre dos instancias, configure dos pares independientes, uno para cada sentido, cada uno sobre carpetas distintas.

Cada Replication Pair lleva su propia conexión a un servidor de origen, de modo que una única instancia destino puede centralizar contenido procedente de varios servidores de origen distintos a la vez (por ejemplo, varias instancias satélite replicando carpetas seleccionadas hacia una instancia central) — no solo varias carpetas del mismo origen.

En cada servidor de origen, vaya a Administration > Utilities > Content Replication > Monitored Folders y cree una entrada por cada carpeta que quiera monitorizar, indicando su UUID. La ruta de la carpeta se resuelve y valida automáticamente.

En el servidor de destino, vaya a Administration > Utilities > Content Replication > Replication Pairs y cree una entrada por cada carpeta que quiera recibir:

  • Source Folder UUID: el UUID de la carpeta monitorizada, tal como está registrada en su servidor de origen.
  • Target Folder UUID: la carpeta local bajo la que replicarla.
  • Source URL: URL base de la instancia de origen de esa carpeta (por ejemplo, http://source-server:8080/openkm/).
  • Source Username / Source Password: credenciales para autenticarse contra ese origen.

Cada par mantiene su propio cursor de sondeo y su propia conexión de origen, de modo que se pueden ejecutar varios pares de forma independiente — apunten al mismo servidor de origen o a servidores distintos. La contraseña se guarda cifrada con una clave derivada del UUID del clúster de esta instancia; déjela en blanco al editar un par para mantener la contraseña actual sin cambios.

En la instancia ORIGEN (ContentReplicationManager)

Sección titulada «En la instancia ORIGEN (ContentReplicationManager)»

Cada vez que se realiza cualquier operación sobre contenido dentro de una carpeta monitorizada, se registra un evento en la tabla OKM_CONTENT_REPLICATION_EVENT, etiquetado con el UUID de la carpeta monitorizada a la que pertenece. Los tipos de evento admitidos son:

  • Documentos: crear, actualizar, eliminar, purgar, renombrar, mover
  • Carpetas: crear, eliminar, purgar, renombrar, mover
  • Registros: crear, eliminar, purgar, renombrar, mover
  • Correos: crear, eliminar, purgar, mover
  • Grupos de propiedades: añadir, establecer, eliminar

Mover contenido entre dos carpetas monitorizadas distintas del mismo origen se descompone en un evento PURGE sobre la carpeta que se abandona y un evento CREATE sobre la carpeta a la que se entra.

En la instancia DESTINO (ContentReplicationScheduler)

Sección titulada «En la instancia DESTINO (ContentReplicationScheduler)»

El planificador se ejecuta cada 5 minutos (0 */5 * * * *) y, para cada par configurado, realiza dos fases:

  1. Lee el cursor propio del par (la marca de tiempo del último evento que obtuvo).
  2. Llama al endpoint REST del origen para la carpeta de ese par: GET /rest/content-replication/events/since/{timestamp}?folderUuid={uuid}. El origen comprueba que el usuario que llama tiene acceso de lectura a esa carpeta antes de devolver nada.
  3. Almacena los nuevos eventos como PENDING en OKM_CONTENT_REPLICATION_STATE y avanza el cursor del par.
  1. Marca todos los eventos que están actualmente en estado ERROR como PENDING (reintento automático).
  2. Procesa cada evento pendiente invocando al gestor correspondiente (DocumentReplicationHandler, FolderReplicationHandler, etc.).
  3. Cada gestor descarga el contenido real desde el origen vía REST (GET /rest/documents/{uuid}/content, etc.) y lo aplica localmente.
  4. El evento se marca como DONE si tiene éxito, o como ERROR (con un mensaje) si falla.

El mecanismo de replicación se apoya en las siguientes tablas de base de datos:

Tabla Servidor Descripción
OKM_CONTENT_REPLICATION_FOLDER Origen Las carpetas monitorizadas para replicación (una fila por carpeta).
OKM_CONTENT_REPLICATION_EVENT Origen Almacena todos los eventos de replicación generados cuando se crea, modifica o elimina contenido dentro de una carpeta monitorizada, etiquetados con la carpeta a la que pertenecen.
OKM_CONTENT_REPLICATION_PAIR Destino Los pares carpeta-origen/carpeta-destino configurados, cada uno con su propia conexión de origen y cursor de sondeo.
OKM_CONTENT_REPLICATION_STATE Destino Realiza un seguimiento del estado de procesamiento de los eventos de replicación (PENDING, DONE, ERROR).

Estados de evento (tabla OKM_CONTENT_REPLICATION_STATE)

Sección titulada «Estados de evento (tabla OKM_CONTENT_REPLICATION_STATE)»
Nombre Evento
PENDING Esperando a ser procesado
DONE Procesado correctamente
ERROR Falló; se reintentará en la siguiente ejecución del planificador