ADMIN_JOB_QUERY存储过程
SYSPROC.ADMIN_JOB_QUERY 存储过程显示作业的状态和完成信息。
环境
ADMIN_JOB_QUERY的加载模块DSNADMJQ必须位于APF授权的库中。 ADMIN_JOB_QUERY 在 WLM 建立的存储过程地址空间中运行,该 WLM 过程 STEPLIB DD 中的所有库都必须经过 APF 授权。
如果未设置 BPX.DAEMON.HFSCTL 设施类配置文件,则ADMIN_JOB_QUERY、DSNADMJQ的负载模块必须由程序控制。 有关如何定义DSNADMJQ进行编程控制的信息,请参阅安装作业DSNTIJRA。
授权
要执行CALL语句,包含CALL语句的程序包或计划的所有者必须具有以下一项或多项权限:
- ADMIN_JOB_QUERY存储过程中的EXECUTE权限
- 存储过程的所有权
- SYSADM 权限
语法
下面的语法图显示了调用此存储过程的SQL CALL语句:
选项说明
- 用户ID
- 指定查询作业的用户ID。
如果用户ID 为空,则密码也必须为空。 如果用户ID 和密码值为NULL,则登录过程使用该过程的主授权ID。
在以下情况下,您可以将此参数指定为空:
- 与存储过程地址空间关联的授权ID具有守护进程权限。
- 与存储过程地址空间关联的授权ID没有守护程序权限,但被授权给 BPX.SRV.userid SURROGAT类配置文件,其中 userid 是存储过程的授权ID。 有关 RACF® 安全管理员如何将授权ID与存储过程地址空间关联到SURROGAT类配置文件的更多信息,请参阅定义服务器以处理无需密码或密码短语的用户。
任何超级用户,只要被允许访问 BPX.DAEMON 设施类配置文件,即可获得守护进程权限。 如果未定义 BPX.DAEMON 设施类配置文件,则所有超级用户都具有守护进程权限。
这是一个VARCHAR(128)类型的输入参数。
- 密码
- 指定与输入参数 user-ID 关联的密码。
密码值作为有效载荷的一部分传递给存储过程,且未加密。 当使用参数标记时,它不会存储在动态缓存中。
如果密码为空, 用户ID 也必须为空。 如果用户ID 和密码值为NULL,则登录过程使用该过程的主授权ID。
在以下情况下,您可以将此参数指定为空:
- 与存储过程地址空间关联的授权ID具有守护进程权限。
- 与存储过程地址空间关联的授权ID没有守护程序权限,但被授权给 BPX.SRV.userid SURROGAT类配置文件,其中 userid 是存储过程的授权ID。
这是一个VARCHAR(100)类型的输入参数。
- job-id
- 指定查询的工作的工作编号。 可接受的格式包括:
- Jnnnnnnn
- 工作nnnnn
其中n 是0到9之间的数字。 例如: JOB01035
Jnnnnnnn 和 工作nnnnn 的长度必须均为8个字符。
这是一个类型为CHAR(8)的输入参数,不能为空。
- 状态
- 确定当前的工作状态。 可能的值包括:
- 1
- 工作已收到,但尚未运行(输入)。
- 2
- 作业正在运行(活动)。
- 3
- 工作已完成,有输出结果需要打印或检索(输出)。
- 4
- 找不到作业。
- 5
- 工作处于未知阶段。
这是一个整数类型的输出参数。
- 最大RC值
- 提供工作完成代码。
这是一个整数类型的输出参数。
- 完成类型
- 确定工作的完成类型。 可能的值包括:
- 0
- 没有完工信息。
- 1
- 工作正常结束。
- 2
- 工作以完成代码结束。
- 3
- 作业出现JCL错误。
- 4
- 工作被取消了。
- 5
- 工作异常终止。
- 6
- 转换器在处理作业时异常终止。
- 7
- 工作未通过安全检查。
- 8
- 任务在内存不足时失败。
完成型信息是IAZSSST映射宏STTRMXRC字段的最后6位。 此信息通过SSI 80返回。 更多信息,请参阅 z/OS® MVS 数据区中关于 SSST 宏的讨论。
这是一个整数类型的输出参数。
- 系统-晚会-代码
- 如果发生异常终止,则返回系统异常终止代码。
这是一个整数类型的输出参数。
- 用户密码
- 如果发生异常终止,则返回用户异常终止代码。
这是一个整数类型的输出参数。
- 返回码
- 提供存储过程的返回代码。 可能的值包括:
- 0
- 通话已成功结束。
- 4
- 该职位未找到,或职位状态未知。
- 12
- 通话未成功完成。 消息输出参数包含描述错误的消息。
这是一个整数类型的输出参数。
- 消息
- 包含描述存储过程所遇到错误的信息。 如果没有发生错误,则不会返回任何消息。
这是一个VARCHAR(1331)类型的输出参数。
示例
以下C语言示例展示了如何调用ADMIN_JOB_QUERY:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/******************** DB2 SQL Communication Area ********************/
EXEC SQL INCLUDE SQLCA;
int main( int argc, char *argv[] ) /* Argument count and list */
{
/****************** DB2 Host Variables ****************************/
EXEC SQL BEGIN DECLARE SECTION;
/* SYSPROC.ADMIN_JOB_QUERY parameters */
char userid[129]; /* User ID */
short int ind_userid; /* Indicator variable */
char password[101]; /* Password */
short int ind_password; /* Indicator variable */
char jobid[9]; /* Job ID */
short int ind_jobid; /* Indicator variable */
long int stat; /* Job status */
short int ind_stat; /* Indicator variable */
long int maxrc; /* Job maxcc */
short int ind_maxrc; /* Indicator variable */
long int comptype; /* Job completion type */
short int ind_comptype; /* Indicator variable */
long int sabndcd; /* System abend code */
short int ind_sabndcd; /* Indicator variable */
long int uabndcd; /* User abend code */
short int ind_uabndcd; /* Indicator variable */
long int retcd; /* Return code */
short int ind_retcd; /* Indicator variable */
char errmsg[1332]; /* Error message */
short int ind_errmsg; /* Indicator variable */
EXEC SQL END DECLARE SECTION;
/******************************************************************/
/* Assign values to input parameters to query the status and */
/* completion code of a job */
/* Set the indicator variables to 0 for non-null input parameters */
/******************************************************************/
strcpy(userid, "USRT001");
ind_userid = 0;
strcpy(password, "N1CETEST");
ind_password = 0;
strcpy(jobid, "JOB00111");
ind_jobid = 0;
/******************************************************************/
/* Call stored procedure SYSPROC.ADMIN_JOB_QUERY */
/******************************************************************/
EXEC SQL CALL SYSPROC.ADMIN_JOB_QUERY
(:userid :ind_userid,
:password :ind_password,
:jobid :ind_jobid,
:stat :ind_stat,
:maxrc :ind_maxrc,
:comptype :ind_comptype,
:sabndcd :ind_sabndcd,
:uabndcd :ind_uabndcd,
:retcd :ind_retcd,
:errmsg :ind_errmsg);
return(retcd);
}
输出
此存储过程返回以下输出参数,这些参数在选项描述中进行了说明:
- 状态
- 最大RC值
- 完成类型
- 系统-晚会-代码
- 用户密码
- 返回码
- 消息
