Mit dieser Anweisung wird eine neue Auftragsklassen-Definition in die SJMSFILE bzw. JMS-Datenbasis geschrieben und deren Eigenschaften festgelegt.
Format
DEFINE-JOB-CLASS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Operanden
NAME = <name 1..8>
Ist der Name der neuen Auftragsklassen-Definition, die in die SJMSFILE geschrieben werden soll. Er darf aus 1 bis 8 alphanumerischen Zeichen bestehen. Das erste Zeichen muss ein Buchstabe A bis Z oder das Zeichen @ oder # sein.
STREAM = *DEFAULT-STREAM
Standardstream, der mit der Anweisung DEFINE-JOB-STREAM festgelegte wurde.
STREAM = <name 1..8>
Name des Streams, unter dem der Jobscheduler läuft, dem die Auftragsklasse zugeordnet wird. Der Name darf nicht $SYSJS sein. Der Name des Streams muss bereits vorher schon mit der DEFINE-JOB-STREAM-Anweisung definiert worden sein.
CLASS-LIMIT = <integer 0..4095>
Maximale Anzahl von Aufträgen, die in der Klasse gestartet werden sollen.
CLASS-WEIGHT = <integer 1..9>
Bestimmt die Startdringlichkeit der Klasse relativ zu anderen Klassen, deren Aufträge darauf warten gestartet zu werden.
1 ist die niedrigste, 9 die höchste Dringlichkeit.
CLASS-OPTIMUM =
Anzahl von Aufträgen, die idealerweise in der Auftragsklasse laufen sollten, um im System ein bestimmtes Verhältnis unter den Aufträgen zu erreichen.
CLASS-OPTIMUM hat Einfluss auf die Reihenfolge, in der der Klassenscheduler Auftragsklassen auswählt, um die Aufträge daraus zu starten.
CLASS-OPTIMUM = 0 / <integer 0..4095>
Anzahl der Aufträge. Es kann der Wert 0 bis zum Wert, der bei dem Operanden CLASS-LIMIT definiert ist, angegeben werden: 0 <= CLASS-OPTIMUM <= CLASS-LIMIT <= 4095.
JOB-PRIORITY =
Gibt die Priorität des Jobscheduling für Batch-Aufträge an, die die Wichtigkeit des Auftrags relativ zu anderen Aufträgen der Klasse bestimmt.
JOB-PRIORITY = *NO
Ist nur eine formale Angabe ohne Bedeutung, die aber gemacht werden muss, wenn beim Operanden JOB-TYPE=DIALOG angegeben wurde.
JOB-PRIORITY = *PARAMETERS(...)
DEFAULT = <integer 1..9>
Für die Auftragsklasse voreingestellte Priorität.
1 ist die höchste, 9 die niedrigste Priorität.
Hat der Benutzer für seinen Auftrag keine Priorität angegeben, kommt DEFAULT=<integer...> zur Anwendung.
Hat der Benutzer eine Priorität nicht höher als MAXIMUM=<integer...> angegeben, so gilt die vom Benutzer bei /ENTER-JOB
angegebene.
Es darf für die DEFINE-JOB-CLASS-Anweisung bei DEFAULT keine höhere Priorität als bei MAXIMUM angegeben werden, sonst wird die Anweisung mit Syntaxfehler abgewiesen.
MAXIMUM = NO / <integer 1..9>
Maximal zugelassene Priorität der Auftragsklasse.
Bei MAXIMUM=NO bekommt der Auftrag die Priorität, die mit DEFAULT angegeben ist, ganz gleich, welche Priorität der Benutzer bei /ENTER-JOB
angegeben hat.
JOB-TYPE =
Bezeichnet die Art der Auftragsklasse.
JOB-TYPE = *BATCH
Gibt an, dass die Auftragsklasse eine Batch-Auftragsklasse sein soll. Das bedeutet, dass ein Auftrag, der zu dieser Klasse gehört, nicht durch /SET-LOGON-PARAMETERS
im Dialog eingegeben werden darf.
JOB-TYPE = *DIALOG
Gibt an, dass die Auftragsklasse eine Dialog-Auftragsklasse sein soll. Ein zu dieser Auftragsklasse gehörender Auftrag darf nicht durch /ENTER-JOB
eingegeben werden.
TP-ALLOWED = *NO / *YES(...)
Gibt an, ob das Taskattribut TP in der Auftragsklasse erlaubt ist.
TP-ALLOWED = *NO
Bedeutet, dass das Taskattribut TP in der Auftragsklasse nicht erlaubt ist. Aufträge dieser Klasse dürfen nicht unter diesem Taskattribut gestartet werden bzw. der Wechsel zu diesem Taskattribut durch den Makro TINF ist verboten, es sei denn, er ist laut Eintrag im Benutzerkatalog zugelassen.
TP-ALLOWED = *YES(...)
CATEGORY = TP / <name 1..7>
Für das Taskattribut TP kann ein Kategoriename vergeben werden.
Es kann der Standardkategoriename (TP) sein oder ein vom Benutzer frei definierter Name. Der Standardkategoriename SYS ist verboten.
Zusätzlich zu den vier vordefinierten dürfen bis zu zwölf weitere Kategorienamen definiert werden.
Bei Änderungen in der Datenbasis wird der Standardkategoriename TP verwendet, falls die angegebene Kategorie im System nicht bekannt ist.
(Siehe „Hinweise zu allen 3 Taskattributen".)
DIALOG-ALLOWED = *NO / *YES(...)
Gibt an, ob das Taskattribut DIALOG in der Auftragsklasse erlaubt ist.
DIALOG-ALLOWED = *NO
Bedeutet, dass das Taskattribut DIALOG in der Auftragsklasse nicht erlaubt ist. Aufträge dieser Klasse dürfen nicht unter diesem Taskattribut gestartet werden bzw. der Wechsel zu diesem Taskattribut durch den Makro TINF ist verboten, es sei denn, er ist laut Eintrag im Benutzerkatalog zugelassen.
DIALOG-ALLOWED = *YES(...)
CATEGORY = DIALOG / <name 1..7>
Für das Taskattribut DIALOG kann ein Kategoriename vergeben werden.
Es kann der Standardkategoriename (DIALOG) sein oder ein vom Benutzer frei definierter Name. Der Standardkategoriename SYS ist verboten.
Zusätzlich zu den vier vordefinierten dürfen bis zu zwölf weitere Kategorienamen definiert werden.
Bei Änderungen in der Datenbasis wird der Standardkategoriename DIALOG verwendet, falls die angegebene Kategorie im System nicht bekannt ist.
(Siehe „Hinweise zu allen 3 Taskattributen".)
BATCH-ALLOWED = *NO / *YES(...)
Gibt an, ob das Taskattribut BATCH in der Auftragsklasse erlaubt ist.
BATCH-ALLOWED = *NO
Bedeutet, dass das Taskattribut BATCH in der Auftragsklasse nicht erlaubt ist. Aufträge dieser Klasse dürfen nicht unter diesem Taskattribut gestartet werden bzw. der Wechsel zu diesem Taskattribut durch den Makro TINF ist verboten, es sei denn, er ist laut Eintrag im Benutzerkatalog zugelassen.
BATCH-ALLOWED = *YES(...)
CATEGORY = BATCH / <name 1..7>
Für das Taskattribut BATCH kann ein Kategoriename vergeben werden.
Es kann der Standardkategoriename (BATCH) sein oder ein vom Benutzer frei definierter Name. Der Standardkategoriename SYS ist verboten.
Zusätzlich zu den vier vordefinierten dürfen bis zu zwölf weitere Kategorienamen definiert werden.
Bei Änderungen in der Datenbasis wird der Standardkategoriename BATCH verwendet, falls die angegebene Kategorie im System nicht bekannt ist.
Die Abhängigkeiten zum Wert des Operanden START-ATTR sind zu beachten.
Ein Kategoriename darf nicht zwei verschiedenen Taskattributen zugeordnet werden, z.B. ist folgende Angabe zweideutig und daher nicht erlaubt: BATCH-ALLOWED=*YES(CATEGORY=HUGO) und DIALOG-ALLOWED=*YES(CATEGORY=HUGO)
START-ATTRIBUTE = *BATCH / *DIALOG / *TP
Legt das Taskattribut für den Auftrag fest. Gleichzeitig muss das entsprechende Taskattribut im Operanden TP-, DIALOG- oder BATCH-ALLOWED angegeben werden, z.B. START-ATTRIBUTE=*TP und TP-ALLOWED=*YES(...).
RUN-PRIORITY =
Gibt die Taskpriorität an, mit der ein Auftrag gestartet wird.
RUN-PRIORITY = *PARAMETERS(...)
DEFAULT = <integer 30..255>
Für die Auftragsklasse voreingestellter Wert.
Bei DEFAULT darf keine höhere Priorität als bei MAXIMUM angegeben werden.
MAXIMUM = *NO / <integer 30..255>
Gibt die maximale zugelassene Priorität für die Auftragsklasse an.
Bedeutet, dass ein Auftrag die Priorität bekommt, die der Benutzer angegeben hat, wenn sie nicht die maximal zugelassene Priorität überschreitet. Ist allerdings im Benutzerkatalog für den Benutzer eine höhere Priorität zugelassen als im Operanden MAXIMUM angegeben, dann darf er den Wert von MAXIMUM überschreiten.
MAXIMUM=*NO bedeutet, dass keine maximale Taskpriorität definiert ist. Ein Auftrag bekommt die Priorität, die der Benutzer angegeben hat, falls diese nicht höher ist als die für ihn laut Eintrag im Benutzerkatalog geltende.
NO-CPU-LIMIT = *NO / *YES
Gibt an, ob Aufträge in dieser Klasse ohne Zeitbeschränkung laufen dürfen (NTL).
Die Angabe NO bedeutet, dass Aufträge in dieser Klasse nicht ohne Zeitbeschränkung laufen dürfen (siehe /SET-LOGON-PARAMETERS
). Ist für einen Benutzer im Benutzerkatalog der Eintrag NO-CPU-LIMIT=*YES angegeben, so kann er Aufträge ohne Zeitbeschränkung auch dann laufen lassen, wenn in der Auftragsklasse NO-CPU-LIMIT=*NO gilt.
CPU-LIMIT =
CPU-Zeit, die ein Auftrag dieser Klasse verbrauchen darf.
CPU-LIMIT = *PARAMETERS(...)
DEFAULT = *NO-LIMIT
In dieser Auftragsklasse ist voreingestellt, dass die Aufträge ohne Zeitbeschränkung laufen. Der Wert ist nur erlaubt, wenn NO-CPU-LIMIT=*YES und MAXIMUM=32767 ist.
DEFAULT = <integer 1..32767>
Für die Auftragsklasse voreingestellter Wert.
MAXIMUM = <integer 1..32767>
Ist die maximal explizit anforderbare CPU-Zeit für einen Auftrag der Auftragklasse.Dieser Wert darf nicht überschritten werden, wenn beim Erzeugen eines Auftrags durch ENTER-JOB, ENTER-PROCEDURE oder SET-LOGON-PARAMETERS für CPU-LIMIT ein Zahlenwert spezifiziert wird. Die maximale CPU-Zeit, die insgesamt für eine Abrechnungsnummer verbraucht werden darf, hängt vom CPU-Eintrag im Benutzerkatalog ab.
Der durch DEFAULT angegebene Wert darf den bei MAXIMUM angegebenen Wert nicht überschreiten. Für DEFAULT=*NO-LIMIT muss für MAXIMUM der
höchstmögliche Wert 32767 vergeben und NO-CPU-LIMIT=*YES angegeben sein. Ist eine dieser Bedingungen verletzt, so wird die Anweisung mit einem Syntaxfehler abgewiesen.
MAXIMUM = *NO
Der Auftrag darf die CPU-Zeit verbrauchen, die mit DEFAULT angegeben ist, unabhängig davon, was der Benutzer an CPU-Zeit gefordert hat.
SYSLST-LIMIT =
Bestimmt die Anzahl der Zeilen für einen Auftrag bei einer Ausgabe über SYSLST.
SYSLST-LIMIT = *PARAMETERS(...)
DEFAULT = *NO-LIMIT / <integer 0..999999>
Für die Auftragsklasse voreingestellte Anzahl Zeilen. *NO-LIMIT bedeutet, die Anzahl ist unbeschränkt. Der bei DEFAULT angegebene Wert darf den bei MAXIMUM angegebenen Wert nicht überschreiten, sonst wird die Anweisung DEFINE-JOB-CLASS mit Syntaxfehler abgewiesen.
MAXIMUM =
Maximal zugelassene Zeilenzahl für die Auftragsklasse.
MAXIMUM = *NO
Der Auftrag erhält die Anzahl der zugelassenen Zeilen, die mit DEFAULT angegeben ist, ganz gleich, welche Anzahl der Benutzer angefordert hat.
MAXIMUM = *NO-LIMIT
Die zugelassene Anzahl Zeilen für einen Auftrag dieser Klasse ist unbeschränkt. Die vom Benutzer angegebene Anzahl Zeilen ist in jedem Fall gültig.
MAXIMUM = <integer 0..999999>
Bedeutet, dass die Anzahl Zeilen für den Auftrag gültig ist, die der Benutzer angegeben hat, wenn der von ihm angegebene Wert nicht den Wert von MAXIMUM überschreitet.
START =
Ordnet den Startanforderungen für Aufträge entsprechende Startmöglichkeiten zu.
START = *NO
Ist nur eine formale Angabe ohne Bedeutung, die aber bei gleichzeitiger Angabe des Operanden JOB-TYPE=DIALOG erforderlich ist.
START = *PARAMETERS(...)
DEFAULT =
Ist Standardwert, der angenommen wird, falls ein Benutzer bei /ENTER-JOB
keine Anforderung für eine bestimmte Startart gemacht hat. Der unter DEF definierte Wert muss nicht unter ALLOWED (siehe unten) aufgelistet werden.
DEFAULT = *SOON
Der Auftrag soll so schnell wie möglich gestartet werden. Wenn mehrere Aufträge SOON angefordert haben, entscheidet die Auftragspriorität.
DEFAULT = *WITHIN(...)
Der Auftrag soll innerhalb der in Stunden und Minuten angegebenen Zeit gestartet werden.
HOURS = 0 / <integer 0..23>
Ist ein Wert von 0 bis 23 Uhr.
MINUTES = 00 / <integer 0..59>
Ist ein Wert von 0 bis 59 Minuten.
ALLOWED =
Gibt die Werte an, die der Benutzer im Operanden START= bei /ENTER-JOB
für die entsprechende Auftragsklasse angeben darf.
ALLOWED = *IMMEDIATELY
Ein Auftrag in dieser Auftragsklasse darf sofort gestartet werden, auch wenn er andere Aufträge mit höherer Priorität, die zu dieser Zeit gestartet werden sollten, zurückdrängt.
ALLOWED = *SOON
Hat die gleiche Bedeutung wie DEFAULT=*SOON, siehe oben.
ALLOWED = *AT
Der Auftrag darf am angegebenen Datum und genau zur angegebenen Zeit (Stunde, Minuten) gestartet werden, wenn es möglich ist.
ALLOWED = *LATEST
Ein Auftrag darf spätestens zum angegebenen Zeitpunkt (Datum, Uhrzeit) gestartet werden.
ALLOWED = *EARLIEST
Ein Auftrag darf frühestens zum angegebenen Zeitpunkt (Datum, Uhrzeit) gestartet werden.
ALLOWED = *WITHIN
Ein Auftrag darf innerhalb der angegebenen Zeit gestartet werden.
ALLOWED = *AT-STREAM-STARTUP
Ein Auftrag darf zum Zeitpunkt gestartet werden, wenn der Jobscheduler gestartet wird.
Eine Ausnahme bildet auch ALLOWED=*IMMEDIATELY: Hat der Benutzer bei /SET-LOGON-PARAMETERS
, /ENTER-JOB
oder /MODIFY-JOB
den Wert START=*IMMEDIATELY angegeben und in seinem Eintrag im Benutzerkatalog ist START-IMMEDIATE=*YES festgelegt, dann wird sein Auftrag auch dann sofort gestartet, wenn in der Auftragsklasse ALLOWED =*IMMEDIATELY nicht angegeben ist.
REPEAT-JOB =
Regelt die Häufigkeit von Auftragswiederholungen nach bestimmten Zeitabschnitten. Wird bei JOB-TYPE=*DIALOG ignoriert.
REPEAT-JOB = *NO
Ist nur eine formale Angabe ohne Bedeutung, die aber bei gleichzeitiger Angabe des Operanden JOB-TYPE=DIALOG erforderlich ist.
REPEAT-JOB = *PARAMETERS(...)
DEFAULT =
Ist der Standardwert, der angenommen wird, falls der Benutzer bei /ENTER-JOB
bzw. /SET-LOGON-PARAMETERS
keine Angaben für die Häufigkeit von Auftragswiederholungen gemacht hat, d.h. den Operanden REPEAT-JOB bzw. REPEAT weggelassen oder REPEAT-JOB=STD bzw. REPEAT=STD angegeben hat.
DEFAULT = *NO
Bedeutet, dass der Auftrag nicht wiederholt wird.
DEFAULT = *AT-STREAM-STARTUP
Aufträge, die zu dieser Klasse gehören, werden nach jedem Start des Jobschedulers wiederholt zum Laufen gebracht, wenn der Benutzer es bei /ENTER-JOB
bzw. /SET-LOGON-PARAMETERS
gefordert hat.
DEFAULT = *WEEKLY
Aufträge dieser Klasse werden wöchentlich gestartet.
Die genaue Startzeit hängt von den Angaben im Operanden START bei /ENTER-JOB
ab.
DEFAULT = *DAILY
Aufträge dieser Klasse werden täglich gestartet.
Die genaue Startzeit hängt von den Angaben im Operanden START bei /ENTER-JOB
ab.
DEFAULT = *PERIOD(...)
Aufträge werden jedes Mal nach dem angegebenen Zeitintervall wiederholt.
HOURS = 0 / <integer 0..23>
Als Zeitintervall kann ein Wert von 0 bis 23 Stunden angegeben werden.
MINUTES = 00 / <integer 0..59>
Es können 0 bis 59 Minuten angegeben werden.
Insgesamt muss das Zeitintervall größer als 0 sein. Die genaue Startzeit hängt von den Angaben im Operanden START bei /ENTER-JOB
ab.
ALLOWED =
Gibt die Werte an, die der Benutzer im Operanden REPEAT-JOB bzw. REPEAT bei /ENTER-JOB
bzw. /SET-LOGON-PARAMETERS
angeben darf.
ALLOWED = *NO
Die Wiederholung von Aufträgen in dieser Klasse ist nicht möglich, es sei denn bei DEFAULT ist eine andere Angabe als NO gemacht worden.
ALLOWED =*AT-STREAM-STARTUP
Aufträge können, wenn gewünscht, nach jedem Start des Jobschedulers wiederholt zum Laufen gebracht werden.
ALLOWED = *DAILY
Aufträge können täglich wiederholt werden. Die genaue Startzeit hängt von der Angabe im START-Operanden bei /ENTER-JOB
ab.
ALLOWED = *WEEKLY
Aufträge können wöchentlich wiederholt werden. Die genaue Startzeit hängt von der Angabe im START-Operanden bei /ENTER-JOB
ab.
ALLOWED = *PERIOD
Aufträge können jedes Mal nach dem angegebenen Zeitintervall wiederholt werden.
JOB-PARAMETER =
Zusätzliche Auftragsklassenattribute, die vom System Exit 32 ausgewertet werden.
JOB-PARAMETER = *NO
Es werden keine zusätzlichen Klassenattribute definiert.
JOB-PARAMETER = <c-string 1..127>
Dieser Operanden definiert zusätzliche Klassenattribute in freier Syntax. Damit können system-spezifische Informationen in jeder Auftragsklassendefinition gespeichert werden.
Der Operand wird weder vom System noch vom vordefinierten Jobscheduler ausgewertet. Soll er ausgewertet werden, muss die Systemverwaltung eine der beiden folgenden Aktionen ausführen:
Erstellen einer Exit-Routine, die die Angaben des Benutzers im JOB-PARAMETER bei
/SET-LOGON-PARAMETERS
,/ENTER-JOB
oder/MODIFY-JOB
mit den Angaben im JOB-PARAMETER vergleicht und deren Gültigkeit bestätigt.Den Scheduling-Algorithmus des für die Jobklasse zuständigen Schedulers entsprechend festlegen.
Die Exit-Routine wird bei der Bearbeitung der oben genannten Kommandos des Benutzers aufgerufen.
Hinweise
Die Operanden CLASS-LIMIT und CLASS-WEIGHT werden vom Klassenscheduler des Betriebssystems, der unabhängig von den Jobschedulern ist, ausgewertet, um die Systemlast an Aufträgen zu steuern (siehe Handbuch „Systembetreuung“ [5]).
Die Bedeutung der Operanden JOB-PRIORITY, START und JOB-PARAMETER hängt vom Jobscheduling-Algorithmus ab, der vom Stream benutzt wird, der im Operanden STREAM definiert ist.
Die Anzahl der Auftragsklassen ist unbeschränkt zugelassen.