Defining Job Selection Parameters

The SELECT statement defines the job selection parameters for each job selection mode. The job selection mode is assigned to a processor by the SELECT parameter on the MAINPROC statement. After initialization, the system operator can change the association of processors with selection modes by using the *MODIFY command.

The system programmer can control the number of jobs that are candidates for allocation by setting the SELECT statement SBAR parameter. The SBAR parameter specifies a job priority that is a barrier to main device scheduling:
  • If its full allocation requirements cannot be satisfied, a job with a priority greater than the barrier can reserve available JES3-managed resources (devices, volumes, and data sets) to prevent lower priority jobs from obtaining them.
  • If a resource is reserved, only a job of the same priority or higher than the job that reserved the resource can allocate it.
  • If a volume or data set is reserved, another job with compatible references (such as a share reference to a direct-access volume) can use it.
  • If SBAR=PRTY is specified, the priority of the first job that cannot be set up is the barrier value.

For jobs in JES-managed job class groups (MODE=JES specified on the GROUP initialization statement), the CHOICE and JOBMIX parameters on the SELECT statement can be used to specify job selection criteria (based on the size of the job and its I/O rate) to control the order of job selection on a processor. JES3 uses the specified scheduling choice to select the most suitable jobs for execution. For jobs in WLM-managed job class groups (MODE=WLM specified on the GROUP initialization statement), JOBMIX and CHOICE are ignored for purposes of job selection.

Aging is the process of increasing a job's priority whenever an unsuccessful attempt is made to allocate the job's requirements. Although jobs flow through the priority queues in first-in first-out order, only the job that is first on a priority queue is eligible for aging. The system programmer controls aging by setting the following parameters on the SELECT statement:
  • MAGER: Specifies the number of times a job must be eligible for aging (because of unsuccessful job selection) before its job priority is actually increased. (For example, MAGER=10 means that a job must be passed over for job selection 10 times while it is at the top of its priority queue before it is put at the bottom of the next higher priority queue.) If this parameter is omitted or if MAGER=0 is specified, no aging is performed. (For jobs in WLM-managed job class groups, MAGER is ignored. Jobs destined for WLM-managed initiators are ordered on the queue by main service arrival time.)
  • MAGEL: Limits the priority that can be reached (because of unsuccessful job selection attempts). For example, MAGEL=10 means that a job is not aged if its priority is 10 or greater.) If this parameter is omitted, jobs are not aged past priority 14.(For jobs in WLM-managed job class groups, MAGEL is ignored. Jobs destined for WLM-managed initiators are ordered on the queue by main service arrival time.)
  • SAGER: Specifies the number of times that a job must be eligible for aging (because of unsuccessful resource allocation) before its job priority is actually increased. If this parameter is omitted or if SAGER=0 is specified, no aging is performed. (SAGER is also used for jobs in WLM-managed job class groups because these jobs are in MDS allocation where jobs are ordered by priority.)
  • SAGEL: Specifies an aging priority limit (0-15) beyond which a job cannot be aged during job setup. (SAGEL is also used for jobs in WLM-managed job class groups because these jobs are in MDS allocation where jobs are ordered by priority.)
The JES3-managed resource allocation (setup of devices, volumes, and data sets) for each job must be completed before the job is eligible for execution. The system programmer controls the execution queueing process by setting the following parameters on the SELECT initialization statement:
  • SDEPTH: Specifies the maximum number of jobs (requiring mountable devices) that can be set up at one time for each processor. SDEPTH influences MDS allocation in two ways: First, SDEPTH can be used to limit the number of jobs set up for a processor; this should be done carefully to avoid delaying job execution. If SDEPTH is omitted, a value of 255 is assumed. Second, SDEPTH causes MDS to set up more work for one processor than another. MDS biases processor selection for setup toward the processor that is most below its SDEPTH. Therefore, by making the SDEPTH values different for each processor, a setup bias initially exists toward processors with higher SDEPTHs. MDS prefers the higher SDEPTH processors for setup until all processors are at equal differences from their SDEPTH values. Biasing setup toward certain processors may be required because of device availability (if devices are not totally shared) or to keep a larger queue of jobs available for a fast executing processor.
  • INCR: Specifies a number that is added to the priority of the job when it is set up. This parameter expedites the processing of jobs when devices have been assigned to them. (For example, if a job has a priority of 5 when it is set up, and INCR=4 is specified, the job's priority is increased to 9 after the devices have been allocated and set up.) If this parameter is omitted, a job's priority is increased by one after setup.
  • INCL: Sets a limit to the priority assigned when the job is set up. If this parameter is omitted, job priorities are not increased past priority level 14 by setup.
Note: For jobs in WLM-managed job class groups, the INCR and INCL parameters will not expedite job selection when a job has been set up. Jobs in WLM-managed job class groups are ordered by main service arrival time, not by priority when waiting to be selected to run.