You are on page 1of 133

z/OS VSAM Concepts

Sessions Outline - Day 3


Session 1 : Introduction to VSAM
Session 2 : Structure of VSAM Datasets
Session 3 : Access Method Services
Session 4 : Demo/Exercise Discussion

Objectives

Familiarization with
VSAM concepts
Space Allocation and types of data sets supported by VSAM
VSAM Characteristics

Identify the general uses for Access Method Services

Introduction to VSAM
(Virtual Storage Access Method)
Session 1

Topics Covered
VSAM Basics
VSAM Dataset Organization

What is VSAM?
VSAM is a high-performance access method used in OS/390, MVS/ESA
and z/OS operating systems
Used as a Dataset in conjunction with programming languages (COBOL or
PL/I) to create Applications
Used by CICS to store and retrieve data
Not a database management system does not provide a relationship
among data (such as DB2 or IMS)

VSAM Characteristics
VSAM supports three types of data access: Sequential, Random (also
called Direct access) and Skip Sequential
Protection of data against unauthorized access is an inherent part of VSAM
Easily portable to AS/400, the PC or non-IBM computers (cross system
compatibility)
A format for storing data independently of the type of direct access storage
device on which it is stored

VSAM Characteristics (Contd.)


Options for optimizing performance
A multifunction service program (Access Method Services - IDCAMS) for
setting up catalog records and maintaining data sets
Transactional VSAM - allows VSAM data set sharing in batch/online and
batch/batch environments

VSAM Dataset Organizations


ESDS

Entry Sequenced Data Set

KSDS

Key Sequenced Data Set

RRDS

(Fixed Length) Relative Record Data Set

VRRDS

Variable Length Relative Record Data Set

LDS

Linear Data Set

NON-VSAM Access Methods


BSAM

: Basic Sequential Access Method

QSAM

: Queued Sequential Access Method

ISAM

: Indexed Sequential Access Method

BDAM

: Basic Direct Access Method

10

Similarities between VSAM & NON-VSAM Datasets


VSAM type

Similar to

KSDS

ISAM

ESDS

BSAM/QSAM

RRDS

BDAM

11

VSAM Dataset Organization

12

Topics Covered
VSAM Catalog Structure
VSAM Terminology

VSAM Record Storage


Control Intervals and Control Areas

13

VSAM Terminology
Catalog Management

Record management

Logical Record

Data component

Key Field

Master/User Catalog

Physical Record

Data Space

Cluster

Control Interval and Control Area

Sphere

Alternate Indexes

Index component

Spanned Records

14

Catalog Management
VSAM maintains extensive information about data sets and direct access
storage space in an integrated catalog facility (ICF) catalog.
The catalogs collection of information about a data set defines that data
sets characteristics. All VSAM files
must be defined in an ICF catalog.

15

Record Management
The record management part of VSAM contains the access method code.

16

Logical record
Unit of information used to store data in a VSAM data set.
Set of bytes containing a logical description of an item processed
by an application program.
A logical record can be of a fixed size or a variable size depending on the
business requirements.

17

Key field
Identifies the item associated with the logical record.
Important Field whose contents can be used to retrieve the specific logical
record

18

Physical record
The data is usually a set of logical records (packed together) transferred
from or to memory by just one Read or Write CCW. The access method
uses the BLKSIZE parameter to determine the length of the physical record.
A large block size results in fewer gaps in the track but larger buffer in
memory to keep the data.
A physical record is device dependent, its size is calculated at the time the
data set is defined.
All physical records have the same length.

19

Cluster
Collection of physical datasets that make up one logical data set.
Consists of Data Component or Data Component & Index Component

20

Sphere
A sphere is a base VSAM cluster and its associated clusters.
These associated clusters are the alternate indexes (AIXs) of the base
cluster.

21

Data and Index Component


A component is an individual part of a VSAM data set. Each component has
a name, an entry in the catalog and an entry in the VTOC.
The KSDS and VRRDS organizations have data and index components.
ESDS, RRDS and LDS organizations only have data components.
The data component is the part of a VSAM data set, alternate index, or
catalog that contains the data records.
Using the Index component VSAM is able to randomly retrieve a record
from the data component when a request is made for a record with a certain
key. The key determines the records position in the data set.

