Neue Plattenformate, insbesondere das Non-Key-Format (NK-Format), wurden eingeführt um die Speicherkapazität und die Transferraten der Plattenspeicher zu erhöhen. Eine NK-Platte wird ohne PAM-Schlüssel formatiert. Für die Nutzung von NK-Platten müssen Dateien mit PAM-Schlüssel in Dateien ohne PAM-Schlüssel konvertiert werden (PAM-key-Eliminierung).
In BS2000 werden nur noch Platten mit fester Blockgröße (2 KByte, 4 KByte...) bedient. Diese festen Blockgrößen verhindern die einfache Unterbringung der PAM-Schlüssel (PAM key). Aus diesem Grund ist der PAM-Schlüssel entfallen.
Für SAM-, ISAM- und UPAM-Dateien gibt es zwei unterschiedliche Dateiformate auf Platte: das Format mit PAM-Schlüssel (kurz K) und das Format ohne PAM-Schlüssel (kurz NK2 und NK4).
Das Dateiformat wird durch den BLKCTRL-Wert festgelegt. BLKCTRL kann den Wert PAMKEY, DATA, DATA2K, DATA4K oder NO annehmen. Einzelheiten zu den Dateiformaten siehe Handbuch „Einführung in das DVS“ [4].
Bibliotheksdateien
Die Unterscheidung zwischen K und NK ist zunächst eine DVS bedingte Unterscheidung. Sie überträgt sich wie folgt auf die interne Dateiorganisation der Bibliothek:
Der PAM-Schlüssel ist nicht notwendig. Dateiseitig ergibt sich dennoch eine Unterscheidung, die durch das Dateiattribut BLKCTRL repräsentiert wird.
Bibliotheken brauchen bei der Migration zwischen K-Welt und NK-Welt nicht mit PAMCONV umgesetzt zu werden.
Elementverarbeitung
Das nachfolgende Bild zeigt einen Überblick über die möglichen Situationen beim Transfer von Daten zwischen Datei und Bibliothekselementen. Für die Elemente sind die logischen Informationseinheiten aufgeführt; für die Dateien ist der BLKCTRL-Wert angegeben. Die Pfeile beschreiben die Transfer-Richtung.
Verhalten bei der ADD-ELEMENT-Anweisung
Über die ADD-ELEMENT-Anweisung werden Datei-Inhalte in Elemente abgelegt. Im Einzelnen gilt für:
SAM/ISAM-Dateien
Bei Aufnahme von SAM- und ISAM-Dateien wird der BLKCTRL-Wert mit abgespeichert, wenn SOURCE-ATTRIBUTES=*KEEP gesetzt ist, d.h. die ursprüngliche, vom BLKCTRL-Wert geprägte Blockstruktur der Datei wird im Attributsatz dokumentiert.
Die Daten werden über die logische Zugriffsmethode SAM/ISAM gelesen (Einzelsätze) und unverändert ins Element geschrieben (als Sätze variablen Formates).
Die erzeugte Elementstruktur ist unabhängig von der ursprünglichen BLKCTRL-Eigenschaft.
PAM-Dateien
Bei Aufnahme von PAM-Dateien wird der BLKCTRL-Wert generell mit abgespeichert. Die Blöcke der Datei werden über die Zugriffsmethode UPAM gelesen und unverändert als Block im Element gespeichert. Sind PAM-Schlüssel vorhanden, d.h. BLKCTRL=PAMKEY, so werden diese PAM-Schlüssel beim Element abgelegt.
Das erzeugte Element behält somit die vom BLKCTRL-Wert geprägte Blockstruktur bei.
Phasen
Bei Aufnahme von Phasen wird der BLKCTRL-Wert nicht abgespeichert. Die entsprechende Formatangabe ist in der Phaseninformation auf Datei hinterlegt. In der Bibliothek haben K-Phasen und NK-Phasen gleiches Format. Die PAM-Schlüssel-Informationen sind in Deskriptoren abgelegt.
ADD datei > element | Datei-Typ | BLKCTRL-Eintrag | PAMKEY-Speicherung |
---|---|---|---|
Datei liegt auf NK-Platte | SAM/ISAM | --1) | |
SAM/ISAM | aus dem Katalog | nein | |
UPAM | aus dem Katalog | nein | |
Datei liegt auf K-Platte | SAM/ISAM | --1) | |
SAM/ISAM | aus dem Katalog | nein | |
UPAM | aus dem Katalog | für BLKCTRL=PAMKEY |
Tabelle 7: BLKCTRL und PAMKEY bei ADD-ELEMENT
1) die Ablage kann über den Operanden SOURCE-ATTRIBUTES gesteuert werden
Verhalten bei der EXTRACT-ELEMENT-Anweisung
Über die EXTRACT-ELEMENT-Anweisung werden Elementinhalte in Dateien ausgegeben. Der BLKCTRL-Wert wird über folgende Hierarchie bestimmt:
Angabe im Katalogeintrag oder mit /ADD-FILE-LINK.
gespeicherter BLKCTRL-Wert beim Element. Er ist nur bei ursprünglichen PAM-Dateien relevant.
Einstellung des Systemparameters BLKCTRL=PAMKEY / NONKEY. Er kann mit /SHOW-SYSTEM-PARAMETERS angezeigt werden.
Platteneigenschaft PAMKEY oder NONKEY.
Ist kein Katalogeintrag vorhanden und der BLKCTRL-Wert nicht gespeichert, so entscheidet der Systemparameter und die Platteneigenschaft über den BLKCTRL-Wert:
Ist der Systemparameter auf PAMKEY gesetzt, so lässt LMSCONV das System den BLKCTRL-Wert bestimmen, d.h. BLKCTRL ist nicht spezifiziert.
Ist der Systemparameter auf NONKEY gesetzt, so setzt LMSCONV für SAM- und ISAM-Dateien BLKCTRL=DATA und für PAM-Dateien BLKCTRL=NO.
ISAM-Dateien
Die variabel langen Elementsätze werden mit der logischen Zugriffsmethode ISAM geschrieben. Der BLKCTRL-Wert der Datei wird nach dem oben beschriebenen Algorithmus bestimmt, wobei allerdings Punkt 2 der Hierarchie entfällt, da der beim Element gespeicherte BLKCTRL-Wert nur dokumentarischen Charakter hat; er wird ignoriert.
SAM-Dateien
Bei BLKCTRL=DATA tritt ein DVS-Fehler auf, wenn im Element Sätze länger als 32Kbyte - 16Byte sind. In der K-Welt dürfen diese Sätze bis zu 32Kbyte - 4Byte lang sein. LMSCONV reicht beim Selektieren zu lange Sätze ungeprüft an DVS weiter. Der BLKCTRL-Wert wird wie bei ISAM ermittelt.
PAM-Dateien
In der NK-Welt gehen die PAM-Schlüssel verloren. Zusätzlich werden bei BLKCTRL=DATA die ersten 12 Bytes eines jeden logischen Blockes durch das System überschrieben. In beiden Fällen gibt LMSCONV eine Warnung aus.
Phasen (Elemente vom Typ C)
Phasen werden gesondert behandelt. Neben dem alten Phasenformat (K-Phase) gibt es ein neues Phasenformat ohne PAM-Schlüssel (NK-Phase) auf Dateiseite.
Zusammenfassung
SAM/ISAM-Dateien
Das Aufnehmen der Dateien geht immer; ebenso der Selektiervorgang.
Ein evtl. gespeicherter BLKCTRL-Wert hat nur dokumentarischen Charakter.Die innere Dateiform wird stets durch die Zugriffsmethode SAM/ISAM bestimmt. Diese übernimmt auch die Konversion der Datensätze in das „innere“ Blockformat der Datei.
UPAM-Dateien
Eine evtl. notwendige Konversion der Daten kann nicht automatisch erfolgen (weder durch die Zugriffsmethode UPAM noch durch LMSCONV), da in diesen Fällen ein Datenverlust eintritt.
Die Steuerung liegt letztendlich beim Benutzer.
Datei-Typ
UPAMErzeugter / abgespeicherter BLKCTRL-Eintrag im Attributsatz
PAMKEY
DATA
NO
--
Datei liegt auf NK-Platte
1)
2)
ADD
EXTRACTADD
EXTRACT---
EXTRACTDatei liegt auf K-Platte
ADD
EXTRACTADD
EXTRACTADD
EXTRACT---
EXTRACTTabelle 8: BLCTRL-Eintrag in Abhängigkeit des Plattenformates bei UPAM-Dateien
1) der Wert BLKCTRL=PAMKEY ist nicht möglich
2) der Selektiervorgang muss vom Benutzer gesteuert werden, z.B. über Angabe eines Dateikettungsnamen in der Anweisung.