Jeder aktive Job wird auf seine Bedingungen hin überprüft, bevor er gestartet werden kann. Nur wenn alle definierten Bedingungen gleichzeitig zur Verfügung stehen, kann der Job gestartet werden. Die Prüfung von Bedingungen für einen aktiven Job wird solange wiederholt, bis alle definierten Bedingungen zur Verfügung stehen, aber nur bevor die späteste Startzeit erreicht ist.
Die für einen Job oder ein Netzwerk definierten Start- und Endezeiten müssen erreicht worden sein.
Die für den Job definierten Eingabebedingungen müssen erfüllt sein.
Die für die Verwendung durch den Job definierten Ressourcen müssen zur Verfügung stehen.
Für den Job oder das Netzwerk definierte, betriebssystem-spezifische Objekte (z.B. ein BS2000-Benutzerschalter) müssen zur Verfügung stehen.
Der für den Job oder das Netzwerk definierte Ausführungsknoten muss zur Verfügung stehen.
Entire Operations verwendet mehrere Verfahren, um den Aufwand bei der Prüfung von Bedingungen zu verringern. Diese Verfahren sind für den Anwender transparent. Sie sollen hier aber dennoch aufgezeigt werden.
Die Sortierreihenfolge bei der Prüfung von Bedingungen ist wie folgt:
Früheste Startzeit;
Superdeskriptor Eigentümer, Netzwerk, Lauf, Job.
Der Sortiervorgang wird nur bei Jobs durchgeführt, die zur selben Zeit sich in der Eingabe-Warteschlange für die Prüfung von Bedingungen befinden.
Aktive Jobs, die auf eine oder mehrere Eingabebedingungen, Ressourcen, oder auf die Verfügbarkeit eines Betriebssystem-Servers (Knotens) warten, werden in eine gesonderte Warteschlange gestellt, die sie temporär aus der aktiven Prüfung durch den Monitor herausnimmt.
Aktive Jobs werden aus dem passiven Wartezustand "aufgeweckt":
beim Setzen oder Löschen aktiver Bedingungen, die sie betreffen könnten, an beliebiger Stelle,
beim Setzen oder Löschen von Ressourcen, die im Job verwendet werden, an beliebiger Stelle,
nach der Veränderung oder Löschung von Definitionen für Eingabebedingungen und Ressourcen in aktiven Jobs,
beim Start des Monitors,
bei Tageswechsel,
durch explizite Anforderung, siehe Spezielle Funktionen in der Systemverwaltung-Dokumentation.
Nach einem Aufwecken wird erneut eine aktive Prüfung der Vorbedingungen, Ressourcen und Betriebssystem-Server ausgeführt. Wenn die zum Job-Start notwendigen Bedingungen nicht erfüllt sind, kann ein erneutes passives Warten die Folge sein.
Anmerkung:
Die Hauptroutine für passives Warten reaktiviert die wartenden Jobs
nicht zur selben Zeit. Stattdessen gibt sie sie in 300er Portionen frei.
Zwischen der Freigabe dieser Bündel liegt ein Zeitraum von 30 Sekunden. Dies
optimiert die Verteilung der Monitor- und der Datenbank-Aktivitäten bei der
Prüfung von Bedingungen für eine große Anzahl an Jobs über einen längeren
Zeitraum.
Das folgende Diagramm zeigt den Ablauf beim passiven Warten auf Bedingungen und Ressourcen.
|
Es wurde ein Netzwerk aktiviert. Die Job-Verarbeitung wird durch den Monitor gesteuert. |
|
Die Vorbedingungen für einen Job werden nach der
Job-Aktivierung geprüft.
Falls eine Vorbedingung nicht erfüllt wird (z.B. wenn der für den Job definierte Ausführungsknoten nicht zur Verfügung steht), wird die Vorbedingungsprüfung an der Stelle angehalten, an der sie nicht erfolgreich war. |
|
Der Job wird in einen aktiven Wartezustand
versetzt und wartet darauf, dass die erforderliche Vorbedingung bis zur
nächsten Prüfung erfüllt wird.
Die Vorbedingungsprüfung wird der Stelle fortgesetzt, an der die vorangegangene Prüfung nicht erfolgreich war. |
|
Der Monitor bestimmt, wie lange auf die fehlende Vorbedingung gewartet werden soll, bevor er den Job in einen passiven Wartezustand versetzt. |
|
Eine Trigger-Routine reaktiviert den Job, wenn
die für die Reaktivierung des Jobs definierten Kriterien erfüllt sind (z.B. der
nicht verfügbare Ausführungsknoten steht jetzt zur Verfügung), und erzwingt die
erneute aktive Prüfung des Jobs.
Der Prüfvorgang (von aktivem zu passivem Warten und umgekehrt) kann sich mehrere Male wiederholen. |
|
Wenn alle Vorbedingungen erfüllt sind, wird der Job zur Ausführung gestartet. |
Anmerkung:
Bei jedem Monitorstart werden alle Jobs, die sich in der passiven
Warteschlange befinden, für eine weitere Vorbedingungsprüfung
reaktiviert.
In den folgenden Fällen kann kein passives Warten ausgeführt werden:
Warten auf eine Eingabebedingung, die von der Existenz einer Datei abhängt,
Warten auf eine Eingabebedingung, die von dem Ergebnis eines User Exit abhängt.
In diesen Fällen kann Entire Operations nicht selbst feststellen, wann ein solcher Job wieder in den aktiven Wartezustand zurückgestellt werden soll. Deshalb wird ein aktiver Job in einem solchen Fall nicht in den passiven Wartezustand versetzt.
Ein passives Warten kann aber auch für diese Jobs zumindest für einen Teil der Wartezeit ausgeführt werden, wenn sie parallel zu den oben genannten Fällen auf eine "normale" Bedingung warten, die möglichst kurz vor dem Job-Start gesetzt wird.
Mit anderen Worten: Es empfiehlt sich, ein Warten auf Bedingungen mit speziellen Abhängigkeiten durch ein Warten auf "normale" Bedingungen zu flankieren.
Wenn Vorbedingungen und Ressourcen eines aktiven Jobs aktiv geprüft werden, wird die Reihenfolge der Prüfungen eines Jobs dynamisch optimiert.
Bei einer Folgeprüfung wird wieder bei der letzten nicht erfolgreichen Prüfung aufgesetzt. Damit wird vermieden, dass erfolgreiche Prüfungen redundant mehrfach durchlaufen werden. Es ist jedoch sichergestellt, dass direkt vor der Freigabe zum Job-Start alle Eingabebedingungen und Ressourcen zusammen zu einem Zeitpunkt überprüft worden sind.
Das folgende Diagramm zeigt den Ablauf des Round-Robin-Verfahrens bei der Prüfung von Vorbedingungen und Ressourcen: