某些作业以以下消息结束。 "Profilexxxx 已发出受控关闭工作请求"。如何通过选择选项"4"检查这些作业是否已手动结束。 作业每天结束并重新启动。当我检查前一天的作业日志时,我可以看到消息CPC1125,当作业异常结束时,它是 cpc1126 和 CPC1235。
有几种方法可以结束作业。正常的方式是:
- 正常结束 - 程序正常结束,没有任何消息。
- 受控作业结束 - 通过在 WRKACTJOB 中的作业中获取 4 或调用 ENDJOB 来结束作业。
- 立即结束作业 - 通过在 WRKACTJOB 中执行 4 个作业或使用 OPTION(*IMMED) 调用 ENDJOB,作业结束。
- 子系统的受控端 - 通过调用 ENDSBS 结束运行作业的子系统。
- 子系统的立即结束 - 运行作业的子系统通过调用带有 OPTION(*IMMED) 的 ENDSBS 来结束。
- 程序失败。用户在消息上取 C 或 D。
还有其他人,但可能性较小。事实上,ENDSBS选项(*IMMED)也不是很可能,但很容易测试。
需要立即注意的一件事是,可以将作业配置为仅在作业异常结束时假脱机作业日志。在这种情况下,您应该只获取上述原因 6 的作业日志。否则,将在正在结束的作业的作业日志中找到以下内容:
- 正常结束 - 仅CPF1164结束代码为 0。作业日志中不存在转义消息。
CPF1164 完成 00 03/26/19 09:06:14.261295 QWTMCEOJ QSYS 0162 *EXT *N
消息 . . . : Job 274217/MMURPHY/MMURPHY 于 03/26/19 在 09:06:14 结束; .005秒使用;结束代码 0 .
- 受控作业结束 - 同样没有转义消息,但CPC1126将出现。结束代码在CPF1164上为 10。这将显示结束作业的用户配置文件。
CPC1126 完成 50 03/26/19 08:42:37.604265 QWTCCCNJ QSYS 0C74 *EXT *N
消息 . . . . : 作业 274196/MMURPHY/MMURPHY被用户 MMURPHY 结束。
原因 . . .. : 用户 MMURPHY 发出了受控的作业结束作业请求 274196/MMURPHY/MMURPHY。
CPF1164 完成 00 03/26/19 08:42:37.607135 QWTMCEOJ QSYS 0162 *EXT *N
消息 . . . :Job 274196/MMURPHY/MMURPHY 于 03/26/19 在 08:42:37 结束; 使用6.291秒;结束代码 10 .
- 立即结束作业 - 同样没有转义消息,但CPC1125将出现。结束代码在CPF1164上为 50。这将显示结束作业的用户配置文件。
CPC1125 完成 50 03/26/19 08:44:46.773821 QWTCCCNJ QSYS 0C74 *EXT *N
消息 . . .. : Job 274200/MMURPHY/MMURPHY 由用户 MMURPHY 结束。
原因 . . . .. : 用户 MMURPHY 发出了作业的立即结束作业请求 274200/MMURPHY/MMURPHY。
CPF1164 完成 00 03/26/19 08:44:46.774951 QWTMCEOJ QSYS 0162 *EXT *N
消息 . . . : Job 274200/MMURPHY/MMURPHY 于 03/26/19 在 08:44:46 结束; 使用5.661秒;结束代码 50 .
- 子系统的受控结束 - 没有转义消息,CPC1206将出现。没有迹象表明谁发布了ENDSBS。结束代码 10 在 CPF1164。
CPC1206 完成 50 03/26/19 08:52:59.936053 QWTMMTRS QSYS 0370 *EXT *N
来自用户 . . : QSYS
消息 . .. . : 子系统正在结束控制。
CPF1164 完成 00 03/26/19 08:52:59.939458 QWTMCEOJ QSYS 0162 *EXT *N
消息 . . . : Job 274207/MMURPHY/MMURPHY 于 03/26/19 在 08:52:59 结束; 使用16.004秒;结束代码 10 .
- 子系统立即结束 - 没有转义消息,CPC1207将出现。没有迹象表明谁发布了ENDSBS。结束代码 10 在 CPF1164。
CPC1207 完成 50 03/26/19 09:05:00.642584 QWTMMTRS QSYS 0370 *EXT *N
来自用户 . . : QSYS
消息 . .. . : 子系统立即结束。
CPF1164 完成 00 03/26/19 09:05:00.643785 QWTMCEOJ QSYS 0162 *EXT *N
消息 . . . : Job 274213/MMURPHY/MMURPHY 于 03/26/19 在 09:05:00 结束; 使用14.583秒;结束代码 50 .
- 程序
- 失败 - 在CPF1164之前会有转义消息,如果程序是 ILE RPG 程序,则可能是CEE9901,可能是其他消息,具体取决于异常结束的程序类型。 您可能会看到一条查询消息,回复为 C、D 或 F。这些都取消了程序,如果它是堆栈中的顶级程序,它将取消作业。但要小心,CL 程序允许 R 或 I 回复查询消息,这不会取消作业,而是重试或忽略失败的程序。因此,并非所有转义消息都会导致作业失败,只有未受监视的转义消息才会失败。令人惊讶的是,CPF1164的结束代码为 0,因为作业确实不会失败,但在处理堆栈中顶级程序发送的转义消息后,它会正常结束。
对于调用 ENDJOB 或 ENDSBS 的作业,也会记录这些日志,但同样,可能是作业配置为在成功完成时禁止显示作业日志,因此您可能看不到它。CPC1231 ENDJOB 消息,并显示已结束的作业。当用户对作业进行 4 时,会发生这种情况。
Message ID . . . . . . : CPC1231 Severity . . . . . . . : 00
Message type . . . . . : Completion
Date sent . . . . . . : 03/26/19 Time sent . . . . . . : 08:44:46
Message . . . . : ENDJOB started for job 274200/MMURPHY/MMURPHY.
Cause . . . . . : The End Job (ENDJOB) command is running for job
274200/MMURPHY/MMURPHY.
如果用户通过在命令行上键入 ENDJOB 或 ENDSBS 来结束作业,您将看到如下请求消息:
From . . . . . . . . . : MMURPHY Severity . . . . . . . : 00
Message type . . . . . : Request
Date sent . . . . . . : 03/26/19 Time sent . . . . . . : 08:52:57
Message . . . . : ENDSBS SBS(MMURPHY)
不幸的是,在子系统的情况下,没有迹象表明哪些作业已结束。