z/OS JES2 Installation Exits
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Hardcopy phase

z/OS JES2 Installation Exits
SA32-0995-00

The hardcopy phase of JES2 processing takes place after output processing. The job's $JQE is placed on the hardcopy queue where it waits until all output is processed.

To be processed, HELD data sets must be either released, canceled, or transmitted (SPOOL Offload or NJE). All data sets are grouped into $JOEs. However, held data sets are not eligible for hardcopy processing even though they are represented by $JOEs. Since $JOEs are always resident in memory, the performance of held data sets is improved.

A common misconception with JES2 users is that output is assigned to a printer or output device. Output is only assigned to an output class and has other output characteristics. Output devices, printers, punches, external writers, and so forth, select job output from the output queues ($JOT or Job Output Table) by class and other output characteristics. Output has no affinity to an output device, for example, a printer. Output must be selected by the device based on the output data set characteristics matching the device work selection (WS=) criteria. Route code is the most common characteristic used to match job output with an output device.

This section discusses two types of hardcopy processing, JES2 controlled devices and Print Services Facility™ (PSF) controlled devices. The JES2 Print/Punch Processor module contains the necessary functional routines for controlling and writing to JES2 output devices, both local and remote.

Only line mode printing is supported for JES2 devices. Page mode output data must be processed by PSF. Printing to coax connected printers (printers attached through 3174 and so on.), such as 3270 type printers (3276, ....), is not controlled by JES2. Applications, such as JES/328X, are required to support these types of printers.

The following describes the Hardcopy Phase processing.

Table 1. Hardcopy Phase Processing
Step Processing Exit Used
1 HASPPRPU initialization consists of assigning an available output device and initializing control blocks and buffers as a result of a Start command (e.g., $S PRT(5)).  
2 When an output device (either remote or local) has been started a call is made to scan the output queues $JOT using the $#GET macro. This is the work selection service which scans the $JOT to search for output as specified in the work selection parameter list.

When an output group ($JOE) has been selected the job's $JCT is read from spool and Exit 7 is taken.

7
3 If the image subtask has not already been attached, it is done now. A call is made for Exit 1 to allow installations to provide their own separator routine. After Exit 1 (and based on Exit 1 if it exists) the standard JES2 supplied separator page may be produced.

The jobs $IOTs are read from spool and the $PDDBs (contained within the $IOTs) are obtained. Setup is called to check if device and data set characteristics match. Operator intervention may occur here.

1
4 A call is made ($SEAS) to verify that the data set userid (owner) is allowed to print on this device. Exits 36 and 37 are taken. 36

37

5 Exit 15 (R0=0) is called for data set select. This exit point could be used to control copy count, print translate table, or the CCW translate tables. 15
6 Exit 15 (R0=4) is again called to allow user produced data set separators. The $#CHK macro is used to produce a checkpoint at this time. A checkpoint produces a checkpoint $JOE that allows for recovery in case of a system or device failure. 15
7 The main print/punch loop is where SPOOL buffers are read, channel programs are constructed for the output device, and $EXCPs are issued to print or punch lines of output. This process continues until the entire data set is read and written to the output device. The data set is repeated if copy count is greater than one and a return to step 3 is made if there are additional data sets in the output group to be processed. There are no exits available during this process.
8 Exit 1 is called (R0=8) to allow for installation separator routines to replace the JES2 routine. The $JOE is placed on the free queue. When there are no more output data sets to be processed for the job, the $JQE is placed on the Purge queue. Exit 51 is invoked when the job moves to the purge queue. 1

51

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014