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


Execution phase

z/OS JES2 Installation Exits
SA32-0995-00

This section attempts to merge those functions provided by a section of JES2 code in the JES2 Job Select/Termination module known as "Job Selection" and the pieces of MVS™ code known in the broad sense as "The Initiator". The MVS Initiator consists of many modules which perform job selection, allocation, and initiator attach services (and others). JES2 Job Select also includes end-of-job functions.

For the purpose of this discussion, job selection is defined as the period, starting with the initiator's Subsystem Interface (SSI) call for job selection by class and ends with the JES2 message, $HASP373 JOB STARTED. The following scenario describes the processing that occurs during the Execution Phase.

Table 1. Execution Phase Exits
Step Processing Exit Used
1 The MVS Job Selection module issues a SSI call specifying function code 5 which identifies the call to JES2 as a request to select a job by class.

SSI calls with a function code of 5 are processed by the JES2 Job Select/Termination module. JBSELECT POSTs JES2 execution processing and WAITs for a job to be selected.

If a JES2 initiator is selecting work, JES2 calls Exit 14 to allow the your installation to provide its own queue selection routine or to tailor the selection request. Exit 14 is not a job-related exit, that is, JES2 has not selected a job at this time. Exit 14 can select a job or it can tell JES2 to select a job. If a WLM initiator is selecting work, JES2 does not call Exit 14.

After JES2 selects a job from the execution queue, it calls Exit 49 which can accept or reject the job. If Exit 49 rejects the job, JES2 searches for another job. JES2 does not call Exit 49 if Exit 14 selects a job.

If JES2 execution processing finds a job that matches the Initiator's defined job classes, it POSTs the waiting initiator and provides the job's $JCT spool address in the $SJB. If a job has been found, control is given to the JBFOUND routine.

14
2 The JBFOUND routine reads the job's JES2 $JCT using the spool address passed in the $SJB. Exit 8 is the first exit taken out of the user's (or job's) address space after a job is selected. This first entry to Exit 8 is taken after the job's $JCT has been read. The job name, jobID, and all the other information in the $JCT are available.

If later SMF exits for this job need addressability to the JES2 $JCT, store the JES2 $JCT address (as contained in Exit 8 parameter list) into the JCTUCOM field that later becomes the JMRUCOM.

8
3 Exit 8 is again taken to read the primary allocation $IOT. There may also be additional calls to Exit 8 to read secondary allocation $IOTs or $PDDB-only $IOTs based on the job's JCL. Exit 8 is called for all spool control block reads and writes.

JES2 allows installations to create extensions to the $JCT where job-related accounting data can be stored and transmitted through the network. Using the $JCTX macro extension service, you can add, expand, locate, and delete these extensions. For more information about using these extensions, see z/OS JES2 Macros.

8
4 The JBFOUND routine calls the MVS SWA Create Control module to obtains storage for and initialize the Interpreter Entry List. The Interpreter Entry List contains information from JES2, such as user ID and security information and is used for linking to the MVS Interpreter.

Both JES2 and MVS have a data area named JCT. The two JCTs are not similar and one is not a copy, or partial copy, of the other. The Interpreter Entry List contains a pointer to the in-storage copy of the beginning of the $JCT JMR area which is used to create the CEPA/JMR.

The MVS Interpreter Initialization routine calls the MVS Interpreter Router routine and after the internal text has been interpreted, the MVS Enqueue routine issues the call to SMF exit IEFUJV (entry code of 32). This is the first SMF exit for a job during the execution phase. The Scheduler Work Area (SWA) job and step tables have been created. The JMR pointer, called the CEPA in SMF documentation, is provided in the exit parameter list.

IEFUJV
5 After the Interpreter returns control to the MVS SWA Create Control module, a RACROUTE REQUEST=VERIFY,ENV=CREATE is then issued to create the job's security environment. The SAF Router exit is invoked if it exists and Message ICH70001I is issued by RACF® identifying the user. If an error occurred during Job Select processing, for example a JCL error, then the job's security environment is not created. SAF Router exit
6 Exit 32 is called. The $JCT, all $IOTs the JMR, and the ACEE have been created and are available.

The JBSELECT routine then issues the $HASP373 JOB STARTED message.

32
7 Before job select processing is complete and control returns to the Initiator, JES2 checkpoints (writes to spool) the $JCT. Exit 8 is called. 8
8 Job initiation calls SMF exit, IEFUJI. MVS job initiation is a series of calls to step initiation based on the number of steps in a job. IEFUJI
9 MVS step initiation consists of a call to SMF exit, IEFUSI, step allocation for those data sets and devices defined in the job's JCL, and a call to the MVS Initiator Attach routine. IEFUSI
10 Allocation of JCL defined SYSIN, SYSOUT, and internal readers initiates a call to Exit 31. 31
11 The MVS Initiator Attach routine attaches a subtask with an entry point of the program name specified on the EXEC JCL statement for the job step. The job step could dynamically allocate JES2 SYSIN, SYSOUT, or internal readers and therefore Exit 31 can be called. 31
12 The OPEN and CLOSE of JES2 data sets and internal readers call Exits 30 and 33. 30

33

13 Dynamic Unallocation of JES2 data sets and internal readers initiate a call to Exit 34. Exit 48 can be used in preference to Exit 34. Exit 34 may be too early to affect some fields in the $PDDB because unallocation processing takes place after Exit 34. Use Exit 48 when altering fields in the $PDDB, this exit can also be used to control Spin processing. 34
14 At End-of-Task (EOT) processing an SSI call is made to JES2 and Exit 35 is called. 35
15 Control is passed (return from Attach) to the MVS Initiator Attach routine and subsequently MVS Step Delete calls Step Unallocation which unallocates those data sets and devices defined in the job's JCL on a step basis. Exit 34 is called for JCL defined SYSIN, SYSOUT, and internal readers. Exit 48 is also taken as mentioned previously. 34

48

16 The MVS Unallocation routine calls the MVS SMF Control routine which calls SMF exit IEFACTRT with entry codes 20 and 12. If additional job steps are to be processed, control is passed back to step 8. Otherwise, control is passed to Job Termination at step 17. SMF exit

IEFACTRT

17 Job Termination (actually this is Step Termination for the last step) again calls SMF exit IEFACTRT with entry codes 20 and 16. Control is then passed to MVS Step Delete where a SSI call (12) is made for Job Termination. IEFACTRT
18 End-of-job processing calls Exit 28. This exit can clean up resources obtained over the life of job execution. 28
19 Spool control blocks are checkpointed. Exit 8 is taken for writing the JCT. 8
20 The $JQE is placed on the OUTPUT queue waiting output processing, and Exit 51 is invoked. 51

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014