事务服务往往是使用企业服务的主要原因,这样你就不需要通过以编程的方式来实现事务。企业服务让你可以通过特性来使用事务。
本章首先对事务作了简单介绍,然后详细讨论了如何以编程的方式进行事务。有了这些知识后,你将看到由.NET企业服务提供的事务服务的好处。然后本章的讨论将转到如何使用企业服务的事务,以及如何使用Windows Server 2003带来的新特性。
具体地说,本章包含以下这些主题:
● 事务概览
● 手动事务
● 自动事务
● 无组件事务
● 事务隔离级别
Transaction Overview
事务概览
要想完全地理解企业服务提供的事务支持,先总体地了解一下事务的概念是重要的。
让我们从一个关于课程数据库和为学生登记课程的例子开始。如果有一个学生已经登记了《ADO.NET程序设计》的课程,由于他没有这门课程所需的预备知识,现在想改成
《.NET入门》。这样需要把他从第一门课的学生名单中移去,然后添加到第二门课的名单中。这些操作只要有一步执行失败,那其他的也都不应该执行。这里就需要有一个单独的事务。事务保证,除非所有的操作步骤都成功地完成,数据资源不会被永久更新。
一个事务由一组操作组成,这些操作要么全部成功,要么全部失败。如果一个事务内的所有操作都全部成功完成,事务的状态就是已完成(committed),并且更新过的数据已永久保存。但只要有一个操作失败,回滚(rollback)操作就会执行,结果是,数据仍旧会跟事务开始前一样。(译注:commit a transaction一般被翻译为提交一个事务,包括微软的文档。但是翻译成“完成”显然更符合语义,也更易于被读者理解。这本书打算把它都翻译为“完成”。)






