think-orm icon indicating copy to clipboard operation
think-orm copied to clipboard

XA事务存在问题

Open zhangrenjie opened this issue 3 years ago • 1 comments

transactionXa源码中 所有$xid都是用同一个,生成方式为 $xid = uniqid('xa');

我们现在实际生产环境中出现这种情况: 同一个实例中(同一台数据库服务器),有个多DB。每个DB的连接信息都不一样。 使用的时候存在每个DB都是单独连接的。

假设有Order库、Member库在同一个实例上(同一台机器上),Order与Member的都有自己的连接信息,使用过程中Order与Member都会各自建立连接。

这时候要同时操作Order与Member库,就构成了分布式事务。

按照现在的写法,同一个实例的两个库的两个连接使用相同的xid去操作,XA会报错的! 因为同一个实例上同一个xid只能开启一次。

zhangrenjie avatar Jul 29 '22 06:07 zhangrenjie

没有人跟进这个问题吗?

zhangrenjie avatar Aug 01 '22 07:08 zhangrenjie