当前位置:  开发笔记 > 数据库 > 正文

从.NET到DB2的分布式事务

如何解决《从.NET到DB2的分布式事务》经验,为你挑选了1个好方法。

我有一个问题,我必须调用AS400 db2从我的.net调用一系列插入/更新存储过程,然后更新一些SQL2005表,如果AS400数据库中的所有内容都很好.我正在使用的驱动程序没有分布式事务,因此我想知道您是否可以使用任何IBM iSeries Drivers for DB2来创建将参与分布式事务的COM +/.NET组件.请让我知道,如果之前有任何人做过这样的事情或任何指针将不胜感激.



1> Cheeso..:

你在用哪个司机?

IBM的DB2 Connect支持Windows DTC管理的分布式事务.

Microsoft的DB2驱动程序(包装在Microsoft Host Integration Server中)也执行事务.

我听到了两件不同的事情.您希望执行跨越SQL和DB2的事务.并且您还想构建一个参与分布式事务的组件.这些可以一起完成,但前者不需要后者.

使用.NET 2.0中的System.Transactions类,您可以执行以下操作:

  TransactionOptions options = new TransactionOptions();
  options.IsolationLevel = IsolationLevel.Serializable;
  options.Timeout = TransactionManager.DefaultTimeout;
  using(var scope = new TransactionScope(TransactionScopeOption.Required, 
                          options, 
                          EnterpriseServicesInteropOption.Full) )
  {
      TransactionalWorkinDb2();
      TransactionalWorkinSql();
      scope.Complete();
  }

结果将是跨越DB2和SQL的分布式事务,但如果您看到我的意思,它不是参与分布式事务的组件.

另一种方法是使用EnterpriseServices/COM +模型来定义执行某些操作的组件,并将该组件标记为事务性.这也有效,但不需要在.NET中执行分布式事务.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有