2

我正在使用事务范围。在该事务范围内,我有一个 mysql 数据库连接。但是,我需要在之前的事务范围内打开一个新的 [又一个] MySQL 连接。

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

这是因为 MySQL 服务器不支持多个分布式事务,我应该在代码中更改什么或我应该在服务器中更改什么吗?

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

4

2 回答 2

1

您可能想阅读两阶段提交协议,看起来 MySQL 正在通过MySQL XA Transactions支持它

希望这可以帮助

于 2011-05-19T06:30:42.203 回答
0

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

这个问题似乎暗示 MySql 确实支持 XA。

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

于 2011-05-19T06:32:37.100 回答