With the TAC-PRIORITIES control statement you specify the method to be used to control job processing in this UTM application. This means that you specify the criteria used to start jobs for transaction codes that are assigned a TAC class.
You can also specify these criteria using the TAC-PRIORITIES statement or the TACCLASS statement.
A TAC class consists of a subset of the generated transaction codes of the application. The dividing of transaction codes into TAC classes is done in the TAC statement with the TACCLASS= operand.
If the TACCLASS operand is not specified, then dialog TACs are not assigned a TAC class and asynchronous TACs are not assigned asynchronous TAC class 16.
You can specify the following in particular with TAC-PRIORITIES:
That the distribution of processes amongst the TAC classes is to be done according to priorities. You must not issue any TACCLASS statements in this case.
The algorithm to be used to distribute the available processes of the application amongst the dialog and asynchronous TAC classes.
Operands: DIAL-PRIO and ASYN-PRIOThe maximum number of processes of the application that are allowed to process jobs to dialog TAC classes.
Operand: FREE-DIAL-TASKS
Specifying priorities for the TAC classes
In priority control you can select between absolute, relative or equal priorities for dialog jobs and for asynchronous jobs. The control of job processing of dialog and asynchronous jobs is done separately from each other.
Jobs for dialog TACs that are not assigned any TAC class are processed regardless of the priorities set for dialog jobs. These jobs are always started immediately after they are received from the transport system.
The number of the TAC class plays a role for absolute and relative priorities. Jobs to TAC classes with a low number have a higher priority that jobs to TAC classes with a higher number. This means that for dialog TAC classes, TAC class 1 has the highest priority and TAC class 8 the lowest priority. For asynchronous TAC classes, TAC class 9 has the highest priority and TAC class 16 the lowest priority.
When absolute priorities are used, processes of the application that are free and available for processing the TAC classes are always assigned the TAC class with the highest priority, i.e. 1 or 9, as long as there are jobs waiting for this TAC class.
Only after there are no more jobs waiting in the TAC class with the highest priority are jobs waiting for the TAC class with the next lowest priority processed.
If you want to prevent jobs waiting for a TAC class with a lower priority from not being processed for a long time, then you should use relative priorities.
When relative priorities are used, jobs from TAC classes with higher priority are processed more often than jobs from TAC classes with lower priority.
When matching priorities are used, then the same number of jobs from each TAC class are processed as long as there are waiting jobs available.
Limiting the number of processes that process jobs to TAC classes
You can limit the number of processes that process jobs of a TAC class when using priority control for the TAC classes to keep some processes free for administrative tasks or internal jobs.
You limit the number of processes for the dialog TAC classes relative to the total number of processes using the FREE-DIAL-TASKS operand.
With MAX ASYNTASKS=(atask_number,...) you limit the number of processes for asynchronous TAC classes.
This limit is the same, however, for all asynchronous and for all dialog TAC classes.
Transaction codes that start program unit runs with blocking calls
When the TAC-PRIORITIES statement is used, transaction codes with blocking calls (e.g. the KDCS call PGWT) can be assigned any TAC class as long as the TASKS-IN-PGWT operand of the MAX statement is generated with a value > 0. You must generate TAC PGWT=YES for these transaction codes.
You will find a detailed description of the TAC classes and priority control in chapter “Job control - priorities and process limitations”. |
| [ DIAL-PRIO={ ABS | REL | EQ } ] |
DIAL-PRIO = | Specifies according to which priority free processes will be distributed amongst the dialog TAC classes with waiting jobs. Waiting dialog jobs can only arise when more jobs are obtained from the job bourse at a specific time than there are processes available for the dialog TAC classes. The jobs are then written to the job queues of the transaction codes from which they will then be read out and processed according to their priority by the processes that become free. |
ABS | Absolute priority: |
REL | Relative priority: |
EQ | Equal priority: Default: EQ |
ASYN-PRIO= | Specifies according to which priority processes will be distributed amongst the asynchronous TAC classes with outstanding asynchronous jobs or interrupted asynchronous jobs. If the maximum number of simultaneously open asynchronous services is reached (set in MAX ASYNTASKS=(...,service_number)), then no more asynchronous jobs are started. An interrupted open asynchronous service is selected according to its priority and resumed. |
ABS | Absolute priority: |
REL | Relative priority: |
EQ | Equal priority: Default: EQ |
FREE-DIAL-TASKS=number | |
With FREE-DIAL-TASKS you limit the total number of processes that may process jobs to dialog TAC classes relative to the number of all processes of the application. In number you specify the minimum number of processes of the application that are to be reserved for processing jobs that do not belong to any dialog TAC class. The maximum number of processes that may simultaneously process asynchronous jobs is not limited by FREE-DIAL-TASKS= . The MAX operand ASYNTASKS=atask_number is provided for this purpose. Minimum value: 0 (no limit) Example |