Tôi hiểu, theo một cách mờ, cách hoạt động của các giao dịch ACID thông thường. Bạn thực hiện một số công việc trên một cơ sở dữ liệu theo cách mà công việc không được xác nhận cho đến khi một số loại cờ cam kết được thiết lập. Phần cam kết dựa trên một số giả định cơ bản (giống như một khối ghi đĩa đơn là nguyên tử). Trong trường hợp có lỗi nghiêm trọng, bạn chỉ có thể xóa dữ liệu không được cam kết trong giai đoạn khôi phục.Các giao dịch phân phối hoạt động như thế nào (ví dụ: MSDTC)?
Giao dịch phân phối hoạt động như thế nào? Trong một số tài liệu MS tôi đã đọc rằng bạn bằng cách nào đó có thể thực hiện một giao dịch trên cơ sở dữ liệu và hệ thống tập tin (trong số những thứ khác).
Công nghệ này có thể (và có thể là) được sử dụng cho trình cài đặt, nơi bạn muốn chương trình được cài đặt hoàn toàn hoặc vắng mặt hoàn toàn. Bạn chỉ cần bắt đầu một giao dịch khi bắt đầu trình cài đặt. Tiếp theo, bạn có thể kết nối với hệ thống tệp và đăng ký, thực hiện các thay đổi xác định cài đặt. Khi công việc được thực hiện, chỉ cần cam kết, hoặc khôi phục nếu cài đặt không thành công vì một lý do nào đó. Cơ quan đăng ký và hệ thống tệp được tự động làm sạch cho bạn bởi điều phối viên giao dịch phân phối ma thuật này.
Làm cách nào để có thể giao dịch hai hệ thống khác nhau theo cách này? Dường như với tôi rằng nó luôn luôn có thể để lại hệ thống trong một trạng thái không nhất quán, nơi hệ thống tập tin đã cam kết thay đổi của nó và đăng ký đã không. Tôi nghĩ rằng trong MSDTC nó thậm chí có thể thực hiện một giao dịch trên mạng.
Tôi đã đọc http://blogs.msdn.com/florinlazar/archive/2004/03/04/84199.aspx, nhưng cảm giác như chỉ bắt đầu giải thích và bước 4 sẽ được mở rộng đáng kể.
Chỉnh sửa: Từ nội dung tôi thu thập trên http://en.wikipedia.org/wiki/Distributed_transaction, có thể thực hiện bằng cam kết hai giai đoạn (http://en.wikipedia.org/wiki/Two-phase_commit). Sau khi đọc xong, tôi vẫn chưa hiểu phương thức 100%, có vẻ như có rất nhiều chỗ cho lỗi giữa các bước.
Có * là * rất nhiều chỗ cho lỗi. Đặc biệt, nó dựa vào "COMMIT PREPARED" luôn hoạt động. Thực tế khác. –