Understanding SPOOL and SDSF in z/OS
This topic simplifies key concepts around job output processing, SPOOL handling, and SDSF output browsing in the mainframe environment.
Here are a few recommended learnings
What is SPOOL in Mainframe?
SPOOL (Simultaneous Peripheral Operations Online) is a temporary holding area for job output. It buffers output data before it is printed, displayed, or stored elsewhere.
Key Points
- Output from SYSOUT, SYSPRINT, and other DD statements is first written to the spool.
- JES (Job Entry Subsystem) manages this spool.
- Spooling helps multiple jobs run without blocking resources like printers or disks.
SPOOL Flow: What Happens After Job Execution?
[Job Executes] → [Output written to SPOOL by JES] → [Viewed via SDSF] → [Printed / Deleted / Archived]
- JES decides when and where to release the output.
- Spool entries remain in SDSF until printed, deleted, or transferred.
- You can view and manage this output via SDSF panels.
SYSOUT vs SYSPRINT vs SDSF Outputs
Output Type | Description | Where to View in SDSF |
---|---|---|
SYSOUT | Messages and reports from utilities or programs. | OUTPUT, JESMSGLG, JESYSMSG |
SYSPRINT | Print output from utilities like IEBGENER, SORT. | OUTPUT, sometimes merged with SYSOUT |
JESMSGLG | JES system messages (e.g., job start/end times). | JESMSGLG panel |
JESJCL | The actual JCL submitted with the job. | JESJCL panel |
JESYSMSG | Messages from program execution. | JESYSMSG panel |
Common Misunderstandings
- SPOOL is not the same as OUTPUT: SPOOL is a storage buffer; OUTPUT is a result held in spool.
- SYSOUT ≠ SYSPRINT: Though both deal with printed content, different utilities prefer different DD names.
- JESMSGLG is not the full job log: It shows JES-specific messages(such as job initiation, job class, and device allocation); complete logs include JESYSMSG and program output.
- Deleting output in SDSF doesn’t delete datasets: Only the job’s spool content is cleared.
Interview Tip
Q: What happens to the output of a job after execution in z/OS?
A: Output is written to the SPOOL by JES2 or JES3, then viewed in SDSF (panels like OUTPUT, JESJCL, JESYSMSG). From there, it is either printed, archived, or deleted. Q: How does SYSOUT differ from SYSPRINT?
A: SYSOUT is a generic output class used by many programs, while SYSPRINT is a more specific print DD statement used by system utilities.
Quick Tips
-
You can hold, release, or purge jobs in SDSF to control output handling.
-
JES assigns job IDs that help you track and manage job output.
-
SYSOUT class (e.g., SYSOUT=A) defines how the output will be handled—where it goes (printer, archive) and if it is held or printed immediately
-
Example
SDSF → ST (Status) → ? → S (Select Job) → OUTPUT
This shows how to access the OUTPUT panel for viewing the job’s output in SDSF.
Initiators
Initiators are processes responsible for starting the execution of jobs on the mainframe. They are part of the Job Entry Subsystem (JES) and handle jobs waiting in the job queue.
Use the INIT panel in SDSF to view all available initiators in the system.
IBM Docs - SDSF Initiator Panel
Simple Analogy
Think of a school where every student has a different homework assignment.
- The initiator is like the teacher who assigns each student their task. Once the task is assigned, the student starts working.
- The initiator sets things in motion, ensuring every job (or student) begins at the right time.
How Initiators Work
- They select jobs based on:
- Job priority
- System resource availability
- Scheduling rules
- Multiple initiators can run in parallel, allowing concurrent job processing.
- All the systems have multiple intitiators. No z/OS will ever have just one inititors.
Types of Initiators
- Started Tasks (STCs): Handle long-running or background processes. Often used for system services (e.g., monitoring tools, daemons).
- Job Initiators: Handle batch jobs submitted via JCL. It Can be configured to run jobs of specific classes or types.