Wie im letzten Abschnitt dargestellt, erfordert der rechnerübergreifende Dateizugriff stets die Synchronisation der Dateieröffnung (OPEN/CLOSE). Bei rechnerübergreifendem Shared Update ist darüber hinaus eine Synchronisation beim Dateizugriff (Lesen und Schreiben von Blöcken bzw. Sätzen) erforderlich.
Während die rechnerübergreifende OPEN-Koordinierung im Rahmen des Shared-Pubset-Verbunds durchgeführt werden kann, stehen Mechanismen zur rechnerübergreifenden Synchronisation der Dateizugriffe nur im XCS-Verbund zur Verfügung. Eine rechnerübergreifende Simultanaktualisierung ist deshalb auch nur in dieser Umgebung möglich.
Synchronisation der Dateieröffnung
Beim Eröffnen einer Datei wird (u.a.) die gewünschte Parallelität bei der Dateibearbeitung festgelegt. Folgende Angaben sind hierfür erforderlich:
OPEN-Modus:
Festlegen, welche Dateizugriffe zulässig sind (z.B. „INPUT“ für ausschließlich lesende Zugriffe, „OUTPUT“ für das Erstellen einer neuen Datei und beliebige Bearbeitung).Shared-Update-Modus:
Festlegen, ob Parallelverarbeitung zulässig ist (z.B. „SHARUPD=YES“ für beliebige parallele Dateiöffnung)LOCK-ENVIRONMENT
Festlegen, ob bei der Dateiöffnung eine Umgebung aufgebaut wird, die eine rechnerübergreifende Simultanaktualisierung der Datei erlaubt.Beispiel
Kommando ADD-FILE-LINK (bzw. SET-FILE-LINK),
Operand LOCK-ENVIRONMENT=*HOST-SYSTEM:
Beim OPEN wird die Umgebung für rechnerlokale Verarbeitung hergestellt.Kommando ADD-FILE-LINK (bzw. SET-FILE-LINK),
Operand LOCK-ENVIRONMENT=*XCS:
Beim OPEN wird die Umgebung für rechnerübergreifende Verarbeitung hergestellt.
Die rechnerübergreifende Verarbeitung wird, wie bereits dargelegt, durch die Angabe beim Operanden LOCK-ENVIRONMENT gesteuert. Dabei ist zu beachten, dass eine Datei von mehreren Rechnern aus nur dann parallel geändert werden kann, wenn die Rechner dem gleichen XCS-Verbund angehören.
Auf Rechnern, die keinem XCS-Verbund angehören, wird die Angabe LOCK-ENVIRONMENT=*XCS so behandelt, als ob für diesen Operanden *HOST-SYSTEM festgelegt worden wäre.
Eine rechnerübergreifende Dateiaktualisierung ist nur über die Zugriffsmethoden UPAM, FASTPAM und DIV möglich.
Synchronisation beim Dateizugriff
Bei der Simultanaktualisierung von Elementen einer Datei (bei UPAM und FASTPAM handelt es sich um logische Blöcke, bei DIV um Dateiabschnitte) muss ein Synchronisationsmechanismus zur Verfügung stehen, der konkurrierende Zugriffe koordiniert. Für die rechnerübergreifende Dateiaktualisierung ist dies im XCS-Verbund der Distributed Lock Manager. Er kann (oder muss) entweder explizit auf der Ebene des Benutzerprogramms zur Realisierung von Blocksperren bzw. zur Sperrung von Dateiabschnitten herangezogen werden oder er wird (im Falle der Zugriffsmethoden UPAM und zum Teil auch DIV) auf Betriebssystemebene zur Zugriffskoordinierung eingesetzt. Im Folgenden wird für die einzelnen Zugriffsmethoden aufgeführt, was für eine globale Dateiaktualisierung vom Benutzer an Programmieraufwand (Anpassung im Benutzerprogramm) zu erbringen ist und welche Leistungen das Betriebssystem zur Verfügung stellt. Zu den Zugriffsmethoden siehe Handbücher „Einführung in das DVS“ [4] und „DVS-Makros“ [3].
UPAM
Die UPAM-Schnittstelle bietet neben synchronen und asynchronen Lese- und Schreibzugriffen auch die Funktionalität „Setzen/Rücksetzen von exklusiven Blocksperren“. Bei einer Dateiöffnung für eine XCS-weite Dateiaktualisierung wirken die von UPAM realisierten Sperren verbundweit.
Ein Anwendungsprogramm, das parallele Zugriffe auf PAM-Dateien mit UPAM-Sperren koordiniert, kann also grundsätzlich ohne Neuprogrammierung auch XCS-weit eingesetzt werden; lediglich eine Erweiterung der JCL ist erforderlich. Beispielsweise müsste im Kommando ADD-FILE-LINK der Operand LOCK-ENVIRONMENT hinzugefügt werden (der verbundweite Zugriff kann natürlich auch über die Programmschnittstelle gesteuert werden).
FASTPAM
Im Gegensatz zu UPAM bietet FASTPAM keine Sperrfunktion. Die Koordinierung der Blockzugriffe muss auf der Ebene des Benutzerprogramms über einen geeigneten Sperrmechanismus erfolgen; im XCS-Verbund steht hierfür die DLM-Schnittstelle zur Verfügung (die DLM-Schnittstelle kann zur Koordinierung eines nur rechnerlokalen parallelen Dateizugriffs ebenfalls eingesetzt werden).
DIV
Im Wesentlichen gilt für DIV sinngemäß das Gleiche wie für FASTPAM: Die Koordination von Zugriffen auf Dateiabschnitte (über Fenster im virtuellen Adressraum) ist Sache der Anwendung; im XCS-Verbund ist DLM die hierfür geeignete Schnittstelle. DIV bietet als speziellen Modus der Abbildung von Dateiabschnitten in Adressraumfenster die Einstellung LOCVIEW=MAP; hier wird garantiert, dass der Fensterinhalt konsistent dem Dateiinhalt zum Zeitpunkt des Fensteraufbaus entspricht. Die hierfür notwendige Koordinierung zwischen Einlesen des entsprechenden Inhalts und schreibenden Dateizugriffen wird XCS-weit von der Zugriffsmethode DIV vorgenommen.