Mainframe Questions Pravin Kumar 1 of 45

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 45

-1-

# FREQUENTLY ASKED INTERVIEW QUESTION (COBOL)


1. What are the different data types available in COBOL?
Alpha-numeric (X), alphabetic (A) and numeric (9).
2. What does the INITIALIZE verb do?
Alphabetic, Alphanumeric fields & alphanumeric edited items are
set to SPACES.
Numeric, Numeric edited items set to ZERO.
FILLER , OCCURS DEPENDING ON items left untouched.
3. What is level 66 used for ?
For RENAMES clause.
4. What does the IS NUMERIC clause establish ?
IS NUMERIC can be used on alphanumeric items, signed numeric
& packed decimal items and usigned numeric & packed decimal
items. IS NUMERIC returns TRUE if the item only consists of 0-9.
However, if the item being tested is a signed item, then it may
contain 0-9, + and - .
5. How do you define a table/array in COBOL?
01 ARRAYS.
05 ARRAY1 PIC X(9) OCCURS 10 TIMES.
05 ARRAY2 PIC X(6) OCCURS 20 TIMES INDEXED BY WSINDEX.
6. Can the OCCURS clause be at the 01 level?
No.
7. What is the difference between index and subscript?
Subscript refers to the array occurrence while index is the
displacement (in no of bytes) from the beginning of the array. An
index can only be modified using PERFORM, SEARCH & SET.
Need to have index for a table in order to use SEARCH, SEARCH
ALL.
8. What is the difference between SEARCH and SEARCH ALL?
SEARCH - is a serial search.
SEARCH ALL - is a binary search & the table must be sorted
( ASCENDING/DESCENDING KEY clause to be used & data
loaded in this order) before using SEARCH ALL.
9. What should be the sorting order for SEARCH ALL?
Mainframe Questions

Pravin Kumar

Page 1 of 45

-2-

It can be either ASCENDING or DESCENDING. ASCENDING is


default. If you want the search to be done on an array sorted in
descending order, then while defining the array, you should give
DESCENDING KEY clause. (You must load the table in the
specified order).

10. What is binary search?


Search on a sorted array. Compare the item to be searched with
the item at the center. If it matches, fine else repeat the process
with the left half or the right half depending on where the item
lies.
11. My program has an array defined to have 10 items. Due to
a bug, I find that even if the program access the 11th item in
this array, the program does not abend. What is wrong with
it?
Must use compiler option SSRANGE if you want array bounds
checking. Default is NOSSRANGE.
12. How do you sort in a COBOL program? Give sort file
definition, sort statement syntax and meaning.
Syntax:
SORT file-1 ON ASCENDING/DESCENDING KEY key....
USING file-2
GIVING file-3.
USING can be substituted by INPUT PROCEDURE IS para-1 THRU
para-2
GIVING can be substituted by OUTPUT PROCEDURE IS para-1
THRU para-2.
File-1 is the sort workfile and must be described using SD entry in
FILE SECTION.
file-2 is the input file for the SORT and must be described using an
FD entry in FILE SECTION and SELECT clause in FILE
CONTROL.
file-3 is the outfile from the SORT and must be described using an
FD entry in FILE SECTION and SELECT clause in FILE
CONTROL.
file-1, file-2 & file-3 should not be opened explicitly.
INPUT PROCEDURE is executed before the sort and records must
be RELEASEd to the sort
work file from the input procedure.

Mainframe Questions

Pravin Kumar

Page 2 of 45

-3-

OUTPUT PROCEDURE is executed after all records have been


sorted. Records from the sort work file must be RETURNed one at
a time to the output procedure.
13. How do you define a sort file in JCL that runs the COBOL
program?
Use the SORTWK01, SORTWK02,..... dd names in the step.
Number of sort datasets depends on the volume of data being
sorted, but a minimum of 3 is required.
14. What is the difference between performing a SECTION and
a PARAGRAPH?
Performing a SECTION will cause all the paragraphs that are part
of the section, to be performed.
Performing a PARAGRAPH will cause only that paragraph to be
performed.

15. What is the use of EVALUATE statement?


Evaluate is like a case statement and can be used to replace
nested Ifs. The difference between EVALUATE and case is that no
'break' is required for EVALUATE i.e. control comes out of the
EVALUATE as soon as one match is made.
16. What are the different forms of EVALUATE statement?
EVALUATE
FILE-STATUS
WHEN A=B AND C=D
imperative stmt
WHEN (D+X)/Y = 4
imperative stmt
WHEN OTHER
imperative stmt
END-EVALUATE
EVALUATE SQLCODE ALSO A=B
TRUE
WHEN 100 ALSO TRUE
imperative stmt
WHEN -305 ALSO FALSE
imperative stmt
END-EVALUATE

EVALUATE SQLCODE ALSO


WHEN 100 ALSO '00'
imperative stmt
WHEN -305 ALSO '32'
imperative stmt
WHEN OTHER
imperative stmt
END-EVALUATE
EVALUATE SQLCODE ALSO
WHEN 100 ALSO A=B
imperative stmt
WHEN -305 ALSO (A/C=4)
imperative stmt
END-EVALUATE

17. How do you come out of an EVALUATE statement?

Mainframe Questions

Pravin Kumar

Page 3 of 45

-4-

After the execution of one of the when clauses, the control is


automatically passed on to the next sentence after the EVALUATE
statement. There is no need of any extra code.
18. In an EVALUATE statement, can I give a complex condition
on a when clause?
Yes.
19. What is a scope terminator? Give examples.
Scope terminator is used to mark the end of a verb e.g.
EVALUATE, END-EVALUATE; IF,
END-IF.
20. How do you do in-line PERFORM?
PERFORM ... <UNTIL> ...
<sentences>
END PERFORM
21. When would you use in-line perform?
When the body of the perform will not be used in other
paragraphs. If the body of the perform is a generic type of code
(used from various other places in the program), it would be
better to put the code in a separate para and use PERFORM
paraname rather than in-line perform.
22.
What is the difference between CONTINUE & NEXT
SENTENCE ?
CONTINUE is like a null statement (do nothing) , while NEXT
SENTENCE transfers control to the next sentence (!!) (A sentence
is terminated by a period)
23. What does EXIT do ?
Does nothing ! If used, must be the only sentence within a
paragraph.
24. Can I redefine an X(100) field with a field of X(200)?
Yes. Redefines just causes both fields to start at the same
location. For example:
01 WS-TOP PIC X(1)
01 WS-TOP-RED REDEFINES WS-TOP PIC X(2).
If you MOVE '12' to WS-TOP-RED,
DISPLAY WS-TOP will show 1 while
DISPLAY WS-TOP-RED will show 12.
25. Can I redefine an X(200) field with a field of X(100) ?
Yes.
Mainframe Questions

Pravin Kumar

Page 4 of 45

-5-

26. What do you do to resolve SOC-7 error?


Basically you need to correcting the offending data.
Many times the reason for SOC7 is an un-initialized numeric item.
Examine that possibility first.
Many installations provide you a
dump for run time abends ( it can be generated also by calling
some subroutines or OS services thru assembly language). These
dumps provide the offset of the last instruction at which the
abend occurred. Examine the compilation output XREF listing to
get the verb and the line number of the source code at this offset.
Then you can look at the source code to find the bug. To get
capture the runtime dumps, you will have to define some datasets
(SYSABOUT etc ) in the JCL. If none of these are helpful, use
judgement and DISPLAY to localize the source of error. Some
installtion might have batch program debugging tools. Use them.
27. How is sign stored in Packed Decimal fields and Zoned
Decimal fields?
Packed Decimal fields:Sign is stored as a hex value in the last
nibble (4 bits ) of the storage.
Zoned Decimal fields:As a default, sign is over punched with the
numeric value stored in the last bite.
28. How is sign stored in a comp-3 field?
It is stored in the last nibble. For example if your number is
+100, it stores hex 0C in the last byte, hex 1C if your number is
101, hex 2C if your number is 102, hex 1D if the number is -101,
hex 2D if the number is -102 etc...
29. How is sign stored in a COMP field ?
In the most significant bit. Bit is on if -ve, off if +ve.
30. What is the difference between COMP & COMP-3 ?
COMP is a binary storage format while COMP-3 is packed decimal
format.
31. What is COMP-1? COMP-2?
COMP-1 - Single precision floating point. Uses 4 bytes.
COMP-2 - Double precision floating point. Uses 8 bytes.
32. How do you define a variable of COMP-1? COMP-2?
No picture clause to be given. Example 01 WS-VAR USAGE
COMP-1.

