Mainframe JCL Interview Questions and Answers Collection that would help the job seeker to clear upcoming Mainframe Interview.Q: What are the Maximum number of In-stream procedures you can code in any JCL?A: 15.
Q: What you mean by skeleton JCL?A: JCL, which changes during run time,that is the values for the JCL such as program name, dd name will change. The same JCL can be used for various jobs, equivalent to dynamic SQL;
Q: What is JCLA: It is an interface between operating system (MVS) & the application program. When two related programs are combined together on control statements, it is called job control language
Q: What is the maximum blocksize for a Tape file?A: It is 32,760. Based on that we can calculate efficient number of Records in a Block
Q: What are the basic JCL Statements for a Job?A: The basic JCL statements for any job are: JOB : Identifies a job and supplies accounting info EXEC : Identifies a job step by indicating the name of the program to be executed. DD : Identifies a data set to be allocated for the job step Delimiter (/*) : Marks the end of an in-stream dataset Null (//) : Marks the end of a job Comments (//*) : Provides Comments PROC : Marks the beginning of a procedure PEND : Marks the end of a procedure OUTPUT : Supplies options for SYSOUT processing.
Q: What does the statements: TYPRUN=SCAN and TYPRUN=HOLD do in a JCL statement?A TYPRUN= SCAN checks the JCL for errors, TYPRUN= HOLD holds the job until further notice.
Q: What is QSAM error usually when it occurs?A: Usually it occurs at the time of job submission.
Q: What is the purpose of INCLUDE statement in a JCL?A: It is used as an alternative for STEPLIB. When we specify the dataset name in INCLUDE , it will search in all the datasets specified in the INCLUDE dataset.
Q: Is it possible to know the remaining free space in a Control Interval/Control Area once an insertion has been madeA: No. It is not possible.
Q: What is a GDG?A: GDG - group of dataset that are logically or chronologically related, referred by name and a relative generation number - an integer which identifies the generation of a dataset and is coded in parentheses after dataset name. Absolute GDG name - GxxxxVyy, where xxxx-absolute generation number, yy-version number. GDGs can be sequential, direct, partitioned. (VSAM - no). They must always be cataloged. Advantages - all datasets have the same name and system keeps track of adding new and retaining previous generations and deleting oldest successive generation. To create a GDG we create a GDG index in the system catalog with IDCAMS utility and then a model (prototype, DSCB) on the same volume to supply DCB information. Empty - when limit is reached all members are removed from the index, otherwise only oldest. Scratch-removed members are uncataloged & deleted, otherwise - removed & uncataloged, but remain in the system (not members of GDG any more). GDG number is updated at the end of the job. If number is not specified all generations will be processed from the beginning
Q: What do you mean by spooling?A: This is managed by JES. This is used for Queuing the Outputs that are intended for Printing and are first stored in SPOOLDASD.
Q: How many Instream-Procedures (PROCs) can be coded in a single Job?A: 15
Q: What does SOC-04 error mean?A: This error is faced when we execute the Cobol program. The main reason for this error is that a variable is defined with fewer characters and we are trying to move data, which is larger than the actual storage space.
Q: In which table PLAN is registered in?A: RCT
Q: For how long a Job can be executed continuously on a Mainframe?A: 248 DAYS
Q: How may divisions are there in JCL-COBOL?A: SIX
Q: What is the Maximum number of DD Statements to be coded in a single JCLA: 3273
Q: How much space OS allocates when you create a PS or PDS?A: 56 KB
Q: What is the minimum number of Dataset names (PDS) in one Directory Block?A: SIX
Q: What is the maximum number of steps in a Job?A: 255
Q: How much is memory space involved, when we code BLOCKSIZE, TRK & CYLA: One block constitutes 32KB of formatted memory/ 42KB of Unformatted memory; 6 blocks makes one Track & 15 Tracks makes one cylinder.
Q: What is DSNDB06?A: This is the Place where DB2 Catalog resides;
Q: What is the use of DSNDB07?A: This is the area where sorting takes place in DB2
Q: What is DATACOM DB?
A: It is a Database used with VSE.
Q: What is a Dummy Utility and what it does?A: IEFBR14 is a Dummy utility and it is used for the sakeof EXEC PGM= .... statement in JCL [when used it wouldn’t perform any task]. e.g. While Allocating a dataset you don't have to run any utility [this could be done by giving disp=new in DD statment]. But for a PGM name must be given in EXEC statment, it is used.
Q: What 3 guidelines do we have to follow when concatenating DD statements?A: The three guidelines for concatenating DD Statements are:- Datasets must be of the same type (disk or tape) All datasets must have the same logical record length (LRECL) The dataset with the largest blocksize must be listed first.
Q: On a DD statement, what is the main difference between creating a new sequential flat file and a partitioned dataset?A: SPACE= (n,m) for a sequential file, SPACE= (n,m,p) for a PDS where n, m, and p are numbers. The p designates how many directory blocks to allocate.
Q: What is the difference between IEBGENER, IEBCOPY and REPRO in IDCAMS utility?A: They are the utility programs used in JCLs: IEBGENER : This utility is used for copying sequential datasets which produces a PDS or a member from a sequential dataset. IEBCOPY : This utility is used for copying one PDS to another or to merge PDSs. REPRO : This is for copying sequential datasets. More or less same as the IEBGENER
Q: What is the difference between STATIC CALL & DYNAMIC CALLA: In the case of STATIC CALL, the called program is stand-alone and an executable. During run time we can call it in our called program. In a DYNAMIC CALL, the called program is not an executable program and it can executed through the called program
Q: What is the difference between CATALOGED PROCEDURE and IN-STREAM PROCEDURE?A: INSTREAM PROCEDURES are set of JCL statements written between JOB and EXEC statements, start with PROC and end with PEND statement. Mainly used to test cataloged procedures. CATALOGED PROCEDURES are cataloged on the procedure library (PROCLIB) and is called by specifying the procedure name on the EXEC statement.
Q: Can we browse or edit the GDG dataset if it is a tape entry?A: No
Q: What are the maximum and minimum sizes of any CONTROL AREA (VSAM datasets)?A: Minimum Size : 1 track; Maximum size : 1 cylinder
Q: How many parameters are there to a DISP statement and what are their uses. ?A: There are three (3) parameters: Parameter 1: Current data set disposition (NEW, SHR,OLD,MOD) Parameter 2: Normal close action for data set (CATLG, KEEP, DELETE) Parameter 3: Abend action for data set (CATLG, KEEP, DELETE)
Q: What is COMP?A: COMP - HALF WORD BINARY
Q: What is a PROCEDURE?A: A set of precoded JCL that can be modified through the use of parameters or override cards. Note: Procedures can be catalogued or instream.
Q: What is the difference between specifying DISP=OLD and DISP=SHR for a dataset?A: OLD specifies exclusive use of a dataset, SHR allows multiple jobs to concurrently access the dataset. [Note: When updating a dataset, you would normally use OLD]
Q: What are the three basic types of statements in a jobstream?A: The three basic types of statements in a jobstream are: JOB : We can code one per jobstream EXEC : It can be one or more per job DD : one or more per jobstep); JOB – It indicates start of jobstream to the operating system and through parms coded on it, it contains certain details about the job (like time, region, message level, job accounting data). EXEC – It indicates the start of execution of a particular job step, be that step a program or a proc. DD – It is a data definition statement, which is used to describe the attributes of a dataset (like name, unit, type, space, disposition etc.,).
Q: What does SYSIN * indicate?A: Instream data follows this card and is terminated when followed by a card containing // or /* in columns 1 and 2.