首页 > 其他分享 >SAP Infinite Transaction with Update 的一个具体例子

SAP Infinite Transaction with Update 的一个具体例子

时间:2023-08-14 16:24:51浏览次数:29  
标签:事务 Transaction Update 更新 Infinite SCOPE 所有者

在计算机科学中,事务是一组操作的集合,这些操作要么全部成功执行,要么全部回滚,以确保数据的一致性和完整性。

某些企业管理软件的业务事务,被实现为 Infinite Transaction,以节省事务开始时的初始化时间

这种设计离不开乐观锁, 因为乐观锁在更改实际发生之前不会转换为排他锁(E 锁,全称为 Exclusive Lock). 锁的更新部分被传递到更新过程,并在更新完成后释放。 乐观锁的对话部分保持原样。

看个实际的例子。

  1. 首先调用锁定模式为O且_SCOPE=1的功能模块(1),因为 _scope = 1, 意味着该锁只有一个所有者:即上图所示的对话框所有者 E_1。

  2. 在事务过程中,首先请求 _SCOPE=2 的相同锁,并将另一个所有者 (E_2) 添加到其中 (2)。 这个锁现在有两个 owner.

  3. 如果要更改数据,则将锁的更新部分转换为E锁。 这是通过使用锁定模式“R”和_SCOPE=2 来调用 Enqueue Function Module 完成的。 此操作会产生两个锁(见下图):对话所有者的 O 锁和更新所有者的 E 锁。

然后调用更新任务 (4) 并执行 COMMIT WORK (5)。

COMMIT WORK调用更新任务,该任务继承E锁和更新所有者E_2。 同时,为对话事务 (E_x) 创建一个新的更新所有者。

更新结束时,这些锁将被释放。 现在,再次存在具有对话框所有者 E_1 但没有更新所有者的锁(参见下图)。

上图显示了本示例中这些操作设置了哪些锁、锁具有哪些类型以及它们拥有哪些所有者(带有累积计数器)。

锁定操作按时间顺序从上到下进行。

标签:事务,Transaction,Update,更新,Infinite,SCOPE,所有者
From: https://www.cnblogs.com/sap-jerry/p/17629012.html

相关文章

  • 【翻译】为什么我们需要极限和无穷小?(Why Do We Need Limits and Infinitesimals?)
    那么多数学课,没有任何上下文,就跳到极限,无穷小,非常小的数(T)。但是我们为什么要在乎呢?数学帮助我们模拟世界。我们可以把一个复杂的想法(一条蜿蜒的曲线)分解成更简单的部分(矩形):但是,我们想要一个精确的模型。矩形越细,模型越精确。从矩形构建的更简单的模型比直接处理复杂的无定形斑......
  • mysql在开启group_replication后,报错ERROR 3092,This member has more executed transa
    问题描述:mysql在开启group_replication后,报错ERROR3092,Thismemberhasmoreexecutedtransactionsthanthosepresentinthegroup,如下所示:数据库:MySQL8.0.27系统:rhel7.31、异常重现Slave01[(none)]>startgroup_replication;ERROR3092(HY000):Theserverisnotc......
  • 如何解决 yum update 报错
    yumupdate的时候遇到报错[root@shawnyan~]#yumupdateerror:rpmdb:BDB0113Thread/process2043/140494753589056failed:BDB1507ThreaddiedinBerkeleyDBlibraryerror:db5error(-30973)fromdbenv->failchk:BDB0087DB_RUNRECOVERY:Fatalerror,rundataba......
  • os: fedora38 系统更新脚本 - update
    os: fedora38系统更新脚本-update    一、update脚本内容(echo"PASSWORD" | sudo-S <command>)1#!/usr/bin/envbash23456echo7echo--update--8echo"password"|sudo-Sdnfupgrade-y;9echo"password......
  • apt update 失败
    报错:E:ProblemexecutingscriptsAPT::Update::Post-Invoke-Success'if/usr/bin/test-w/var/lib/command-not-found/-a-e/usr/lib/cnf-update-db;then/usr/lib/cnf-update-db>/dev/null;fi'E:Sub-processreturnedanerrorcode解决办法:aptu......
  • Updates were rejected because the remote contains work that you do
    今天在idea里面创建了一个项目,然后又在gitee中创建了一个项目,然后我打算把idea上面的那个小demo上传到我的gitee仓库中,结果一直报 Updateswererejectedbecausetheremotecontainsworkthatyoudo这样的错误,其中原因好像是我的仓库中包含了我的本地没有的文件,然后上网搜索......
  • 大型面试现场:一条update sql执行都经历什么?
    导读Hi,大家好!我是白日梦!本文是MySQL专题的第24篇。今天我要跟你分享的MySQL话题是:“从一条updatesql执行都经历什么开始,发散开一系列的问题,看看你能抗到第几问吧”换一种写作风格,自导自演面试现场!感觉这样还是比较有趣的,欢迎大家订阅我的MySQL专题,公众号持续更新中~点击阅读原文......
  • Microsoft SQL Server 2012 Updates / RTM (11.00.2100) / SP1 (11.0.3000.0 or 11.1.
    SQLSERVER2012SP4UpdateVersion:MSSQL2012SP4SECURITYUPDATE,Build:11.0.7507.2/11.4.7507.2,KB:KB4583465,ReleaseDate:January2021,Download:https://support.microsoft.com/en-us/topic/kb4583465-description-of-the-security-update-for-sql-serve......
  • sudo apt update 报错:库 “https://download.docker.com/linux/ubuntu \ Release”
    sudoaptupdate报错:错误:10https://download.docker.com/linux/ubuntu\Release404NotFound[IP:143.204.126.13443]命中:11http://ppa.launchpad.net/rock-core/qt4/ubuntufocalInRelease命中:12https://dl.google.com/linux/chrome/debstableInRelease正......
  • mongodb副本集模式的单机修改ip(update方式)
    环境:OS:Centos7mongodb:4.4.22 1.停掉当前运行的mongodb/usr/local/services/mongodb/bin/mongolocalhost:29001useadmindb.shutdownServer() 2.网络层面修改ip地址[root@localhostnetwork-scripts]#servicenetworkrestart 3.修改参数修改配置文件,注释掉副本集......