Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Festlegen von Dateimerkmalen

Für das Einrichten von Dateien steht im BS2000 das CREATE-FILE Kommando zur Verfügung. Ein Task File Table-Eintrag mit weiteren Dateimerkmalen wird später mit dem ADD-FILE-LINK-Kommando erzeugt. Die vollständigen Formate und eine ausführliche Beschreibung können in den Handbüchern [3] oder [4] nachgelesen werden.

Katalogeintrag

Beim Festlegen der Dateimerkmale mit dem CREATE-FILE Kommando ist darauf zu achten, dass eine ausreichende Anfangszuweisung von Speicherplatz erfolgt.
Dies gilt insbesondere für Dateien, bei denen die Blockgröße die vom Betriebssystem standardmäßig angenommene Anfangszuweisung übersteigt. Die Blockgröße errechnet sich aus den Angaben im COBOL-Programm (siehe „COBOL2000-Sprachbeschreibung“ [1]). Ergibt sich aus dem COBOL Programm eine Blocklänge (STD, n), sollte die PRIMARY-ALLOCATION im SPACE-Operand des CREATE-FILE Kommandos

  • für sequentielle Dateien mindestens 2n sein.

  • für indizierte und relative Dateien mindestens 2n+2 sein.

Task File Table

Zu jeder Datei, für die ein ADD-FILE-LINK-Kommando mit dem Operanden

LINK-NAME=linkname

abgesetzt wird, erzeugt das DVS unter dem Dateikettungsnamen linkname in der Task File Table (TFT) der Task einen Eintrag, der alle Dateimerkmale festhält, die im ADD-FILE-LINK-Kommando explizit vereinbart wurden.

Jeder dieser Einträge bleibt so lange in der TFT gespeichert, bis er

  • durch ein REMOVE-FILE-LINK-Kommando für den zugeordneten Dateikettungsnamen oder bei Task-Ende zusammen mit dem der TFT gelöscht bzw.

  • durch ein neues ADD-FILE-LINK-Kommando für den gleichen Dateikettungsnamen überschrieben wird.

Über den aktuellen Inhalt der TFT kann man sich mit dem Kommando SHOW-FILE-LINK-Kommando informieren.

