JCL Compiling and Execution Interview Questions and Answers

9/20/2009 No Comment

JCL Compiling, Link Editing and Execution Interview Questions.

What does a mainframe compiler output in the object deck and what does the linkage editor do with it?
Answer : The compiler outputs the source code into the object deck in a form to be read by the linkage editor. The linkage editor combines the object dataset (object deck) from the compiler with machine language code for input/output and other tasks to create an executable load module.

If a program executed attempts to divide a number by zero, do arithmetic on a field that does not contain numeric data, or has some other serious logic error, an abend will occur. What is the normal response that MVS would issue?

Answer : MVS would issue a “system completion code” that would indicate the nature of the problem, dump the program’s memory area, and flush the job from the system. The dump may be used for problem analysis. The dump is printed or stored in a dataset as specified in the //SYSUDUMP DD statement. If //SYSUDUMP is omitted, MVS will provide the completion code value, but not the dump.

Where must load module(s) reside?

Answer : Load module(s) must reside on a Partitioned DataSet (PDS).

What are some of the common linkage editor options and what do they mean?

Answer : Some of the commonly used linkage editor options are
1. LIST – Lists the linkage editor control statements and is usually specified. Omit the parameter if no linking is declared.
2. MAP – Produces a storage map showing the length and relative locations of all control sections. Default is NOMAP.
3. XREF – Includes MAP plus a cross-reference table of the load module (MAP and XREF are mutually exclusive)
4. NOCALL - Cancels the automatic library call mechanism. NOCALL is used for creating subroutine libraries so that the load module contains a single subroutine. CALL is the default.
5. LET – Marks load modules as executable even if minor errors are found. NOLET is the default.
6. PRINT – Allows the messages to be written to a SYSOUT DD statement and it is the default. NOPRINT suppresses the message.
7. AMODE – Specifies whether the program uses 24 or 31- bit addressing. AMODE ANY specifies both 24 and 31 – bit addressing. AMODE 24 requires the program to run below the 16-meg line. The default is established by the compiler and is usually AMODE 24.
8. RMODE – Indicates where the program can reside in virtual storage. RMODE ANY allows the program to reside above the 16-meg line and requires AMODE 31 or AMODE ANY. RMODE 24 requires the program to reside below the 16-meg line. The default is established by the compiler and is usually RMODE 24.
9. TERM – Causes linkage editor diagnostic message to be written to a SYSTERM DD statement. NOTERM is the default.

What causes the message ‘MODULE HAS BEEN MARKED NOT EXECUTABLE’?

Answer : An unresolved external reference often causes the message ‘MODULE HAS BEEN MARKED NOT EXECUTABLE’. Although the module is not executable, one may be able to recover by link-editing the control section causing the problem and replacing it in the load module.

Why would the linkage editor add a member to a load library under the name ‘TEMPNAME’?

Answer : The linkage editor will add a member to the load library under the name of ‘TEMPNAME’ when a member of the same name already exist on the library and the disposition on the SYSLMOD statement was coded as DISP = MOD. This indicates a problem and need s to be resolved.

JCL UTILITIES Interview Questions and Answers

What is an IEBGENER used for?
Answer : IEBGENER is a dataset utility used to copy sequential datasets, produce a partitioned dataset or member from a sequential dataset, produce an edited sequential or partitioned dataset, and reblock / change the logical record length of a dataset.

What is an IEBCOPY used for?
Answer : IEBCOPY is a dataset utility used to copy one or more partitioned datasets or to merge partitioned datasets. A partitioned dataset that is copied to a sequential dataset is said to be unloaded. When one or more dataset created by an unload operation are used to recreate a partitioned dataset, it is called a load operation. Specific members of a partitioned or unloaded dataset can be selected for, or excluded from, a copy, unload or load process.

What is an IEFBR14 used for?

Answer : IEFBR14 is used to delete datasets, find dataset, catalog, and uncatalog datasets.

What is an IEHLIST used for? 

Answer : IEHLIST is a system utility used to list entries in an OS CVOL, entries in the directory of one or more partitioned datasets, or entries in an indexed or nonindexed volume table of contents (VTOC).

What is an IEHINIT used for?

Answer : IEHINIT is a system utility used to write an IBM volume label onto any number of magnetic tapes mounted on one or more tape units. Each volume label set created by this program contains a standard volume label, and 80-byte dummy header and a tapemark.

What is an IEBPTPCH used for? 

Answer : IEBPTPCH is a dataset utility used to print or punch all or selected, portions of a sequential or partitioned dataset. Records can be printed or punched to meet either standard specifications or user specification.

What is an IEBUPDTE used for?

Answer : IEBUPDTE is a dataset utility used to create and update dataset libraries, modify existing partitioned members or sequential dataset and change the organization of dataset from sequential to partitioned or Vice Versa.

What utility can be both used for VSAM and NON VSAM files?

Answer : IDCAMS utility is used to handle VSAM and NON VSAM files.

Which parameter is required to copy the dataset using IEBCOPY?
Answer : The parameter “COPY” is required to indicate one or more IEBCOPY copy, unload or load operations. Any number of operations can follow a single COPY statement and any number of COPY statements can appear within a single job step.

What is the parameter ‘GENERATE‘ used for on utility IEBGENER?

Answer : The parameter ‘GENERATE’ for the utility IEBGENER is used when output is to be partitioned, editing is to be performed or user routines are provided and / or label processing is specified.

What is the parameter ‘MEMBER’ used for an utility IEBGENER?
Answer : The parameter ‘MEMBER’ for the utility IEBGENR is used when the output is to be partitioned. One member statement must be included for each member to be created by IEBGENER. ALL RECORD statements following a MEMBER statement pertain to the number named in that MEMBER statement.

What is the parameter ‘RECORD’ used for on utility IEBGENER?

Answer : The parameter ‘RECORD’ for the utility IEBGENER is used to define a record group and to supply editing information. A record group consists of records that are to be processed identically.

Which utility uses the ‘REPRO’ command and what function does it perform?

Answer : The utility IDCAMS uses the ‘REPRO’ command. The REPRO command copies sequential datasets. It performs much the same function as IEBGENER.

How does one verify that a utility has ended normally?

Answer : To verify if a utility has ended normally, one must check the JCL for a return code of zero. Various utilities generate return codes of 0004, 0008, 0012 and higher, in increments of 4, when problems or unusual conditions have been encountered.

When a utility ends with a nonzero return code, what must be done to resolve the problem?

Answer : When a utility ends with a nonzero return code, it is necessary to determine what caused the error. One may start by checking for error message generated by the utility and look them upon on a utility messages manual. Also, the JCL statements and / or control statements should be checked to make sure they were properly coded. Once the error has been identified, it should be fixed and the job resubmitted.

What are the kinds of job control statements?

Answer : The JOB, EXEC and DD statement.

What is the meaning of keyword in JCL? What is its opposite?

Answer : A keyword in a JCL statement may appear in different places and is recognized by its name, e.g. MSGCLASS in the JOB statement. The opposite is positional words, where their meaning is based on their position in the statement, e.g. in the DISP keyword the =(NEW, CATLG, DELETE) meanings are based on first, second and third position.

Describe the JOB statement, its meaning, syntax and significant keywords.

Answer : The JOB statement is the first in a JCL stream. Its format is // jobname, keyword JOB, accounting information in brackets and keywords, MSGCLASS, MSGLEVEL, NOTIFIY, CLASS, etc.

Describe the EXEC statement, its meaning, syntax and keywords.
Answer : The EXEC statement identifies the program to be executed via a PGM=program name keyword. Its format is //jobname EXEC PGM=program name. The PARM= keyword can be used to pass external values to the executing program.

Describe the DD statement, its meaning, syntax and keywords.

Answer : The DD statement links the external dataset name (DSN) to the DDNAME coded within the executing program. It links the file names within the program code to the file names know to the MVS operating system.
The syntax is // DDname DD DSN=dataset name. Other keywords after DSN are DISP, DCB, SPACE, etc.

