Problemas con replicacion

25/07/2008 - 10:56 por H.Ibi | Informe spam
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

#1 Maxi Accotto
25/07/2008 - 14:55 | Informe spam
Hola, y que dicen los agentes de replicacion? estan online? marcaron algun
error?


Saludos
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-

"H.Ibi" escribió en el mensaje de
noticias:#
Hola a


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.

Preguntas similares