事务的主要特征是,任务要么全部完成,要么都不完成。在写入一些记录时,要么写入所有记录,要么什么都不写入。在写入一个记录时即使出现了一次失败,在事务中已写入的所有其他数据也会回滚。事务常用于数据库,但利用System.Transactions名称空间中的类,还可以对不稳定的、基于内存的对象执行事务处理,如对象列表。对于支持事务的对象列表,如果添加或删除了一个对象时事务处理失败,这个列表的操作会自动撤销。写入一个基于内存的列表与写入数据库一样,也可以在事务中完成。自从Windows Vista之后,文件系统和注册表也支持事务。在注册表中写入一个文件,并做出一些修改的操作可以通过事务来完成。
事务处理阶段:
事务处理分为激活、准备和提交3个阶段。·激活阶段:在这个阶段创建事务。为资源管理事务处理的资源管理器可以用事务进行登记。.准备阶段:在这个阶段,每个资源管理器都可以定义事务的结果。事务的创建者发出结束事务的指令时,就启动这个阶段。事务管理器给所有的资源管理器发出一条“准备”消息。如果资源管理器可以成功生成事务的结果,就向事务管理器发出一条“已准备好”消息。如果资源管理器未能准备好,就可以终止事务处理,发出一条“回滚”消息,强制事务管理器执行回滚操作。在发出“已准备好”消息后,资源管理器必须保证在提交阶段能成功完成工作。为此,稳定的资源管理器必须将准备状态的信息写入一个日志中,这样,如果在准备和提交过程中出现停电等故障时,就可以从该状态继续执行。提交阶段:当所有的资源管理器都成功准备好了,就开始这个阶段。即所有资源管理器都发出了“已准备好”消息。接着,事务管理器就可以给所有的参与者发送一条“提交”消息,以完成工作。资源管理器现在可以完成事务中的工作,并返回一条“已提交”消息。
ACID属性:
事务有一些特殊的要求,例如,事务的结果必须处于有效的状态。即使服务器断电了,也需要有有效状态。事务的特征可以用术语ACID 来定义, ACID 是Atomicity, Consistency, IsolationDurability的首字母缩写。Atomicity(原子性):表示一个工作单元。在事务中,要么整个工作单元都成功完成,要么都不完成。Consistency(一致性):事务开始前的状态和事务完成后的状态必须
事务的处理
最新推荐文章于 2024-08-20 17:35:10 发布