Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
📄 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

  1. KSDS (Key Sequenced Data Set)
    • Records accessed by unique key
    • Records stored in key sequence
    • Most commonly used type
  2. ESDS (Entry Sequenced Data Set)
    • Records stored in arrival order
    • Accessed by RBA (Relative Byte Address)
    • Like sequential files
  3. RRDS (Relative Record Data Set)
    • Records accessed by relative record number
    • Fixed-length records only
    • Direct access by slot number
  4. 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

FeatureVSAMNon-VSAM
OrganizationKSDS, ESDS, RRDSPS, PO
Key AccessYes (KSDS)No
CatalogRequiredOptional
UtilityIDCAMSIEBGENER

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))
/*