嗯,系统下午要重启。别问为什么要重启生产系统。问就是另外一个问题。。。
但是彼时还有处理链要跑。那得中断下。
不中断会怎样呢?我的经验还没到那。。。
听说是这样的:处理链一直会是active状态(正在跑)。。。但是不会真正跑。。。
你得手动重新schedule一下时间。。。
那疑问就来了,schedule的job在重启后难道丢掉了?为啥不跑呢?难道就是因为以为处理链进程还没跑完,所以傻傻等着?
有待测试。
那么我们手动中断DTP进程,把它弄成红的,毕竟绿的不可能了。这也就是结束了进程的意思吧,那这样重启后系统就不会一直给处理链active的状态,导致跑不了下次了。
那么重启后需要重新schedule么?之前Schedule的job会不会掉了?这个我今天来看下。。。不过我觉得不会吧。job跟重启应该也没啥冲突。
好了,回到正题,处理链都是schedule好了的。一天一次的。
正在跑的,
怎么中断呢?
要来讨论怎么中断处理链,其实就是简单的几个步骤。
但是咱把这个逻辑理一理。为什么要理逻辑?
因为我自己傻傻分不清。😜
在开始之前,我们得先了解处理链和job。
处理链的schedule
一般处理链是干啥的呢,链,是的。本来人家叫流程链。也就是一连串的流程。最常见的就是DTP流程链。抽取完一个DTP再接着往下一个抽取。平级的不同数据源的DTP抽取完了,激活自己的DSO再往上DTP抽取到其他的DSO或者info provider。
其他的流程链还有执行一个程序program,进行数据抽取啥的。
对于一般的流程链呢,我们需要它定期执行的,就给它schedule一下,这时候就不是我们手工运行了。不是我们做,那谁做呢?你schedule了,其实是告诉系统,这个工作就交给你啦。你每天要帮我跑处理链哦。
这时候,系统会对你说,不行,我事情太多了。我每天要干好多事情,不同时间要干不同的事情,你得给我一个任务清单。我照着时间和任务紧急度来做。
嗯,这个任务清单就是job。系统每天有很多个job。在SM37里可以看到。传输门:job.
可以看到,有些job是SM36里面自己建的。告诉系统去干什么的。
但是当我们schedule了一个处理链,其实也是告诉了系统啥时候来帮我跑处理链。这个处理链的job是自动创建好了的。也就是系统自动创建了这个后台job。
也就类似于玩游戏的时候右边的任务列表。每一个job就相当于一个任务,job分发,也就是active了之后,process chain就会去执行了。相当于我们去执行任务。
这个后台job是啥呢?
到这里就不得不往下深挖了。虽然我们schedule了处理链,但是我们一般这个大的链下面还可能有子链,子链里面会有N个DTP。
这么多任务,后台这时,会把任务细化。
在SM37里看到,跟PROCESS有关的job是以下这样的。系统自建的。
那为啥是这样的?
因为后台JOB有命名规则。前缀是BI_****
跟处理链有关的呢,就是BI_PROCESS…
BI开头的都是系统自建的,你自己建一个BI开头的系统会给你删掉。
插播一个:
如何分析后台job和工作进程
也就是说咱知道了后台有这么多任务列表。那不能大家都卡点一起干。这样不是没进程么。
如果你看了JOB那篇,你就知道,A级JOB需要的进程最多。
大家如果都挤在一起。那不就性能变慢了么。都等进程。
为啥要分析
为了提升工作流程和系统性能。
如何来分析
首先来看后台JOB
BI后台管理,日志和工具:RSBATCH
这个底下,过去24小时,后台的JOB。
你能看到类型,状态。进程数。开始结束时间。message和parameter的大小KB。
JOB执行的服务器。谁执行的。
再来看看工作进程
开始之前,那啥是工作进程呢?
参见另外一篇》》》