Zusammenarbeit von Programmen im Dialog- und Batch-Betrieb:

100 Prozent Aktualität für die Teilnehmer

03.06.1977

Bei der Realisierung großer DV-Systeme stellt sich oft die Aufgabe, Dialog- und Batch-Verarbeitung synchron zu halten: Batch- und Dialog-Programme für die gleichen Funktionen müssen auf den gleichen Dateien verfügbar sein. Dabei sollen dann die für die weitere Verarbeitung erforderlichen Bedingungen berücksichtigt werden.

Im folgenden werden am Beispiel einer Stücklisten-Verwaltung die Probleme dargestellt, die sich aus einer derartigen Aufgabenstellung ergeben können. Gleichzeitig wird eine bereits realisierte Lösung beschrieben.

Bei der Gestaltung des Gesamtsystems sind diese Bedingungen einzuhalten:

- Der Batch-Betrieb muß neben dem Dialog-Betrieb erhalten bleiben,

- weil ein Teil der Anwender aufgrund geografischer Bedingungen nicht am Dialog-Betrieb teilnehmen kann,

- weil bei der Erfassung großer Datenmengen der Weg über den Batch-Betrieb einfacher ist;

- Batch- und Dialog-Betrieb müssen die gleichen Funktionen beinhalten;

- Aus dem Änderungsdienst müssen Banddateien erzeugt werden, die von anderen Programmen benötigt werden, aber insgesamt nur im Batch-Betrieb arbeiten und keinen direkten Zugriff auf die Stücklisten-Dateien haben;

- Um eine maximale Aktualität der Daten zu erreichen, soll auch während des Dialogs ein Updating erfolgen (nicht erst im Batch-Betrieb);

- Der Batch-Betrieb erfolgt periodisch, jedoch nicht täglich (in Abhängigkeit von dem vorliegenden Datenvolumen und der erforderlichen Aktualität); der Dialog-Betrieb hingegen findet täglich statt;

- Die zur Verfügung stehende Speicherorganisation ist eine Verknüpfung aus ISAM-Dateien mit sequentiellen Dateien, für die aber ein eigener Zugriffs-Mechanismus existiert;

- Der Datenbestand ist sehr groß (zirka 600 Mio-Bytes);

- Zwischen den einzelnen Dialog-Benutzern ist ein begrenzter Datenschutz erforderlich;

- Für den Dialogbetrieb wird eine sehr hohe Datensicherheit, verbunden mit einer sehr schnellen Restart-Möglichkeit, benötigt.

Unter Berücksichtigung dieser Bedingungen wurde folgende Lösung realisiert:

Der gesamte Datenbestand ist in einer "Hauptdatei" gespeichert. Neben dieser Hauptdatei wird eine "Arbeitsdatei" geführt. Diese Arbeitsdatei ist in ihrer Organisation und Struktur mit der Hauptdatei völlig identisch. Die gesamte Verarbeitung ist stücklistenorientiert; einzelne Transaktionen beziehen sich also immer auf eine komplette Stückliste. Die eigentliche Verarbeitung erfolgt während des Dialogs in der Arbeitsdatei. Dazu muß jede zu bearbeitende Stückliste in der Arbeitsdatei verfügbar sein und unter Umständen aus der Hauptdatei in die Arbeitsdatei übertragen werden. Während der stücklistenorientierten Verarbeitung bezieht sich auch der Datenschutz der Terminals untereinander auf eine Stückliste, so daß nur für die Zeit, in der eine Stückliste vom Terminal aus bearbeitet wird, sie für die Änderung durch andere Anwender gesperrt ist. Jede einmal bearbeitete Liste bleibt bis zur nächsten Batch-Verarbeitung in der Arbeitsdatei stehen, wo sie natürlich noch beliebig oft verändert werden kann.

