Teoricamente isso deve funcionar.
Sugiro diferentes etapas para resolver isso:
-
Você já verificou seu mecanismo de armazenamento MySql? Parece que apenas o suporte ao mecanismo de armazenamento InnoDB distribui transações por documento MySql:https://dev.mysql.com/doc/refman/5.7/en/xa.html
-
Veja se você pode alternar para usar a conexão de configuração do MySQL Connectors para se conectar ao MySql no SQL Server em vez do provedor OLEDB, que indica o documento MySql acima que suporta a transação de distribuição.
-
Se ainda não estiver funcionando, pode ser que o próprio serviço MSDTC tenha algum problema, veja se você pode isolar isso como obter uma instância do SQL Server em execução na caixa do servidor MySql (se você estiver usando o Windows MySql) ou tente instalar o Windows MySql no Caixa Sql Server para obter a transação de distribuição trabalhando entre dois MySql. O que seria capaz de apontar para o problema real.
EDITAR:
Infelizmente, parece que você provou que isso não está funcionando, eu dei uma olhada no documento MySql e desculpe, parece que eu não estava lendo completamente, ele diz:
Atualmente, entre os MySQL Connectors, o MySQL Connector/J 5.0.0 e superior suporta XA diretamente
E por algum outro Googling eu encontrei isso:https://bugs.mysql.com/bug.php?id=37283, as pessoas relatam esse bug há muitos anos e eles marcaram isso como não será corrigido.
Alguém sugeriu algo aqui:https://social.msdn.microsoft.com/Forums/en-US/fc07937d-8b42-43da-8c75-3a4966ab95f9/xa-msdtc?forum=windowstransactionsprogramming, que é implementar seu próprio XA- Gerenciadores de recursos compatíveis a serem usados pelo seu aplicativo (https://msdn.microsoft.com/en-us/library/ms684317.aspx)