JCL review

JCL is Job Control Language and is used for Batch processing. The startup procedures of OS and standard products like CICS etc are written in JCL. It is interface between operating system(MVS) & application program. when 2 related programs are combined together on control statements is called job control language

什么是JCL?JCL用于批量处理,启动OS和像CICS等标准产品程序都被写入JCL,它是OS和应用程序的接口。把两个相关程序用控制语句连接起来(的语言)叫JCL。

JCL中的语句基本都有位置参数和关键字参数 二者区别????

位置参数指参数对位置敏感,在不同的位置意思不同。例如:在DISP里的三个位置的意思都不一样,如果为空,需要用‘,’表示参数是空的。关键字参数不care参数的相对位置,出现在不同的位置都可以被识别。

在一个作业流中有哪三种基本语句?

JOB(每个作业流一个);EXEC(每个作业流有一个或多个);DD(每个作业流有一个或多个)。

DD 语句的目的是什么 ?

数据定义语句 (DD 语句 ) 用于定义一个数据集以及该数据所需的输入输出资源。

DD语句的三个位置参数:
(1)“*”
(2)“DATA”
(3)“DUMMY”

DD语句的关键字参数有很多,但总体上可分为两大类,一类与设备相关,如UNIT、VOLUME、SPACE、LABEL等;
另一类则与数据集或数据相关,如DSNAME、DISP、DCB、RECORG、EXPDT、RETPD、PROTECT、SYSOUT、HOLD等。

以下三种情况均将产生临时数据集

(1) OMIT DSN//DD1 DD UNIT=SYSDA,SPACE=(TRK,1)(系统将指定临时数据集名字:SYSdate.Timestamp.Jobname.Code.DDName)

(2) DSN=&&WORK//DD2 DD DSN=&&WORK,UNIT=SYSDA,SPACE=(TRK,1)(系统将指定临时数据集名字:SYSdate.Timestamp.Jobname.Code.Work)

(3) DSN=&TEMP//DD3 DD DSN=&TEMP,UNIT=SYSDA,SPACE=(TRK,1)

DISP参数
NEW—表示在当前作业步中创建一个新的数据集。作业运行时独占 该数据集的访问。
OLD—表示该数据集在当前作业步运行之前已经存在,并且当前作业步将以独占 的方式使用这个数据集。
SHR—表示该数据集在当前作业步运行之前已经存在,并且当前作业步将以共享的方式使用这个数据集,也就是说其它的作业也可以同时使用这个数据集。这个参数值也可以写成SHARE。
MOD—表示数据集已经存在,记录将被添加到数据集的结尾,这个数据集必须是顺序数据集 或者分区数据集的新成员

DISP参数缺省:
NO DISP : DISP=(NEW,DELETE,DELETE)
DISP=OLD/SHR/MOD : DISP=(OLD/SHR/MOD,KEEP,KEEP)
DISP=(,CATLG): DISP=(NEW,CATLG,CATLG)
DISP=NEW : DISP=(NEW,DELETE,DELETE)

DCB参数还有很多内容,有时间再复习吧

流内过程(instream-procedure) 编目过程(cataloged-procedure)

调用编目过程 需要JOBCARD后面指定JCLLIB

PROC是打包后被PROC语句调用的JCL。流内过程是包括在JCL里的。编目过程从外部的一个顺序DATASET里引用。

 

顺序文件最多EXTENT 16次(包括首次分配) , VSAM 文件为 123次

复写proc

如何覆盖一个在 PROC 中的特殊的 DDNAME/SYSIN

// DSN=...

一个 PROC 5 个作业步, Step 3 有一个条件代码,如何 erride/nullify 这个条件代码

在 EXEC 语句中用 override 如下:

//STEP001 EXEC procname, COND.stepname=value

象 COND, PARM 这样的 EXEC 语句必须这样覆盖

What are SD37, SB37, SE37 abends?

All indicate dataset out of space. SD37 - no secondary allocation was specified. SB37 - end of vol. and no further volumes specified. SE37 - Max. of 16 extents already allocated.

What is S322 abend ?

需要更多的 CPU 时间

程序已经超过了默认的为该作业分配的 CPU 时间,陷入一个无限循环

Time = 1440

当程序需要更多的CPU时间时用于克服S322 abends

TIME=1440表示作业的运行没有时间限制,即24小时。

什么是RESTART?怎么调用?

RESTRAT是一个JOB语句的关键字。它可以从一个特定的步骤开始执进JOB语句。而不是从头开始执行。

RESTART=step name.

COND

COND有两个子参数。1,上一STEP的返回码。2,条件。如果条件满足,就跳过该步。

COND=EVEN

即使先前作业步异常终止,本作业步都要执行

COND=ONLY

只有先前作业步异常终止,本作业步才执行

在最近的MVS版本中对COND参数做了哪些改进?MVS现在允许等价的IF。。。ENDIF语句代替COND语句。如果IF语句为真,该STEP将被跳过。

PARM

在EXEC语句中PARM后的值是一些控制参数,被传递到JOB STEP里执行的PGM中。

定义 MSGLEVEL 参量的目的是什么

用于控制 JCL 作业输出清单的内容。

MSGLEVEL(A,B): 一般用 (1,1) 就可以了。

A-0,1,2 (0-- 仅打印 JCL; 1-- 打印全部 ; 2--JCL 和 JES2)

B-0,1 (0-- 作业异常终止才打印 ;1-- 无论如何都打印 )

在 EXEC 语句中用到的关键字参数是什么

PGM PROC

以下语句之间有什么不同

I) step#1 exec PGM=accpay 调用系统函数

ii) step#1 exec tbalance 调用外部

JCL里有多少种类型的库?

3种。1,系统库:2:私有库:在JOBLIB或STEPLIB中指定的。3,临时库:在JOB之前的一步骤中创建的。

JOBLIB 语句的目的是什么

通过 JOBLIB DD 语句用户可以创建一个私有库或为作业指定一个私有库。

 

IDCAMS utility中的IEBGENER, IEBCOPY 和 REPRO有甚么区别

IEBGENER –copy顺序数据集,?????

IEBCOPY copy一个PDS给另一个或合并多个PDS

REPRO copy顺序数据集,有点象IEBGENER

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值