- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Agenda Transaction在企业应用中的重要性(提及Sun ONE中的“DART”) Transaction的Definition和ACID特性 Transaction环境、运行时图 Transaction的分类 数据库事务、检查点、系统故障恢复 数据库的并发操作和隔离等级 数据库的加锁机制和死锁分析 开发过程中与事务相关的一些典型错误 NC开发中事务的缺省约定 NC开发中事务编程的注意点 使用中间件及数据库的注意事项 Transaction在企业应用中的重要性 保证数据的可靠性; 在并发操作时保证数据的可并发操作性,并按照预定的策略保证在并发操作过程当中的数据正确性; 保证具备事务相关特性的数据操作之间的一致性; 是所有Critical Business Application的技术前提; Sun ONE中的“DART” What’s Sun ONE? ONE = J2EE + + [= Open Net Enviroment(Proposed by Sun)]; Sun ONE = Sun’s implementation of J2EE + +; What’s DART? Sun 认为的所有企业应用的四个核心要素; Data:数据;企业的一种资产,是企业IT应用的基础和前提,可以通过Data Mining等手段来实现其附加价值; Applications:应用;企业的IT实际应用软硬件环境; Reports:报告;企业数据的View,一般用于直接地反映某个特定的问题; Transactions:事务;企业Critical应用的关键,保证数据的安全,可靠; Transaction ’s Definition 事务是作为单个逻辑工作单元执行的一系列操作。当事务结束时,这些操作的结果要么都完成,被接受,要么全被取消。事务具备ACID四个特性。 一、原子性(A:Atomicity) 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 一个事务中的操作不可能只有一部分被最终提交; 一个事务中的操作也不可能只有一部分被最终回滚; 一个事务当中的临时数据是不可直接查看的,除非是通过程序调试的方式; 二、一致性(C:Consistency) 事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。 事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。 三、隔离性(I:Isolation) 由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。 事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。 该特性也称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。 四、持久性(D:Durability) 事务完成之后,它对于系统的影响是永久性的。 该修改即使出现系统故障也将一直保持。 Transaction环境的构成 Resource 资源,一般指的是数据库的连接,Connection; Resource Manager 资源管理器,这里指 JDBC Driver; Application Server 应用服务器,这里指EJB Server; Transaction Manager 事务管理器,负责EJB中事务的运行管理; Transaction Application 事务应用程序,如EJB Bean,Client; Transaction Manager的运行时图 一般Transaction的分类 按照参与事务的资源数: Local Transaction Global Transaction 按照事务中是否有嵌套: None-Nested Transaction Nested Transaction Local Transaction 当Application开始一个数据库Transaction时,如果这个Transaction中只有一个Connection(Resource)或资源管理器(Resource manager),Application通过commit()、rollback()这两个方法来直接控制Transaction,这样的事务称为局部事务(Local transaction); 该类型的Transaction也称为Flat transaction(平板型事务);是我们NC中所采用的事务模式; Local Transaction示意图 Global Transaction 是在一个分布式事务处理系统中,由两个或两个以上的资源管理器所共同执行的单位操作; 系统依靠外部的事务
文档评论(0)