处理链断了,一直是黄灯状态,但是没有出错,下层链无法继续往下执行.
或者链内部的DTP没有往下一个执行.
这时候去ST22发现,在往下个处理链执行的时间节点出现了一个系统dump.
咋回事呢?
不知道.显示是DTP出错了…ABAP program是SAPLRSMDATASTATE
SAP的解释是:在lock manager里,DTP是隐式实例,因此在Check_Tstate检查后,确定后续不继续执行.
这啥意思呢?就是没找到它上面的DTP已经执行完的请求?
然后它还让我们去检查RSMDATASTATE这个表:
要确保以下四个字段都是0.不是0要改成0…
但是这种情况只针对于DTP的对象不是info cube的,因为DSO或者信息对象是没有聚集和压缩的,所以这几个值只能是0. 如果不是0就会由于不一致导致dump.
但是这只是解决不出现dump了.好像.
那怎么让处理链继续往下跑呢?
处理链相关表
RSPCPROCESSLOG
RSPCLOGCHAIN
如何继续执行处理链
从上面的表可以看出RSPCPROCESSLOG给出了处理链的日志。那这里面有啥呢,log_id啥的,变量实例啥的。
在instance后面一列有个状态:正常是G:就是成功了。
那怎么去找你的处理链的某个process是啥状态呢?
处理链日志上右键display message:
找到chain下面的变量和实例。
copy到表里:
看到表里的状态并不是G这里的R是个例子。
那怎么让处理链继续往下跑呢?
这时候要去se38:RSPC_PROCESS_FINISH
填入在表中获得的logID等等,然后一定把状态改成G,最后执行。然后链就会往下执行了。
如何删除处理链日志表的内容
到这里咱首先得回归原始:
到底啥是处理链:简单点最好,就是一系列加载数据的操作流程。为了给报表最新的数据。(解释了等于没解释)
这个链呢,按咱需要可以设置周期:一天一次拉,一天几次啦,一周一次拉,一月一次拉,或者你自己设定特殊时间。
那你这个处理链执行肯定会有日志的。能方便你进行运行时间分析。
这个日志表呢:
RSPCLOGCHAIN:交叉表日志ID和链ID
RSPCPROCESSLOG:链流程日志
RSPCINSTANCE:一般实例
RSPCINSTANCET:一般实例文本
由于你每天都跑好多链,所以这个日志表每天都有好多数据进去,要占用数据库好多空间。虽然这些日志也是蛮重要的,但是定期清理释放空间也是相当重要的。
删除链日志
report:RSPC_LOG_DELETE
一般都把忽略错误勾上,然后CHAINID要填。CHAINID就是你的链的技术名。
logid就是你链开始后生成的。
日期选择那里,从哪天到哪天,最后到的那天也会被包括,就是被删除日志。
删除链实例
啥叫这个链实例?
就是你每条链每次跑都会生成一个instance啊:
这个内容保存在RSPCINSTANCE和RSPCINSTANCET里。
我们需要用这个report:RSPC_INSTANCE_CLEANUP来删除这些
在哪天之前的,选中下面第一个不同时跑处理链:来直接删除而不跑处理链,一般肯定都选。
选中第二个来删除日志,一般也选。
以上两个report就来删除处理链执行过程中的旧的日志表了。
一般每天,每周跑的,超过三个月的日志就要删了。
一般每月跑的,半年就能删了。当然如果你数据库够大,那随意。