Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

TAC-PRIORITIES - Prioritäten der TAC-Klassen festlegen

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-PRIO

  • wieviele 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.

Wird bei der Generierung weder eine TACCLASS-Anweisung noch die Anweisung TAC-PRIORITIES abgesetzt, obwohl bei mindestens einer TAC-Anweisung der TACCLASS-Parameter angegeben wurde, dann wirken die Standardwerte der TACCLASS-Anweisung. TAC-Prioritäten werden in diesem Fall nicht angewendet. Siehe dazu die Beschreibung von TACCLASS auf "TACCLASS - Prozess-Anzahl für TAC-Klassen festlegen".

Ein ausführliche Beschreibung über TAC-Klassen und Prioritätensteuerung finden Sie im Abschnitt "Auftragssteuerung - Prioritäten und Prozessbeschränkung"

TAC-PRIORITIES

[DIAL-PRIO={ABS | REL | EQ } ]
[ ,ASYN-PRIO = { ABS | REL | EQ } ]
[ ,FREE-DIAL-TASKS = number ]

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:
Ein freier Prozess wird immer der TAC-Klasse mit der höchsten Priorität (TAC-Klasse 1) zugeordnet, sofern es für diese TAC-Klasse wartende Aufträge gibt. TAC-Klassen mit niedrigerer Priorität werden nur bedient, wenn es in allen TAC-Klassen höherer Priorität keine wartenden Aufträge mehr gibt.

    REL

Relative Priorität:
Freie Prozesse werden öfter TAC-Klassen hoher als TAC-Klassen niedriger Priorität zugeordnet, sofern für diese wartenden Aufträge vorhanden sind. Sind für alle Dialog-TAC-Klassen Aufträge vorhanden, so wird ein freiwerdender Prozess der TAC-Klasse 1 doppelt so oft wie der TAC-Klasse 2 zugeordnet und der TAC-Klasse 2 werden Prozesse wiederum doppelt so häufig zugeordnet wie der TAC-Klasse 3 usw.

    EQ

Gleiche Priorität:
Sofern Aufträge vorhanden sind, werden alle TAC-Klassen gleich häufig bedient. Diese Gleichverteilung kann gestört werden, wenn eine TAC-Klasse zeitweise keine wartenden Aufträge enthält oder in ihr häufiger Teilprogrammläufe mit blockierenden Aufrufen (z.B. KDCS-Aufruf PGWT) auftreten.

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:
Ein freier Prozess wird immer der TAC-Klasse mit der höchsten Priorität, also neun zugeordnet, sofern es dort anstehende Asynchron-Aufträge oder unterbrochene Asynchron-Aufträge gibt. Freiwerdende Prozesse bearbeiten Aufträge einer TAC-Klasse mit niedrigerer Priorität erst dann, wenn in den Message Queues aller TAC-Klassen höherer Priorität keine anstehenden oder unterbrochenen Asynchron-Aufträge mehr stehen.

    REL

Relative Prioritäten:
Freie Prozesse werden öfter TAC-Klassen hoher als TAC-Klassen niedriger Priorität zugeordnet, sofern für die TAC-Klassen höherer Priorität anstehende oder unterbrochene Aufträge vorhanden sind. Sind für alle TAC-Klassen Aufträge vorhanden, dann werden freiwerdende Prozesse der TAC-Klasse 9 doppelt so oft zugeordnet wie der TAC-Klasse 10, und der TAC-Klasse 10 wiederum doppelt so häufig wie der TAC-Klasse 11 usw.

    EQ

Gleiche Prioritäten:
Sofern Aufträge vorhanden sind, werden alle TAC-Klassen gleich häufig bedient. Diese Gleichverteilung kann in der Praxis gestört werden, wenn etwa eine TAC-Klasse zeitweise keine wartenden Aufträge enthält oder in ihr häufiger Teilprogrammläufe mit blockierenden Aufrufen (z.B. KDCS-Aufruf PGWT) auftreten.

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)
Maximalwert: TASKS - 1 (TASKS aus MAX-Anweisung)
Standardwert: 1

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.