sql >> Base de Datos >  >> RDS >> Sqlserver

Transacción distribuida en el servidor vinculado entre el servidor sql y mysql

En teoría, esto debería funcionar.

Sugeriría diferentes pasos para solucionar esto:

  1. ¿Ya revisaste tu motor de almacenamiento MySql? Parece que solo el motor de almacenamiento InnoDB admite la distribución de transacciones por documento MySql:https://dev.mysql.com/doc/refman/5.7/en/xa.html

  2. Vea si puede cambiar para usar la conexión de configuración de MySQL Connectors para conectarse a MySql en SQL Server en lugar del proveedor OLEDB, que se indica en el documento MySql anterior que admite la distribución de transacciones.

  3. Si aún no funciona, es posible que el servicio MSDTC en sí tenga algún problema, vea si puede aislarlo, como ejecutar una instancia de SQL Server en el cuadro del servidor MySql (si está usando Windows MySql), o intente instalar Windows MySql en el Cuadro de servidor Sql para que la transacción de distribución funcione entre dos MySql. Que podría señalarle el problema real.

EDITAR:

Desafortunadamente, parece que demostró que esto no funciona, observé más de cerca el documento MySql y lo siento, parece que no lo estaba leyendo completamente, dice:

Actualmente, entre los MySQL Connectors, MySQL Connector/J 5.0.0 y versiones posteriores admiten XA directamente

Y buscando en Google encontré esto:https://bugs.mysql.com/bug.php?id=37283, la gente reportó este error hace muchos años y lo marcaron como que no se arreglará.

Alguien sugirió algo aquí:https://social.msdn.microsoft.com/Forums/en-US/fc07937d-8b42-43da-8c75-3a4966ab95f9/xa-msdtc?forum=windowstransactionsprogramming, que es implementar su propio XA- Administradores de recursos compatibles que usará su aplicación (https://msdn.microsoft.com/en-us/library/ms684317.aspx)