In teoria dovrebbe funzionare.
Suggerirei diversi passaggi per risolvere questo problema:
-
Hai già controllato il tuo motore di archiviazione MySql? Sembra che solo il supporto del motore di archiviazione InnoDB distribuisca la transazione per documento MySql:https://dev.mysql.com/doc/refman/5.7/en/xa.html
-
Verifica se puoi passare all'utilizzo della connessione di configurazione di MySQL Connectors per connetterti a MySql in SQL Server anziché al provider OLEDB, che indica il documento MySql sopra che supporta la transazione di distribuzione.
-
Se ancora non funziona, potrebbe essere il servizio MSDTC stesso che ha qualche problema, vedere se è possibile isolarlo come ottenere un'istanza di SQL Server in esecuzione sulla casella del server MySql (se si utilizza Windows MySql) o provare a installare Windows MySql su Sql Server box per ottenere una transazione di distribuzione funzionante tra due MySql. Il che potrebbe indicarti il vero problema.
MODIFICA:
Sfortunatamente sembra che tu abbia dimostrato che non funziona, ho dato un'occhiata più da vicino al documento MySql e mi dispiace che non lo stessi leggendo a fondo, dice:
Attualmente, tra i MySQL Connector, MySQL Connector/J 5.0.0 e versioni successive supportano XA direttamente
E da qualche altro Google ho trovato questo:https://bugs.mysql.com/bug.php?id=37283, le persone segnalano questo bug molti anni fa e lo hanno contrassegnato come non risolvebile.
Qualcuno ha suggerito qualcosa qui:https://social.msdn.microsoft.com/Forums/en-US/fc07937d-8b42-43da-8c75-3a4966ab95f9/xa-msdtc?forum=windowstransactionsprogramming, ovvero implementare il proprio XA- Gestori risorse conformi che devono essere utilizzati dall'applicazione (https://msdn.microsoft.com/en-us/library/ms684317.aspx)