Teoretisk set burde dette virke.
Jeg vil foreslå forskellige trin til at ordne dette:
-
Har du tjekket din MySql-lagringsmotor endnu? Det ser kun ud til at InnoDB storage engine support distribuer transaktion pr MySql dokument:https://dev.mysql.com/doc/refman/5.7/en/xa.html
-
Se, om du kan skifte til at bruge MySQL Connectors opsætningsforbindelse til at oprette forbindelse til MySql i SQL Server i stedet for OLEDB-udbyder, som angiver efter MySql-dokument ovenfor, der understøtter distribueret transaktion.
-
Hvis det stadig ikke virker, kan det være, at MSDTC-tjenesten selv har et eller andet problem, se om du kan isolere det, f.eks. få en SQL Server-instans, der kører på MySql-serverboksen (hvis du bruger Windows MySql), eller prøv at installere Windows MySql på SQL Server-boks for at få distribueret transaktion, der arbejder mellem to MySql. Hvilket ville kunne henvise dig til det faktiske problem.
EDIT:
Desværre ser det ud til, at du har bevist, at dette ikke virker, jeg har kigget nærmere på MySql-dokumentet og undskyld, det ser ud til, at jeg ikke læste det grundigt, der står:
I øjeblikket, blandt MySQL Connectors, understøtter MySQL Connector/J 5.0.0 og højere XA direkte
Og ved en anden googling fandt jeg dette:https://bugs.mysql.com/bug.php?id=37283, folk rapporterede denne fejl for mange år siden, og de markerede dette som en fejl, der ikke kan rettes.
Nogen foreslog noget her:https://social.msdn.microsoft.com/Forums/en-US/fc07937d-8b42-43da-8c75-3a4966ab95f9/xa-msdtc?forum=windowstransactionsprogramming, som er at implementere din egen XA- Overensstemmende ressourceadministratorer, der skal bruges af din applikation (https://msdn.microsoft.com/en-us/library/ms684317.aspx)