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