Estructura de Tablas


A diferencia de otros sistemas de réplica existentes, la réplica XOne es capaz de enfrentar distintos Sistemas Gestores de Base de Datos.

Para que los dispositivos puedan replicar, deben tener las tablas necesarias, que se explican más abajo, y la configuración correcta del archivo license.ini.


La réplica necesita las siguientes tablas en la Base de Datos para su correcto funcionamiento:

REPLICA CLIENTE OBSERVACIONES
OBLIGATORIAS master_replica_queue
rl
- Aquí estan todas y cada una de las operaciones realizadas en la aplicación, ya sean insert, update o delete. Una vez que las replican al servidor y son confirmadas, se borran de la tabla, por lo que en la tabla solo están aquellas operaciones que no se han replicado al servidor.
FICHEROS master_replica_fields
master_replica_files
- Hay que configurar un campo en la tabla master_replica_slave con la ruta donde se guardan los ficheros en el servidor (Recordar dar permisos a la carpeta).
  • master_replica_queue:
    • En el cliente contiene las operaciones pendientes de replicar hacia el servidor.
  • rl: El corazón de la réplica, contiene las relaciones entre tablas del fichero mappings.xml de forma que el servidor de réplica sea capaz de mantener la integridad referencial de las operaciones replicadas. CGSOFT provee de una herramienta que analiza el fichero mappings.xml y genera ésta tabla.
  • master_replica_fields: Información de las tablas y los campos donde se almacena el nombre del fichero a replicar.
  • master_replica_files: No se configura nada, es el historial o queue de la réplica de ficheros.

Los campos principales de la tabla son los siguientes:

CAMPO TIPO OBLIGATORIO OBSERVACIONES
ID INT (11) Sí (indice) Autonumérico
ROWID VARCHAR (50) Si (indice) Identificador único del registro en toda la BD (En Oracle palabra reservada, usar CGSROWID)
OPERID VARCHAR (65) Sí (indice) Identificador único de la operación sobre el registro anterior
TIMESTAMP VARCHAR (25) Fecha y Hora a la que se generó la operación en el cliente
OPER INT (11) Tipo de operación a replicar 1-Insert 2-Delete y 3-Update
MID INT (11) Sí (indice) Identificador del Cliente que realiza la operación
SQL TEXT Sentencia SQL ejecutada (En MYSQL 5.0 palabra reservada, usar CGSSQL)
DMID INT (11) Sí (indice) Operación generada por el servidor dirigida para un cliente concreto
CONDITIONAL INT (11) Para establecer condicionalidad simple
TBL VARCHAR (50) Sólo para Select. Agrupada Se utiliza para la selectividad agrupada (MYSQL 4.0 NO, sólo DBMS que admitan Subconsultas)
DISABLED INT (11) Sólo para Lotes Se pone a 1 si no queremos que se replique una instrucción determinada
DMIDPR INT (11) Sólo para Lotes Debe existir, utilizado internamente.


Como ya se ha comentado anteriormente, esta tabla es el corazón de la réplica, contiene las relaciones entre tablas de forma que al replicar operaciones hacia los clientes, se haga con los valores .

NOTA: Si cambia la RL, hay que reiniciar el servicio de réplica. (En android se podría poner un license.ini con alguna modificación y se vuelve a recargar toda la configuración de réplica)



Los campos principales de la tabla son los siguientes:

CAMPO TIPO OBLIGATORIO OBSERVACIONES
ID INT(11) Sí (indice) Autonumérico
T1 VARCHAR(50) Si Nombre de la tabla origen de la relación.
F1 VARCHAR(50) Si Campo ID para relacionar con la tabla destino.
T2 VARCHAR(50) Si Nombre de la tabla destino de la relación.
F2 VARCHAR(50) Si Campo ID de la tabla destino.
T VARCHAR(50) ?? ????
CND VARCHAR(50) ?? ????