Die maximale (theoretische) Dateigröße beträgt ca. 4 TB (2.147.483.647 PAM-Seiten). Dies bedeutet, dass innerhalb des Betriebssystems konsequent 4-Byte-Blocknummern und 4-Byte-Zähler für Datei- und Plattengrößen verwendet werden müssen (siehe Bild 2). Die Bezeichnung „Block“ wird hier synonym mit den Bezeichnungen „PAM-Seite“ oder „Half Page“ verwendet.
Erweiterung des Katalogeintrags
Zentral für die Aufhebung der 32-GB-Grenze für die Volume- und Dateigröße war die Einführung von 4-Byte-Feldern für folgende im Katalogeintrag abgelegte Daten:
FILE-SIZE, der für die Datei allokierte Speicherplatz
HIGHEST-USED-PAGE, der davon aktuell durch Daten belegte Speicherplatz
LHP (Logical halfpage number) und PHP (physical halfpage number) der einzelnen Extents in der Extent-Liste, die den logischen Halbseiten „physikalische“ Halbseiten von Volumes zuordnet.
3-Byte- und 4-Byte-Felder
Blocknummern und Blockzähler sind an verschiedenen Benutzerschnittstellen des BS2000 sichtbar. Während alle neueren Ausprägungen dieser Schnittstellen konsequent 4-Byte-Felder verwenden, werden bei manchen älteren Schnittstellenversionen 3-Byte-Felder verwendet. Sind Dateien >= 32 GB vorhanden, ist mit Kompatibilitätsproblemen zu rechnen; in seltenen Fällen auch, wenn „nur“ Volumes >= 32 GB vorhanden sind.
Zusätzliches Format für die Extent-Liste
Mit der Einführung von 4-Byte-LHPs und 4-Byte-PHPs musste für die Extent-Liste ein zusätzliches Format eingeführt werden.
Der Zusammenhang zwischen der maximalen Größe von Datenträgern und Dateien und der Feldbreite von LHP und PHP wird in Bild 3 dargestellt:
Es werden beide Formate der Extent-Liste unterstützt:
Grundsätzlich wird das „alte“ Format mit 3-Byte-Blocknummern verwendet.
Nur im Fall von großen Dateien oder von Dateien, die ganz oder teilweise auf großen Volumes liegen, wird das neue Format mit 4-Byte-Blocknummern verwendet.
Extent-Listen enthalten also entweder Extents mit 3-Byte-Blocknummern oder Extents mit 4-Byte-Blocknummern.
Einschränkungen für große Dateien
Die Paging-Datei darf keine Datei >= 2 TB sein.
Eine SYSEAM-Datei darf keine Datei >= 32 GB sein.
Dateien mit BLKCTRL=PAMKEY werden nicht unterstützt, da im Systemteil des Pamkey die logische Seitennummer als 3-Byte-Feld hinterlegt ist.
Übersicht über die 32-GB-relevanten Schnittstellen zur Datei-Verwaltung
Schnittstelle | Änderung |
privilegierte Kommandos | |
SET-PUBSET-ATTRIBUTES | Festlegung, ob existierende Pubsets zu Large-Objects-Pubsets ohne oder mit großen Dateien hochgestuft werden |
SHOW-PUBSET-ATTRIBUTES | Zwei zusätzliche S-Variablen zeigen den Inhalt der Attribute LARGE-VOLUMES und LARGE-FILES an: |
SHOW-MASTER-CATALOG-ENTRY | Ausgabe der LARGE_OBJECTS-Eigenschaften bei Large-Objects-Pubsets |
nicht-privilegierte Kommandos | |
ADD-FILE-LINK | zusätzlicher Operand für große Dateien |
SHOW-FILE-LINK | Ausgabe des Attributs „Datei darf groß werden“ |
SHOW-FILE-ATTRIBUTES | erweiterte Ausgabestellen verschiedener Ausgabefelder |
Makros | |
FCB | zusätzlicher Operand für große Dateien |
FILE | zusätzlicher Operand für große Dateien |
FSTAT | Prüfungs- und Umstellungsaufwand bei VERSION=0/1 |
OPEN | Semantikproblem beachten |
RDTFT | Ausgabe des Attributs „Datei darf groß werden“ |
DIV | zusätzlicher Operand für große Dateien; vergrößerter Wertebereich für BLOCK und SPAN |
FPAMACC | vergrößerter Wertebereich für BLOCK |
FPAMSRV | zusätzlicher Operand für große Dateien |
STAMCE | Ausgabe von MRSCAT-Einträgen bzgl. LARGE_OBJECTS |