Lo encontramos, pero no lo entendemos
En un servidor dice
begin tran
y en el otro
begin distributed tran
Los pusimos iguales con el distributed y anda todo
Una locura
Julio
-----Original Message-----
From: "julio.novomisky" <[EMAIL PROTECTED]>
To: "julio.novomisky" <[EMAIL PROTECTED]>
Date: Mon, 31 Mar 2008 11:09:08 -0300
Subject: [dbms] Error de actualizacion entre servers
Maxi,
Fue lo primero que mire
Y la verdad es que si está funcionando
Eso no denería tener que ser
Julio
-----Original Message-----
From: "Maxi Accotto" <[EMAIL PROTECTED]>
To: "julio.novomisky" <[EMAIL PROTECTED]>
Date: Mon, 31 Mar 2008 10:46:13 -0300
Subject: [dbms] Error de actualizacion entre servers
Hola Julio, tenes habilitado el servicio de transacciones distribuidas?
2008/3/31, julio.novomisky <[EMAIL PROTECTED]>:
> Buenas
>
> Tenemos un problema entre las replicaciones automáticas que es medio
extraño
>
> Ante todo, cambiamos uno de los servidores, e instalamos un nuevo SQL 7,
> sobre un equipo montado sobre un W2K.
>
> Al replicar un proceso de expedientes, un proceso que corre en internet y
en
> la intranet, al querer actualizar desde el servidor SQL de internet al de
la
> intranet, nos da el siguiente error:
>
> The operation could not be performed because the OLE DB provider
'SQLOLEDB'
> does not support distributed transactions. [SQLSTATE 42000] (Error 7391)
> [SQLSTATE 01000] (Error 7312). The step failed.
> Hay dos jobs que corren cada 10 minutos y replican los datos entre los
> servidores, y este proceso funciona desde hace años sin problema.
>
> Por lo tanto el tema es que no configuré algo bien.
>
> El resto de los jobs funcionan sin problemas y no tiran error
>
> El script que genera el error es este:
>
> SET XACT_ABORT on
> begin tran
> if exists ( select * from obli_inscriptos where repli in ('I', 'U') )
> begin
> insert into SIA_PUB.siaccom.dbo.repli_obli_inscriptos (
> carre, matri, IdExamen, FechaInscrip, estado, repli )
> select carre, matri, IdExamen, FechaInscrip, estado, repli
> from obli_inscriptos where repli in ('I', 'U')
> update obli_inscriptos set repli='P' where repli in ('I','U')
> end
> if exists ( select * from repli_obli_inscriptos where repli in ('I') )
> begin
> insert into obli_inscriptos ( carre, matri, IdExamen, FechaInscrip,
> estado,repli )
> select carre, matri, IdExamen, FechaInscrip, estado,'P'
> from repli_obli_inscriptos where repli='I'
> update repli_obli_inscriptos set repli = 'D' where repli = 'I'
> end
> if exists ( select * from repli_obli_inscriptos where repli in ('U') )
> begin
> update obli_inscriptos
> set FechaInscrip=r.FechaInscrip,
> estado=r.estado
> from obli_inscriptos i inner join repli_obli_inscriptos r
> on (i.carre=r.carre and i.matri=r.matri and i.IdExamen=r.IdExamen)
> where
> r.repli='U'
> update repli_obli_inscriptos set repli = 'E' where repli = 'U'
> end
> commit tran
> SET XACT_ABORT off
>
> El problema es con el nombre del nuevo servidor, que es igual al anterior
y
> no cambié nada
>
> Julio
>
>
--
-----------------------------------------------------------
Microsoft MVP en SQL Server
Mentor asociado en SQLTotalConsulting
Excelencia en servicios y consultoria SQLServer
www.sqltotalconsulting.com
-----------------------------------------------------------