📅  最后修改于: 2023-12-03 15:16:38.941000             🧑  作者: Mango
JCL(Job Control Language)是操作系统IBM z/OS上用于控制作业(Job)的一种编程语言。JOB语句是JCL中的主要语句之一,用于定义和描述作业的执行要求和特征。
//jobname JOB (account-info),'job-parameters'
// job-control-statement
// [stepname EXEC PROGNAME,step-parameters]
// [//* comment-statement]
jobname:作业的名称,它唯一地标识作业,必须以字母开头,可带数字和特殊字符组成;
account-info:作业的帐户信息;
job-parameters:作业的参数,用于定义作业的特性,如作业的优先级、时间限制、运行条件等;
job-control-statement:指定作业控制信息,如设置作业的时间限制、设定系统选项等,如以下常见的语句:
//JOBCARD - 定义作业的整体特征,如作业的class、MSGCLASS、NOTIFY等;
//REGION - 指定作业运行的存储容量限制;
//TIME - 指定作业运行的时间限制;
//MSGLEVEL - 定义消息显示的级别;
//COND - 定义作业的运行条件。
stepname:作业的步骤名称,当作业中有多个步骤时,用来唯一标识每一个步骤;
EXEC:定义执行的步骤类型,如EXEC PGM表示运行一个程序;
PROGNAME:指定要运行的程序的名称;
step-parameters:定义当前步骤的特性和参数,如输入文件、输出文件、程序参数等;
comment-statement:注释语句,以//*
开头,用于对作业或步骤进行说明或解释。
下面是一个典型的JCL-JOB语句的示例:
//MYJOB JOB (ACCT123),'JOB TO PROCESS DATA'
//STEP1 EXEC PGM=PROGRAM1
//SYSOUT DD SYSOUT=*
//INPUT DD DSN=INPUT.DATA.SET,DISP=SHR
//OUTPUT DD DSN=OUTPUT.DATA.SET,DISP=(NEW,CATLG),
// SPACE=(TRK,(10,5),RLSE),
// DCB=(RECFM=FB,LRECL=80)
//* This is a comment statement
在这个示例中,我们定义了一个名为MYJOB
的作业,它具有帐户信息ACCT123
和作业参数'JOB TO PROCESS DATA'
。作业中只有一个步骤STEP1
,它使用程序PROGRAM1
来处理数据。步骤STEP1
定义了输入文件INPUT
和输出文件OUTPUT
,以及对输出文件的相关参数。最后,注释语句对作业进行了说明。
JOB语句是JCL中用于定义和描述作业的执行要求和特征的重要语句。它在JCL编程中起到了核心作用,要能够正确使用JOB语句,程序员需要了解JOB语句的基本格式和常用参数,以及如何组织作业的步骤和设置相关参数。通过合理使用JOB语句,可以有效地控制作业的运行,提高作业的执行效率和可靠性。
参考资料: