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 carpeta y registra los cambios), mientras que otra actúa como destino (se conecta al origen, descarga los eventos y aplica los cambios localmente).
Configuración
Sección titulada «Configuración»En el servidor de origen:
En el servidor de destino, deberá seguir estos pasos:
- Iniciar Tomcat
- Iniciar sesión en OpenKM
- Ir a Administration > Utilities > Database query y ejecutar estas sentencias SQL para crear las propiedades de configuración necesarias:
insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('content.replication.monitored.folder', 'string', '');- content.replication.monitored.folder: UUID de la carpeta a monitorizar.
En el servidor de destino, deberá seguir estos pasos:
- Iniciar Tomcat
- Iniciar sesión en OpenKM
- Ir a Administration > Utilities > Database query y ejecutar estas sentencias SQL para crear las propiedades de configuración necesarias:
insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('content.replication.target.folder', 'string', ''); insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('content.replication.source.url', 'string', ''); insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('content.replication.source.username', 'string', ''); insert into OKM_CONFIG (CFG_KEY, CFG_TYPE, CFG_VALUE) values ('content.replication.source.password', 'string', '');Establezca las propiedades de configuración según su uso:
- content.replication.target.folder: UUID de la carpeta de destino local.
- content.replication.source.url: URL base de la instancia de origen (por ejemplo,
http://source-server:8080/openkm/). - content.replication.source.username: Nombre de usuario usado para autenticarse contra el origen.
- content.replication.source.password: Contraseña del origen.
Cómo funciona
Sección titulada «Cómo funciona»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 la carpeta monitorizada, se registra un evento en la tabla OKM_CONTENT_REPLICATION_EVENT. 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
La carpeta monitorizada se identifica por UUID (en caché en memoria tras la primera búsqueda).
En la instancia DESTINO (ContentReplicationScheduler)
Sección titulada «En la instancia DESTINO (ContentReplicationScheduler)»El planificador se ejecuta cada 5 minutos (0 */5 * * * *) y realiza dos fases:
Fase 1 — Obtención de eventos
Sección titulada «Fase 1 — Obtención de eventos»- Comprueba la tabla de estado local para determinar la marca de tiempo del último evento procesado.
- Llama al endpoint REST del origen:
GET /rest/content-replication/events/since/{timestamp} - Almacena los nuevos eventos como
PENDINGenOKM_CONTENT_REPLICATION_STATE
Fase 2 — Procesamiento de eventos
Sección titulada «Fase 2 — Procesamiento de eventos»- Marca todos los eventos que están actualmente en estado
ERRORcomoPENDING(reintento automático). - Procesa cada evento pendiente invocando al gestor correspondiente (
DocumentReplicationHandler,FolderReplicationHandler, etc.). - Cada gestor descarga el contenido real desde el origen vía REST (
GET /rest/documents/{uuid}/content, etc.) y lo aplica localmente. - El evento se marca como
DONEsi tiene éxito, o comoERROR(con un mensaje) si falla.
Tablas de base de datos
Sección titulada «Tablas de base de datos»El mecanismo de replicación se apoya en las siguientes tablas de base de datos:
| Tabla | Servidor | Descripción |
|---|---|---|
| OKM_CONTENT_REPLICATION_EVENT | Origen | Almacena todos los eventos de replicación generados cuando se crea, modifica o elimina contenido dentro de la carpeta monitorizada. |
| 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 |