首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从.NET到DB2的分布式事务

从.NET到DB2的分布式事务
EN

Stack Overflow用户
提问于 2009-04-02 15:28:02
回答 1查看 1.9K关注 0票数 0

我有一个问题,在这里我必须调用AS400 db2来从我的.net调用一系列插入/更新存储过程,然后更新一些SQL2005表,如果AS400数据库中的一切正常进行的话。我使用的驱动程序没有分布式事务,所以我想知道您是否可以使用任何用于DB2的IBMs驱动程序来创建一个COM+/.NET组件,该组件将参与分布式事务。请让我知道,如果有任何人做过这样的事情,或任何指针将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-04-02 16:17:56

您使用的是哪个驱动程序?

IBM的DB2连接支持由Windows DTC管理的分布式事务。

微软的DB2驱动程序打包在Microsoft Host Integration Server中,也可以执行事务。

我从你那里听到了两件不同的事情。您想要做一个跨越SQL和DB2的事务。此外,您还希望构建一个参与分布式事务的组件。这些都可以一起完成,但前者不需要后者。

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

代码语言:javascript
复制
  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中进行分布式事务并不是必需的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/710211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档