Jcl 简明教程

JCL - EXEC Statement

每个 JCL 可以由多个作业步骤组成。每个作业步骤都可以直接执行一个程序,或者可以调用一个过程,该过程又执行一个或多个程序(作业步骤)。包含作业步骤程序/过程信息的语句是 EXEC statement.

EXEC 语句的目的是为作业步骤中执行的程序/过程提供所需信息。在此语句中编码的参数可以将数据传递给正在执行的程序,可以覆盖 JOB 语句的某些参数,并且可以在 EXEC 语句调用过程而不是直接执行程序的情况下将参数传递给过程。

Syntax

以下为 JCL EXEC 语句的基本语法:

//Step-name EXEC Positional-param, Keyword-param

Description

让我们了解以上 EXEC 语句语法中所用术语的描述。

STEP-NAME

这标识 JCL 中的作业步骤。它可以是包含字母数字字符的长度为 1 到 8 的字符串。

EXEC

这是将其标识为 EXEC 语句的关键字。

POSITIONAL-PARAM

这些是位置参数,可以是两种类型:

Positional Parameter

Description

PGM

这指的是将在作业步骤中执行的程序名称。

PROC

这指的是将在作业步骤中执行的步骤名称。我们将在单独一章中对其进行讨论。

KEYWORD-PARAM

以下是 EXEC 语句的各种关键字参数。您可以根据需求使用一个或多个参数,并且它们以逗号分隔:

Keyword Parameter

Description

PARM

用于向在作业步骤中执行的程序提供参数化数据。这是一个程序相关字段,没有明确的规则,只是如果 PARM 值包含特殊字符则必须将其包含在引号中。例如在下面给出的示例中,值“CUST1000”将作为一个字母数字值传给该程序。如果该程序是 COBOL 程序,则该程序可通过程序的 LINKAGE SECTION 接收 JCL 的 PARM 参数中传递过来的值。

ADDRSPC

这用于指定作业步骤是需要虚拟存储还是实际存储来执行。虚拟存储是可分页的,而实际存储不是,并且被放入主内存中以供执行。需要更快执行的作业步骤可以存储在实际存储中。以下是语法:*ADDRSPC=VIRT

REAL*如果未编码 ADDRSPC,则 VIRT 为默认值。

ACCT

Common Keyword Parameters of EXEC and JOB Statement

Keyword Parameter

Description

ADDRSPC

JOB 语句中编码的 ADDRSPC 会覆盖任何作业步骤的 EXEC 语句中编码的 ADDRSPC。

TIME

如果在 EXEC 语句中编码了 TIME,则它仅适用于该作业步骤。如果它同时在 JOB 和 EXEC 语句中被指定,则两者都会生效,并且可能由于其中任何一个的原因导致超时错误。不建议在 JOB 和 EXEC 语句中同时使用 TIME 参数。

REGION

REGION 如果在 EXEC 语句中编码,则仅适用于该作业步骤。JOB 语句中编码的 REGION 会覆盖任何作业步骤的 EXEC 语句中编码的 REGION。

COND

用于根据上一步的返回码来控制作业步骤执行。如果在作业步骤的 EXEC 语句中编码了 COND 参数,则 JOB 语句的 COND 参数(如果存在)将被忽略。使用 COND 参数可以执行的各种测试在条件处理中进行了说明。

Example

以下是带有 JOB 和 EXEC 语句的 JCL 脚本的一个简单示例:

//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
//      NOTIFY=&SYSUID
//*
//STEP010 EXEC PGM=MYCOBOL,PARAM=CUST1000,
//      ACCT=(XXXX),REGION=8K,ADDRSPC=REAL,TIME=1440