Hola a tod@s
Tengo el siguiente escenario:
server1.db1: Es publicador y distribuidor de una publicacion transaccional
(publi1).
server2.db2: Es suscriptor de la publicacion transaccional (publi1) y ademas
es publicador y distribuidor de una publicacion de mezcla (publi2).
server3.db3: Es suscriptor de la publicacion de mezcla (publi2).
Ejecuto lo siguiente en server2: insert into db2.t1 (id) value(1)
Verifico en server3 que haya replicado: select * from db3.t1 where id=1
Obtengo que id=1. Es correcto.
A continuacion ejecuto en server1: insert into db1.t1 (id) value(2)
Verifico en server2 que haya replicado: select * from db2.t1 where id=2
Obtengo que id=2. Es correcto.
Sin embargo, espero que se haya replicado a Server3. Verifico: select * from
db3.t1 where id=2 y obtengo que id=null. No ha replicado.
Se me ocurren posibles soluciones pero quedan descartadas por motivos
diversos:
1) que server3.db3 sea suscriptor de server1.db1 pero esto no es posible.
2) en server2, en la tabla t1 el trigger que genera automaticamente sql
server (MSmerge_ins_E34527B.) está condicionado:
if (select trigger_nestlevel()) = 1 and sessionproperty('replication_agent')
= 1
return
y que una posible solucion seria manipularlo.
Alguien se le ocurre otra solucion.
Leer las respuestas