IBM大型机操作系统 学习笔记 联系客服

发布时间 : 星期一 文章IBM大型机操作系统 学习笔记更新完毕开始阅读129ce48a84868762caaed5ed

// SPACE=(TRK,(1,1)),UNIT=SYSDA #DD语句续行

PS: 注释有两种方法,记住了哦^_^

JOB语句:

语句格式://作业名 JOB 位置参数[,关键字参数][,关键字参数]...[注释说明] 作业名建议为USERID+数字或字符

[位置参数]

1、记帐信息:提供用户使用系统的合法性、机时及纸张收费管理等。 格式:([account-number][,accounting-information]...) account-number:用户帐号

accounting-information:附加记帐信息,如部门..等 //ST018A JOB (ST018,'6/7/2006',PGMBIN) //ST018B JOB ST018

2、程序员名:表示作业的所有者(owner)信息,长度不得超过20个字符 //ST018A JOB 2006,W.I.L.L.I.A.M //ST018B JOB 2006,WILLIAM

//ST018C JOB 2006,'WILLIAM''LIN' 例子:

全部位置参数: //ST018EXP JOB (20006,60),WILLIAM,CLASS=S,.... 缺省记帐信息: //ST018EXP JOB ,WILLIAM,CLASS=S,.... 不带位置参数: //ST018EXP JOB CLASS=S,....

[关键字参数]

1、ADDRSPC:指明作业 所需之存储类型。有两个子参数:VIRT(缺省)、REAL。前者表示作业请求页式存储,后者表示作业请求实存存储空间。

2、BYTES:指明打印作业的系统输出数据集的最大千字节数,并指出当超过所为最大字节数时系统对作业的处理方式。处理方式包括:CANCEL(取消且不转储)、DUMP(取消且转储)、WARNING(继续作业且发出警告信息)。类似BYTES(千数)的关键字参数有:CARDS(卡数)、LINES(行数)、PAGES(页数)。 3、CLASS:规定作业的类别,JCL可选的作业类别有36个,用字母A~Z、数字0~9表示。相同类别处于同一输入队列等待执行。

4、MSGCLASS:对作业日志(job log:与作业相关信息的记录)设置输出类别。类别种类和CLASS中的类别一样。

5、MSGLEVEL:控制JCL作业输出清单的内容。格式:

MSGLEVEL={[statements][,messages]}。其中,statements、messages的说明如下:

statements=0:仅打印出作业的JOB语句

=1:打印出作业中包括过程语句在内的所有JCL语句 =2: 打印出输入流中的所有控制语句

messages=0:仅当作业 异常终止时,才打印出有关JCL、JES、操作员及SMS的处理信息

=1:无论作业是否异常终止,都打印出有关JCL、JES操作员及SMS的处理信息。

例如://EXMP JOB ,MSGLEVEL=(2,1) //EXMP JOB ,JSGLEVEL=0 //EXMP JOB ,MSGLEVEL=(,0)

6、 NOTIFY:请求系统在后台作业处理完毕时给指定用户发信息。NOTIFY={USERID}

7、PRTY:为输入队列设置优先级。PRTY=priority。priority的取值范围:0~15(JES2)、0~14(JES3)。对于同一优先级的作业,采用FIFO的方法执行。 8、REGION:指定作业所需的实存或虚存空间的大小 REGION={valueK}

={valueM}

例子://ACCT1 JOB A23,SMITH,REGION=100K //ACCT2 JOB A23,REGION=2M

9、TIME:指定作业占用处理器的最长时间。当作业时间超过限制后,系统将终止该作业。

TIME={([minutes][,seconds])}

={1440} #无限制 ={NOLIMIT} #无限制

={MAXIMUM} #运行时间为357912分钟 10、TYPRUN:请求特殊的作业 处理

TYPRUN={COPY} #仅支持JES2;请求JES2将输入作业流直接拷贝的输出数据集进行处理。

={HOLD} #请求系统在执行前将其挂起,等待某特定事件发生。

={JCLHOLD} #请求JES2在JCL执行前挂起,直到操作员将其释放。

={SCAN} #只对作业的JCL进行语法检查,不执行也不分配设备。

11、(待续??)

EXEC语句:

