Das Verhalten ist verschieden bei Elementen mit Attributsatz und bei Elementen ohne Attributsatz.
Element mit Attributsatz
Das Element besitzt einen Attributsatz mit der originalen BUFFER-LENGTH-Angabe. Dies ist der Fall, wenn in der ADD-ELEMENT-Anweisung der Operand SOURCE-ATTRIBUTES=*KEEP angegeben wurde oder wenn das Element eine ursprüngliche UPAM-Datei, z.B. auch eine PLAM-Bibliothek, war.
Für die Ausgabe dieser Elemente ist folgendes zu beachten:
Für die Zieldatei ist ein BUFFER-LENGTH-Wert explizit vorgegeben, entweder durch einen Eintrag in der Task-File-Table (TFT) über das ADD-FILE-LINK-Kommando oder direkt im Katalogeintrag. In diesem Fall wird stets der vorgegebene Wert verwendet. Bei der Übernahme des Wertes können folgende Probleme auftreten:
SAM/ISAM-Datei
Die Elementsätze sind zu lang für die vorgegebene BUFFER-LENGTH. Dann wird ein DVS-Fehler ausgegeben.UPAM-Datei
Beim Erzeugen von UPAM-Dateien füllt LMS einen logischen Block (bis auf den letzten) dicht mit 2K-Einheiten auf und gibt ihn erst dann mit UPAM aus.
Bei BLOCK-CONTROL-INFORMATION=WITHIN-DATA-BLOCK beginnt jeder logische Block (BUFFER-LENGTH) mit einem 12 Byte langen Blockkontrollfeld (CF). Entspricht die vorgegebene BUFFER-LENGTH nicht der gespeicherten, so können Daten von dem BS2000-Dateiverwaltungssystem (DVS) mit dem CF überschrieben werden. Die Datei ist damit unbrauchbar.
Bei BLOCK-CONTROL-INFORMATION=NO können aber auch unbrauchbare Daten erzeugt werden, wenn die BUFFER-LENGTH verändert wird (z.B. PLAM-Dateien).
Um die oben genannten Fälle zu vermeiden, gibt LMS eine Warnung aus, wenn sich die angegebene BUFFER-LENGTH-Angabe von der gespeicherten Angabe unterscheidet. LMS versucht jedoch immer, die Datei zu erzeugen.
Für die Zieldatei ist kein BUFFER-LENGTH-Wert explizit vorgegeben oder bekannt. In diesem Fall wird der Wert aus dem Attributsatz verwendet.
Ist der Wert n bei STD(SIZE=n) ungerade, erhöht LMS auf (n+1).
Element ohne Attributsatz
Für Elemente, die keinen Attributsatz besitzen, gilt folgendes:
Ist für die Zieldatei ein BUFFER-LENGTH-Wert explizit vorgegeben, dann behandelt LMS diese Elemente wie Elemente mit Attributsatz (siehe oben).
Bei der Erzeugung von Phasen führen BUFFER-LENGTH-Angaben ungleich STD(SIZE=1) oder STD(SIZE=2) auf Fehler.
Ist für die Zieldatei kein BUFFER-LENGTH-Wert explizit vorgegeben oder bekannt, dann gilt:
Für Phasen ergibt sich die BUFFER-LENGTH aus der aktuellen Umgebung, d.h. auf NK2-Platten BUFFER-LENGTH=STD(SIZE=1) und auf NK4-Platten STD(SIZE=2). Inhaltlich unterscheiden sich die Phasen nicht.
Sonst wird die BUFFER-LENGTH aus der maximalen Satzlänge errechnet.
Empfehlungen für das Konvertieren von Dateien von K/NK2- auf NK4-Platten
Wenn Dateien von einer K/NK2-Platte über eine Bibliothek auf eine NK4-Platte konvertiert werden sollen, gelten folgende Empfehlungen:
„Aktionen“ auf der K/NK2-Platte:
Alle „kritischen“ Elemente der Bibliothek als Datei extrahieren. Kritische Elemente sind „PAM“-Elemente unter Typ X, die als Datei eine der folgenden Eigenschaften besitzen:
BUFFER-LENGTH = STD(SIZE=n) mit n ungerade
pamkey-behaftete Phasen
2K-orientierte PLAM-Dateien
Alle Dateien mit ungerader BUFFER-LENGTH (außer PLAM-Dateien) mit PAMCONV in NK4-Dateien konvertieren.
Alle pamkey-behafteten Phasen mit LMSCONV über Typ C in NK4-Phasen konvertieren. Die Konvertierung geht nur auf einer K-Platte.
NK2-PLAM-Dateien mit der LMS-Anweisung COPY-LIBRARY in NK4-PLAM-Dateien konvertieren.
Die NK4-Dateien mit der LMS-Anweisung ADD-ELEMENT in eine NK4-PLAM-Datei aufnehmen und diese auf die NK4-Platte transferieren.
Hinweise
Eine NK4-Bibliothek, die sich auf einer Key-Platte befindet, kann beispielsweise mit dem BS2000-Kommando COPY-FILE (siehe [5]) oder den BS2000-Produkten FILE-TRANSFER (siehe [14]) bzw. ARCHIVE (siehe [2]) auf eine NK4-Platte übertragen werden. Die jeweiligen Operanden zur Behandlung der BLOCK-CONTROL-Werte sind den entsprechenden Handbüchern zu entnehmen.
Eine NK2-PLAM-Datei unter Typ X kann durch EXTRACT-ELEMENT nicht in das NK4-PLAM-Format konvertiert werden.