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 |