Previous Topic: 3.1.6.2.2 Specify Job Input ExitNext Topic: 3.1.6.2.4 Specify Clock Update Exit


3.1.6.2.3 Specify Job Selection Exit

If you enter Y (Yes) in the job selection field on the
Extended Options Menu, the SAS Statements panel for
specifying a job selection exit, shown in Figure 3-17, is
displayed.


/-------------------------------  SAS Statements  ------------------------------\
|Command ===>                                                  Scroll ===> PAGE |
|Warning:  Set SELECT=0; to skip an observation.                                |
|Inquiry Step:  BAT - Batch Initiator Simulation                                |
|                                                                               |
|Line Cmds: I Insert  D Delete  R Repeat  M Move  C Copy                        |
|                                                                               |
|Cmd  SAS Statements for:  Specifying Job Selection exit                        |
| -   ------------------------------------------------------------------------  |
| _ - %MACRO PERJSX;                                                            |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _ - %MEND PERJSX;                                                             |
|****************************** BOTTOM OF DATA  ********************************|
|                                                                               |
\---------------------------------------------------------------------------------/


 Figure 3-17.  Specify Job Selection Exit Panel

At the start of each interval, the simulation attempts to
start a job for any initiators that are idle.  The simulation
selects the highest priority job in the first class served by
the initiator with any jobs waiting.

Once this candidate job is selected, the job selection exit
is invoked.  It allows you to accept or reject the selected
job based on criteria coded in the PERJSX MACRO.  If the
PERJSX MACRO sets the SELECT variable to 1, the job is
accepted.  If it sets the SELECT variable to 0, the job is
rejected.  The default sets SELECT to 1.

If a job is rejected by setting SELECT to 0, no job is
selected from that queue in that interval of the simulation.
If your criteria for accepting or rejecting a job is based on
job priority, this will probably be of no concern, since all
other jobs in the queue are of equal or lower priority.
However, if you are testing some other condition, you must be
sure to consider the effect of attempting selection only once
for each queue served by the initiator.

Because job selection takes place before the variables of the
BATJOB File are available, only the following variables are
available to the PERJSX MACRO:

    o  J_CLS(JP) - job class
    o  J_PTY(JP) - job priority
    o  J_ARP(JP) - job arrival priority
    o  J_RDR(JP) - job reader time
    o  J_EXT(JP) - job execution time
    o  J_QUE(JP) - job queue time

The variables must be suffixed by (JP).  This is the array
subscript and it is required.

For example, assume that your installation is considering
preventing the execution of jobs above priority 13 without
the approval of the data center manager.


/-------------------------------  SAS Statements  ------------------------------\
|Command ===>                                                  Scroll ===> PAGE |
|Warning:  Set SELECT=0; to skip an observation.                                |
|Inquiry Step:  BAT - Batch Initiator Simulation                                |
|                                                                               |
|Line Cmds: I Insert  D Delete  R Repeat  M Move  C Copy                        |
|                                                                               |
|Cmd  SAS Statements for:  Specifying Job Selection exit                        |
| -   ------------------------------------------------------------------------  |
| _ - %MACRO PERJSX;                                                            |
| _ -   IF J_PTY(JP)>=13 THEN SELECT=0;                                         |
| _ -   ELSE SELECT=1;                                                          |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _   ________________________________________________________________________  |
| _ - %MEND PERJSX;                                                             |
|****************************** BOTTOM OF DATA  ********************************|
|                                                                               |
\---------------------------------------------------------------------------------/


  Figure 3-18.  SAS Statement for Specifying a Job Selection Exit

The PERJSX MACRO shown in Figure 3-18 accepts the job
selected if its priority is less than 13.

Using this MACRO in conjunction with the clock update exit
documented in Section 3.1.6.2.4 provides greater flexibility
in simulations (see Figure 3-21).

The job selection exit is located at a point in the code
where the system has selected a job for execution.

NOTE:  You should not code subsetting IFs in this job
       selection exit MACRO to perform data selection.  You
       should code them in the global data selection exit
       described in Section 3.1.6.2.1.