What is a PROC? What is the difference between an instream and a catalogued PROC?

Answer : PROC stands for procedure. It is 'canned' JCL invoked by a PROC statement. An instream PROC is presented within the JCL; a catalogued PROC is referenced from a proclib partitioned dataset.

What is the difference between a symbolic and an override in executing a PROC?
Answer : A symbolic is a PROC placeholder; the value for the symbolic is supplied when the PROC is invoked, eg. &symbol=value. An override replaces the PROC's statement with another one; it substitutes for the entire statement.

What is RESTART? How is it invoked?

Answer : RESTART is a JOB statement keyword. It is used to restart the job at a specified step rather than at the beginning.

What is a GDG? How is it referenced? How is it defined? What is a MODELDSCB?

Answer : GDG stands for generation data group. It is a dataset with versions that can be referenced absolutely or relatively. It is defined by an IDCAMS define generation datagroup execution.

Explain concatenating datasets.

Answer : Datasets can be grouped in a DD statement one after another, eg. in a JOBLIB statement where the load module can exist in one of many datasets.

What is the difference between specifying DISP=OLD and DISP=SHR for a dataset?

Answer : DISP=OLD denotes exclusive control of the dataset; DISP=SHR means there is no exclusivity.

What is MOD and when would you use it?

Answer : DISP=MOD is used when the dataset can be extended, ie, you can add records at the end of an existing dataset.

What are the keywords associated with DCB? How can you specify DCB information? What is the OS precedence for obtaining that DCB information, ie. where does the system look for it first?

Answer : The keywords associated with the DCB parameter are LRECL, RECFM, BLKSIZE and DSORG.

The DCB information can be supplied in the DD statement. The sysem looks for DCB information in the program code first.

How do you designate a comment in JCL?

Answer : The comment statement is //* followed by the comments.

What is the meaning of the EXEC statement keyword, COND? What is its syntax?

Answer : COND specifies the conditions for executing the subsequent job step. The value after the COND= is compared to the return codes of the preceding steps and if the comparison is true, the step is bypassed.

What is the improvement to COND= in the latest version of MVS?

Answer : MVS now allows for an IF bracketed by an END IF around any job step to replace the COND= syntax. Again, if the IF statement is true, the step is bypassed.

What is the purpose of the PARM keyword in the EXEC statement?

Answer : The value after the PARM= specifies control information to be passed to the executing program of the job step.

What is the purpose and meaning of the REGION keyword and what JCL statement is it associated with?

Answer : REGION specifies the maximum CPU memory allocated for a particular job or job step. If REGION is in the JOB card, it relates to the entire job; if in the EXEC statement, it relates to the job step.

What is the purpose and meaning of the TIME keyword and what JCL statement is it associated with?

Answer : TIME specifies the maximum CPU time allocated for a particular job or job step. If TIME is in the JOB card, it relates to the entire job; if in the EXEC statement, it relates to the job step.

What is the meaning of data definition name (ddname) and dataset name (dsname) in the DD statement?

Answer : Data definition name is the eight character designation after the // of the DD statement. It matches the internal name specified in the steps executing program. In COBOL that's the name specified after the ASSIGN in the SELECT ASSIGN statement. Dataset name is the operating system (MVS) name for the file.

How is the keyword DUMMY used in JCL?

Answer : For an output file DUMMY specifies that the output is to be discarded. For input it specifies that the file is empty.

What does the keyword DCB mean and what are some of the keywords associated with it?

Answer : DCB stands for data control block; it is a keyword for the DD statement used to describe datasets. Keywords associated with it are BLKSIZE, DEN, LRECL and RECFM.

What is the difference between BLKSIZE and LRECL?

Answer : BLKSIZE specifies the number of bytes.
Related Posts


No comments :

 

Aired | The content is copyrighted and may not be reproduced on other websites. | Copyright © 2009-2016 | All Rights Reserved 2016

Contact Us | About Us | Privacy Policy and Disclaimer