目前不支持在同一事务中具有不同连接字符串的多个同时连接或连接

时间:2011-05-19 06:18:25

标签: mysql distributed-transactions

我正在使用交易范围。在那个transactioncope中,我有一个mysql数据库连接。但是,我需要使用先前的事务范围打开一个新的[又一个] MySQL连接。

当我这样做时,我收到以下错误Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported.

这是因为MySQL服务器不支持多个分布式事务,是否有任何我应该在代码中更改的内容或我应该在服务器中更改的任何内容?

如果我使用上述场景,并且两个连接都是SQL Server而不是mysql服务器,那么是否会有支持

2 个答案:

答案 0 :(得分:1)

您可能希望阅读Two-phase commit protocol,看起来MySQL正在使用MySQL XA Transactions

支持它

希望这有帮助

答案 1 :(得分:0)

虽然我自己从来没有尝试过MySql,但我希望你可以创建一个支持XA的数据源。

This question 似乎暗示MySql支持XA。

您可能遇到的一个问题是您需要在能够处理XA事务的环境中运行。 (实际上,您正在跨两个数据库执行分布式事务,因为您使用两个单独的连接)我习惯在Java EE App Server中工作,因此服务器充当事务协调器,我不确定会发生什么在一个独立的Java程序中。