External Writer
An External Writer is a specialized program or started task in z/OS that processes output from the Job Entry Subsystem (JES) spool. It acts as an output processor, taking `SYSOUT` data from JES and directing it to a destination or performing custom processing beyond standard JES printing or punching.
Key Characteristics
-
- Separate Address Space: An External Writer typically runs as a started task or a batch job in its own address space, independent of the jobs that generate the
SYSOUT. - JES Interface: It communicates with JES (JES2 or JES3) using specific system interfaces to select, retrieve, and process
SYSOUTdata sets from the JES spool. - Custom Logic: Unlike standard JES printers or punch devices, an External Writer can contain custom application logic to format, filter, transform, or route output based on specific business rules.
- DD Statements: The
SYSOUTdata sets it processes are typically defined byDDstatements within the writer's own JCL or dynamically allocated. - SYSOUT Class Association: External Writers are often associated with specific
SYSOUTclasses, allowing jobs to direct their output to a particular writer by specifying that class. - Device Independence: It can direct output to a wide range of destinations, including printers, punch devices, disk datasets, network connections, or other applications, often bypassing standard device drivers.
- Separate Address Space: An External Writer typically runs as a started task or a batch job in its own address space, independent of the jobs that generate the
Use Cases
-
- Custom Report Formatting: Processing raw
SYSOUTto apply complex formatting, add headers/footers, or generate specific report layouts before printing or archiving. - Output Archiving: Capturing job output and storing it in specific datasets, databases, or document management systems for long-term retention and retrieval.
- Network Distribution: Sending job output over a network to remote printers, email systems, or other distributed applications that are not directly supported by JES.
- Third-Party Integration: Interfacing with external output management systems (e.g., content management, print management solutions) to manage and distribute z/OS output.
- Specialized Device Handling: Directing output to unique or non-standard output devices that require specific control characters or data streams not supported by standard JES print drivers.
- Custom Report Formatting: Processing raw
Related Concepts
External Writers are intrinsically linked to JES2 and JES3 as they are consumers of the JES spool. They process SYSOUT data sets, which are created by jobs and managed by JES. Jobs typically use JCL DD statements with SYSOUT= parameters to direct their output to specific SYSOUT classes, which an External Writer can then select. They often complement or extend the capabilities of SDSF (System Display and Search Facility) by providing automated processing of SYSOUT that might otherwise be manually managed or viewed through SDSF.
- Monitor Performance: Regularly monitor the External Writer's CPU, I/O, and memory usage to ensure it processes output efficiently and doesn't become a bottleneck for JES.
- Error Handling and Recovery: Implement robust error handling within the writer's logic to gracefully manage issues like unavailable destinations, corrupted data, or resource contention, and ensure proper restartability.
- SYSOUT Class Management: Assign unique
SYSOUTclasses to external writers to clearly delineate their purpose and prevent unintended output routing. - Security: Secure the External Writer's started task or job, its associated datasets, and any network connections to prevent unauthorized access or manipulation of sensitive output.
- Documentation: Thoroughly document the custom logic, configuration, and operational procedures for each External Writer, including its associated
SYSOUTclasses and destinations.