【发布时间】:2011-11-04 11:45:13
【问题描述】:
我已经尝试了将近一周的时间来让分布式事务正常工作。我在 MSSQL 上有一些程序试图从 MySQL 中选择数据。我需要在一个(!)交易中做到这一点。当时我已经使用 OpenLink 的单层 MySQL 驱动程序在 MSSQL 上设置了 ODBC 连接,这表明 XA 事务可以成功运行(配置 ODBC 连接后集成了一个测试按钮)。然后我通过 MSDASQL 在 MSSQL 中设置了一个链接服务器到这个 ODBC 连接,但是当这样做时
begin distributed transaction
select * from optin..lu_source_proc
select * from openquery(optinxa, 'SELECT * FROM tbl_source_proc')
commit transaction
我收到错误消息,在实际事务中无法启动进一步的事务。 (Der OLE DB-Anbieter "MSDASQL" für den Verbindungsserver "optinxa" hat die Meldung "Es können keine weiteren Transaktionen in dieser Sitzung gestartet werden." zurückgeben.)
另一个测试:
set transaction isolation level serializable
begin transaction
select * from optin..lu_source_proc
select * from openquery(optinxa, 'SELECT * FROM tbl_source_proc')
commit transaction
导致Der OLE DB-Anbieter "MSDASQL" für den Verbindungsserver "optinxa" hat die Meldung "[OpenLink][ODBC][Driver]Driver does not support this function" zurückgeben. 但为什么在配置时声明 ODBC 驱动程序,XA 事务确实有效?
【问题讨论】:
-
您找到解决此问题的方法了吗?这个问题我有问题stackoverflow.com/questions/30911206/…
-
不,我从来没有让这个工作。
标签: mysql sql-server sql-server-2005 odbc distributed-transactions