Mit der Steueranweisung TAC-PRIORITIES legen Sie fest, nach welchem Verfahren die Auftragsbearbeitung in dieser UTM-Anwendung gesteuert werden soll. Das heißt, Sie legen die Kriterien fest, nach denen Aufträge für Transaktionscodes, die einer TAC-Klasse zugeordnet sind, von openUTM gestartet werden sollen.
Die Festlegung dieser Kriterien kann alternativ mit der TAC-PRIORITIES-Anweisung oder der TACCLASS-Anweisung erfolgen.
Eine TAC-Klasse besteht dabei aus einer Teilmenge der generierten Transaktionscodes der Anwendung. Die Aufteilung der Transaktionscodes in TAC-Klassen wird in der TAC-Anweisung mit dem Operanden TACCLASS= vorgenommen.
Wird der TACCLASS-Operand nicht angegeben, so werden Dialog-TACs keiner TAC-Klasse und Asynchron-TACs der Asynchron-TAC-Klasse 16 zugewiesen.
Mit TAC-PRIORITIES legen Sie im Einzelnen fest:
dass die Verteilung der Prozesse auf die TAC-Klassen prioritätengesteuert erfolgen soll. Sie dürfen dann keine TACCLASS-Anweisung absetzen.
nach welchen Algorithmen die zur Verfügung stehenden Prozesse der Anwendung auf die Dialog- bzw. Asynchron-TAC-Klassen verteilt werden sollen.
Operanden: DIAL-PRIO und ASYN-PRIOwieviele Prozesse der Anwendung maximal Aufträge an Dialog-TAC-Klassen bearbeiten dürfen.
Operand: FREE-DIAL-TASKS
Prioritäten für die TAC-Klassen festlegen
Bei der Prioritätensteuerung können Sie für Dialog- und für Asynchronaufträge jeweils zwischen absoluten, relativen oder gleichen Prioritäten wählen. Die Steuerung der Auftragsbearbeitung von Dialog- und Asynchron-Aufträgen erfolgt unabhängig voneinander.
Aufträge für Dialog-TACs, die keiner TAC-Klasse zugeordnet sind, werden unabhängig von den für Dialog-Aufträge eingestellten Prioritäten bearbeitet. Diese Aufträge werden immer sofort nach ihrer Entgegennahme aus dem Transportsystem gestartet.
Bei absoluten und relativen Prioritäten spielt die Nummer der TAC-Klasse eine Rolle. Aufträge an TAC-Klassen mit einer niedrigeren Nummer haben eine höhere Priorität als Aufträge an TAC-Klassen mit einer höheren Nummer. Bei den Dialog-TAC-Klassen hat also die TAC-Klasse 1 die höchste und die TAC-Klasse 8 die niedrigste Priorität. Bei den Asynchron-TAC-Klassen hat die TAC-Klasse 9 die höchste und die TAC-Klasse 16 die niedrigste Priorität.
Bei der Verwendung von absoluten Prioritäten werden freie und für die TAC-Klassen-Verarbeitung zur Verfügung stehende Prozesse der Anwendung immer der TAC-Klasse mit der höchsten Priorität, also 1 bzw. 9 zugeordnet, sofern es wartende Aufträge für diese TAC-Klasse gibt.
Erst wenn es keine wartenden Aufträge mehr in der TAC-Klasse mit der höchsten Priorität gibt, werden wartende Aufträge der TAC-Klasse mit der nächst niedrigeren Priorität bearbeitet.
Wollen Sie verhindern, dass wartende Aufträge einer TAC-Klasse mit niedriger Priorität eventuell lange Zeit nicht bearbeitet werden, so sollten Sie relative Prioritäten verwenden. Bei relativen Prioritäten werden Aufträge aus TAC-Klassen hoher Priorität häufiger bearbeitet als Aufträge aus TAC-Klassen niedrigerer Priorität.
Bei gleichen Prioritäten werden, sofern wartende Aufträge vorhanden, aus jeder TAC-Klasse gleich viele Aufträge bearbeitet.
Anzahl der Prozesse beschränken, die Aufträge an TAC-Klassen bearbeiten
Auch bei der Prioritätensteuerung der TAC-Klassen können Sie die Anzahl der Prozesse, die Aufträge der TAC-Klassen bearbeiten, beschränken, um Prozesse für administrative Aufgaben oder interne Aufträge frei zu halten.
Mit dem Operanden FREE-DIAL-TASKS beschränken Sie die Prozesszahl für die Dialog-TAC-Klassen relativ zur Gesamtanzahl der Prozesse.
Mit MAX ASYNTASKS=(atask_number,...) beschränken Sie die Prozesszahl für Asynchron-TAC-Klassen.
Diese Beschränkung ist aber jeweils gleich für alle Asynchron- bzw. für alle Dialog-TAC-Klassen.
Transaktionscodes, die Teilprogrammläufe mit blockierenden Aufrufen starten
Bei Verwendung der Anweisung TAC-PRIORITIES dürfen Transaktionscodes mit blockierenden Aufrufen (z.B. KDCS-Aufruf PGWT) jeder TAC-Klasse zugeordnet werden, sofern der Operand TASKS-IN-PGWT der MAX-Anweisung mit einem Wert > 0 generiert wird. Für diese Transaktionscodes müssen Sie TAC PGWT=YES generieren.
Ein ausführliche Beschreibung über TAC-Klassen und Prioritätensteuerung finden Sie im Abschnitt "Auftragssteuerung - Prioritäten und Prozessbeschränkung" |
|
|
DIAL-PRIO = | gibt an, nach welcher Priorität freie Prozesse auf die Dialog-TAC-Klassen mit wartenden Aufträgen verteilt werden sollen. Zu wartenden Dialog-Aufträgen kommt es nur dann, wenn zu einer Zeit mehr Aufträge an der Auftragsbörse abgeholt werden, als Prozesse für die Dialog-TAC-Klassen zur Verfügung stehen. Die Aufträge werden dann in die Auftrags-Queues der Transaktionscodes geschrieben, aus der sie von den freiwerdenden Prozessen entsprechend ihrer Priorität gelesen und bearbeitet werden. |
ABS | Absolute Priorität: |
REL | Relative Priorität: |
EQ | Gleiche Priorität: Standard: EQ |
ASYN-PRIO= | gibt an, nach welchen Prioritäten Prozesse auf die Asynchron-TAC-Klassenmit ablaufbereiten Asynchron-Aufträgen oder unterbrochenen Asynchron-Aufträgen verteilt werden sollen. Ist die maximale Anzahl gleichzeitig offener Asynchron-Vorgänge erreicht (gesetzt in MAX ASYNTASKS=(...,service_number)), so wird kein neuer anstehender Asynchron-Auftrag mehr gestartet, sondern ein unterbrochener offener Asynchron-Vorgang nach Priorität ausgewählt und fortgesetzt. |
ABS | Absolute Prioritäten: |
REL | Relative Prioritäten: |
EQ | Gleiche Prioritäten: Standard: EQ |
FREE-DIAL-TASKS=number | |
Mit FREE-DIAL-TASKS beschränken Sie die Gesamtanzahl der Prozesse, die Aufträge an Dialog-TAC-Klassen bearbeiten dürfen, relativ zur Anzahl aller Prozesse der Anwendung. In number geben Sie die Anzahl der Prozesse der Anwendung an, die mindestens für die Verarbeitung von Aufträgen freigehalten werden sollen, die keiner Dialog-TAC-Klasse angehören. Die maximale Anzahl der Prozesse, die gleichzeitig Asynchron-Aufträge bearbeiten dürfen, wird durch FREE-DIAL-TASKS= nicht beschränkt. Dazu steht der MAX-Operand ASYNTASKS=atask_number zur Verfügung. Minimalwert: 0 (keine Einschränkung) |
Beispiel
In der MAX-Anweisung wurde TASKS=7 und ASYNTASKS=2 gesetzt. In der Anweisung TAC-PRIORITIES wird FREE-DIAL-TASKS=3 generiert.
Die Anwendung wird mit sechs Prozessen betrieben. Dann können maximal drei Prozesse Aufträge der TAC-Klassen 1 bis 8 und maximal zwei Prozesse Aufträge der TAC-Klassen 9 bis 16 bearbeiten. Ein Prozess bleibt für Dialog-Aufträge reserviert, die keiner TAC-Klasse zugeordnet sind.