在.net中,我需要在两个不同的MySQL服务器上更新数据。服务器A的数据依赖于服务器B的数据。我想仅在服务器B更新时更新服务器A.目前,我已经为服务器A创建了事务T1,并在第一个事务T1内创建了另一个事务T2。成功提交T2后,我让T1提交,否则回滚。此技术不会生成任何异常,并且两个事务都成功提交。
但是,当我验证服务器A中的数据时,它不存在!这意味着服务器A没有填充!
请建议解决方案。
谢谢。
由于代码太多,因此以下几行很容易理解:
Connection connA;
Command cmdA;
cmd.CommandText = do some thing in table 1, and select auto id
Transaction T1 = connA.beginTransaction();
cmd.Transaction = T1;
connA.open();
dataset ds;
adapter A;
A.fill(ds)
//second connection start here in a new method :
Connection connB
Command cmdB;
transaction t2 = connB.BeginTransaction();
cmdB.trasaction = te;
cmdB.CommandText = do some thing, and select auto id
connB.open();
dataset ds2;
adapter a2;
a2.insertcommand = cmd2;
a2.fill(ds2);
autoId = ds2.table[0].row[0][0]
t2.commit();
connB.close();
cmdB.dispose();
//here again in first method
cmdA.text = do some thing using autoid retrieved from transaction t2
cmdA.executeNonQuery()
cmdA.commit()
connA.close();
这些都成功执行,但第一台服务器中没有数据,我使用了事务t1。