Ibm-jcl Placement Papers - Ibm-jcl Interview Questions and Answers updated on 29.Nov.2023

RLSE releases all unused space when the data set is closed. It permits you to allocate more space than perhaps, it needed without wasting space. Space is released only if the data set is not empty and if the data set is closed after being opened.

To override the REGION defined at the JOB card level REGION specifies the max region size REGION=0K or 0M or omitting REGION me no limit will be applied

Temporary data sets are used for storage needed only for the duration of the job. If the DISP parameter doesn’t delete the data set by the end of the job, the system will delete it. Deleting a tape data set dismounts the tape, whereas deleting a dataset on a direct-access volume release the storage. A data set is marked temporary by omitting the DSN parameter or by coding DSN=&&dsname. The system assign a unique name to the data set when the DSN parameter is omitted, and any subsequent steps using the dataset refer back to the DD statement.

DISP=MOD modifies a sequential data set. It is a convenient way to add data to the end of sequential dataset. If the data set doesn’t exist, the system changes MOD to NEW unless the VOL parameter request specific volume. When VOL is coded, the stem expects to find data set on the specified volume and terminates the step if it cannot find it. MOD is the usual way of extended data sets in to several direct-access volumes.

A DISP=OLD denotes exclusive control of the Data Set; DISP=SHR me there is no exclusivity.

Specifies that the private library (or libraries) specified should be searched before the default system libraries in order to locate a program to be executed.

STEPLIB applies only to the particular step, JOBLIB to all steps in the job.

PROC stands for procedure It is 'canned' JCL invoked by a PROC statement an in stream PROC is presented within the JCL; a catalogued PROC is referenced from a proclib partitioned Data Set.

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 Data Set name is the operating system (MVS) name for the File.

It is a keyword parameter which specifies a job initiation priority within its job class. When the job is initiated, the system will convert the job’s priority into a dispatching priority so that job’s task can complete with other tasks for use of main storage and CPU resources.

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.

The space allocated when the Data Set is first created.

The keywords associated with the DCB parameter are LRECL, RECFM, BLKSIZE and DSORG The DCB information can be supplied in the DD statement The system looks for DCB information in the program code first

All indicate dataset out of space. SD37 - no secondary allocation was specified. SB37 - end of vol. and no further volumes specified. SE37 - Max. of 16 extents already allocated.

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 Data Set.

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

JCL stands for Job Control Language

  • Positional Parameters are placed in a specific position.
  • It needs to be positioned within the operand field.
  • Example: Employee name in the Job card is a positional parameter at the Job level.
  • Keyword Parameters are not placed in a specific position or order.
  • Example: MSGLEVEL=(X,Y)

Can use either condition codes or use the jcl control statement IF (only in ESA JCL)

16 extents on a volume for a sequential file and 123 for a VSAM file.

That this is a new dataset and needs to be allocated, to CATLG the dataset if the step is successful and to KEEP but not CATLG the dataset if the step abends. Thus if the step abends, the dataset would not be catalogued and we would need to supply the vol. ser the next time we refer to it.

  • A language for job description to MVS, OS/390 and VSE Operating Systems that run on IBM S/390 servers.
  • A set of statements that required for running a particular program is referred as a job step.
  • Without user interaction, job runs in background.
  • The OS manages the user requests to initiate the units of work.
  • Input data sets, such as files are the specific JCL statements to access. Once the resources are allocated for the job, the output data set is to be created or updated.
  • A set of JCL statements are stored as data set and will be started interactively.
  • A menu-like interface is provided by MVS and OS/390, known as ISPF to initiate and manage jobs.

Need to supply volume serial no. VOL=SER=xxxx.

Storage violation error - can be due to various reasons. e.g.: READING a file that is not open, invalid address referenced due to subscript error.

The keywords associated with the DCB parameter are LRECL, RECFM, BLKSIZE and DSORG The DCB information can be supplied in the DD statement The system looks for DCB information in the program code first.

PS - QSAM, PO - Partitioned, IS - ISAM

Level describes the JCL statements. According to each action performed by each statement. Each statement of JCL consist of following keywords—




Here stepoo7 is the name,
pgm is the keyword parameter,
exec is the command,
assign is the operation,
jamesbond is the operand.

A GDG base is created in the system catalog and keeps track of the generation numbers used for datasets in the group. IDCAMS utility is used to define the GDG base for MVS/XA, and MVS/ESA. Older systems required that the IEHPROGM utility be used.

Caused by invalid data in a numeric field.

It me that this jobs step will be executed even if a previous step abnormally terminated.

DISP=SHR permits old data sets to be shared. SHR is identical to OLD except that several jobs may read the dataset concurrently in multiprogramming environments. SHR must be used only for input data sets; use OLD or MOD if data set is modified. Sharing data set is necessary because public libraries like SYS1.LINKLIB or the subroutine libraries should be available to every job in the system.

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

This is an MVS message indicating that a duplicate catalog entry exists. E.g., if you already have a dataset with dsn = 'xxxx.yyyy' and u try to create one with disp new,catlg, you would get this error. the program open and write would go through and at the end of the step the system would try to put it in the system catalog. at this point since an entry already exists the catlg would fail and give this message. you can fix the problem by deleting/uncataloging the first data set and going to the volume where the new dataset exists(this info is in the msglog of the job) and cataloging it.

DISP is a keyword parameter which is defined on the DD statement and which consist of the following positional subparameters: DISP=(Status, Normal Disp, Abnormal Disp). The DISP parameter describes the current status of the dataset (old, new, or modified) and directs the system on the disposition of the data set (pass, keep, catalog, uncatalog, or delete) either at the end of the step or if the step abnormally terminates. DISP is always required unless the data set is created and deleted in the same step.

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

Addressing mode or Access Mode:

  • AMODE(24) indicates 24-bit addressing in the memory below the line.
  • AMODE(31) indicates 31-bit addressing in the memory above and below the line.
  • AMODE=ANY indicates either 24-bit or 31-bit addressing techniques. Run Mode or Residency Mode:
  • RMODE(24) indicates the program need to be loaded into the memory below the line.
  • RMODE(31) indicates the program need to be loaded into the memory either below or above the line.
  • RMODE=ANY indicates the program to load either in 24 bit or 31 bit memory.

In job card, specify RESTART=procstep.stepname
where procstep = name of the jcl step that invoked the proc
and stepname = name of the proc step where you want execution to start

TYPERUN=SCAN on the JOB card or use JSCAN.

DD * and DD DATA describe the input data which follows the above mention cards. If the input data contains record switch // in col 1 and 2 then DD Data should be used.

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

The purpose of the JOB statement is to inform the operating system of the start of a job, give necessary accounting information and supply run parameters. Each job must begin with a single JOB statement.

NL should be specified when a program needs to process unlabeled tapes NL can also be specified when the program wants to create unlabeled tape because the system’s default action, in cases when parameter is not specified, will create IBM standard label. Non labeled tapes are often used for sending tapes to another installation. That way you don’t have to worry about the tape label corresponding to the standards at the other installation or about accidentally matching the volume serial number of an existing tape at the installation.

It is a keyword parameter which specifies the output class to which system messages for your job are to be routed. Output class is an alphabetic (A thru Z) or numeric (0 thru 9) character. The default for MSGCLASS parameter will be A. System messages and output data sets can be routed to the same output class. You can code the MSGCLASS parameter in the Job statement and the SYSOUT parameter on the DD statement.

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.

Indicates a time out abend. Your program has taken more CPU time than the default limit for the job class. Could indicate an infinite loop.