- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.事务处理基本原理
事务是一组作为一个单元成功或失败的相关任务。在事务处理术语中,事务要么提交,要么中止。若要提交事务,所有参与者都必须保证对数据的任何更改是永久的。不论系统崩溃或是发生其他无法预料的事件,更改都必须是持久的。
只要有一个参与者无法做出此保证,整个事务就会失败。事务范围内的所有数据更改将回滚到特定设置点。
事务将多个任务绑定在一起。例如,假设某个 ASP.NET 页执行两个任务。它首先在数据库中创建一个新表。接着调用专用对象收集和格式化数据,并在新表中插入数据。这两个任务是相关甚至相互依赖的,因此除非可用数据填充表,否则应避免创建新表。在一个事务范围内执行两个任务会加强两者之间的关系。如果第二个任务失败,则第一个任务回滚到创建新表前的点。
如此例所示,可将事务限制到一个数据资源,如数据库或消息队列。这些数据资源通常提供本地事务功能。这些事务由数据资源控制,管理起来轻松高效。
事务还可以跨越多个数据资源。分布式事务使您得以将出现在不同系统上的若干不同操作合并为单个的成功或失败操作。
2.ACID 属性
ACID 一词表达了事务在使命关键的应用程序中所起的作用。ACID 是由事务处理先驱者创立的,代表了不可分性、一致性、隔离性和持续性。
这些属性确保可预知行为的安全性,加强了事务作为“全或无”命题的作用,而此命题旨在有很多变量时减少管理负荷。
不可分性
事务是一个工作单元,在其中应用程序的 BEGIN TRANSACTION 和 END TRANSACTION 语句之间发生一系列操作。事务只执行一次,且是不可分的,即完成全部工作或者不做任何工作。
与某个事务关联的操作通常具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。不可分性消除了系统处理操作子集的可能性。
一致性
事务是一个完整的单元,因为它保持数据的一致性,将数据从一种数据一致状态转换到另一种数据一致状态。
一致性要求在语义上保留事务绑定的数据。某些维护一致性的责任由应用程序开发人员承担,他们必须确保应用程序已强制所有已知的完整性约束。例如,当开发用于转帐的应用程序时,应避免在转帐过程中任意移动小数点。
隔离性
事务是一个隔离单元,允许可并行执行的事务表现得像是在系统中运行的唯一事务。
隔离性要求即使同时可能有其他事务正在运行,每个事务也像是操作数据存储区的唯一事务一样。事务应从不查看其他事务的中间阶段。
当事务可序列化时将获得最高的隔离级别。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。
持续性
事务也是一个恢复单元。如果事务成功,则即使在提交后计算机立即崩溃,系统仍将保证更新该事务。专用记录允许系统的重新启动过程完成未完成的操作,以使事务可持续。
3.事务边界
事务边界定义事务的范围。事务边界内的对象共享一个公共事务标识符。
事务执行时,各种事务识别资源可以参与事务。例如,如果在事务范围内应用程序连接到数据库,则事务流向此资源并扩展事务边界以包含数据库服务器。可以设计跨越进程和计算机的事务。因此,事务边界是表示管理跨进程边界和计算机边界的一致性的抽象概念。
对事务边界的控制取决于为应用程序选择的事务模型:手动或自动。在手动事务中,用开始和结束事务的显式指令控制事务边界。从一个事务边界内可以开始第二个被称为嵌套事务的事务。直到所有从属事务提交,其父事务才提交。
自动事务基于每个组件的声明特性集管理事务边界。事务自动流向被指示参与事务的对象,并跳过被指示在事务外部执行的对象。使用自动事务模型时无法嵌套事务。
4.分布式事务
分布式事务处理 (TP) 系统旨在协助在分布式环境中跨异类的事务识别资源的事务。在分布式 TP 系统的支持下,应用程序可以将不同的活动合并为一个事务性单元,这些活动包括从 Microsoft 消息队列 (MSMQ) 队列检索消息、将消息存储在 Microsoft SQL Server 数据库中、将所有现有的消息引用从 Oracle 服务器数据库中移除,等等。因为分布式事务跨多个数据库资源,故强制 ACID 属性维护所有资源上的数据一致性是很重要的。
如后面各节所述,分布式 TP 系统由若干合作的实体组成。这些实体是逻辑上的且可驻留在同一计算机上或不同的计算机上。
事务处理 (TP) 监视器
TP 监视器是位于事务识别应用程序和资源集合之间的软件。它优化操作系统的活动,使网络通讯流畅,并将多个客户端连接到可能访问多个数据资源的多个应用程序。
您不是编写管理多用户的应用程序(分布式环境),而是编写由单个事务请求组成的应用程序。监视器根
文档评论(0)