22

Control Interval and Control Area


It is the fundamental building block of every VSAM file.A CI is a contiguous
area of direct access storage that VSAM uses to store data records and
control information that describes the records.
A CI is the unit of information that VSAM transfers between the storage
device and the process or during one I/O operation. Whenever a record is
retrieved from direct access storage, the entire CI containing the record is
read into a VSAM I/O buffer in virtual storage. The desired record is
transferred from the VSAM buffer to a user-defined buffer or work area.
A CA is formed by two or more CIs put together into fixed-length contiguous
areas of direct access storage. A VSAM data set is composed of one or
more CAs. CAs are needed to implement the concept of splits. The size of a
VSAM file is always a multiple of its CA. VSAM files are extended in units of
CAs. A spanned record cannot be larger than a CA.
23

Alternate Indexes
Alternate indexes (AIXs) allows logical records of a KSDS or of an ESDS to
be accessed sequentially and directly by more than one key field.
AIXs eliminate the need to store the same data in different sequences in
multiple data sets for the purposes of various applications. Each alternate
index is a KSDS cluster consisting of an index component and a data
component.

24

Spanned Records
Spanned records are needed when the application requires very long logical
records. A spanned record may be the data component of an AIX cluster. If
spanned records are used for KSDS, the primary key must be within the first
control interval.
Spanned records are logical records that are larger than the CI size. To
have spanned records, the file must be defined with the SPANNED attribute
at the time it is created. Spanned records are allowed to extend across or
span control interval boundaries.
A spanned record must always begin on a control interval boundary and fills
one or more control intervals within a single control area. A spanned record
cannot share the CI with any other records.

25

Control Intervals and Control Areas

26

Control Interval
VSAM Basic unit of work the minimum amount of data that is transferred
via buffers, between DASD and Main Memory
VSAM determines the size of the physical Record (BLOCK) based on CI
Size
The CI size can be from 512 byes to 32 KB

27

Control Interval & Control Area


CA is a fixed length area of auxiliary storage space in which VSAM stores
records
Logical records of a VSAM dataset are grouped into a number of CIs.
CIs of a dataset are grouped into one or more CAs
The size of a VSAM file is always a multiple of its CA

28

General format of a Control Interval

29

Format of Data Control Interval

Logical Record Area (LRA)

Unused Space

Record1 Record2 Record3 Free Space


(FSPC)

US CIF

CISZ
Control Information Field

30

Control Information Field of a CI


CIF consists of two subfields:
Control Information Definition Field (CIDF)
It is a 4 byte field
Contains the Offset and Amount of Free space
Record Definition Field (RDF)
It is a 3-byte field.
Length of records (based on the spread of data)
Number of adjacent records that are of same length

31

Control Information Fields in a CI


Record Type

Number of Records/CI

Control Information (bytes)

Fixed Length

Multiple

10

Fixed Length

Variable Length

Depends on the spread


of records

4 (CIDF) and 3 (RDF)

32

CISZ (CI Size) an example


How many 80 byte Fixed Length recs can be fit in a CISZ(4096) of
Freespace(20,10) ?
Solution:

Logical Record Area (LRA)


40 records of 80 byte record length
Space utilized = 40*80 = 3200 bytes

FSPC
(4096*0.20)
819 bytes

US
67 bytes

CIF
10 bytes

Unused space =
4096 3200 819 10 = 67

33

Inserting a record in a CI

Before Inserting:
11111

22222

New Record with key 44444


55555

22222

US CIF

New record

After Inserting:
11111

(FSPC)

44444

55555 (FSPC) US CIF

34

Control Interval Split


Before CI Split:
CI-1

11111

New Record with key 33333

22222

44444

55555

66666 US CIF

(FSPC)

CI-2

US CIF

After CI Split:
CI-1

11111

22222

33333

(FSPC)

US CIF

CI-2

44444

55555

66666

