数据库事务管理

一、什么是事务

对于一个软件系统来说,需要相应的数据资源(数据库、文件系统等)来保存系统状态。为了保证系统状态始终处于“正确”的状态,我们必须对数据访问操作进行一些必要的限定,以保证系统状态的完整性。事务就是以可控的方式对数据资源进行访问的一组操作。事务有4个限定属性,即ACID属性。


二、事务的家族成员

在一个典型的事务处理场景中,有如下几个参与者:

1、Resource Manager,简称RM,负责存储并管理系统数据资源的状态。数据库服务器、JMS消息服务器等都是相应的RM。

2、Transaction Processing Monitor,简称TP Monitor,负责在分布式事务场景中协调包含多个RM的事务处理。TP Monitor通常对应特定的软件中间件,如J2EE规范中的应用服务器就是TP Monitor的角色。

3、Transaction Manager,简称TM,它是TP Monitor的核心模块,直接负责RM之间事务处理的协调工作,并且提供事务界定、事务上下文传播等功能接口。

4、Application,以独立形式存在的或者运行于容器中的应用程序,是事务边界的触发点。


三、事务的分类

1、全局事务:整个事务处理过程中有多个RM参与,需要引入TP Monitor来协调多个RM之间的事务处理。TP Monitor将采用“两阶段提交(Two-Phase Commit)”协议来保证整个事务的ACID属性。

2、局部事务:当前事务只有一个RM参与其中。这种情况应用程序可以直接与RM打交道(无需TP Monitor参与),相应的RM都有内置的事务支持。这样可以极大的减少事务处理的复杂度,提高性能。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值