Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Platten- und Dateiformate

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)
(auf nächste durch 4 teilbare Zahl abgerundet)

wobei n = Blockungsfaktor
s = Anzahl der Sätze pro logischem Block

FIXED

BUF-LEN - (n*16) - 12 - (s*2) - (s*4)(auf nächste durch 4 teilbare Zahl abgerundet)

wobei n = Blockungsfaktor
s = Anzahl der Sätze pro logischem Block

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:

/ADD-FILE-LINK ...,RECORD-FORMAT=FIXED,BUFFER-LENGTH=STD(SIZE=2), -
/                                          BLOCK-CONTROL-INFO=WITHIN-DATA-BLOCK

maximale Satzlänge (nach Formel in Tabelle 17):
4096 - (2*16) - 12 - 1*2 - 1*4 = 4046,
abgerundet auf die nächste durch vier teilbare Zahl: 4044 (Byte).

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.