JCL is the contract between your Easytrieve program and z/OS: which program runs (PGM=), which libraries supply modules (STEPLIB), where source and listings go (SYSIN, SYSPRINT), and which files map to business data. Broadcom documents JCL patterns for compile-only, compile-and-go, and compile-link-execute. This tutorial explains each DD and PARM so beginners can read—and write—real shop procs confidently.
EZTPA00 is the Easytrieve 11.6 program name for compile, compile-and-go, and link requests. The PARM statement at the start of SYSIN (or embedded in source stream) tells EZTPA00 whether to syntax-check, compile only, link a module, or compile and execute immediately. Older JCL uses PGM=EZT (compile-and-go) or PGM=EZTCOM (compile-only)—migrate to EZTPA00 for new work.
| DD | Purpose | Notes |
|---|---|---|
| STEPLIB | Product and app load libraries | Must include CBAALOAD; concatenate order matters with DB2/IMS |
| SYSIN | PARM + source or execute-only parms | PDS member or inline |
| SYSPRINT | Listing and messages | SYSOUT=* or dataset; MOD to append |
| EZOPTBL | Options table file | Optional if EZTINI default exists |
| EZTVFM | Virtual file work space | SPACE on SYSDA or similar |
| SYSLIN | Object output for link | Required for PARM COMPILE / LINK flows |
| SYSLMOD | Load module library target | Link-edit output destination |
| File DDs | Match FILE names | INFILE, MASTER, etc. per program |
Produces object code in SYSLIN for a separate link step. Use when promoting builds through DEV→TEST→PROD load libraries without executing in the compile step.
12345678//COMP EXEC PGM=EZTPA00,REGION=4M //STEPLIB DD DISP=SHR,DSN=your.easytrieve.r116.CBAALOAD //EZOPTBL DD DISP=SHR,DSN=your.easytrieve.r116.EZOPTBL //EZTVFM DD UNIT=SYSDA,SPACE=(CYL,(3,1)) //PANDD DD DISP=SHR,DSN=your.ezt.macros //SYSPRINT DD SYSOUT=* //SYSLIN DD DISP=(,PASS),DSN=&&PCODE //SYSIN DD DSN=DEV.EZT.SOURCE(MTHRPT),DISP=SHR
Source member must begin with appropriate PARM (for example PARM COMPILE or PARM LINK as documented for your compile mode). SYSLIN passes to IEWL in the next step. &&PCODE is temporary dataset deleted at job end unless passed with PASS.
12345678//GO EXEC PGM=EZTPA00,REGION=4M //STEPLIB DD DISP=SHR,DSN=your.easytrieve.r116.CBAALOAD //EZOPTBL DD DISP=SHR,DSN=your.easytrieve.r116.EZOPTBL //EZTVFM DD UNIT=SYSDA,SPACE=(4096,(100,100)) //SYSPRINT DD SYSOUT=* //TRANSIN DD DISP=SHR,DSN=PROD.DAILY.TRANS //RPTOUT DD SYSOUT=* //SYSIN DD DSN=DEV.EZT.SOURCE(DAYRPT),DISP=SHR
No SYSLIN—program runs immediately after successful compile. File DD names TRANSIN and RPTOUT must match FILE statements inside source. REGION=4M increases address space for large programs.
123456789101112131415//COMPLK EXEC PGM=EZTPA00,REGION=4M //STEPLIB DD DISP=SHR,DSN=your.easytrieve.r116.CBAALOAD //EZTVFM DD UNIT=SYSDA,SPACE=(4096,(100,100)) //SYSPRINT DD SYSOUT=* //SYSLIN DD UNIT=SYSDA,SPACE=(400,(100,50)),DISP=(,PASS),DSN=&&SYSLIN //SYSIN DD * PARM LINK(MTHRPT) FILE INFILE ... /* //LKED EXEC PGM=IEWL //SYSPRINT DD SYSOUT=* //SYSLIN DD DSN=*.COMPLK.SYSLIN,DISP=(OLD,DELETE) //SYSLIB DD DISP=SHR,DSN=your.easytrieve.r116.CBAALOAD //SYSLMOD DD DISP=SHR,DSN=PROD.EZT.LOAD //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,5))
PARM LINK(MTHRPT) names the load module. IEWL binder reads SYSLIN object and writes MTHRPT into SYSLMOD library. Later job: //RUN EXEC PGM=MTHRPT with file DDs only.
PARM lines at the top of SYSIN control compiler mode. Common values (exact set in Language Reference):
Multiple PARM options may combine per documentation; site procs often hide complexity in standard members.
When compile and execute are separate steps but you want one listing dataset:
12//SYSPRINT DD DSN=DEV.EZT.LISTING(MTHJOB1),DISP=(MOD,KEEP), // SPACE=(TRK,(1)),UNIT=SYSDA
MOD positions to end of existing member content so runtime messages follow compile listing.
Mixed database jobs add STEPLIB entries for IMS RESLIB, DB2 SDSNLOAD, application load libraries, and sometimes Pansql libraries for SQL FILE. Broadcom examples show EZIMSDB style steps with DFSRRC00 for IMS and Easytrieve source in SYSIN. Follow exact library order from Broadcom when DB2 and IMS coexist—wrong order causes S806 module not found.
| Symptom | Common cause |
|---|---|
| S806 EZTPA00 | STEPLIB missing CBAALOAD or wrong DD order |
| Options table error | Missing EZOPTBL and no EZTINI |
| File not found | DD name does not match FILE statement |
| RC=12 compile | Source syntax error—see SYSPRINT line numbers |
| S013 | Dataset disposition or space problem on EZTVFM or output DD |
JCL is the instruction note you tape to the box sent to the factory robot. It says which robot program to run (EZTPA00), which toolbox drawer to open (STEPLIB), where the recipe is (SYSIN), and which paper tray to use for the answer (SYSPRINT). If the note is wrong, the robot stops and writes why on the paper.
1. Broadcom recommends new JCL use PGM=
2. PARM COMPILE in SYSIN requests:
3. SYSLIN DD is required when:
4. Link-edit step typically uses PGM=
5. DISP=MOD on SYSPRINT allows: