列示管理任务调度程序中任务的状态

可以使用 ADMIN_TASK_STATUS 管理视图列示管理任务调度程序中任务执行的状态。

准备工作

  • The ADMIN_TASK_STATUS 管理视图是您第一次调用 ADMIN_TASK_ADD 过程时创建的。 您必须设置管理任务调度程序之后才能成功查询此视图。
  • 您必须对 ADMIN_TASK_STATUS 管理视图有 SELECT 或 CONTROL 特权。

关于本任务

执行任务时,管理任务调度程序在调用该任务的过程时会创建一个任务状态记录。 状态记录包含任务名称、任务标识、调用号、代理程序标识以及开始时间。 任务的状态设置为RUNNING. 执行任务后,将使用基于任务结果的值来更新状态记录中的其余字段。


限制

查询 ADMIN_TASK_STATUS 视图时,它将仅返回那些通过您的会话授权标识创建的任务。

过程

  1. 连接至该数据库。
  2. 对 ADMIN_TASK_STATUS 管理视图发出查询。
    例如:
    SELECT * from SYSTOOLS.ADMIN_TASK_STATUS
    提示: 您可以通过在 NAME 或 TASKID 列上连接 ADMIN_TASK_LIST 和 ADMIN_TASK_STATUS 管理视图的输出,使任务执行状态与任务定义相关。

结果

  • 如果调度程序无法开始执行任务,那么 STATUS 列包含NOTRUN. BEGIN_TIME 列指示应该何时开始执行任务, SQLCODE , SQLSTATE 和 SQLERRMC 列描述阻止任务运行的错误。
  • 如果调度程序已开始执行该任务,但该任务尚未完成,那么 STATUS 列包含RUNNING. BEGIN_TIME 列指示任务何时开始执行,并且 END_TIME 包含NULL值。 AGENT_ID 值提供了正在执行任务的代理程序的相关信息。
  • 如果任务执行已完成,那么 STATUS 列包含COMPLETED. BEGIN_TIME 和 END_TIME 列包含实际开始时间和结束时间。 SQLCODE、SQLSTATE、SQLERRMC 和 RC 列可能显示参考消息或错误消息。
  • 如果调度程序在执行任务期间已停止,那么状态仍为RUNNING直到调度程序重新启动。 当调度程序再次启动时,状态将更改为UNKNOWN,因为调度程序无法确定任务是否已完成。 END_TIME 指示管理任务调度程序检测到任务不再执行的时间。