JCL or Job Control Language is a scripting and command language of Multiple Virtual Storage(MVS). MVS and Z/OS are the widely used operating systems on IBM mainframe computers. JCL enables these Operating Systems to work by detailing the jobs like how to find input and process it and then how to use the output.

In short, JCL acts as an intermediary between an application program and OS by providing control statements like suggesting modules or data sets required for processing. It also helps to run a program in a batch mode(series) or online mode (without manual intervention).

As per 6figr, the salary of an employee who knows JCL could range from ₹16 lakhs to ₹40 lakhs, and the mean salary is around ₹18.6 lakhs. For a candidate to procure a job, he must clear a few interview rounds where the knowledge about JCL is checked. The following questions can prepare the candidate to attempt the interviews confidently.

Common JCL Interview Questions and Answers 

1. What are the advantages of Job Computer Language?

JCL has the following advantages for the user

  • The user can merge and segregate various data files
  • The files can be compared with different partitioned data set members
  • JCL enables the creation and deletion of various Data sets, VSAM Clusters, and Generation Data Groups
  • JCL is an easy language which can be easily modified and used by beginners
  • JCL can execute and compile batch-based programs on a computer without any user interaction
  • It also provides IEDCOPY and IDCAMS facilities for easier execution of tasks.

2. What are the different types of JCL statements?

JCL requires Control statements that help execute different tasks in a program. There are three categories of JCL statements.

1. JOB statement: The first statement tells the OS about job identity like job name, class, msgclass, and accounting data. These help in scheduling and sending notifications to the user.


//Job-name JOB Positional-param, keyword-param


Job name = name of the job (1-8 alphanumeric characters only)

JOB= Job statement

Positional-param, keyword-param = parameters

2. EXEC Statement: EXEC stands for execution. EXEC defines the procedures to be executed. If a JCL has 200 steps, it can have 200 EXEC statements.


//Step-name EXEC Positional-param, keyword-param


Step name = name for the job step

EXEC = Execution statement

Positional param, keyword param= parameters

3. DD statement: DD means Data Definition. These help in specifying data sets used by a program. A maximum of 3273 are allowed in a step.


//DD-name DD Parameters


DD-name = a name for DD statement

DD = DD statement

Parameters = different types of parameters

3. What happens after JCL errors occur?

The scheduler has various error codes assigned to different errors. The automatic job recovery function uses these to mend the error. Few error codes are

  • CAN (job started was canceled)
  • CCUN (task ended, but completion code was missing)
  • JCLI (an error occurred before the task started), etc.

4. What is Generation Data Group?

GDG is a group of chronologically arranged and related data sets. Each related set has a unique name with a generation number and a version number at its end, making it further unique.




G = generation number (value range = 0000 to 9999)

V = version number (value range= 00 to 99)

5. Can you check the syntax of JCL without executing it?

Yes, it can be done by giving the “TYPERUN = SCAN” command on the JOB card or by using JSCAN.

6. What is the importance of the // symbol in JCL?

In JCL, each statement must start with a // symbol. The execution of a statement is possible with // only. Otherwise, a JCL error will occur.

7. What are utility programs?

Utilities are the pre-written programs used by system programmers and developers. These help in acquiring, maintaining and organizing data. Example- IEBCOPY, IEHPROGM, IEBEDIT, IDCAMS, IEHMOVE, IEHCOMPR, and IEFBR14

8. How do we run the COBOL program in JCL?

Program compilation is required to run the COBOL program in batch mode, and a load module instead of the actual program is created with all sub-programs. Load libraries are patched and used with JCLLIB or STEPLIB by JCL during execution. 

9.What is a temporary dataset?

Temporary datasets are used only during a particular job and deleted later. They are represented as DSN=&name.

10. Which utility is required for sorting a file in JCL?

“SORT” utility sorts the file in JCL. 

11. What is the SPACE parameter?

It specifies the space required to store a dataset on a Direct Access Storage Disk.


SPACE = (unit of space, (Primary,Secondary,Directory), RLSE, CONTIG, ROUND)


Unit of space = specified in tracks, cylinder, block length, record length

