Beachten Sie bitte, dass die Zieldatei in der Regel nicht während der ganzen Zeit der Auftragsbearbeitung gegen das Überschreiben durch andere Benutzer geschützt ist. Wird die Übertragung z.B. unterbrochen, dann können eventuell andere Benutzer schreibend auf die Zieldatei zugreifen. Der Zugriffsschutz ist bei den einzelnen Systemen unterschiedlich:
BS2000-Systeme
Bei openFT (BS2000) wird eine Dateisperre verwendet, die die Dateien auch bei Übertragungsunterbrechungen und zwischen Auftragsannahme und Auftragsabarbeitung schützt. Dieser Schutz gilt nicht für Bibliothekselemente und POSIX-Dateien.
Die Übertragungsdateien werden bei Annahme eines Auftrags mittels eines Dateilocks gesperrt. Sendedateien können dann von anderen Zugreifern noch gelesen werden, für Empfangsdateien ist jeder Zugriff verboten. Das BS2000-Kommando SHOW-FILE-LOCK zeigt, ob eine Datei durch openFT gesperrt ist, und listet die betroffenen Transfer-ID’s auf. Der Dateilock wird beim Entladen des Subsystems entfernt.
Die Arbeitsweise von openFT bedingt, dass eine schon vorhandene Empfangsdatei nur überschrieben werden kann, wenn für diese Datei sowohl Lese- als auch Schreibberechtigung gegeben ist. Für den Dateizugriff müssen auch die Festlegungen der ACL (Access Control List) bzw. BASIC-ACL erfüllt sein.
Unter welchen Bedingungen der FT-Benutzer auf eine BS2000-Datei zugreifen kann, zeigt die folgende Tabelle:
Zugriffsart | Bedingungen für den Dateizugriff |
Lesen einer Sendedatei |
|
Überschreiben einer bereits |
|
z/OS-Systeme
openFT (z/OS) sperrt die Sende- und Empfangsdatei nur dann gegen simultane (Schreib-)Zugriffe, wenn tatsächlich Daten übertragen werden, d.h wenn sich der Auftrag im Zustand ACTIVE befindet. Die Sende- und die Empfangsdatei sind demnach nicht gesperrt, wenn die Dateiübertragung noch nicht begonnen hat oder gerade unterbrochen ist.
Falls openFT auf eine Sende- oder Empfangsdatei zuzugreifen versucht, die gesperrt ist (z.B. weil schon ein anderer FT-Auftrag darauf zugreift), dann wird der FT-Auftrag abgelehnt oder abgebrochen.
Bei einem Member eines PO- oder PDSE-Datasets bedeutet das:
Wenn ein Member eines PO- oder PDSE-Datasets gelesen werden soll (Sendedatei), so darf zum Zeitpunkt der Auftragserteilung kein anderes Member desselben Datasets anderweitig zum Schreiben oder exklusiv zum Lesen geöffnet sein oder vor dem Ende der Dateiübertragung geöffnet werden.
Wenn ein Member eines PO- oder PDSE-Datasets geschrieben werden soll (Empfangsdatei), so darf weder ein anderes Member desselben Datasets noch das Dataset selbst zum Zeitpunkt der Auftragserteilung anderweitig geöffnet sein oder vor dem Ende der Dateiübertragung geöffnet werden. In diesem Fall (Empfangsdatei) führt unter Umständen schon das Anzeigen der Member-Liste (z.B. beim Anstoßen eines Sendeauftrags über die Menüschnittstelle, siehe Handbuch "openFT (z/OS) - Kommandoschnittstelle", oder allgemein die Verwendung der PDF-Funktion "member list") zum Abbruch des FT-Auftrags.
Beim Abbruch eines FT-Auftrags wegen Zugriffsversuchs auf eine gesperrte Datei wird eine Fehlermeldung ausgegeben.
Andere Systeme
In anderen Systemen, beispielsweise Windows- und Unix-Systemen oder auch im BS2000, wenn es sich um POSIX-Dateien oder Bibliothekselemente handelt, muss der Benutzer selbst den exklusiven Zugriff auf seine zu übertragenden Dateien garantieren. In diesen Systemen kann auch während der Übertragung die Datei nicht exklusiv von openFT belegt werden.
Der Benutzer muss daher selbst sicherstellen, dass die zu übertragende Datei während der gesamten Dauer des FT-Auftrags konsistent ist (Daten und Attribute der Datei). Das gilt sowohl für die Sendedatei als auch für die Empfangsdatei. Die Gefahr eventueller Inkonsistenzen durch Mehrfachzugriffe kann beispielsweise durch Zugriffseinschränkungen verringert werden (Kommando chmod in Unix-Systemen). Außerdem besteht die Möglichkeit, die Datei auf einen anderen Namen bzw. in ein temporäres Verzeichnis zu transferieren und erst nach erfolgreicher Dateiübertragung mit Hilfe der Folgeverarbeitung umzubenennen bzw. in ein anderes Verzeichnis zu verschieben.