Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

NK4-Format

Zur Unterstützung von NK4-Datenträgern wird das Blockformat NK4-ISAM eingeführt:

Ein logischer Datenblock besteht aus einer Folge von 4-KB-Blöcken; diese entsprechen der Transporteinheit für NK4-Datenträger. Jeder 4-KB-Block beginnt mit einem Blockkontrollfeld, das aus einem 12 Byte langen allgemeinen Teil und aus einem 4 Byte langen ISAM-spezifischen Teil besteht.

Ein Datenblock besteht aus einer Folge von mindestens einem bis zu maximal acht 4-KB-Blöcken. Die Größe des logischen Datenblöcks wird durch eine Angabe im FCB- oder FILE-Makro oder im Kommando ADD-FILE-LINK gesteuert. Der Aufbau eines NK4-ISAM-Datenblocks entspricht dem eines NK2-ISAM-Datenblocks. Die Adressierung der Sätze und die Verwaltung des freien Platzes erfolgt über den Blocktrailer.

maximale Satzlänge / nutzbare Blocklänge

Die Bruttolänge eines NK4-Datenblocks ist nicht voll für Sätze des Benutzers nutzbar, da für jede 4-KB-Seite des Blocks 16 Byte durch das System für das Blockkontrollfeld genutzt werden; weitere 16 Byte pro Block sind für den Blocktrailer vorzusehen. Die effektive Nutzlänge eines NK4-Datenblocks einer Datei mit der Blockgröße (STD,n) mit n gerade ist daher:

  • die maximal zulässige Satzlänge ergibt sich aus der Blocklängen-Angabe
    (Kommando ADD-FILE-LINK, Operand BUFFER-LENGTH; Makro FILE, Operand BLKSIZE): n * 2048, n = 2, 4, 6, 8

  • die nutzbare Blocklänge reduziert sich um den für Verwaltungsinformationen und Zeitstempel benötigten Bereich
    (Für jeden 4-KB-Block des logischen Blocks werden 16 Byte durch das System für das Blockkontrollfeld genutzt; weitere 16 Byte pro Block sind für den Blocktrailer vorzusehen).

  • da ISAM intern allen Datensätzen ein 4-Byte-Feld mit der Satzlänge voranstellt, reduziert sich bei Sätzen mit RECFORM=F die nutzbare Blocklänge noch einmal um 4 Byte (jeder Datenblock muss mindestens einen Satz enthalten).

Da die maximale Satzlänge aus Kompatibilitätsgründen mit der K-Welt der o.a. logischen Blockgröße (und nicht der effektive Blocklänge) entspricht, kann die Länge eines Satzes die effektive Blockgröße übersteigen. In diesem Fall wird ein zu dem Datenblock gehöriger Überlaufblock angelegt. Der Teil eines Satzes, der nicht im Datenblock untergebracht werden kann, wird in einem 4 KB großen Überlaufblock abgelegt. Die Lage eines Schlüssels und seine Länge unterliegen den gleichen Beschränkungen wie beim NK2-ISAM-Format; d.h. er darf weder im NK4- noch im NK2-ISAM-Format ganz oder teilweise im Überlaufblock liegen.

Indexdatenblöcke bestehen aus mindestens einem und maximal acht 4-KB-Blöcken, wobei die Blockgröße der des Datenblocks entspricht.

Indexblöcke bestehen aus genau einem 4-KB-Block. Die Indexinformation ist zweistufig in Sections und Entries strukturiert, wobei die Länge einer Section der neuen Indexblockgröße von 4 KB angepasst ist.

Der Kontrollblock ist der erste Block einer ISAM-Datei. Er besteht aus genau einem 4-KB-Block. Er hat das gleiche Layout wie im NK2-Format. Der 2 KB übersteigende Platz wird nicht verwendet.

Freie Blöcke, die aus Daten- oder Indexdatenblöcken entstanden sind, bestehen aus mindestens einer und höchstens acht 4-KB-Blöcken. Freie Blöcke, die aus Index- oder Überlaufblöcken entstanden sind, bestehen aus genau einem 4-KB-Block.

Eine NK4-ISAM-Datei muss mit einem geradzahligen Blockungsfaktor angelegt werden. Sie kann folgendermaßen erstellt werden:

  • automatisch, falls die Datei auf einer NK4-Platte (NK4-PVS) liegt

  • wenn der Benutzer dies explizit angegeben hat (Kommando ADD-FILE-LINK ...,BLOCK-CONTROL-INFO=WITHIN-DATA-4K-BLOCK; Makro FILE/FCB ...,BLKCTRL=DATA4K)

Zu dem Thema Pufferung von NK4-ISAM-Dateien in ISAM-Pools siehe Abschnitt „NK4-ISAM-Dateien in ISAM-Pools".