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).
Zusätzlich werden NK-Datenträger nach der Mindestgröße der Übertragungseinheit (Transfer Unit) unterschieden. NK2-Datenträger haben eine Transfer Unit von 2KByte. NK4-Datenträger haben eine Transfer Unit von 4KByte.
Das Blockformat wird durch den Operanden BLOCK-CONTROL-INFO des ADD-FILE-LINK-Kommandos gesteuert. 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 „DVS Einführung“.
Wird beim Neuerstellen einer Datei kein ADD-FILE-LINK-Kommando verwendet oder BLOCK-CONTROL-INFO=BY-PROGRAM angegeben, gelten Standardwerte desC-Laufzeitsystems. Diese Werte hängen ab vom Plattentyp, der vom Systemverwalter angebbaren CLASS2-OPTION und von der Zugriffsmethode:
| CLASS2-OPTION BLKCTRL = NONKEY | |||
nicht angegeben | angegeben | |||
K-Platte | NK-Platte | K-Platte | NK-Platte | |
SAM | PAMKEY | DATA | DATA | DATA |
ISAM | PAMKEY | DATA | DATA | DATA |
PAM | PAMKEY | NO | NO | NO |
K- 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 derEin-/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.
Für Datensätze nutzbarer Bereich bei NK-ISAM-Dateien
Die folgende Tabelle stellt dar, 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) | |
NK-ISAM | VARIABLE | BUF-LEN - (n*16) - 12 - (s*2) wobei n = Blockungsfaktor s = Anzahl der Sätze pro logischem Block |
FIXED | BUF-LEN - (n*16) - 12 - (s*2) - (s*4) wobei n = Blockungsfaktor s = Anzahl der Sätze pro logischem Block |
Zur Erläuterung der Formeln:
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.
Bei RECORD-FORMAT=FIXED ist pro Satz ein 4 Byte langes Satzlängenfeld zwar vorhanden, wird aber nicht zur Satzlänge gerechnet. Deshalb müssen in diesen Fällen pro Satz jeweils 4 Byte abgezogen werden.
Beispiel: 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 der Formel :
4096 - (2*16) - 12 - 1*2 - 1*4 = 4046
, abgerundet auf die nächste durch
vier teilbare Zahl:
(byte).4044