php mysql xa事务_XA mysql php 分布式事务
$XA=uniqid("");$db->query("XASTART'$XA'");$db1->query("XASTART'$XA'");$insert1="insertintomytablevalues(?,?,?,?,?)";$params=array(12345678,123456789,444,555,1);$db->inser...
$XA = uniqid("");
$db -> query("XA START '$XA'");
$db1 -> query("XA START '$XA'");
$insert1 = "insert into mytable values(?,?,?,?,?)";
$params = array(12345678,123456789,444,555,1);
$db -> insert($insert1,$params);
$db1 -> insert($insert2,$params);
$db -> query("XA END '$XA'");
$db -> query("XA PREPARE '$XA'");
$db1 -> query("XA END '$XA'");
$db1 -> query("XA PREPARE '$XA'");
try{
$db -> query("XA COMMIT '$XA'");
throw new Exception("exception");
$db1 -> query("XA COMMIT '$XA'");
}catch(Exception $e){
$db -> query("XA ROLLBACK '$XA'");
$db1 -> query("XA ROLLBACK '$XA'");
}
代碼如上,$db和$db1連接了兩個主機上的mysql:
服務會報錯XAER_RMFAIL: The command cannot be executed when global transaction is in the NON-EXISTING state
而且查看數據庫,$db數據插入成功了,$db沒成功。沒有起到分布式事務的作用。
如何確保分布式事務都能回滾?
展開
總結
以上是生活随笔為你收集整理的php mysql xa事务_XA mysql php 分布式事务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 仿照LFW的pair.txt生成自己数据
- 下一篇: “留得五湖明月在,不愁无处下金钩“太经典