再上一篇:3.4 特殊的DD 语句
上一篇:3.4.1 JOBCAT
主页
下一篇:3.4.3 STEPCAT
再下一篇:3.4.4 STEPLIB
文章列表

3.4.2 JOBLIB

IBM S390 系统管理基础(zSeries,IBMSystemz, z/VM,zOS等操作系统使用,命令的参数与用法等)

通过 JOBLIB DD 语句用户可以创建一个私有库或为作业指定一个私有库。系统将会首 先搜索所指定的私有库去查找那些在 EXEC 语句的 PGM 参数中使用的程序,只有在私有库 中没发现相匹配的程序时系统才会去搜索系统库。
一个私有库实际上是一个位于一个直接访问设备上的分区数据集(PDS)或分区数据集扩 展(PDSE),其中的每一个成员都是一个用户的可执行程序。
1.格式
//JOBLIB DD 参数[,参数]... [参数]
2.说明
定义已编目的库:
$ 指定 DSNAME 参数。
$ 指定 DISP 参数,其中的状态子参数必须为 OLD 或 SHR。
$ 不需要指定 VOLUME 或 UNIT 参数。 定义未编目的库:
$ 指定 DSNAME 参数。
$ 指定 DISP 参数,参数值必须为 DISP=(OLD,PASS)或 DISP=(SHR,PASS)。其中 SHR
表示这个数据集是已经存在的并允许其它作业使用这个库。
$ 指定 UNIT 参数。
$ 指定 VOLUME 参数。 创建一个库
$ 指定 DSNAME 参数,作为库的名字。
$ 指定 UNIT 参数,注意一个库必须建立在一个直接访问设备上。
$ 指定 VOLUME 参数,非特定卷的情况例外。
$ 指定 SPACE 参数,为整个库分配足够的空间,并为 PDS 的目录分配空间。
$ 指定 DISP 参数,其中的状态子参数必须为 NEW。 向库中添加成员:
$ 在 DSNAME 参数包含相应的成员名,例如,DSNAME=LIBRARY(PROGRAM).
$ 将 DISP 参数中的状态子参数指定为 MOD。如果在创建库时已经编目则不需要其 它子参数,否则指定为 PASS 或 CATLG。
$ 不要指定 SPACE 参数 其它参数:
如果在数据集标签中不包含数据控制块信息则需要指定相应的 DCB 参数,但不要指定

FREE=CLOSE。

3.实例
例1
//PAYROLL JOB JONES,CLASS=C
//JOBLIB DD DSNAME=PRIVATE.LIB4,DISP=(OLD,PASS)
//STEP1 EXEC PGM=SCAN
//STEP2 EXEC PGM=UPDATE
//DD1 DD DSNAME=*.JOBLIB,DISP=(OLD,PASS)
在本例中 JOBLIB DD 语句中所指定的私有库已经被编目,所以无需指定 UNIT 和VOLUME 参数。系统首先搜索私有库 PRIVATE.LIB4 去查找程序 SCAN 和 UPDATE,其次才查找系统库
SYS1.LINKLIB。在 DD1 语句中引用了 JOBLIB DD 语句中指定的私有库。
例2
//PAYROLL JOB FOWLER,CLASS=L
//JOBLIB DD DSNAME=PRIV.DEPT58,DISP=(OLD,PASS),
// UNIT=3350,VOLUME=SER=D58PVL
//STEP EXEC PGM=DAY
//STEP2 EXEC PGM=BENEFITS
//DD1 DD DSNAME=*.JOBLIB,VOLUME=REF=*.JOBLIB,DISP=(OLD,PASS) 因为在本例中 JOBLIB DD 语句中所指定的私有库没有被编目,所以必须指定 UNIT 和
VOLUME 参数。系统首先搜索私有库 PRIV.DEPT58 去查找程序 DAY 和 BENEFITS,其次才查找 系统库 SYS1.LINKLIB。在DD1 语句中引用了 JOBLIB DD 语句中指定的私有库。
例3
//TYPE JOB MSGLEVEL=(1,1)
//JOBLIB DD DSNAME=GROUP8.LEVEL5,DISP=(NEW,CATLG),
// UNIT=3350,VOLUME=SER=148562,SPACE=(CYL,(50,3,4))
//STEP1 EXEC PGM=DISC
//DDA DD DSNAME=GROUP8.LEVEL5(RATE),DISP=MOD,
// VOLUME=REF=*.JOBLIB
//STEP2 EXEC PGM=RATE
由于在本例的 JOBLIB DD语句中指定的私有库还不存在,因此必须在 JOBLIB DD 语句中 包含所有用于定义这个库的必要的参数。这个库将在 STEP1 中被建立,并且由 DD 语句 DDA
为这个库添加了一个新的成员 RATE。明显可知,系统将在系统库 SYS1.LINKLIB 中查找程序 DISC,在作业步 STEP2中系统将首先在新创建的私有库中查找程序 RATE。
例4
//PAYROLL JOB BIRDSALL,TIME=1440
//JOBLIB DD DSNAME=KRG.LIB12,DISP=(OLD,PASS)
// DD DSNAME=GROUP31.TEST,DISP=(OLD,PASS)
// DD DSNAME=PGMSLIB,UNIT=3350,
// DISP=(OLD,PASS),VOLUME=SER=34568
通过三个 DD 语句为作业定义了三个相连接的私有库,系统将按照下面的顺序查找每一 个程序:
KRG.LIB12
GROUP31.TEST PGMSLIB
SYS1.LINKLIB