ERROR EN TRANSACCIÓN CON 3 CONEXIONES

14/12/2004 - 08:28 por -=JOE MAN=- | Informe spam
Hola

Tengo un ASP que modifica 3 tablas en distintos servidores SQL de la
red. Tiene que ejecutarse en una transacción para que si falla algo las
tres tablas (cada una en un servidor) sean idénticas y se mantengan
idénticas.

Abro tres conexiones (cn1,cn2,cn2), una por cada servidor SQL.

Pongo <%@Transaction="Required"%> pero me da error en la transacción.
¿varias conexiones a servidores distintos no permiten transacciones?

¿cómo podría hacerlo?

gracias
 

Leer las respuestas

#1 Salvador Ramos
14/12/2004 - 09:41 | Informe spam
Yo lo implementaría mediante triggers, así en tu asp sólo tienes que
actualizar una de las bases de datos. Eso si, ten en cuenta que si falla un
servidor se produce un rollback de toda la transacción y no podrás
actualizar datos en ninguno de ellos.

Y te propongo otra alternativa aún mejor. Utilizaría replicación
(duplicación) transaccional, con actualización inmediata. Así te olvidas de
escribir código. Aunque seguirías teniendo el problema de que si falla la
actualización en un servidor, se deshace la transacción y no se actualiza
ninguno de los tres.

Si es un requisito que deban estar los tres actualizados en todo momento
esas son las alternativas que te propongo, ahora si se pueden producir
ciertos problemas de conectividad y quieres que aun así se pueda seguir
trabajando y cuando se recupere la conectividad que se sincronicen, te
recomiendo la repliación transaccional con actualización en cola.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"-=JOE MAN=-" escribió en el mensaje
news:%
Hola

Tengo un ASP que modifica 3 tablas en distintos servidores SQL de la
red. Tiene que ejecutarse en una transacción para que si falla algo las
tres tablas (cada una en un servidor) sean idénticas y se mantengan
idénticas.

Abro tres conexiones (cn1,cn2,cn2), una por cada servidor SQL.

Pongo <%@Transaction="Required"%> pero me da error en la transacción.
¿varias conexiones a servidores distintos no permiten transacciones?

¿cómo podría hacerlo?

gracias

Preguntas similares