Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Разпределена транзакция на свързан сървър между sql сървър и mysql

Теоретично това трябва да работи.

Бих предложил различни стъпки за подреждане на това:

  1. Проверихте ли вече вашата система за съхранение на MySql? Изглежда, че само InnoDB двигател за съхранение поддържа разпределяне на транзакция на MySql документ:https://dev.mysql.com/doc/refman/5.7/en/xa.html

  2. Вижте дали можете да превключите към използване на връзката за настройка на MySQL Connectors, за да се свържете с MySql в SQL Server вместо с доставчик на OLEDB, който гласи от документа на MySql по-горе, че поддържа транзакция за разпространение.

  3. Ако все още не работи, може да се окаже, че самата услуга MSDTC има някакъв проблем, вижте дали можете да го изолирате, като например да стартирате екземпляр на SQL Server в кутията на сървъра MySql (ако използвате Windows MySql) или опитайте да инсталирате Windows MySql на Sql Server кутия, за да накарате разпределената транзакция да работи между два MySql. Което би могло да ви насочи към действителния проблем.

РЕДАКТИРАНЕ:

За съжаление изглежда, че сте доказали, че това не работи. Разгледах по-отблизо документа MySql и съжалявам, изглежда, че не го прочетох внимателно, пише:

Понастоящем сред MySQL конекторите MySQL Connector/J 5.0.0 и по-нови поддържат XA директно

И чрез някакво друго търсене в Google намерих това:https://bugs.mysql.com/bug.php?id=37283, хората съобщават за тази грешка преди много години и те маркират това като няма да се поправи.

Някой предложи нещо тук:https://social.msdn.microsoft.com/Forums/en-US/fc07937d-8b42-43da-8c75-3a4966ab95f9/xa-msdtc?forum=windowstransactionsprogramming, което е да приложите свой собствен XA- Съответстващи мениджъри на ресурси, които да се използват от вашето приложение (https://msdn.microsoft.com/en-us/library/ms684317.aspx)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как програмно да задам низа за връзка за Entity-Framework Code-First?

  2. Разлика между CTE и SubQuery?

  3. Как да избера последните 5 реда в таблица без сортиране?

  4. Запознаване с вашето работно натоварване на SQL Server

  5. Как да създадете композитен външен ключ в SQL Server (пример за T-SQL)