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

GDG

A GDG (Generation Data Group) is a collection of datasets that are logically related and share a common naming structure. It's commonly used to manage multiple versions of data over time

GDGs help in organizing datasets that are created on a regular basis like daily reports, backups, or job outputs making version control simple and automated

All datasets in a GDG share a common prefix, known as the GDG base.

  • Example: MYDATA.TEST.SAMPLE.GDG is the base name

Each dataset in the group is named using the base followed by a generation and version number. Example:

  • MYDATA.TEST.SAMPLE.GDG.G0001V00

  • MYDATA.TEST.SAMPLE.GDG.G0002V00

A GDG can have up to 255 generations at one time. When the limit is reached, older generations can be automatically deleted, based on how the GDG is defined (e.g., with a limit and a scratch or no-scratch option).

GDG datasets are usually sequential (PS), but they can also be partitioned (PDS)

All generations under a GDG must have the same dataset attributes, such as record format, record length, and dataset organization.

RULES

  • All generations within a GDG must share the same attributes. This includes DCB parameters like record format and record length, ensuring consistency across the group

  • A GDG can have up to 255 generations at a time. If you reach this limit, older generations may be automatically deleted, depending on how the GDG is set up.

  • Both DSN (the name of the dataset) and UNIT (where it should be stored) are required when allocating a new generation

  • When you're creating a new generation, make sure to set the DISP parameter to (NEW, CATLG, ...) in your JCL. This tells the system to treat it as a brand-new dataset and add it to the catalog.

  • GDGs don’t support VSAM datasets

USES

  • GDGs make it easy to manage files that are created on a schedule daily, weekly, monthly, or even yearly. Each version is stored neatly under the same base name, making everything easier to track.

  • GDGs automatically handle file versions for you. This reduces manual effort and prevents mistakes in using the wrong dataset

  • You can set a limit on how many generations to keep. When that limit is reached, older versions are automatically removed. This helps manage disk space without manual cleanup

PreviousIEBCOPY renaming member while copyingNextGDG parameters

Last updated 26 days ago

Was this helpful?