Tôi đang sử dụng khuôn khổ .NET 2.0/3.5 cho ứng dụng của mình. Tôi cần phải chạy một số lệnh SQL trên nhiều kết nối và mỗi kết nối là trên một máy chủ khác nhau (Oracle, SQL Server). Tôi cần phải chắc chắn rằng các lệnh này là giao dịch.Nhiều lệnh giao dịch SQL qua các kết nối cơ sở dữ liệu khác nhau
Ví dụ: Tôi cần thực hiện INSERT trong bảng trên cả cơ sở dữ liệu Oracle và SQL Server, sau đó cam kết chúng nếu không có ngoại lệ nào được ném. Nếu có ngoại lệ, tôi muốn khôi phục trên cả hai máy chủ nếu cần.
Tôi nghi ngờ tôi sẽ cần sử dụng System.Transactions và TransactionScope. Điều này sẽ yêu cầu tôi thiết lập Điều phối viên giao dịch phân phối Microsoft (MSDTC) trên các máy chủ cơ sở dữ liệu và cũng là máy chủ ứng dụng.
Tôi đã xem xét cao và thấp và không thể tìm thấy bất kỳ bài viết nào mô tả từng bước thiết lập MSDTC với xác thực lẫn nhau (bao gồm định cấu hình cài đặt tường lửa và cài đặt MSDTC.) Tôi đã xem tài liệu của Microsoft về thiết lập MSDTC. hoàn toàn vô giá trị và không được ghi chép đầy đủ (trừ khi bạn có thể tìm thấy cho tôi một bài viết MSDN thực sự tốt về cách thiết lập nó.)
Đang sử dụng MSDTC cách duy nhất để hoàn thành công việc của mình?
Nếu vậy, làm cách nào để tôi định cấu hình đúng cách?
EDIT:
- Tôi đang sử dụng Windows Server 2003 cho tất cả các máy.
- Tôi có hai máy chủ SQL. Một là SQL Server 2000 và khác là 2005.
- Tôi có một máy chủ Oracle và nó là phiên bản 11g
- Ứng dụng chúng tôi đang phát triển đôi khi phải thay đổi/tạo bản ghi trên cả ba cơ sở dữ liệu theo cách giao dịch.
- Nó không phải là một vấn đề giữa bàn phím và ghế. Chúng tôi đọc các bài viết trên MSDN về cách thiết lập mọi thứ liên quan đến MSDTC, nhưng chúng tôi không thể nhận DTCPing và các ứng dụng thử nghiệm khác hoạt động. Chúng tôi đang tìm kiếm một bài viết từng bước chi tiết quá trình. Tôi đã đi qua tài liệu MSDN trên nhiều hơn một lần mà 'trái ra' bước để làm những việc nhất định.