1     概述

前段时间在项目中碰到一个问题,地点物料0MAT_PLANT_ATTR属性主数据因为有两个多月没有做增量更新,导致在之后的每次增量抽取活动中因为抽取的数据量过大使得在源系统的进程中发生short dump。

发现在这问题后,为避免增量抽取的数据量过大,先给0MAT_PLANT_ATTR重新做了一次无数据传输的初始化和FULL REPAIR UPDATE,然后再重新再做增量抽取。但是发现在源系统端的数据抽取进程中还是发生了short dump,错误的原因也是一样要抽取的数据量过大,导致内存发生错误,如图1.2。

图1.2

为什么0MAT_PLANT_ATTR在做了初始化以后,在做增量抽取时还是会发生数据量过大导致内存溢出的错误呢,在网上查了相关资料以及给SAP发了
MESSAGE后得到了答案。原来在BW中有一部分主数据的抽取是基于ALE增量机制,该类型的增量数据保存在表BDCPV中,由字段PROCESS标识
数据是否已经抽取过,如图1.3所示。按正常情况,数据源做完初始化后,应该将初始化时间点前的所有数据都打上已处理标记,这样下次增量抽取时就可以避免
重复抽取这部份数据,但是显然SAP由于某些原因(应该算是SAP的一个BUG)忽略了这一点,导致数据抽取出现异常(当然一定要数据量够大时才会出现问
题)。这一类型的主数据增量不会保存在队列中,即虽然在RSA7中可以看到数据源0MAT_PLANT_ATTR,但是查不到任何数据,这一类数据源也不
支持重复增量。

2    
查看数据源的增量处理类型

在源系统端运行TCODE:
RSA2,可以查看该数据源是否支持ALE指针增量机制,怎么鉴别一个数据源所对应的消息类型呢,可以通过表ROOSGEN来查看。查到数据源对应的消息类型后,还需要查看该消息类型是否已经激活,可以通过表TBDA2查看。

3    
主数据和BDCPV之间的关系

以物料属性0MATERIAL_ATTR数据源为例,说明一下主数据更新和表BDCPV之间的关系。物料属性的更新在MM01中进行,当我们增加或修改了
某一个物料后,数据不但保存在MARA,而且还会将修改的数据保存到表BDCPV中,当我们在MM01中新增加一个物料后,表BDCPV中也增加了一条数
据记录,消息类型为RS0059(每个系统都有自己的消息类型,不是统一的),在CREATETIME为20091211103441时,表MARA也生
成了一条新数据(Change
ID为‘I’)。

物料属性0MATERIAL_ATTR数据源执行FULL UPDATE或DELTA PROCESS时,extractor
function module会使用不同的方法读取相应的数据,如图3.1所示,当是Full或Initial的时候,数据从Base
Table中读取,当是Delta时,数据从BDCPV中读取。

图3.1

4    
增量抽取出现错误时的处理办法

在其他类型的增量数据处理中,如果当前的增量处理出现失败的情况,一般的处理办法是将当前请求置红,将目标数据中的请求删除,这样在下次做增量抽取时会自
动重新抽取这次没有抽成功的数据。但是在基于ALE的增量抽取机制中不支持重复抽取,因此不能简单的置红删除。而是需要先将错误请求置绿,处理好
BDCPV中记录的标识后,再重新运行增量信息包。

