Mainframe Open Education Project
  • Welcome: Learn & Contribute to MOE
    • MOE Vision, Mission and Content Phases
    • Who Can Contribute?
    • Contributor Log In
    • Earn A Contributor Badge
    • MOE Management System
    • MOE Events
    • Project Support
    • Legal Disclaimer, Copyright and License
    • Code of Conduct
    • Project Governance
    • Why MOE
  • Introduction: What is Enterprise Computing?
  • Chapter 1: What is a Mainframe Today?
    • Role of the Mainframe Today
      • Mainframe and the Cloud
      • Enterprise Computing
      • Hybrid Cloud
    • Who Uses the Mainframe and Why
    • Mainframe versus Server
    • Mainframe Basic Architecture & Components
    • How the Mainframe Works
    • Mainframe Security Myths
    • Mainframe Evolution
    • Mainframe Modernization
    • Video: ITs Best Kept Secret
    • Get Ready: Talk Like a Mainframer
    • Looking Back: The First 50 Years of Mainframe
  • Chapter 2: Foundational Technology
    • Brief Introduction to z/OS
    • TSO/E, ISPF, and UNIX System Services (USS): Interactive facilities of z/OS
    • Data Sets and How They Work
    • Job Control Language and System Display and Search Facility
      • Understanding the JCL(Job Control Language)
        • Understanding the JOB Statement
        • Understanding the EXEC Statement
        • Understanding the DD Statement
        • Creating a Physical Sequential (PS)
        • Understanding Libraries in JCL
        • Understanding Instream Procedures, Cataloged Procedures, and Symbolic Parameters in JCL
      • Utilities
        • IEBCOMPR
        • IEBGENER
          • Copying Between Sequential Datasets and PDS Members Using IEBGENER
          • Generate PDS member while copying
          • Copying a UNIX File to a PS File
        • IEBCOPY
          • IEBCOPY selective copy using select statements
          • IEBCOPY Exclude members while copying
          • IEBCOPY renaming member while copying
      • GDG
        • GDG parameters
        • GDG base
        • GDG Generation
          • Referencing GDG Generations Using Relative Numbers
        • Alter and Delete GDG
    • Enterprise Software Development and Implementation
    • Programming languages for Mainframe
    • Modern Application Management
    • Video: System Overview
    • Video: MVS Using Dynamic Allocations
    • Article: Red Hat OpenShift 4.7 on IBM Z Is a Game Changer for Container Orchestration and Managemen
    • IBM z16
  • Chapter 3: Roles in Mainframe
    • Roles and Categories
      • Category Definitions
  • Chapter 4: Deeper Dive in Role Chosen
    • IT Operations and System Support and Services
    • IT Business/Software Product Application Development and Support
    • IT Software Engineers
    • IT Architects
  • Chapter 5: Career Path Opportunities
    • Learning Programs
    • Job Opportunities
    • Career Event Calendar
    • Open to Hire
  • Mainframe Events and Conferences 2024
  • My Mainframe Journey: From Student to Professional
  • Backlog on Topics
  • Additional Community Resources
    • Communities
    • Courses, Tutorials, Manuals
    • Education Programs
    • IBM Mainframe Timeshare Services
  • Digital Certificate Badges
    • z/OS Mainframe Practitioner
  • Reviewer List
  • Modern Mainframe
    • What is a modern mainframe environment?
    • z/OSMF
      • What is z/OSMF?
      • Why it is important in a mainframe shop
      • z/OSMF Learning Materials
    • Zowe
Powered by GitBook
On this page

Was this helpful?

  1. Chapter 2: Foundational Technology
  2. Job Control Language and System Display and Search Facility
  3. GDG

GDG Generation

GDG GENERATION

A generation is an individual dataset that belongs to a Generation Data Group (GDG).

Each time you create a new version of the same kind of data (for example, a daily report or a backup file) it becomes a new generation within the GDG

Generations are automatically named by the system with a generation number and a version number at the end like: MYDATA.BACKUP.REPORT.G0001V00, MYDATA.BACKUP.REPORT.G0002V00

All generations share the same GDG base name (MYDATA.BACKUP.REPORT in this example) but have different unique suffixes (GxxxxVxx)

If you run a backup job every night, each night's backup will be stored as a new generation under the same GDG base

EXAMPLE

//CRTEGEN   JOB (12345),CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
//STEP1     EXEC PGM=IEFBR14
//MYGDG     DD   DSN=MYDATA.BACKUP.REPORT(+1),
//               DISP=(NEW,CATLG,DELETE),
//               SPACE=(CYL,(1,1),RLSE),
//               UNIT=SYSDA,
//               DCB=(RECFM=FB,LRECL=80,BLKSIZE=800,DSORG=PS)

Explanation:

  • JOB Statement: Starts the job named CRTEGEN.

  • EXEC Statement: Runs the IEFBR14 utility to create a dataset without doing any processing.

  • DD Statement:

    • DSN=MYDATA.BACKUP. REPORT(+1): Creates a new generation under the GDG base(MYDATA.BACKUP.REPORT). (+1) means "next generation" or "new generation"

    • DISP=(NEW,CATLG,DELETE): Creates and catalogs the dataset if successful, deletes it if the job fails.

    • SPACE=(CYL,(1,1),RLSE): Allocates 1 cylinder initially and 1 cylinder as secondary.

    • UNIT=SYSDA: Allocates on the default system storage device.

    • DCB=(RECFM=FB,LRECL=80,BLKSIZE=800,DSORG=PS): Defines the dataset attributes: Fixed Block format, 80-byte record length, and it’s a sequential dataset.

PreviousGDG baseNextReferencing GDG Generations Using Relative Numbers

Last updated 2 days ago

Was this helpful?