Update module V1 V2

news2024/12/24 11:32:52

原文: https://www.cnblogs.com/helileng/archive/2010/10/15/1852237.html

这是讲RFC V1 V2最清楚的一个帖子了
SAP中V1和V2的区别及各功能
SAP的进程种类分:前台进程、后台进程、打印进程、更新进程、队列进程

其中更新进程分两种,V1和V2,如下图显示:

在这里插入图片描述
更新方式决定了它的处理模式,首先在对话框程序中的所有V1的要求是可以独立的数据库LUW中。只有当他们成功地执行处理,才会触发独立LUWs V2的请求。

(→V1的- / v2更新阶段)

v2更新模式用于数据库链接到V1的变化(主要的变化),但不一定要在执行相同的DB LUW的变化(例如,统计更新)。

V1的更新模式,可重新启动或不重新启动。如果出现了更新错误,您可以手动重新启动该更新,使用事务SM13。这样做之后,已经清除了有问题的应用程序错误。 如果出现了错误,v2更新模式可以随时重新启动处理。

collective run是V2更新模式的一个特殊类型,所有的修改请求不直接被更新,而是在V1更新之后,但只有在收集程序RSM13005(总体规划前)被调用后。

下图是一般的V1和V2的更新请求工作原理
在这里插入图片描述
V1的请求是通过V1的更新模式创建的。对于同步或异步的V1更新模式是被创建在VBLOG表中,对于本地更新来说,V1的请求是保留在主内存中。而V2的请求总是存储在VBLOG表。

下图是更新的执行
在这里插入图片描述
V1的请求处理在一个V1的更新工作进程中作为一个独立的数据库LUW,如果V1的更新已成功,系统将删除V1的要求和所有的相关锁,设置一个DB Commit和触发器
在V2的更新

V2的请求也是执行在V2的工作进程中,也是独立的数据库LUW。如果系统中没有V2的更新进程,那么V2的更新会用V1的更新进程。如果V2执行成功,将删除VBLOG中的数据并执行DB COMMIT。V2的更新不会产生锁

如果V1的请求发生错误,所有的相关锁就会被删除,发生数据库回滚时,会给创建LUW的用户发送邮件,同时在VBLOG的标记为不正确的错误消息,V2进程不会被触发。

同样,V2也是这样。

更新中的锁设置
在这里插入图片描述
从程序使用_scope对话框创建锁定= 2(默认)被转移到V1的更新任务在提交工作(等待)。在V1的更新结束后,它们会自动删除,不论V1的升级成功或更新是否发生错误而终止
与终止消息的问题。所以锁不必须删除,不管在程序中还是在更新模式中。而V2是不会产生任何锁的。
在这里插入图片描述
每次变化更新到数据库中,记录被改变的物理数据库锁定到当前数据库的结束LUW中(提交或DB数据库回滚)。这同样适用,SELECT… FOR UPDATE的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/707937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2022吴恩达机器学习课程视频翻译笔记】2.4无监督学习-part-1

B站上面那个翻译我有点看不懂,打算自己啃英文翻译了(有自己意译的部分),然后懒得做字幕,就丢在博客上面了,2.2之前的章节结合那个机翻字幕能看懂 2.4无监督学习-part-1 After supervised learning, the m…

springboot项目外卖管理 day09-mysql主从复制以及nginx入门

文章目录 一、读写分离问题分析MySQL主从复制介绍 配置配置主库,我这里就用虚拟机上的mysql当主库了配置从库,我这里就用我的另一台克隆的虚拟机了 读写分离案例背景Sharding-JDBC介绍项目实现读写分离 二、Nginx简介Nginx的下载和安装安装过程&#xff…

物联网芯片

1、当前我的个人开源库基于STM32F103,开发环境基于Keil,操作系统基于FreeRTOS V9.0 2、基于官方标准固件库V3.5基础上开发的BSP驱动外设库。 3、当前完成的有BKP_BSP、DMA_BSP、EXTI_BSP、FSMC_BSP、GPIO_BSP、IWDG_BSP、I2C_BSP、RTC_BSP、SPI_BSP、U…

Postgresql源码(108)不同类型insert在parse阶段的差异分析

0 概述 分析三种类型的insert在parse的各个阶段的差异: insert into TAB_IS SELECT * FROM STUDENT a WHERE a.sno > ANY (SELECT b.sno from STUDENT b); insert into TAB_IS values(10, AAA); insert into TAB_IS values(20, CCC),(30, DDD),(40, EEE);不同i…

代码随想录再战day4

24 两两交换链表的节点 力扣 思路: 还是看了carl哥的视频讲解才写出来。有点难搞 首先 还是老样子 需要一个dummyhead虚拟头节点。 然后核心就是 我们要操作后面两个节点的时候 一定要移动到 这两个节点的上一个节点。 (来自代码随想录) 然后…

EasyFlash在GD32F303CC上面的移植

记录学习的过程,如果在GD32F303CC上面移植EasyFlash。关于EasyFlash的相关介绍和源码,请参考:https://gitee.com/Armink/EasyFlash 或者 https://github.com/armink/EasyFlash 主要记录移植过程中需要注意的点,移植还是比较简单的…

6.6 极重要的复习,权限与指令间的关系

权限对于使用者账号很重要,因为他可以限制使用者能不能读取/创建/删除/修改文件或目录。 一、让使用者能进入某目录成为“可工作目录”的基本权限为何: 可使用的指令:例如 cd 等变换工作目录的指令; 目录所需权限:使…

liunx安装git

liunx安装git : 提示:记录自己装git 过程 执行下边命令安装 yum -y install git 安装完查看是否安装成功 git --version安装路径默认在/usr/libexe 愉快开始使用git

帆软 FineReport 绘制漏斗图

七一建党节,祝党生日快乐! 夏日炎炎,周末在家,想起在用帆软做页面展示的时候,使用到了漏斗图,记录下来,方便查看。 以订单销量变化为例,分为五个阶段,商品浏览人数&#…

fastadmin给操作按钮添加权限菜单控制|新增权限控制菜单

1、在对应的控制器文件中,添加如下代码: $adminIds $this->getDataLimitAdminIds(); if (is_array($adminIds)) {if (!in_array($row[$this->dataLimitField], $adminIds)) {$this->error(__(You have no permission));} } 2、在对应的index…

Redis实战篇(三)

四.分布式锁 4.1.分布式锁概述 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程并行,让程序串行…

通过简数实现全网文章采集的方法简介

简数是一款全网文章采集工具,旨在帮助站长通过设置关键词来进行全网文章采集。然而,使用简数可能会有一些相对复杂的操作,导致站长在学习和使用过程中面临较高的学习成本,因为其中涉及到许多专业术语和功能的作用不明确。鉴于这一…

Unity - 搬砖日志 - UGUI合批优化 - Overlap(UI AABB 有重叠), Z != 0 照样合批的方案

文章目录 环境目的Screen Space - Overlay优化限制该方案起源 环境 Unity : 2020.3.37f1 Pipeline : BRP (另一个项目在 2021.1.xx 的 LTS 下的 URP 管线同样如此,目测:因为 UGUI 不受渲染管线切换而变化) 目的 便于索引&#…

IDEA启动Tomcat控制台乱码问题解决方法

最近项目需要用到Tomcat跑一个项目,但是开发Sprintboot项目久了,也很少用Tomcat,因为Springboot是集成Tomcat等中间件的,所以不需要下载Tomcat,好了,回归真题,本博客介绍跑Tomcat过程遇到的控制…

信道编码【编码、纠错检错】

差错控制的基本概念--数字信号在传输过程中,由于信道传输特性不理想及加性噪声的影响,不可避免地会发生错误。 可通过以下三方面的措施来减小误码率:1)提高信道容量;2)降低编码效率;3&#xff…

Binder系列--ServiceManager的启动

ServiceManager的启动 hongxi.zhu Android 13 主要流程: 1. 启动ServiceManager进程 ServiceManager是由init(pid 1)进程启动的 system/core/rootdir/init.rc on init......# Start essential services.start servicemanager //framework层使用start hwservic…

Linux | Ubuntu卸载QQ

Linux | Ubuntu卸载QQ 终端输入: dpkg -l| grep qq如下图,找到QQ文件: 删除命令: sudo apt-get --purge remove 文件名在终端输入: sudo apt-get --purge remove libqqwing2v5:amd64如下图删除成功

【Java程序设计实训】基于B/S架构的MyShop商城

MYSHOP商城 实验目的实验概述系统功能概述Myshop 商城概述系统开发分析功能列表系统用例图系统活动图 数据库设计运作界面展示用户管理模块新用户注册用户登录商城首页与用户退出 商品模块商品分页展示查看商品详情信息 购物车模块空购物车页面加入商品到购物车 订单模块提交订…

4.32UDP通信实现 4.33广播 4.34组播 4.35本地套接字通信

4.32UDP通信实现 ![在这 udp_client.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <arpa/inet.h>int main() {// 1.创建一个通信的socketint fd socket(PF_INET, SOCK_DGRAM, 0);if(fd -1) {…

springboot项目外卖管理 day08-缓存优化

文章目录 一、缓存优化问题说明环境搭建导入maven坐标配置yml文件设置序列化器&#xff0c;编写配置类 缓存短信验证码缓存菜品数据实现思路 SpringCacheSpring Cache介绍Spring Cache常用注解Spring Cache使用方式 缓存套餐数据实现思路 一、缓存优化 问题说明 环境搭建 导入…