Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

FSTAT

Bei Zugriff des Makros FSTAT auf Pubsets mit großen Volumes, auf denen jedoch keine großen Dateien erlaubt sind, verhalten sich die Schnittstellen unverändert. Solche Zugriffe sind also immer problemfrei.
Probleme können entstehen, wenn der Zugriff auf Pubsets erfolgt, auf denen auch große Dateien erlaubt sind.

Der Makro FSTAT bietet folgende Schnittstellenvarianten an:

(a)

Version=0

(entspricht Version 710, Default)


(b)

Version=1

(entspricht Version 800)

ab BS2000-Version V8.0

(c)

Version=2


ab OSD-BC-Version V1.0

(d)

Version=3


ab OSD-BC-Version V3.0

(e)

Version=4


ab OSD-BC-Version V9.0

(f)

Version=5


ab OSD/BC-Version V11.0

Schnittstellenvarianten ohne Umstellungsaufwand

Wenn ausschließlich FSTAT-Aufrufe mit Version 2 oder höher vorkommen, treten keine Inkompatibilitäten auf.

Die Varianten ab (c) geben die entsprechenden Daten (Extent-Liste und Datenfelder für File-Size und Last Page Pointer) als 4-Byte-Felder zurück. Diese Schnittstellen müssen bei Verwendung großer Dateien nicht umgestellt werden und sind von den weiteren Ausführungen nicht betroffen. Es muss jedoch das Semantikproblem im Abschnitt „OPEN" beachtet werden. Jeder Anwender dieser Schnittstelle sollte prüfen, ob dieses Problem auf seine Implementierung zutrifft.

Ebenfalls nicht betroffen sind folgende Varianten:

-  FSTAT ...,VERSION=0,<teilqualfizierter Dateiname> 
   FSTAT ...,VERSION=0,<Dateigenerationsgruppe mit GEN=YES> 
-  FSTAT ...,VERSION=1,FNAM 

Schnittstellenvarianten mit Prüfungs-/Umstellungsaufwand

Im Folgenden werden die verbleibenden Varianten von (a) und (b) näher betrachtet:

FSTAT ...,VERSION=0/1,SHORT/LONG

Diese Varianten liefern als Ausgabe die Kataloginformation im Format BS2000 V10.0.
Die Extent-Liste und die Datenfelder für File-Size und Last Page Pointer werden bei der Ausgabe nur mit 3 Bytes dargestellt. Layoutänderungen an diesen Schnittstellen sind aus Kompatibilitätsgründen nicht möglich.

Aufrufe, die große Objekte betreffen, führen zu einem Überlauf der 3-Byte-Datenfelder.

An diesem Punkt werden zwei, von der Treffermenge des FSTAT-Aufrufs abhängige Fälle unterschieden:

  • In der Treffermenge (Menge der selektierten Dateien) existiert keine Datei >= 32 GB.

    FSTAT toleriert in diesem Fall den Überlauf des 3-Byte-Datenfeldes der PHP in der Ex-tent-Liste. Die nicht darstellbaren PHPs erhalten den Wert X'FFFFFF' zugewiesen. Es wird dabei davon ausgegangen, dass eine Auswertung der PHPs an den Schnittstellen nie oder äußerst selten erfolgt. Sollte diese Annahme ausnahmsweise nicht zutreffen, muss auf die Schnittstellenversion 2 oder 3 umgestellt werden.

    Damit wird Folgendes erreicht:

    • Die Einführung großer Volumes kann kompatibel erfolgen, Anwenderprogramme müssen nicht geändert werden.

    • FSTAT-Aufrufe mit vollqualifizierten Pfadnamen werden kompatibel (bis auf den Überlauf der PHP in der Extent-Liste) unterstützt.

    Es ist keine Umstellung nötig.

  • In der Treffermenge existiert mindestens eine Datei >= 32 GB (FSTAT wird mit teilqualifiziertem Dateinamen oder Wildcards aufgerufen).

    Solche Aufrufe werden mit dem folgenden Returncode zurückgewiesen:

    X'cc'

    X'bb'

    X'aaaa'

    Erläuterung

    X'00'

    X'01'

    X'0576'

    Selektion enthält große Dateien.

    Betroffen sind folgende Typen von FSTAT-Schnittstellen:

    Typ

    Bemerkung

    I

    FSTAT ...

    per Default wird VERSION=0 gesetzt

    II

    FSTAT ...,VERSION=0


    III

    FSTAT ...,VERSION=1,SHORT


    IV

    FSTAT ...,VERSION=1,LONG


    V

    FSTAT ...,VERSION=1

    per Default wird der Operand SHORT gesetzt

    Diese Aufrufe müssen auf VERSION >= 2 umgestellt werden. Generell wird empfohlen bei neuen Programmen die neuesten FSTAT Versionen zu nutzen. Dies gilt insbesondere, wenn beim FSTAT Net-Storage-Dateien (ab FSTAT VERSION=4) bzw. SAM-Node-Files (ab FSTAT VERSION=5) berücksichtigt werden sollen.

