This statement is used to write a new job class definition to the SJMSFILE or JMS database and define its characteristics.
Format
DEFINE-JOB-CLASS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Operands
NAME = <name 1..8>
Name of the new job class definition to be written to the SJMSFILE. The name may consist of between 1 and 8 alphanumeric characters. The first character must be a letter from the set A through Z or the character @ or #.
The statement is rejected if a job class with the same name already exists.
STREAM = *DEFAULT-STREAM
The default stream defined in the DEFINE-JOB-STREAM statement.
The default stream in the SHMSFILE must not be identical with that of the system.
STREAM = <name 1..8>
Name of the stream under which the job scheduler to which the job class is assigned runs. The name must not be $SYSJS. The name of the stream must already have been defined using the DEFINE-JOB-STREAM statement.
CLASS-LIMIT = <integer 0..4095>
Maximum number of jobs that shall be started in the class.
CLASS-WEIGHT = <integer 1..9>
Determines the start priority of the class relative to other classes whose jobs are waiting to be started.
1 is the lowest and 9 the highest weight.
CLASS-OPTIMUM =
Specifies the optimum number of jobs that should run in the job class in order to achieve a balanced job distribution within the system.
CLASS-OPTIMUM influences the sequence in which the class scheduler selects the job classes in order to start the jobs.
CLASS-OPTIMUM = 0 / <integer 0..4095>
The number of jobs. Values from 0 up to the value specified in the CLASS-LIMIT operand can be specified: 0 <= CLASS-OPTIMUM <= CLASS-LIMIT <= 4095.
JOB-PRIORITY =
Specifies the job scheduling priority for batch jobs; this determines the priority of a job relative to other jobs of the same class.
JOB-PRIORITY = *NO
This specification is required by the statement format; it has no significance, but must be given if JOB-TYPE=DIALOG was specified.
JOB-PRIORITY = *PARAMETERS(...)
DEFAULT = <integer 1..9>
Default priority for the job class.
1 is the highest and 9 the lowest priority.
If the user has not specified a priority for a job, DEFAULT=<integer...> is used.
If the user has specified a priority no higher than MAXIMUM=<integer...>, the priority specified by the user in /ENTER-JOB
applies.
The DEFAULT operand in the DEFINE-JOB-CLASS statement must not specify a priority higher than that given in MAXIMUM, otherwise the statement is rejected with a syntax error.
MAXIMUM = NO / <integer 1..9>
Maximum permitted priority for the job class.
If MAXIMUM=NO is specified, the job is given the priority specified for DEFAULT, irrespective of the priority given by the user in /ENTER-JOB
.
JOB-TYPE =
Defines the type of job class.
JOB-TYPE = *BATCH
Specifies that the job class is to be an interactive job class. This means that a job belonging to this class must not be initiated by /SET-LOGON-PARAMETERS
in interactive mode.
JOB-TYPE = *DIALOG
Specifies that the job class is to be an interactive job class. A job belonging to this class must not be initiated by /ENTER-JOB
.
TP-ALLOWED = *NO / *YES(...)
Specifies whether the task attribute TP is permitted in the job class.
TP-ALLOWED = *NO
Means that the task attribute TP is not allowed in the job class. Jobs in this class must not be started under this task attribute; switching to this task attribute by means of the TINF macro is forbidden, unless it is permitted by user catalog entry.
TP-ALLOWED = *YES(...)
CATEGORY = TP / <name 1..7>
A category name may be assigned to the task attribute TP.
It may be the default category name (TP) or a name freely defined by the user. The standard category name SYS is not allowed.
Up to twelve further category names may be defined in addition to the four predefined names.
If the database is updated, the default category name TP is used if the specified category is unknown to the system.
(See “Note for all 3 task attributes:”.)
DIALOG-ALLOWED = *NO / *YES(...)
Specifies whether the task attribute DIALOG is permitted in the job class.
DIALOG-ALLOWED = *NO
Means that the task attribute DIALOG is not permitted in the job class. Jobs in this class must not be started under this task attribute; switching to this task attribute by means of the TINF macro is forbidden, unless it is permitted by user catalog entry.
DIALOG-ALLOWED = *YES(...)
CATEGORY = DIALOG / <name 1..7>
A category name may be assigned to the task attribute DIALOG.
It may be the default category name (DIALOG) or a name freely defined by the user. The standard category name SYS is not allowed.
Up to twelve further category names may be defined in addition to the four predefined names.
If the database is updated, the default category name DIALOG is used if the specified category is unknown to the system.
(See “Note for all 3 task attributes:”.)
BATCH-ALLOWED = *NO / *YES(...)
Specifies whether the task attribute BATCH is permitted in the job class.
BATCH-ALLOWED = *NO
Means that the task attribute BATCH is not permitted in the job class. Jobs in this class must not be started under this task attribute; switching to this task attribute by means of the TINF macro is forbidden, unless it is permitted by user catalog entry.
BATCH-ALLOWED = *YES(...)
CATEGORY = BATCH / <name 1..7>
A category name may be assigned to the task attribute BATCH.
It may be the default category name (BATCH) or a name freely defined by the user. The standard category name SYS is not allowed.
Up to twelve further category names may be defined in addition to the four predefined names.
If the database is updated, the default category name BATCH is used if the specified category is unknown to the system.
The dependencies on the value of the START-ATTR operand must be taken into consideration.
A category name may not be assigned to two different task attributes, e.g. the following specification is ambiguous and therefore not allowed:
BATCH-ALLOWED=*YES(CATEGORY=HUGO) and DIALOG-ALLOWED=*YES(CATEGORY=HUGO)
START-ATTRIBUTE = *BATCH / *DIALOG / *TP
Defines the task attribute for the job. At the same time the corresponding task attribute must be specified in the TP-, DIALOG- or BATCH-ALLOWED operand, e.g. START-ATTRIBUTE=TP and TP-ALLOWED=*YES(...).
RUN-PRIORITY =
Specifies the run priority with which a job is started.
RUN-PRIORITY = *PARAMETERS(...)
DEFAULT = <integer 30..255>
Default value for the job class.
DEFAULT must not give a priority higher than MAXIMUM.
MAXIMUM = *NO / <integer 30..255>
Specifies the maximum permitted priority for the job class.
Means that a job is given the priority specified by the user, providing it does not exceed the maximum permitted priority. If, however, the user catalog entry indicates that a higher priority is permitted than that specified in the MAXIMUM operand, the job may exceed the value of MAXIMUM.
MAXIMUM=*NO means that no maximum task priority is defined. A job is given the priority assigned by the user providing it does not exceed the value in the user catalog entry.
NO-CPU-LIMIT = *NO / *YES
Specifies whether jobs in this class may run without a time limit (NTL).
NO means that jobs in this class must not run without a time limit (see /SET-LOGON-PARAMETERS
). If NO-CPU-LIMIT=*YES is specified in the user catalog entry for a user, that user can run jobs without a time limit even when NO-CPU-LIMIT=*NO applies to the job class.
CPU-LIMIT =
CPU time that a job in this class may utilize.
CPU-LIMIT = *PARAMETERS(...)
DEFAULT = *NO-LIMIT
The default setting in this job class is that the jobs run without a time limit. The value is only permitted when NO-CPU-LIMIT=*YES and MAXIMUM=32767.
DEFAULT = <integer 1..32767>
Default value for the job class.
MAXIMUM = <integer 1..32767>
This is the maximum CPU time that can be explicitly requested for a job of this job class.This value cannot be exceeded if a numerical value is specified for CPU-LIMIT when a job is created with ENTER-JOB, ENTER-PROCEDURE or SET-LOGON-
PARAMETERS. The maximum CPU time that can be used for an account number depends on the CPU entry in the user catalog.
The value specified by DEFAULT must not exceed the value specified for MAXIMUM. In the case of DEFAULT=*NO-LIMIT the highest possible value (32767) must be assigned to MAXIMUM and NO-CPU-LIMIT=*YES must be specified. If one of these conditions is violated, the statement is rejected due to a syntax error.
MAXIMUM = *NO
The job may utilize the CPU time specified in DEFAULT, irrespective of the CPU time the user requested.
SYSLST-LIMIT =
Defines the number of lines for a job when output takes place via SYSLST.
SYSLST-LIMIT = *PARAMETERS(...)
DEFAULT = *NO-LIMIT / <integer 0..999999>
Default number of lines for the job class. *NO-LIMIT means that the number of lines is not limited. The value specified for DEFAULT must not exceed that specified for MAXIMUM, otherwise the DEFINE-JOB-CLASS statement is rejected with a syntax error.
MAXIMUM =
Maximum number of lines permitted for the job class.
MAXIMUM = *NO
The job is assigned the permitted number of lines specified in DEFAULT, irrespective of the number actually requested by the user.
MAXIMUM = *NO-LIMIT
There is no limit on the number of lines for a job in this class. The number specified by the user always applies.
MAXIMUM = <integer 0..999999>
Means that the job is assigned the number of lines specified by the user, providing it does not exceed the value specified for MAXIMUM.
START =
Assigns appropriate start options to job start requests.
START = *NO
This is a formal entry with no significance, except that it is required if the operand JOB-TYPE=*DIALOG is specified.
START = *PARAMETERS(...)
DEFAULT =
This is the default value assumed if a user has not requested a specific start type in /ENTER-JOB
. The value defined for DEFAULT need not be listed under ALLOWED (see below).
DEFAULT = *SOON
The job should be started as soon as possible. If several jobs have requested SOON, the job priority determines which starts first.
DEFAULT = *WITHIN(...)
The job should be started within the time specified in hours and minutes.
HOURS = 0 / <integer 0..23>
Is a value in the range 0 to 23 hours.
MINUTES = 00 / <integer 0..59>
Is a value in the range 0 to 59 minutes.
ALLOWED =
Defines those values which the user may specify for the job class concerned in the START operand of /ENTER-JOB
.
ALLOWED = *IMMEDIATELY
A job in this job class may be started immediately, even if it delays other jobs having higher priority that were supposed to be started at this time.
ALLOWED = *SOON
Same meaning as DEFAULT=*SOON, see above.
ALLOWED = *AT
The job may be started on the specified date and precisely at the specified time (hour, minutes) if possible.
ALLOWED = *LATEST
A job may be started at the latest by the specified date and time.
ALLOWED = *EARLIEST
A job may be started at the earliest at the specified date and time.
ALLOWED = *WITHIN
A job may be started within the specified time.
ALLOWED = *AT-STREAM-STARTUP
A job may be started at the time the job scheduler is started.
A further exception is ALLOWED=*IMMEDIATELY: If the user has specified START=*IMMEDIATELY in /SET-LOGON-PARAMETERS
, /ENTER-JOB
or /MODIFY-JOB
, and START-IMMEDIATE=*YES is specified in the user catalog entry, the job will be started immediately, even if ALLOWED=*IMMEDIATELY is not specified in the user’s job class.
REPEAT-JOB =
Controls the frequency of repeat jobs at specific time intervals. This is ignored if JOB-TYPE =*DIALOG is specified.
REPEAT-JOB = *NO
This is a formal entry with no significance, except that it is required if the operand JOB-TYPE=*DIALOG is specified.
REPEAT-JOB = *PARAMETERS(...)
DEFAULT =
This is the default value assumed if the user has made no entry for the frequency of job repetition in /ENTER-JOB
or /SET-LOGON-PARAMETERS
, i.e. has omitted the REPEAT-JOB or REPEAT operand, or has specified REPEAT-JOB=STD or REPEAT=STD.
DEFAULT = *NO
Means that the job is not repeated.
DEFAULT = *AT-STREAM-STARTUP
Jobs belonging to this class are run again following each start of the job scheduler, provided the user has requested this in /SET-LOGON-PARAMETERS
or /ENTER-JOB
.
DEFAULT = *WEEKLY
Jobs in this class are started weekly. The exact start time depends on the START operand value in/ENTER-JOB
.
DEFAULT = *DAILY
Jobs in this class are started daily. The exact start time depends on the START operand value in/ENTER-JOB
.
DEFAULT = *PERIOD(...)
Jobs are repeated each time the specified time interval has elapsed.
HOURS = 0 / <integer 0..23>
The time interval in hours may have a value between 0 and 23.
MINUTES = 00 / <integer 0..59>
A value between 0 and 59 minutes may be given.
The total time interval must be greater than 0. The exact start time depends on the START operand value in/ENTER-JOB
.
ALLOWED =
Specifies the values the user may give in the REPEAT-JOB or REPEAT operand of /ENTER-JOB
or /SET-LOGON-PARAMETERS
.
ALLOWED = *NO
Repetition of jobs in this class is not possible, unless a value other than NO has been specified for DEFAULT.
ALLOWED =*AT-STREAM-STARTUP
Jobs may be repeated if required each time the job scheduler is started.
ALLOWED = *DAILY
Jobs in this class may be repeated daily. The exact starting time depends on the START operand value in /ENTER-JOB
.
ALLOWED = *WEEKLY
Jobs in this class may be repeated weekly. The exact starting time depends on the START operand value in /ENTER-JOB
.
ALLOWED = *PERIOD
Jobs can be repeated each time the specified time interval has elapsed.
JOB-PARAMETER =
Additional class attributes, evaluated by system exit 32.
JOB-PARAMETER = *NO
No additional class attributes are defined.
JOB-PARAMETER = <c-string 1..127>
This operand defines additional class attributes in free syntax. Here, system-specific information can be stored in each job class definition.
This operand is not evaluated by the system or by the predefined job scheduler. If it is to be evaluated, systems support must:
create an exit routine to compare what the user specifies in the JOB-PARAMETER operand of
/SET-LOGON-PARAMETERS
,/ENTER-JOB
or/MODIFY-JOB
with what was specified in JOB-PARAMETER and to confirm its validity ordefine the scheduling algorithm of the scheduler which is responsible for the job class accordingly.
The exit routine is called during the processing of these commands entered by the user.
Notes
The CLASS-LIMIT and CLASS-WEIGHT operands are evaluated by the operating system’s class scheduler, which is independent of the job schedulers, in order to control the job-related portion of the system load (see the “Introduction to System Administration“ [5 (Related publications)]).
The significance of the JOB-PRIORITY, START and JOB-PARAMETER operands depends on the job scheduling algorithm used by the stream, as defined in the STREAM operand.
The number of job classes is unlimited.