33. How many bytes does a S9(7) COMP-3 field occupy ?


Will take 4 bytes. Sign is stored as hex value in the last nibble.
General formula is INT((n/2) + 1)), where n=7 in this example.
Mainframe Questions

Pravin Kumar

Page 5 of 45

-6-

34. How many bytes does a S9(7) SIGN TRAILING SEPARATE


field occupy ?
Will occupy 8 bytes (one extra byte for sign).
35. How many bytes will a S9(8) COMP field occupy ?
4 bytes.
36. What is the maximum value that can be stored in S9(8)
COMP?
99999999
37. What is COMP SYNC?
Causes the item to be aligned on natural boundaries. Can be
SYNCHRONIZED LEFT or RIGHT.
For binary data items, the address resolution is faster if they are
located at word boundaries in the memory. For example, on main
frame the memory word size is 4 bytes. This means that each
word will start from an address divisible by 4. If my first variable
is x(3) and next one is s9(4) comp, then if you do not specify the
SYNC clause, S9(4) COMP will start from byte 3 ( assuming that it
starts from 0 ). If you specify SYNC, then the binary data item will
start from address 4. You might see some wastage of memory, but
the access to this computational field is faster.
38. What is the maximum size of a 01 level item in COBOL I?
in COBOL II?
In COBOL II: 16777215
39. How do you reference the following file formats from
COBOL programs:
Fixed Block File - Use ORGANISATION IS SEQUENTIAL. Use
RECORDING MODE IS F, BLOCK CONTAINS 0 .
Fixed Unblocked - Use ORGANISATION IS SEQUENTIAL. Use
RECORDING MODE IS F, do not use BLOCK CONTAINS
Variable Block File - Use ORGANISATION IS SEQUENTIAL. Use
RECORDING MODE IS V, BLOCK CONTAINS 0. Do not code the 4
bytes for record length in FD ie JCL rec length will be max rec
length in pgm + 4
Variable Unblocked - Use ORGANISATION IS SEQUENTIAL. Use
RECORDING MODE IS V, do not use BLOCK CONTAINS. Do not
code 4 bytes for record length in FD ie JCL rec length will be max
rec length in pgm + 4.
ESDS VSAM file - Use ORGANISATION IS SEQUENTIAL.
KSDS VSAM file - Use ORGANISATION IS INDEXED, RECORD
KEY IS, ALTERNATE RECORD KEY IS
RRDS File - Use ORGANISATION IS RELATIVE, RELATIVE KEY
IS
Mainframe Questions

Pravin Kumar

Page 6 of 45

-7-

Printer File - Use ORGANISATION IS SEQUENTIAL. Use


RECORDING MODE IS F, BLOCK CONTAINS 0. (Use
RECFM=FBA in JCL DCB).
40. What are different file OPEN modes available in COBOL?
Open for INPUT, OUTPUT, I-O, EXTEND.
41. What is the mode in which you will OPEN a file for writing?
OUTPUT, EXTEND
42. In the JCL, how do you define the files referred to in a
subroutine ?
Supply the DD cards just as you would for files referred to in the
main program.
43. Can you REWRITE a record in an ESDS file? Can you
DELETE a record from it?
Can rewrite(record length must be same), but not delete.
44. What is file status 92?
Logic error. e.g., a file is opened for input and an attempt is made
to write to it.
45. What is file status 39 ?
Mismatch in LRECL or BLOCKSIZE or RECFM between your
COBOL pgm & the JCL (or the dataset label). You will get file
status 39 on an OPEN.
46. What is Static,Dynamic linking ?
In static linking, the called subroutine is link-edited into the
calling program , while in dynamic
linking, the subroutine & the
main program will exist as separate load modules. You choose
static/dynamic linking by choosing either the DYNAM or
NODYNAM link edit option. (Even if you choose NODYNAM, a
CALL identifier (as opposed to a CALL literal), will translate to a
DYNAMIC call).
A statically called subroutine will not be in its initial state the
next time it is called unless you explicitly use INITIAL or you do a
CANCEL. A dynamically called routine will always be in its initial
state.
47.
What is AMODE(24), AMODE(31), RMODE(24) and
RMODE(ANY)?
( applicable to only MVS/ESA Enterprise
Server).
These are compile/link edit options.
AMODE - Addressing mode. RMODE - Residency mode.
Mainframe Questions

Pravin Kumar

Page 7 of 45

-8-

AMODE(24) - 24 bit addressing. AMODE(31) - 31 bit addressing.


AMODE(ANY) - Either 24 bit or 31 bit addressing depending on
RMODE.
RMODE(24) - Resides in virtual storage below 16 Meg line. Use
this for 31 bit programs that call 24 bit programs. (OS/VS Cobol
pgms use 24 bit addresses only).
RMODE(ANY) - Can reside above or below 16 Meg line.
48. What compiler option would you use for dynamic linking?
DYNAM.
49. What is SSRANGE, NOSSRANGE ?
These are compiler options w.r.t subscript out of range checking.
NOSSRANGE is the default and if chosen, no run time error will
be flagged if your index or subscript goes out of the permissible
range.
50. How do you set a return code to the JCL from a COBOL
program?
Move a value to RETURN-CODE register. RETURN-CODE should
not be declared in your program.

51. How can you submit a job from COBOL programs?


Write JCL cards to a dataset with
/ /xxxxxxx SYSOUT=(A,INTRDR) where 'A' is output class, and
dataset should be opened for output in the program. Define a 80
byte record layout for the file.
52. What are the differences between OS VS COBOL and VS
COBOL II?
OS/VS Cobol pgms can only run in 24 bit addressing mode, VS
Cobol II pgms can run either in 24 bit or 31 bit addressing modes.
Report writer is supported only in OS/VS Cobol.
USAGE IS POINTER is supported only in VS COBOL II.
Reference modification eg: WS-VAR(1:2) is supported only in VS
COBOL II.
EVALUATE is supported only in VS COBOL II.
Scope terminators are supported only in VS COBOL II.
OS/VS Cobol follows ANSI 74 stds while VS COBOL II follows
ANSI 85 stds.
Under CICS Calls between VS COBOL II programs are supported.
53. What are the steps you go through while creating a COBOL
program executable?
DB2 precompiler(if embedded sql used), CICS translator (if CICS
pgm), Cobol compiler, Link editor.
If DB2 program, create plan by binding the DBRMs.
Mainframe Questions

Pravin Kumar

Page 8 of 45

-9-

54. Can you call an OS VS COBOL pgm from a VS COBOL II


pgm ?
In non-CICS environment, it is possible. In CICS, this is not
possible.

Mainframe Questions

Pravin Kumar

Page 9 of 45

- 10 -

# FREQUENTLY ASKED INTERVIEW QUESTION (VSAM)


1. What are the different types of VSAM files available?
ESDS: Entry Sequence Data Set
KSDS: Key Sequence Data Set
RRDS: Relative Data Set
2. What is IDCAMS ?
IDCAMS is the Access Method Services program. You run the
IDCAMS program and supply AMS commands thru SYSIN.
(examples of AMS commands are DELETE, DEFINE, REPRO
etc..).
3. Can AMS commands be run from the TSO prompt ?
Yes
4. Syntax of AMS modal commands ?
Note: these can be used only under IDCAMS and not from the
TSO prompt.
IF LASTCC(or MAXCC) >(or <,= etc..) value THEN DO command set (such as DELETE, DEFINE etc..)
ELSE DO command set
LASTCC - Condition code from the last function(such as delete)
executed
MAXCC - Max condition code that was returned by any of the prev
functions
SET is also a valid AMS command. SET LASTCC (or MAXCC) =
value
The maximum condition code is 16. A cond code of 4 indicates a
warning. A cond code of 8 is usually encountered on a DELETE of
a dataset that is not present.
.Under IDCAMS , multiple functions can be executed, each of which
returns a cond code. What will be the condition code returned to
the operating system ?
The maximum condition code generated is returned as the condition
code of the IDCAMS step.
Mainframe Questions

