在 作业调度程序 和 网格端点 处理批处理作业时,作业状态将在 作业调度程序 数据库中更新。该图显示状态之间的关系,下表列出可能的批处理作业状态以及触发状态间转换的事件。您可以在作业管理控制台中查看批处理作业的当前状态,也可以使用命令行或 Enterprise JavaBeans (EJB) 接口来检索该状态。如果批处理步骤初始化之前发生故障,那么批处理作业将进入“执行失败”状态。否则,它将进入“可重新启动”状态。
表 1. 批处理作业状态. 该表包括每个批处理的启动状态及其客户机命令、系统操作、特殊条件、数字返回码和结束状态。空白表单元格指示该启动状态没有客户机命令、系统操作、条件或返回码。启动状态 |
客户机命令 |
系统操作 |
特殊条件 |
返回码 |
结束状态 |
不存在(已延迟提交) |
submit |
|
|
|
等待提交 |
不存在 |
submit |
|
|
|
已提交 |
已提交 |
|
分派 |
|
0 |
正在执行 |
已提交 |
cancel |
|
|
0 |
可重新启动 |
正在执行 |
stop |
|
|
0 |
可重新启动 |
正在执行 |
cancel |
|
|
4 |
正在取消暂挂 |
正在执行 |
|
捕获到应用程序错误* |
|
4 |
可重新启动 |
正在执行 |
|
|
基础结构问题** |
4 |
可重新启动/未知 |
正在执行 |
suspend |
|
|
4 |
等待暂挂 |
正在执行 |
|
作业已完成 |
|
4 |
已结束 |
正在执行 |
|
|
作业设置中的基础结构问题*** |
4 |
可重新启动 |
等待暂挂 |
|
检查点 |
|
2 |
已暂挂 |
等待暂挂 |
|
|
基础结构问题** |
2 |
可重新启动/未知 |
已暂挂 |
resume |
|
|
5 |
等待恢复 |
已暂挂 |
cancel |
|
|
5 |
正在取消暂挂 |
已暂挂 |
|
|
基础结构问题** |
5 |
可重新启动/未知 |
等待恢复 |
|
已恢复作业 |
|
2 |
正在执行 |
等待恢复 |
|
|
基础结构问题** |
2 |
可重新启动/未知 |
可重新启动 |
restart |
|
|
8 |
已提交 |
正在取消暂挂 |
|
作业已取消 |
|
1 |
可重新启动 |
正在取消暂挂 |
|
|
基础结构问题** |
1 |
可重新启动/未知 |
可重新启动 |
purge |
|
|
8 |
不存在 |
执行失败 |
purge |
|
|
9 |
不存在 |
已结束 |
purge |
|
|
7 |
不存在 |
表 2. 批处理作业状态表的注释. 该表包括各个带有描述的注释。注释 |
描述 |
* 应用程序错误 |
批处理应用程序在运行时失败。网格端点已检测到此故障。 |
** 基础结构问题 |
发生了意外错误。
有关作业设置中的基础结构问题,请参阅以下示例。 |
*** 作业设置中的基础结构问题 |
当网格端点首次设置批处理作业时发生的意外错误。例如,如果数据库出现意外故障,那么作业将进入“执行失败”状态。- 在这种情况下,批处理作业是第一次运行,并且尚未处理任何步骤。在大多数故障情况下,批处理作业会进入“可重新启动”状态,这样如果故障情况得到解决,这些作业就可以从检查点位置重新启动。但是,在这个故障情况实例中,批处理作业进入“执行失败”状态,并且无法重新启动。因为此情况是作业设置场景,并且批处理作业尚未处理工作,所以批处理工作未因故障而丢失。
- 如果作业在端点时处于非最终状态,那么调度程序会在两种情况下使这些作业进入“未知”状态。这两种情况是端点的通信丢失,或端点停止运行。如果端点恢复正常运行,那么调度程序会将作业状态与端点同步。如果端点停止运行,那么所有批处理作业都将进入“可重新启动”状态,并且所有计算密集型作业都将进入“执行失败”状态。如果端点仅丢失与调度程序的通信而作业继续运行,那么调度程序将更新其状态。更新后的状态是当时在端点上运行的作业的最终状态。
|