tceic.com
学霸学习网 这下你爽了
广告
当前位置:首页 >> IT/计算机 >>

JCL语言


JCL语言

2012/3/13

Template Documentation

1

目录
? ? ? ? ? ? ? ? ? 什么是JCL 写第一个JCL JOB语句 EXEC语句 DD语句 JCL 过程 MVS Utilities JCL的高级用法 参考资料

2012/3/13

Template Documentation

2

什么是 JCL
? JCL (Job Control Language):顾名思义,是用来控制系统处理作 业、请求运行作业所需资源的一门语言。

– 为了在MVS上调用程序,必须要使用JCL;

– 有些时候,看上去好像没有使用JCL,背后实际上在使用JCL。 (例如: Logon Procedure, Start Procedure)

2012/3/13

Template Documentation

3

从“1”开始,写一个JCL(1/2) 1”开始,写一个JCL(1/2) 开始
? 记住以下的内容,大概足够了
//jobname JOB MSGCLASS=H,CLASS=A //stepname EXEC PGM=lmodname,PARM='~' //STEPLIB DD DISP=SHR,DSN=lmodlib //SYSUDUMP DD SYSOUT=* ← 如果在LINKLST中,没有包含lmodlib时,需要指定 ← 在ABEND的时候,MVS输出時Dump时,需要指定

? 顺序调用多个程序时,有几个程序,就写几次EXEC。最多可以写 255 个EXEC; ? 还可以根据前面程序的返回码,判断执行或不执行。以前,使用 EXEC的COND=参数;现在,IF~THEN~ELSE~ENDIF(这个问题放在高 级用法中讨论…)

2012/3/13

Template Documentation

4

从“1”开始,写一个JCL(2/2) 1”开始,写一个JCL(2/2) 开始 JCL
? 最起码,记住以下的内容
//jobname JOB MSGCLASS=H,CLASS=A //stepname EXEC PGM=lmodname,PARM='~' // ← 一行只含有'//',表JCL结束,剩余的JOB被忽略。

? PARM= 应指定什么呢?→ 因lmodname而不同,参考相应的手册 ? DD 应指定什么呢? → 因lmodname而不同,参考相应的手册 ? DD:STEPLIB 应指定什么呢?→ 在 LNKLST中没有包含lmodlib的时候 须指定。D PROG,LNKLST 可以列出所有的 LNKLST。

2012/3/13

Template Documentation

5

显示 D PROG,LNKLST 的结果(1/2)
? 可参考“SYS1.PARMLIB(PROGSL)”
D PROG,LNKLST CSV470I 19.03.40 LNKLST DISPLAY 446 LNKLST SET IPL LNKAUTH=LNKLST ENTRY APF VOLUME DSNAME 1 A DMTRES SYS1.LINKLIB ← IEBGENER 在SYS1.LINKLIB 内存在,所以不用 STEPLIB 2 A DMTRES SYS1.MIGLIB 3 A DMTRES SYS1.CSSLIB 4 A DMTRES SYS1.CMDLIB 5 A DMTRES SYS1.SAPPMOD1 6 A DMTRES SYS1.SHASLINK 7 A DMTRES SYS1.SHASMIG 8 A DMTRES SYS1.NFSLIB 9 A *SMS* IOA.SIOALMOD 10 A DMTRES CEE.SCEERUN 11 A DMTRES GIM.SGIMLMD0 12 A DMTRES ISP.SISPLOAD 13 A DMTRES ISP.SISPSASC 14 A DMTRES ISF.SISFLPA 15 A DMTRES ISF.SISFLOAD 16 A *SMS* RMF.SERBLINK 17 DMTRES HLASM.SASMMOD1 18 A *SMS* DFSORT.SICELINK

2012/3/13

Template Documentation

6

显示 D PROG,LNKLST 的结果(2/2)
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 A A A A A A A A A A A A A A A A A A A A A A A A A A *SMS* *SMS* *SMS* *SMS* *SMS* DMTRES *SMS* *SMS* *SMS* *SMS* *SMS* *SMS* *SMS* *SMS* *SMS* *SMS* *SMS* DMTCAT DMTCAT DMTCAT DMTCAT DMTCAT DMTCAT DMTCAT DMTCAT DMTCAT FFST.SEPWMOD2 CBC.SCBCCMP CBC.SCLBDLL SOM.SGOSLNKL DCF.DCFLOAD TCPIP.SEZALINK BOOKMAN.SEOYLOAD GDDM.SADMMOD DFS.SIOELMOD FIREWALL.SICALMOD LDAP.SGLDLNK SSL.SGSKLOAD TEXTSRCH.SIMOMOD1 TMEFW.SFMEMOD1 DITTO.SDITMOD1 CB390.SBBOLOAD CB390.SBBOLD2 CENTER.LINKLIB LNKLST.CICSTS.V1R3M0.CICS.SDFHLINK LNKLST.CICSTS.V1R3M0.CPSM.SEYULINK LNKLST.DB2.V6R1M0.SDSNLINK LNKLST.DB2PM.V6R1M0.SDGOLINK LNKLST.MQM.V2R1M0.SCSQLINK LNKLST.ATC.V2R1M0.SATGBMOD LNKLST.FAULTANL.V1R1M0.SIDIMOD1 LNKLST.XCM.V1R1M0.SGXTLINK

2012/3/13

Template Documentation

7

动手写一个自己的JCL动手写一个自己的JCL-IEBGENER(1/2) JCL
? IEBGENER 从DD:SYSUT1 “GET”,向DD:SYSUT2 “PUT” 的工具。属于DFSMS的一 部分。可参考 DFSMS 手册 "DFSMSdfp Utilities"
00010025 00020000 00030000 00040000 00100045 00110045 00120045

//HANGENER JOB MSGCLASS=Z,CLASS=A //GENER EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=SAILP06.EXAM.JCL(#COMP) //SYSUT2 DD SYSOUT=A //SYSIN DD DUMMY //

? ? ? ?

