CREATE TABLE `test_transation1` (                 
                    `id` int(10) unsigned NOT NULL auto_increment, 
                    `name` varchar(255) default NULL,               
                    PRIMARY KEY (`id`)                             
                  ) ENGINE=InnoDB DEFAULT CHARSET=utf8         
CREATE TABLE `result_mtp` (           
              `grid` varchar(40) NOT NULL,        
              `age1` tinyint(4) default NULL,     
              `age2` tinyint(4) default NULL      
            ) ENGINE=MyISAM DEFAULT CHARSET=utf8 CREATE TABLE `result_dtp` (           
              `grid` varchar(40) NOT NULL,        
              `age1` tinyint(4) default NULL,     
              `age2` tinyint(4) default NULL      
            ) ENGINE=MyISAM DEFAULT CHARSET=utf8 
分布式事务<?php
$mapfarm = new mysqli("192.168.9.116","usergsp","usergsp123","test");
$map     = new mysqli("192.168.9.113","usergsp","usergsp123","test");$age = rand(1, 255);
$grid = uniqid("");
$map->query("XA START '$grid'");
$mapfarm->query("XA START '$grid'");$values = array(1,"");
$id = $values[rand(0,1)];try {
  $return = $map->query("UPDATE test_transation2 SET AGE=$age WHERE id=$id");
  if($return == false) {
     throw new Exception("<a href='http://'>113更新失败!</a>");
  }
  $return = $mapfarm->query("UPDATE test_transation2 SET AGE=$age WHERE id=$id");
  if($return == false) {
     throw new Exception("116更新失败!");
  }  $map->query("XA END '$grid'");
  $map->query("XA PREPARE '$grid'");
  
  $mapfarm->query("XA END '$grid'");
  $mapfarm->query("XA PREPARE '$grid'");
  
  $mapfarm->query("XA COMMIT '$grid'");
  //假如这个连接上的XA COMMIIT已成功,BINLOG都写成功了,数据都到了备机了
  $map->query("XA COMMIT '$grid'");
  //但这个连接上的XA COMMIT失败
} catch (Exception $e) {
  $mapfarm->query("XA ROLLBACK '$grid'");
  //那么这个XA ROLLBACK还有用吗?
  $map->query("XA ROLLBACK '$grid'");
  print $e->getMessage();
}那如何解决两个实例上的事务一致性问题,上面的XA事务和我用普通事务来做不是一样的吗
一个实例上成功了,另一个实例上的失败了,那成功的那个无法回滚了是不是我理解的还不够 深入呢,求助