JCL.Cobol.DB2.CICS面试题14831.pdf
《JCL.Cobol.DB2.CICS面试题14831.pdf》由会员分享,可在线阅读,更多相关《JCL.Cobol.DB2.CICS面试题14831.pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JCL:1 简单描述一下 DISP 的使用,它有哪些参数?DISP 参数用来告诉系统要使用的数据集的状态是什么并且告诉系统当本作业步执行完毕后如何处理这个数据集。你可以为作业步正常结束和非正常结束时分别指定不同的处理方法。DISP=(NEW,DELETE ,DELETE )为空时也表示这个。OLD,KEEP ,KEEP SHR,PASS ,CATLG MOD,CATLG ,UNCATLG,UNCATLG 2 什么是 PROCEDURE,有哪几种 PROCEDURE,简述区别 有 2 中 PROCEDURE,一种是 CATALOG 的 PROCEDURE,是把过程的JCL 语句写在一个编目的数据
2、集里,该数据集必须是 PDS 或PDSE 里的一个成员,能够同时被多个 JCL 调用。另一种是INSTREAM的 PROCEDURE,流 PROCEDURE,写在一个 JCL 里面,以PROC 开头,以 PEND 字句结束。3.什么是 GDG 数据集,GDG 数据集的每一代数据集是否可以是不同类型的?定义 GDG 数据集有 3 个重要的参数:LIMIT NOEMPTY SCRATCH 各表示什么含义?定义 GDG BASE 之后要必须定义什么?答:GDG 数据集是一组名字相似,时间和功能相关的数据集。GDG 数据集是 MVS 中的世代数据集,通过 IDCAMS 来创建。GDG 数据集的每一代可
3、以是不同类型的。3 个重要的参数 LIMIT 表示这个世代数据集最多可以有多少代;NOEMPTY 表示不清空,SCRATCH 表示最老的一代是被删除掉的。定义 GDG BASE 之后必须定义 GDG DSCB 才能生效。4.COND 参数是什么意思?如果我需要作业步 3,只在作业步 2返回码是 0 或者 4 的时候才执行,如何写 COND 参数?答:COND 参数是 CONDITION 参数,表示什么情况下作业步被执行/不被执行。COND=(4,LT,STEP2)5.IEBCOPY 与 IEBGENER 有什么区别?IEFBR14 是起什么作用的?IEBCOPY:对分区数据集进行拷贝、压缩或合
4、并 IEBGENER:拷贝顺序数据集,或将顺序数据集转为分区数据集 IEFBR14实际是一个空程序,什么也不做,只是返回返回码0,但是使用它可以进行JCL 语言的各种处理,如DD 语句中创建数据集等。6 用哪一个 UTILITY 去定义 VSAM 文件,简介一个定义 VSAM文件的一些参数 DEFVSAM EXEC PGM=IDCAMS DEFINE CLUSTER(NAME(OCB4D4.EX0801.VKD44N)VOL(TSTCC2)-RECSZ(48 48)REC(1000 1000)KEYS(10 0)7.定义 VSAM 的时候是否可以指定 VSAM 分配的大小,通过哪个参数指定?答
5、:通过用 IDCAMS 来定义 VSAM 文件,通过指定 CYL 参数来指定VSAM 分配的大小,在定义 VSAM 的 DATA 部件的时候指定的 VSAM文件的大小 8.定义 VSAM 的时候,参数 KEYS(9 12)表示什么意思?(6 0)答:KEYS(9,12)表示从记录的 12 列开始,数 9 个长度作为 VSAM文件的 KEY.比如 KEYS(6 0),就是指从文件开始的 6 个长度的字段作为 KEY 9.SPACE 参数如何使用?比如你要建一个 PDS 数据集,SPACE=(TRK,(1,1,1),3 个 1 各表示什么?第一个 首次分配;第二个 扩展分配;第三个 目录区大小 1
6、0.要建立一个 PDSE 数据集,记录格式是定长不分块,记录长度是 120,块大小系统选定,DCB 参数如何写,为了指明建立的是 PDSE 还要写哪个参数?答:DCB=(RECFM=F,LRECL=120,BLKSIZE=0),还要指定 DSNTYPE=LIBRARY 参数才能表示是分配的是 PDS-E数据集。11.如何让系统指定 BLKSIZE,系统指定有什么好处?答:系统指定 BLKSIZE 的话,需要在有 RECFM 参数,LRECL 参数的情况下,指定 BLKSIZE=0,或者不指定 BLKSIZE 参数,就是系统指定 BLKSIZE 参数。系统指定 BLKSIZE 的话,可以最优化块
7、大小的分配,节省系统空间。12.PDSE 和 PDS 有什么区别?PDS 删除的成员空间不会自动释放,压缩 才能使用该存储空间。而 PDSE 的删除后自动释放,不可压缩。PDS 可能有目录缺陷而 PDSE 没有 13.在一个 JCL 作业中有多个作业步,如何从其中的一个作业步开始执行作业,用哪个参数指定?答:可以通过在 JOB 语句里面指定 RESTART=STEP5 参数是 JCL直接从作业步 5 开始执行。14.SPACE 参数中的 RLSE 参数是起到什么作用?答:RLSE 参数表示 RELEASE,表示系统自动释放掉分配给数据集的但是没有被使用的空间。15.JCL 中定义的记录格式有哪
8、些?分别表示什么含义?FB 定长分块 F 定长不分块 VB 变长分块 V 变长不分块 和 U未定义,存放的是二进制代码。16.STEPLIB DD 语句,JOBLIB DD 语句,JCLLIB DD 语句 分别起什么作用?答:JCLLIB 用在 PROCEDURE 中,指定 JCL 中用到的PROCEDURE 放在哪里;JOBLIB 和 STEPLIB 都 是 用 来 自 定 JCL 中 用 到 的PROGRAM 放在哪里,如果单独有 JOBLIB 或 STEPLIB 的话就是去 JOBLIB 或STEPLIB 后面指定的数据集去找 PROGRAM。如果 JOBLIB 和 STEPLIB 都有
9、的话,那么 JOBLIB 会被忽略,去 STEPLIB 里面去找 如 果 JOBLIB 和 STEPLIB 都不指 定的 话,就是去SYS1.LINKLIB 里面去找。17.SORT UTILITY 是用来做什么的,如果我想对记录中的第二个字段进行字符升序排序,这个字段的起始位置是 4 长度是 19,如何写 SORT 的控制语句?答:主要是对文件中的记录进行排序,最常见的参数是 SORT FIELDS,按照题目要求这样的 SORT 语句应该这样写:SORT FIELDS=(4,19,CH,A)DFSORT 是IBM 的Data Facility 家族的一员,用来对数据集进行排序、拷贝和合并。控
10、制选项:SORT:指定对数据集进行排序操作;MERGE:指定对数据集进行合并操作;COPY:指定对数据集进行拷贝操作;FIELDS:指定排序键值的信息,格式为 FIELDS=(起始位置,长度,升降序,起始位置,长度,升降序),FORMAT=数据类型(起始位置,长度,数据格式,升降序,起始位置,长度,数据格式,升降序)其中位置和长度都是以字节为单位,顺序可选的有A:升序,D:降序,E:使用用户出口例程定序;FORMAT=指定键字的类型,可选项有CH:字符类型,PD:压缩十进制型,BI:二进制型,AC:ASCII 码型。18通过 JCL 怎么传递参数?PARM 用于向本作业步执行的程序传递变量信息
11、。该程序必须有相应的指令接收这些信息,并使用它们。格式:PARM.过程步名=子参数 PARM.过程步名=(子参数,子参数)PARM.过程步名=(子参数,子参数)PARM.过程步名=子参数,子参数 包括所有的逗号、撇号以及括号在,所有子参数的总长度不得超过 100 个字符。当某 子参数中含有特殊字符或空格时,可以将该子参数用撇号括起来,在其它子参数一起用括号 括起来,或将所有在参数用撇号括起来。子参数:包含传递给程序的变量信息。例 1/RUN3 EXEC PGM=APG22,PARM=P1,123,P2=5 在本例中,系统将参数 P1、123 及 P2=5 传递给程序 APG22。例 2/STP
12、6 EXEC PROC=ASFCLG,PARM.LKED=(MAP,LET)在本例中系统将 MAP、LET 传递到过程 ASFCLG 中名为 LKED 的过程步。19.如何定义 KSDS 的次键(sub-index)?次键本身也是一个 KSDS。它提供了另一种方法访问 VSAM KSDS和 ESDS数据集。定义次键的步骤如下:1)定义 CLUSTER。2)装入数据。3)用 DEFINE ALTERNATEINDEX 命令定义次键。4)用 DEFINE PATH 命令将次键与 CLUSTER 相关联。5)用 BLDINDEX 命令建立次键。也就是在索引中装入数据。VSAM 用 3 个编目项描述一
13、个次键:-一个次键项描述次键是一个 KSDS。-一个数据项描述次键的数据部件。-一个索引项描述次键的索引部件。定义次键需要指定的信息与定义一个 KSDS 类似。如果次键允许许多不唯一的键,则 RECORDSIZE 必须足够大。在定义次键时,如指定了 UPGRADE 属性,则 VSAM 数据集改变时,次键自动改变。例 假定你有一个数据集叫 PAYROLL.MASTER,其主键是雇员名字,你想建立一个次键。则:1)定义次键:DEFINE ALTERNATEINDEX(NAME(PAYROLL.DEPT.AIX)RELATE(PAYROLL.MASTER)VOLUMES(AIX001)UPGRADE
14、)DATA(NAME(PAYROLL.DEPT.AIX.DATA)TRACK(5 5)RECORDSIZE(200 2096)KEY(7 65)NONUNIQUEKEY)INDEX(NAME(PAYROLL.DEPT.AIX.INDEX)IMBED)2)定义路径:DEFINE PATH(NAME(RAYROLL.DEPT.PATH)PATHENTRY(PAYROLL.DEPT.AIX)UPDATE)3)在索引中装入数据:BLDINDEX INDATASET(RAYROLL.MASTER)OUTDATASET(PAYROLL.DEPT.AIX)以后你在使用这个数据集时,如果你在 JCL 中的 D
15、D 语句如下:/DD1 DD DSN=PAYROLL.MASTER,DISP=SHR 则表示你使用主键访问该数据集。如果你在 JCL 中的 DD 语句如下:/DD1 DD DSN=PAYROLL.DEPT.AIX,DISP=SHR 则表示你使用次键访问该数据集。20.为 KSDS 文件建立交替的索引?/DS580416 EXEC PGM=IDCAMS,/PRMINDEX DD DSN=DS.DS580412.AGGR,DISP=SHR/ALTINDEX DD DSN=DS.DS580412.AGGR.AIX,DISP=SHR/IDCUT1 DD DSN=DS.DS580416.TEMP1,DI
16、SP=OLD,UNIT=IDMP,/VOL=(,SER=(PDS001)/IDCUT2 DD DSN=DS.DS580416.TEMP2,DISP=OLD,UNIT=IDMP,/VOL=(,SER=(PDS001)/SYSPRINT DD SYSOUT=*/SYSIN DD*BLDINDEX INFILE(PRMINDEX)OUTFILE(ALTINDEX)/*COBOL:p 型 1-4 个 9 占 2 位。5-9 个 9 占 4 位。10-18 个 9 占 8 位。2.第 66,77,88 层是用来做什么的?66 重定义。77 无子层。88 条件判断 3.COBOL 中有哪 4 个部?都是必
17、须的吗?DATA DIVISION 可以省略不写吗?ENVIRONMENT DIVISON 可以省略不写么?标识部 环境部 数据部 过程部 4.批次程序如何引用文件?要在程序中加入哪些描述语句?ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT IN-FILE ASSIGN INDD ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS IN-FILE-STATUS.SELECT OUT-FILE ASSIGN OUTDD ORGANIZAT
18、ION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS OUT-FILE-STATUS.DATA DIVISION.FILE SECTION.FD IN-FILE.01 IN-RECORD PIC X(80).FD OUT-FILE.01 OUT-RECORD PIC X(80).4.COMP 和 COMP-3,DISPLAY 各表示什么意思?S9(4)COMP-3 占多少字节?S9(7)V9(2)DISPLAY 占多少字节?COMP 是二进制,COMP-3 是压缩十进制,DISPLAY 是十进制。S9(4)COMP-3 占 3 个
19、字节 S9(7)V9(2)DISPLAY 占 9 个字节 5.如果 VSAM 中的字段格式是 S9(7)V9(2)comp-3,如何定义一个数据来接收这个数据并 DISPLAY 出来?答:通过定义 9(7).9(2)来接收这个变量。6.S9(4)COMP-3 在存中占多少字节?-1234 在存中是如何存储的?答:S9(4)COMP-3 在存中占 3 个字节,-1234 在存中表示为 01 23 4D(16 进制表示)(00000001 00100011 01001101)(2 进制表示)7.S9(7)COMP 在存中占多少字节?MOVE 1234 TO VAR,DIS PLAY 之后 VAR1
20、 显示结果是(VAR1 的 PIC 字句是 S9(7)COMP-3)答:S9(7)COMP 在存中占 4 个字节,MOVE 1234 TO VAR1 之后,DISPLAY VAR1 显示为 0001234.8.COBOL 程序读取文件记录,如何判断已经读到最后一条记录 100-READ.READ FILE1 INTO FILE-REC AT END.NOT AT END .GO TO 100-READ.9.COBOL 中如何调用子程序?如何向子程序传值?使用 CALL,XTCL,LINK 来调用子程序,其中 call 使用在 batch程序中,XCTL,LINK 使用在 CICS 中。使用 c
21、all 和 LINK 调用子程序后,子程序结束后仍回到主程序。而 XTCL 后,子程序结束后不返回。使用通讯区在子程序间传值。10.举例说明如何使用 REDEFINES,要注意什么?REDEFINES 是用来重定义,数据长度和类型都可以不同 05 AAA PIC X(6)05 BBB REDEFINES AAA.10 B-1 PIC X(4).10 B-2 PIC X(2)11.文件打开的方式有哪几种?各表示什么?INPUT 输入 从该文件中读取数据 OUTPUT 输出 把数据输出到文件中 I/O 即可输入又可输出 EXTENT 扩展 12.你是如何调试批次程序的?在 SDSF 里面看作业的返
22、回码,进入 JES 的作业信息查看是哪一个作业步发生了错误,返回码是多少,然后去响应的作业步里面查看出错信息 如果可能是变量错误的话,用 DISPLAY 跟踪 13.S0C7 是什么错误,如何解决?S0C7-may be due to:1.Numeric operation on non-numeric data;2.Un-initialize working-storage;3.Coding past the maximum allowed sub script.数据类型不匹配。通过 OFFSET 后面的十六进制的数。14.在线程序与批次程序有何区别?根本区别:在线程序需要用到 cics,而
23、批次程序不需要 15.COBOL 读取文件记录的语句,分别描述一下顺序和索引文件的读取 READ INTO AT END NOT AT END READ INTO KEY IS INVALID KEY NOT INVALID KEY 16.如何定义一个数组?比如学生记录里面课程有8 门 01 STUDENT.05 NAME PIC X(10).05 COURSE PIC X(4)OCCURS 8 TIMES.OCCURS 不能定义在 01 层。17.VSAM 文件的组织形式有哪些?ESDS:Entry Sequential Data Set;顺序数据集;特点是:A,记录只能增加在文件尾部;B,
24、记录可被修改但长度不能被改变,记录不能被删除;C 能根据相对寻址的方式进行操作。RRDS:Relative Record Data Set;相对记录数据集;特点是:A,在数据集中包含许多小的数据块,这些可能有数据或为空;B,记录可能是固定的或可变的;C,肯顺序或直接的存取,根据相对的记录数方式操作。KSDS:Key Sequential Data Set;索引数据集;特别是:A,记录能进行顺序或直接的读写;B,记录能被新增、修改、删除无限制,记录由索引方式来组织;C,按键值的方式进行操作。LDS 线性存储,数据没有分界线。18.文件的访问方式有哪些?SEQUENTIAL 顺序 RANDOM 随
25、机 DYNAMIC 动态(有条件)19.REDEFINES 的起什么作用,请简述 REDEFINES 使用时要注意的地方 答:REDEFINES 表示重定义,为同一个存重新定义一个变量的名字。例如:01 A PIC S9(7)V9(2)COMP-3.我们用 B 来REDEFINES A 就用如下语句:01 B REDEFINES A PIC X(5).例如:01 A.03 A1 PIC X(6).03 B1 REDEFINES A1.05 B11 PIC X(4).05 B12 PIC 99.03 C1 REDEFINES A1 PIC 9(6).1.数据名 2 与数据名 1 的层号必须相同。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JCL Cobol DB2 CICS 试题 14831
限制150内