高手快来啊。关于在DB2两个实例间运用事务的方法.高分 大家好。。请赐教 我的前台是C#后台是DB2 当然后台是什么无关紧要。 我有两个数据库,分别都要写数据。。怎么实现他们之间的事务处理呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建立两个连接Conn1.StartTrans();Conn2.StartTrans();try{ 对两个数据库进行操作 Conn1.Commit(); Conn2.Commit();}catch{ Conn1.RollBack(); Conn2.RollBack();} 可是这样并不能保证数据一致性当Conn1.Commit()提交成功。。而Conn2.Commit();提交时发生并不预见的意外。。那么Conn1.RollBack()时是没用的啊。因为Conn1提交后是不能再回滚的。 wangxianzhi(hansha) : 一般情况下,如果SQL有错误,或者数据有错误,那么在对数据库操作时,就已经发声,Conn2.Commit();会100%成功。 特殊情况下,如CONN1提交成功后,突然网络断开,导致Conn2.Commit();提交不成功的几率非常小,因为,Conn2.Commit();这个动作会很快。 你可以判断下,看Conn1.Commit(); Conn2.Commit();把执行最快的放在后面,根据我的经验(在一个事务里操作2万多SQL),提交时间仍然小于0.1秒。另外,可以再优化下,针对Conn1提交成功Conn2提交失败做一个日志,方便以后维护。 我们以前就碰到这样的问题。而且一只没有解决。。在业务操作经常会发现数据的不完整让人非常头痛我的业务操作是不能让错误有可能的所以象你们讨论的这种情况。。虽然发生的机率不大。。但还是不小。。 如果要解决这个问题。。除了COM+之外我想不到其它办法。。而COM+在运行时速度有些慢而且环境要求高。。在我开发的机器上能通过。。到了工作站上就不能通过。。一只没有解决。。 dts,也以前也这个问题,用com+可以做 是否无法手动取消并行的 Task? 有些软件可以显示硬盘已使用XX个小时,哪位大侠知道如何读取? C#中按F1调用相应主题的帮助文档 datagridview 表头绑定一数组 推荐几个能实现在C#WinForm上画折线图的东东?? 这里有做工作流的么? 页码置中 如果实现odbc数据源自动注册 关于类的继承问题,谢谢 如何用C#实时获取CPU利用率! OLE自动化还有前途吗?? 如果要用.NET做游戏,是C#还是VC++.NET好?
Conn1.StartTrans();
Conn2.StartTrans();
try
{
对两个数据库进行操作
Conn1.Commit();
Conn2.Commit();
}
catch
{
Conn1.RollBack();
Conn2.RollBack();
}
提交时发生并不预见的意外。。那么Conn1.RollBack()时是没用的啊。因为Conn1提交后是不
能再回滚的。
一般情况下,如果SQL有错误,或者数据有错误,那么在对数据库操作时,就已经发声,Conn2.Commit();会100%成功。
特殊情况下,如CONN1提交成功后,突然网络断开,导致Conn2.Commit();提交不成功的几率非常小,因为,Conn2.Commit();这个动作会很快。
Conn2.Commit();
把执行最快的放在后面,根据我的经验(在一个事务里操作2万多SQL),提交时间仍然小于0.1秒。
另外,可以再优化下,针对Conn1提交成功Conn2提交失败做一个日志,方便以后维护。
在业务操作经常会发现数据的不完整让人非常头痛
我的业务操作是不能让错误有可能的所以象你们讨论的这种情况。。虽然
发生的机率不大。。但还是不小。。
如果要解决这个问题。。除了COM+之外我想不到其它办法。。而COM+在运行时速度有些慢
而且环境要求高。。在我开发的机器上能通过。。到了工作站上就不能通过。。一只没有解决。。