第六章实用程序实用程序•在z/OS系统中,IBM提供了种类繁多且十分有用的批处理作业,称为实用程序,来辅助用户对系统控制和数据进行组织与维护。•实用程序分为三类:系统实用程序、数据集实用程序和独立实用程序。实用程序——实用程序的调用•实用程序的调用方法有两种,一种是在ISPF下用TSO的CALL命令调用,另种是通过JCL语句调用。•JCL调用的一般格式://UTLFMJOB…//STEPEXECPGM=utility调用公用程序//SYSPRINTDD…系统输出数据集(SYSOUT)//SYSUT1DD…输入数据集//SYSUT2DD…输出数据集//SYSINDD…定义实用程序使用的控制数据实用程序——控制语句的标准格式•标号用于表示控制语句,除实用程序IEHINITT外,其它实用程序都可以省略标号。标号必须放在控制语句开始的位置,后面留有一个以上的空格。标号是由1~8个字母或数字字符组成。•操作符用于标示控制语句的类型,其后至少跟有一个空格。操作数是由一个或多个关键字参数组成,参数之间以逗号相隔。操作数后至少跟一个空格。控制语句内可加注释,但它与操作数之间至少要有一个空格。•当控制语句有续行时,可在本行有逗号的地方断开,或在本行第72列处设置一个字符,或在下一行的16列开始。基本实用程序基本实用程序通常以IEB打头。•IEFBR14:唯一功能是提供内容为0的完成码。•IEBGENER:复制顺序数据集记录或将顺序数据集转换为分区数据集。•IEBCOPY:拷贝、压缩或合并分区数据集及扩展分区数据集。•IEBDG:创建含有模型数据的测试数据集。•IDCAMS:创建和操作VSAM数据集,提供很多复杂功能。•IEBUPDTE:在分区数据集中创建多个成员,或更新一个成员的记录。IEFBR14IEFBR14是一个不含控制语句的实用程序,它可以用来创建或删除磁盘数据集。•数据集的建立和删除//OGDEN1JOB1,BILL,MSGCLASS=X//EXECPGM=IEFBR14//ADDDSN=OGDEN.LIB.CNTL,DISP=(NEW,CATLG),VOL=SER=USER02,//UNIT=3390,SPACE=(CYL,(3,1,25))//BDDDSN=OGDEN.OLD.DATA,DISP=(OLD,DELETE)•需要注意的是,如果要删除的数据集已编目,用户不能再指定UNIT或者VOL=SER参数。如果用户指定了以上参数,那么数据集虽然同样被删除,但不能取消编目。IEBGENER实例//PRINTJOB1,BILL,MSGCLASS=X//STEP1EXECPGM=IEBGENER//SYSPRINTDDSYSOUT=X//SYSINDDDUMMY//SYSUT1DDDSN=INPUT.DATA,UNIT=3390,DISP=SHR,//DCB=(RECFM=F,LRECL=80,BLKSIZE=80),//VOL=SER=USER02//SYSUT2DDDISP=(NEW,CATLG),DSN=COPY.DATA,//DCB=(RECFM=F,LRECL=80,BLKSIZE=80),//UNIT=3390,VOL=SER=USER02IEBCOPY——实例1//UNLOADJOB…//EXECPGM=IEBCOPY//SYSPRINTDDSYSOUT=*//SYSINDDDUMMY//SYSUT1DDDSN=inpds,DISP=SHR//SYSUT2DDDSN=tape.dataset.name,//UNIT=TAPE,VOL=SER=123456,//DISP=(NEW,PASS)IEBCOPY——实例2//COPYJOB…//JOBSTEPEXECPGM=IEBCOPY//SYSPRINTDDSYSOUT=*//OUT1DDDSN=DATESET1,UNIT=3390,VOL=SER=USER02,//DISP=(OLD,KEEP)//IN6DDDSN=DATASET6,UNIT=3390,VOL=SER=USER02,//DISP=OLD//IN5DDDSN=DATASET5,UNIT=3390,VOL=SER=USER02,//DISP=(OLD,KEEP)//SYSUT3DDUNIT=SYSDA,SPACE=(TRK,(1))//SYSUT4DDUNIT=SYSDA,SPACE=(TRK,(1))//SYSINDD*COPYOPERCOPYOUTDD=OUT1INDD=IN5,IN6SELECTMEMBER=((B,,R),A)/*IEBDG实例//OGDEN7JOB1,BILL,MSGCLASS=X//EXECPGM=IEBDG//SYSPRINTDDSYSOUT=*//OUTDDDISP=(NEW,CATLG),DSN=OGDEN.TEST.DATA,UNIT=3390,VOL=SER=USER01,SPACE=(CYL,(10,1)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=8000)//SYSINDD*DSDOUTPUT=(OUT)FDNAME=FIELD1,LENGTH=30,FORMAT=AL,ACTION=RPFDNAME=FIELD2,LENGTH=10,PICTURE=10,’TESTDATA’FDNAME=FIELD3,LENGTH=10,FORMAT=RACREATEQUANTITY=90000,NAME=(FILED1,FILED2,FILED3)END/*IDCAMS实例//OGDEN12JOB1,BILL,MSGCLASS=X//DELEXECPGM=IDCAMS//SYSPRINTDDSYSOUT=*//SYSINDD*DELETEOGDEN.DATA.VSAMCLUSTER/*//LOADEXECPGM=IDCAMS//SYSPRINTDD*//DATAINDDDISP=OLD,DSN=OGDEN.SORTOUT//SYSINDD*DEFINECLUSTER(NAME(OGDEN.DATA.VSAM)–VOLUMES(USER02)CYLINDERS(11)–RECORDSIZE(72100)KEYS(98)INDEXED)REPROINFILE(DATAIN)OUTDATASET(OGDEN.DATA.VSAM)ELIMIT(200)/*IEBUPDTE实例//OGDEN10JOB1,BILL,MSGCLASS=X//EXECPGM=IEBUPDTE//SYSPRINTDDSYSOUT=*//SYSUT1DDDISP=OLD,DSN=MY.PROLIB//SYSUT2DDDISP=OLD,DSN=MY.PROLIB//SYSINDDDATA./ADDLIST=ALL,NAME=MYJOB1//STEP1EXEC=BILLX1//PRINTDDSYSOUT=A//(moreJCLforMYJOB1)//SYSUDUMPDDSYSOUT=*(lastJCLforMYJOB1)./REPLLIST=ALL,NAME=LASTJOB//LISTEXECPGM=BILLLIST//(moreJCLforthisprocedure)/*LASTJCLSTATEMENTFORLASTJOB./ENDUP/*面向系统的实用程序系统实用程序通常以IEH打头,它的主要功能是维护和管理系统、用户数据集合、整个盘卷。系统实用程序及其功能如下:•IEHLIST:列出分区数据集的目录内容或者磁盘卷的VTOC信息。•IEHINITT:为磁带卷写标签。•IEHPROGM:建立及维护系统编目、建立世代数据组索引、重命名数据集、删除数据集等。•ICKDSF:用于初始化磁盘卷,创建磁盘标签记录和VTOC。•SUPERZAP用来修补磁盘记录。(VTOC和可执行程序)IEHLIST实例//JOBNAMEJOBNOTIFY=USER,MSGLEVEL=(1,1)//LISTVTOCEXECPGM=IEHLIST//SYSPRINTDDSYSOUT=*//DD1DDDISP=OLD,UNIT=SYSDA,VOL=SER=USER01//DD2DDDISP=OLD,UNIT=SYSDA,VOL=SER=USER02//SYSINDD*LISTVTOCFORMAT,VOL=SYSDA=USER01LISTVTOCFORMAT,VOL=SYSDA=USER02/*应用级实用程序ADRDSSU程序主要功能是整盘转储和整盘恢复。RMF用于度量系统性能,提供长期运行统计数据收集、瞬时数据、长期运行报告、批处理类型报告、基于TSO的报告等。实用程序——DFSORT•DFSORT程序用于数据排序,下面是它的应用实例://STEP1EXECPGM=DFSORT//SYSINDD*SORTFIELDS=(1,10,CH,A)//SORTINDDDSN=TEST.LOG,DISP=OLD//SORTOUTDDDSN=SORT.LOG,DISP=(NEW,PASS),//UNIT=SYSDA,SPACE=(CYL,1)//SORTWK1DDUNIT=SYSDA,SPACE=(CYL,1)•STEP1语句用于调用DFSORT程序;SYSINDD语句定义控制数据集,其中控制语句SORTFIELDS=(1,10,CH,A)指出要排序的内容始于输入数据的第一个位置,以递增顺序对前10字符进行排序;SORTINDD语句给出用于排序的输入数据集名和状态;SYSOUTDD语句为排序的输出结果指定数据集;SORTWK1DD语句为排序操作分配工作空间完成第六章实验•6.6UtilityIEHLIST——JCL语句•ddnameDD语句用于给定要操作的数据集的详细信息•SYSINDD*语句后面是所需的控制语句•一般的控制语句为:•LISTCTLG•LISTVTOC•LISTPDSIEBLIST——LISTPDS和LISTVTOC的格式IEBLIST——例1/LISTEXECPGM=IEHLIST//SYSPRINTDDSYSOUT=*//D1DDUNIT=SYSDA,VOL=SER=PACK11,DISP=OLD//D2DDUNIT=SYSDA,VOL=SER=PACK12,DISP=OLD//D3DDUNIT=SYSDA,VOL=SER=PACK17,DISP=OLD//SYSINDD*LISTCTLGVOL=SYSDA=PACK12LISTVTOCVOL=SYSDA=PACK11,DSN=(USER.F1)LISTPDSVOL=SYSDA=PACK17,DSN=U1.LIB/*