DB LUW 与 SAP LUW(一)

1名词解释

LUW:在SAP系统中 ,两个数据一致状态中时间间隔被称为LUW (Logical Unit of work)。每一个LUW都需要一个提交(Commit)或返回(Rollback)作为结束标志。如果以提交操作做结束则进行所有更新操作,而返回操作则取消所有的数据库表的更改。

DB LUW :DB LUW是底层数据库自身所提供的保持数据一致性机制,与sap无关,在一个数据库LUW 之间,数据全部更新或者取消所有操作。这是由数据库系统自动控制实现的。

SAP LUW: SAP LUW 是sap自己的一种一致性维护机制,一个SAP LUW 可以包含很多个对话步骤,即多个 DB LUW,通过SAP LUW 可以把多个DB LUW 进行捆绑,并保存整体初始状态,不进行真正的数据库修改,当一个SAP LUW 的最后一个DB LUW 结束时,在进行整体修改。或者整体取消操作。从而提供了多个对话操作过程中保持数据一致性的解决方案。

Transaction:一个Transaction即使用CODE启动一个应用程序。一个Transaction可以包含一个或多个SAP LUW,Whenerver the system reaches a COMMIT WORK or ROLLBACK WORKstatement that is not at the end of the last dialog step of the SAP transaction,it opens a new SAP LUW.


2问题提出

 

鉴于SAP对LUW的定义以及分类,在进行数据库操作时极有可能发生一些意想不到的情况,使得数据库存储的数据并不是我们想要的,而SAP系统还会存在着一些隐式提交干扰着我们,那么究竟什么情况下的数据才是我们想要的呢?请看下面的几个例子:

 Demo1在一个DB LUW中操作同一条数据可行么

DB <wbr>LUW <wbr>与 <wbr>SAP <wbr>LUW(一)

数据库无此数据,因为在同一个LUW里DML语句是按顺序执行的


 Demo2:一个单独的DML语句是一个DB LUW

DB <wbr>LUW <wbr>与 <wbr>SAP <wbr>LUW(一)

DELETE语句没有执行,因为它们在同一个LUW里,正好被ROLLBACK WORK语句约束

 Demo3LUW提交或回滚语句的管辖范围

DB <wbr>LUW <wbr>与 <wbr>SAP <wbr>LUW(一)

DB <wbr>LUW <wbr>与 <wbr>SAP <wbr>LUW(一)

REPORT程序内的所有DML语句都已被回滚,包括调用的FM内部的DML语句也被回滚,因为它们是在同一个SAP LUW里。

 Demo4DB LUWSAP LUW的界限

DB <wbr>LUW <wbr>与 <wbr>SAP <wbr>LUW(一)

DB <wbr>LUW <wbr>与 <wbr>SAP <wbr>LUW(一)

DB <wbr>LUW <wbr>与 <wbr>SAP <wbr>LUW(一)

 数据库中有三条数据:00010121、2123sds、aa010xyz

在一个数据库LUW之间,数据的全部更新或者全部取消操作是由数据库系统自动控制实现的。而在SAP系统中存在隐式提交,即某些语句或者行为会自动触发数据库LUW的提交,造成数据库数据的不一致性,使系统存在着一定的安全隐患。即仅利用DB LUW是不能解决所有的问题,因此SAP提供了一个自己解决LUW的机制——SAP LUW。


转载于:https://www.cnblogs.com/senlinmu110/p/3802102.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值