📄 VSAM
Introduction to VSAM
Beginner 🕑 20 min read
👁 0 views
What is VSAM?
VSAM (Virtual Storage Access Method) is an IBM file storage access method used on mainframes. It provides high-performance access to data sets with various organization methods.
VSAM File Types
- KSDS (Key Sequenced Data Set)
- Records accessed by unique key
- Records stored in key sequence
- Most commonly used type
- ESDS (Entry Sequenced Data Set)
- Records stored in arrival order
- Accessed by RBA (Relative Byte Address)
- Like sequential files
- RRDS (Relative Record Data Set)
- Records accessed by relative record number
- Fixed-length records only
- Direct access by slot number
- LDS (Linear Data Set)
- Byte-stream data
- Used by DB2 and other products
VSAM Components
- Cluster - The complete VSAM file
- Data Component - Contains actual records
- Index Component - Contains key index (KSDS only)
- Catalog - Contains cluster definitions
VSAM vs Non-VSAM
| Feature | VSAM | Non-VSAM |
|---|---|---|
| Organization | KSDS, ESDS, RRDS | PS, PO |
| Key Access | Yes (KSDS) | No |
| Catalog | Required | Optional |
| Utility | IDCAMS | IEBGENER |
Code Example
//DEFCLUST EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER -
(NAME(MY.VSAM.KSDS) -
INDEXED -
KEYS(6 0) -
RECORDSIZE(100 100) -
SHAREOPTIONS(2 3) -
CYLINDERS(10 5)) -
DATA -
(NAME(MY.VSAM.KSDS.DATA)) -
INDEX -
(NAME(MY.VSAM.KSDS.INDEX))
/*
//* ESDS DEFINITION
//SYSIN DD *
DEFINE CLUSTER -
(NAME(MY.VSAM.ESDS) -
NONINDEXED -
RECORDSIZE(80 80) -
CYLINDERS(5 2))
/*
//* RRDS DEFINITION
//SYSIN DD *
DEFINE CLUSTER -
(NAME(MY.VSAM.RRDS) -
NUMBERED -
RECORDSIZE(100 100) -
CYLINDERS(5 1))
/*