Estoy usando .NET 2.0/3.5 framework para mi aplicación. Necesito ejecutar varios comandos SQL en múltiples conexiones y cada conexión está en un servidor diferente (Oracle, SQL Server). Necesito asegurarme de que estos comandos sean transaccionales.Múltiples comandos transaccionales de SQL en diferentes conexiones de base de datos
Por ejemplo: Necesito realizar un INSERTO en una tabla en ambas bases de datos de Oracle y SQL Server, y luego confirmarlas si no se lanzaron excepciones. Si hubo una excepción, me gustaría retroceder en ambos servidores si es necesario.
Sospecho que tendré que usar System.Transactions y TransactionScope. Esto requerirá que configure el Coordinador de transacciones distribuidas de Microsoft (MSDTC) en los servidores de bases de datos y también en el servidor de aplicaciones.
He visto alto y bajo y no pude encontrar ningún artículo que describa paso a paso la configuración de MSDTC con autenticación mutua (incluida la configuración del firewall y la configuración de MSDTC). Miré la documentación de Microsoft sobre la configuración de MSDTC, pero parece completamente inútil y no completamente documentado (a menos que pueda encontrarme un artículo realmente bueno de MSDN sobre cómo configurarlo).
¿Está utilizando MSDTC como la única forma de hacer mi trabajo?
Si es así, ¿cómo diablos configuro correctamente?
EDIT:
- Estoy utilizando Windows Server 2003 para todas las máquinas.
- Tengo dos servidores SQL. Uno es SQL Server 2000 y el otro es 2005.
- Tengo un servidor Oracle y es la versión 11g
- La aplicación que estamos desarrollando a veces debe alterar/crear registros en las tres bases de datos de forma transaccional.
- No hay problema entre el teclado y la silla. Leemos los artículos en MSDN sobre cómo configurar todo lo relacionado con MSDTC, pero no podemos lograr que DTCPing y otras aplicaciones de prueba funcionen. Estábamos buscando un artículo paso a paso que detalla el proceso. Me he encontrado con la documentación de MSDN en más de una ocasión que los pasos "omitidos" para hacer ciertas cosas.