Về mặt lý thuyết, điều này sẽ hoạt động.
Tôi sẽ đề xuất các bước khác nhau để sắp xếp điều này:
-
Bạn đã kiểm tra công cụ lưu trữ MySql chưa? Có vẻ như chỉ hỗ trợ công cụ lưu trữ InnoDB phân phối giao dịch trên mỗi tài liệu MySql:https://dev.mysql.com/doc/refman/5.7/en/xa.html
-
Xem liệu bạn có thể chuyển sang sử dụng kết nối thiết lập MySQL Connectors để kết nối với MySql trong SQL Server thay vì nhà cung cấp OLEDB hay không, theo tài liệu MySql ở trên hỗ trợ phân phối giao dịch.
-
Nếu vẫn không hoạt động, có thể bản thân dịch vụ MSDTC gặp sự cố nào đó, hãy xem liệu bạn có thể cô lập điều đó như lấy phiên bản SQL Server chạy trên hộp máy chủ MySql (nếu bạn đang sử dụng Windows MySql) hoặc thử cài đặt Windows MySql trên Hộp Sql Server để nhận phân phối giao dịch làm việc giữa hai MySql. Điều này có thể chỉ cho bạn vấn đề thực tế.
CHỈNH SỬA:
Thật không may, có vẻ như bạn đã chứng minh rằng điều này không hoạt động, tôi đã xem xét kỹ hơn tài liệu MySql và xin lỗi, có vẻ như tôi đã không đọc kỹ nó, nó cho biết:
Hiện tại, trong số các Trình kết nối MySQL, Trình kết nối MySQL / J 5.0.0 trở lên hỗ trợ XA trực tiếp
Và bằng một số Google Googling khác, tôi đã tìm thấy điều này:https://bugs.mysql.com/bug.php?id=37283, mọi người đã báo cáo lỗi này nhiều năm trước và họ đánh dấu đây là lỗi sẽ không sửa được.
Một số người đã đề xuất điều gì đó ở đây:https://social.msdn.microsoft.com/Forums/en-US/fc07937d-8b42-43da-8c75-3a4966ab95f9/xa-msdtc?forum=windowstransactionsprogramming, tức là để triển khai XA- của riêng bạn Trình quản lý tài nguyên tuân thủ sẽ được ứng dụng của bạn sử dụng (https://msdn.microsoft.com/en-us/library/ms684317.aspx)