Modernization Hub

DDNAME - Data Definition Name

Enhanced Definition

A `DDNAME` (Data Definition Name) is a symbolic name used in JCL (Job Control Language) to refer to a specific data set or other I/O resource required by a program. It acts as a logical pointer, associating a program's internal file reference with an external physical data resource on the z/OS system.

Key Characteristics

    • Symbolic Link: It's a symbolic name (1-8 characters, alphanumeric, first char A-Z or #, $, @) that a program uses to request access to data.
    • JCL Statement: Defined within a DD (Data Definition) statement in JCL, which specifies the actual physical characteristics and location of the data set (e.g., DSN, DISP, UNIT, VOL).
    • Program-Defined: The DDNAME itself is often hardcoded or specified within the application program (e.g., in a SELECT statement in COBOL or a DCB macro in assembler) to identify the file.
    • Dynamic Allocation: While typically defined in JCL, DDNAMEs can also be dynamically allocated by programs using SVC 99 (DYNALLOC) or TSO ALLOCATE commands, allowing for flexible resource assignment at runtime.
    • Scope: A DDNAME is typically unique within a single job step, but it can be referenced across steps if defined in a JOBLIB or STEPLIB concatenation, or if it refers to a temporary data set passed between steps.
    • Standard DDNAMEs: Certain DDNAMEs have special meanings, such as SYSPRINT for print output, SYSIN for input data, and SYSOUT for system output.

Use Cases

    • Batch Program Input/Output: Connecting a COBOL program's SELECT ASSIGN TO DDNAME statement to a DD statement in JCL that points to an input sequential file or an output report file.
    • Utility Program Parameters: Providing input to z/OS utilities like IEBGENER or IDCAMS where SYSIN is used for control statements and SYSPRINT for messages.
    • Library Concatenation: Defining STEPLIB or JOBLIB DDNAMEs to specify private program libraries that should be searched before system libraries for program execution.
    • Temporary Data Sets: Creating work files for sorting or intermediate processing using DDNAMEs with DSN=&&TEMPDSN to manage temporary storage.
    • VSAM Data Set Access: Linking a program's DDNAME to a DD statement that defines a VSAM KSDS, ESDS, or RRDS, including its AMP parameters for performance tuning.

Related Concepts

A DDNAME is fundamental to JCL and program execution on z/OS. It bridges the gap between a program's logical file requests and the physical data sets managed by the operating system. It works in conjunction with the DD statement to provide the necessary parameters for data set access, and its resolution is handled by the Job Entry Subsystem (JES) and Data Management Services (DMS). DDNAMEs are crucial for COBOL SELECT statements, assembler DCBs, and C programs using fopen with DDNAME: prefixes, enabling applications to interact with the z/OS file system.

Best Practices:
  • Meaningful Names: Choose DDNAMEs that are descriptive and clearly indicate their purpose (e.g., MASTIN, TRANOUPT, `SYSPR

Related Vendors

Applied Software

7 products

IBM

646 products

Related Categories

Encryption

41 products

Files and Datasets

168 products

Operating System

154 products