Pravin Kumar

Page 10 of 45

- 11 -

5. What is Control Interval, Control Area


Control Interval is analogous to a physical block for QSAM files. It
is the unit of i/o. Must be between 512 bytes to 32 k. Usually
either 2K or 4K. A larger control interval increases performance
for sequential processing while the reverse is true for random
access. Under CICS when a record is locked, the entire CI gets
locked.
Control area is a group of control intervals. CA is used during
allocation. CA size is calculated based on the allocation type (cyl,
tracks or records) and can be max of 1 cylinder
6. What is FREESPACE ?
Coded in the DEFINE as FREESPACE(ci ca) where ci is the
percentage of each control interval to be left free for insertions, ca
is the percentage of control intervals in each control area to be
left empty.
7. How do you decide on optimum values for CI, FREESPACE
etc...
CI size should be based on record length, type of processing.
Usually CI is 4K. If record length is larger(>1K), chose 6K or 8K.
FREESPACE should be large if more number of insertions are
envisaged. Usual values are (20 20) when heavy updates are
expected. CI size can be calculated.
8. Would you specify FREESPACE for an ESDS?
No. Because you cannot insert records in an ESDS, also when you
rewrite a record, it must be of the same length. Thus putting any
value for freespace does not make any sense.
9. What is SHAREOPTS ?
SHAREOPTS is a parameter in the DEFINE and specifies how an
object can be shared among users. It is coded as SHAREOPTS(a
b), where a is the cross region share option ie how two or more
jobs on a single system can share the file, while b is the cross
system Share option ie how two or more jobs on different MVSes
can share the file. Usual value is (2 3).
10. What is the meaning of each of the values in SHAREOPTS(2
3)?
Value of 2 for cross region means that the file can be processed
simultaneously by multiple users provided only one of them is an
updater. Value of 3 for cross system means that any number of jobs
can process the file for input or output (VSAM does nothing to
ensure integrity).
11. How do you define a KSDS ?
DEFINE CLUSTER(cluster name) with the INDEXED parameter.
Also specify the ds name for the DATA component & the ds INDEX
Mainframe Questions

Pravin Kumar

Page 11 of 45

- 12 -

component. Other important parms are RECORDSIZE, KEYS,


SHAREOPTIONS.
12. How do you define an ALTINDX ? How do you use ALTINDXs
in batch, CICS pgms ?
DEFINE ALTERNATEINDEX. Important paramters are RELATE
where
you
specify
the
base
cluster
name,
KEYS,
RECORDSIZE,SHAREOPTIONS,UNIQUEKEY(or
NONUNIQUEKEY), DATA(ds name for the data component),
INDEX(ds name for the index component).
Then DEFINE PATH. Important paramters are NAME (ds name
for the path), PATHENTRY (ds name of the alternate index name),
UPDATE(or NOUPDATE) which specifies whether an alt index is
updated when a update to the base cluster takes place.
Then BLDINDEX. Parameters are INDATASET(ds name of base
cluster), OUTDATASET(ds name of AIX).

Using alternate indexes in batch pgms:


In the JCL, you must have DD stmts for the cluster and for the
path(s). In the cobol pgm, SELECT .. ASSIGN TO ddname for base
cluster RECORD KEY IS... ALTERNATE RECORD KEY IS..
Using alternate indexes in CICS pgms:
FCT entries must be created for both base cluster & the path. To
read using the alternate index, use the dd name of the path in
CICS file control commands.
13. What happens when you open an empty VSAM file in a
COBOL program for input?
A VSAM file that has never contained a record is treated as
unavailable. Attempting to open for input will fail. An empty file
can be opened for output only. When you open for output, COBOL
will write a dummy record to the file & then delete it out.
14. How do you initialize a VSAM file before any operation? a
VSAM with alternate index?
Can write a dummy program that just opens the file for output &
then closes it.
15. What does a file status of 02 on a VSAM indicate?
Duplicate alternate key . Happens on both input and output
operation
Mainframe Questions

Pravin Kumar

Page 12 of 45

- 13 -

16. How do you calculate record size of an alternate cluster?


Give your values for both unique and non-unique.
Unique Case: 5 + ( alt-key-length + primary-key )
Nonunique Case: 5 + ( alt-key-length + n * primary-key )
where n = # of duplicate records for the alternate key
17. What is the difference between sequential files and ESDS
files?
Sequential(QSAM) files can be created on tape while ESDS files
cannot.
Also, you can have ALTINDEX for an ESDS while no such facility
exists for QSAM files.
18. How do you load a VSAM data set with records ?
Using the REPRO command.
19. How do you define a GDG ?
Use the DEFINE GENERATIONDATAGROUP command. In the
same IDCAMS step, another dataset must be defined whose DCB
parameters are used when new generations of the GDG are
created. This dataset is known as the model dataset. The ds name
of this model dataset must be the same as that of the GDG, so use
a disp of keep rather than catlg and also specify space=(trk,0)
20. Do all versions of the GDG have to be of the same record
length ?
No, the DCB of the model dataset can be overridden when you
allocate new versions.
21. How are different versions of GDG named ?
base-file-name.GnnnnnV00 where nnnn= generation number
(upto 255).
nnnn will be 0000 for the 1st generation.
22. Suppose 3 generations of a GDG exist. How would you
reference the 1 st generation in the JCL?
Use GDG name(-2).
23. Suppose a generation of GDG gets created in a particular
step of a proc. How would you refer the current generation
in a subsequent step? What would be the disposition of this
generation now?
Relative generation numbers are updated only at the end of the
job, not at the end of a step. To allocate a new generation, we
would be using (+1) with a DISP of (NEW,CATLG,DELETE). To
refer to this in a subsequent step in the same job, we would again
use (+1) but with a DISP of SHR or OLD.

Mainframe Questions

Pravin Kumar

Page 13 of 45

- 14 -

24. What more info you should give in the DD statement while
defining the next generation of a GDG?
Give (+1) as the generation number, give (new,catlg) for disp, give
space parameter, can give the dcb parameter if you want to
override the dcb of the model dataset.
25. Assuming that the DEFINE jcl is not available, how do you
get info about a VSAM file's organisation ?
Use the LISTCAT command.
26. During processing of a VSAM file, some system error occurs
and it is subsequently unusable What do you do ?
Run VERIFY.
#27 Creating alternate index using IDCAMS
* $$ JOB JNM=CF1PRSR1,CLASS=N,DISP=D,PRI=3,LDEST=NJ004
* $$ LST DISP=K,CLASS=N,DEST=*
// JOB CF1PRSR1
// EXEC PROC=NODEID
// EXEC PROC=MOMSLIBD
// ON $ABEND OR $CANCEL GOTO ABENDJ
// ON $RC>12 GOTO ABENDJ
// GOTO STEP01
/. STEP01
* -------------------------------------------------------------------* CF-SYSTEM
CREATING SYSTEM BACKUP
* JUNE
PRODR0 TO BKUPCFS1
MFCONFR
* --------------------------------------------------------------------// DLBL INCONFR,'PRODR0.SC0500K.MFCONFR',,VSAM,CAT=USRCAT4,
BUFSP=131072
// DLBL OTCONFR,'SRUN1.CF1.SC0500K.MFCONFR',,VSAM,CAT=USRCAT1,
X
BUFSP=131072
// EXEC IDCAMS,SIZE=AUTO
DELETE
DEFINE

SRUN1.CF1.SC0500K.MFCONFR CATALOG (FPSD.USRCAT1)


CLUSTER (NAME (SRUN1.CF1.SC0500K.MFCONFR) DEFAULTVOLUMES RECORDSIZE (300 300) KEYS (6 85) RECORDS (80000 1890) FREESPACE (15 7) SHAREOPTIONS (2) SPEED) DATA (NAME (SRUN1.CF1.SC0500K.MFCONFR.@D@) CONTROLINTERVALSIZE (2048)) INDEX (NAME (SRUN1.CF1.SC0500K.MFCONFR.@I@)) CATALOG (FPSD.USRCAT1)

