Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-04-2021
CyberManolo CyberManolo is offline
Miembro
 
Registrado: oct 2018
Posts: 24
Poder: 0
CyberManolo Va por buen camino
Replicación con Firebird 4

Hola de nuevo.

Estoy intentando montar un ejemplo de replicación asíncrona (o si no hay más remedio, síncrona), maestro-esclavo con firebird 4, que al parecer es nativa y transaccional. No encuentro documentación y sobre todo ejemplos de como montarla.

Probé con Firebird 3.0 e IBReplicator, que se basa en la replicación de tablas, pero encontré inconvenientes graves como el siguiente:

Supongamos una tabla CABECERAS_FACTURAS que tiene un campo CONTABILIZADA de manera que cuando contabilizamos esa factura, genera el asiento contable correspondiente en otra tabla ASIENTOS y un trigger de dicha tabla de ASIENTOS pone el campo CONTABLIZADA=1 en la tabla de cabeceras y los triggers de la tabla CABECERAS_FACTURAS, a partir de entocnes ya impiden que dicha factura se pueda modificar. Esto ocurre casi de inmediato a la creación de la factura.

¿Que pasa cuando la replicación es asíncrona (pongamos por ejemplo un periodo de 5 minutos) e intenta replicar el proceso anterior? pues que cuando copia a la base de datos esclava el registro correspondiente de CABECERAS_FACTURAS, este ya va con el campo CONTABILIZADA=1. Entonces, al insertar el asiento correspondiente en la tabla ASIENTOS, el trigger de esta se encuentra la cabecera de factura ya contabilizada y genera un error, por el cual no se produce la replicación.

Se que alguien me podría decir que es cuestión de cambiar el trigger de la tabla de asientos para que si ve que el campo CONTABILIZADA ya está a 1, no intente cambiarlo. Es decir, replantear toda la base de datos pensando en la replicación. Esto es complicado en una base de datos que tiene más de 500 tablas y miles de triggers.

Mi esperanza era que la replicación de FIREBIRD 4.0 fuera transaccional. Es decir, replicamos en la base de datos réplica las transacciones realizadas en la original y por el mismo orden. Tal vez sea así, pero no encuentro documentación sobre el tema, a lo mejor porque al ser actualmente una Release Candidate, aún no tiene la documentación desarrollada.

Si alguien tiene más conocimientos sobre la replicación en Firebird 4.0 y piensa que se puede resolver el problema expuesto, sin tener que reprogramar todos los procedimientos de la base de datos, podríamos abrir en este hilo u otro, el tema de replicación de bases de datos en Firebird 4.0.

Saludos a todos.
Responder Con Cita
  #2  
Antiguo 05-04-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que todavía no has leído nuestra guía de estilo, gracias.
Responder Con Cita
  #3  
Antiguo 05-04-2021
CyberManolo CyberManolo is offline
Miembro
 
Registrado: oct 2018
Posts: 24
Poder: 0
CyberManolo Va por buen camino
Perdona Casimiro. No se que parte de la guía de estilo se está violando. Si te refieres a las búsquedas previas de información, antes de plantear un problema. Te aseguro que he mirado por todo el foro y no he encontrado nada relacionado a la replicación Firebird 4.0.
Puede que sea el que no es el sitio apropiado para la pregunta. Procuré situarme en el foro de Firebird e Interbase. No se.
Responder Con Cita
  #4  
Antiguo 05-04-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, amigo, si mezclas preguntas distintas en un mismo hilo, nadie puede saber qué se está preguntando si es algo que no tiene nada que ver con el título.
Cita:
12. Solo se permite una pregunta por hilo, es una cuestión de simplicidad y objetividad en las respuestas y facilita las búsquedas.
Por eso es también muy importante poner títulos lo más descriptivos posible a lo que se pregunta.
Responder Con Cita
  #5  
Antiguo 06-04-2021
CyberManolo CyberManolo is offline
Miembro
 
Registrado: oct 2018
Posts: 24
Poder: 0
CyberManolo Va por buen camino
Si, quizás no debí exponer varios problemas que se resumen en uno y una pregunta

¿Alguien tiene o sabe de un ejemplo de una replicación asíncrona o sincrona (me da igual) en firebird 4.0 que replique transaccionalmente (ya que si se limita a copiar registros finales dará errores debido a los triggers) y a la vez con condiciones sobre los registros a replicar?

Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Replicacion de Base de datos Firebird rmora Firebird e Interbase 32 20-07-2020 10:18:15
Replicación de BD Firebird santiago14 Firebird e Interbase 9 03-10-2017 16:43:55
Replicacion base de datos Firebird de un servidor Linux a otro Axel_Tech Firebird e Interbase 2 28-01-2011 12:07:30
Replicacion Base de Datos Firebird Rockin Firebird e Interbase 8 03-11-2008 21:48:07
Replicación Arcioneo JAVA 0 01-08-2007 12:35:23


La franja horaria es GMT +2. Ahora son las 11:30:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi