`

IBM大型机操作系统 学习笔记(3)

阅读更多

学习主机已有近一个礼拜,基本操作只能马马虎虎,说到写JCL控制语句,真是惭愧.我花了很多时间来整理JCL语法、参数等信息,并做了一篇很长很 长的类似帮助文档的笔记。不过,那只是开始,还是在理论阶段。对动手能力的提高帮助不大。这篇笔记就是专门为提高实际动手能力而写的,也是上课的内容。

实用程序UTILITY介绍:

一、系统实用程序
• IEH打头,主要功能是维护和管理系统、用户数据集和整个盘卷;
• 系统实用程序及其功能如下
1、IEHNITT:为磁带卷写标号;
2、IEHLIST:系统控制数据信息列表;
3、IEHMOVE:移动或拷贝若干组数据、移动或拷贝整个卷、移动或拷贝编目目录等;
4、IEHPROGM:建立及维护系统控制数据、建立时代数据组索引、重命名磁带卷、删除数据集等;
5、IEHDASDR:初始化一个直接存取卷。

二、数据集实用程序

• IEB打头,它的主要功能是对数据集或数据集记录进行组织、修改或比较。
• 可以作为单个作业来执行,也可以作为某个程序的子程序被调用。
• Notes:这些数据维护实用程序不能用于VSAM数据集。

数据集实用程序:
0、IEBGENER:拷贝顺序数据集记录或将顺序数据集转换为分区数据集;
1、IEBCOPY:拷贝、压缩或合并分区数据集及扩展分区数据集;
2、IEBPTPCH:打印或穿卡输出一个数据集
3、IEBCOMPR:比较顺序数据集、分区数据集或扩展分区数据集;
4、IEBISAM:卸载、装载、拷贝或打印ISAM数据集;
5、IEBUPDATE:对顺序、分区数据集或扩展分区数据机进行合并修改。

三、独立实用程序
• IBC开头,是一种特殊的实用程序,可独立于操作系统运行,通常被存放在磁带上。当系统出现重大故障而又无法恢复时,利用系统转储磁带,恢复系统盘卷。如:
1、IBCDASDI:用于初始化和分配一个直接存取卷上的可用的实用程序;
2、IBCDUMPRS:是转储或再存储直接存取卷数据应用程序。

实用程序的调用:
• 实用程序的调用方法有两种, 一种是在ISPF下用TSO的CALL命令调用, 另一种是通过JCL语句调用。

JCL语句调用方式:

//UTLFM JOB …
//STEP EXEC PGM=utility 调用公用程序
//SYSPRINT DD 系统输出数据集(SYSOUT)
//SYSUT1 DD … 输入数据集
//SYSUT2 DD … 输出数据集
//SYSIN DD … 定义实用程序使用的控制流/控制语句
COPY …
SELECT …
EXECLUDE …

UTILITY控制语句格式:
不以‘//’开头,分为4个区:
- 标签区(可选)
- 操作区(必须)
- 操作数区(必须)
- 注释区(可选)

[IEBGENER]

功能:

–IEBGENER是用于建立,拷贝,打印SEQUENTIAL数据集的实用程序

模板:

//ST018 JOB NOTIFY=ST018,MSGLEVEL=(1,1)
//STEP EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD …
//SYSUT2 DD …
//SYSIN DD …

......

.....
说明:

IEBGENER的JCL语句:
– EXEC语句指定要执行的程序
– SYSPRINT DD语句定义输出信息数据集
– SYSUT1 DD语句定义输入数据集
– SYSUT2 DD语句定义输出数据集
– SYSIN DD语句定义控制数据集,如果不需要控制语句,可以如下表示//SYSIN DD DUMMY
IEBGENER的控制语句:
– GENERATE
– MEMBER & RECORD • 将顺序数据集划分为多个成员
– RECORD • 只选中或打印顺序数据集的部

例1:分配一个PS顺序数据集st018.test1.test1,并且拷贝输入流数据到这个数据集中

000100 //ST018A JOB NOTIFY=ST018,MSGLEVEL=(1,1)
000200 //STEP1 EXEC PGM=IEBGENER
000300 //SYSPRINT DD SYSOUT=*
000400 //SYSUT1 DD *
000500JONES FRED 53AF 87 5701 NINE MILE ROAD
000600ANDERSON DON 78AF 34 320 WESTHEIMER #219
000710 //SYSUT2 DD DSN=ST018.TEST1.TEST1,DISP=(NEW,CATLG,DELETE),
000800 //SPACE=(TRK,(1,1)),VOL=SER=USER02,
000900 //RECFM=FB,LRECL=80,UNIT=SYSDA
001000 //SYSIN DD DUMMY

例2:复制PS顺序数据集

000100 //ST018 JOB NOTIFY=ST018,MSGLEVEL=(1,1)
000200 //STEP1 EXEC PGM=IEBGENER
000300 //SYSPRINT DD SYSOUT=*
000400 //SYSUT1 DD DSN=ST018.SDS.DATA,DISP=SHR
000500 //SYSUT2 DD DSN=ST018.TEST1.TEST1,DISP=OLD
000600 //SYSIN DD DUMMY

例3:将一个PS顺序数据集st018.sds.data分割成3部分,以成员形式存储在PO分区数据集 st018.test.po中

000100 //ST018A JOB NOTIFY=ST018,MSGLEVEL=(1,1)
000200 //STEP1 EXEC PGM=IEBGENER
000300 //SYSPRINT DD SYSOUT=*
000400 //SYSUT1 DD DSN=ST018.SDS.DATA,DISP=SHR
000500 //SYSUT2 DD DSN=ST018.TEST.PO,DISP=(NEW,CATLG,DELETE),
000600 // SPACE=(TRK,(1,1,1)),VOL=SER=USER02,
000700 // RECFM=FB,LRECL=80,UNIT=SYSDA
000800 //SYSIN DD *
000900GENERATE MAXNAME=3,MAXGPS=2
001000MEMBER NAME=MEM1
001100RECORD IDENT=(8,'FIRSTMEM',2)
001200MEMBER NAME=MEM2
001300RECORD IDENT=(8,'SECNDMEM',2)
001400MEMBER NAME=MEM3

例4:从源PS顺序数据集ST018.SDS.DATA中选中一些列存储在目标PS顺序数据集ST018.TEST1.TEST1中....

000100 //ST018A JOB NOTIFY=ST018,MSGLEVEL=(1,1)
000200 //SETP1 EXEC PGM=IEBGENER
000300 //SYSPRINT DD SYSOUT=*
000400 //SYSUT1 DD DSN=ST018.SDS.DATA,DISP=SHR
000500 //SYSUT2 DD DSN=ST018.TEST1.TEST1,DISP=OLD
000600 //SYSIN DD *
000700GENERATE MAXFLDS=3
000800RECORD FIELD=(10,1,,1),FIELD=(10,11,,20),FIELD=(10,21,,30)

例5:打印/显示顺序数据集ST018.SDS.DATA

000100 //ST018 JOB NOTIFY=ST018,MSGLEVEL=(1,1)
000200 //STP1 EXEC PGM=IEBGENER
000300 //SYSPRINT DD SYSOUT=*
000400 //SYSUT1 DD DSN=ST018.SDS.DATA,DISP=SHR
000500 //SYSUT2 DD SYSOUT=*
000600 //SYSIN DD DUMMY

以上例子说明:

–SYSIN DD * 语句标识输入数据流记录控制语句;

–GENERATE语句表示调用编辑功能,操作数MAXFLDS=3 表示后面的RECORD语句最多描述三个区域;

–RECORD语句通过FIELD参数描述输入输出区域,其格式为:

–FIELD=(LENGTH OF FIELD,POSITION IN INPUT,CONVERSION,POSITION IN OUTPUT)

^^^^^待续~~~~~~~~~~~~~~~~

续>>(7.18)

[IEBCOPY]

EBCOPY主要功能:

–拷贝完整的数据集或部分数据集;

–建立分区数据集或扩展分区数据集的备份,备份是存放在磁带或磁盘上的顺序数据集;

–变更分区数据集或扩展分区数据集的成员、为选择的成员更换新名;

–对加载模块进行拷贝和重新组块。

模板:

JOB

EXEC PGM=IEBCOPY

SYSPRINT DD SYSOUT=*

SYSUT1 DD 输入数据集

SYSUT2 DD 输出数据集

SYSUT3 DD 溢出数据集#可以省略

SYSUT4 DD 溢出数据集#可以省略

SYSIN DD * 控制语句#如不需要控制语句,可写成SYSIN DD DUMMY

COPY

SELECT

EXECLUDE

COPY:启动一个或多个拷贝、写或加载操作

1.格式:label COPY OUTDD=ddname,INDD=({ddname| (ddname,R)},…),LIST={YES|NO}

2.操作数说明:

•“OUTDD=”:指定输出的分区数据集名,这里的数据集必须是本作业步中的一个DD语句名;

•“INDD=({ddname| (ddname,R)},…)”:指定输入分区数据集,对于卸载操作只能指定一个ddname,这里的R表示从输入的数据集中选择所有的成员进行相应的操作,此时不需设置SELECT语句。

•“LIST={YES|NO}”:指出是否将拷贝的成员名列在SYSPRINT数据集中,取值为YES时将成员名列表。

注意:

–如果为拷贝操作,输入数据集和输出数据集必须是分区数据集、扩展分区数据集或卸载模块结果的顺序数据集;

–如果是加载操作,输入数据集必须是分区数据集或顺序数据集,而输出数据集则必须是分区数据集;

–如果是卸载操作,输入数据集必须是分区数据集、扩展分区数据集或顺序分区数据集,输出数据集可以驻留在直接存取卷上,也可以驻留在磁带卷上。当驻留在磁带卷上时,它的组织结构必须是顺序数据集,且要指定省略目录或缩影值得SPACE参数。

SELECT:确定输入数据集中要拷贝的成员名

1.格式:label SELECT MEMBER=({name1| (name1,newname1,R) | (name1,,R)},{name2| (name2,newname2,R) | (name2,,R)},…..)

2.操作数说明:•“MEMBER=…”:name确定拷贝的成员名;newname确定拷贝输出的成员名,如果这个名字在输出分区数据集中已存在,则这个成员不被拷贝,除非同时设置R参数,newname和ALTERMOD不能同时使用。

EXCLUDE:确定输入数据集中不被拷贝和不加载的成员

1.格式:label EXCLUDE MEMBER=(name1, name2, name3…..)

2.操作数说明:•“MEMBER=…”:name确定不被拷贝的成员名

例1,拷贝整个分区数据集,不拷贝名字相同的成员

000100 //ST018A JOB NOTIFY=ST018,MSGLEVEL=(1,1)
000200 //STP1 EXEC PGM=IEBCOPY
000300 //SYSPRINT DD SYSOUT=*
000400 //SYSUT1 DD DSN=ST018.PDS.DATA,DISP=SHR
000500 //SYSUT2 DD DSN=ST018.TEST.PO,DISP=(NEW,CATLG,DELETE),
000600 // SPACE=(TRK,(5,1,2)),VOL=SER=USER02,UNIT=SYSDA

注意:SYSIN DD * 语句可以省略

例2,拷贝整个分区数据集,拷贝且覆盖名字相同的成员

000100 //ST018A JOB NOTIFY=ST018,MSGLEVEL=(1,1)
000200 //STP1 EXEC PGM=IEBCOPY
000300 //SYSPRINT DD SYSOUT=*
000400 //DD1 DD DSN=ST018.PDS.DATA,DISP=SHR
000500 //DD2 DD DSN=ST018.TEST.PO,DISP=OLD
000600 //SYSIN DD *
000700COPY OUTDD=DD2,INDD=( (DD1,R)) #留意参数格式

例3,仅拷备和置换被选择的分区数据集成员

000100 //ST018A JOB NOTIFY=ST018,MSGLEVEL=(1,1)
000200 //STP1 EXEC PGM=IEBCOPY
000300 //SYSPRINT DD SYSOUT=*
000400 //DD1 DD DSN=ST018.PDS.DATA,DISP=SHR
000500 //DD2 DD DSN=ST018.TEST.PO,DISP=OLD
000600 //SYSIN DD *
000700COPY OUTDD=DD2,INDD=(DD1)
000800SELECT MEMBER=(IEBCOPY1,(IEBCOPY2,R))

例4, 拷备时排除一些分区数据集成员

//ST018A JOB NOTIFY=ST018,MSGLEVEL=(1,1)
//STP1 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//DD1 DD DSN=ST018.PDS.DATA,DISP=SHR
//DD2 DD DSN=ST018.TEST.PO,DISP=OLD
//SYSIN DD *
COPY OUTDD=DD2,INDD=(DD1)
SELECT MEMBER=(IEBCOPY1,(IEBCOPY2,R))

[IEPTPCH]

IEBPTPCH的功能:

–用来打印整个顺序数据集

–用来打印整个分区数据集或分区数据集的一个/多个成员

–用来打印顺序数据集或分区数据集成员的一部分内容(指所有记录的某些字段或一些记录的某些字段)

模板:

JOB

EXEC PGM= IEBPTPCH

SYSPRINT DD SYSOUT=*

SYSUT1 DD 输入数据集

SYSUT2 DD 输出数据集

SYSIN DD * 控制语句#可以是//SYSIN DD DUMMY

PRINT

TITLE

RECORD

MEMBER

IEBPTPCH的控制语句说明:

–PRINT控制语句指定输入流记录以物理顺序组织

–TITLE控制语句指定输出的标题•格式TITLE ITEM=(title, col. to start it in),ITEM=(…), …

–RECORD语句通过FIELD参数描述输入输出区域

(1) 格式RECORD FIELD=(length of field,positionin input,conversion,positionin output)

(2) FIELD=(80)

–RECORD语句通过IDENT参数描述选中的记录

(1) 格式RECORD IDENT=(length<=8,’literal’,input-location)

(2) 用于决定最后一条记录

–RECORD IDENT 和FIELD一起使用

(1) 使用IDENT确定FIELD起作用的记录范围

(2) 使用FIELD确定选取的字段

–MEMBER NAME=…

•Supply PDS member name to be printed.

•If omitted when printing a pds, it prints all members.

•Must specify TYPORG=PO if printing pdsmembers because default is PS.

–MEMBER 和RECORD一起使用

•All RECORD statements that follow a MEMBER statement pertain to the member indicated in the member statement.

•If no RECORD statements follow, the member is printed with the default conditions.

[IEHLIST]

JOB

EXEC PGM= IEHLIST

SYSPRINT DD SYSOUT=*

SYSIN DD * 控制语句

LISTVTOC

LISTCTLG

LISTPDS

IEHLIST的功能

用于列出DASD VTOC的内容

用于列出CATALOG的内容

用于列出PDS的目录

IEHLIST的JCL语句

SYSIN DD语句定义控制数据集

IEHLIST的控制语句

–LISTVTOC

– LISTCTLG
– LISTPDS DSNAME=( LISTPDS DSNAME=(pdsname,pdsname pdsname,pdsname)
– 显示格式显示格式

• DUMP DUMP or or FORMAT FORMAT

–控制语句中的DSNAME不能简写成DSN

–控制语句中的VOL参数格式为VOL=XXXXX=YYYYYY, 其中XXXXX是DD语句中的UNIT参数定的值而YYYYYY是SER参数指定的值

•例子OL=SYSDA=USER01 or VOL=3390=USER01x

[IEBCOMPR]

JOB

EXEC PGM= IEBCOMPR

SYSPRINT DD SYSOUT=*

SYSUT1 DD 参与比较的数据集

SYSUT2 DD 参与比较的数据集S

YSIN DD * 控制语句

COMPARE

EXTS

LABELS

IEBCOMPR的功能

可以用于比较SDS和PDS

以记录为单位进行比较

常用于检测备份

IEBCOMPR的JCL语句

SYSUT1 DD语句定义参与比较的数据集

SYSUT2 DD语句定义参与比较的数据集

SYSIN DD语句定义控制数据集

IEBCOMPR的控制语句

COMPARE TYPORG=PS|PO

EXTS identifies user exit routines to be used

LABELS whether user labels are to be treated as data

[SORT]

JOB

EXEC PGM= SORT

SYSOUT DD SYSOUT=*

SORTIN DD 输入数据集

SORTOUT DD 输出数据集

SYSIN DD * 控制语句

SORT

SORT的功能

对数据集内容进行排序

SORT的JCL语句

SORTIN DD语句定义输入的待排序数据集,可以有多个

SORTOUT DD语句定义输出的已排序后的数据集

SYSIN DD语句定义控制数据集

SORT的控制语句

SORT FIELDS=(start column, length, sort method, a/d )

OUTFIL FNAMES=指定输出数据集

小结:

第一次写JCL调用实用程序,难免会有些磕磕碰碰,所以不可避免犯了些低级错误.

错误归结:

1、MSGLEVEL(1,1)#忘记写等号

2、noplaceto directory#创建PDS时directory block设置太小,所以不能再创建成员.

3、MEMBER 执行错误#参数名超过8个字符。。老师说如果某个名字超过8个字符,就得警惕

4、使用COPY参数时,OUTDD的值不能加括号! INDD的值必须加括号! INDD=(DD2,R)是错的

5、SELECT和EXCLUDE参数不可同时出现,否则出错。

重要点 :创建数据集时,SPACE(TRK,(1,,A)).其中,A=0时,代表创建的是SDS,A>0时,代表创建的是PDS,切记切记!!

分享到:
评论

相关推荐

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

    ### IBM大型机操作系统学习笔记概览 IBM大型机操作系统,作为企业级计算的基石,其稳定性和安全性在业界享有盛誉。初次接触IBM大型机,可能会因操作方式与常见的Windows系统大相径庭而感到不适应,比如在IBM主机中...

    IBM大型机操作系统_学习笔记

    ### IBM大型机操作系统知识点 #### 一、IBM大型机操作系统概览 IBM大型机操作系统是一种专为IBM大型机设计的操作系统,主要用于企业级的核心业务处理,例如银行交易、保险索赔处理等。IBM大型机通常使用z/OS作为其...

    IBM大型机培训资料

    IBM大型机,通常被称为Mainframe,是IBM公司推出的一种高性能、高可靠性的计算机系统,主要用于处理大规模的事务处理、数据库操作、以及企业级的应用。在金融、保险、电信等行业,大型机是支撑核心业务的重要平台。...

    数据库系统工程师学习笔记

    - **大型机(Mainframe)时期**:始于1946年,标志性的机器如ENIAC等,后续发展出了IBM 360、370、09、4300、4900等系列。 - **小型机(Minicomputer)时期**:代表机型如DEC VAX等。 - **微型计算机(Microcomputer...

    IBM mainframe 网上收集

    2. **大型主机操作系统4.ppt、5.ppt、1.ppt、6.ppt、2.ppt**:这些PPT可能按照章节或主题划分,深入讲解了大型机操作系统的各个方面,比如操作系统的安装与配置、JCL(Job Control Language)的使用、CICS(Customer...

    IBM大型機学習筆記.doc

    【IBM大型机操作系统】是IBM公司为大型企业级计算环境设计的一种高效稳定的操作系统,它在金融、电信、政府等领域有着广泛的应用。本篇学习笔记主要涵盖了IBM大型机的实用程序,包括系统实用程序、数据集实用程序...

    Book 学习笔记

    3. **AIX操作系统培训.rar**:AIX是IBM开发的一种高级UNIX操作系统,主要用于大型机和高端服务器。这份培训资料将介绍AIX的基本概念、系统管理、安全性设置以及性能调优。学习AIX对于在企业级环境中工作的IT专业人员...

    大机系统结构概览 - Alex的学习之路

    本文将通过分析一份关于大型机系统结构概览的学习笔记,来探讨大型机的基本概念、系统结构及其应用场景。 #### 二、基础知识与系统结构 1. **大型机的发展历史**:大型机起源于20世纪50年代,最初由IBM研发,用于...

    aix学习笔记及使用经验

    AIX,全称为Advanced Interactive eXecutive,是IBM的一款基于UNIX的操作系统,主要用于大型机和高端服务器。本文将深入探讨在AIX学习笔记中提到的一些关键知识点,包括AIX的安装、AIX5.2中基于LDAP的用户管理、AIX...

    CCNP学习笔记

    本CCNP学习笔记涵盖了多个核心网络概念和技术,包括OSPF(开放最短路径优先)、STP(生成树协议)、AAA(认证、授权和审计)、BGP(边界网关协议)、冗余技术、DHCP(动态主机配置协议)、ISIS(中间系统到中间系统...

    IBM AU18培训资料学生用书

    AIX(Advanced Interactive eXecutive)是IBM开发的一种开放源码的Unix操作系统,广泛应用于大型机和小型机。AIX 5L是其第五代长期支持版本,提供了强大的系统管理工具和性能优化策略,确保企业级应用的稳定高效运行...

    AIX培训笔记---AIX的深入学习

    AIX是IBM开发的一种Unix操作系统,广泛应用于大型机和工作站上。在进行AIX的深入学习时,了解其系统环境配置至关重要。这包括了系统级别的环境变量设置,如`LANG`、`NLS_LANG`等,这些变量定义了系统的语言环境和...

    PL1 for zOS Language Reference

    PL1 for z/OS 特别针对IBM的z/OS操作系统进行了优化,使其成为在大型机环境中进行高效应用开发的理想选择。 #### 标题解析:PL1 for z/OS Language Reference 标题“PL1 for z/OS Language Reference”明确指出了...

    AIX培训笔记

    AIX是IBM开发的一款基于UNIX的操作系统,广泛应用于IBM的Power Systems服务器上。本文档将深入解析AIX系统的基本概念、架构特点、管理操作及性能优化策略,旨在为读者提供一份全面且实用的AIX学习指南。 #### IBM ...

    aix5Lv5.3学习心得笔记

    在IT领域,AIX(Advanced Interactive eXecutive)是一种由IBM开发的UNIX操作系统,尤其在大型机和高端服务器上广泛应用。AIX 5L(其中的“L”代表“Long-term Support”)是AIX的一个重要版本,提供了长期的技术...

    计算机与网络技术基础全书笔记.pdf

    "计算机与网络技术基础全书笔记.pdf" ...本资源摘要信息涵盖了计算机基础知识、数据和信息、计算机系统结构、Windows操作系统等方面的内容,为学习和研究计算机与网络技术基础提供了有价值的参考信息。

    jcl上课笔记

    JCL,全称为Job Control Language,是IBM大型机系统中的作业控制语言,主要用于定义和控制在Mainframe系统上的作业流程。它是一种非交互式的编程语言,用来预设作业的执行环境、指定输入输出设备、以及调度作业的...

    AS400自学笔记整理

    AS400是IBM开发的一种大型机系统,主要用于企业级应用系统的开发和部署。作为AS400初学者,学习AS400的命令和操作是非常重要的,本笔记整理了AS400学习笔记的主要内容,包括命令记录、示例解析、数据库操作、系统...

    Oracle实用教程笔记

    在数据库领域,Oracle公司是知名的大型企业,提供多种信息技术解决方案,包括数据库、中间件、应用软件等,特别是在数据库管理软件方面,Oracle数据库以其强大的功能、稳定性和可扩展性在全球范围内享有盛誉。...

Global site tag (gtag.js) - Google Analytics