- 论坛徽章:
- 0
|
如何知道子系統(qinter)裡的job已經全部結束?
1)aeiou的做法是可行的,目前在我司生产系统中得到实际应用。通过运行一个CLP实现生产系统在线结束,其实质就是“把wrksbsjob 的结果输出到 *PRINT,然后再把用CPYSPLF 把 生成的SPLF COPY到一个文件里,再读这个文件来判断。”一般我们提交的JOB是有具体名称的,而且也比较容易找到规律去判断,读取前几行就大概知道结果了。
2)另外,我也提供一个思路。
不知道楼主提交在QINTER子系统下运行的JOB在结束后有没有在PF里头保存“状态标志”('Normal' or 'Abnormal')?如果有,那好办,我们可以写个简单的RPG,该程序通过读取这个PF中的“状态标志”来判断是否结束?然后再写个简单的CLP,通过CALL RPG来实现报警(拨打电话、发送中断模式消息等),然后把这个CLP通过ADDJOBSCDE提交在QBATCH里头运行,估算一下大概在QINTER里面运行的JOB结束所要的时间,然后以推后15-30分钟的时间启动这个在QBATCH里头的实现监控功能的CLP程序,这样就实现了监控作用。
该方法也同样对监控QBATCH里头的JOB是否正常结束有效。
3)另外,通过OS/400的API函数可能可以实现。通过“IBM技术支持中心”网站(http://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm),我们可以找到QUSLJOB这个API函数,这个API函数带有9个参数,其中含6.Job type(类型:QINTER-i,QBATCH-b)以及4.Status(状态),我们可以先判断类型为“i”,然后判断状态,返回一个表,这样应该可以实现所要的结果。
如果需要,请提供e-mail,我转发给你关于这个API函数的详细介绍。 |
|