(FSPC)

US CIF

35

Format of Index Control Interval

Header

Entry1

Entry2

Entryn

CIF

KSDS Control Interval


Control Information Field

36

Structure of VSAM Datasets


Session 2

37

Topics Covered
Types of VSAM Datasets
More on KSDS Index Structure

38

Objective
Understand the types and internal organization of VSAM datasets
Identify appropriate applications for VSAM data sets
Understand KSDS Index Search Techniques

39

Types of VSAM Datasets

40

VSAM Datasets Types


Entry Sequenced Data Set (ESDS)
Relative Record Data Set (RRDS)
Key Sequenced Data Set (KSDS)
Variable Length Relative Record Data Set (VRRDS)
Linear Data Set (LDS)

41

ESDS CA Structure

42

COBOL example ESDS data set


SELECT <Cobol application file>
ASSIGN TO <AS-ddname>
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS STATUS-KEY

43

RRDS Structure

44

COBOL example - Sequential Retrieval


SELECT <vsamfile>
ASSIGN TO <ddname>
ORGANIZATION IS RELATIVE
ACCESS IS SEQUENTIAL
RELATIVE KEY IS RR-NUMBER

45

COBOL example - Direct Retrieval


SELECT <vsamfile>
ASSIGN TO <ddname>
ORGANIZATION IS RELATIVE
ACCESS IS RANDOM
RELATIVE KEY IS RR-NUMBER.

46

KSDS Structure

47

COBOL example - Sequential Retrieval


SELECT <vsamfile>
ASSIGN TO <ddname>
ORGANIZATION IS INDEXED
ACCESS IS SEQUENTIAL
RECORD-KEY IS EMP-NUM
FILE-STATUS IS STATUS-KEY.

48

COBOL example - Direct Retrieval


SELECT <vsamfile>
ASSIGN TO <ddname>
ORGANIZATION IS INDEXED
ACCESS IS RANDOM
RECORD-KEY IS EMP-NUM
FILE-STATUS IS STATUS-KEY.

49

LDS Structure

50

Comparison of VSAM DS

51

Comparison of VSAM DS (Contd.)

52

More on KSDS Index Structure

53

KSDS Structure

54

General Format of Index Set

55

General format of Sequence Set

56

Index Search Techniques


Horizontal Search
For a Sequential Search, search is performed with the key value less
than or equal to the sequence set record

Vertical Search
For a Random Access, search is performed from the Index set
Once the key <= condition is met, then it follows a downward pointer to
the corresponding Sequence set

57

Example-1
How Index & Sequence Sets work

58

Example-2
Data Component Structure

Data Records

59

Example-2 (Contd.) Data Component Structure


Index Set Record

60

Share option in VSAM

Share option in VSAM is defined as Concurrent Usage of Dataset


by several People at the same time. We can use this option for sharing the files
in the same region and in other system. The SHAREOPTION has two
parameters, the inter-system parameter and intra-system parameter.
Syntax:SHAREOPTIONS(crossregion,crossystem)

61

Share option cont:....


If the source data set is allocated with DISP=SHR, there is a risk
that it could be updated by a region other than the FOR. If this happened, the
data table would no longer match the source data set. To minimize this risk, the
VSAM cross-region SHAREOPTION should be set to 1 or 2.
1 means that either one region can have update access to the data
set or many regions can have read-only access.
2 means that one region can have update access to the data set and,
at the same time, many regions can have read-only access.
Regardless of the setting of DISP, a warning message is issued if the crossregion SHAREOPTION is 3 or 4, or if it is 2 but the CICS-maintained data table
has read-only access (which means another region might be able to update the
data set).
62

Syntax and attributes

63

Access Method Services


Session 3

64

Topics Covered
Introduction to IDCAMS
IDCAMS Commands
Define and Load a VSAM dataset
VSAM Advanced Topics

65

Objectives
Use Access Method Services (AMS )
Identify some useful AMS Commands
Define and Load a Basic Cluster with IDCAMS
Define and Build Alternate Index

66

Introduction to IDCAMS

67

