z/OS MVS Using the Subsystem Interface
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


External Writer Considerations

z/OS MVS Using the Subsystem Interface
SA38-0679-00

A standard external writer is designed to request work and perform disposition processing of work to each JES in the following ways:

  • It is initiated from the user's address space

    Therefore, it is a completely separate MVS™ job. This separation allows for processing overlap and address space integrity. In JES3, because the SSI is involved for scheduling communication, the external writers may exist on local processors as well as the global processor.

  • It is functionally independent of JES

    There is neither a print processor running in the JES2 address space, nor a writer DSP running in the JES3 global address space.

  • It is not automatically started by JES

    MVS does not supply an automatic facility to create this address space. If the external writer is running as a started task, you can use an operator START command to create this address space or you can submit a batch job. Your application (external writer) makes this decision. Your external writer should also have a mechanism to end itself.

  • It may drive a non-JES supported device

    This is the primary purpose of the external writer. If the SYSOUT data set deals with plotting, for instance, a special code in the data may indicate to use the red pen instead of the blue pen. Your external writer can recognize this code as a control sequence, and perform the appropriate actions according to the output device.

  • It allows the installation to control the selection of work

    Standard external writers select work through a SYSOUT class dedicated to external writers or a writer name. JES2 and JES3 handle external writer processing differently.

    JES2: The work to be processed is located on the output queue, and has an OUTDISP of WRITE or KEEP. However, conversational data sets, which include data sets located on the output queue with an OUTDISP of HOLD or LEAVE, are not processed in JES2 by the standard external writer. These data sets are destined to be processed by TSO/E users through the OUTPUT command.

    JES3: The work to be processed is located on either the WRITER queue, or the HOLD queue. However, IBM® recommends that you process only data sets on the HOLD queue (either by specific SYSOUT class specification as defined on the initialization statement, or by writer name).

    Note: Work destined for TSO/E users (through HOLD=TSO on the specific SYSOUT class initialization statement) is not processed because those data sets are destined to be processed by TSO/E users through the OUTPUT command.
  • It does not handle simultaneous multi-tasking within an address space

    The external writer facility in JES does not support concurrent subtasking of work. Unpredictable results will occur if attempted. Once an external writer begins the IEFSSREQ process the first time, calls through the IEFSSREQ are not allowed from any other subtask in the same address space until the first subtask has finished issuing its final call through (SSSOCTRL) IEFSSREQ.

  • It interacts with JES by requesting work

    The external writer makes a request of JES for work by using the selection criteria, and then uses dynamic allocation to allocate a returned SYSOUT data set for processing.

  • It handles retrieval requests

    Both JES2 and JES3 support retrieval requests. That is, the external writer issues the IEFSSREQ macro asking JES to supply the name of a selectable SYSOUT data set. The external writer processes that data set through dynamic allocation. See Processing Flow for Single Data Set Requests for more information on the processing flow.

    Updates to selected attributes for a particular data set (such as destination and class change) can be made through the unallocation facility as described within this documentation.

  • It handles update requests

    An update request is allowable only for JES3.

    JES3 allows update requests through the IEFSSREQ macro for one or more data sets whose selection criteria matches the criteria supplied by the external writer directly through the IEFSSREQ macro.

    However, individual data sets obtained through the IEFSSREQ retrieval/allocation process should have their attributes changed during the dynamic unallocation as described in the retrieval information above.

    Update requests may be performed on more than one data set at a time when the external writer:
    • Issues the IEFSSREQ macro
    • Does not specify a specific data set name within the SSSO control block.

    This is a powerful facility. However, you should be careful when using it, as the scope of such a modification may be large when more than one data set is involved.

  • It uses MVS services to communicate to JES

    SSI function code 1 schedules work by allowing the external writer to indicate which types of data sets it wishes to process and then asking JES to return the name of a SYSOUT data set to the external writer. Dynamic allocation of this spooled data set is performed through dynamic allocation (DYNALLOC). The records of the spooled data set may be obtained through sequential access methods (SAM GETs). A dynamic unallocation is used to deallocate the SYSOUT data set (upon EODAD), which optionally changes some of its attributes.

  • Spool access is provided by sequential access methods

    SAM is used to obtain the records of the SYSOUT data set from the spool. This implies familiar coding techniques, such as OPENs, GETs, and CLOSEs.

  • It handles all data record processing

    Once a record is supplied to the external writer on a GET, the external writer has control of the record. For example, it can print the record or archive the record, depending on the purpose of the external writer.

  • It may wait for JES to post it for new work if idle

    When JES sends a no-work-available notice to the external writer, it may sit idle until it receives a POST from JES, telling it that work is available. It may then ask JES again for the newly available work.

    This process uses WAIT and POST logic with an ECB returned to the external writer.

    JES2 does not POST the external writer if invoked from a batch job; it must be a started task for such posting to occur.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014