Versucht ein COBOL-Programm, eine Datei zu eröffnen, so prüft das DVS, ob in der TFT der Linkname eingetragen ist, der für die Datei bei der Übersetzung festgelegt wurde (siehe Abschnitt „Zuweisen von katalogisierten Dateien"). Wird ein solcher Eintrag gefunden, übernimmt das Programm die Dateimerkmale aus:

  • dem TFT-Eintrag unter diesem Linknamen,

  • den Dateieigenschaften, die explizit oder implizit im Programm vereinbart wurden und

  • dem Katalogeintrag der zugehörigen Datei.

Dabei überschreiben Angaben aus dem TFT-Eintrag (d.h. die explizit im ADD-FILE-LINK-Kommando festgelegten Dateimerkmale) die Dateivereinbarungen aus dem COBOL-Programm, während aus dem Katalogeintrag lediglich Dateimerkmale übernommen werden, die weder durch das Programm noch im TFT-Eintrag festgelegt sind oder im ADD-FILE-LINK-Kommando als Nulloperanden vereinbart wurden.

Beim Dateizugriff kann dieses Verfahren insbesondere dann zu Konflikten führen, wenn im ADD-FILE-LINK-Kommando Dateimerkmale angegeben werden, die mit den (explizit oder implizit) im COBOL-Programm festgelegten Eigenschaften oder mit dem Katalogeintrag der zugewiesenen Datei unvereinbar sind. Dies trifft vor allem auf folgende Situationen zu:

  • Widersprüchliche Angaben zur Eröffnungsart

    COBOL-Programm

    ADD-FILE-LINK-Kommando

    OPEN INPUT...[REVERSED]

    OPEN-MODE=OUTPUT oder OPEN-MODE=EXTEND

    OPEN OUTPUT

    OPEN-MODE=INPUT oder OPEN-MODE=REVERSE

    OPEN EXTEND

    OPEN-MODE=INPUT oder OPEN-MODE=REVERSE

  • Widersprüchliche Angaben zur Organisationsform der Datei

    COBOL-Programm

    ADD-FILE-LINK-Kommando

    ASSIGN-KlauselORGANIZATION-Klausel

    ACCESS-METHOD-Operand

  • Widersprüchliche Angaben zum Satzformat

    COBOL-Programm

    ADD-FILE-LINK-Kommando

    RECORD-KlauselRECORDING MODE-Klausel

    RECORD-FORMAT-Operand

  • Widersprüchliche Angaben zur Satzlänge

    COBOL-Programm

    ADD-FILE-LINK-Kommando

    RECORD-KlauselDatensatzerklärung

    RECORD-SIZE-Operand

  • Widersprüchliche Angaben zum Satzschlüssel

    COBOL-Programm

    ADD-FILE-LINK-Kommando

    RECORD KEY-KlauselDatensatzerklärung

    KEY-POSITION-OperandKEY-LENGTH-Operand

  • Widersprüchliche Angaben zum Plattenformat oder Dateiformat

    Katalogeintrag

    ADD-FILE-LINK-Kommando

    BLK-CONTR =BUF-LEN =

    BLOCK-CONTROL-INFO-OperandBUFFER-LENGTH-Operand

Beispiel 9-4

Erzeugen und Abbilden eines TFT-Eintrags

(Abbildung in BS2000/OSD V5.0)

/ADD-FILE-LINK INOUTFIL,ISAM.UPDATE, -                                (1)
/              BUFFER-LENGTH=*BY-CATALOG,                              | 
               SUPPORT=*DISK(SHARED-UPDATE=*YES)                      (1)
/SHOW-FILE-LINK INOUTFIL,INFORMATION=*ALL  —————————————————————————— (2)
LINK-NAME ————————— FILE-NAME —————————————————————————————————————————————
INOUTFIL            :N:$F2190202.ISAM.UPDATE
———————————————————— STATUS ———————————————————————————————————————————————
STATE      = INACTIVE    ORIGIN      = FILE
———————————————————— PROTECTION ———————————————————————————————————————————
RET-PER    = *BY-PROG    PROT-LEV    = *BY-PROG
BYPASS     = *BY-PROG    DESTROY     = *BY-CAT
———————————————————— FILE-CONTROL-BLOCK - GENERAL ATTRIBUTES ——————————————
ACC-METH   = *BY-PROG    OPEN-MODE   = *BY-PROG   REC-FORM   = *BY-PROG
REC-SIZE   = *BY-PROG    BUF-LEN     = *BY-CAT    BLK-CONTR  = *BY-PROG
F-CL-MSG   = STD         CLOSE-MODE  = *BY-PROG
———————————————————— FILE-CONTROL-BLOCK - DISK FILE ATTRIBUTES ————————————
SHARED-UPD = YES         WR-CHECK    = *BY-PROG   IO(PERF)   = *BY-PROG
IO(USAGE)  = *BY-PROG    LOCK-ENV    = *BY-PROG
———————————————————— FILE-CONTROL-BLOCK - TAPE FILE ATTRIBUTES ————————————
LABEL      = *BY-PROG   (DIN-R-NUM   = *BY-PROG,  TAPE-MARK  = *BY-PROG)
CODE       = *BY-PROG    EBCDIC-TR   = *BY-PROG   F-SEQ      = *BY-PROG
CP-AT-BLIM = *BY-PROG    CP-AT-FEOV  = *BY-PROG   BLOCK-LIM  = *BY-PROG
REST-USAGE = *BY-PROG    BLOCK-OFF   = *BY-PROG   TAPE-WRITE = *BY-PROG
STREAM     = *BY-PROG                      |
———————————————————— FILE-CONTROL-BLOCK - ISAM FILE ATTRIBUTES ————————————
KEY-POS    = *BY-PROG    KEY-LEN     = *BY-PROG   POOL-LINK  = *BY-PROG
LOGIC-FLAG = *BY-PROG    VAL-FLAG    = *BY-PROG   PROPA-VAL  = *BY-PROG
DUP-KEY    = *BY-PROG    PAD-FACT    = *BY-PROG   READ-I-ADV = *BY-PROG
WR-IMMED   = *BY-PROG
———————————————————— VOLUME ———————————————————————————————————————————————
DEV-TYPE   = *NONE       T-SET-NAME = *NONE
VSN/DEV    = PUBN03/D3480

(1)

Das ADD-FILE-LINK-Kommando weist der Datei ISAM.UPDATE den Linknamen INOUTFIL zu und vereinbart

Das DVS legt einen TFT-Eintrag unter dem Namen INOUTFIL an, in den es diese Angaben übernimmt.

(2)

Das SHOW-FILE-LINK-Kommando gibt den TFT-Eintrag für INOUTFIL mit den Operandenwerten aus. Dabei sind die Werte

  • BUF-LEN = *CAT und

  • SHARUPD = YES

auf die Angaben im ADD-FILE-LINK-Kommando zurückzuführen. Alle übrigen Operanden wurden nicht explizit vereinbart und haben die voreingestellten Werte*BY-PROG oder *NONE.