IDCAMS Utility
Multifunction utility program supplied with VSAM (IDCAMS) to manage
and maintain datasets

68

IDCAMS Features
IDCAMS can be used to

Define, Alter and Delete datasets and allocate space for them

List and Maintain VSAM Catalogs

Load, Print and Copy datasets

Reorganize datasets

Define and build alternate indexes

Facilitate backup and recovery

Provide security and integrity functions

69

Invoking IDCAMS
1. As a Job or Job step
Example
//YOURJOB JOB (ACCT),'IDCAMS JOB',
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN
DD *
AMS commands and their parameters
/*

70

Invoking IDCAMS (Contd.)


2. TSO can be used with VSAM and access method services to
Execute access method services commands
Execute a program to call access method services
3. From an application Program

71

IDCAMS Commands

72

COMMANDS
Modal Commands

Used to control execution and establish options

Modal commands allow the conditional execution of functional


commands.

Functional Commands

Used to invoke access method services

73

COMMANDS (Contd..1)
COMMAND specifies the type of service requested
Default statement margins are positions 2 through 72.
Command stmt can be continued to the next line with - as the last
parameter
Comment may be embedded in Command statements between /* and */

74

COMMANDS (Contd..2)

75

Condition Codes
IDCAMS returns a condition code following the execution of each Command

Can be used to selectively execute or skip subsequent commands

Initialized to zero at the start of the execution

76

Condition Codes (Contd..1)


LASTCC - specifies the condition code value that resulted from the immediately
preceding function command
MAXCC - specifies the maximum condition code value that has been established
by any previous function command

77

Condition Codes (Contd..2)


Code

Explanation

Function executed successfully

Some problem was met in executing the function but it was


possible to continue. The continuation might not provide
exact results, but no permanent harm will have been done

78

Condition Codes (Contd..3)


Code
8

Explanation
A requested function was completed but major specifications
were unavoidably bypassed

12

The requested function could not be performed, as a result of


a logical error

16

A severe error occurred that caused the Job Step to


terminate

79

Modal Commands
IF-THEN-ELSE :
Used to control command execution on the basis of condition codes
DO-END :
Used to specify the group of commands as a single unit

80

Modal Commands (Contd.)


NULL

: Used to indicate that no action is to be taken

PARM

: Specifies processing options to be used during execution

SET

: Used to change or reset a previously defined condition code

81

Modal Commands - Syntax


IF {LASTCC|MAXCC} {operator} {numeric value}
THEN {command }
DO
{command set}
END
ELSE {command}
DO
{command set}
END

82

Functional Commands
DEFINE Used to define the following objects

Alias

Alternate index

Cluster

Dataspace

User Catalog and Master Catalog

Path

Catalog entry for a Generation Data Group

Catalog entry for a non-VSAM dataset


83

Functional Commands (Contd..1)


DELETE Used to delete catalogs, VSAM and non-VSAM datasets
EXAMINE Analyzes and reports on the structural consistency of the
index component and/or data component of KSDS cluster
LISTCAT Used to list catalog entries

84

Functional Commands (Contd..2)


IMPORT Connects user catalogs and imports VSAM datasets

EXPORT Disconnects user catalogs and exports VSAM datasets.

PRINT Used to print VSAM and non-VSAM datasets and catalogs

85

Functional Commands (Contd..3)


ALTER - Used to alter attributes of datasets and catalog that have already
been defined
Alter
Freespace
Volume
Prevent temporary updates to a VSAM dataset

86

Functional Commands (Contd..4)


BLDINDEX - Builds alternate indexes for existing datasets
Keys will be actually built from the base cluster with the BLDINDEX
command
VERIFY : Used to cause a catalog to correctly reflect the end of a dataset
after an error occurred in closing a VSAM dataset. The error may have
caused the catalog to be incorrect.

87

Functional Commands (Contd..5)


REPRO
Loads an empty VSAM cluster with records
Creates backup of a VSAM dataset on a sequential dataset and restores the
dataset
Merges data from two VSAM datasets

88

Example: Modal & Functional Commands