SAILP06.EXAM.JCL(#COMP)的内容,被输出到SYSOUT SPOOL(output class='A')。 DD:SYSPRINT 用来输出IEBGENER的执行结果。 DD:SYSIN 用来指定 IEBGENER 的控制语句。这个例子中,没有必要指定控制语句, 所以写成 DUMMY。 注意: DD:SYSIN 是控制语句;DD:SYSPRINT 输出执行的结果;DD:SYSUT1拷贝数 据到 DD:SYSUT2。这些都是IEBGENER的要求,而与JCL的要求无关。

2012/3/13

Template Documentation

8

分解Job Control Language

DD
INPUT

JOB EXEC
PROG1 PROG2 PROG3

DD
OUTPUT

INPUT

OUTPUT

INPU T

OUTPUT

2012/3/13

Template Documentation

9

JOB 语句
? 表示job的开始 ? 定义 job 和 job 相关信息,以方便系统了解 –ACCOUNTING 信息 –作成者的名字 –Class –运行时分配的内存 –测试条件 注意: 1. 一个job有且只有一个 JOB语句, 并且是每个job的第一个 JCL 语句 . 2. 在同时提交多个job的JCL中,JOB语句也表示前一个job的结束。

2012/3/13

Template Documentation

10

JOB语句的语法
//jobname JOB positionals,keywords

//TEST1 JOB (768,28), ‘T.DAVIS’, MSGLEVEL=(1,1),CLASS=A

ACCT INFO(1-142)

PGMR NAME(1-20)

2012/3/13

Template Documentation

11

JOB 语句的参数(1/2)
? 位置参数(positional parameter)

– ACCOUNTING 信息( Accounting Information) 最大长度142个字符。用省略号[’ ’] 或圆括号[()]括起来 – 作成者的名字(Programmer Name) 最大长度20个字符。含特殊字符时,需用省略号[’ ’]括起来

2012/3/13

Template Documentation

12

JOB 语句的参数(2/2)
? 关键字参数(keyword parameter)
– CLASS – MSGCALSS – MSGLEVEL – NOTIFY – REGION – …… 把job分配给一个jobclass,jobclass必须在JES中定义 把job log 分配给一个output class. 显示放到job log中的信息 job完成后,通知给哪个TSO用户 给job指定最大的虚拟内存大小

2012/3/13

Template Documentation

13

JOB 语句举例
? ? ? ? ? ? //TEST2 //$UPDATE //SIMPLE //SYSTEM //SUBMIT //SUBMIT JOB (DEPT378,399216), LEON, CLASS=T JOB DEPT378, TOM, CLASS=M, MSGLEVEL=(1,1) JOB JOB ,SYSTEM, CLASS=S, MSGLEVEL=(0,0) JOB MACHE999999,‘H.B’, NOTIFY=SAILP06,CLASS=A, REGION=512K JOB MACHE999999,‘H.B’, NOTIFY=&SYSUID,CLASS=A, REGION=512K

2012/3/13

Template Documentation

14

EXEC 语句
? ? 表示job step 的开始 定义job step和job step相关信息,以方便系统了解 – 运行哪支程序或过程(procedure) – 传递给程序的参数 – 条件测试

注意: 1. EXEC语句必须是每一STEP的第一个JCL 语句; 2. 一个job最多有255个 job steps。

2012/3/13

Template Documentation

15

EXEC 语句的语法
//stepname EXEC 位置positionals, 关键字keywords

//STEP1 EXEC PGM=IEFBR14, PARM=94365, TIME=2

?

EXEC 语句表示 job或procedure中一个step的开始;

?

STEPNAME 可不写,但是建议大家都写

2012/3/13

Template Documentation

16

EXEC 语句的参数(1/2)
? 位置参数(positional parameter) – PGM= 或 PROC= 虽然看上去是使用关键字参数的形式。但因为可以直 接使用Procedure name来替换,而不是使用关键字参 数的形式

2012/3/13

Template Documentation

17

EXEC 语句的参数(2/2)
? 关键字参数(keyword parameter) – ACCT 允许 job steps 替换不同的 account – PARM 传递参数给程序,最长100个字符。用省略号[’ ’]
或圆括号[()]括起来

? ?

REGION 指定step运行时分配虚拟内存的大小 TIME 指定step被允许执行的最大时间

2012/3/13

Template Documentation

18

EXEC 语句举例
//STEP1 EXEC PGM=FIRST

//STEPA

EXEC

PGM=SECOND, PARM=94365, TIME=(,10)

//STEPB

EXEC

PGM=THIRD, PARM=’94/12/31’

//STEPC

EXEC

PGM=FOURTH, PARM=‘LIST,MAP,XREF’

2012/3/13

Template Documentation

19

DD 语句
? DD语句的使用是非常必要的。因为一支程序不是直接引用Dataset。而 是在程序中使用DD语句的名字(DDNAME)。当Dataset被需要被操作 时,DDNAME被用来正确地定位DD语句。如果没有找到正确的DD语句,程 序将异常终止。 – 描述Dataset – 指定Dataset所需的输入、输出资源 例如://XYZ DD COBOL: SELECT IN-FILE ASSIGN TO XYZ. 注意: 1. DD语句的数目是任意的 2. DD语句的出现顺序是任意的

2012/3/13

Template Documentation

20

DD 语句的语法
//ddname DD positionals, keywords //XYZ DD DSN= ,DISP= ,UNIT= ,SPACE= , // VOL= ,DCB=
注意: 1. 应避免使用SYS开头的DDNAMES。 IBM使用SYS作为IBM很多产品的 DDNAMES。如 SYSPRINT,SYSIN,SYSUDUMP,SYSCHK,SYSLMOD,SYSUT1,SYSABEND,SYSCKE OV,SYSLIN,SYSUT2,SYSDDUMP 2. 避免使用JOB或STEP开头DDNAMES。 IBM使用其作为前缀给很多特殊的 DDNAMES JOBLIB,JOBCAT,STEPLIB,STEPCAT

2012/3/13

Template Documentation

21

DD 语句的参数(1/2)
? 位置参数(positional parameter)
– * 开始一个 in-stream data set – DATA 开始一个 in-stream data set,第一列和第二列可以 是 ‘//’(当然也可以不是)。 – DUMMY 不分配

2012/3/13

Template Documentation

22

DD 语句的参数(2/2)
? 关键字参数(keyword parameter)
– – – – – – – – – DSN DISP SPACE DCB SYSOUT UNIT VOL DLM …… 命名一个dataset 指定data set的状态 给 DASD data sets 分配空间. 提供 BLOCK 等信息 定义 SYSOUT data set. 请求设备用来分配 标识设备上的卷 指定in-stream data set终止字符

2012/3/13

Template Documentation

23

DD 语句举例
? 基本型 //ddname DD DISP=SHR,DSN=dsname 基本型: 向SYSOUT SPOOL输出 //ddname DD SYSOUT=* 指定DCB参数 (DCB Macro的参数如果没有指定,使用 DD 的指定値) //ddname DD DISP=SHR,DSN=dsname,DCB=(RECFM=FBA,LRECL=133) 没有 Cataloged 的时候 //ddname DD DISP=SHR,DSN=dsname,UNIT=SYSDA,VOL=SER=volname 独占地使用Dataset (compress等) //ddname DD DISP=OLD,DSN=dsname 做成新的Dataset(同时 Catalogue) //ddname DD DISP=(,CATLG),DSN=dsname,UNIT=SYSDA,SPACE=(TRK,(30,30,5)),VOL=SER=volname 临时 Dataset(STEP 开始前 JES 对其分配,结束时 JES 对其删除) //ddname DD DSN=&&dsname,UNIT=SYSDA,SPACE=(CYL,(5,5)) DUMMY Dataset (OPEN/CLOSE 可以。GET 时立即返回 EOF。PUT 的内容被丢掉) //ddname DD DUMMY ?

?

?

?

?

?

?

2012/3/13

Template Documentation

24

DD 语句应用篇:DD *(1/4)
? 指定要使用 in-stream dataset 。DD *的下一行开始,到‘/*’开始的行、 ‘//’开始的行或 DLM= 指定的 2 位字符开始的行之前,都视作 DD 的记 录。记录中出现 ‘/*’和‘//’的时候,一定要注意。
00010000 00020000 00030000 00040000 00050000 00060000 00070000 00080000 00090000 00010000 00020000 00030000

//HANGENER JOB MSGCLASS=Z,CLASS=A,NOTIFY=&SYSUID //GENER EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT2 DD SYSOUT=A //SYSIN DD DUMMY //SYSUT1 DD * ITEM #1 /** COMMENT #1 **/ 注意 ‘/*’没有从第一列开始 ITEM #2 /* COMMENT #2 */ /** COMMENT #3 **/ 注意 ‘/*’没有从第一列开始 ITEM3 /*

2012/3/13

Template Documentation

25

DD 语句应用篇:DD *(2/4)
? 指定要使用 in-stream dataset 。DD *的下一行开始,到'/*'开始的行、'//'开始的行 或 DLM= 指定的 2 位字符开始的行之前,都视作 DD 的记录。记录中出现 '/*'和'//'的 时候,一定要注意。
00010000 00020000 00030000 00040000 00050000 00060000 00070000 00080000 /* COMMENT #2 */ 00090000 00010000 00020000 00030000

//HANGENER JOB MSGCLASS=Z,CLASS=A,NOTIFY=&SYSUID //GENER EXEC PGM=IEBGENER

//SYSPRINT DD SYSOUT=* //SYSUT2 DD SYSOUT=A //SYSIN DD DUMMY //SYSUT1 DD * ITEM #1 /** COMMENT #1 **/ ITEM #2 /** COMMENT #3 **/ ITEM3 //

2012/3/13

Template Documentation

26

DD 语句应用篇:DD *(3/4)
? 指定要使用 in-stream dataset 。DD *的下一行开始,到'/*'开始的行、'//'开始的行 或 DLM= 指定的 2 位字符开始的行之前,都视作 DD 的记录。记录中出现 '/*'和'//'的 时候,一定要注意。
00010000 00020000 00030000 00040000 00050000 00060000 00070000 00080000 /* COMMENT #2 */ 00090000 00010000 00020000 00030000

//HANGENER JOB MSGCLASS=Z,CLASS=A,NOTIFY=&SYSUID //GENER EXEC PGM=IEBGENER

//SYSPRINT DD SYSOUT=* //SYSUT2 DD SYSOUT=A //SYSIN DD DUMMY //SYSUT1 DD *,DLM=ZZ ITEM #1 /** COMMENT #1 **/ ITEM #2 /** COMMENT #3 **/ ITEM3 ZZ

2012/3/13

Template Documentation

27

DD 语句应用篇:DD *(4/4)
? 对于上面的内容,可以在 SAILP06.EXAM.JCL(ITEM)里作成

//HANGENER JOB MSGCLASS=Z,CLASS=A //GENER EXEC PGM=IEBGENER

0001000 00020000 00030000 00040000 00050000 00060000

//SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=SAILP06.EXAM.JCL(ITEM) //SYSUT2 DD SYSOUT=A //SYSIN DD DUMMY

2012/3/13

Template Documentation

28

DD 语句应用篇:DD DATA(1/2)
? 用法与DD *相似,以'//'开始的行被看作是数据。
********************************* Top of Data ********************************** //HANGENER JOB MSGCLASS=Z,CLASS=A //GENER1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD * DATA ITEM #1 |<- in-stream dataset //SYSUT2 DD SYSOUT=A //SYSIN DD DUMMY //GENER2 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DATA // DATA ITEM #2 | // DATA ITEM #3 | <- in-stream dataset /* //SYSUT2 DD SYSOUT=A //SYSIN DD DUMMY /* ******************************** Bottom of Data ********************************

2012/3/13

Template Documentation

29

DD 语句应用篇:DD DATA(2/2)
? 如果想让以'/*'开始的行也被作为Data的话,需在DLM= 指定2个文字。如 果指定了DLM=,直到 DLM= 指定值开始的行之前都被视为数据。

********************************* Top of Data ********************************** //BUILDJOB JOB //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=A //SYSUT2 DD DSN=JCL.OUTPUT, DISP=OLD //SYSUT1 DD DATA,DLM=ZZ //TEST JOB … | //ST1 EXEC … | //INDD DD … |<- in-stream dataset //OUTDD DD … | /* | ZZ ******************************** Bottom of Data ********************************

2012/3/13

Template Documentation

30

DD 语句应用篇:DD Concatenation(1/3)
? //DDX // DD DSN=A.ONE,DISP=OLD DD DSN=B.ONE,DISP=OLD <- DDNAME 必须被忽略

?

PDS 最多连接123个

?

Sequential Datasets 最多连接255个

?

在连接PS Dataset的时候,全部被视作一个 Dataset。重复发行 GET Macro 时,读完第 一个 Dataset 的最后的记录后,返回第二个 Dataset 的起始记录。继续重复执行 GET, 最后的 Dataset 的最后的记录以后,返回 EOF。

?

在连接PO Dataset的时候,全部被视作一个 Dataset。Member的搜索从上顺序执行。存在 同名的Member时,连接顺序上方的的 Dataset 的 Member 被采用。这点请注意。

2012/3/13

Template Documentation

31

DD 语句应用篇:DD Concatenation(2/3)
? SAIL Region 使用的 Procedure: V31SNBM ********************************* Top of Data ********************************** // PROC MBR=TEMPNAME,PSB=,IN=,OUT=, 00010000 // OPT=N,SPIE=0,TEST=0,DIRCA=000, 00020000 // PRLD=,STIMER=,CKPTID=,PARDLI=, 00030000 (剪掉部分JCL语句) //G EXEC PGM=DFSRRC00,REGION=&RGN, // PARM=(BMP,&MBR,&PSB,&IN,&OUT, // &OPT&SPIE&TEST&DIRCA,&PRLD,&STIMER,&CKPTID, // &PARDLI,&CPUTIME,&NBA,&OBA,&IMSID,&AGN,&SSM, // &PREINIT,&ALTID,'&APARM',&LOCKMAX) //STEPLIB DD DISP=SHR,DSN=&IMS2..SDOLIB // DD DISP=SHR,DSN=&IMS..RESLIB // DD DISP=SHR,DSN=&SAIL..TEST.LOADGO.&SYSID // DD DISP=SHR,DSN=SAIL00.APPL.LOADGO // DD DISP=SHR,DSN=&SAIL..TEST.LOADGO // DD DISP=SHR,DSN=&SAIL..TESTAPPL.LOADGO INCLUDE MEMBER=IM00STEP // (剪掉部分JCL语句) //SYSUDUMP DD SYSOUT=&SOUT,DCB=(RECFM=VBA,LRECL=121,BLKSIZE=3129), 00120000 // SPACE=(125,(2500,100),RLSE,,ROUND) 00130000 ******************************** Bottom of Data ******************************** 2012/3/13 Template Documentation 32 00073000 00074000 00075000 00076000 00077000 00079000 00080000 00091000 00092000 00093000 00094000 00095000

← ← ← ← ← ←

注目!! 注目!! 注目!! 注目!! 注目!! 注目!!

DD 语句应用篇:DD Concatenation(3/3)
? 顺便介绍, SYS1.PROCLIB(IM00STEP)

********************************* Top of Data ********************************** // DD DISP=SHR,DSN=PLI.&PLI..PLILINK 00010000 // DD DISP=SHR,DSN=PLI.&PLI..SIBMLINK 00020000 // DD DISP=SHR,DSN=COBOL2.&COBOL..COB2LIB 00030000 // DD DISP=SHR,DSN=FORT.&FORT..VSF2LOAD 00040006 //* DD DISP=SHR,DSN=CEE.V1R5M0.SCEERUN 10/01/97 00050003 //* DD DISP=SHR,DSN=CEE.SCEERUN 10/01/97 00060004 ******************************** Bottom of Data ********************************

2012/3/13

Template Documentation

33

JCL 过程(Procedure):概述
? ? ? ? ? 把EXEC和DD组合在一起的结构。同一程序被多次调用的时候,使用Procedure比较方便。 在JCL内部写的为 in-stream Procedure,JCL的外部写的为 cataloged procedure。 in-stream procedure 以 PROC开始,以 PEND 结束,位于执行它的 EXEC 语句之前。在一个JOB 内最多有15个 in-stream procedure。 Cataloged Procedure 是 Procedure Library 里的 member。哪个 Dataset 是 Procedure 的 Library 由JES来决定。它以PROC开始,PEND 或EOD(end-of-dataset) 结束。 写 EXEC 调用 Cataloged Procedure。 – EXEC PROC = Procedure 名 – EXEC Procedure 名 可以给 PROC 指定参数,可以用指定的参数替换 Procedure中的 "&参数名"。 注意:Procedure 不能包含下列语句: – JOB 语句 – DD * 语句 – DD DATA 语句 – Delimiter 语句(/*后紧跟78个空格) – Null 语句(//后紧跟78个空格) – NonJCL 语句(例如:JES 或 Utility控制语句)

? ?

2012/3/13

Template Documentation

34

JCL 过程(Procedure):JES2设定
? 查看 SYSLOG,在 IPL 中, NC0000000 DEMOPKG 06222 09:23:01.18 INTERNAL 00000290 S JES2,P=JES2DP (启动 JES2。JES2是 Start Procedure。)

SYS1.PROCLIB(JES2) ********************************* Top of Data ********************************** //JES2 PROC P=JES2PARM,N=JES2NODE 00010000 //******************************************************************* 00020000 //* JES2 PROC 00030000 //******************************************************************* 00040000 //JES2 EXEC PGM=HASJES20,TIME=1440,DPRTY=(15,15) 00050003 //HASPLIST DD DDNAME=IEFRDER 00060000 //HASPPARM DD DSN=SYS1.PARMLIB(&P),DISP=SHR 00070000<-JES2 的参数 // DD DSN=SYS1.PARMLIB(&N),DISP=SHR 00080000<-JES2 的参数 // DD DSN=SYS1.SHASPARM,DISP=SHR 00090003 //PROC00 DD DSN=SYS1.PROCLIB,DISP=SHR 00100000<-指定 Proc Library // DD DSN=CENTER.PROCLIB,DISP=SHR 00110000 // DD DSN=TIVOLI.PROCLIB,DISP=SHR 00111004 // DD DSN=SAIL311C.USER.PROCLIB,DISP=SHR 00113009 //PROC01 DD DSN=SYS1.LOGON,DISP=SHR 00120000 //IEFRDER DD DUMMY 00130000 ******************************** Bottom of Data ********************************

2012/3/13

Template Documentation

35

JCL 过程应用篇:Cataloged Proc(1/4)
? COBOL程序的编译、Link和运行
例: (红色字为要说明的关键字。绿色字为古关键字的的说明)
//SAILP08A JOB NEUSOFT,'HANB',CLASS=A, // // // MSGCLASS=X, MSGLEVEL=(1,1), NOTIFY=&SYSUID 调用 JCL 过程 IGYWCL,对COBOL程序编译和 Link,形式为 EXEC PROC = Procedure

//STEP01 EXEC PROC=IGYWCL Name

//COBOL.SYSIN DD DSN=SAILP06.EXAM.COBOL(COBTEST),DISP=SHR DD:COBOL.SYSIN = COBOL Program Source Code //LKED.SYSLMOD DD DSN=TRAIN35.TSO.LOADLIB,DISP=SHR //LKED.SYSIN DD * ENTRY COBTEST NAME COBTEST(R) /* //RUN EXEC PGM=COBTEST,COND=(8,LT) //STEPLIB DD DSN=TRAIN35.TSO.LOADLIB,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSOUT //SYSIN DD SYSOUT=* DD DUMMY DD:LKED.SYSLMOD = Load module library

2012/3/13

Template Documentation

36

JCL 过程应用篇:Cataloged Proc(2/4)
? SYS1.PROCLIB(IGYWCL)
例: (红色字为要说明的关键字。绿色字为古关键字的的说明) //IGYWCL PROC SYSLBLK=3200,WORK=SYSDA,OUTC='*', // LNGPRFX='COBOL.V2R1M0', // LIBPRFX='CEEV25', // COPYLIB='CEEV25.SCEESAMP', // COPYLIB2='CEEV25.SCEESAMP', // COPYLIB3='CEEV25.SCEESAMP', // PROGLIB=, // GOPGM= //* //COBOL EXEC PGM=IGYCRCTL,REGION=2M,PARM='LIB' //STEPLIB DD DISP=SHR,DSN=&LNGPRFX..SIGYCOMP //SYSPRINT DD SYSOUT=&OUTC DD:SYSPRINT = COBOL Compile List //SYSLIB DD DISP=SHR,DSN=&COPYLIB DD:SYSLIB = Macro Library // DD DISP=SHR,DSN=&COPYLIB2 // DD DISP=SHR,DSN=&COPYLIB3 // DD DISP=SHR,DSN=&LIBPRFX..SCEESAMP DD:SYSLIN 或 DD:SYSPUNCH = //SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=&WORK, // DCB=(BLKSIZE=&SYSLBLK), Object module // SPACE=(TRK,(3,3)) //SYSUT1 DD UNIT=&WORK,SPACE=(CYL,(1,1)) SYSUT1..SYSUT7:临时Dataset (后续……) 2012/3/13 Template Documentation 37

JCL 过程应用篇:Cataloged Proc(3/4)
? SYS1.PROCLIB(IGYWCL)
例: (红色字为要说明的关键字。绿色字为古关键字的的说明) (接上……) //SYSUT2 DD UNIT=&WORK,SPACE=(CYL,(1,1)) //SYSUT3 DD UNIT=&WORK,SPACE=(CYL,(1,1)) //SYSUT4 DD UNIT=&WORK,SPACE=(CYL,(1,1)) //SYSUT5 DD UNIT=&WORK,SPACE=(CYL,(1,1)) //SYSUT6 DD UNIT=&WORK,SPACE=(CYL,(1,1)) //SYSUT7 DD UNIT=&WORK,SPACE=(CYL,(1,1)) //* //LKED EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1M, COND:条件测试 // PARM='MAP,XREF' //SYSLIB DD DISP=SHR,DSN=&LIBPRFX..SCEELKED //SYSPRINT DD SYSOUT=&OUTC //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) Object module,临时 Dataset // DD DDNAME=SYSIN //SYSLMOD DD DISP=SHR,DSN=&PROGLIB(&GOPGM) Load module //SYSUT1 DD UNIT=&WORK,SPACE=(TRK,(10,10)) SYSUT1临时Dataset //SYSIN DD DUMMY

2012/3/13

Template Documentation

38

JCL 过程应用篇:Cataloged Proc(4/4)
? 程序管理知识回顾
Source Modules Assembler or compiler

Object modules Program management binder Linkage editor

Program object in PDSE program library or HFS file

Load module In PDS Program library

Program management loader 2012/3/13 Template Documentation Program in virtual storage Ready for execution

Batch loader 39

JCL 过程应用篇:in-stream proc
? HAN#RSLT
********************************* Top of Data ********************************** //HAN#RSLT JOB MSGCLASS=H,CLASS=A 00010000 //* The Top of in-stream Procedure 00020000 //ALLOC PROC CASE=,TYP=TRK,V=TSOVOL 00030000 //STEP0 EXEC PGM=IEFBR14 00040000 //SYSPRINT DD SYSOUT=* 00050000 //DD1 DD UNIT=SYSDA,VOL=SER=&V,DISP=(NEW,CATLG), 00060000 // DSN=SAILP06.&CASE, 00070000 // SPACE=(&TYP,(30,30,10)), 00080000 // DCB=(LRECL=80,BLKSIZE=4000,RECFM=FB,DSORG=PO) 00090000 // PEND 00100000 //* The Bottom of in-stream Procedure 00110000 //S1 EXEC ALLOC,CASE='TEMP.JCL' 00120000 ******************************** Bottom of Data ********************************

2012/3/13

Template Documentation

40

JCL 过程应用篇:start proc(1/2)
? 在 Console, 键入 S CICSDMO1, 在内部下面 JCL 被提交。 //CICSDMO1 JOB MSGLEVEL=1 //STARTING EXEC CICSDMO1

?

键入 S CICSDMO1.X1,下面的 JCL 被提交。

//X1 JOB MSGLEVEL=1 //STARTING EXEC CICSDMO1

?

如果有参数,可向 EXEC 传参数 (MSGCLASS 和 CLASS 除外)。 S CICSDMO1,START=INITIAL,下面JCL被提交

//CICSDMO1 JOB MSGLEVEL=1 //STARTING EXEC CICSDMO1,START=INITIAL

2012/3/13

Template Documentation

41

JCL 过程应用篇:start proc(2/2)
? CENTER.PROCLIB(CICSDMO1) ********************************* Top of Data ********************************** //CICSDMO1 PROC 00010010 //************************************** 00011014 //* WITH MQSERIES. 2003-08-25 BY ALLEN * 00012014 //************************************** 00013014 //CICS EXEC DFHSTAD1, 00020015 // INDEX1='CICSDEMO', HIGH-LEVEL INDEX FOR CICS DATASETS 00030011 // INDEX2='CICS410', HIGH-LEVEL INDEX FOR CICS LIBRARIES 00040011 // INDEX3='', HIGH-LEVEL INDEX FOR COMMON DATASETS 00041011 // REGNAM1='REG1', REGION NAME FOR XRF ACTIVE, SINGLE 00050011 //* OR MRO REGION 00060001 // REGNAM2='REG1', REGION NAME FOR XRF ALTERNATE REGION 00070011 //* NB. SAME AS REGNAM1 IF XRF=NO 00080001 //*REG=0M, SIZE OF REGION 00090001 // REG=60M, SIZE OF REGION 00100002 // START=COLD, TYPE OF CICS START-UP 00110013 // RUNCICS=YES, START CICS. YES OR NO 00120001 // DUMPTR=NO, ANALYZE DUMP/TRACE. YES OR NO 00130001 // OUTC='*', SYSOUT CLASS 00140001 // RDRC='B', INTERNAL READER CLASS 00150001 // SIP=A SUFFIX OF DFHSIP MEMBER IN SYSIN DATASET 00160008 // 00170001 ******************************** Bottom of Data ********************************

2012/3/13

Template Documentation

42

JCL 过程应用篇:修改proc(1/5)
? 修改 EXEC 语句
//STEP1 EXEC PROC=_,KEYWORD.PROCSTEPNAME=VALUE ?若不写PROCSTEPNAME, 则更改Procedure中的每一个STEP中的KEYWORD ?举例: PROCEDURE 'P1' //STEP1 EXEC PGM=PAYROLL,TIME=(2,30),ACC=1876 //STEP2 EXEC PGM=PRINT,TIME=(4,30) JOBSTREAM //XY2 JOB //STEPA EXEC PROC=P1,TIME.STEP1=(1,10), // ACCT.STEP1=,PARM.STEP2=TOP RESULTING JCL //STEP1 EXEC PGM=PAYROLL,TIME=(1,10) //STEP2 EXEC PGM=PRINT,TIME=(4,30),PARM=TOP

2012/3/13

Template Documentation

43

JCL 过程应用篇:修改proc(2/5)
? 修改 DD 语句(1/2)
DD PARAMETER //PROCSTEPNAME.DDNAME ?可以只修改 DD 语句的一部分 ?如果增加DD语句,则必须是完整的,举例: PROCEDURE 'P1' //S1 //A //B // //C //S2 //A //B EXEC PGM=PAYROLL DD DSN=INPUT,DISP=OLD DD DSN=OUTPUT,DISP=(,CATLG,DELETE),UNIT=3350, SPACE=(CYL,(20,5)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=320) DD DSN=SALARY,DISP=OLD,UNIT=3390,VOL=SER=PAK10 EXEC PGM=PRINT DD DSN=OUTPUT,DISP=(OLD,DELETE),UNIT=3350,VOL=SER=PAKOB DD SYSOUT=*

JOBSTREAM //JOB1 //FS //S1.A //S1.B //S1.D //S2.A JOB MSGCLASS=A EXEC P1 DD DISP=(OLD,DELETE,KEEP) DD UNIT=3390,SPACE=(4096,(100,20)),DCB=(BLKSIZE=800) DD * DATA DD UNIT=,VOL=SER=,DISP=OLD

2012/3/13

Template Documentation

44

JCL 过程应用篇:修改proc(3/5)
? 修改 DD 语句(2/2)
RESULTING JCL //JOB1 //S1 //A //B // //C //D //S2 //A //B JOB EXEC DD DD MSGCLASS=A PGM=PAYROLL DSN=INPUT,DISP=(OLD,DELETE,KEEP) DSN=OUTPUT,DISP=(,CATLG,DELETE),UNIT=3390, SPACE=(4096,(100,20)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) DD DSN=SALARY,DISP=OLD,UNIT=3390,VOL=SER=PAK10 DD * DATA EXEC PGM=PRINT DD DSN=OLD,DISP=OLD DD SYSOUT=*

2012/3/13

Template Documentation

45

JCL 过程应用篇:修改proc(4/5)
? 修改符号参数(1/2),举例:
JOBSTREAM //JOB1 //STEP1 //S1.D JOB MSGCLASS=A EXEC TESTPROC,ACT=7834,D2=CATLG,UN=3390,SR=PAK03 U=4096,P=100,S=20,BLK=800 DD * DATA

PROCEDURE 'TESTPROC' //TESTPROC // //S1 //A //B // //C //S2 //A //B PROC A=PAYROLL,ACT=1209,DP=OLD,D2=KEEP,UN=3350,SR=PAK08 BLK=320,U=CYL,S=10,P=20 EXEC PGM=&A,ACCT=&ACT,TIME=(1,30) DD DSN=INPUT,DISP=&DP DD DSN=OUTPUT,DISP=(NEW,&D2),UNIT=&UN,VOL=SER=&SR SPACE=(&U,(&P,&S)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=&BLK) DD DSN=SALARY,DISP=OLD,UNIT=3390,VOL=SER=PAK10 EXEC PGM=PRINT DD DSN=OUTPUT,DISP=(OLD,DELETE),UNIT=&UN,VOL=SER=&SR DD SYSOUT=*

2012/3/13

Template Documentation

46

JCL 过程应用篇:修改proc(5/5)
? 修改符号参数(2/2)
RESULTING JCL //JOB1 //S1 //A //B // //C //D //S2 //A //B MSGCLASS=A PGM=PAYROLL,ACT=7834,TIME=(1,30) DSN=INPUT,DISP=OLD DSN=OUTPUT,DISP=(NEW,CATLG),UNIT=3390,VOL=SER=PAK03 SPACE=(4096,(100,20)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) DD DSN=SALARY,DISP=OLD,UNIT=3390,VOL=SER=PAK10 DD * DATA EXEC PGM=PRINT DD DSN=OUTPUT,DISP=(OLD,DELETE),UNIT=3390,VOL=SER=PAK03 DD SYSOUT=* JOB EXEC DD DD

2012/3/13

Template Documentation

47

MVS Utilities 介绍
? 有很多的 Utilities ...

– – – – –

IEBGENER IEBCOPY IEFBR14 ISRSUPC DFSORT

2012/3/13

Template Documentation

48

IEBGENER
? 复制 Sequential Data set
例: (蓝色字为必须的DD语句。绿色字为参数的说明) 功能:复制PDS到Sequential Dataset //IEBGENER //COPY1 //SYSPRINT //SYSUT1 //SYSUT2 //SYSIN /* JOB CLASS=A,MSGCLASS=H EXEC PGM=IEBGENER DD SYSOUT=* 输出诊断信息。SYSOUT=*时、与MSGCLASS使用相同的Class。也可以指定Dataset名 DD DSN=MASTER.FILE(B),DISP=SHR 源Dataset名。PDS时,要指定member。 DD DSN=MXR.B,DISP=OLD 目标Dataset名。PDS时,要指定member。 DD DUMMY

注意: 复制PDS到PDS时,不能用IEBCOPY(被认为是压缩)。必须使用IEBGENER。

2012/3/13

Template Documentation

49

IEBCOPY(1/2)
? 复制PDS的内容
例: (蓝色字为必须的DD语句。绿色字为参数的说明) 功能:复制PDS //IEBCOPY JOB CLASS=A,MSGCLASS=H //COPY EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* 输出诊断信息。SYSOUT=*时、与MSGCLASS使用相同的Class。也可以指定Dataset名 //INDD DD DISP=SHR,DSN=ZZZZ311L.TEST.LOADGO 源Dataset名。在SYSIN中省略INDD时,INDD=SYSUT1 //OUTDD DD DISP=SHR,DSN=SAIL311L.TEST.LOADGO 目标Dataset名。在SYSIN中省略OUTDD时,OUTDD=SYSUT2 //SYSIN DD * COPY INDD=INDD,OUTDD=OUTDD SELECT M=(CARAOUE0) SELECT: SELECT: 复制member CARAOUE0。如在目标Dataset中已存在,不复制 SELECT M=((DFSAOUE0,ABCAOUE0,R)) 复制DFSAOUE0,名字改为ABCAOUE0。如再目标Dataset中 /* ABCAOUE0已存在,覆盖

!注意! 复制PDS到PDS时,不能用IEBCOPY(被认为是压缩)。必须使用IEBGENER。

2012/3/13

Template Documentation

50

IEBCOPY(2/2)
? 压缩 PDS
例: (蓝色字为必须的DD语句。绿色字为参数的说明) 功能:压缩PDS //IEBCOPY JOB CLASS=A,MSGCLASS=H //COPY EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* 输出诊断信息。SYSOUT=*时、与MSGCLASS使用相同的Class。也可以指定Dataset名 //SYSUT1 DD DISP=OLD,DSN=ZZZZZZZZ.TEST.LOADGO 被压缩的Dataset名 //SYSIN DD * COPY INDD=SYSUT1,OUTDD=SYSUT1 /*

2012/3/13

Template Documentation

51

IEFBR14
? 批量创建的Dataset
例: (蓝色字为必须的DD语句。绿色字为参数的说明) 功能:创建Dataset /IEFBR14 JOB MSGCLASS=H,CLASS=A //* //ALLOC PROC CASENUM= //STEP0 EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //DD1 DD UNIT=3390,VOL=SER=STRSLT,DISP=(NEW,CATLG), // SPACE=(TRK,(30,30,10)), // DSN=RSLT.P1215.SAIL311L.&CASENUM, // DCB=(LRECL=133,BLKSIZE=27930,RECFM=FBA,DSORG=PO) //ALLOC PEND //* //S01 EXEC ALLOC,CASENUM=SIZE1001 //S01 EXEC ALLOC,CASENUM=SIZE1002 //S01 EXEC ALLOC,CASENUM=SIZE1003 //S01 EXEC ALLOC,CASENUM=SIZE1004 //S01 EXEC ALLOC,CASENUM=SIZE1005 /* //

DDNAME任意

指定CASENUM,JCL过程ALLOC作成Dataset

2012/3/13

Template Documentation

52

ISRSUPC(1/2)
? 比较Dataset的内容
例: (蓝色字为必须的DD语句。绿色字为参数的说明) 功能:比较Dataset ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 //ISRSUPRC JOB MSGCLASS=H,CLASS=A //COMPARE EXEC PGM=ISRSUPC,PARM=(CHNGL,LINECMP,LONGLN,NOPRTCC) ←帮助看上下行 //*OMPARE EXEC PGM=ISRSUPC,PARM=(CHNGL,LINECMP,WIDE) ←帮助看左右行 //NEWDD DD DISP=SHR,DSN=SYS1.SAIL.PARMLIB(SCHEDSS) //OLDDD DD DISP=SHR,DSN=SYS1.SAILTEST.PARMLIB(SCHEDSS) //OUTDD DD SYSOUT=* //SYSIN DD * CHNGV 3 /* //

2012/3/13

Template Documentation

53

ISRSUPC(2/2)
? 在Dataset中搜索
例: (蓝色字为必须的DD语句。绿色字为参数的说明) 功能:搜索文字 //ISRSUPRC JOB MSGCLASS=H,CLASS=A //SEARCH EXEC PGM=ISRSUPC,PARM=('SRCHCMP,ANYC') //NEWDD DD DSN=USERID.PDS,DISP=SHR // DD DSN=USERID.PDS2,DISP=SHR //OUTDD DD DSN=SSO0305.OKAYAMA.RSLT(TEST),DISP=SHR //SYSIN DD * SRCHFOR 'NEEDLE',W,10:20 /* //

2012/3/13

Template Documentation

54

DFSORT(1/3)
? Dataset排序
例: (蓝色字为必须的DD语句。绿色字为参数的说明) 功能:排序 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-//DFSORT JOB CLASS=A,MSGCLASS=H //SORT EXEC PGM=SORT //SYSOUT DD SYSOUT=* 输出信息。SYSOUT=*时、与MSGCLASS使用相同的Class。也可以指定Dataset名 //SYSPRINT DD SYSOUT=* 输出诊断信息。SYSOUT=*时、与MSGCLASS使用相同的Class。也可以指定Dataset名 //SORTIN DD DISP=SHR,DSN=MVS00.TEST100.NAMELIST 当PDS时,要指定member //SORTOUT DD DISP=(,CATLG),DSN=MVS00.TEST100.NAMERSLT,UNIT=SYSDA,输出Dataset名。SYSOUT=*时, // SPACE=(TRK,(30,30),RLSE),DCB=(RECFM=VB,LRECL=27994,BLKSIZE=27998) 与MSGCLASS使用 //SYSIN DD * 相同的Class SORT FORMAT=CH, 比较的key是字符 FIELDS=(110,10,A,145,17,D) 110列开始,取10个字节作为key,升序;145列开始,取17个字节,作为 /* key,降序。

2012/3/13

Template Documentation

55

DFSORT(2/3)
? Dataset合并
例: (蓝色字为必须的DD语句。绿色字为参数的说明) 功能:合并 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-//DFSORT JOB CLASS=A,MSGCLASS=H //MERGE EXEC PGM=SORT //SYSOUT DD SYSOUT=* 输出信息。SYSOUT=*时、与MSGCLASS使用相同的Class。也可以指定Dataset名 //SYSPRINT DD SYSOUT=* 输出诊断信息。SYSOUT=*时、与MSGCLASS使用相同的Class。也可以指定Dataset名 //SORTIN01 DD DSN=MVS00.NAMELIST.A50,DISP=SHR SORTIN01和SORTIN02的记录形式相同,控制field相同, //SORTIN02 DD DSN=MVS00.NAMELIST.B50,DISP=SHR 必须事先排序。最多16个dataset组合 //SYSIN DD * MERGE FIELDS=(129,1,CH,A,102,22,CH,A) 129列开始,取1个字节作为key,升序、 /* 102列开始,取22个字节,作为key,升序。

2012/3/13

Template Documentation

56

DFSORT(3/3)
? Dataset复制
例: (蓝色字为必须的DD语句。绿色字为参数的说明) 功能:复制 //DFSORT JOB //COPY EXEC //SYSOUT DD //SYSPRINT DD //SORTIN DD //SORTOUT DD //SYSIN DD OPTION COPY /* CLASS=A,MSGCLASS=H PGM=SORT SYSOUT=* 输出信息。SYSOUT=*时、与MSGCLASS使用相同的Class。也可以指定Dataset名 SYSOUT=* 输出诊断信息。SYSOUT=*时、与MSGCLASS使用相同的Class。也可以指定Dataset名 DSN=MVS00.NAMELIST.A50,DISP=SHR 当PDS时,要指定member DSN=MVS00.NAMELIST.B50,DISP=SHR 输出Dataset名。SYSOUT=*时、与MSGCLASS使用相同的 * Class。

2012/3/13

Template Documentation

57

JCL的高级用法:JOB STEPS的条件执行(1/2)
? COND 参数 –JOB语句的COND参数 COND=(VALUE,OPERATOR) 0-4095 GT,LT,EQ,NE,GE,LE IF __ IS___ 任何一STEP的返回码,不执行JOB的剩余步骤。

- EXEC 语句的COND参数
COND=(VALUE,OPERATOR,STEPNAME) 0-4095 GT, 当前JOB内,之前的STEP NAME.如不指定,只当前所有的STEP. LT, EQ, NE, GE, LE IF __ IS___ 返回码,不执行当前STEP. 异常终止测试 COND=EVEN 即使先前的 STEP ABENDED,执行此STEP COND=ONLY 只有先前的 STEP ABENDED,才执行此STEP 2012/3/13 Template Documentation 58

JCL的高级用法:JOB STEPS的条件执行(2/2)
? IF/THEN/ELSE/ENDIF 语句结构
JOB EXEC PGM=PROG1 ... //CHECK IF (RC > 0 | ABEND) THEN //BADRUN EXEC SETFLAGS // ELSE //GOODRUN EXEC PGM=ANALYSE ... //SAVE EXEC PGM=SAVEDATA ... //ENDCK ENDIF //NXSTEP EXEC PGM=CONTINUE //SAMPLE //STEP1

2012/3/13

Template Documentation

59

参考资料
? 『 MVS JCL and Utilities』 ? 『対話式システム生産性向上機能(ISPF) ユー ザーズ?ガイド第2巻』 ? 『zOS DFSMSdfp ユーティリティー』 ? 『zOS DFSORT ご使用の手引き』 ? 『MVS プログラム管理 ユーザーズ?ガイドおよ び解説書』
2012/3/13 Template Documentation 60


推荐相关:

JCL临时数据集

喜欢此文档的还喜欢 JCL语言 60页 免费 idcams的用法 7页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。...


实验三 JCL编程

实验三 JCL编程_计算机软件及应用_IT/计算机_专业资料。IBM大型主机实验报告--深圳大学大型主机导论JCL语言实验讲义 深圳大学 张滇 实验三实验要求: JCL 编程 一、...


JCL使用法基础

推荐 学习大型机的学习书序 ISPF/SDSF -> JCL -> 一门主机语言(COBOL 易入门) ->VSAM ->数据库系统(DB2,IMS) -> CICS 如果您实践过程中发现本书没有...


JCL研修

JCL研修_教学案例/设计_教学研究_牛股专区。JCL的构成JCL(JOB 控制语言)的基本说明 [1]JCL 的构成 1) 以下为用 JCL 声明指定的主要信息 i. ii. iii. 2) ...


JCL.Cobol.DB2.CICS面试题

拷贝顺序数据集,或将顺序数据集转为分区数据集 IEFBR14实际是一个空程序,什么也不做,只是返回返回码0, 但是使用它可以进行JCL 语言的各种处理, 如DD 语句中创建...


日本语言学校排名附院校选择最强指南

日本语言学校排名附院校选择最强指南_日语学习_外语学习_牛股专区。鑫泉出国日本...安日本语学校 11.JCL 外国语学院 12.YOHAN 早稻田外国语学校 13.ISI 东京 ...


大型机-JCL实验报告3(Utility综合练习)-大型机操作系统...

四、实验心得通过这次实验, 一:我更加熟悉了解了 JCL 语言的语法规则并正确编写 JCL 语句 二:现在可以跟熟练的使用 SDSF 查看系统的返回信息以正确编写代码 三:...


日本语言学校按升学率排名榜(前30名排名)

日本语言学校按升学率排名榜(前30名排名)_日语学习_外语学习_牛股专区。日本語言...(院+ 大)% 1 JCL外国語学院 京都府京都 市 京都府京都 市 福岡県福岡 市...


日本语言学校-介绍

听读解练习 能力考试 2 读解过去 问题集练 JCL 外国语学院学校地图: http:/...学校概括 学校名称:ARC 日本语言学校 池袋校 地址:東京都新宿区西新宿 7-18-...


在作业管理中,JCL是指___。 A.作业控制语言B.作业命令...

[评析] JCL是Job Control Language的简写,指作业控制语言JCL是用户书写作业说明书的特殊的程序语言,通常包含作业描述、资源说明、作业执行、作业流程控制等作业控制...

加微信领牛股 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com