What are the types of VSAM Datasets?
Entry sequenced Datasets (ESDS), Key sequenced Datasets (KSDS) and relative record
Dataset (RRDS), LDS (linear Data Set).
Why do VSAM take more disk space than other utilities?
VSAM increases the disk space requirements of systems. This is because VSAM offers certain
capabilities like partial self-reorganization to make things more efficient in data sets that can be
What are the distinctive features of a KSDS, Key sequenced Dataset?
The index and the distributed free space. CI and CA splits upon updates. Record length may
be changed during update. The records are accessed by a particular Key.
How are records stored in an ESDS, entry sequenced Dataset?
They are stored without respect to the contents of the records and in the order in which they are
Included in the file.
What's a LDS (Linear Data Set) and what's it used for?
LDS is a VSAM Dataset in name only. It has unstructured 4k (4096 bytes) fixed size CIs which do
not contain control fields. There is no free space, and no access from Cobol. LDS is essentially
a table of data maintained on disk. The 'table entries' must be created via a user program and
can only be logically accessed via a user program. When passed, the entire LDS must be
mapped into storage, then data is accessed via base and displacement type processing.
In ESDS, do we have the facility of accessing the records randomly?
YES, Random access of records is possible. Records however cannot be deleted. We can do it
By referring the RBA (relative byte address).
Why is the space is kept in data component of the KSDS Dataset?
Free space specified during the allocation of the KSDS is left at regular intervals during the initial
load of the data set. This space helps keep the data component in physical sequence in spite of
What is the difference b/w the ESDS and KSDS?
ESDS doesn’t have imbedded free space.
The KEYS parameter has no meaning in the context of ESDS
ESDS has no index component
An additional parameter, NONINDEXED is used to tell AMS that an ESDS is being allocated.
How is LDS different from ESDS?
An LDS is a data set; very similar to an ESDS without the control information .It has no records
and used for fast random access. It takes advantages of the computer’s very fast paging
hardware for retrieval and storage and the bytes are implicitly divided into 4K blocks or pages,
and the paging hardware reads and writes blocks from disk. There is no free space, unused
space, control field in LDS.
What is a CI, Control Interval?
A Control Interval is the unit of information that VSAM transfers between virtual and auxiliary
What is Control Interval
A new record stored in same CI, only if there is enough space. If not VSAM locates the free CI
within the same CA, moves approximately half of the records to next CI and stores the new
record at the correct position. This is called Control Interval Split. Whenever CI split occurs the
sequence set is updated.
What is a CA, control area?
A group of Control Intervals makes up a control area.
If the records are larger than the CI size, for ex. if a record extend CI boundary and
extends unto 3 CI, and there is still some space left in last i.e. third CI, will that be
used by other CI Datasets ?
NO. Some records are larger than the CI size, the records extend across CI boundaries (only for
ESDS and KSDS). A spanned record begins on a CI boundary and it occupies two or more CIs in
a CA. The unused space in the last CI can only be used to extend the record, it cannot
contain any other record i.e. a new record has to be added in a new CI.
What is a sequence set?
This is the part of the index that points to the CA and CI of the record being accessed.
What is a cluster?
A cluster is the combination of the index, sequence set and data portions of the Dataset. The
operating system gives program access to the cluster, i.e. to all parts of the Dataset
What is the index set?
This is the other part of the index. It has multiple levels with pointers that ultimately reach to the
What is a Catalog?
The catalog contains the names of all Datasets, VSAM and non-VSAM. It is used to access these
What is an alternate index?
An AIX is a file that allows access to a VSAM Dataset by a Key other than the primary one. The
Alternate Key-pointer pair records are stored in an index cluster. This index cluster is known as
Alternate index. The alternate Key-pointer pair records are loaded into the alternate index cluster
by the command BLDINDEX.AIX can be built over a KSDS and ESDS, but not over an RRDS.
What could be the maximum number of the AIXs per base cluster?
There can be a maximum of 253 AIXs per base cluster. It is not advisable to have more than 5
AIXs per base cluster because of additional overhead during updates and retrievals.
Can AIX be defined over an ESDS, which does not have any Key?
Although an ESDS does not have a primary Key, an AIX can be defined over an ESDS. In the
case of an ESDS it is the relative byte address of the corresponding record in the base cluster
that is stored.
Can we access records in VSAM only by a single Key, i.e. primary Key?
It is also possible to access the records in a sequence other than that of the primary Key. Such
Keys are called alternate Keys and they can be non-unique.
For Example, in a pay-roll system where employee number is the unique primary Key and the
Employee name as alternate Key.
What is the 'verify' command in the VSAM files?
This command is used to close those files that are kept open after the abnormal termination of
the file. It also brings the index component in sync with the data components and updates the
What is a path?
A path is a file that allows you to access a file by alternate index - the path provides an
association between the AIX and the base cluster.
What is the upgrade set?
The upgrade set is the list of all AIXs that VSAM must maintain for a specific base cluster, so that
when data in the base cluster is updated, the AIX files are also updated.
What is free space?
Free space is reserved within the data component of a KSDS to accommodate inserting new
What is IDCAMS? and what is the purpose of it?.
IDCAMS, also known as Access Method Services, is used to perform the following tasks:
Create a VSAM data set, VSAM alternate index, or catalog.
List a catalog entry for a data set, Dataset/catalog contents.
Copy a Dataset or catalog.
Convert non-VSAM to VSAM data set.
Load a VSAM Dataset from VSAM records
Rename VSAM data sets.
What is a VSAM split?
If there isn't enough space in the Control Interval VSAM performs a Control Interval split by
moving some records to the free Control Intervals. If there isn't a free Control Interval VSAM
performs a control area split by allocating a new control area and moving half of the Control
Intervals to it.
What is the base cluster?
The base cluster consists of the data component and the index component for the primary index
of a KSDS.
What will happen if there is no secondary allocation made for Datasets?
VSAM will inform COBOL program of the problem and terminate the processing of the program.
Why CI and CA splits are not possible in ESDS and RRDS?
In ESDS the new record is added at the end of last record. And no imbedded free space is
allocated at the time of Dataset definition. In the case of RRDS the slots for the records are pre-allocated and so the CI and CA split is not possible.
Do primary Key values have to be unique? Do alternate Key values have to be
Primary Key values must be unique; alternate Key values need not be.
In the COBOL SELECT statement what is the ORGANIZATION for a KSDS?
The ORGANIZATION is INDEXED.
In the COBOL SELECT statement for a KSDS what are the three possibilities for
ACCESS can be SEQUENTIAL, RANDOM or DYNAMIC.
What is the COBOL RECORD KEY clause?
The RECORD KEY in the SELECT clause identifies the files primary Key as it will be known to
What is the purpose of the FILE STATUS clause in the SELECT statement?
The FILE STATUS field identifies the field that VSAM uses to provide information about each I/O
Operation for the file.
If you wish to use the REWRITE command how must the VSAM file be opened?
It must be opened I/O mode.
Explain the meaning and syntax for the START command?
The START command is used to read other than the next VSAM record. A value must be
moved into the RECORD KEY. The KEY clause is optional, but it can be used to specify a
relational (equal, less than, etc.) operator.
What is the meaning of dynamic processing?
It means one program uses both sequential and random processing for a VSAM KSDS file. It's
Name some common VSAM error conditions and codes?
They are end of file (10), duplicate Key (22), record not found (23), Out of space condition is
raised (28) ,VSAM logic error (90), open problem (92) and space problem (93).
What is the VSAM-code field?
It is a COBOL II enhancement to VSAM batch processing expanding the FILE STATUS field. It is
defined in WORKING - STORAGE as a six byte group item with three two byte elements, the
normal return code, the function code and the feedback code.
What is a VSAM slot?
A relative record Dataset (RRDS) consists of a specified number of areas called slots. Each slot
is identified by a relative record number (RRN) which indicates its relative position in the file.
What is the utility program closely associated with VSAM?
IDCAMS, the access method services utility.
There are at least seven IDCAMS commands; name and explain each of them?
ALTER modifies information for a catalog, alternate index, cluster or path.
BLDINDEX builds the alternate index, of course.
DEFINE is used for ALTERNATEINDEX, CLUSTER or PATH.
DELETE removes the catalog entry for a catalog, cluster, alternate index or path. LISTCAT lists
Information about the Dataset.
PRINT prints the Dataset contents.
REPRO copies records from one file to another.
What are the three levels of definition for the VSAM DEFINE?
They are DEFINE CLUSTER, DATA and INDEX.
What is the significance of the SHAREOPTIONS parameter?
It specifies how the file may be shared between jobs and between batch and CICS
What is the meaning of the DEFINE MODEL parameter?
It specifies whether the MODEL parameter allows you to model your cluster by modelling it
after an existing cluster.
How do you fix the problem associated with VSAM out of space condition?
1. Define new VSAM Dataset allocated with more space.
2. Use IDCAMS to REPRO the old VSAM file to new VSAM Dataset.
3. Use IDCAMS to ALTER / rename the old VSAM Dataset or set IDCAMS to DELETE the
old VSAM Dataset.
4. Use IDCAMS to ALTER / rename the new VSAM Dataset to the name of the original
In how many ways can you load the data in a VSAM cluster?
1. Using the REPRO command.
2. Using COBOL program
What is the REPRO command?
While a new cluster is created using IDCAMS, cluster will be empty. By using the REPRO
command, we can load records into the cluster.
REPRO is used to:
Copy Datasets (VSAM or NON-VSAM), copy catalogs.
Convert sequential and index sequential Datasets to VSAM format
Convert VSAM and Index sequential Datasets to sequential format
Backup VSAM catalog
Read a backup copy of VSAM catalogs.
Is it slower if you access a record through ALTERNATIVE INDEX as compared to
YES. Because the alternate Key would first locate the primary Key, which in turn locates the
actual record. Needs twice the number of I/Os.
What is RECOVERY and SPEED parameters in DEFINE CLUSTER command?
RECOVERY (default) and SPEED are mutually exclusive. Recovery pre-formats the control areas
during the initial DataSet load, if the job fails, you can restart but you must have a recovery
routine already written to restart the job. SPEED does not pre-format the CAs. It is recommended
that you specify SPEED to speed up your initial data load.
What is a SHAREOPTIONS parameter (SHR) in Define Cluster command.
It defines the cross-region and cross-system sharing capabilities of the DataSet. Syntax is SHR
1 means multiple read OR single write (read integrity)
2 means multiple read AND single write (Write integrity)
3 means Multiple read AND multiple write
4 is same as 3, which refreshes the buffer with every random access. Default is SHR (1 3).
What are the optional parameters to the input DataSet While loading the empty cluster
with the data records?
i) Skip and Count
In this case, the first two records are skipped and the next four records are printed. The
default for SKIP is 0, and for COUNT will be printing records from beginning to end.
ii) FromKey and ToKey
INDATASET (CUSTOMER.KSDS.CLUSTER) -
FROMKEY (111111) -
Will print all records with Key value ranging from 111111 to 444444.
iii) FROMADDRESS and TOADDRESS
iv) FROMNUMBER and TONUMBER
What does GDG mean in VSAM?
Generation Data Group
Is a delete operation possible in an ESDS? Is rewrite operation possible in ESDS ?
No. Delete operation is not possible in VSAM ESDS. Yes, rewrite operation is possible in an
Can VSAM files be deleted with the DELETE option of the DISPOSITION parameter of
No, you have to give a separate DELETE command in the VSAM cluster.
How many buffers are allocated to VSAM KSDS and ESDS?
2 data buffers by default for ESDS. For KSDS it allots 2 data buffers and 1 index buffers. Each
buffer is about 4k.
What are the codes returned by the AMS (Access Method Services) command during
Every AMS command issues a condition code. If multiple commands are being executed
Successively, there might be a requirement to execute or bypass certain commands on the
Success or failure of a previous command.
The normal condition codes returned by AMS commands are :
0 - The function was executed successfully
4 - A problem was encountered while executing the function, WARNING
8 - The requested function was executed, but major specifies were unavoidably bypassed,
12 - The requested command could not be performed because of a logical error, SEVERE
16 - A severe error occurred causing the remainder of the command stream to be
**************************************** The End*******************************************************
What are the 3 types of VSAM files ?
1-ESDS (Entry sequenced dataset). DB2 uses a special type of ESDS.
2-RRDS (Relative record dataset). Records are accessed using a relative number.
3-KSDS (Key sequenced dataset) is the most common type encountered. The record sequence is determined by a unique key field.
How do you create a VSAM file ?
You use the IDCAMS utility with the DEFINE CLUSTER option.
How do you copy to a VSAM cluster ?
You use the IDCAMS utility with the REPRO option.
What is an alternate index ?
An alternate index is another file related to the cluster, but sorted using an alternate key that can have duplicates.
How do you create an alternate index ?
You use the IDCAMS utility with the DEFINE AIX option after you build the cluster and then do another IDCAMS with the BLDINDEX option to populate the alternate index.
What parameter in the DEFINE AIX option is used to determine the maximum number of duplicate keys allowable ?
The RECORDSIZE parameter. There are 2 numbers that follow this: the 1st is the average and the 2nd is the maximum. The values are equal to 5 + (cluster key length) + N*(alternate key length), where N is the allowable number of duplicates.
Name a few common VSAM status codes.
02-READ a duplicate alternate key
10-end of file reached while doing a READ
22-trying to WRITE a duplicate primary key
23-record not found while doing a READ
97-file integrity verified, do an IDCAMS VERIFY
What is buffering and how does it apply to VSAM files ?
When large blocks of data are used, more main storage is required than when smaller blocks are used, but large blocks save CPU time and disk space. Additionally, extra buffers may save elapsed time since the program does not have to wait for an I/O to complete for it to continue processing.
In the JCL, you specify BUFNI (number of index buffers) and BUFND (number of data buffers) as subparameters of the AMP parameter.
For random access, the BUFNI is one more than the number of index levels and a BUFND of 2 is fine.
For sequential access, a BUFNI of 1 and a minimum of 5 for BUFND is fine.
For dynamic access, the values of each is the higher of the numbers for either random or sequential.