//JOBNAME JOB ...
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN
DD *
DEFINE CLUSTER IF LASTCC = 0 THEN REPRO ELSE DO
SET LASTCC = 0
DELETE CLUSTER ...
DEFINE CLUSTER ...
END
/*

89

Define and Load a VSAM Dataset

90

DEFINE CLUSTER
The DEFINE CLUSTER command can be used to define a cluster and
specify attributes for the cluster as a whole and for the components of the
cluster. The general format is :

91

DEFINE CLUSTER example


//JOB1 JOB
CLASS=A
//DEFINE
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN
DD *
DEFINE CLUSTER (NAME(TRGXXX.MAST.CLUSTER) TRACKS(51) CONTROLINTERVALSIZE(4096) INDEXED VOLUMES(TRG001)
KEYS(6,0) FREESPACE(10,10) DATA (NAME(TRGXXX.MASTER.DATA) TRACKS(21) RECORDSIZE(200 200)) INDEX (NAME(TRGXXX.MASTER.INDEX) IMBED).
/*

92

LISTCAT
The LISTCAT command lists catalog entries.
Freespace, CI/CA split, Data Attributes, Statistics. Allocation information

All parameters of the LISTCAT command are optional

LISTCAT can be used under TSO

93

LISTCAT Syntax
LISTCAT ALIAS | ALTERNATEINDEX |
CLUSTER | NONVSAM | PATH | ENTRIES(entryname/password
entryname/password..) |
LEVEL(level)
EXPIRATION(days)
NAME | HISTORY | VOLUME|
ALLOCATION | ALL
OUTFILE(ddname)

94

LISTCAT example
//JOBTRGXX ...
//LISTCAT1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN
DD *
LISTCAT ENTRIES(TRGXXX.MAST.CLUSTER) CLUSTER ALL
/*

95

REPRO
The REPRO command copies VSAM and non-VSAM data sets, copies
catalogs.

96

REPRO Syntax
REPRO {INFILE(ddname)/password
INDATASET(entryname)/password
{OUTFILLE(ddname/password
OUTDATASET(entryname/password}
( CHARACTER | DUMP | HEX )
( FROMKEY(key) |
( FROMADDRESS(address) |
( FROMNUMBER(number) )
SKIP(number)
( TOKEY(key) |
TOADDRESS(address) |
TONUMBER(number) )
COUNT(Number)
97

REPRO example
Example: Load VSAM KSDS from Non-VSAM dataset and copy selected
records to an ESDS
//JOBTRGXX ...
//STEP1
EXEC PGM=IDCAMS
//INPUTDD
DD DSN=TRGXXX.DATA.RECORDS,DISP=OLD
//SYSPRINT DD SYSOUT=A
//SYSIN
DD *
REPRO INFILE(INPUTDD) OUTDATASET(TRGXXX.KSDS.CLUSTER)
/*

98

DELETE
The DELETE command deletes catalogs, VSAM datasets, non-VSAM
datasets and objects.

99

DELETE Command Syntax


DELETE (entryname/password entryname/password..)
ALIAS | ALTERNATEINDEX | CLUSTER | NONVSAM |
PATH | USERCATALOG
ERASE | NOERASE
PURGE| NOPURGE
FORCE | NOFORCE

100

DELETE example
//DELMAST EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN
DD *
DELETE (TRGXXX.MAST.CLUSTER TRGXXX.TEST.DATA) FILE(DD1) PURGE ERASE
/*

101

PRINT
PRINT: The PRINT command prints VSAM datasets, non-VSAM datasets,
and catalogs. The syntax is:

102

PRINT Syntax
PRINT {INFILE(ddname /password )
INDATASET(entryname /password ) }
CHARACTER| DUMP | HEX
FROMKEY(key) |
FROMADDRESS(address) |
FROMNUMBER(number) }
SKIP(number)
OUTFILE(ddname)
TOKEY(key) |
TOADDRESS(address) |
TONUMBER(number)|
COUNT(Number)
103

PRINT example
//JOBTRGXX ...
//DEFAIX
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN
DD *
PRINT INDATASET(TRGXXX.MAST.CLUSTER) FROMKEY(E00001) COUNT(100)
/*

104

VERIFY
The VERIFY command causes a catalog to correctly reflect the end of a
VSAM data set after an error occurs while closing a VSAM data set
The syntax is:
VERIFY {FILE(ddname/password) |
DATASET(entryname/password)}

105

VERIFY Example
Example of a typical VERIFY usage
Job TRGJJJJ has terminated abnormally and VSAM dataset
TRGXXX.MAST.CLUSTER is not closed correctly. This job is followed by
another job that uses this file for an IDCAMS copy. Following are the set of
return codes that will appear in the Job Spool
In JESMSGLG the error will be
IEC161I 056-084,TRGGXXXX,JS010,IFILE01,,,
In SYSPRINT of the step failed the error will be
IDC3300I ERROR OPENING TRGXX.MAST.CLUSTER
IDC3351I ** VSAM OPEN RETURN CODE IS 118
Solution: A VERIFY issued on VSAM file TRGXXX.MAST.CLUSTER will
correct this error

106

VERIFY Example (Contd..)


//JOBTRGXX ...
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN
DD *
VERIFY DATASET(TRGXXX.MAST.CLUSTER)
/*

107

ALTERNATE INDEX
Allows for a KSDS to be accessed in a different order other than the primary
key
Allows the creation of an index for a non-indexed object, such as an ESDS
cluster

108

Steps to create an ALTINDX

DEFINE command to create the alternate index

BLDINDEX command to build the keys for the alternate index

DEFINE command to create a PATH relating the alternate index to the


base cluster

109

DEFINE ALTINDX example


//JOBTRGXX ...
//DEFINE
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE AIX (NAME(TRGXXX.MAST.TEMP.AIX) VOLUMES(TRG001) RELATED(TRGXXX.MAST.CLUSTER) UPGRADE TRACKS(21) KEYS(24,8)
RECORDSIZE(200 200) FREESPACE(10,10)
NONUNIQUEKEY DATA (NAME(TRGXXX.MAST.TEMP.AIX.DATA) INDEX (NAME(TRGXXX.MAST.TEMP.AIX.INDEX) )
/*

110

BLDINDX
The BLDINDEX command builds alternate indexes for existing data sets
Alternate Index can be built only after its base has been loaded with at least
one record

111

BLDINDX example
//JOBTRGXX ...
//BLDINDEX EXEC PGM=IDCAMS
//DD1
DD DSN=TRGXXX.TEMP.SEQ,DISP=SHR
//DD2
DD DSN=TRGXXX.MAST.TEMP.AIX,DISP=SHR
//IDCUT1 DD VOL=TEMPDA,UNIT=3380,DISP=OLD,AMP='AMORG
//IDCUT2 DD VOL=TEMPDA,UNIT=3380,DISP=OLD,AMP='AMORG'
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
BLDINDEX INFILE(DD1) OUTFILE(DD2)
/*

112

DEFINE PATH
After defining an alternative index, a PATH must be defined to access the
data set. This forms the connection between the alternative index and the
base cluster, and the connection is stored in the catalog
When a program opens a path for processing, both the base cluster and the
alternate index are opened

113

DEFINE PATH example


//JOBTRGXX ...
//BLDINDEX EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN
DD *
DEFINE PATH (
NAME(TRGXXX.MAST.TEMP.IX)
PATHENTRY(TRGXXX.MAST.TEMP.AIX) )
/*

114

GDG
A group of chronologically or functionally related data sets are called
Generation Data Group (GDG)
Each data set within a GDG is called a Generation Data Set or simply a
Generation
They are processed periodically, often by adding a new generation,
retaining previous generations, and sometimes discarding the oldest
generation
Each generation data set in the group will have the name as GDG
name.GxxxxVyy, where xxxx is the generation number and yy is the
version number

115

GDG (Contd..)
GDGs can be referred in a JCL by means of an absolute name or relative
name
Absolute name is by coding the complete Generation name as
GDGname.G0001V00
Relative name is a signed integer used to refer to the latest (0), the next to
the latest (1), and so forth, generation. The relative number can also be
used to catalog a new generation (+1)

116

GDG Advantages
The advantages of grouping related data sets are:
All of the data sets in the group can be referred to by a common name
The operating system is able to keep the generations in chronological
order
Outdated or obsolete generations can be automatically deleted by the
operating system

117

GDG Usage
One of the important usage of a GDG is for cataloging periodic backups of
VSAM datasets
Example, a GDG of limit 7 can be used to take backup of VSAM data
sets from the batch job for all 7 days of the week
The GDG base after data sets are cataloged will be as follows
GDGname.G0001V00
GDGname.G0001V01

GDGname.G0001V06
Another important usage of GDG is for cataloging periodic reports (weekly,
monthly, etc). Example, a GDG with limit 12 can hold monthly reports for a
year
118

GDG Syntax
DEFINE GENERATIONDATAGROUP
(NAME(entryname)
LIMIT(limit)
[EMPTY | NOEMPTY]
[SCRATCH | NOSCRATCH]
[TO(date) | FOR(days)])

119

GDG example
//JOBTRGXX ...
//DEFGDG
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN
DD *
DEFINE GENERATIONDATAGROUP ( - NAME(TRGXXX.MAST.GDG)
LIMIT(5)
SCRATCH )
/*

120

VSAM Backup considerations


//JOBTRGXX ...
//LOADSTEP EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//DD1
DD DSN=TRGXXX.MAST.GDG(+1),
//
DISP=(NEW,CATLG,DEL),UNIT=TAPE,
//
VOL=TEMPAD,DCB=(RECFM=FB,LRECL=80)
//SYSIN
DD *
REPRO
INDATASET(TRGXXX.MAST.CLUSTER)
OUTFILE(DD1)
/*

121

Utility U.5 in ISPF


A user interface is available under option U.5. This provides 2 options

Access method services

VSAM maintenance utility

122

U.5.1 Option
Access method services (option u.5.1) provides
interface for the following functions
Define Cluster
Define alternate index
Define path
Alter VSAM dataset characteristics
Rename a dataset
Copy/Load a VSAM dataset
Delete a VSAM dataset
Print a VSAM dataset
Verify endfile markers

123

VSAM Advanced Topics

124

CICS VSAM Transparency for z/OS


CICS VSAM Transparency for z/OS can help you unlock value in data used
by your legacy applications and extend its use to new DB2 applications,
online and e-business

125

VSAM to DB2 migration


24x7 availability
Running adhoc queries
Ability to perform data analysis (mgt reporting, analytics)
Exploitation of database maintenance tools
Integration with new applications based on DB2 technology

126

Other advanced topics in VSAM


VSAM Extended Format & Extended Addressability
Data striping
Data compression
Partial space release
System-managed buffering (SMB)
VSAM Record Level Sharing (RLS)
Utilities: File-Aid, DITTO, STARTOOL

127

Discussion Topics
What does an index component contain in KSDS ?
How data is organized in Data Component ?
What is the Index search technique for a Random process?
Access Method Services, IDCAMS creates and maintains VSAM DS. State
True / False

128

Discussion topics (Contd.)


The number of extents that the VSAM can grow up to : a) 123 b) 251 c) 255
d) none
What is Alternate Index ?
How is Alternate Index created ?
How does the BLDINDX perform ?
How is an LDS different from an ESDS?

129

Demo/Exercise
Session 4

130

Demo
Create a VSAM KSDS
Load VSAM KSDS (Use Repro)
Create an Alternate Index
Build Index
Define Path
Do a LISTCAT on KSDS and explain the output

131

References
MVS/VSAM for the Application Programmer Gary D.Brown & S.A.M.
Smith
VSAM Demystified Mary Lovelace et al. IBM Redbooks 2003 (Document
Number SG24-6105-01) in IBMs Website
DFSMS/MVS V1R2 Access Method Services for VSAM (Document Number
SC26-4905-01) in IBMs Website

132

THANK YOU

133

You might also like