JOE - Job Output Element
A Job Output Element (JOE) is an internal control block used by the Job Entry Subsystem (JES) in z/OS to manage and track the output data sets generated by a batch job. It represents a single `SYSOUT` data set or a group of `SYSOUT` data sets with common characteristics, such as destination or processing options. JOEs contain all the necessary information for JES to process, print, display, or transmit the associated job output.
Key Characteristics
-
- Output Representation: Each JOE corresponds to a specific
SYSOUTdata set or a collection ofSYSOUTdata sets defined by aDDstatement in JCL, or implicitly generated by the system (e.g.,SYSPRINT,SYSABEND). - JES Management: JOEs are created and managed by JES2 or JES3, residing in the JES
SPOOLspace. They contain attributes like theSYSOUTclass, destination, form name, copies, and processing options. - Control Block Structure: A JOE is a data structure containing pointers to the actual output data stored on the
SPOOL, along with metadata required for its disposition and processing. - Lifecycle: JOEs are created when a job starts generating
SYSOUT, updated as output is written, and then processed (e.g., printed, held, deleted) by JES after the job completes based on its attributes. - JCL Derivation: The attributes of a JOE are primarily derived from
SYSOUTparameters specified on JCLDDstatements (e.g.,SYSOUT=(class,writer,form)) or JCLOUTPUTstatements.
- Output Representation: Each JOE corresponds to a specific
Use Cases
-
- Standard Batch Job Output: Managing the
SYSOUTfor program listings, diagnostic messages, and reports generated by COBOL, PL/I, or Assembler batch applications. - Printed Reports: Directing job output to specific printers or print queues based on
SYSOUTclass and destination, allowing for physical hardcopy generation. - Electronic Output Distribution: Routing
SYSOUTtoHOLDqueues for viewing via SDSF, or to specialized output management systems for archiving, indexing, and electronic distribution. - System Logs and Dumps: Handling system-generated output like
SYSLOGentries,SYSABENDdumps, orSYSOUTfrom started tasks, ensuring proper capture and disposition.
- Standard Batch Job Output: Managing the
Related Concepts
JOEs are fundamental to the operation of the Job Entry Subsystem (JES), specifically JES2 and JES3, which manage job input and output. They are directly linked to JCL DD statements that specify SYSOUT parameters, and optionally to JCL OUTPUT statements which provide more granular control over SYSOUT processing. The actual data referenced by a JOE resides in the JES SPOOL, a dedicated direct access storage space. A JOE is a component of the larger Job Control Block (JCB) structure that JES uses to track an entire job.
- Define
SYSOUTClasses Appropriately: Use distinctSYSOUTclasses (SYSOUT=A,SYSOUT=X, etc.) to categorize output based on destination, retention, and processing requirements, facilitating efficient JES management. - Minimize
SPOOLUsage: Design applications to produce only necessary output. Large, unmanagedSYSOUTcan consume significantSPOOLspace, impacting system performance and potentially causingSPOOLfull conditions.