JCL Interview Questions- With Simple Answers

JCL Interview Questions

These JCL Interview Questions are specifically created to expose you to the types of questions you could face in your interview for the topic of JCL. Good interviewers rarely intend to ask any specific topic during your interview; instead, inquiries usually begin with some basic notion of the issue and then progress depending on the additional discussion and what you say.

JCL Interview Questions

1) What exactly is JCL?

Job Control Language is written as JCL. JCL is a scripting language used to direct the system for batch jobs on the IBM mainframe OS. It is a collection of instructions that you write in code to inform the OS about the function you wish to execute. This list of instructions can be rather extensive sometimes. However, most tasks can be completed with a small portion.

2) How does JCL interact with COBOL code?

JCL is dealt with by a specific subset of divisions.

Division of Identification

Act as an introduction to JCL. It introduces the program, name, author, and date to JCL, but no interaction code.

Division of the Environment

JCL can communicate with the operating system thanks to the environmental division. Under file operation, the operating system makes a query for Files. It is achieved by applying the COND keyword in conjunction with a predefined return code and operand. As a result, it is possible in JCL.

3) Can JCL be restarted automatically?

A predefined keyword parameter in JCL can be used to perform an automatic restart. The RD keyword is one of many that is being used to restart a program. It usually results in an erroneous program conclusion. Against the backdrop of the automated restart, we must evaluate the significance of checkpoints, which are used to specify task execution at different phases during the program in question.

4) Can you perhaps comment on the JCL JOB statement?

The Task statement recognizes the job in the queue to the operating system (OS) and the scheduler. It is the very first control statement in a JCL program. The various parameters in the JOB statement assist the operating system in selecting the appropriate scheduler. It may also be used to analyze the needed CPU time and provide alerts to the users.

5)What does the JCL EXEC statement mean?

A JCL can be composed of numerous job steps, and each job step can either run a program directly or invoke a method. As a result, JCL can run one or more applications. The EXEC statement’s purpose is to give the necessary information. This data is sent on to the program that runs during the job phase.

6) What is the purpose of the ADDRSPC argument in the EXEC statement?

The ADDRSPC parameter specifies the amount of storage needed by the system.

The following are some key points concerning the ADDRSPC option.

  • It is a non-mandatory parameter.
  • Storage might be either virtualized or centralized.
  • The REGION parameter asks storage for a single step.
  • ADDRSPC prevents paging.
  • For paging, ADDRSPC=VIRT is required.
  • The step is stored into actual storage when ADDRSPC is set to Real (ADDRSPC=REAL). 
  • It has a detrimental influence on the overall functioning of the system.

7) How would the JCL define the JOB to the operating system?

JCL specifies the job to the OS via JCL groups. Such groups are identified by the work that they create. The phases for choosing the task are as follows.

  • Determine the job.
  • Run the application specified by the user.
  • Numerous DDs define the files that are being used.
  • Prior work ought to be a closed operation, followed by an exit operation.

8) Could you please clarify the DD statement in JCL?

Datasets are mainframe files that contain data in a specific format. These files are fundamental data storage regions maintained on the mainframe’s Direct Access Storage Device or Tapes. If this data must be processed in a batch application, the physical dataset name and file format are encoded in a JCL. The dataset definition used in JCL is provided via the DD statement’s assistance. A DD statement must specify the needed input and output resources for a task phase. The dataset organization, storage constraints, and record length must all be defined for all these resources.

9) How would you examine a JCL’s syntax without executing it?

By putting TYPERUN=SCAN on the JOB card or using JSCAN, we may examine the syntax of JCL before executing it.

10) What are the examples of JCL assertions that are not permitted in procedures?