Primary = amount of primary space required

Secondary = secondary space required when primary exceeds

Directory = number of directory blocks allocated

RLSE = releasing the unused space

CONTIG = allocating contiguous primary space

ROUND = allocation rounded to integral cylinders

12. List the hierarchy of JCL.

JCL statements have hierarchy levels

  • Identifier field
  • Name field
  • Operation field
  • Parameter field
  • Comment, if any

13. What are symbolic parameters?

When a parameter changes with the execution of a program, it is a symbolic parameter. With their use, the flexibility of the procedure increases as the need to change the procedure is eliminated each time.


1. How many steps can be executed in a JCL?

A job has a maximum of 255 job steps. This will include all the steps in any procedure. More steps can result in a JCL error.

2. What is a JCL error in the mainframe?

When a running task is not completed, it is because a JCL error has occurred.

For example, a send procedure failed because the data file was not sent to the FTP/SFTP server. The possible reasons could be

  • Invalid job settings
  • The data file couldn’t be found
  • The Common Information Model (CIM) file was not found
  • Any JCL line specified for SSH proxy command exceeded 80 characters which is not acceptable 

3. What is DISP JCL?

DISP stands for Disposition. It is a keyword parameter used to describe the status and normal or abnormal activities of a data set. It suggests what should be done with the set after task termination.


DISP = ({status},{normal Disposition},{abnormal Disposition}) 


Status = New, OLD, SHR, MOD


Abnormal Disposition = CATLG, UNCATLG, DELETE, KEEP

4. What is ABEND JCL?

When a task is abnormally terminated, ABEND JCL is used. It processes the error by requesting a complete or partial drop of virtual storage areas. The task can be controlled before termination if the recovery process is activated when ABEND is initiated. It can further resume the task for retry.

5. What is the time parameter JCL?

The Time parameter in JCL suggests the maximum time for the job to use the processor for execution. It can be used at the JOB level and EXEC level both. If the time reaches the maximum limit, it will stop the step or job automatically.

Looking to accelerate your career as a skilled Full Stack Web Developer? Leverage Caltech CTME's academic excellence in a unique bootcamp-style Post Graduate Program in Full Stack Web Development. Enroll Now!


JCL is a majorly used language in OS, hence, has good career scope for students. A candidate looking for a job related to JCL must practice these interview questions. These familiarize the person with the type of questions set that can be asked during the interview. Along with these, the candidate must have a good knowledge of the basics of JCL.

If you are interested in further enhancing your skills in the software development domain, then Simplilearn’s Post Graduate Program in Full Stack Web Development will be the perfect place to get started. This course, designed in collaboration with Caltech CTME, can help you hone the right skills and make you job ready in no time. Enroll now!

If you have any questions, feel free to post them in the comments below and our team will get back to you at the earliest.

Our Software Development Courses Duration And Fees

Software Development Course typically range from a few weeks to several months, with fees varying based on program and institution.

Program NameDurationFees
Caltech Coding Bootcamp

Cohort Starts: 5 Aug, 2024

6 Months$ 8,000
Full Stack Java Developer

Cohort Starts: 30 Jul, 2024

6 Months$ 1,449
Full Stack Developer - MERN Stack

Cohort Starts: 30 Jul, 2024

6 Months$ 1,449
Automation Test Engineer

Cohort Starts: 7 Aug, 2024

11 Months$ 1,499

Learn from Industry Experts with free Masterclasses

  • Full Stack Java Development: A 2024 Blueprint for Recession-Proofing Your Career

    Software Development

    Full Stack Java Development: A 2024 Blueprint for Recession-Proofing Your Career

    27th Jun, Thursday7:30 PM IST
  • Java FullStack: Your Gateway to a Recession-Proof Future?

    Software Development

    Java FullStack: Your Gateway to a Recession-Proof Future?

    28th May, Tuesday9:00 PM IST
  • Learn to Develop a Full-Stack E-Commerce Site: Angular, Spring Boot & MySQL

    Software Development

    Learn to Develop a Full-Stack E-Commerce Site: Angular, Spring Boot & MySQL

    25th Apr, Thursday9:00 PM IST