ADMIN_TASK_UPDATE存储过程
ADMIN_TASK_UPDATE存储过程用于更新管理任务调度程序任务列表中的任务计划。 如果您要更新的任务正在运行,则更改将在当前执行完成后生效。
您必须指定要修改计划的任务的所有参数,即使这些参数自您使用存储过程 ADMIN_TASK_ADD 创建任务以来从未更改过。
环境
ADMIN_TASK_UPDATE在WLM建立的存储过程地址空间中运行,并使用资源恢复服务附件功能连接到 Db2。
授权
要调用此存储过程,您必须拥有 MONITOR1 权限。
任何拥有SYSOPR、SYSCTRL或SYSADM权限的用户都可以更新任何任务。 任何拥有此存储过程执行权限的用户都可以更新他们添加的任务。 如果您尝试更新其他用户添加的任务,输出中将返回错误。
语法
下面的语法图显示了调用此存储过程的SQL CALL语句:
选项说明
- 任务名称
- 指定要在管理任务调度程序的任务列表中更新的任务的唯一名称。 这是一个VARCHAR(128)类型的输入参数。
- 描述
- 指定分配给任务的描述。 这是一个VARCHAR(128)类型的输入参数。
- 开始时间戳
- 一个TIMESTAMP类型的输入参数,用于指定任务可以开始执行的最早时间。 此参数的值不能早于过去,也不能晚于 end_timestamp。
任务的开始执行取决于此参数和其他参数的定义:
- 开始时间戳的非空值
- 开始时间戳
- 如果时间点和触发任务名称为空,则任务执行从开始时间戳开始。
- 上次执行此任务后的间隔时间(分钟)
- 任务执行从开始时间戳开始。
- 下一个时间点定义为开始时间戳或之后
- 如果时间点不为空 ,则任务执行将在开始时间戳或之后定义的下一个时间点开始。
- 当触发任务名称在开始时间戳之后完成时
- 任务执行将在触发任务名称完成或开始时间戳之后开始。
- 开始时间戳的值为空
- 立即
- 如果时间点和触发任务名称为空,则立即开始执行任务。
- 上次执行此任务后的间隔时间(分钟)
- 任务执行从开始时间戳开始。
- 定义了下一个时间点
- 如果时间点不为空 ,则任务执行将在下一个时间点开始。
- 当触发任务名称完成后
- 任务执行将在触发任务名称完成时开始。
- 结束时间戳
- 一个TIMESTAMP类型的输入参数,用于指定任务可以开始执行的最新时间。 这个论点的价值不能在过去了,也不能早于开始时间戳。 如果参数为空,则任务可以无限期地继续按计划执行。
执行任务不会因结束时间戳而中断。
- 最大调用量
- 指定修改后的任务允许的最大执行次数。 此值适用于所有计划执行,无论它们是由事件触发、按时间间隔重复还是按时间点重复。 该值包括之前执行修改后的任务的结果。
如果最大调用次数小于或等于任务已执行的次数,则不会再次执行该任务。 要修改任务使其再次运行,必须将max-invocations 指定为NULL,或者指定为大于当前任务已执行次数的值。 此外,如果 max-invocations 、interval 、point-in-time 和 trigger-task-name 为空,则任务仅执行一次。
如果此参数设置为 NULL,则此任务可以无限次执行。 如果同时指定了结束时间戳和最大调用次数 ,则以先达到的限值为准。 例如,如果达到结束时间戳的值,即使任务执行次数尚未达到最大调用次数 ,也不会再次执行该任务。 同样,如果达到最大调用次数 ,即使未达到结束时间戳的值,也不会再次执行任务。
这是一个整数类型的输入参数。
- 时间间隔
- 定义重复性常规任务两次执行之间的时间间隔。 第一次执行发生在开始时间戳。
如果此参数设置为 NULL,则不会定期执行任务。 如果此参数包含非空值,则必须将时间点和触发任务名称参数设置为空。
这是一个整数类型的输入参数。
- 时间点
- 指定执行任务的一个或多个时间点。 如果此参数设置为 NULL,则任务不会在固定时间点进行调度。 如果此参数包含非空值,则参数interval 和 trigger-task-name 必须设置为NULL。
时间点字符串使用UNIX cron格式。 这种格式包含以下信息,以空格分隔:
- 给定分钟数
- 给定小时数
- 指定日期或每月的某几天
- 一年中的某个月或某几个月
- 星期几
对于每个部分,您可以指定一个或多个值和范围。
这是一个VARCHAR(400)类型的输入参数。
- 触发任务名称
- 指定任务名称,该任务完成后将触发此任务的执行。 任务名称 DB2START 和 DB2STOP 保留给 Db2 启动和关闭事件。 这些事件由调度程序处理,调度程序与正在启动或停止的 Db2 子系统相关联。
如果此参数设置为 NULL,则不会由其他任务触发此任务的执行。 如果此参数包含非空值,则参数interval 和 point-in-time 必须为空。
这是一个VARCHAR(128)类型的输入参数。
- 触发任务条件
- 指定在执行任务触发器-任务名称后,对返回代码进行比较的类型。 可能的值包括:
- GT
- 大于
- GE
- 大于等于
- 环境资格
- 等于
- LT
- 小于
- LE
- 小于或等于
- NE
- 不等于
如果此参数设置为 NULL,则触发任务执行,而不考虑任务触发器名称的返回代码。 如果触发器任务名称设置为 NULL 或为 DB2START 或 DB2STOP ,则此参数必须设置为 NULL。
这是一个字符型(CHAR)的输入参数(2)。
- 触发任务代码
- 指定执行任务触发器任务名称的返回代码。
如果执行此任务是由存储过程触发的,则触发任务代码包含触发存储过程必须返回的 SQLCODE,以便执行此任务。
如果执行此任务是由 JCL 作业触发的,则触发任务代码包含触发作业必须返回的 MAXRC,以便执行此任务。
要了解任务执行后的MAXRC或SQLCODE,请调用用户定义的函数DSNADM。 ADMIN_TASK_STATUS在MAXRC和SQLCODE列中返回此信息。
触发任务代码的值受以下限制:
- 如果触发任务条件为空,则触发任务代码也必须为空。
- 如果触发任务条件不为空,则触发任务代码也必须不为空。
如果触发任务条件和触发任务代码未设置为空,则它们用于测试执行触发任务名称的返回代码,以确定是否执行此任务。 例如,如果触发任务条件设置为“GE”, 触发任务代码设置为“8”,则只有当触发任务名称的上一次执行返回的MAXRC(对于JCL作业)或SQLCODE(对于存储过程)大于或等于8时,才会执行此任务。
这是一个整数类型的输入参数。
- db2-ssid
- 指定 Db2 子系统的ID,其关联的调度程序应执行该任务。
此参数用于数据共享环境,其中不同的 Db2 成员具有不同的配置,并且任务的执行依赖于特定的环境。 但是,在 db2-ssid 将阻止其他成员的管理任务调度程序执行该任务。 因此,只有在 db2-ssid 正在运行时,才能执行。
对于由触发任务名称中的 Db2 启动或 Db2 停止事件触发的任务,在 db2-ssid 指定一个值,仅在指定的 Db2 子系统启动或停止时执行任务。 如果没有给出值,则每个开始或停止的成员都会触发任务的局部执行,如果执行是串行的。
如果此参数设置为 NULL,则任何管理任务调度程序都可以执行该任务。
这是一个VARCHAR(4)类型的输入参数。
- 返回码
- 提供存储过程的返回代码。 可能的值包括:
- 0
- 通话已成功结束。
- 12
- 通话未成功完成。 消息输出参数包含描述错误的消息。
这是一个整数类型的输出参数。
- 消息
- 包含描述存储过程所遇到错误的信息。 该区域中的第一条消息(如果有的话)由存储过程生成。 Db2 生成的消息可能会遵循存储过程消息。
这是一个VARCHAR(1331)类型的输出参数。
输出
此存储过程具有以下输出参数,在选项描述中进行了说明:
- 返回码
- 消息