Bei jedem Batch-Lauf wird zuerst der Inhalt der Arbeitsdatei in die Hauptdatei übertragen. Gleichzeitig werden die zu diesen Daten gehörenden Banddateien erzeugt oder Protokolle gedruckt. Anschließend kann die normale Batch-Verarbeitung erfolgen, da die Hauptdatei durch das Überspielen der Arbeitsdatei auf den neuesten Stand gebracht wurde.

Zur Lösung dieses Problems gibt es zwei Möglichkeiten:

- Während des Dialogs müssen alle betroffenen ISAM-Dateien (nach Prüfung des Overflow-Counter) reorganisiert werden, was dann aber für die Zeit des Reorganisierens zu einer Unterbrechung des Dialog-Betriebs führt.

- Beim Löschen (eigentlich Laden) der Arbeitsdatei werden mehrere Pseudo-Stücklisten in die Datei geschrieben, und zwar mit solchen Ordnungsbegriffen, daß damit die Datei "quasi"-vorformatiert wird, wodurch das Problem auch nicht grundsätzlich gelöst wird, weil nicht vorhersehbar ist, wo die nächsten Überlaufbereiche auftreten werden. Die Arbeitsdatei komplett vorzuformatieren, ist wegen der mit dem Updating verbundenen Problematik der Verwaltung der Ordnungsbegriffe nicht realisierbar.

Für Arbeiten, die nicht im gleichen Zyklus laufen wie der Batch-Änderungsdienst, und die die Arbeitsdatei nicht zur Verfügung haben, ergibt sich ein gewisser Informationsschlupf (der wiederum vom Zyklus der Batch-Verwaltung abhängt).

Mit der geschilderten Lösung wurde bei minimalem Aufwand für Datei- Sicherung und Restart (die normale Datei-Sicherung für die Hauptdatei ist - unabhängig vom Dialog-Betrieb - auf jeden Fall erforderlich) bei gutem Antwortzeitverhalten eine 100prozentige Aktualität für alle Dialog- und Batch-Teilnehmer erreicht.

*Mitarbeiter der GfS Gesellschaft für Systementwicklung, München/Köln

Arbeitsdatei

Vorteile

Das gesamte Updating im Dialog kann in der Arbeitsdatei erfolgen, weil nur sie im Update-Modus eröffnet ist (die Hauptdatei ist im Lese-Modus offen).

Durch das echte Updating in der Arbeitsdatei stehen jedem Anwender praktisch alle Stücklisten in ihrem neuesten Änderungsstand zur Verfügung.

Für sehr lange laufende Transaktionen können mit dem Dialog Anforderungen für den Batch-Lauf hinterlegt werden.

Das gesamte Dateisicherungs- und Restart-Verfahren braucht bezüglich des Dialogs nur die sehr kleine Arbeitsdatei zu berücksichtigen.

Dem Anwender kann auf relativ einfache (programmtechnische) Weise eine Funktion "Irrung" geboten werden, bei der alle diese Transaktionausgeführten Änderungen an einer Stückliste annulliert werden.

Nachteile

Das Übertragen der Stückliste aus der Haupt- in die Arbeitsdatei ist wegen des Zeitverhalters des Dialogs kritisch.

Das Halten der Stücklisten in der Arbeitsdatei erfordert, daß trotz möglicher weiterer Änderungen dieser Stückliste die für das Führen der Banddateien erforderlichen Daten in der Arbeitsdatei erhalten bleiben.

Nach dem Übertragen der Stückliste aus der Arbeitsdatei in die Hauptdatei muß die Arbeitsdatei gelöscht werden, was am einfachsten durch ein Laden mit einer Pseudo-Stückliste erfolgt, da es ja einen eigentlichen Ladelauf für die Arbeitsdatei nicht gibt. Daraus ergibt sich, daß nach kurzem Dialog-Betrieb auf eine leere Arbeitsdatei das Verwalten der ISAM-Überlaufbereiche zu unvertretbar großen Antwortzeiten führt.