JCL Question Bank
JCL Question Bank
This is a new file and create it, if the step terminates normally, pass it
to the subsequent steps and if step abends, delete it. This dataset will
not exist beyond the JCL.
11.How do you create a temporary dataset? Where will you use them?
Temporary datasets can be created either by not specifying any DSNAME or
by specifying the temporary file indicator as in DSN=&&TEMP.
We use them to carry the output of one step to another step in the same
job. The dataset will not be retained once the job completes.
12.How do you restart a proc from a particular step? 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
13.How do you skip a particular step in a proc/JOB? Can use either condition codes or use the jcl control statement IF (only
in ESA JCL)
14.A PROC has five steps. Step 3 has a condition code. How can you
override/nullify this condition code? Provide the override on the EXEC stmt in the JCL as follows:
//STEP001 EXEC procname,COND.stepname=value
All parameters on an EXEC stmt in the proc such as COND, PARM have to be
overridden like this.
15.How do you override a specific DDNAME/SYSIN in PROC from a JCL?
//<stepname.dd> DSN=...
16.What is NOTCAT 2 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.
17.What is 'S0C7' abend? -
33.What is STEPLIB, JOBLIB? What is it used for? 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.
34.What is order of searching of the libraries in a JCL? First any private libraries as specified in the STEPLIB or JOBLIB, then
the system libraries such as SYS1.LINKLIB. The system libraries are
specified in the linklist.
35.What happens if both JOBLIB & STEPLIB is specified ?
JOBLIB is ignored.
36.When you specify mutiple datasets in a JOBLIB or STEPLIB, what factor
determines the order? The library with the largest block size should be the first one.
37.How to change default proclib ?
//ABCD JCLLIB ORDER=(ME.MYPROCLIB,SYS1.PROCLIB)
38.The disp in the JCL is MOD and the program opens the file in OUTPUT
mode. What happens ? The disp in the JCL is SHR and the pgm opens the file
in EXTEND mode. What happens ?
Records will be written to end of file (append) when a WRITE is done in
both cases.
39.What are the valid DSORG values ?
PS - QSAM, PO - Partitioned, IS - ISAM
40.What are the differences between JES2 & JES3 ?
JES3 allocates datasets for all the steps before the job is scheduled. In
JES2, allocation of datasets required by a step are done only just before
the step executes.
JCL
JOB CONTROL LANGUAGE
JCL IS AN IBM LANGUAGE TO DESCRIBE A BATCH JOB AND
AND ITS REQUIREMENTS TO THE OPERATING SYSTEM
OVERRIDES
Condition code indicates a result of its execution, a program can iussue a return code using CON
Bypass or execute a step
Symbolic paramaters allows for dynamic modification of values at execution time
Name preceeded by ampersand / allow procedures to be modified
19
SORT
SUM FIELD=NONE NO DUPES
BI UNSIGNED BINARY
CH UNSIGNED CHARACTER
PD SIGNED PACKED DECIMAL
FOR VARIABLE ADD 4 TO SORT FIELDS
SYNCSORT
REPLACES MVS SORT UTILITY DF/SORT
CREATE HEADERS/TRAILERS
CONFIGURATION MANAGEMENT
TUNING/SORT SPACE CALCULATION/DASD CAPACITY ANALYSIS
SYSTEM EXIT (IEFACTRT)
RETURN CODE
EXCPS I/OS
I/O DEVICE CONNECT TIME
TASK CONTROL (TCB) CPU TIME
SRB (SYSTEM SERVICES) CPU TIME
CLOCK (WALL) TIME
PAGING OPERATIONS
SWAPS
JOB COLLECTION OF JOB STEPS
RESTART
MSGCLASS SYSTEM MESSAGES
CLASS
NOTIFY
TYPRUN=SCAN
REGION
TIME
ALSO: RACF PROTECTION
EXEC
PARM
COND
ONLY IF PRIOR TERMINATES
EVEN IF PRIOR TERMINATES execute step even if prceeding step has failed
(0,NE,stepname)
COND=(#,GT/LT/NE/GE,STEP#)
DD DATA DEFINITION
DSN
&&TEMP temp pds &&dsn(mem1) temporary dataset
*.DDNAME
DUMMY test program flow without processing data
NULLFILE defines a dummy data set
DISP
UN/CATLG MOD SHR OLD NEW PASS DELETE
Status,normal terminal disp, abnromal termination disp
(MOD,DELETE) delete disk that may or may not exist
SPACE
RLSE
DCB
DEN=3 1600 BPI
DEN=4 6250 BPI
RECFM F/FB/S/V/VB/U
LRECL
BLKSIZE SYSTEM DETERMINED FOR DISK I.E. DO NOT NEED DCB OR =0
TRTCH=COMP RECORDING TECHNIQUE NOCOMP IDRC
improved data recording capability
UNIT
DEFER DONT MOUNT UNTIL NEEDED
AFF UNIT AFFINITY DEVICE REQUIRED FOR DD UNIT=ADD=DD1
REQUEST THAT A VOLUME BE MOUNTED USING THE SAME DEVICE
20
LABEL
RETPD
EXPDT
(# of files, NSL/BLP/SL,EXPDT=98000)Tape SLH F1 T h2 f1 = label=2,blp
VOL
RETAIN RETAIN VOLUME
(,,,10)
TAPE
INSTREAM PROC/PEND SAME SET OF JCL CATALOGED IN A PDS PROCEDURE LIBRARY
Aaa PROC MAX # IS 15
PEND
EXEC proc=aaa
DD * OVERRIDES to include instream data
PROCEDURE nested procedures MVS/ESA v. 4 procedure that calls other procedures up to 15 levels
RESTART
BACKWARD REFERENCE REF A VOLUME FROM A PREVIOUS VOL=REF
REFERBACK //OUT1 OUTPUT CLASS=A
//RPT1 DD SYSOUT=(,),OUTPUT=(*.OUt1)
JES2 CONTROL the input and ouput processing of jobs
JOB ENTRY SUBSTEM
/*ROUTE PRINT RMT1
/*JOBPARM PROCLIB=PROC01
JOBLIB/STEPLIB
The two techniques use to pass information (a Parameter) from JCL to a program are as follows.
Technique Description
via PARM= This technique uses a PARM=parameter keyword on the EXEC statement in JCL. The COBOL program
requires a LINKAGE SECTION.
via SYSIN This technique requires SYSIN statement followed by the parameter to be placed in the JCL. The COBOL
program requires an "ACCEPT parameter from SYSIN" to be coded in the COBOL program. If the SYSIN
statement is missing in the JCL the ACCEPT will ABEND with a "File not found" message. To avoid this it
will be necessary to use a "//SYSIN DD DUMMY" statment in the JCL when a parameter is not being
passed.
The following two section describe parameter-passing in more detail. Simply click on one of the following items to learn
more or download a set of sample programs that describe how to pass a parameter string from JCL to a COBOL
program.
To pass a parameter from JCL to a program requires the use of the "PARM=" keyword with the EXEC statement. The
following JCL statement shows an EXEC statement without a parameter defined.
//* *******************************************************************
//* Step
1 of 2, Execute the COBOL program without a parameter.
//*
//CBLPARS1 EXEC PGM=CBLPARC1
The following JCL statement shows an EXEC statement with a parameter defined by using the "PARM=" keyword.
Notice the comma immediately after the program name. The parameter following the "PARM=" keyword requires the
apostophes if the text string contains space characters.
//* *******************************************************************
//* Step
2 of 2, Execute the COBOL program with a parameter.
//*
//CBLPARS2 EXEC PGM=CBLPARC1,
//
PARM='SimoTime, When technology complements business'
To pass a parameter from SYSIN to a program requires the use of DD statement for SYSIN. The following JCL
statement is required if no parameter is passed.
//* *******************************************************************
//* Step
1 of 2, Execute the COBOL program without a parameter.
//*
//SYSIN DD DUMMY
The following JCL statements show what is required to pass information via SYSIN.
//* *******************************************************************
//* Step
2 of 2, Execute the COBOL program with a parameter.
//*
//SYSIN
DD *
Parameter from SYSIN...
//*
The following shows the COBOL statement required.
A. A symbolic is a PROC placeholder; the value for the symbolic is supplied when the
PROC is invoked, e.g. &symbol=value. An override replaces the PROC's statement with
another one; it substitutes for the entire statement.
Q: What's DCB? Explain various parameters in it?
BLKSIZE, DSORG, LRECL, RECFM
Q: What's IDCAMS? . Whats the use of it?
Define GDG, VSAM FILES, REPRO
Q: What's SOC7? How to find out this error in JCL?
DATA MOVEMENT ERROR.
Q: What's the region parameter and what happens if the if the memory
size exceeds specified in REGION parameter?
822
Q: If u want execute a job for 10 or 11 hours what u will do?
Time=1440
Q: In a job 1,2,3,4 job steps are abended. But u want execute the job step5 anyhow?
How can u do it?
Cond=only in step5.
Q: what's b37 error code?.
In sufficient primary allocation of a data set.
Q: what's the parm parameter?.
Pass the values to the program.
Q: Why do you use a CONTROL CARD?
A: A CONTROL CARD can be a member of a PDS or a sequential dataset and is used for
storing the date fields, definitions of VSAM files etc , We use CONTROL CARD because
we cannot use an in-stream procedure in a procedure. Generally you will be calling a
PROC from your JCL and you cannot code instream procedure in the PROC and so you
will point to the dataset, which is called control card.
Q: How do you submit JCL via a Cobol program?
In your JCL define as:
//JOBA JOB 1111,JOB1
//STEP01 EXEC PGM=PROG1
//ddname DD SYSOUT=(*,INTRDR)....and
Your COBOL (PROG1) should look like this:
SELECT JCL-FILE ASSIGN TO ddname.
Open this file and write the JCL statements into this file.
Example:
MOVE '//TESTJOB JOB 1111,VISVEISH' TO JCL-REC.MOVE '//STEP01 EXEC
PGM=IEFBR14' TO JCL-REC.and close this file. Then TESTJOB will be submitted.
Q: How do you submit a JCL under CICS environment?
Pass all the JCL codes to a COBOL variable (should be declared using OCCURS clause)
and then write the line one by one to the spool using CICS commands like SPOOLClose,
SPOOLOpen and SPOOLWrite. For more help refer CECI of CICS or CICS manual.
Q: What is the parameter to be passed in the job card for the unlimited time,
irrespective of the job class?
TIME=1440
Q: Define COND parameter in JCL?
COND is a condition parameter, consists of 2 subparameters, 1st - return code from the
previous step, 2nd - condition. If COND is true, the step on which COND is coded will be
BYPASSED.
It is compared with system return code of previous step
//STEP1 EXEC PGM=ABCD
//STEP2 EXEC PGM=XYZ, cond=(4,lt)
STEP 2 will be executed when system return code of step1 is less than 4.
Q: What is meant by S0C-07 system ABEND codes?
S0C7 - Data exception error - you will get it whenever you are trying to move the low
values or spaces into the numeric field, or compare the numeric fields with low values, or
try to do some arithmetic operations on the low values. To avoid this you have to always
initialize the numeric fields otherwise they will contain the low values.
Q: How to pass the temp dataset form one JOB step to another?
By specifying the DISP as PASS for the temp dataset
Q: Write a JCL to execute a Job by 7:00 AM on Jan 20,1986?
The code is:
//*MAIN DEADLINE=(0700,B,012086)
Q: How many types of libraries are there in JCL?
Libraries are of three types:
System Libraries:- such as SYS1.LINKLIB
Private Libraries:- Specified in a JOBLIB or STEPLIB DD STATEMENTS.
Temporary Libraries:- Created in a previous step of the Job.
Q: What do you mean by INCLUDE statement in JCL?
An INCLUDE statement identifies a member of a PDS that contains this set of JCL
statements is called an INCLUDE group. The system replaces the INCLUDE statement
with the statements in the INCLUDE group.
Q: What are the Maximum number of In-stream procedures you can code in any
JCL?
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 JCL?
A: 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
Submitted by: Aurobindo K.S. ([email protected])
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: 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 & CYL ?
A: 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 wouldnt 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
IEBCOPY
PDSs.
REPRO
the IEBGENER
Q. I have multiple jobs ( JCLs with several JOB cards ) in a member. What happens
if I submit it?
A. Multiple jobs are submitted (as many jobs as the number of JOB cards).
Q. I have a COBOL program that ACCEPTs some input data. How do you code the
JCL statment for this? ( How do you code instream data in a JCL? )
A. //SYSIN DD*
input data
input data
/*
Q. Can you code instream data in a PROC ?
A. No.
Q. How do you overcome this limitation ?
A. One way is to code SYSIN DD DUMMY in the PROC, and then override this from
the JCL with instream data.
Q. How do you run a COBOL batch program from a JCL? How do you run a
COBOL/DB2 program?
A. To run a non DB2 program,
//STEP001 EXEC PGM=MYPROG
To run a DB2 program,
//STEP001 EXEC PGM=IKJEFT01
//SYSTSIN DD *
DSN SYSTEM(....)
RUN PROGRAM(MYPROG)
PLAN(.....) LIB(....) PARMS(...)
/*
Q. What is STEPLIB, JOBLIB? What is it used for? - GS
A. 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.
Q. What is order of searching of the libraries in a JCL? - GS
A. First any private libraries as specified in the STEPLIB or JOBLIB, then the system
libraries such as SYS1.LINKLIB. The system libraries are specified in the linklist.
Q. What happens if both JOBLIB & STEPLIB is specified ?
A. JOBLIB is ignored.
JOB statement
Accounting Information, MSGCLASS, CLASS, MSGLEVEL, NOTIFY, USERID,
PASSWD, COND, REGION, RESTART
EXEC statement
The EXEC statement identifies the program to be executed via a PGM=program name
keyword
DD statement
The DD statement links the external Data Set 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
What is a PROC? What is the difference between an instream and a
catalogued PROC?
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.
In-stream Procedure & Catalog Procedure?
In-stream Procedures begin with a PROC stmt and must be terminated by a PEND stmt.
(PEND can also be coded for a cataloged Procedure, but it isnt required) The PENC stmt
coded as :
//Option-name PEND comments
The In-stream Procedure is placed following the JOB statement of the JOB. Up to 15 nstream Procedures can be included in a single job. Each In-stream Procedure may be
invoked several times with in the job.
//QZ5P13TD JOB (18636), HARISH, CLASS=A
//RUN PROC
In-stream procedure starts from here
//GO EXEC PGM=ONE
//SYSOUT DD SYSOUT=A
//PEND
//STEP1 EXEC RUN
procedure is used like
..
A set of JCL stmts consisting of a PROC stmt and one or more EXEC and DD stmt
(steps), which is placed in a procedure library. It executed by an EXEC (procedure) stmt
in another data set (called the execution JCL).
STEPLIB, JOBLIB
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
MODES
DISP=OLD denotes exclusive control of the Data Set;
DISP=SHR means there is no exclusivity .
DISP=MOD is used when the Data Set can be extended, ie, you can add records at the
end of an existing Data Set
DISPOSITION OF (NEW,CATLG,DELETE)
That this is a new Data Set and needs to be allocated, to CATLG the Data Set if the step
is successful and to delete the Data Set if the step abends.
DISPOSITION OF (NEW,CATLG,KEEP)
That this is a new Data Set and needs to be allocated, to CATLG the Data Set if
the step is successful and to KEEP but not CATLG the Data Set if the step
abends Thus if the step abends, the Data Set would not be catalogued and we
would need to supply the Vol ser the next time we refer to it
DISPOSITION OF (,DELETE)
The MOD will cause the Data Set to be created (if it does not exist), and then the
two DELETE will cause the Data Set to be deleted whether the step abends or
not This disposition is used to clear out a Data Set at the beginning of a job
DISPOSITION OF (NEW,PASS,DELETE)
This is a new File and create it, if the step terminates normally, pass it to the
subsequent steps and if step abends, delete it This Data Set will not exist
beyond the JCL
What is the DD statement for a output File
Unless allocated earlier, will have the following parameters:
DISP=(NEW,CATLG,DELETE), UNIT , SPACE & DCB
How do you create a temporary Data Set? Where will you use them
Temporary Data Sets can be created either by not specifying any DSNAME or by
specifying the temporary File indicator as in DSN=&&TEMP
We use them to carry the output of one step to another step in the same job The
Data Set will not be retained once the job completes
How do you restart a proc from a particular step
In job card, specify RESTART=proc step step name where procstep = name of
the jcl step that invoked the proc and stepname = name of the proc step where
you want execution to start
'S0C7' abend
Caused by invalid data in a numeric field
What is a S0C4 error ?
Storage violation error - can be due to various reasons eg: READING a File that
is not open, invalid address referenced due to subscript error
S322 abends
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
SD37, SB37, SE37
All indicate Data Set 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
difference between the positional parameters & keyword parameters
a).Sequence predetermined
b) Parameters separated by commas
c) Omitted parameters must be indicated by two consecutive commas.
d) Installation dependent
DUMMY Paramere
For an output File DUMMY specifies that the output is to be discarded For input it
specifies that the File is empty.
COND Parameter
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 (If this answer confuses you, welcome to the club - memorize it
and don't ask questions!).
PARM Parameter
The value after the PARM= specifies control information to be passed to the
executing program of the job step
RESTART Parameter
A RESTART is a JOB statement keyword It is used to restart the job at a specified step
rather than at the beginning
REGION parameter
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 .
TIME parameter
TIME parameter can be used to overcome S322 abends for programs that
genuinely need more CPU time TIME=1440 means no CPU time limit is to be
applied to this step
COND=EVEN and COND=ONLY
Means execute this step even if any of the previous steps, terminated abnormally
Means execute this step only if any of the previous steps, terminated abnormally
JCL
1.What is primary allocation for a dataset?
2.What is the difference between primary and secondary allocations for a
dataset?
3.How many extents are possible for a sequential file ? For a VSAM file?
4.What does a disposition of (NEW,CATLG,DELETE) mean? 5.What does a disposition of (NEW,CATLG,KEEP) mean? 6.How do you access a file that had a disposition of KEEP? 7.What does a disposition of (MOD,DELETE,DELETE) mean ?
8.What is the DD statement for a output file?
9.What do you do if you do not want to keep all the space allocated to a
dataset? -
10.What is DISP=(NEW,PASS,DELETE)?
11.How do you create a temporary dataset? Where will you use them?
12.How do you restart a proc from a particular step? 13.How do you skip a particular step in a proc/JOB? 14.A PROC has five steps. Step 3 has a condition code. How can you
override/nullify this condition code? 15.How do you override a specific DDNAME/SYSIN in PROC from a JCL?
16.What is NOTCAT 2 17.What is 'S0C7' abend? 18.What is a S0C4 error ? 19.What are SD37, SB37, SE37 abends?
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.
20.What is S322 abend ?
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.
22.What does the TIME parameter signify ? What does TIME=1440 mean ?
TIME parameter can be used to overcome S322 abends for programs that
genuinely need more CPU time. TIME=1440 means no CPU time limit is to be
applied to this step.
23.What is COND=EVEN ?
24.What is COND=ONLY ?
25.How do you check the syntax of a JCL without running it?
TYPERUN=SCAN on the JOB card or use JSCAN.
26.What does IEBGENER do?
27.How do you send the output of a COBOL program to a member of a PDS?
28.I have multiple jobs ( JCLs with several JOB cards ) in a member. What
happens if I submit it?
29.I have a COBOL program that ACCEPTs some input data. How do you code
the JCL statment for this? ( How do you code instream data in a JCL? )
30.Can you code instream data in a PROC ? No.
31. How do you overcome this limitation ?
One way is to code SYSIN DD DUMMY in the PROC, and then override this from
the JCL with instream data.
32.How do you run a COBOL batch program from a JCL? How do you run a
COBOL/DB2 program?
To run a non DB2 program,
//STEP001 EXEC PGM=MYPROG
To run a DB2 program,
//STEP001 EXEC PGM=IKJEFT01
//SYSTSIN DD *
DSN SYSTEM(....)
RUN PROGRAM(MYPROG)
PLAN(.....) LIB(....) PARMS(...)
/*
33.What is STEPLIB, JOBLIB? What is it used for? 34.What is order of searching of the libraries in a JCL? First any private libraries as specified in the STEPLIB or JOBLIB, then
the system libraries such as SYS1.LINKLIB. The system libraries are
specified in the linklist.
A: 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 & CYL ?
A: 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 wouldnt 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
IEBCOPY
PDSs.
REPRO
the IEBGENER
Q. I have multiple jobs ( JCLs with several JOB cards ) in a member. What happens
if I submit it?
A. Multiple jobs are submitted (as many jobs as the number of JOB cards).
Q. I have a COBOL program that ACCEPTs some input data. How do you code the
JCL statment for this? ( How do you code instream data in a JCL? )
A. //SYSIN DD*
input data
input data
/*
Q. Can you code instream data in a PROC ?
A. No.
Q. How do you overcome this limitation ?
A. One way is to code SYSIN DD DUMMY in the PROC, and then override this from
the JCL with instream data.
Q. How do you run a COBOL batch program from a JCL? How do you run a
COBOL/DB2 program?
A. To run a non DB2 program,
//STEP001 EXEC PGM=MYPROG
To run a DB2 program,
//STEP001 EXEC PGM=IKJEFT01
//SYSTSIN DD *
DSN SYSTEM(....)
RUN PROGRAM(MYPROG)
PLAN(.....) LIB(....) PARMS(...)
/*
Q. What is STEPLIB, JOBLIB? What is it used for? - GS
A. 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.
Q. What is order of searching of the libraries in a JCL? - GS
A. First any private libraries as specified in the STEPLIB or JOBLIB, then the system
libraries such as SYS1.LINKLIB. The system libraries are specified in the linklist.
Q. What happens if both JOBLIB & STEPLIB is specified ?
A. JOBLIB is ignored.
JOB statement
Accounting Information, MSGCLASS, CLASS, MSGLEVEL, NOTIFY, USERID,
PASSWD, COND, REGION, RESTART
EXEC statement
The EXEC statement identifies the program to be executed via a PGM=program name
keyword
DD statement
The DD statement links the external Data Set 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
What is a PROC? What is the difference between an instream and a
catalogued PROC?
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.
In-stream Procedure & Catalog Procedure?
In-stream Procedures begin with a PROC stmt and must be terminated by a PEND stmt.
(PEND can also be coded for a cataloged Procedure, but it isnt required) The PENC stmt
coded as :
//Option-name PEND comments
The In-stream Procedure is placed following the JOB statement of the JOB. Up to 15 nstream Procedures can be included in a single job. Each In-stream Procedure may be
invoked several times with in the job.
//QZ5P13TD JOB (18636), HARISH, CLASS=A
//RUN PROC
In-stream procedure starts from here
//GO EXEC PGM=ONE
//SYSOUT DD SYSOUT=A
//PEND
//STEP1 EXEC RUN
procedure is used like
..
A set of JCL stmts consisting of a PROC stmt and one or more EXEC and DD stmt
(steps), which is placed in a procedure library. It executed by an EXEC (procedure) stmt
in another data set (called the execution JCL).
STEPLIB, JOBLIB
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
MODES
DISP=OLD denotes exclusive control of the Data Set;
DISP=SHR means there is no exclusivity .
DISP=MOD is used when the Data Set can be extended, ie, you can add records at the
end of an existing Data Set
DISPOSITION OF (NEW,CATLG,DELETE)
That this is a new Data Set and needs to be allocated, to CATLG the Data Set if the step
is successful and to delete the Data Set if the step abends.
DISPOSITION OF (NEW,CATLG,KEEP)
That this is a new Data Set and needs to be allocated, to CATLG the Data Set if
the step is successful and to KEEP but not CATLG the Data Set if the step
abends Thus if the step abends, the Data Set would not be catalogued and we
would need to supply the Vol ser the next time we refer to it
DISPOSITION OF (,DELETE)
The MOD will cause the Data Set to be created (if it does not exist), and then the
two DELETE will cause the Data Set to be deleted whether the step abends or
not This disposition is used to clear out a Data Set at the beginning of a job
DISPOSITION OF (NEW,PASS,DELETE)
This is a new File and create it, if the step terminates normally, pass it to the
subsequent steps and if step abends, delete it This Data Set will not exist
beyond the JCL
What is the DD statement for a output File
Unless allocated earlier, will have the following parameters:
DISP=(NEW,CATLG,DELETE), UNIT , SPACE & DCB
How do you create a temporary Data Set? Where will you use them
Temporary Data Sets can be created either by not specifying any DSNAME or by
specifying the temporary File indicator as in DSN=&&TEMP
We use them to carry the output of one step to another step in the same job The
Data Set will not be retained once the job completes
How do you restart a proc from a particular step
In job card, specify RESTART=proc step step name where procstep = name of
the jcl step that invoked the proc and stepname = name of the proc step where
you want execution to start
'S0C7' abend
Caused by invalid data in a numeric field
What is a S0C4 error ?
Storage violation error - can be due to various reasons eg: READING a File that
is not open, invalid address referenced due to subscript error
S322 abends
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
SD37, SB37, SE37
All indicate Data Set 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
difference between the positional parameters & keyword parameters
a).Sequence predetermined
b) Parameters separated by commas
c) Omitted parameters must be indicated by two consecutive commas.
d) Installation dependent
DUMMY Paramere
For an output File DUMMY specifies that the output is to be discarded For input it
specifies that the File is empty.
COND Parameter
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 (If this answer confuses you, welcome to the club - memorize it
and don't ask questions!).
PARM Parameter
The value after the PARM= specifies control information to be passed to the
executing program of the job step
RESTART Parameter
A RESTART is a JOB statement keyword It is used to restart the job at a specified step
rather than at the beginning
REGION parameter
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 .
TIME parameter
TIME parameter can be used to overcome S322 abends for programs that
genuinely need more CPU time TIME=1440 means no CPU time limit is to be
applied to this step
COND=EVEN and COND=ONLY
Means execute this step even if any of the previous steps, terminated abnormally
Means execute this step only if any of the previous steps, terminated abnormally
The two techniques use to pass information (a Parameter) from JCL to a program are as follows.
Technique Description
via PARM= This technique uses a PARM=parameter keyword on the EXEC statement in JCL. The COBOL program
requires a LINKAGE SECTION.
via SYSIN This technique requires SYSIN statement followed by the parameter to be placed in the JCL. The COBOL
program requires an "ACCEPT parameter from SYSIN" to be coded in the COBOL program. If the SYSIN
statement is missing in the JCL the ACCEPT will ABEND with a "File not found" message. To avoid this it
will be necessary to use a "//SYSIN DD DUMMY" statment in the JCL when a parameter is not being
passed.
The following two section describe parameter-passing in more detail. Simply click on one of the following items to learn
more or download a set of sample programs that describe how to pass a parameter string from JCL to a COBOL
program.
To pass a parameter from JCL to a program requires the use of the "PARM=" keyword with the EXEC statement. The
following JCL statement shows an EXEC statement without a parameter defined.
//* *******************************************************************
//* Step
1 of 2, Execute the COBOL program without a parameter.
//*
//CBLPARS1 EXEC PGM=CBLPARC1
The following JCL statement shows an EXEC statement with a parameter defined by using the "PARM=" keyword.
Notice the comma immediately after the program name. The parameter following the "PARM=" keyword requires the
apostophes if the text string contains space characters.
//* *******************************************************************
//* Step
2 of 2, Execute the COBOL program with a parameter.
//*
//CBLPARS2 EXEC PGM=CBLPARC1,
//
PARM='SimoTime, When technology complements business'
To pass a parameter from SYSIN to a program requires the use of DD statement for SYSIN. The following JCL
statement is required if no parameter is passed.
//* *******************************************************************
//* Step
1 of 2, Execute the COBOL program without a parameter.
//*
//SYSIN DD DUMMY
The following JCL statements show what is required to pass information via SYSIN.
//* *******************************************************************
//* Step
2 of 2, Execute the COBOL program with a parameter.
//*
//SYSIN
DD *
Parameter from SYSIN...
//*
The following shows the COBOL statement required.
COND is a condition parameter, consists of 2 subparameters, 1st - return code from the
previous step, 2nd - condition. If COND is true, the step on which COND is coded will be
BYPASSED.
It is compared with system return code of previous step
//STEP1 EXEC PGM=ABCD
//STEP2 EXEC PGM=XYZ, cond=(4,lt)
STEP 2 will be executed when system return code of step1 is less than 4.
Q: What is meant by S0C-07 system ABEND codes?
S0C7 - Data exception error - you will get it whenever you are trying to move the low
values or spaces into the numeric field, or compare the numeric fields with low values, or
try to do some arithmetic operations on the low values. To avoid this you have to always
initialize the numeric fields otherwise they will contain the low values.
Q: How to pass the temp dataset form one JOB step to another?
By specifying the DISP as PASS for the temp dataset
Q: Write a JCL to execute a Job by 7:00 AM on Jan 20,1986?
The code is:
//*MAIN DEADLINE=(0700,B,012086)
Q: How many types of libraries are there in JCL?
Libraries are of three types:
System Libraries:- such as SYS1.LINKLIB
Private Libraries:- Specified in a JOBLIB or STEPLIB DD STATEMENTS.
Temporary Libraries:- Created in a previous step of the Job.
Q: What do you mean by INCLUDE statement in JCL?
An INCLUDE statement identifies a member of a PDS that contains this set of JCL
statements is called an INCLUDE group. The system replaces the INCLUDE statement
with the statements in the INCLUDE group.
Q: What are the Maximum number of In-stream procedures you can code in any
JCL?
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 JCL?
A: 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 difference between primary and secondary allocations for a dataset?
A. Secondary allocation is done when more space is required than what has already been
allocated.
Q. .How many extents are possible for a sequential file ? For a VSAM file ?
A.16 extents on a volume for a sequential file and 123 for a VSAM file.
Q. What does a disposition of (NEW,CATLG,DELETE) mean? - GS
A. That this is a new dataset and needs to be allocated, to CATLG the dataset if the step
is successful and to delete the dataset if the step abends.
Q. What does a disposition of (NEW,CATLG,KEEP) mean? - GS
A. 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.
Q. How do you access a file that had a disposition of KEEP? - GS
A. Need to supply volume serial no. VOL=SER=xxxx.
Q. What does a disposition of (MOD,DELETE,DELETE) mean ?
A. The MOD will cause the dataset to be created (if it does not exist), and then the two
DELETEs will cause the dataset to be deleted whether the step abends or not. This
disposition is used to clear out a dataset at the beginning of a job.
Q. What is the DD statement for a output file?
A. Unless allocated earlier, will have the foll parameters: DISP=(NEW,CATLG,DELETE),
UNIT , SPACE & DCB .
Q. What do you do if you do not want to keep all the space allocated to a dataset? GS
A. Specify the parameter RLSE ( release ) in the SPACE e.g. SPACE=(CYL,
(50,50),RLSE)
Q. What is DISP=(NEW,PASS,DELETE)?
A. This is a new file and create it, if the step terminates normally, pass it to the subsequent
steps and if step abends, delete it. This dataset will not exist beyond the JCL.
Q. How do you create a temporary dataset? Where will you use them?
A. Temporary datasets can be created either by not specifying any DSNAME or by
specifying the temporary file indicator as in DSN=&&TEMP.
We use them to carry the output of one step to another step in the same job. The
dataset will not be retained once the job completes.
Q. How do you run a COBOL batch program from a JCL? How do you run a
COBOL/DB2 program?
A. To run a non DB2 program,
//STEP001 EXEC PGM=MYPROG
To run a DB2 program,
//STEP001 EXEC PGM=IKJEFT01
//SYSTSIN DD *
DSN SYSTEM(....)
RUN PROGRAM(MYPROG)
PLAN(.....) LIB(....) PARMS(...)
/*
Q. What is STEPLIB, JOBLIB? What is it used for? - GS
A. 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.
Q. What is order of searching of the libraries in a JCL? - GS
A. First any private libraries as specified in the STEPLIB or JOBLIB, then the system
libraries such as SYS1.LINKLIB. The system libraries are specified in the linklist.
Q. What happens if both JOBLIB & STEPLIB is specified ?
A. JOBLIB is ignored.
Q. When you specify mutiple datasets in a JOBLIB or STEPLIB, what factor
determines the order? - GS
A. The library with the largest block size should be the first one.
Q. How to change default proclib ?
A. //ABCD JCLLIB ORDER=(ME.MYPROCLIB,SYS1.PROCLIB)
Q. The disp in the JCL is MOD and the program opens the file in OUTPUT mode.
What happens ? The disp in the JCL is SHR and the pgm opens the file in
EXTEND mode. What happens ?
A. Records will be written to end of file (append) when a WRITE is done in both cases.
Q. What are the valid DSORG values ?
A. PS - QSAM, PO - Partitioned, IS - ISAM
Q. What are the differences between JES2 & JES3 ?
A. JES3 allocates datasets for all the steps before the job is scheduled. In JES2,
allocation of datasets required by a step are done only just before the step executes.
????? Can anyone add more
Q. What is the meaning of data definition name (ddname) and dataset name
(dsname) in the DD statement?
A. 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.
Q. How is the keyword DUMMY used in JCL?
A. For an output file DUMMY specifies that the output is to be discarded. For input it
specifies that the file is empty.
Q. What does the keyword DCB mean and what are some of the keywords
associated with it?
A. 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.
Q. What is the difference between BLKSIZE and LRECL?
A. BLKSIZE specifies the number of bytes
JOB statement
Accounting Information, MSGCLASS, CLASS, MSGLEVEL, NOTIFY, USERID,
PASSWD, COND, REGION, RESTART
EXEC statement
The EXEC statement identifies the program to be executed via a PGM=program name
keyword
DD statement
The DD statement links the external Data Set 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
What is a PROC? What is the difference between an instream and a
catalogued PROC?
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.
In-stream Procedure & Catalog Procedure?
In-stream Procedures begin with a PROC stmt and must be terminated by a PEND stmt.
(PEND can also be coded for a cataloged Procedure, but it isnt required) The PENC stmt
coded as :
//Option-name PEND comments
The In-stream Procedure is placed following the JOB statement of the JOB. Up to 15 nstream Procedures can be included in a single job. Each In-stream Procedure may be
invoked several times with in the job.
//QZ5P13TD JOB (18636), HARISH, CLASS=A
//RUN PROC
In-stream procedure starts from here
//GO EXEC PGM=ONE
//SYSOUT DD SYSOUT=A
//PEND
//STEP1 EXEC RUN
procedure is used like
..
A set of JCL stmts consisting of a PROC stmt and one or more EXEC and DD stmt
(steps), which is placed in a procedure library. It executed by an EXEC (procedure) stmt
in another data set (called the execution JCL).
STEPLIB, JOBLIB
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
MODES
DISP=OLD denotes exclusive control of the Data Set;
DISP=SHR means there is no exclusivity .
DISP=MOD is used when the Data Set can be extended, ie, you can add records at the
end of an existing Data Set
DISPOSITION OF (NEW,CATLG,DELETE)
That this is a new Data Set and needs to be allocated, to CATLG the Data Set if the step
is successful and to delete the Data Set if the step abends.
DISPOSITION OF (NEW,CATLG,KEEP)
That this is a new Data Set and needs to be allocated, to CATLG the Data Set if
the step is successful and to KEEP but not CATLG the Data Set if the step
abends Thus if the step abends, the Data Set would not be catalogued and we
would need to supply the Vol ser the next time we refer to it
DISPOSITION OF (,DELETE)
The MOD will cause the Data Set to be created (if it does not exist), and then the
two DELETE will cause the Data Set to be deleted whether the step abends or
not This disposition is used to clear out a Data Set at the beginning of a job
DISPOSITION OF (NEW,PASS,DELETE)
This is a new File and create it, if the step terminates normally, pass it to the
subsequent steps and if step abends, delete it This Data Set will not exist
beyond the JCL
What is the DD statement for a output File
Unless allocated earlier, will have the following parameters:
DISP=(NEW,CATLG,DELETE), UNIT , SPACE & DCB
How do you create a temporary Data Set? Where will you use them
Temporary Data Sets can be created either by not specifying any DSNAME or by
specifying the temporary File indicator as in DSN=&&TEMP
We use them to carry the output of one step to another step in the same job The
Data Set will not be retained once the job completes
How do you restart a proc from a particular step
In job card, specify RESTART=proc step step name where procstep = name of
the jcl step that invoked the proc and stepname = name of the proc step where
you want execution to start
'S0C7' abend
Caused by invalid data in a numeric field
What is a S0C4 error ?
Storage violation error - can be due to various reasons eg: READING a File that
is not open, invalid address referenced due to subscript error
S322 abends
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
SD37, SB37, SE37
All indicate Data Set 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
difference between the positional parameters & keyword parameters
a).Sequence predetermined
b) Parameters separated by commas
c) Omitted parameters must be indicated by two consecutive commas.
d) Installation dependent
DUMMY Paramere
For an output File DUMMY specifies that the output is to be discarded For input it
specifies that the File is empty.
COND Parameter
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 (If this answer confuses you, welcome to the club - memorize it
and don't ask questions!).
PARM Parameter
The value after the PARM= specifies control information to be passed to the
executing program of the job step
RESTART Parameter
A RESTART is a JOB statement keyword It is used to restart the job at a specified step
rather than at the beginning
REGION parameter
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 .
TIME parameter
TIME parameter can be used to overcome S322 abends for programs that
genuinely need more CPU time TIME=1440 means no CPU time limit is to be
applied to this step
COND=EVEN and COND=ONLY
Means execute this step even if any of the previous steps, terminated abnormally
Means execute this step only if any of the previous steps, terminated abnormally