事务隔离级别传播特性.doc

上传人:scccc 文档编号:12414793 上传时间:2021-12-03 格式:DOC 页数:2 大小:23KB
返回 下载 相关 举报
事务隔离级别传播特性.doc_第1页
第1页 / 共2页
事务隔离级别传播特性.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《事务隔离级别传播特性.doc》由会员分享,可在线阅读,更多相关《事务隔离级别传播特性.doc(2页珍藏版)》请在三一文库上搜索。

1、什么是事务?从四个关键概念谈起:原子性 所有操作要么都成功,要么都失败一致性 事务不能违反完整性约束(比如虽然事务还未提交,但仍需遵守各种约束规则, 这些规则是在事务提交之前而非在事务提交以后才生效! )隔离性 一个事务的效果, 不影响正在同时执行的其它事务, 那么,不影响的程度如何呢? 这个由隔离级别来定义,标准的隔离级别有下列四种:未提交读( read uncommitted ) 提交读( read committed ) 重复读( repeatable read ) 序列化( serializable ) 通过一些现象可看出隔离级别的效果:脏读 (dirty read) 当一个事务读取另

2、一个事务尚未提交的修改时,产生脏读。 不可重复读 (nonrepeatable read ) 同一查询在同一事务中多次进行,由于其他 提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。幻读 (phantom read ) 同一查询在同一事务中多次进行,由于其他提交事务所做 的插入操作,每次返回不同的结果集,此时发生幻像读。Dirty ReadNonRepeatableReadPhantom ReadRead uncommittedPossiblePossiblePossibleRead committedNot possiblePossiblePossibleRepeatabl

3、e readNot possibleNot possiblePossibleSerializableNot possibleNot possibleNot possible持久性 一旦事务成功完成,则数据必需保证已经正确的持久化(保存)JDBC 事务与 JTA 事务JDBC 事务只能支持一个数据库(单数据源) ,而 JTA 可以支持分布式的事务 (多数据源 )。JDBC 事务, 一般由数据库本身来执行提交或回滚操作(单阶段提交)。所有数据库都有它自己的事务管理器,这些管理器只能处理其自身的事务(称为本地事务) 。 而 JTA 则不同, JTA 要支持多个数据源,站在更高的角度上,提供一个“事务

4、处理 监视器( TPM )”来管理和协调这些数据源之间的事务操作。它必需执行两阶段提 交(2PC)协议。准备阶段 TPM 向所有 RM(资源管理器, 即数据库 )确认状态, 是否可以提交 或回滚提交阶段 TPM 确认提交之后,向所有 RM 发出提交指令(或回滚)TPM 本身会维护事务日志,以保证持久性(灾难恢复等)传播特性Not Supported 不支持,如果当前有事务上下文,将挂起当前的事务Supports 支持,如果有事务,将使用事务,如果没有事务,将不使用事务Required 需要,如果当前有事务上下文,将使用当前的上下文事务,如果没有,将创建 新的事务Required New 需要新的事务,如果当前有事务上下文,将挂起当前的事务,并创建新的 事务去执行任务,执行完成之后,再恢复原来的事务Mandatory 当前必须要有事务上下文,如果当前没有事务,将抛出异常Never 当前必须不能有事务上下文,如果有事务,将抛出异常

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1