Sto utilizzando il framework .NET 2.0/3.5 per la mia applicazione. Ho bisogno di eseguire diversi comandi SQL su più connessioni e ogni connessione è su un server diverso (Oracle, SQL Server). Devo assicurarmi che questi comandi siano transazionali.Comandi transazionali SQL multipli su diverse connessioni di database
Ad esempio: È necessario eseguire un INSERT in una tabella su entrambi i database Oracle e SQL Server, quindi eseguire il commit se non sono state generate eccezioni. Se c'è stata un'eccezione, mi piacerebbe eseguire il rollback su entrambi i server, se necessario.
Sospetto che sarà necessario utilizzare System.Transactions e TransactionScope. Ciò richiederà che imposti il Microsoft Distributed Transaction Coordinator (MSDTC) sui server di database e anche il server delle applicazioni.
Ho guardato in alto e in basso e non sono riuscito a trovare articoli che descrivessero passo passo la configurazione di MSDTC con l'autenticazione reciproca (compresa la configurazione delle impostazioni del firewall e delle impostazioni MSDTC.) Ho guardato la documentazione Microsoft sull'impostazione di MSDTC, ma sembra completamente privo di valore e non completamente documentato (a meno che tu non riesca a trovarmi un articolo MSDN veramente buono su come configurarlo.)
L'utilizzo di MSDTC è l'unico modo per completare il mio lavoro?
Se sì, come diavolo si configura correttamente?
EDIT:
- Sto usando Windows Server 2003 per tutte le macchine.
- Ho due server SQL. Uno è SQL Server 2000 e l'altro è 2005.
- Ho un server Oracle ed è la versione 11g
- L'applicazione che stiamo sviluppando a volte deve alterare/creare record su tutti e tre i database in modo transazionale.
- Non è un problema tra la tastiera e la sedia. Leggiamo gli articoli su MSDN su come impostare tutto ciò che riguarda MSDTC, ma non possiamo far funzionare DTCP e altre applicazioni di test. Stavamo cercando un articolo dettagliato che descrivesse dettagliatamente il processo. Ho trovato la documentazione MSDN in più di un'occasione che ha "escluso" i passaggi per fare certe cose.