Übersicht über FSTAT-Aufrufe

FSTAT <vollqualifizierter Pfadname>,VERSION=0/1

  1. nur Zugriff auf kleine Dateien (< 32 GB):

    Wenn in der Treffermenge nur kleine Dateien existieren und der Überlauf des 3-Byte-Datenfeldes der PHP in der Extent-Liste keine Probleme bereitet, ist keine Aktion notwendig. Andernfalls muss auf VERSION > 2 umgestellt werden.

  2. Zugriff auch auf große Dateien (>= 32 GB):

    Falls der Aufruf über einen der Typen I bis V erfolgt, muss auf VERSION=2/3 umgestellt werden, außer bei Typ I und II mit Angabe einer Dateigenerationsgruppe und GEN=YES.

FSTAT <teilqualifizierter Pfadname oder Wildcards im Pfadnamen>,VERSION=0/1

  1. in der Treffermenge liegen nur kleine Dateien (< 32 GB):

    Wenn in der Treffermenge nur kleine Dateien existieren und der Überlauf des 3-Byte-Datenfeldes der PHP in der Extent-Liste keine Probleme bereitet, ist keine Aktion notwendig. Andernfalls muss auf VERSION > 2 umgestellt werden.

    Achtung!

    Prüfen Sie sorgfältig, ob die Voraussetzungen immer erfüllt sind. Dies ist vermutlich nur bei Pfadnamen möglich, die Wildcards in der Katalogkennung haben und deren restliche Bestandteile vollständig (vollqualifiziert) sind.

  2. in der Treffermenge können auch Dateien >= 32 GB liegen:

    Falls der Aufruf über einen der Typen III bis V erfolgt, muss auf VERSION=2/3 umgestellt werden.

Resümee

Bei Verwendung der FSTAT-Schnittstelle mit VERSION < 2 und FORM=LONG oder FORM=SHORT ist eine Umstellung auf die neueste Schnittstellenversion unter folgenden Randbedingungen erforderlich:

  • Im betroffenen Programm soll mit dem FSTAT-Aufruf auf große Dateien zugegriffen werden können.

  • Der Pfadname im FSTAT-Aufruf ist teilqualifiziert oder enthält Wildcards und es kann nicht ausgeschlossen werden, dass in der Treffermenge große Dateien enthalten sind. Besonders kritisch sind hier Aufrufe mit Wildcard in der Katalogkennung.

Dabei müssen neben der Schnittstelle gegebenenfalls auch Datenstrukturen im Programm umgestellt werden.

Steuerung über Systemparameter FST32GB

FST32GB hat nur Einfluss auf folgende FSTAT-Schnittstellen:

  • Version=0 (entspricht Version=710) bei Angabe eines vollqualifizierten Dateinamens (jedoch nicht bei Angabe einer Dateigenerationsgruppe mit GEN=YES)

  • Version=1 (entspricht Version=800), bei der nicht der Operand FNAM spezifiziert wurde

Der Systembetreuer stellt systemglobal ein, ob das Vorhandensein einer Datei >= 32 GB in der Menge der selektierten Dateien zur Abweisung des FSTAT-Aufrufs mit dem Returncode X'00000576' führt (FST32GB=0, Standardeinstellung) oder ein Überlauf der 3-Byte-Datenfelder generell toleriert wird (FST32GB=1). Im letzten Fall wird den nicht darstellbaren Datenfeldern der Wert X'FFFFFF' zugewiesen.

Hinweis

Der Systemparameter FST32GB wird nicht ausgewertet, wenn der FSTAT-Indikator (siehe unten) gesetzt ist.

Steuerung über FSTAT-Indikator

Ein Verhalten wie bei FST32GB=1, also das Ignorieren des Überlaufs, kann schnittstellenspezifisch bei den FSTAT-Typen I bis V über einen Indikator aktiviert werden.

Hinweis

Der FSTAT-Indikator besitzt eine höhere Priorität als der Systemparameter FST32GB. Wird der FSTAT-Indikator gesetzt, wird FST32GB nicht ausgewertet.
Der Indikator muss direkt in der Parameterliste gesetzt werden; eine Unterstützung im FSTAT-Makro ist nicht vorhanden.

Beschreibung der Bits in den entsprechenden Dsects:

         FSTAT MF=D,PARMOD=31,VERSION=710 
IDBFLAG2 DS    X                                FLAGS 2
IDBLOPYE EQU   X'04'                            2-2 S LARGE PUBSET ACCESS=YES 
         FSTAT MF=D,PARMOD=31,VERSION=800 
IFLAG0   DC    B'10001100'
ILOPY    EQU   X'04'                            2-2 S LARGE PUBSET ACCESS=YES