事务基础知识

本文详细阐述了事务的基本概念及其在不同数据资源上的应用,强调了事务操作的重要性,并介绍了System.Transactions命名空间提供的事务管理解决方案,包括TransactionScope类的使用方法,以及如何自动管理事务以确保操作的原子性、一致性、隔离性和持久性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  事务将多个任务绑定在一起。若其中一个任务失败,则另外一个任务也不会执行,回滚整个执行了的操作。若要确保发生可预测的行为,所有事务都必须具有基本的 ACID 属性(原子性、一致性、隔离性和持久性)。

     事务操作可限定于单个数据资源(即,只对某一个种数据对象操作),如数据库或消息队列。在这种情况下,本地事务由 System.Transactions 所提供的可提升性能的事务管理器管理。 当这些事务由数据资源(数据库或消息队列)控制时,它们具有高效性并易于管理。

     事务也可跨多个数据资源(如,事务中操作消息队列和数据库)。 使用分布式事务可以将在不同系统上执行的多种不同的操作合并到操作中。 在这种情况下,事务由位于每个系统中的 Microsoft 分布式事务协调器 (MSDTC) 进行协调。

     在使用 System.Transactions 所提供的类开发事务应用程序时,不必考虑需要使用哪种事务,也不必考虑所涉及的事务管理器。 System.Transactions 基础结构会自动管理这些事宜。

     System.Transactions 命名空间中的类所提供的基础结构通过支持在 SQL Server、ADO.NET、消息队列 (MSMQ) 和 Microsoft 分布式事务协调器 (MSDTC) 中启动的事务,使事务编程变得简单和高效。System.Transactions 命名空间提供基于 Transaction 类的显式编程模型和使用 TransactionScope 类的隐式编程模型,在后一种模型中,事务由该基础结构自动管理。

     TransactionScope 类提供了一种简单方法,无需与事务自身进行交互,就可以在参与事务时对代码块进行标记。事务范围可以自动选择和管理环境事务。由于 TransactionScope具有简单易用性和高效性,因此在开发事务应用程序时优先使用该类。

void RootMethod()
{
     using(TransactionScope scope = new TransactionScope())
     {
          /* Perform transactional work here */
          SomeMethod();

          scope.Complete();
     }
}

void SomeMethod()
{
     using(TransactionScope scope = new TransactionScope())
     {
          /* Perform transactional work here */
          
          scope.Complete();
     }
}

转载地址: http://www.cnblogs.com/max007super/archive/2009/02/25/1398112.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值