Теоретично това трябва да работи.
Бих предложил различни стъпки за подреждане на това:
-
Проверихте ли вече вашата система за съхранение на MySql? Изглежда, че само InnoDB двигател за съхранение поддържа разпределяне на транзакция на MySql документ:https://dev.mysql.com/doc/refman/5.7/en/xa.html
-
Вижте дали можете да превключите към използване на връзката за настройка на MySQL Connectors, за да се свържете с MySql в SQL Server вместо с доставчик на OLEDB, който гласи от документа на MySql по-горе, че поддържа транзакция за разпространение.
-
Ако все още не работи, може да се окаже, че самата услуга MSDTC има някакъв проблем, вижте дали можете да го изолирате, като например да стартирате екземпляр на SQL Server в кутията на сървъра MySql (ако използвате Windows MySql) или опитайте да инсталирате Windows MySql на Sql Server кутия, за да накарате разпределената транзакция да работи между два MySql. Което би могло да ви насочи към действителния проблем.
РЕДАКТИРАНЕ:
За съжаление изглежда, че сте доказали, че това не работи. Разгледах по-отблизо документа MySql и съжалявам, изглежда, че не го прочетох внимателно, пише:
Понастоящем сред MySQL конекторите MySQL Connector/J 5.0.0 и по-нови поддържат XA директно
И чрез някакво друго търсене в Google намерих това:https://bugs.mysql.com/bug.php?id=37283, хората съобщават за тази грешка преди много години и те маркират това като няма да се поправи.
Някой предложи нещо тук:https://social.msdn.microsoft.com/Forums/en-US/fc07937d-8b42-43da-8c75-3a4966ab95f9/xa-msdtc?forum=windowstransactionsprogramming, което е да приложите свой собствен XA- Съответстващи мениджъри на ресурси, които да се използват от вашето приложение (https://msdn.microsoft.com/en-us/library/ms684317.aspx)