The following are some JCL statements that are not permitted in the process.

  • Statements such as JOB, Delimiter (/*), and Null
  • JOBLIB or JOB CAT DD assertions
  • Statements beginning with DD * or ending with DATA
  • Control statements from JES2 or JES3

11) What is the purpose of the include statement in a JCL?

And is used as a substitute for STEPLIB. If we supply a dataset name in the include statement, it searches through all of the datasets specified in the included dataset.

12) Can you tell the difference between both the JOBLIB and STEPLIB statements?

The following are the differences between JOBLIB and STEPLIB:


  1. It is not a method that can be catalogued.
  2. In a JCL, the JOBLIB statement provides the source of the program to be run.
  3. It comes just after the JOB statement but before the EXEC statement.


  1. A STEPLIB statement is being used to specify the program’s location that will be run within a JOB step.
  2. It is supplied immediately following the EXEC statement of the job step and before the DD statement. 
  3. It is possible to add it in a method catalogue.

13) What is the significance of the sign / in JCL?

It’s a crucial sign in JCL expressions. This sign must appear at the start of every JCL statement. The JCL statements are executed according to a specified rule; else, the JCL statement produces an error. The JCL execution system looks for the character (//) at the start of JCL statements. It keeps runtime exceptions to a minimum.

14) Distinguish among Addressing and Run modes.

The following are the primary distinctions among Addressing mode and Run mode.

Access Mode / Addressing Mode

  1. AMODE (24) specifies 24-bit addressing in the memory behind the line.
  2. AMODE (31) denotes 31-bit memory addressing above and below the line.
  3. When AMODE=ANY is used, it provides either 24-bit or 31-bit addressing techniques.

Residency Mode / Run Mode

  1. RMODE (24) specifies that the program must be put into memory underneath the line.
  2. RMODE (31) indicates whether the program should be put into memory up or down the line.
  3. RMODE=ANY instructs the application to operate in either 24-bit or 31-bit memory.

15) Which of the following utilities is used to execute a COBOL-DB2 program?

The IKJEFT01 tool is used to execute COBOL-DB2 code.

16) In JOB, what statement is being used to detect private libraries?

The private libraries used throughout the task are defined using a JCLLIB statement. It is compatible with both cataloged and in-stream operations.

17) What is the JCL Utility program?

Utility programs are ready-made programs. These programs are commonly used by system programmers and application developers on mainframes to accomplish basic needs, data maintenance, and organization.

18) What is the DFSORT utility?

DFSORT is a robust IBM tool. It can copy, filter, and combine datasets. Input datasets are specified using the SORTING, and SORTINnn DD commands. To identify output data, the SORT OUT and OUTFIL commands are utilized. DFSORT is a complete mainframe utility software that is used to analyze or alter sequences.

19) What does DISP= (NEW, PASS, DELETE) stand for?

We use disp = to generate interim data sets (new, pass, delete). New renders a new data collection and gives it to the following phase. When executed successfully, it transfers the data set and removes the dataset from the system.

20) How does the SORT software transform an FB file to a VB file?

The FTOV option in the SORT software will transform an FB file into a VB file. 

21) How can I use JCL to execute a COBOL program?

The program must be built, and a load module containing all sub-programs is produced for sequential execution of the COBOL program. When the JCL is executed, it executes the load module rather than the actual application. The load libraries are updated and sent to the JCL during operation through JCLLIB or STEPLIB.

22) What precisely is a Generation Data Group?

A Generation Data Group is a group of datasets that are either consecutively or dynamically interconnected. They are dealt with regularly by introducing a new age, removing the oldest generation, and occasionally maintaining earlier generations.

23) How does one go about creating a temporary dataset? What will you do with them?

Temporary datasets can be generated by supplying the brief file indication, as in DSN=&&TEMP, or by not specifying it at all. They are used to pass the output of one stage to the other in the same task. When the job is finished, the dataset will not be retained.

24) What exactly is NOTCAT 2 – GS?

NOT 2-GS is a VMS notification that alerts you to the presence of a duplicated catalog record. For example, if we already have a dataset with DSN = ‘xx. yy’ and try to establish a new one using disp new, catalog, we would receive this error. When the program starts and records, it will begin, and the system will try to include it in the system catalog at the end of the phase. At this moment, because we have an existing entry, the catalog would fail and return this message.

We can solve the problem by removing the original data set and categorizing the new dataset in the area where it appears.

JCL Interview Questions- With Simple Answers

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top