UNIT is a system/JCL concept indicating a device class or number. COBOL files are typically assigned via DDNAMEs, with UNIT specified in JCL for physical allocation.
1234567891011121314* COBOL file assigned to a DDNAME ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INFILE ASSIGN TO "INFILE". DATA DIVISION. FILE SECTION. FD INFILE. 01 IN-REC PIC X(80). PROCEDURE DIVISION. OPEN INPUT INFILE READ INFILE AT END DISPLAY "EOF" END-READ CLOSE INFILE STOP RUN.
The JCL DD named INFILE will control device allocation (UNIT, SPACE, etc.).
1234//* JCL example //STEP1 EXEC PGM=COBPROG //INFILE DD DSN=MY.DATASET,DISP=SHR,UNIT=SYSDA //OUTFILE DD DSN=*.TEMP,DISP=(,CATLG),SPACE=(CYL,(5,5)),UNIT=SYSDA
UNIT selects the device class; SMS may override explicit UNIT based on policies.
Aspect | Description | Example |
---|---|---|
Device class | UNIT= parameter | UNIT=SYSDA |
DD mapping | COBOL ASSIGN TO DD | ASSIGN TO "INFILE" |
Portability | Keep in JCL | DD with UNIT set |
1. What does UNIT typically refer to in mainframe contexts?
2. How does COBOL usually connect to a device/unit?
3. Which JCL parameter commonly controls device allocation?
4. What is a best practice for portability regarding UNIT?
5. What happens if UNIT is omitted in JCL?