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

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。
(这个是对于下面的DTP会等上面这个正确跑完后执行的情况)

这个我也是今天才完全理解透。
我们的是里面的子链DTP是正确的才能继续。
但是外面的主链作为大链的子链无论正确与否都跑。

我以前就是直接repair里面的DTP,或者是手动修复然后skip这个DTP。那么当然里面的所有的没跑完的DTP会继续往下跑。
但是问题还有,等所有这条子链的DTP跑完了,它会继续出来触发它下面的子链。

然而它下面的子链是已经被触发过的,因为它的触发条件是无论正确与否。

这就导致了,原先DTP出错的链,状态是错的,里面还有好多DTP没有跑。

但是它外面的下面的链,就算上面的链错了,它也已经跑了。

这时,如果我去修复或者跳过上面的链里面错误的DTP,就会导致这条链被再次执行,然后再触发一遍下面的链。

但是我如果去FM去改状态,那么我只改了子链里面的一个DTP的状态,整条链的状态我还是没有改的。它还是以前的错误的状态,也不会继续触发一个新的。

不过这个还是得下次实时的去看,如果我修复,那么RSPCPROCESSLOG里面会是什么样。

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.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaomici

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值