think-orm
think-orm copied to clipboard
XA事务存在问题
transactionXa源码中 所有$xid都是用同一个,生成方式为 $xid = uniqid('xa');
我们现在实际生产环境中出现这种情况: 同一个实例中(同一台数据库服务器),有个多DB。每个DB的连接信息都不一样。 使用的时候存在每个DB都是单独连接的。
假设有Order库、Member库在同一个实例上(同一台机器上),Order与Member的都有自己的连接信息,使用过程中Order与Member都会各自建立连接。
这时候要同时操作Order与Member库,就构成了分布式事务。
按照现在的写法,同一个实例的两个库的两个连接使用相同的xid去操作,XA会报错的! 因为同一个实例上同一个xid只能开启一次。
没有人跟进这个问题吗?