REPRO IFILE(INCONFR) OFILE(OTCONFR)


IF LASTCC NE 0 THEN CANCEL JOB
DELETE SRUN1.CF1.SC0500K.M2CONFR.@A@ CATALOG (FPSD.USRCAT1)
DEFINE ALTERNATEINDEX ( NAME (SRUN1.CF1.SC0500K.M2CONFR.@A@) RELATE (SRUN1.CF1.SC0500K.MFCONFR) DEFAULTVOLUMES KEYS (14 100) RECORDSIZE (25 25) RECORDS (60000 20655) -

Mainframe Questions

Pravin Kumar

Page 14 of 45

- 15 SHAREOPTIONS (2) UNIQUEKEY FREESPACE (15 7)) DATA (NAME (SRUN1.CF1.SC0500K.M2CONFR.@A@D@) CONTROLINTERVALSIZE(2048)) INDEX (NAME (SRUN1.CF1.SC0500K.M2CONFR.@A@I@)) CATALOG (FPSD.USRCAT1)
IF LASTCC NE 0 THEN CANCEL JOB
DEFINE PATH (NAME (SRUN1.CF1.SC0500K.M2CONFR) PATHENTRY (SRUN1.CF1.SC0500K.M2CONFR.@A@) UPDATE) CATALOG (FPSD.USRCAT1)
IF LASTCC NE 0 THEN CANCEL JOB
/*
// DLBL INDATA,'SRUN1.CF1.SC0500K.MFCONFR',,VSAM,CAT=USRCAT1,
X
BUFSP=131072
//
DLBL
OTDATA,'SRUN1.CF1.SC0500K.M2CONFR.@A@',,VSAM,
X
CAT=USRCAT1,BUFSP=131072
// DLBL SORTWK1,'%%DOS.WORKFILE.SYS1',0,VSAM,CAT=USRCAT1,
X
DISP=(NEW,DELETE,DELETE),RECORDS=(60000,0),
X
RECSIZE=25
// EXEC GVBLDIX,SIZE=500K
CLDD=INDATA
AIXDD=OTDATA
MSGLEVEL=3
************************************************************************

Mainframe Questions

Pravin Kumar

Page 15 of 45

- 16 -

# FREQUENTLY ASKED INTERVIEW QUESTION (JCL)


1. What is primary allocation for a dataset?
The space allocated when the dataset is first created.
2.

What is the difference between primary and secondary


allocations for a dataset?
Secondary allocation is done when more space is required than
what has already been allocated.

3. How many extents are possible for a sequential file ? For a


VSAM file ?
16 extents on a volume for a sequential file and 123 for a VSAM
file.
4. What does a disposition of (NEW,CATLG,DELETE) mean?
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.
5. What does a disposition of (NEW,CATLG,KEEP) mean?
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.
6. How do you access a file that had a disposition of KEEP?
Need to supply volume serial no. VOL=SER=xxxx.
MOD,DELETE
7. What does a disposition of (,DELETE) mean ?
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.
8. What is the DD statement for a output file?
Unless allocated earlier, will have the foll parameters:
DISP=(NEW,CATLG,DELETE), UNIT , SPACE & DCB .
9.

What do you do if you do not want to keep all the space


allocated to a dataset?
Specify the parameter RLSE ( release ) in the SPACE e.g.
SPACE=(CYL,(50,50),RLSE)

10. What is DISP=(NEW,PASS,DELETE)?

Mainframe Questions

Pravin Kumar

Page 16 of 45

- 17 -

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?
Caused by invalid data in a numeric field.
18. What is a S0C4 error ?
Mainframe Questions

Pravin Kumar

Page 17 of 45

- 18 -

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.
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.
21. Why do you want to specify the REGION parameter in a JCL
step?
To override the REGION defined at the JOB card level.
REGION specifies the max region size. REGION=0K or 0M or
omitting REGION means no limit will be applied.
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 ?
Means execute this step even if any of the previous steps,
terminated abnormally.
24. What is COND=ONLY ?
Means execute this step only if any of the previous steps,
terminated abnormally.
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?
Used to copy one QSAM file to another. Source dataset should be
described using SYSUT1 ddname. Destination dataset should be
decribed using SYSUT2. IEBGENR can also do some reformatting
of data by supplying control cards via SYSIN.
27. How do you send the output of a COBOL program to a
member of a PDS?
Code the DSN as pds(member) with a DISP of SHR. The disp
applies to the pds and not to a specific member.
Mainframe Questions

Pravin Kumar

Page 18 of 45

- 19 -

28. I have multiple jobs ( JCLs with several JOB cards ) in a


member. What happens if I submit it?
Multiple jobs are submitted (as many jobs as the number of JOB
cards).
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? )
//SYSIN DD*
input data
input data
/*
30. Can you code instream data in a PROC ?
No.
32. 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.
33. 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(...)
/*
34. 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.
35. 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.
36. What happens if both JOBLIB & STEPLIB is specified ?
JOBLIB is ignored.
37. 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.
Mainframe Questions

Pravin Kumar

Page 19 of 45

- 20 -

38. How to change default proclib ?


//ABCD JCLLIB ORDER=(ME.MYPROCLIB,SYS1.PROCLIB)
39. 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.
40. What are the valid DSORG values ?
PS - QSAM, PO - Partitioned, IS - ISAM
41. 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.

Mainframe Questions

Pravin Kumar

Page 20 of 45

- 21 -

# FREQUENTLY ASKED INTERVIEW QUESTION (DB2)


1. How would you find out the total number of rows in a table?
Use SELECT COUNT(*) ...
2. How do you eliminate duplicate values in SELECT?
Use SELECT DISTINCT ...
3. How do you select a row using indexes?
Specify the indexed columns in the WHERE clause.
4. What are aggregate functions?
Bulit-in mathematical functions for use in SELECT clause.
5. How do you find the maximum value in a column?
Use SELECT MAX(...
6. Can you use MAX on a CHAR column?
YES.
7. My SQL statement SELECT AVG(SALARY) FROM EMP yields
inaccurate results. Why?
Because SALARY is not declared to have NULLs and the employees
for whom the salary is not known are also counted.
8.

How do you retrieve the first 5 characters of FIRSTNAME


column of EMP table?
SELECT SUBSTR(FIRSTNAME,1,5) FROM EMP;

9.

How do you concatenate the FIRSTNAME and LASTNAME


from EMP table to give a complete name?
SELECT FIRSTNAME || ' ' || LASTNAME FROM EMP;

10. What is the use of VALUE function?


1. Avoid -ve SQLCODEs by handling nulls and zeroes in
computations
2. Substitute a numeric value for any nulls used in computation
11. What is UNION,UNION ALL?
UNION :
eliminates duplicates
UNION ALL:
retains duplicates
Both these are used to combine the results of different SELECT
statements.

Mainframe Questions

Pravin Kumar

Page 21 of 45

- 22 -

12. Suppose I have five SQL SELECT statements connected by


UNION/UNION ALL, how many times should I specify UNION
to eliminate the duplicate rows?
Once.
14. What is the restriction on using UNION in embedded SQL?
It has to be in a CURSOR.
15. In the WHERE clause what is BETWEEN and IN?
BETWEEN supplies a range of values while IN supplies a list of
values.
16. Is BETWEEN inclusive of the range values specified?
Yes.
17. What is 'LIKE' used for in WHERE clause? What are the
wildcard characters?
LIKE is used for partial string matches. '%' ( for a string of any
character ) and '_' (for any single character ) are the two wild card
characters.
18. When do you use a LIKE statement?
To do partial search e.g. to search employee by name, you need
not specify the complete
name; using LIKE, you can search for partial string matches.
19. What is the meaning of underscore ( '_' ) in the LIKE
statement?
Match for any single character.
20. What do you accomplish by GROUP BY ... HAVING clause?
GROUP BY partitions the selected rows on the distinct values of
the column on which
you group by.
HAVING selects GROUPs which match the criteria specified
21.
Consider the employee table with column PROJECT
nullable. How can you get a list of
employees who are not
assigned to any project?
SELECT EMPNO
FROM EMP
WHERE PROJECT IS NULL;
22. What is the result of this query if no rows are selected:
SELECT SUM(SALARY)
FROM EMP
WHERE QUAL='MSC';
NULL
Mainframe Questions

Pravin Kumar

Page 22 of 45

- 23 -

23.
Why SELECT * is not preferred in embedded SQL
programs?
For three reasons:
If the table structure is changed ( a field is added ), the
program will have to be modified
Program might retrieve the columns which it might not use,
leading on I/O over head.
The chance of an index only scan is lost.
24. What are correlated subqueries?
A subquery in which the inner ( nested ) query refers back to the
table in the outer query. Correlated subqueries must be evaluated
for each qualified row of the outer query that is referred to.
25. What is a cursor? why should it be used?
Cursor is a programming device that allows the SELECT to find a
set of rows but return
them one at a time. Cursor should be used because the host
language can deal with
only one row at a time.
26. How would you retrieve rows from a DB2 table in embedded
SQL?
Either by using the single row SELECT statements,or by using
the CURSOR.
27. Apart from cursor, what other ways are available to you to
retrieve a row from a table in embedded SQL?
Single row SELECTs.
28. How do you specify and use a cursor in a COBOL program?
Use DECLARE CURSOR statement either in working storage or
in procedure division(before open cursor), to specify the SELECT
statement. Then use OPEN, FETCH rows in a loop and finally
CLOSE.
29. What happens when you say OPEN CURSOR?
If there is an ORDER BY clause, rows are fetched, sorted and
made available for the FETCH statement. Other wise simply the
cursor is placed on the first row.
30. Is DECLARE CURSOR executable?
No.
31. Can you have more than one cursor open at any one time in
a program ?
Mainframe Questions

Pravin Kumar

Page 23 of 45

- 24 -

Yes.

32. When you COMMIT, is the cursor closed?


Yes.
33. How do you leave the cursor open after issuing a COMMIT?
( for DB2 2.3 or above only )
Use WITH HOLD option in DECLARE CURSOR statement. But, it
has not effect in psuedo-conversational CICS programs.
34. Give the COBOL definition of a VARCHAR field.
A VARCHAR column REMARKS would be defined as follows:
10 REMARKS.
49 REMARKS-LEN PIC S9(4) USAGE COMP.
49 REMARKS-TEXT PIC X(1920).

35. What is the physical storage length of each of the following


DB2 data types:
DATE, TIME, TIMESTAMP?
DATE:
4bytes
TIME:
3bytes
TIMESTAMP:
10bytes

36. What is the COBOL picture clause of the following DB2


data types:
DATE, TIME, TIMESTAMP?
DATE:
PIC X(10)
TIME :
PIC X(08)
TIMESTAMP: PIC X(26)
37.What is the COBOL picture clause for a DB2 column defined
as
DECIMAL(11,2)?
PIC S9(9)V99 COMP-3.
Note: In DECIMAL(11,2), 11 indicates the size of the data type
and 2 indicates the precision.
38. What is DCLGEN ?
DeCLarations GENerator: used to create the host language copy
books for the table definitions. Also creates the DECLARE table.
39. What are the contents of a DCLGEN?
Mainframe Questions

Pravin Kumar

Page 24 of 45

- 25 -

1. EXEC SQL DECLARE TABLE statement which gives the layout of


the table/view in terms of DB2 datatypes.
2. A host language copy book that gives the host variable
definitions for the column names.
40. Is it mandatory to use DCLGEN? If not, why would you use
it at all?
It is not mandatory to use DCLGEN.
Using DCLGEN, helps detect wrongly spelt column names etc.
during the pre-compile stage itself ( because of the DECLARE
TABLE ). DCLGEN being a tool, would generate accurate host
variable definitions for the table reducing chances of error.
41. Is DECLARE TABLE in DCLGEN necessary? Why it used?
It not necessary to have DECLARE TABLE statement in DCLGEN.
This is used by the pre-compiler to validate the table-name, viewname, column name etc., during pre-compile.
42. Will precompile of an DB2-COBOL program bomb, if DB2 is
down?
No. Because the precompiler does not refer to the DB2 catalogue
tables.
43.

How is a typical DB2 batch pgm executed ?


1. Use DSN utility to run a DB2 batch program from native TSO.
An example is
shown:
DSN SYSTEM(DSP3)
RUN PROGRAM(EDD470BD) PLAN(EDD470BD)
LIB('EDGS01T.OBJ.LOADLIB')
END
2. Use IKJEFT01 utility program to run the above DSN command in
a JCL.
44. Name some fields from SQLCA.
SQLCODE, SQLERRM, SQLERRD
45. How can you quickly find out the # of rows updated after an
update statement?
Check the value stored in SQLERRD(3).
46. What is EXPLAIN?
EXPLAIN is used to display the access path as determined by the
optimizer for a SQL statement. It can be used in SPUFI (for single
SQL statement ) or in BIND step (for embedded SQL ).
47. What do you need to do before you do EXPLAIN?
Make sure that the PLAN_TABLE is created under the AUTHID.
Mainframe Questions

Pravin Kumar

Page 25 of 45

- 26 -

48. Where is the output of EXPLAIN stored?


In userid.PLAN_TABLE
49. EXPLAIN has output with MATCHCOLS = 0. What does it
mean?
a nonmatching index scan if ACCESSTYPE = I.
50. How do you do the EXPLAIN of a dynamic SQL statement?
1. Use SPUFI or QMF to EXPLAIN the dynamic SQL statement
2. Include EXPLAIN command in the embedded dynamic SQL
statements
51. How do you simulate the EXPLAIN of an embedded SQL
statement in SPUFI/QMF? Give an example with a host
variable in WHERE clause.)
Use a question mark in place of a host variable ( or an unknown
value ). e.g.
SELECT EMP_NAME
FROM EMP
WHERE EMP_SALARY > ?
52. What are the isolation ( also called isolation parameters)
levels possible ?
CS:
Cursor Stability
RR:
Repeatable Read
53. What is the difference between CS and RR isolation levels?
CS:
Releases the lock on a page after use
RR:
Retains all locks acquired till end of transaction
54. Where do you specify them ?
ISOLATION LEVEL is a parameter for the bind process.
55. When do you specify the isolation level? How?
During the BIND process. ISOLATION ( CS/RR )...
56. I use CS and update a page. Will the lock be released after
I am done with that page?
No.
57.

What are the various locking levels available?


PAGE, TABLE, TABLESPACE

58. How does DB2 determine what lock-size to use?


1. Based on the lock-size given while creating the tablespace
2. Programmer can direct the DB2 what lock-size to use
Mainframe Questions

Pravin Kumar

Page 26 of 45

- 27 -

3. If lock-size ANY is specified, DB2 usually choses a lock-size of


PAGE
59. What are the disadvantages of PAGE level lock?
Hig resource utilization if large updates are to be done
60. What is lock escalation?
Promoting a PAGE lock-size to table or tablespace lock-size when a
transaction has aquired more locks than specified in NUMLKTS.
Locks should be taken on objects in single tablespace for
escalation to occur.
61. What are the various locks available?
SHARE, EXCLUSIVE, UPDATE
62. Can I use LOCK TABLE on a view?
No. To lock a view, take lock on the underlying tables.
63. What is ALTER ?
SQL command used to change the definition of DB2 objects.
64. What is a DBRM, PLAN ?
DBRM: DataBase Request Module, has the SQL statements
extracted from the host language program by the pre-compiler.
PLAN: A result of the BIND process. It has the executable code for
the SQL statements in the DBRM.
65. What is ACQUIRE/RELEASE in BIND?
Determine the point at which DB2 acquires or releases locks
against table and tablespaces, including intent locks.
66. What else is there in the PLAN apart from the access
path?
PLAN has the executable code for the SQL statements in the host
program
67. What happens to the PLAN if index used by it is dropped?
Plan is marked as invalid. The next time the plan is accessed, it is
rebound.
68. What are PACKAGES ?
They contain executable code for SQL statements for one DBRM.
69. What are the advantages of using a PACKAGE?
1. Avoid having to bind a large number of DBRM members into a
plan
2. Avoid cost of a large bind
3. Avoid the entire transaction being unavailable during bind and
automatic rebind of a
Mainframe Questions

Pravin Kumar

Page 27 of 45

- 28 -

plan
4. Minmize fallback complexities if changes result in an error.
70. What is a collection?
a user defined name that is the anchor for packages. It has not
physical existence. Main usage is to group packages.
71. In SPUFI suppose you want to select max. of 1000 rows ,
but the select returns only 200 rows. What are the 2 sqlcodes
that are returned?
100 ( for successful completion of the query ), 0 (for successful
COMMIT if AUTOCOMMIT is set to Yes).
72. How would you print the output of an SQL statement from
SPUFI?
Print the output dataset.
73. Lot of updates have been done on a table due to which
indexes have gone haywire. What do you do?
Looks like index page split has ocured. DO a REORG of the
indexes.
74. What is dynamic SQL?
Dynamic SQL is a SQL statement created at program execution
time.
75. When is the access path determined for dynamic SQL?
At run time, when the PREPARE statement is issued.
76. Suppose I have a program which uses a dynamic SQL and
it has been performing well till now. Off late, I find that the
performance has deteriorated. What happened?
Probably RUN STATS is not done and the program is using a wrong
index due to incorrect stats.
Probably RUNSTATS is done and optimizer has chosen a wrong
access path based on the latest statistics.
77. How does DB2 store NULL physically?
as an extra-byte prefix to the column value. physically, the nul
prefix is Hex '00' if the value is present and Hex 'FF' if it is not.
78. How do you retrieve the data from a nullable column?
Use null indicators. Syntax ... INTO :HOSTVAR:NULLIND
79. What is the picture clause of the null indicator variable?
S9(4) COMP.
80. What does it mean if the null indicator has -1, 0, -2?
-1 : the field is null
Mainframe Questions

Pravin Kumar

Page 28 of 45

- 29 -

0 : the field is not null


-2 : the field value is truncated

81. How do you insert a record with a nullable column?


To insert a NULL, move -1 to the null indicator
To insert a valid value, move 0 to the null indicator
82. What is RUNSTATS?
A DB2 utility used to collect statistics about the data values in
tables which can be used by the optimizer to decide the access
path. It also collects statistics used for space management. These
statistics are stored in DB2 catalog tables.
83. When will you chose to run RUNSTATS?
After a load, or after mass updates, inserts, deletes, or after
REORG.
84. Give some
RUNSTATS?

example

of

statistics

collected

during

# of rows in the table


Percent of rows in clustering sequence
# of distinct values of indexed column
# of rows moved to a nearby/farway page due to row length
increase
85. What is REORG? When is it used?
REORG reorganizes data on physical storage to reclutser rows,
positioning oveflowed rows in their proper sequence, to reclaim
space, to restore free space. It is used after heavy updates, inserts
and delete activity and after segments of a segmented tablespace
have become fragemented.
86. What is IMAGECOPY ?
It is full backup of a DB2 table which can be used in recovery.
87. When do you use the IMAGECOPY?
To take routine backup of tables
After a LOAD with LOG NO
After REORG with LOG ON
88. What is COPY PENDING status?
A state in which, an image copy on a table needs to be taken, In
this status, the table is available only for queries. You cannot
update this table. To remove the COPY PENDING status, you take
an image copy or use REPAIR utility.
89.

What is CHECK PENDING ?

Mainframe Questions

Pravin Kumar

Page 29 of 45

- 30 -

When a table is LOADed with ENFORCE NO option, then the table


is left in CHECK PENDING status. It means that the LOAD utility
did not perform constraint checking.
90. What is QUIESCE?
A QUIESCE flushes all DB2 buffers on to the disk. This gives a
correct snapshot of the database and should be used before and
after any IMAGECOPY to maintain consistency.
91. What is a clustering index ?
Causes the data rows to be stored in the order specified in the
index. A mandatory index defined on a partitioned table space.
92. How many clustering indexes can be defined for a table?
Only one.
93. What is the difference between primary key & unique
index ?
Primary : a relational database constraint. Primary key consists of
one or more columns that uniquely identify a row in the table. For
a normalized relation, there is one designated primary key.
Unique index: a physical object that stores only unique values.
There can be one or more unique indexes on a table.
94. What is sqlcode -922 ?
Authorization failure
95. What is sqlcode -811?
SELECT statement has resulted in retrieval of more than one row.
96. What does the sqlcode of -818 pertain to?
This is generated when the consistency tokens in the DBRM and
the load module are different.
97. Are views updatable ?
Not all of them. Some views are updatable e.g. single table view
with all the fields or mandatory fields. Examples of non-updatable
views are views which are joins, views that contain aggregate
functions(such as MIN), and views that have GROUP BY clause.
98. If I have a view which is a join of two or more tables, can
this view be updatable?
No.
99. What are the 4 environments which can access DB2 ?
TSO, CICS, IMS and BATCH
100. What is an inner join, and an outer join ?
Mainframe Questions

Pravin Kumar

Page 30 of 45

- 31 -

Inner Join: combine information from two or more tables by


comparing all values that meet the search criteria in the
designated column or columns of on table with all the values in
corresponding columns of the other table or tables. These kinds of
join which involve a match in both columns are called inner joins.
Outer join is one in which you want both matching and non
matching rows to be returned. DB2 has no specific operator for
outer joins; it can be simulated by combining a join and a
correlated sub query with a UNION.
101.
What is FREEPAGE and PCTFREE in TABLESPACE
creation?
PCTFREE: percentage of each page to be left free
FREEPAGE: Number of pages to be loaded with data between each
free page
102.
What are simple, segmented and
partitioned table
spaces ?
Simple Tablespace:
Can contain one or more tables
Rows from multiple tables can be interleaved on a page under
the DBAs control and
maintenance
Segmented Tablespace:
Can contain one or more tables
Tablespace is divided into segments of 4 to 64 pages in
increments of 4 pages.
Each segment is dedicated to single table. A table can occupy
multiple segments
Partitioned Tablespace:
Can contain one table
Tablespace is divided into parts and each part is put in a
separate VSAM dataset.
103. What is filter factor?
one divided by the number of distinct values of a column.
104. What is index cardinality?
The number of distinct values a column or columns contain.
105. What is a synonym ?
Synonym is an alternate name for a table or view used mainly to
hide the leading qualifier of a table or view.. A synonym is
accessible only by the creator.
106. What is the difference between SYNONYM and ALIAS?
SYNONYM: is dropped when the table or tablespace is dropped.
Synonym is available only to the creator.
Mainframe Questions

Pravin Kumar

Page 31 of 45

- 32 -

ALIAS: is retained even if table or tablespace is dropped. ALIAS


can be created even if the table does not exist. It is used mainly in
distributed environment to hide the location info from programs.
Alias is a global object & is available to all.
107. What do you mean by NOT NULL WITH DEFAULT? When
will you use it?
This column cannot have nulls and while insertion, if no value is
supplied then it wil have zeroes, spaces or date/time depending on
whether it is numeric, character or date/time. Use it when you do
not want to have nulls but at the same time cannot give values all
the time you insert this row.
108. What do you mean by NOT NULL? When will you use it?
The column cannot have nulls. Use it for key fields.
109. When would you prefer to use VARCHAR?
When a column which contains long text, e.g. remarks, notes, may
have in most cases less than 50% of the maximum length.
110. What are the disadvantages of using VARCHAR?
1. Can lead to high space utilization if most of the values are close
to maimum.
2. Positioning of VARCHAR column has to be done carefully as it
has performance implications.
3. Relocation of rows to different pages can lead to more I/Os on
retrieval.
111. How do I create a table MANAGER ( EMP#, MANAGER)
where MANAGER is a foreign key which references to EMP#
in the same table? Give the exact DDL.
First CREATE MANAGER table with EMP# as the primary key.
Then ALTER it to define the foreign key.
112. When is the authorization check on DB2 objects done - at
BIND time or run time?
At run time.
113. What is auditing?
Recording SQL statements that access a table. Specified at table
creation time or thru alter.

Mainframe Questions

Pravin Kumar

Page 32 of 45

- 33 -

# FREQUENTLY ASKED INTERVIEW QUESTION (CICS)


1. How do you place the cursor on a particular position on the
screen?
Move -1 to the length attribute of the field and use the CURSOR
option.
Define the field with IC in the BMS map.
Use CURSOR(n m)??
2. What are the two outputs created as a result of generation
of a map?
The map copybook and the load module.
3. What is the difference between physical map and symbolic
map?
The physical map is the load module and the symbolic map is the
data structure.
4. What are the 3 working storage fields used for every field on
the map?
Length, attribute and input/output field.
5. What is MDT? What are FSET, FRSET ?
Modified Data Tag. Bit in the attribute byte indicating
modification of field on screen.
Happens on an input operation.
FSET. Sets MDT on to ensure field is transmitted. Happens on an
output operation.
FRSET. Resets MDT. Until this happens, field continues to be sent.
6. What is the use of DSECT parameter in BMS?
Is the parameter to generate a symbolic map.
7. Do you receive the attribute byte in the symbolic map?
On EOF yes.
8. How do you make your BMS maps case sensitive?
Use ASIS???
9. What is effect on RECEIVE MAP when
PF key is pressed? Data transmission may happen,
PA key is pressed? Data transmission will not happen.

10. What are SEND MAP MAPONLY & SEND MAP DATAONLY ?
11. What is the difference between a PF key & a PA key ?
Mainframe Questions

Pravin Kumar

Page 33 of 45

- 34 -

PF keys wake up the task and transmit modified data, PA keys only
wake up the task.
12. Name the macros used to define the following:
MAP
MAPSET
FIELD
DFHMSD
DFHMDI
DFHMDF
13. Can you use OCCURS in a BMS map? If you do, what are
the issues related with its use?
Yes. cannot use group by clause???
14. Can you define multiple maps in a BMS mapset?
Yes.
15. How is the storage determined in the symbolic map, if you
have multiple maps?
Storage for maps redefine the first. This means largest map has to
be the first.
16. What is the meaning of BMS length of field = 0?
Data was not entered in the field
17. Can you simply check if length = 0 for checking if a field
was modified?
No, not if ERASE EOF was used.
18. What do you do if you do not want characters entered by the
user to be folded to uppercase ?
Use ASIS option on RECEIVE.
19. What does the BUFFER option in RECEIVE mean ?
Brings the entire datastream from the terminal buffer.
20. What are the steps you go through to a create a BMS
executable?
Assemble to create CSECT and Link
21. When you compile a CICS program, the (pre)compiler puts
an extra chunk of code. Where does it get included and that
is it called? What is its length?
DFHEIBLK, DFHCOMMAREA.
22. List all the CICS tables and explain their contents.
PPT
SIT
PCT
JCT
FCT
SNT
DCT
SRT
RCT
TCT
Mainframe Questions

Pravin Kumar

Page 34 of 45

- 35 -

23. I have written a CICS program. What tables should I setup


to run this program?
PPT, PCT, (FCT, DCT, RCT (if needed)).
24. In which table would you make an entry for a BMS map?
PPT
25. What is the content of the PPT entry?
Length, Source, Use count, Lang, Res count DFHRPL number
26. For a CICS-DB2 program, how is the plan referenced?
Uses a RCT table.
27.
How is dynamic
application program?
Use a GETMAIN

memory

allocated

within

CICS

28.
What are the restrictions while using GETMAIN and
FREEMAIN?
29. What is the use of a TDQ, TSQ?
Temporary data stores.
30. If I create a TSQ from one transaction, can I read it from
another transaction?
Yes. As long as they run in the same region.
31. What are extra partition & intra partition TDQs?
Extra partition TDQs are datasets used for communication b'n
CICS and other CICS/Batch regions. Intrapartition TDQs are
queues for communication within regn.
32. What is trigger level in the context of TDQs?
For intrapartition TDQs specify the # records at which ATI
happens. not applicable for extra partition TDQs.
33. How do you fire a batch job from a CICS txn ?
Define an extrapartition TDQ as an internal reader and write the
JCL to it. Terminate the JCL with /*EOF.
34. What is ATI? What kind of TDQ can be used?
Automatic Task Initiation. Intra partition TDQ.
35. Do you require a table entry for a TSQ?
If recovery is needed.
36. Is there any entry for TSQs in CICS tables?
Yes in the DFHTST.
Mainframe Questions

Pravin Kumar

Page 35 of 45

- 36 -

37. What is the use of DCT?


Destination Control Table used to define TDQs
38. What is ENQ, DEQ ?
Task control commands to make resources serially reusable.
39. I have TSQ with 15 items. I want to delete the 10th item.
How do I do that?
40. Can you issue SQL COMMIT from a CICS program?
Yes.
41. What is the other way of terminating a transaction?
EXEC CICS SYNCPOINT. Assuming it is a LUW. This will not end
the Xn.
42. What is an ASRA abend ?
Any data exception problem SOC7, SOC4 etc.
43. What is an AEY9 abend ?
DB2/IDMS not up.
44. What are the situations under which NEWCOPY is required
?
When a program has been used in CICS atleast once and then
changed and recompiled.
45. What is EXEC CICS RETRIEVE ?
Used by STARTed tasks to get the parameters passed to them.
46. Name some important fields in the EIB block ?
EIBRESP, EIBCALEN, EIBRRCDE, EIBTASK, EIBDATE, EIBTIME
47. Can you use DYNAMIC calls in CICS ?
Yes, the called routine must be defined in PPT and the calling
program must use CALL
identifier..
48. How do you handle errors in CICS pgms ?
Check EIBRESP after the call or use the HANDLE condition.
49. Suppose pgm A passes 30 bytes to pgm B thru commarea
and pgm B has defined its DFHCOMMAREA to be 50 bytes .
Is there a problem ?
Yes, if B tries to access bytes 31-50.

Mainframe Questions

Pravin Kumar

Page 36 of 45

- 37 -

50. When an XCTL is done, does the tranid change ? Is a new


task created ? Does it cause an implicit SYNCPOINT to be
issued ?
No, No, Yes.
51. How do you execute a background CICS txn ?
With a START or ATI.
52. Can a CICS region be attached to more than one DB2
subsystem ?

53. What determines the DB2 subsystem to which a particular


CICS region is attached ?
54. What is the difference between START and XCTL ?
START is used to start a new task. It is a interval control command.
XCTL is used to pass control to a program within the same task. It
is a program control command.
55. What is the usage of language in the PPT entry?
Language interface and call parameters???
56. Can you have CICS code in a copybook?
happens during compilation?
Yes. Needs to be preprocessed.

If yes, what

57. What is an AICA abend?


Runaway Task.
58. How would you resolve an ASRA abend?
In COBOL II start with CEBR, and get the offset/instruction.
59. I invoke a transaction from CICS. The program has a code:
MOVE DFHCOMMAREA TO WS-AREA. What happens to this
transaction? What happens to the other transactions?
Junk may get moved in. Will cause Storage violation. ????
60. How do I find the name of the CICS region inside my
COBOL program?
61. When you do a START, what will the value of EIBCALEN?
Zero.
62. How are VSAM files Read in CICS pgms?
Mainframe Questions

Pravin Kumar

Page 37 of 45

File Control
backward.

Commands.

- 38 -

Random,

Sequential,

forward

and

63. How will you access a VSAM file using an alternate index?
Thru the path. Define path as an FCT and use normal File control
commands.
64. How do you rollback data written to an ESDS file?
Define the file as recoverable. in cases where records have been
inserted into the file, you may need to run a batch program to
logically delete the inserted records.
65. I have done a START BROWSE on a VSAM dataset. Can I do
another START BROWSE without doing an END BROWSE?
No.
66. Can you access QSAM (seq ) files from CICS ?
No.
67. Can you access ESDS files from CICS ?
Yes.
General
.Expect questions about your previous projects - be clear about the
functionality, application size(no of tables, no of transactions, no of
batch jobs), tech environment(e.g.: was a job scheduler used ?),
your role .
.You should know what versions of software(DB2, CICS, JES, MVS)
you've worked with.
.Be ready to give specific syntax if asked for. e.g. give the condition
code statement in the JCL.
Have full understanding of the role for which you are being
interviewed.

Mainframe Questions

Pravin Kumar

Page 38 of 45

- 39 -

# FREQUENTLY ASKED INTERVIEW QUESTION (IMS)


1. Batch message processing (BMP)
An IMS processing mode that involves a combination of on-line and
batch processing.
2. Data base
A collection of interrelated data organized and stored for ease of
access by multiple users and application programs.
3. Data base description.
A control block (resulting of assenbling the DBD macro) which
defines the physical and logical of an IMS database.
4. Logical database.
Combination of segments from one or more physical databases into
composite hierarchical structure.
5. Message processing Program (MPP).
An IMS processing mode that involves
processing.

on-line

transaction

6. Occurrence.
A single occurrence is a segment appearing once in one segment
type with in a database record. Multiple occurrence denotes a
segment type within a database record that appears more than
once.
7. Program control block (PCB)
A control block that defines which segments by database record
that an application program will be allowed to access alog with key
or data sensitivity and processing intent.
8. Program specification Block (PSB).
A control block that contains the program communication block
and describes the logical database structure.
9. Segment search argument (SSA).
A series of values contained in an application program that
identifies the segment name, key or search field and comparative
value that the program desires to retrieve, add, change or delete.
10. Segment.
The unit of information transferred between the database
bufferpool and an application program or transferred between a
terminal and a message queue.
Mainframe Questions

Pravin Kumar

Page 39 of 45

- 40 -

11. Teleprocessing(TP).
Processing that allows continuation
between user and program.

on-line

communication

12. What is DL/I ?


Data Language I, referred to as DL/I,is not a programming
language like
COBOL, PL/I, or Assembler. DL/I is a set of IMS program modules
that exist
external to the application program.DL/I allows an application
program to
retrieve segments of the data from the database sequentially or
directly.
13.
14.
What are
environment?

the

components

of

the

IMS

software

The components of the IMS software environment:


+--------------------------------+

Application

Program

+--------------------------------+
+-------------+ +---------------+

DB

I/O

PCB

PCB

+--------------+ +---------------+
+--------------+ +---------------+

DL/I

IMS Data

Communication
+--------------+ +---------------+
+--------------+ +---------------+

IMS
| terminal
|
Database
|
|
+--------------+ |---------------|

Application program:
You can write these in COBOL,PL/I and Assembler. The programs use
standard
calls to DL/I modules rather than read and write through File
Declares.
DB PCB :
This is a Program Communication Block (PCB) which enables the
program to
communicate with DL/I to get information from the database.
DL/I :
Mainframe Questions

Pravin Kumar

Page 40 of 45

- 41 -

Data Language I is a set of program modules which performs


operations on the
data base when called by application programs.
IMS Database :
The Database could be called the center of the IMS system.It normally
resides
on direct access storage.
I/O PCB :
This is a Program Communication Block (PCB) which enables the
program to
communicate with IMS Data Communication to read or write
information to/from
a terminal.

IMS Data Communication :


A set of programs which permit application programs to communicate
with other
programs and/or remote terminals through the standard calls.
Terminal :
An interactive terminal used for on-line applications.
15. What are the 3 modes of processing?.
Within IMS there are 3 modes of processing:
1. BATCH DL/I
Batch Data Language I
(true Batch processing)
2.TP/MPP (Teleprocessing)
(Message Processing Program)
(true on-line processing)
3.BMP (batch message processing)
(Combination of on-line
and batch processing)
BMP
There are two kinds of BMP's:
1. Transaction-orientated
access the on-line message queues
can process input from and output to OS/VS files and
databases
Mainframe Questions

Pravin Kumar

Page 41 of 45

- 42 -

2. Batch-orientated
access on-line database in batch mode
can send messages to the message queue
are scheduled by the operator using JCL
16. How many database are there?
physical and logical
The physical data base is defined in the Data Base Description
(DBD).
The logical data structure is defined in the Program Specification
Block (PSB).
The DBA initiates a process called DBDGEN (database description
generator)
to describe the physical structure of the database and to create a
DBD database
description).
In an IMS database, this logical data structure is referred to as a
PSB
(Program Specification Block).
The PSB is made up of one or more PCB's (Program Communication
Block), and
this defines the logical structure a program will use.
The PSBGEN process produces a load module stored in the PSBLIB
library.
These load modules are called PSB's.
While many application programs can share the same PSB (but
usually do not),
programs can only use one PSB in agiven application. A PSB contains
one or
more PCB's.
The Program Communication Block defines which of the segments in
the database
the program is "sensitive" to (can access).
The PCB also defines how the application program is allowed
process the
segments.

to

This is done via the "processing options" or PROCOPT.

Mainframe Questions

Pravin Kumar

Page 42 of 45

- 43 -

# FREQUENTLY ASKED INTERVIEW QUESTION (IDMS)


1. Which are the things required for the definition of a data
base for programing and run time operations.
Logical database definitions.
Physical database definition.
The two logical components are Schema,Subschema
SCHEMA: The major purpose of the Schema is to provide
definitions from which to
generate the Subschemas.
The Schema is a complete description of a database including the
names and descriptions of all.
The database administrator uses a Data description Language (DDL)
to provide input to the schema compiler.
The DDL for the schema consist of 4 sections,which are defined in the
following order.
Schema Description
--Names the schema and provides
documentation entries such
as author,date,installation and remarks.
Area Description
---Allows naming of areas
Record Description ---Names and describes records and their
fields
Set description
---Allows the naming of set specifies the sets
attributes such as
owner and member records and the order
of records in a set.
SUBSCHEMA: The Subschema defines a program view of the
database and any
Restrictions on the DML (Data Manipulation Language)
statements.
A subschema defines Items,Record types.Set types and Areas used by
an application. While there can be any number of subschemas for
each database , usually there is one for each group of related
application programs.
The database administrator defines the entire nature of a database in
a schema and then defines limits and database views in the
subschema.
A subschema is a subset of a schema .

Subschema are necessary


---- as a security device for protecting sensitive data.
Mainframe Questions

Pravin Kumar

Page 43 of 45

- 44 -

---to optimize processing by only allowing access to required


data.
The subschema DDL consists of subschema description statements
which describe the subschema components (stored in the data
dictionary) that may be added,modified or deleted by the subschema
compiler.

2. A physical database is a collection of data that resides in operating


system files. The physical components are DMCL (device-media
control language), database name table,segment.
3. Which are the definitions required to set up a database for
programing and runtime operations?.
Schema
---- DDL defines record types.
Database name table ---maps logical database definitions to
segments.
Segment
---- define areas and files.
Subschema
---- defines a program view of the database.
Dmcl
---- is a collection of segment definitions.
4. Data manipulation language (DML).
Having setup the database structure by writing schema, Dmcl
,subschema and DDL and compiling them ,the next step is to write
code to acess the database.
This code is called the Data Manipulation Language (DML) and
designed to provide database access to an existing programing
language.It is an extension of a programing language such as
COBOL,PL/1, or part of cullinets own prograing language or query
language.
4. CURRENCY.
Currency is a technique used ti maintain the database key
locations of records. It indicates run unit positioning in the
database processing. Currency is NULL or empty at the start of a
run unit.
Currency is established by one of the following dml verbs.
FIND,OBTAIN,STORE,CONNECT,DISCONNECT,ERASE
Mainframe Questions

Pravin Kumar

Page 44 of 45

- 45 -

The purpose of currency is to


----- establish a starting point for the execution of a retrieval
statement.
----establish proper set occurrence for connect and
disconnect functions. All
set relationships must be established before STORE or
CONNECT
----determine the physical placement in the database of
records stored using
the via location mode.
----provide the basis for saving database keys of located
records for
subsequent use by the run unit.
----set locks ON, current of record, set or area to prevent
concurrent retrieval
or update of records by different run units.
Currencies are 4 types
1. current of Run Unit
2. current of Record type
3. current of Set
4. current of Area

Mainframe Questions

Pravin Kumar

Page 45 of 45

You might also like