Plattenformate
Das BS2000 unterstützt Datenträger, die unterschiedlich formatiert sind:
Key-Datenträger für das Abspeichern von Dateien, in denen die Blockkontrollinformation in einem separaten Feld („Pamkey“) pro 2Kbyte-Datenblock steht. Diese Dateien besitzen das Blockformat PAMKEY.
Non-Key-Datenträger für Dateien, in denen keine separaten Pamkey-Felder existieren, sondern die Blockkontrollinformation entweder fehlt (Blockformat NO) oder im jeweiligen Datenblock untergebracht ist (Blockformat DATA).
NK-Datenträger werden nach der Mindestgröße der Übertragungseinheit (Transfer Unit) unterschieden. NK2-Datenträger haben die bisherige Transfer Unit von 2KByte. NK4-Datenträger haben eine Transfer Unit von 4KByte.
Bei Verwendung von NK4-Datenträgern muss gewährleistet sein, dass die Satzlängen einer geradzahligen Blockung entsprechen.
Das Blockformat für eine COBOL-Datei lässt sich mit dem BLOCK-CONTROL-INFO-Operanden des ADD-FILE-LINK-Kommandos bestimmen:
/ADD-FILE-LINK ...,-
/ BLOCK-CONTROL-INFO = BY-PROGRAM / BY-CATALOG / WITHIN-DATA-BLOCK /PAMKEY / NO
Für NK-ISAM-Dateien gibt es zwei weitere Operandenwerte, nämlich:
WITHIN-DATA-2K-BLOCK / WITHIN-DATA-4K-BLOCK
Die ausführliche Beschreibung des BLOCK-CONTROL-INFO-Operanden, der verschiedenen Datei- und Datenträgerstrukturen sowie der Umstellung von K-Dateiformat auf NK-Dateiformat findet sich im Handbuch „Einführung in das DVS“ [4].
Werden im BLOCK-CONTROL-INFO- oder im BUFFER-LENGTH-Operanden des ADD-FILE-LINK-Kommandos Werte angegeben, die im Widerspruch stehen
zum Blockformat der Datei oder
zum Datenträger, auf dem die Datei gespeichert ist, oder
zum erforderlichen Blockungsfaktor,
wird die Dateiverarbeitung erfolglos abgebrochen. Das Laufzeitsystem meldet dies mit dem Ein-/Ausgabe-Status (File Status) 95.
Wird für eine COBOL-Datei kein ADD-FILE-LINK-Kommando verwendet, gilt die vom Systemverwalter zu treffende Voreinstellung im BLKCTRL-Operanden der CLASS2-OPTION.
K-ISAM- und NK-ISAM-Dateien
ISAM-Dateien im K-Format, die die maximale Satzlänge ausnützen, werden im NK-Format länger als der nutzbare Bereich des Datenblocks. Sie können im NK-Format behandelt werden, da das DVS Verlängerungen von Datenblöcken, sog. Überlaufblöcke, bildet.
Die Bildung von Überlaufblöcken bringt folgende Probleme mit sich:
Die Überlaufblöcke erhöhen den Platzbedarf auf der Platte und damit die Zahl der Ein-/Ausgaben während der Dateibearbeitung.
Der ISAM-Schlüssel darf in keinem Fall in einem Überlaufblock liegen.
Überlaufblöcke können vermieden werden, wenn man dafür sorgt, dass der längste Satz der Datei nicht länger ist, als der bei NK-ISAM-Dateien nutzbare Bereich eines logischen Blockes.
In folgender Tabelle wird dargestellt, wie man bei ISAM-Dateien errechnen kann, wieviel Platz pro logischem Block für Datensätze zur Verfügung steht.
Dateiformat | RECORD-FORMAT | maximaler nutzbarer Bereich |
K-ISAM | VARIABLE | BUF-LEN |
FIXED | BUF-LEN - (s*4) wobei s = Anzahl der Sätze pro logischem Block | |
NK-ISAM | VARIABLE | BUF-LEN - (n*16) - 12 - (s*2) wobei n = Blockungsfaktor |
FIXED | BUF-LEN - (n*16) - 12 - (s*2) - (s*4)(auf nächste durch 4 teilbare Zahl abgerundet) wobei n = Blockungsfaktor |
Tabelle 17: Maximal nutzbarer Blockbereich bei ISAM-Dateien
Zur Erläuterung der Formeln:
Bei RECORD-FORMAT=FIXED ist sowohl bei K- als auch bei NK-ISAM-Dateien pro Satz ein 4 Byte langes Satzlängenfeld zwar vorhanden, wird aber nicht zur RECSIZE gerechnet. Deshalb müssen in diesen Fällen pro Satz jeweils 4 Byte abgezogen werden.
Bei NK-ISAM-Dateien enthält jede PAM-Seite eines logischen Blocks jeweils 16 Byte Verwaltungsinformation. Der logische Block enthält zusätzlich weitere 12 Byte Verwaltungsinformation und pro Satz einen 2 Byte langen Satzpointer.
Beispiel 9-5
maximale Satzlänge einer NK-ISAM-Datei (feste Satzlänge)
Dateivereinbarung:
maximale Satzlänge (nach Formel in Tabelle 17): |
K-SAM- und NK-SAM-Dateien
Bei SAM-Dateien gibt es keine Überlaufblöcke. Deshalb können SAM-Dateien im K-Format, die die maximale Satzlänge ausnützen, nicht in NK-SAM-Dateien umgewandelt werden. COBOL-Programme, die mit solchen für K-SAM-Dateien maximalen Satzlängen arbeiten, sind mit NK-SAM-Dateien nicht mehr ablauffähig.
In folgender Tabelle wird dargestellt, wieviel Platz bei SAM-Dateien pro logischem Block für Datensätze zur Verfügung steht.
Dateiformat | RECORD-FORMAT | maximal nutzbarer Bereich |
K-SAM | VARIABLE | BUF-LEN - 4 |
FIXED / UNDEFINED | BUF-LEN | |
NK-SAM | VARIABLE / FIXED / UNDEFINED | BUF-LEN - 16 |
Tabelle 18: Maximal nutzbarer Blockbereich bei SAM-Datei
Der Abzug von 4 Byte bei K-SAM-Dateien mit variabler Satzlänge resultiert daraus, dass die logischen Blöcke solcher Dateien ein Blocklängenfeld dieser Länge enthalten, das nicht zur BUF-LEN gerechnet wird.