//[作业名] EXEC 位置参数[,关键字参数]...[符号参数=值]...[注释]

[位置参数]

有两个位置参数,只能二选其一。

1、PGM:指明所要执行的程序名。该程序必须是PDS的成员或系统库、私有库及临时库的PDSE的成员。调用方法有直接调用和间接调用。 PGM={program-name}

={*.stepname.ddname}

={*.stepname.procstepname.ddname}

program-name:指明要执行程序的成员名或别名,程序名由1~8个字母或通配符开头的字符数字构 成。

*.stepname.ddname:表示要执行的程序名由本作业步前名为“ stepname” 的作业步内名为

”ddname”的DD语句的DSN参数决定。

*.stepname.procstepname.ddname:表示要执行的程序名由本作业步前名为“stepname”的作业步

里所调用过程名为“procstepname”的过程步中相应名为“ddname”DD语句的DSN参数决定。

2、PROC:指明作业步所要运行的过程名。格式如下: {RPOC=procedure-name} {procedure-name}

//SP EXEC PROC=PAYWRKS //SP EXEC OPERATE

procedure-name:调用的过程名可以是:编目过程的成员名或别名;由PROC语句定义的流内过程的过程名,该流内过程必须在本作业内且本作业步前定义。

[关键字参数]

P.S 作用范围仅限于本作业步,总的书写格式:关键字参数[.过程步名]=值 1、ACCT:指明作业步所需懂的一个或多个记帐信息子参数.格式:ACCT[.过程步名]=(记帐信息)

//STP3 EXEC PROC-=LOOKUP,ACCT=('/83468')

2、ADDRSPC:指明作业步所需之存贮类型,方法同JOB中的ADDRSPC参数. 3、REGION:同JOB语句中的REGION 4、TIME:同JOB中的TIME

5、COND:用于对先前作业步执行的返回码(return code)进行测试,以决定是否执行本作业步.当条件满足时(有一个满足即可)系统不执行本作业步,即跳过本作业步.格式如下:

COND[.过程步名]=(code,operator)

=((code,operator[,作业步名][,过程步名]) [,(code,operator[,作业步名][,过程步名])],...[,EVEN])

[,ONLY] COND=EVEN COND=ONLY

说明:最多可测试8个返回码,EVEN(ONLY)也算一个返回码的名额.code0用来与返回码的比较,取值范围0~4095。operator表示比较类型,GT(大于)、GE(大于等于)、EQ(等于)、NE(不等于)、LT(小于)、LE(小于等于)。EVEN表示无论先前作业步是否异常终止,本作业步都要执行(测试先哦)。ONLY表示只有先前作业步异常终止时,本作业步才执行(还要测试滴)。 //STEP2 EXEC PGM=DUMPINT,COND=((16,GE),(90,LE,STEP1),ONLY)

//STP4 EXEC PROC=BILLING,COND.PAID=((20,LT),EVEN), // COND.LATE=(60,GT,FIND),

// COND.BILL=((20,GE),(30,LT,CHGE))

6、PARM:用于向本作业步执行的程序传递变量信息。该程序必须有相应的指令接受这些信息。

PARM[.过程步名]=子参数

=(子参数,子参数) =('子参数',子参数) ='子参数,子参数'

//RUN1 EXEC PGM=APG22,PARM='P1,123,P2=5' #将参数P1、123、P2=5传递给APG22

//STP6 EXEC PROC=ASFCLGP,PARM.LKED=(MAP,LET)

# 将参数MAP、LET传递到过程ASFCLG中名为LKED的过程步

DD语句:

//[dd名 ] DD [位置参数][,关键字参数]...[注释] [过程步名.dd名] //[dd名 ] DD

[过程步名.dd名]

dd名不能与系统定义的dd名重复

[位置参数] 此三者取其一

1、*:开始一个流内数据。数据记录跟在DD语句之后,其第一、第二列不能是“//”或“/*”(因为这两个符号标记了流内数据记录的结束)。倘若数据记录需要以“//”开始,就必须以DATA参数代替*。 //INPUT1 DD * . . data . //INPUT2 DD .....

//STEP2 EXEC PROC=FRESH

//SETUP.WORK DD UNIT=3400-6,LABEL=(,NSL) //SETUP.INPUT1 DD *

. .

data /*