Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Dateieigenschaften

Um die Lesbarkeit zu wahren, nehmen die folgenden Kurzbeschreibungen ausschließlich Bezug auf die Operanden von FILE- und FCB-Makro. Die adäquaten Operanden des Kommandos werden am Ende dieses Abschnitts in einer Tabelle dargestellt.
Zugriffsmethode und Dateiformat

Die Zugriffsmethode wird mit dem Operanden FCBTYPE festgelegt, ISAM ist Standardwert; in Abhängigkeit vom Operanden BLKCTRL wird die Datei mit NK-ISAM oder mit K-ISAM verarbeitet.

Das Dateiformat (BLKCTRL=DATA/PAMKEY/NO) bezieht sich auf den internen Aufbau der Datei: für NK-ISAM werden die Blockkontrollinformationen in der PAM-Seite selbst geführt (BLKCTRL=DATA), nicht in einem gesonderten PAM-Schlüssel. K-ISAM nützt diesen PAM-Schlüssel: BLKCTRL=PAMKEY. Das Dateiformat BLKCTRL=NO (kein Blockkontrollfeld) entspricht der Angabe BLKCTRL=DATA.

Aufbau einer PAM-Seite

K-ISAM: die Blockkontrollinformationen stehen in einem der PAM-Seite vorangestellten PAM-Schlüssel; die ersten 16 Byte der PAM-Seite enthalten Benutzerdaten.

NK-ISAM: jede PAM-Seite beginnt mit einem 16 Byte langen Blockkontrollfeld, dessen letzte 4 Bytes ISAM-spezifische Informationen enthalten.
Die nutzbare „Länge“ einer PAM-Seite ist demnach 2048 – 16 = 2032 Bytes.

NK2-Dateien: Jede PAM-Seite eines logischen Blocks beginnt mit einem 16 Byte langen Blockkontrollfeld, dessen letzte 4 Byte ISAM-spezifische Informationen enthalten.
Die nutzbare Länge einer PAM-Seite ist 2048-16=2032 Byte.

NK4-Dateien: Jede physikalische Seite (4096 Byte) beginnt mit einem 16 Byte langen Blockkontrollfeld, dessen letzte 4 Byte ISAM-spezifische Informationen enthalten.
Die nutzbare Länge einer solchen Seite ist 4096-16=4080.

Satz- und Blockformate

Mit ISAM können Sätze fester und Sätze variabler Länge verarbeitet werden, definiert über den Operanden RECFORM=F/V. Das Satzformat wirkt sich aus auf die möglichen Definitionen von Satzlänge und Schlüsselposition (siehe Abschnitt „ISAM-Dateistrukturen").

Die Satzlänge wird definiert mit dem Operanden RECSIZE. Bei Sätzen vom Format V ist zu berücksichtigen, dass die ersten 4 Bytes des Satzes für Satzlängenfeld und ein Steuerfeld genutzt werden. Außerdem gibt RECSIZE dann nicht die aktuelle Satzlänge, sondern die maximale Satzlänge an. Gibt es in der Datei Sätze, die länger sind, als in RECSIZE angegeben, wird bei Leseoperationen nur die RECSIZE entsprechende Anzahl Bytes eingelesen.

Bei Sätzen vom Format F steht die gesamte in RECSIZE angegebene Satzlänge für die Benutzerdaten zur Verfügung. Bei der RECSIZE-Definition muss jedoch berücksichtigt werden, dass ISAM intern auch diesen Sätzen ein 4-Byte-Satzlängen- und Steuerfeld voranstellt, was sich auf die Bildung von Überlaufblöcken auswirken kann.

Die maximal zulässige Satzlänge ist immer die Datenblocklänge (BLKSIZE).

Durch den Blockungsfaktor wird im Operanden BLKSIZE festgelegt, aus wie vielen PAM-Seiten die Datenblöcke bestehen sollen:

BLKSIZE=(STD,n), 1 <= n <= 16.

Die Blockgröße sollte immer – zusammen mit der Satzlänge – so gewählt werden, dass keine Überlaufblöcke entstehen, da dies zu Performanceverlusten führt.

Index-Aufbau

Der ISAM-Index wird gebildet aus ISAM-Schlüssel und Markierungen (Flags), er kann an beliebiger Stelle im Datensatz liegen, darf jedoch nicht in einen Überlaufblock hineinragen. Die maximale Indexlänge ist 255 Bytes, die minimale Schlüssellänge ein Byte. Markierungen werden mithilfe des GETFL-Makroaufrufs ausgewertet.

Der ISAM-Index beginnt immer mit dem Schlüssel, die Anfangsposition wird definiert durch den Operanden KEYPOS. Die Voreinstellungen für KEYPOS berücksichtigen das Satzformat: KEYPOS=5 für RECFORM=V, KEYPOS=1 für RECFORM=F. Die Schlüssellänge wird über KEYLEN definiert, standardmäßig erzeugt das DVS 8 Byte lange Schlüssel.

Für die Flags sind die Operanden VALLEN und LOGLEN relevant, der Operand VALPROP hat bei NK-ISAM keine Funktion mehr, er wird noch aus Kompatibilitätsgründen unterstützt, da er bei K-ISAM die Aufnahme der Wertmarkierung in den Indexeintrag steuert.

Die folgende Tabelle stellt die oben genannten Operanden der Makros FILE und FCB den Operanden des Kommandos ADD-FILE-LINK gegenüber.

Operand in den Makros FILE und FCB

Operand im Kommando ADD-FILE-LINK

FCBTYPE

ACCESS-METHOD

BLKCTRL=DATA/PAMKEY/NO

BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK / *PAMKEY / *NO

RECFORM=F/V

RECORD-FORMAT=*FIXED / *VARIABLE

RECSIZE

RECORD-SIZE

BLKSIZE

BUFFER-LENGTH

KEYPOS

KEY-POSITION

VALLEN

VALUE-FLAG-LENGTH

LOGLEN

LOGICAL-FLAG-LENGTH

VALPROP

PROPAGATE-VALUE-FLAG

Tabelle 55: ISAM-Operanden in FILE/FCB und ADD-FILE-LINK