розподілені транзакції
Транзакція - це набір пов'язаних завдань, який, крім усього іншого, завершується успішно (фіксація) або з помилкою (скасування) як єдине ціле. Розподілена транзакція - це транзакція, яка зачіпає кілька ресурсів. Для фіксації розподіленої транзакції всі учасники повинні гарантувати, що будь-яка зміна даних буде постійним. Зміни повинні зберігатися навіть в разі фатального збою системи або інших непередбачених подій. Якщо хоч один з учасників не зможе надати таку гарантію, вся транзакція завершиться з помилкою і буде виконаний відкат будь-яких змін даних всередині області транзакції.
Якщо DataReader запускається під час активної транзакції, то при спробі зафіксувати або виконати відкат транзакції виникне виключення.
У ADO.NET 2.0 з'явилася підтримка прикріплення розподілених транзакцій за допомогою методу EnlistTransaction. який прикріплює підключення до примірника Transaction. У попередніх версіях ADO.NET явне прикріплення до розподіленої транзакції виконувалося за допомогою методу з'єднання EnlistDistributedTransaction для прикріплення з'єднання до примірника ITransaction. який підтримувався в цілях забезпечення сумісності. Додаткові відомості про транзакції служб Enterprise Services см. В розділі Interoperability with Enterprise Services and COM + Transactions.
При використанні транзакції System.Transactions з постачальником .NET Framework для SQL Server для бази даних SQL Server автоматично буде використана спрощена Transaction. Потім по мірі необхідності транзакція може стати повною розподіленої транзакцією. Для отримання додаткової інформації див. Інтеграція System.Transactions з SQL Server.
Максимальна кількість розподілених транзакцій, яке база даних Oracle може обробляти одночасно, за замовчуванням дорівнює 10. При з'єднанні з базою даних Oracle після десятої транзакції виникає виняток. Oracle не підтримує інструкції мови DDL всередині розподіленої транзакції.
SQL Server підтримує підвищує транзакції, в яких локальна спрощена транзакція може бути автоматично підвищена до розподіленої, якщо буде потрібно. Підвищується транзакція не викликає додаткове навантаження розподіленої транзакції, якщо така не потрібна. За докладнішою інформацією та зразок коду див. Розділ Інтеграція System.Transactions з SQL Server.
Для використання розподілених транзакцій можлива необхідність включення в мережі MS DTC. Якщо включений міжмережевий екран Windows, Вам потрібно включити службі MS DTC використовувати мережу або відкрити порт MS DTC.