Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SAM - Sequential Access Method

Mit der Zugriffsmethode SAM werden Dateien sequenziell verarbeitet. Eingeschlossen ist das Aufsuchen eines Satzes, Aktualisieren des Satzes sowie das Rückschreiben in die Datei.

Da SAM eine satzorientierte Zugriffsmethode ist, übernimmt es für den Benutzer das Blocken, Entblocken und Puffern der Sätze. Wenn im Benutzerprogramm zwei Ein-/Ausgabebereiche zur Verfügung stehen, kann Wechselpufferbetrieb genutzt werden; bei nur einem Ein-/Ausgabebereich findet keine überlappende Verarbeitung statt.

Die Zugriffsmethode SAM arbeitet überwiegend geräteunabhängig und gestattet die Verarbeitung von Dateien auf Platten und Bändern; Magnetbandkassetten werden weitgehend wie Magnetbänder behandelt.

Blockformate

Mit der Zugriffsmethode SAM können Dateien unterschiedlicher Blockformate verarbeitet werden (siehe auch Abschnitt „Blockformate für Plattendateien" und Abschnitt „Blockformate für Banddateien"). Mit dem Operanden BLKCTRL in den Makros FILE und FCB bzw. dem Operanden BLOCK-CONTROL-INFO im Kommando ADD-FILE-LINK kann gewählt werden, ob eine K- oder eine NK-Datei verarbeitet werden soll:

  • BLKCTRL=PAMKEY bzw. BLOCK-CONTROL-INFO=*PAMKEY vereinbart eine K-SAM-Datei

    K-SAM-Dateien (Key-SAM-Dateien) haben das herkömmliche Blockformat „PAMKEY“: Sie sind dadurch gekennzeichnet, dass für jede PAM-Seite DVS-Verwaltungsinformation in einem eigenen (außerhalb der Seite gelegenen) PAM-Schlüssel geführt wird.

  • BLKCTRL=DATA/NO bzw. BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK/*NO legt eine NK-SAM-Datei fest

    NK-SAM-Dateien (Nonkey-SAM-Dateien) haben das Blockformat „DATA“ oder „NO“: Sie enthalten keine gesonderten PAM-Schlüssel. Beim Blockformat „DATA“ wird die DVS-Verwaltungsinformation innerhalb der PAM-Seite in einem Blockkontrollfeld hinterlegt.
    Das Blockformat „NO“ existiert bei SAM nur für Banddateien. Im Blockformat „NO“ werden blockspezifische Verwaltungsinformationen nicht unterstützt.

Hinsichtlich des Funktionsumfanges gibt es keine Unterschiede zwischen K- und NK-SAM-Dateien. Bei der Planung von Dateien muss jedoch berücksichtigt werden, dass bei NK-SAM-Dateien ein Teil des Logischen Blockes für das Blockkontrollfeld benötigt wird und daher für Benutzerdaten nicht zur Verfügung steht (Näheres siehe in den folgenden Abschnitt „Logischer Block einer K-SAM-Datei" und Abschnitt „Logischer Block einer NK-SAM-Datei").

SAM-Funktionen

Mit SAM lassen sich Dateien im Übertragungsbetrieb und im Ortungsbetrieb verarbeiten. Im Übertragungsbetrieb übernimmt das System die Übertragung der Datensätze zwischen Puffern und Benutzer-Ein-/Ausgabebereich, im Ortungsbetrieb werden die Sätze direkt im Ein-/Ausgabepuffer bearbeitet, der Benutzer ist für die korrekte Adressierung seiner Datensätze selbst verantwortlich. Im Ortungsbetrieb ist über die Wiedergewinnungsadresse, die das DVS bei Dateierstellung im FCB führt, ein direkter Zugriff möglich (siehe Abschnitt „Wiedergewinnungsadresse").

Für die Dateibearbeitung mit SAM gibt es die folgenden Aktionsmakroaufrufe:

Makro

Kurzbeschreibung

GET

Sequenziell lesen; die Sätze werden nacheinander bereitgestellt, SAM „erwartet“, dass die Sätze in der Folge benötigt werden, in der sie geschrieben wurden.

PUT

Sequenziell schreiben: Im Übertragungsbetrieb führen die logischen Routinen der Zugriffsmethode das Blocken der Sätze durch, sodass die Ausgabe auf den Datenträger solange verzögert wird, bis der Ausgabepuffer gefüllt ist; die Puffer werden vom System automatisch bedient. Im Ortungsbetrieb muss der Benutzer selbst für das Blocken sorgen.

PUTX

Einen aktualisierten Satz zurückschreiben (nur im Ortungsbetrieb bei Plattendateien).

RELSE

Schließt einen Datenblock ab, d.h. für Eingabedateien: beim nächsten GET wird der nächste Datenblock eingelesen; für Ausgabedateien: beim nächsten PUT wird der Pufferinhalt als Datenblock geschrieben, der nächste Satz wird zum ersten Satz im neuen Datenblock. (Dies ist im Ortungsbetrieb nötig, wenn der folgende Satz nicht mehr in den aktuellen Puffer passt).

SETL

In der Datei auf einen bestimmten Block und bestimmten Satz darin positionieren.

FEOV

Für Banddateien: Bandwechsel auslösen.

Tabelle 62: Aktionsmakros für SAM-Dateibearbeitung

Werden Dateien als Ausgabedateien eröffnet (OPEN OUTPUT/EXTEND), interpretiert
SAM jeden PUT- oder SETL-Makroaufruf als „EOF-Anzeige“. Der letzte PUT oder SETL vor einem CLOSE zeigt dem System somit automatisch das Dateiende an. Sollen ab einem bestimmten Satz alle folgenden Sätze gelöscht werden, kann mit dem SETL-Makroaufruf auf den gewünschten Punkt in der Datei positioniert und anschließend die Datei mit CLOSE geschlossen werden.

Für den Direktzugriff wird dem Benutzer eine Wiedergewinnungsadresse bereitgestellt. Das Format dieser Wiedergewinnungsadresse ist ausführlich im Abschnitt „Wiedergewinnungsadresse" beschrieben. Beim Schreiben eines Satzes wird seine Wiedergewinnungsadresse im FCB bereitgestellt.
Der Benutzer kann, falls er es wünscht, aus den Daten der Wiedergewinnungsadresse eine neue Datei aufbauen und hierbei eine Grundlage für anschließende nicht-sequenzielle Verarbeitung der Datei schaffen, die gerade erstellt wird. Nach der Ausführung eines GET-Makroaufrufs wird diese Wiedergewinnungsadresse ebenfalls im FCB bereitgestellt. Auch hier kann der Benutzer- falls er seine Datei nicht selbst erstellt hat- eine zweite Datei aus den Wiedergewinnungsadressen aufbauen, um eine anschließende nichtsequenzielle Verarbeitung der Datei durchzuführen.

Wird im Übertragungsbetrieb mit zwei Ausgabepuffern beim Schreiben eines Datenblockes für eine Banddatei das physikalische Bandende erkannt, so wird der andere Puffer (der nur einen Satz enthält) noch auf das alte Band geschrieben. Erst dann wird der Bandwechsel eingeleitet.

Soll eine Datei im Ortungsbetrieb erstellt werden (OPEN OUTPUT/EXTEND), erhalten Sie nach Abschluss des OPEN in dem Register, das Sie im FCB-Operanden IOREG angegeben haben, die Anfangsadresse des ersten zu schreibenden Satzes. Nach Ausführung des PUT-Makroaufrufs enthält das IOREG-Register die Anfangsadresse des nächsthöheren Satzes.
Bei einer Datei mit Sätzen variabler Länge (RECFORM=V) erhalten Sie außerdem immer die Zahl der noch freien Byte im aktuellen Block: Sie wird in dem Register übergeben, das der Aufrufer im Operanden VARBLD des FCB-Makros angegeben hat.