Mit dem in der Software enthaltenen Batchserver können auf dem Anwendungsserver folgende Prozesse im Hintergrund gestartet werden:
Der Batchserver kann direkt aus der Software heraus oder per Systembefehl gestartet werden.
Mit einer Überwachungsaufgabe können die Aufgaben unabhängig von ihrem Status (in Warteschlange, läuft, beendet) überwacht werden. Weiterhin ist es möglich, vor dem Start die Startparameter zu ändern, Aufgaben anzuhalten und nach Beendigung der Aufgabe die Logdatei anzuzeigen.
Aufgaben können dem Batchserver auf verschiedene Arten für die Ausführung unterbreitet werden:
In den nachstehenden Strukturen wird die Funktionsweise des Batchservers beschrieben. Rauten beziehen sich auf logische Tests, gelbe Rechtecke auf einfache Aktionen, grüne Rechtecke auf komplexere Aktionen, die in einer anderen Struktur beschrieben werden. Die Titel der einzelnen Strukturen werden in ein blaues Quadrat gesetzt. Die roten Rechtecke enthalten jeweils die letzte Aktion.
Beim Server handelt es sich um einen X3-Prozess, der auf einem speziellen SERVX3-Ordner läuft. Dieser Prozess verwendet eine Reihe von Tabellen im Supervisor-Ordner, die aufgrund der Tatsache, dass sie sich in diesem Ordner befinden, in allen Ordnern sichtbar sind. Zu jedem Zeitpunkt kann immer nur ein einziger Serverprozess laufen. Serveraufgaben werden folgendermaßen aufgerufen:
Nach Durchführung der Prüfungen und Initialisierungen werden in Unterverzeichnissen des SERVX3-Verzeichnisses Dateien abgelegt:
Zusätzlich wird die Anzahl der Abfragen geprüft, die je nach definierten Batchservereinstellungen gleichzeitig ausgeführt werden können.
Funktionsweise des Batchservers:
Die Existenz einer kill-Datei im FIL-Verzeichnis des SERVX3-Ordners zieht die Unterbrechung sämtlicher noch laufender Batchaufgaben nach sich. Die Existenz einer stop-Datei in demselben Verzeichnis hält den Server an. Sollen der Webserver und sämtliche Abfragen angehalten werden, müssen diese beiden Dateien im Verzeichnis abgelegt werden. Hierbei ist zunächst die erste Datei und dann innerhalb von zwei Sekunden die zweite Datei abzulegen, damit der Server zunächst die Aufgaben unterbricht und dann anhält.
Die auszuführenden Aufgaben werden in aufsteigender chronologischer Reihenfolge gesucht: Die älteste Aufgabe hat die höchste Priorität, sofern die maximale Frist für den Aufruf noch nicht überschritten ist (diese Frist ist in Stunden in den Aufgabendaten definiert). Die für den Aufruf der Aufgabe programmierte Uhrzeit ist durch an anderer Stelle bestehende Bedingungen definiert. Weitere Erläuterungen sind dem nachstehenden Kapitel über die Verwaltung von zeitlichen Bedingungen zu entnehmen.
Mit einem Verarbeitungsintervall kann eine bestimmte Zeit definiert werden, nach deren Ablauf der Server sich aktiviert, um die neuen eingereichten Abfragen zu verarbeiten. Vor dem Hintergrund, dass alle 2 Sekunden per Polling geprüft wird, ob der Server immer noch aktiv ist, sollte dieses Intervall sinnvollerweise zwischen 30 Sekunden und 1 Minute lang sein.
Der Aufruf von Abfragen folgt folgender Struktur:
Im SERVX3-Ordner wird ein X3-Prozess im richtigen Ordner gestartet. Dabei werden mit der übernommenen Prozessnummer die entsprechenden Daten aktualisiert. Wurde die Abfrage mithilfe einer Datei unterbreitet, so werden die entsprechenden Dateien aktualisiert.
Im Zielverzeichnis beginnt die Ausführung des der Abfrage zugeordneten Prozesses mit dem Öffnen der Logdatei und dem Prüfen der Ausführungsbedingungen (Modus? Verfügt der Benutzer immer noch über die Ausführungsrechte?). Danach wird die Verarbeitung oder das Skript gestartet. Schließlich wird die Aufgabe beendet:
Ein Aufgabenende führt nicht nur zum Öffnen der Logdatei und der Aktualisierung der mit der Ausführung verbundenen Dateien nach Datei, sondern auch zur Aktivierung der nächsten Aufgabe in einer Gruppe, wenn kein Fehler aufgetreten ist. Umgekehrt werden die nächsten Aufgaben abgebrochen.
Zu den weiteren, an dieser Stelle nicht beschriebenen Verarbeitungen zählen in erster Linie das Polling (Löschen einer stat-Datei im Fil-Unterverzeichnis des SERVX3-Ordners, sofern diese von einer Aufgabe angelegt wurde, die testet, ob der Server immer noch läuft), sowie die Abfrageverarbeitung bei Zeitüberschreitung. Um den Test zu vermeiden, ob die Abfragen das festgelegte Intervall überschritten haben, kann dieses Intervall größer gewählt werden als das erste Verarbeitungsintervall. Da dieser Test schwerfällig ist, kann das Intervall beispielsweise auf 5 Minuten gesetzt werden (was bedeutet, dass das maximal für diese Aufgabe zulässige Intervall um bis zu 5 Minuten überschritten werden darf):
Die Abfrageliste kann von externen Dateien aktualisiert werden (Rechteck Lesen der Abfragedateien in der Hauptschleife des Servers). Diese Verarbeitung folgt der folgenden Struktur:
Die letzte Verarbeitung in der Ausführungsschleife des Servers betrifft die Verarbeitung von wiederkehrenden Abfragen. Sie wird nachstehend beschrieben:
Im Rahmen des Aufrufs von Aufgaben oder Aufgabengruppen können zeitliche Bedingungen festgelegt werden. Diese gelten lediglich für den Aufgaben- bzw. Aufgabengruppenaufruf. Zum Beispiel:
Die zeitlichen Bedingungen sind in einer von allen Ordnern gemeinsam genutzten Tabelle definiert und ermöglichen die Festlegung bestimmter Uhrzeiten für die Arbeitstage und anderer Uhrzeiten für die Sonn- und Feiertage. Die Codes der zeitlichen Bedingungen können Aufgaben, aber auch Aufgabengruppen zugewiesen werden. Wichtige Hinweise:
Alle betroffenen Tabellen liegen im Supervisor-Ordner, der je nach installiertem Produkt unterschiedlich benannt sein kann: z.B. X3, PAYE oder GX. Diese Tabellen werden also von allen Ordnern gemeinsam benutzt.
Tabelle | Tabellentitel |
ABATABT [ABA] | Batchserver (wiederkehrende Aufgaben) – Kopfzeile |
ABATABTD [ABD] | Batchserver (wiederkehrende Aufgaben) – Zeilen |
ABATCAL [ABC] | Ausschlusskalender |
ABATGRP [ABG] | Batchserver (Gruppen) |
ABATHOR [ABH] | Zeitbeschränkungen |
ABATPAR [ABP] | Batchserverparameter |
ABATRQT [ABR] | Batchserverabfragen |
ABATTAC [ABT] | Batchserver (Aufgaben) |