Teoretiskt borde detta fungera.
Jag skulle föreslå olika steg för att reda ut detta:
-
Har du kollat din MySql-lagringsmotor än? Det ser bara ut som InnoDB-lagringsmotorstöd distribuerar transaktion per MySql-dokument:https://dev.mysql.com/doc/refman/5.7/en/xa.html
-
Se om du kan byta till att använda MySQL Connectors setup-anslutning för att ansluta till MySql i SQL Server istället för OLEDB-leverantör, som enligt MySql-dokument ovan stödjer distribuera transaktion.
-
Om det fortfarande inte fungerar kan det vara att MSDTC-tjänsten själv har något problem, se om du kan isolera det som att få en SQL Server-instans som körs på MySql-serverboxen (om du använder Windows MySql), eller försök installera Windows MySql på SQL Server box för att få distribuera transaktioner som fungerar mellan två MySql. Vilket skulle kunna peka dig på det faktiska problemet.
EDIT:
Tyvärr verkar det som att du bevisade att detta inte fungerade, jag har tittat närmare på MySql-dokumentet och förlåt att det verkar som att jag inte läste det noggrant, det står:
För närvarande, bland MySQL Connectors, stöder MySQL Connector/J 5.0.0 och högre XA direkt
Och genom någon annan googling hittade jag detta:https://bugs.mysql.com/bug.php?id=37283, folk rapporterade detta fel för många år sedan och de markerade detta som att det inte kommer att åtgärdas.
Någon föreslog något här:https://social.msdn.microsoft.com/Forums/en-US/fc07937d-8b42-43da-8c75-3a4966ab95f9/xa-msdtc?forum=windowstransactionsprogramming, som är att implementera din egen XA- Kompatibla resurshanterare som ska användas av din applikation (https://msdn.microsoft.com/en-us/library/ms684317.aspx)