当前位置:网站首页>处理链中断后如何继续/子链出错removed from scheduling

处理链中断后如何继续/子链出错removed from scheduling

2022-07-07 10:37:00 xiaomici

1. 处理链中断后如何继续

首先有一个表:
RSPCPROCESSLOG 一看就知道这里面是process chain的log.
在这里插入图片描述
你这条处理链里面有好多个DTP,但是有个DTP出错了,那它这个状态就是R了。
如果这个链是必须得上面没错的跑完才执行,那这条链就会卡在这里。
自动repair后,链是会自己往下跑的。
但是如果你去手动修复,那之后怎么让这条链继续跑下去呢?
在这里插入图片描述
链是一个step一个step往下跑的。
在你处理链出错的那个DTP上右击message。
在Chain里面能看到Variant 和 Instance:
在这里插入图片描述
去到log表里查询,能看到TYPE等等。
手动修复完了之后,去跑这个FM :
RSPC_PROCESS_FINISH

把这条链的状态给改成G,让这条链能继续trigger底下的其他链。
在这里插入图片描述
总结一下,如果你手动修复了一个DTP,那为了让这条链从这个DTP再往下跑,就用上面这个FM。

2. 子链removed from scheduling

问题出在哪里?
当链执行的时候,后台有个job BI_PROCESS_CHAIN开始。
然后进到这条链里去了。这条链里有很多的DTP,接下来就是执行job BI_PROCESS_DTP_LOAD了。
在这里插入图片描述
这就能看到,DTP_OLAD就没执行起来。
为啥呢?正常的流程就是:

  1. remove from scheduling: 我也不知道为啥要remove先,但是它这是一整套流程
  2. 接下来就是出发了很多个DTP_LOAD的job
  3. 然后就是activate and schedule 这个chain,和第一步形成完整流程。等下次再跑就是还是被主链触发。
    那问题就在于,为什么底下的DTP_LOAD的这些job没有被触发起来?
    难道当时后台没有可执行的进程了?
    这个也不是说子链里面的DTP执行出错了,是它压根链子链都没启动起来,连个log都没有。
    在这里插入图片描述

一般的情况就是,这个处理链是没人改的。
但是可能里面的DTP由于改了转换,然后不激活了。这些在表RSTRAN和RSBKDTP里看对应的OBJSTAT就行。是不是INA
有可能是转换的A和M版本不一致?

那这时候咋办?修复不一致的A和M版本: SE38 RSTRAN_ROUT_RSFO_CHECK
激活M的转换和DTP:RSDG_TRFN_ACTIVATE

然后把问题处理链remove from schedule, 再reschedule一下。这就解决问题了。

但是如果不是以上问题。我还看到一种解释。
对这个历史悠久的解释,我持怀疑态度。
但是又好像有几分道理,待验证。

说法是,由于每个后台JOB都有一个ID。这个ID它是时间戳和两个数字 00 - 99
只有时间被计入ID,日期是不计的。

如果你有个每天固定时间点周期运行的处理链,那后台job可能会占满同一时间点的00-99
时间长了都占满了,那就没办法生成新的job了。
那就得让basis去定期删除已完成的后台job ID 。

我截个图就发现根本不是说的这样,都有Z了,说明是字符也有的。那就可能是00-00和AA-ZZ? 没空去查了,以后再查验吧。
不过reschedule一下应该就能解决了。吧。在这里插入图片描述
还是来查一下吧:
在这里插入图片描述
在这里插入图片描述
算了,不是这个:
看下下面这两个吧:
TBTCO - Job Status Overview Table
TBTCD - Job Log Directory
在这里插入图片描述

在这里插入图片描述
这咋这么多的?1296怎么来的?
0-9是10个数字,A-Z是26个字母。那就是36*36=1296啊
那就是说从00:05分11秒开始的所有ID都被用完了??这好像也说的过去。瞬间觉得说的有道理了。我看了一下,前后都占满了。那怎么删呢?
在这里插入图片描述
在这里插入图片描述
test 一下发现有这么多。勾掉test再来一次就删掉了。
在这里插入图片描述

在这里插入图片描述
然后就可以了。

或者呢,SM37去单个删你想删的。找到那个job,选中在命令行选job->delete.

原网站

版权声明
本文为[xiaomici]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_45689053/article/details/125618591