BW基于ALE的主数据增量机制分析的更多相关文章

  1. linux内核3.4基于wakeup_source的autosleep机制分析

    点击打开链接 一:wakeup_source简介: linux 3.4内核PM使用了wakeup_source来保持唤醒状态,也就是keep awake.之前android一直是基于Linux加入了w ...

  2. 苏宁基于Spark Streaming的实时日志分析系统实践 Spark Streaming 在数据平台日志解析功能的应用

    https://mp.weixin.qq.com/s/KPTM02-ICt72_7ZdRZIHBA 苏宁基于Spark Streaming的实时日志分析系统实践 原创: AI+落地实践 AI前线 20 ...

  3. Linux mips64r2 PCI中断路由机制分析

    Linux mips64r2 PCI中断路由机制分析 本文主要分析mips64r2 PCI设备中断路由原理和irq号分配实现方法,并尝试回答如下问题: PCI设备驱动中断注册(request_irq) ...

  4. Android内存机制分析1——了解Android堆和栈

    //----------------------------------------------------------------------------------- Android内存机制分析1 ...

  5. Linux内核态抢占机制分析(转)

    Linux内核态抢占机制分析  http://blog.sina.com.cn/s/blog_502c8cc401012pxj.html 摘 要]本文首先介绍非抢占式内核(Non-Preemptive ...

  6. Linux x86_64 APIC中断路由机制分析

    不同CPU体系间的中断控制器工作原理有较大差异,本文是<Linux mips64r2 PCI中断路由机制分析>的姊妹篇,主要分析Broadwell-DE X86_64 APIC中断路由原理 ...

  7. 基于 JDK 的动态代理机制

    『动态代理』其实源于设计模式中的代理模式,而代理模式就是使用代理对象完成用户请求,屏蔽用户对真实对象的访问. 举个最简单的例子,比如我们想要「FQ」访问国外网站,因为我们并没有墙掉所有国外的 IP,所 ...

  8. Android内存机制分析2——分析APP内存使用情况

    上面一篇文章说了Android应用运行在dalvik里面分配的堆和栈内存区别,以及程序中什么代码会在哪里运行.今天主要是讲解一下Android里面如何分析我们程序内存使用情况.以便后续可以分析我们程序 ...

  9. Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL

    Linux 线程实现机制分析 Linux 线程实现机制分析  Linux 线程模型的比较:LinuxThreads 和 NPTL http://www.ibm.com/developerworks/c ...

随机推荐

  1. bootstrap中的Tooltips工具提示的使用问题

    在使用bootstrap中的Tooltips时,官方文档中的实例代码若直接放在.container 或 .container-fluid类中时,四个button悬停之后会把button之间的margi ...

  2. 关于mysql占用CPU过高,问题解决

    使用SHOW PROCESSLIST 查看 原因: 使用了 一个触发器 不断的去删除日志,保证每个用户的日志只有10条 去掉之后,CPU使用率从97% 降到了 %. 利用show columns fr ...

  3. python数据持久存储:pickle模块的基本使用

    经常遇到在Python程序运行中得到了一些字符串.列表.字典等数据,想要长久的保存下来,方便以后使用,而不是简单的放入内存中关机断电就丢失数据. 这个时候Pickle模块就派上用场了,它可以将对象转换 ...

  4. IOS笔记之UIKit_UIAlertView、UIActionSheet

    //首先必须继承协议 @interface TRViewController : UIViewController<UIAlertViewDelegate,UIActionSheetDelega ...

  5. Visual Stuido 在文件中查找不显示结果

    出现好几次了.解决方法如下: 注册表找到 HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InPr ...

  6. Rsync 3.1.0 发布,文件同步工具

    文件同步工具Rsync 3.1.0发布.2013-09-29 上一个版本还是2011-09-23的3.0.9 过了2年多.Rsync基本是Linux上文件同步的标准了,也可以和inotify配合做实时 ...

  7. 基于OWIN WebAPI 使用OAuth授权服务【客户端模式(Client Credentials Grant)】

    适应范围 采用Client Credentials方式,即应用公钥.密钥方式获取Access Token,适用于任何类型应用,但通过它所获取的Access Token只能用于访问与用户无关的Open ...

  8. vim和tmux主题颜色不一致问题

        没开tmux时使用vim 以及 开了tmux后使用vim 主题颜色不一致.随便打开一个.py文件,发现着色较深,非常影响阅读.   开始在.tmux.conf 中设置set -g defaul ...

  9. java web面试题,收集

    java面试题: http://www.codeceo.com/article/java-interview-question.html(很多题都很废) http://www.php100.com/h ...

  10. atitit.dw不能显示正确的百分比高度in dw的解决

    atitit.dw不能显示正确的百分比高度in dw的解决 div 设置35%的高度,三,不能正确的显示高度...环境dw cs6 但是设置161px奏能ok了...表明这个是dw的一个bug... ...