Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

FCB - Dateisteuerblock definieren

Makrotyp: O-Typ

Der Dateisteuerblock ist die zentrale Informationsquelle für die Zugriffsmethoden BTAM, ISAM, SAM und UPAM. Bei jeder Bearbeitung einer Datei wird ein Dateisteuerblock (FCB) benötigt.

Die nötigen Informationen entnimmt das DVS verschiedenen Quellen:

  • Im FCB-Makroaufruf kann der Anwender bereits FCB-Felder versorgen.

  • Im Anwenderprogramm können vor der Dateieröffnung FCB-Felder während des Programmlaufs versorgt werden.

  • Angaben im FILE-Makroaufruf mit entsprechendem Linknamen werden in die TFT übernommen und haben bei der Dateieröffnung Vorrang vor den entsprechenden FCB-Feldern.

  • Während der Dateieröffnung kann der FCB auch durch Routinen des Anwendungsprogramms verändert werden (siehe Makro EXLST, "EXLST - Exit-Adressenliste anlegen", OPENX- und OPENZ-Routinen).

  • Weitere Informationen werden bei der OPEN-Verarbeitung dem Katalogeintrag der Datei entnommen.

In chronologischer Reihenfolge werden die Ereignisse aufgelistet, die zum Aufbau eines kompletten FCB führen:

  • FCB-Makroaufruf während der Assemblierung

  • Modifizierung während des Programmablaufs vor dem OPEN-Makro

  • zum OPEN-Zeitpunkt Aufbau des FCB

    • aus der TFT (FILE-Aufruf mit entsprechendem Linknamen)

    • aus dem Katalogeintrag (unabhängig vom OPEN-Modus)

    • in OPEN-Routinen (siehe Makro EXLST: OPENX- und OPENZ-Routinen) durch das Anwenderprogramm

Der komplette FCB stellt schließlich auch die Verbindung zu den logischen Routinen her, die bei den satzorientierten Zugriffsmethoden (SAM, ISAM) das Blocken und Entblocken der Datensätze übernehmen.

DSECTs

Mit dem Makro IDFCB kann eine DSECT für den Dateisteuerblock generiert werden, sodass der Anwender die FCB-Felder symbolisch adressieren kann. Werden Dateien über die 24-Bit-Schnittstelle verarbeitet, kann mit dem Makroaufruf IDFCBE eine DSECT für die FCB-Erweiterung generiert werden.

NULL-Operanden

Existiert die im FCB-Makroaufruf direkt oder über den LINK-Operanden indirekt spezifizierte Datei/Dateigenerationsgruppe bereits (Datei wurde schon einmal mit OPEN-Mode OUTPUT oder OUTIN eröffnet), können einige Operanden des FCB-Makros als so genannte „NULL-Operanden“ angegeben werden. Das bedeutet, dass zwar der Operand, aber kein Operandenwert angegeben wird (leere Zeichenfolge als Operandenwert).

FCB LINK=name, FCBTYPE=, BLKSIZE=, RECFORM=, ...

Welche Operanden als NULL-Operanden angegeben werden können, kann der Tabelle „Operanden für Plattendateien" entnommen werden.

FCB und Zugriffsmethoden

Verschiedene Zugriffsmethoden benutzen den FCB. Es werden allerdings jeweils nur bestimmte Operanden ausgewertet. Welche Zugriffsmethode welche Operanden auswertet, wird in der nachfolgenden Übersichtstabelle dargestellt. Operanden, die die Zugriffsmethode nicht auswerten kann, werden ignoriert. Es wird keine Fehlermeldung ausgegeben.

Operand
im FCB

Bedeutung

BTAM

ISAM

PAM

SAM

BLIM

nur Band: Anzahl der Datenblöcke pro Band




x

BLKCTRL

Blockformat (UPAM: Band)


x

x

x

BLKSIZE

Größe des Datenblocks (UPAM: Band)

x

x

x

x

BTAMRQS

Anzahl der Ein-/Ausgabe-Aufträge

x




BUFOFF

nur Band: Pufferverschiebung




x

CHAINIO

Kettungsfaktor

x




CHKPT

nur Band: Fixpunkt




x

CODE

Umsetzungstabelle (SAM: Band)

x



x

DUPEKY

Mehrfachschlüssel


x



EXIT

Fehlerausgang

x

x

x

x

FCBTYPE

Zugriffsmethode

x

x

x

x

FILE

bezeichnet die zu verarbeitende Datei

x

x

x

x

FORM

Speicherplatzreservierung




x

FSEQ

nur Band: Nummer einer Datei innerhalb einer Dateimenge

x



x

IOAREA1

Programmpuffer

x

x

x

x

IOAREA2

zweiter Programmpuffer

x

x

x

x

IOPERF

Performanceattribut (nur Pubset)


x

x

x

IOREG

Register für Dateiverarbeitung im Locate-Mode


x


x

IOUSAGE

Nutzung des Cache (nur Pubset)


x

x

x

KEYARG

Adresse des Feldes, das den ISAM-Schlüssel enthält


x



KEYLEN

Länge des ISAM-Schlüssel


x



KEYPOS

Beginn des ISAM-Schlüssels


x



LABEL

nur Band: Kennsatzeigenschaften

x



x

LARGE_
FILE

nur Platten: Dateigrößenallokierung über 32 GB


x

x

x

LBP_
REQUIRED

Last Byte Pointer (LBP) Verarbeitung gefordert



x


LINK

Dateikettungsnamen

x

x

x

x

LOCKENV

Lockprotokoll zur Synchronisation (Shared-Update-Verarbeitung)


x

x


LOGLEN

Länge der logischen Markierung


x



OPEN

OPEN-Modus

x

x

x

x

OPTION

Optionen

x

x

x

x

OVERLAP

Überlappung


x



PAD

Blockfüllung bei sequenzieller Dateierstellung


x



PAMREQS

asynchrone Ein-/Ausgaben



x


PAMTOUT

Wartezeit



x


PARMOD

Generierungsmodus

x

x

x

x

PASS

Kennwort

x

x

x

x

POOLLNK

Poolkettungsname


x



RECFORM

Satzformat

x

x


x

RECSIZE

Satzlänge

x

x


x

RETPD

Schutzfrist

x

x

x

x

SAM_NODE_FILE_
ENABLE

SAM-Node Datei Verarbeitung zugelassen




x

SECLEV

nur Band: Security Level

x



x

SHARUPD

Multi-User-Betrieb


x

x


STREAM

Streaming-Modus

x




TAPEWR

nur Band: gepufferte Ausgabe

x



x

TPMARK

nur Band: Abschnittsmarken

x



x

TRANS

nur Band: Code-Umsetzung

x



x

TRTADR

nur Band: benutzereigene Übersetzungstabelle
(Lesen)

x



x

TRTADW

nur Band: benutzereigene Übersetzungstabelle
(Schreiben)

x



x

UPAM_
RAW_
ACCESS

UPAM RAW Zugriff auf SAM-Node Dateien



x


VALLEN

Länge der Wertmarkierung


x



VALPROP

Wertmarkierung


x



VARBLD

Register für den freien Platz im schreibenden Block




x

WRCHK

Kontroll-Lesen beim Schreiben von Blöcken


x

x

x

WROUT

sofortiges Zurückschreiben


x



Format

Operation

Operanden

FCB

[BLIM = zahl]

[,BLKCTRL = PAMKEY / DATA / DATA2K / DATA4K / NO]

[,BLKSIZE = STD / (STD,n) / länge]

[,BTAMRQS = zahl]

[,BUFOFF = L / länge]

[,CHAINIO = zahl]

[,CHKPT = NO / ANY / BLIM / FEOV,ACTIVE / DUMMY]

[,CODE = EBCDIC / ISO7 / OWN]

[,DUPEKY = YES]

[,EXIT = (relaus) / relaus]

[,FCBTYPE = ISAM / BTAM / PAM / SAM]

[,FILE = pfadname]

[,FSEQ = UNK / NEW / zahl]

[,IOAREA1 = NO / SECRET / relaus]

[,IOAREA2 = NO / SECRET / relaus]

[,IOPERF = VHIGH / HIGH / STD]

[,IOREG = reg]

[,IOUSAGE = RDWRT / WRITE / READ]

[,KEYARG = relaus]

[,KEYLEN = länge]

[,KEYPOS = zahl]

[,LABEL = (STD,3) / STD / (STD,zahl) / NONSTD]

[,LARGE_FILE = *FORBIDDEN / *ALLOWED]

[,LBP_REQUIRED = NO / YES]

[,LINK = name]

[,LOCKENV = *HOST / *XCS]

[,LOGLEN = länge]

[,OPEN = INPUT / EXTEND / INOUT / OUTIN / OUTPUT / REVERSE /

         SINOUT / UPDATE]

[,OPTION = code / (code1,code2)]

[,OVERLAP = YES]

[,PAD = zahl]

[,PAMREQS = zahl]

[,PAMTOUT = zahl]

[,PARMOD = 24 / 31]

[,PASS = kennwort]

[,POOLLNK = name]

[,RETPD = tage]

[,SAM_NODE_FILE_ENABLE = NO / YES]

[,SHARUPD = NO / YES / WEAK]

[,RECFORM = V / F / U / (V / F / U [,N / M / A ])]

[,RECSIZE = länge / reg]

[,SECLEV = HIGH / LOW / (HIGH / LOW,OPR)]

[,STREAM = NO / YES]

[,TAPEWR = DEVICE-BUFFER / IMMEDIATE]

[,TPMARK = YES / NO]

[,TRANS = YES / NOv

[,TRTADR = relaus]

[,TRTADW = relaus]

[,UPAM_RAW_ACCESS = NO / YES]

[,VALLEN = länge]

[,VALPROP = MIN / MAX]

[,VARBLD = reg]

[,WRCHK = NO / YES]

[,WROUT = NO / YES]

Operandenbeschreibung

BLIM = zahl

Nur zum Erstellen von Banddateien mit Standardkennsätzen, die mit der Zugriffsmethode SAM verarbeitet werden sollen und sich über mehrere Bänder erstrecken:
Gleichzeitig mit dem Operanden BLIM müssen folgende Operanden im FCB-Makroaufruf angegeben werden: FCBTYPE=SAM, OPEN=OUTPUT, LABEL=(STD,n).
„zahl“ gibt an, wie viele Datenblöcke auf ein Band geschrieben werden dürfen, 1 <= zahl <= 999999.
Bei Erreichen des Grenzwerts wird Bandwechsel veranlasst (EOV-Verarbeitung); falls mit CHKPT-Operand gefordert, wird zuvor noch ein Fixpunkt an das Bandende geschrieben. Ist das Bandende erreicht, bevor die mit BLIM festgelegte Anzahl Blöcke geschrieben wurde, wird ein Fehlercode im FCB eingetragen.

BLKCTRL

Wirksam nur bei 31-Bit-Verarbeitung (PARMOD=31); Operand wird bei 24-Bit-Verarbeitung (PARMOD=24) ignoriert:
Legt fest, ob eine Datei des K-Formats (mit PAM-Schlüssel) oder des NK-Formats (ohne PAM-Schlüssel) zu verarbeiten ist.
Für die Verarbeitung von NK-SAM- und NK-PAM-Dateien stehen die gleichen Funktionen mit identischen Anwenderschnittstellen zur Verfügung wie für die entsprechenden K-Dateien. Die Zugriffsmethode NK-ISAM bietet einige Funktionen an, die über die des K-ISAM hinausgehen (zu ISAM-Pool und Sekundärschlüssel siehe Handbuch „Einführung in das DVS“ [1]).

Um eine existente Datei zu eröffnen, sollte für BLKCTRL kein Wert angegeben werden (NULL-Operand). (Erläuterungen zu dem Begriff NULL-Operand, siehe "FCB - Dateisteuerblock definieren"). Der Wert wird in diesem Fall zum OPEN-Zeitpunkt aus dem Katalogeintrag in den FCB übernommen (zu „existenten“ Dateien siehe auch den Hinweis bei Abschnitt „Ablauf der OPEN-Verarbeitung“ im Kapitel „OPEN-Verarbeitung“ im Handbuch „Einführung in das DVS“ [1]).
Bei Neuanlegen einer Datei (OPEN-Modus-OUTPUT oder OUTIN), sollte der Operand BLKCTRL nicht angegeben werden. Während der OPEN-Verarbeitung wird dann in Abhängigkeit der Dateistruktur und des Plattenformats folgende Voreinstellung für BLKCTRL vorgenommen:

BLKCTRL

Dateistruktur – Plattenformat

PAMKEY

für Dateien (PAM, SAM, ISAM) auf K-Platten und Banddateien, falls nicht FCBTYPE=BTAM.

DATA

für SAM-Dateien auf NK2- und NK4-Platten

DATA2K

für ISAM-Dateien auf NK2-Platten

DATA4K

für ISAM-Dateien auf NK4-Platten

NO

für PAM-Dateien auf NK2- und NK4-Platten sowie für BTAM-Dateien

= PAMKEY
Die Datei hat das K-Format: Die Blockkontrollinformation wird außerhalb des Daten-blocks in einem PAM-Schlüssel abgelegt. Eine solche K-Datei kann nicht auf einer NK-Platte (FBA-Platte ohne PAM-Schlüssel-Simulation) angelegt werden.

= DATA
Die Datei hat NK-Format: Die Blockkontrollinformation steht zu Beginn eines jeden logischen Blockes (siehe auch Operandenbeschreibung BLKSIZE; bei ISAM-Dateien am Beginn eines jeden 2-KByte- bzw. 4-KByte-Blockes). Eine NK-Datei kann sowohl auf K-Platte, auf NK2-Platte und bei entsprechend gewählter Blocklänge auch auf NK4-Platte liegen. Beim Neuanlegen einer Datei (OPEN OUTPUT/OUTIN) wird eine NK2- oder eine NK4-Datei erstellt:
Für Dateien, die mit anderen Zugriffsmethoden als ISAM erstellt wurden, gilt in Abhängigkeit des Blockungsfaktors „n“ bei der Angabe der logischen Blocklänge mit BLKSIZE Folgendes:

      • Ist der Blockungsfaktor n eine ungerade Zahl wird eine NK2-Datei angelegt

      • Ist der Blockungsfaktor n eine gerade Zahl wird eine NK4-Datei angelegt

Beim Erstellen einer NK-ISAM-Datei (OPEN OUTPUT/OUTIN) wird das Dateiformat in Abhängigkeit des Plattenformats gewählt. Eine bereits geöffnete Datei kann unabhängig vom Blockformat geöffnet werden.

= DATA2K
Nur für ISAM-Dateien:
Es wird explizit eine NK2-Datei erstellt. bzw. eine NK2-Datei bearbeitet. Die Datei kann nicht auf NK4-Platte angelegt werden. Eine Datei, die auf NK4-Platte liegt, kann mit dieser Angabe nicht eröffnet werden.
Die blockspezifische Verwaltungsinformation wird in den ersten 16 Byte eines jeden 2-KByte-Blocks hinterlegt.

= DATA4K
Nur für ISAM-Dateien:
Es wird explizit eine NK4-Datei erstellt bzw. eine NK4-Datei bearbeitet. Die blockspezifische Verwaltungsinformation wird in den ersten 16 Byte eines jeden 4-KByte-Blocks hinterlegt. Wird ein Blockungsfaktor n angegeben, so muss n eine gerade Zahl sein. d.h. die logische Blockgröße muss ein Vielfaches von 4-KByte betragen (BLKSIZE=(STD,n) mit n gerade Zahl).
Die Datei kann auf K- NK2- und NK4-Platte angelegt werden bzw. dort eröffnet werden.

= NO
Die Angabe ist nur für PAM-Dateien und SAM-Banddateien sinnvoll; bei SAM-Plattendateien wird sie in BLKCTRL=DATA, bei ISAM-Dateien in BLKCTRL=DATA2K bzw. BLKCTRL=DATA4K umgewandelt.
Wird FCBTYPE=PAM angegeben, so wird eine NK-PAM-Datei angelegt, die keine blockspezifischen Verwaltungsinformationen enthält.
Diese Datei kann unabhängig von der gewählten logischen Blocklänge (BLKSIZE) sowohl auf K-Platte als auch auf NK2-Platte angelegt werden.
Wird als logische Blocklänge (BLKSIZE) ein Vielfaches von 4K angegeben (Blockungsfaktor „n“ geradzahlig), kann die Datei auch auf einer NK4-Platte angelegt werden.

BLKSIZE

legt die Länge des logischen Blocks (Datenblocks) fest, d.h. die Länge der Übertragungseinheit von und zu den Ein-/Ausgabegeräten und damit die Länge des Ein-/Ausgabebereichs des Programms.

Wird für BLKSIZE keine Angabe gemacht, so wird für existente Dateien (Definition siehe auch den Hinweis bei Abschnitt „Ablauf der OPEN-Verarbeitung“ im Kapitel „OPEN-Verarbeitung“ im Handbuch „Einführung in das DVS“ [1]) der Wert aus dem Katalogeintrag übernommen. Bei Neuanlegen werden (STD,2)-Dateien auf NK4-Datenträgern angelegt. Auf anderen Datenträgern werden (STD,1)-Dateien angelegt.
Der Benutzer darf, falls (STD,2) eingestellt wird, keine eigenen IOAREAs verwenden. Diese sollte er zum OPEN-Zeitpunkt vom System im Klasse-5-Speicher anlegen lassen.

Für die Verarbeitung siehe Hinweis unter „BLKCTRL" und bei „Hinweise zur Programmierung".

Plattendateien/Banddateien mit Standardblöcken:
Ein logischer Block kann aus mehreren PAM-Seiten bestehen. Das System verknüpft die zu einer Übertragungseinheit zusammengefassten PAM-Seiten automatisch.

Für Plattendateien ergeben sich Wechselwirkungen mit dem RECSIZE-Operanden, für Banddateien mit dem LABEL-Operanden.

Banddateien mit Nichtstandardblöcken:
Der Datenblock ist definiert durch die Anzahl Bytes, die pro Schreib- bzw. Leseoperation geschrieben/gelesen werden.

= STD
entspricht der Angabe (STD,1); siehe unten. Die Daten werden in Einheiten von 2048 Byte von/zu den Geräten übertragen; die für Anwenderdaten nutzbare Länge der Übertragungseinheit ist abhängig von der BLKCTRL-Angabe (bzw. dem Plattentyp).

= (STD,n)
„STD“ ist ein Standardblock der Größe 2048 Byte; „n“ ist der Blockungsfaktor (1 <= n <= 16).

Jeder logische Block besteht aus n PAM-Blöcken (1 PAM-Block/1 PAM-Seite = 2048 Byte), d.h. die maximale Länge des logischen Blocks ist 16 PAM-Seiten = 32768 Byte. Für NK-Dateien:
„n“ legt die Länge des logischen Blockes als Vielfaches von 2048 Byte fest: Die Länge eines solchen Blockes beträgt n * 2048 Byte.
Für NK4-Dateien muss „n“ eine gerade Zahl sein, d.h. die Länge des logischen Blocks ist ein Vielfaches von 4-KByte. Für eine NK4-ISAM-Datei muss zusätzlich für den Operanden BLKCTRL der Operandenwert DATA4K angegeben sein.

Für SAM-Dateien, SETL-Verarbeitung: in jedem logischen Block dürfen höchstens 255 Sätze stehen, da die Positionierungsinformation nur 1 Byte lang ist. Diese Einschränkung entfällt bei der Verwendung eines 31-Bit-fähigen FCB.

BLKCTRL

für Anwenderdaten nutzbare Blocklänge (in Byte)

= PAMKEY

n * 2048

= DATA

bei ISAM: n * (2048 - 16) - 16
bei SAM: (n * 2048) - 16
bei PAM: (n * 2048) - 12

= DATA2K / DATA4K
(nur für ISAM möglich)

n * (2048 - 16) - 16

= NO

n * 2048

Hinweis

Bei der Frage, ob ein Satz in einen Block passt oder wie viele Sätze in einen Block passen, sind zusätzlich folgende Punkte zu berücksichtigen:

          • Für NK-ISAM-Dateien mit Mehrfachschlüsseln die Länge des Zeitstempels

          • Für NK-ISAM-Dateien mit RECFORM=F die Länge des Satzformatfeldes

          • Für NK-SAM-Dateien die Länge des Längenfeldes (Füllgradinformation)

= länge
Nur für Banddateien:
gibt die maximale Blocklänge in Byte an und legt gleichzeitig fest, dass die Datei aus Nichtstandardblöcken besteht, d.h. es werden keine PAM-Schlüssel geführt. Es sind zum einen die Operanden BUFOFF und RECFORM zu berücksichtigen, zum anderen FCBTYPE und CHAINIO.

RECFORM

Auswirkung

RECFORM=F

„länge“ gibt die Blocklänge einschließlich Länge der Pufferverschiebung an (siehe Operand (BUFOFF); alle Blöcke haben dieselbe Länge

RECFORM=V/U

„länge“ gibt die maximale Blocklänge einschließlich der Länge der Pufferverschiebung (siehe Operand BUFOFF) an, d.h. die Blocklänge ist (wie die Satzlänge) variabel
gilt RECFORM=V zusammen mit CODE=EBCDIC oder LABEL=(STD,n) mit n>1, muss „länge“ < 10000 sein (interne Umwandlung in Satzformat D)

FCBTYPE

zulässige Angabe für „länge“

SAM, BTAM

1 <= n <= 32768

PAM

-------

Hinweis

Soll eine bestehende Datei eröffnet werden, so wird empfohlen, den Nulloperanden zu verwenden. Der Wert wird aus dem Katalogeintrag zum OPEN-Zeitpunkt übernommen.
Soll eine Datei neuangelegt werden, so muss für NK4-Datenträger die Angabe BLKSIZE=(STD,n) mit 1 <= n <= 16 und n gerade erfolgen, ansonsten wird der OPEN abgewiesen.

BTAMRQS = zahl

Nur für BTAM:
gibt die Anzahl der Ein-/Ausgabe-Aufträge für BTAM an, die direkt nacheinander (ohne WAITs) an das System abgegeben werden können (MAV-Modus). Alle angenommenen Aufträge befinden sich gleichzeitig zur Bearbeitung im System. Es ist gewährleistet, dass eine serielle Bearbeitung erfolgt. Die Verarbeitung erfolgt also asynchron.

1 <= zahl <= 8.

Voreinstellung:         BTAMRQS = 1

Die Zugriffsmethode BTAM ist im Handbuch „Einführung in das DVS“ [1] beschrieben.

BUFOFF

Nur für SAM-Banddateien ohne Standardblockung oder Banddateien mit BLKCTRL=DATA:
legt die Pufferverschiebung (Buffer Offset) fest, d.h. die Länge eines Feldes, das am Anfang eines jeden Datenblocks eingefügt wird.

Voreinstellung:
Wird der Operand BUFOFF nicht angegeben (weder TFT noch FCB), so wird der Datei nach dem Eröffnen folgender Wert zugewiesen (sofern nicht der Wert aus dem Katalogeintrag übernommen wird):

  • für Banddateien mit BLKCTRL=DATA

    • bei FCBTYPE=SAM: BUFOFF=16

    • bei FCBTYPE=PAM: BUFOFF=12

  • für SAM-Banddateien ohne Standardblockung

    • bei RECFORM=V: BUFOFF=4

    • bei RECFORM=F/U: BUFOFF=0

= L 
Der BUFOFF-Wert wird dem HDR2-Kennsatz der Datei entnommen. Ist kein HDR2-Kennsatz vorhanden oder enthält das Feld „Pufferverschiebung“ Leerzeichen (X'4040'), tritt die Voreinstellung in Kraft.

= länge
gibt die Länge der „Pufferverschiebung“ an.

Für Dateien mit RECFORM=V gilt: 0 <= länge <= 4; ist BUFOFF=4, enthält dieses Feld die aktuelle Blocklänge.

CHAINIO = zahl

Nur für BTAM-Dateien bei geketteter Ein-/Ausgabe:
1 <= zahl <= 16; „zahl“ ist der Kettungsfaktor, der die Länge der Transporteinheit bei der Ein-/Ausgabe festlegt. „zahl“ bezeichnet dabei eine Anzahl Blöcke, sodass sich die Länge der Transporteinheit berechnet aus „zahl“ * Blocklänge.

Eine Angabe im Operanden LEN im BTAM-Aktionsmakroaufruf hat Vorrang gegenüber dem Produkt Blockgröße * zahl; dennoch muss CHAINIO angegeben werden, wenn mit „Kettung“ gearbeitet wird.

CHKPT

Für Banddateien:
steuert, ob und wann automatisch ein Fixpunkt an das Bandende zu schreiben ist oder wie die Datei bei Wiederanlauf weiterverarbeitet werden soll (zum Kommando RESTART-PROGRAM siehe Handbuch „Kommandos“ [3]).

Voreinstellung:         CHKPT=(NO,ACTIVE)

= (NO,...)
Es erfolgt keine automatische Fixpunktschreibung.

= (BLIM,...)
Wenn das mit dem BLIM-Operanden gesetzte Blocklimit erreicht ist, wird automatisch ein Fixpunkt geschrieben; der Operand BLIM muss angegeben werden.

= (FEOV,...)
Bei jedem FEOV-Makroaufruf wird automatisch ein Fixpunkt geschrieben.

= (ANY,...)
Ein Fixpunkt wird automatisch geschrieben, wenn die mit BLIM gesetzte Grenze erreicht ist oder ein FEOV-Makro aufgerufen wird; der Operand BLIM muss angegeben werden.

= (...,DUMMY)
Die Datei „pfadname“ wird bei einem Wiederanlauf mit dem Kommando RESTART-PROGRAM wie eine DUMMY-Datei behandelt.

= (...,ACTIVE)
Die Datei „pfadname“ wird bei einem Wiederanlauf (Kommando RESTART-PROGRAM) weiterverarbeitet.

CODE

Für Bandverarbeitung:
legt fest, ob und welche Umsetzungstabellen bei Ein-/Ausgabe verwendet werden.

Bei CODE=EBCDIC und CODE=ISO7 haben deutscher und internationaler Zeichensatz die gleiche Verschlüsselung.

Bei CODE=ISO7 und CODE=OWN ist Folgendes zu beachten:

  • die Blocklänge muss mit BLKSIZE=länge definiert werden, damit kein PAM-Schlüssel geschrieben wird;

  • bei Ausgaben im Locate-Mode ändert sich bei variablem Satzformat (RECFORM=V) der Inhalt des Satzlängenfeldes

= EBCDIC
Bei der Verarbeitung ist keine Code-Umsetzung erforderlich.

= ISO7
Die Banddatei ist/wird mit dem ISO-7-Bit-Code geschrieben, d.h. bei der Ausgabe wird EBCDI-Code in ISO-7-Bit-Code umgesetzt, bei der Eingabe ISO-7-Bit-Code in EBCDI-Code.

= OWN
Die Umsetzung erfolgt über vom Benutzer erstellte Tabellen, deren Adressen im Dateisteuerblock enthalten sein müssen. Gleichzeitig muss im LABEL-Operanden Kennsatzverarbeitung ausgeschaltet werden (LABEL=NO) oder mit LABEL=NSTD die Kennsatzverarbeitung ins Benutzerprogramm verlagert werden.

DUPEKY = YES

Für ISAM-Dateien:
haben mehrere Sätze den gleichen Primärschlüsselwert, überschreiben sie sich nicht gegenseitig, sondern werden in der Reihenfolge ihrer Erstellung hintereinander geschrieben. Der Operand DUPEKY=YES ist nur von Bedeutung, wenn die ISAM-Datei mit PUT-Makroaufruf sequenziell erstellt oder mit STORE-Makroaufruf nichtsequenziell erweitert wird. Der INSRT-Makroaufruf kann nicht dazu verwendet werden, Sätze mit gleichen Primärschlüsselwerten zu schreiben.

Voreinstellung:
Primärschlüsselwerte dürfen nicht mehrfach in der Datei vorkommen.

Bei NK-ISAM wird den Sätzen mit gleichen Primärschlüsselwerten intern ein 8-Byte-Zeitstempel angehängt, was bei der Definition der Satzlänge berücksichtigt werden sollte.

Die ISAM-Makroaufrufe PUT, STORE und INSRT wirken sich unterschiedlich aus, wenn ein Primärschlüsselwert mehrfach auftritt.

Makro aufruf

Mehrfachschlüsselnicht erlaubt

Mehrfachschlüssel erlaubt
(DUPEKY=YES)

PUT

Satz mit doppeltem Schlüssel wird nicht geschrieben;
EXLST-Ausgang: DUPEKY

die Sätze werden nacheinander in die Datei aufgenommen

STORE

der „neue“ Satz überschreibt den bereits mit diesem ISAM-Schlüssel gespeicherten Satz

der neue Satz wird hinter dem alten Satz in die Datei aufgenommen

INSRT

Satz mit doppeltem Schlüssel wird nicht geschrieben;
EXLST-Ausgang: DUPEKY

Satz mit doppeltem Schlüssel wird nicht geschrieben;
EXLST-Ausgang: DUPEKY

Hinweis

In einer Datei mit mehrfach auftretenden Primärschlüsselwerten können keine Sekundärschlüssel definiert werden.

EXIT

Gibt die Adresse an, auf die das Programm bei einem Fehler verzweigen soll. Wird der Operand nicht angegeben, führen Ausnahmebedingungen beim Zugriff auf die Datei zur abnormalen Programmbeendigung.
Wird der Ausgang genommen, wird im FCB eine Anzeige gesetzt. Die Anwenderroutine kann feststellen, um welche Ausgangsbedingung es sich handelte. Tritt während einer Ein-/Ausgabe ein Hardwarefehler auf, wird im FCB ein 5-Byte-Feld mit Informationen des CCB versorgt (Standard-Gerätebyte, Fehlerbytes 1-3, Ablaufteil-Markierungsbyte; siehe dazu auch Makro NDWERINF, "NDWERINF - Status-Bytes abfragen"). Im Anhang ("Fehlermeldungsschlüssel im DVS") sind diese Informationen näher beschrieben. Das Ablaufteil-Markierungsbyte und das Standard-Gerätebyte sind in der DSECT des CCB (IDCCB) definiert.

= (relaus)
Adresse einer Anwenderroutine im Benutzerprogramm, die die Fehlerbehandlung durchführt.

= relaus
Adresse des EXLST-Makroaufrufs, über dessen Fehlerausgänge verschiedene Anwenderroutinen adressiert werden, zur spezifischen Fehlerbehandlung.

FCBTYPE

Bestimmt die Zugriffsmethode bei der Dateiverarbeitung.

= ISAM
In Abhängigkeit vom Operanden BLKCTRL wird die Datei als NK-ISAM-Datei (BLKCTRL=DATA/DATA2K/DATA4K) oder als K-ISAM-Datei (BLKCTRL=PAMKEY) verarbeitet. Die Zugriffsmethode ISAM ist im Handbuch „Einführung in das DVS“ [1] beschrieben.

ISAM-spezifische Operanden: DUPEKY, KEYARG, KEYLEN, KEYPOS, LOGLEN, PAD, POOLLNK, VALLEN, WROUT und VALPROP.

= BTAM
Eine Banddatei wird mit der Zugriffsmethode BTAM verarbeitet (die Zugriffsmethode BTAM ist im Handbuch „Einführung in das DVS“ [1] beschrieben).

BTAM-spezifische Operanden: CHAINIO, OPEN=SINOUT, BTAMRQS

= PAM
Die Datei wird mit der Zugriffsmethode UPAM verarbeitet (siehe Beschreibung der entsprechenden Zugriffsmethode). PAM-Dateien können auf Band oder auf Platte gespeichert sein.

= SAM
Die Datei wird mit der Zugriffsmethode SAM bearbeitet. Sie kann auf Platte oder Band liegen. SAM-Dateien werden in der Regel sequenziell verarbeitet, mit den Zugriffsmethoden SAM oder auch UPAM. Die Zugriffsmethode SAM ist im Handbuch „Einführung in das DVS“ [1] beschrieben.

SAM-spezifische Operanden: BUFOFF, CLOSMSG, OPEN=UPDATE

FILE = pfadname

Bezeichnet die zu verarbeitende temporäre oder permanente Datei oder Dateigeneration mit: <c-string 1..54: filename 1..534>

Dateigenerationen können mit absoluter oder relativer Generationsnummer angesprochen werden.

Voreinstellung:

FILE=fcbadr (= symbolische Adresse des FCB)
Falls nicht vorhanden: Blanks

Pfadname bedeutet [:catid:][$userid]dateiname

catid
Katalogkennung; falls nicht angegeben, wird die Default-Catid der Benutzerkennung angenommen.

userid
Benutzerkennung; falls nicht angegeben, wird die Benutzerkennung des LOGON-Kommandos angenommen.

dateiname
vollqualifizierter Dateiname

FORM = SHORT

Gilt nur für die 24-Bit-Schnittstelle (Nicht-XS-Verarbeitung):
gibt an, dass für die logischen Routinen kein Speicherplatz reserviert werden soll.

Voreinstellung:

im 24-Bit-FCB wird Speicherplatz für die logischen Routinen reserviert

Die logischen Routinen übernehmen das Blocken und Entblocken der Datensätze bei SAM und ISAM; d.h. bei normaler ISAM-/SAM-Verarbeitung kann die Datei nicht eröffnet werden, wenn im FCB-Makroaufruf FORM=SHORT angegeben wurde. Für PAM-Dateien werden die logischen Routinen nicht benötigt, FORM=SHORT wird ignoriert.

Bei XS-Verarbeitung (PARMOD=31) wird FORM=SHORT ignoriert, da der 31-Bit-TU-FCB nur die Adressen der logischen Routinen enthält.

FSEQ

Für Banddateien, die zu einer Dateimenge (File Set) gehören:
gibt die (laufende) Nummer einer Datei innerhalb der Dateimenge an. Sind z.B. auf einem Band mehrere Dateien gleichen Namens gespeichert, wird der Zugriff über FSEQ gesteuert. Dies gilt auch für MF/MV-Sets.

Voreinstellung:

FSEQ = 0
(Bei der Verarbeitung des Bandes wird die erste Datei bearbeitet.)

= UNK
Nur zulässig für Dateien mit Standardkennsätzen:
die Anfangsposition der Datei ist unbekannt. Das Band wird bei der Dateiverarbeitung zurückgespult.

= NEW
Nur zulässig für noch nicht katalogisierte Dateien:
die Dateimenge wird um eine neue Datei erweitert. Es wird auf das Ende der Dateimenge positioniert. Die neue Datei wird hinter die bisher letzte Datei der Dateimenge geschrieben. Die „Dateifolgenummer“ wird um 1 erhöht.

= zahl
gibt die Dateifolgenummer von „pfadname“ innerhalb einer Dateimenge an;
0 <= zahl <= 9999.
FSEQ=0 bezeichnet wie FSEQ=1 die erste Datei der Dateimenge.

Ist „pfadname“ bereits katalogisiert, muss die FSEQ-Angabe mit dem FSEQ-Wert im Katalogeintrag übereinstimmen. Soll eine neue Datei erstellt werden, wird sie am Dateimengenende angefügt; das heißt, die Dateifolgenummer muss um 1 höher sein als die der bisher letzten Datei der Dateimenge.

Beim Eröffnen der Datei wird das Band nicht zurückgespult (rewind), falls es schon an der mit FSEQ angegebenen Stelle steht.

IOAREA1

Gibt an, ob und an welcher Adresse ein Pufferbereich beim OPEN zugewiesen werden soll.


Voreinstellung:

das DVS fordert zum OPEN-Zeitpunkt automatisch einen Pufferbereich (Klasse-5-Speicher) ober- oder unterhalb 16 MB an in Abhängigkeit von Adressierungs- und Generierungsmodus (siehe auch „Operanden IOAREA1/2").

= NO
Zum OPEN-Zeitpunkt wird kein Pufferbereich zugewiesen (nicht zulässig bei SAM- und K-ISAM-Verarbeitung)

= SECRET
Das Datenverwaltungssystem fordert zum OPEN-Zeitpunkt für die IOAREA1 einen Bereich im nichtprivilegierten Klasse-5-Speicher an, dessen Seiten bei einer Dump-Auswertung nicht ausgegeben werden.

= relaus
Adresse eines Pufferbereichs; ist dieser Bereich kleiner oder gleich einer Seite (4096 Byte), muss er in einer Seite enthalten und auf Wortgrenze ausgerichtet sein; ist er größer, muss er auf Seitengrenze ausgerichtet sein.

IOAREA2

Gibt an, ob bei Dateieröffnung ein zweiter Pufferbereich zugewiesen werden soll.

Voreinstellung:

das DVS fordert zum OPEN-Zeitpunkt automatisch einen Pufferbereich (Klasse-5-Speicher) ober- oder unterhalb 16 MB an in Abhängigkeit von Adressierungs- und Generierungsmodus (siehe auch „Operanden IOAREA1/2").

= NO
Für die Datei wird nur ein Pufferbereich zugewiesen, überlappte Verarbeitung ist nicht möglich (vgl. Operand OVERLAP=YES); für K-ISAM-Verarbeitung kann IOAREA2=NO nicht angegeben werden.

= SECRET
Das Datenverwaltungssystem fordert zum OPEN-Zeitpunkt für die IOAREA2 einen Bereich im nichtprivilegierten Klasse-5-Speicher an, dessen Seiten bei einer Dump-Auswertung nicht ausgegeben werden.

= relaus
Adresse des zweiten Pufferbereichs. Ist er kleiner oder gleich einer Seite (4096 Byte), muss er in einer Seite enthalten und auf Wortgrenze ausgerichtet sein, ist er größer als eine Seite, muss er auf Seitengrenze ausgerichtet sein.

IOPERF

Gilt nur für die 31-Bit-Schnittstelle:
Hiermit wird das gewünschte Performanceattribut bzgl. I/O-Verarbeitung in Verbindung mit einem Cache eingestellt.

= VHIGH
Die Daten sollen permanent im Cache gehalten werden.

= HIGH
Die Datei soll über einen Cache bearbeitet werden.

= STD
Es wird keine besondere Anforderung bzgl. der Performance gestellt. Die Datei wird nicht über einen Cache bearbeitet (Zu Cache-Verarbeitung siehe Handbuch „Einführung in das DVS“ [1]).

IOREG = r

Nur für SAM und ISAM:
legt fest, dass die Datei im Locate-Mode verarbeitet werden soll. „r“ gibt das Register an, das die Adresse des aktuellen Satzes enthält (2 <= r <= 12). Im Locate-Mode muss der Anwender selbst für die richtige Adressierung der Sätze im Puffer sorgen; das automatische Blocken/Entblocken der Sätze entfällt.

IOUSAGE

Gilt nur für die 31-Bit-Schnittstelle:
Mit diesem Parameter wird angegeben, wie der Cache für die Datei genutzt werden soll.

= RDWRT
Das Performanceattribut bezieht sich auf Lese- und Schreiboperationen.

= WRITE
Das Performanceattribut bezieht sich auf Schreiboperationen.

= READ
Das Performanceattribut bezieht sich auf Leseoperationen.

KEYARG = relaus

Nur bei ISAM-Dateien:
gibt die Adresse eines Feldes an, das den ISAM-Schlüssel für den aktuellen Satz enthält. Dieses Feld wird ausgewertet bei den ISAM-Makros GETKY, GETFL, ELIM und SETL.

KEYLEN = länge

Nur bei ISAM-Dateien:
gibt die Länge des ISAM-Schlüssels in Byte an;
1 <= länge <= 255 – VALLEN – LOGLEN

Voreinstellung:         KEYLEN = 8

KEYPOS = zahl

Nur bei ISAM-Dateien:
gibt die Position des ISAM-Schlüssels im Datensatz an. Bei Sätzen variabler Länge müssen 4 Byte für Satzlängen- und Steuerfeld berücksichtigt werden. Der ISAM-Schlüssel kann an beliebiger Stelle im Datensatz stehen, jedoch innerhalb einer Datei immer an derselben Position.

Voreinstellung:

für Dateien mit RECFORM = V: KEYPOS = 5
für Dateien mit RECFORM = F: KEYPOS = 1

LABEL

Nur für Banddateien:
legt die Kennsatzeigenschaften für Dateien auf Magnetband oder Magnetbandkassette fest; wie die Kennsätze verarbeitet werden, hängt vom SECLEV-Operanden ab.

Voreinstellung:         LABEL = (STD,1)

Für bereits bestehende Banddateien gilt immer der im VOL1-Kennsatz angegebene Normvermerk; für Ausgabedateien (OPEN OUTIN/OUTPUT) wird der LABEL-Operand ausgewertet. Enthält das Band schon Dateien oder Dateiabschnitte, wird der Normvermerk im VOL1-Kennsatz entsprechend der LABEL-Angabe versorgt/geändert (siehe auch „Hinweise zur Programmierung").

= STD
Datei und Datenträger erhalten/haben Standardkennsätze, entsprechend DIN 66029, Austauschstufe 1.

= (STD,zahl)
Datei und Datenträger erhalten/haben Standardkennsätze entsprechend der mit „zahl“ bezeichneten Austauschstufe der DIN-Norm 66029; 0 <= zahl <= 3

Auswirkungen des Operanden LABEL


(STD,0)

(STD,1)

(STD,2)

(STD,3)

DIN 66029
Austauschstufe
Stand

-

1

8/1972

2

6/1976

3

3/1978

Normvermerk im
VOL1-Kennsatz

_ (Leerzeichen)

1

2

3

CODE=ISO-
7/OWN

nicht
zulässig

STD-Blöcke in
Nichtstandardblöcke
umgewandelt

STD-Blöcke in
Nichtstandardblöcke
umgewandelt

STD-Blöcke in
Nichtstandardblöcke
umgewandelt



RECFORM=V:
Umwandlung in
D-Satzformat
(nicht b. BTAM)

RECFORM=V:
Umwandlung in
D-Satzformat

RECFORM=V:
Umwandlung in
D-Satzformat



RECSIZE > 9999
oder
BLKSIZE > 9999
OPEN-Fehler

RECSIZE > 9999
oder
BLKSIZE > 9999
OPEN-Fehler

RECSIZE > 9999
oder
BLKSIZE > 9999
OPEN-Fehler

CODE=EBCDIC



STD-Blöcke in
Nichtstandardblöcke
umgewandelt

STD-Blöcke in
Nichtstandardblöcke
umgewandelt

Zugriffsmethode



nur SAM

nur SAM

RECFORM=U




unzulässig für
Ausgabedateien;
umgewandelt in
(STD,2)

(STD,1) wird angenommen bei:

  • RECFORM=V und CODE=EBCDIC

  • BLKSIZE=STD

  • FCBTYPE=PAM oder FCBTYPE=BTAM

Bei (STD,0) muss CODE=EBCDIC gelten.

Ist die Angabe im Normvermerk (VOL1-Kennsatz) kleiner als (STD,zahl), wird „zahl“ aus dem Normvermerk übernommen.

= NO
Dateikennsätze werden weder gelesen noch geschrieben (keine Dateikennsatzverarbeitung). Hat das Band Standardkennsätze, verarbeitet das System die Bandkennsätze und prüft die Zugriffsrechte.

= NSTD
Die Banddatei hat/erhält Nichtstandardkennsätze verwendet, die Dateikennsatzverarbeitung erfolgt im Benutzerprogramm. Hat der Datenträger Standardkennsätze, führt das System Bandkennsatzverarbeitung durch und prüft die Zugriffsrechte.

LARGE_FILE

Nur für Plattendateien (Zugriffsmethoden ISAM, SAM und UPAM):
Der Operand LARGE_FILE bestimmt, ob die Dateigröße 32 GB überschreiten darf oder nicht (siehe "Dateien größer 32 GB").

= *FORBIDDEN
Die Dateigröße darf 32 GB nicht überschreiten.

= *ALLOWED
nur für 31-Bit-Schnittstellen und Dateien mit BLKCTRL not equal PAMKEY:
Die Dateigröße darf 32 GB überschreiten.

LBP_REQUIRED

gibt an, ob eine Last Byte Pointer (LBP) Verarbeitung gefordert wird. Der LBP gibt dann das genaue logische Dateiende einer PAM-Datei auf Bytegrenze an. Für nicht PAM-Dateien wird LBP_REQUIRED ignoriert.

=*NO
Es wird keine Last Byte Pointer Verarbeitung angefordert.

=*YES
Es wird gefordert, dass eine PAM-Datei auf Public-Space einen Last Byte Pointer (LBP) haben wird. Die Anforderung muss für eine neue Datei beim OPEN OUTIN erfolgen. Für diese Datei wird dann ein gültiger Last Byte Pointer erzeugt, in dem das Bit LBP_valid und der Wert des LBP bei der UPAM-Verarbeitung nach OPEN OUTIN oder INOUT im CLOSE gesetzt wird, wenn in die letzte Seite der Datei geschrieben wurde.

Für Dateien auf Privatplatte oder Band, für verschlüsselte Dateien und beim OPEN mit SHARUP=YES wird eine Last Byte Pointer Verarbeitung für PAM-Dateien mit DMS0D09 abgelehnt.

LINK = name

Über den hier angegebenen Dateikettungsnamen („name“) stellt das DVS eine Verbindung her zur TFT und dadurch zu mit FILE-Makro definierten Datei- oder Verarbeitungseigenschaften.

„name“ darf bis zu acht Zeichen lang sein. Soll der Dateikettungsname über die Kommandoschnittstelle ansprechbar sein, muss er dem Datentyp <structured_name 1..8> entsprechen (siehe Handbuch „Kommandos“ [3]).

LOCKENV

Nur für Zugriffsmethode UPAM:
bestimmt das Lockprotokoll, das der Benutzer zur Synchronisation verwendet.

= *HOST
Shared-Update-Verarbeitung ist nur am eigenen Rechner erlaubt. Die Synchronisation erfolgt mittels Task-Lock-Manager.

= *XCS
Shared-Update-Verarbeitung soll innerhalb eines XCS-Verbunds erlaubt sein; die Synchronisation muss mit dem Distributed-Lock-Manager erfolgen.

LOGLEN = länge

Nur für ISAM-Dateien:
bestimmt die Länge einer logischen Markierung im ISAM-Index in Byte; die maximale Länge ergibt sich aus der Länge des ISAM-Schlüssels und einer evtl. vorhandenen Wertmarkierung (siehe Operand VALLEN, "FCB - Dateisteuerblock definieren"), da der gesamte ISAM-Index höchstens 255 Byte lang sein darf. Es gilt also:

länge <= 255 – KEYLEN – VALLEN

Voreinstellung:         LOGLEN=0, d.h. der ISAM-Index enthält keine logische Markierung

Der ISAM-Index kann im Anschluss an den ISAM-Schlüssel eine logische Markierung (logical Flag) enthalten, mit der Selektionskriterien bitweise dual verschlüsselt werden. In K-ISAM-Dateien werden alle logischen Markierungen eines Blocks ausgewertet und das Resultat in den nächsthöheren Indexeintrag übernommen. NK-ISAM unterstützt die Flagverarbeitung kompatibel, übernimmt die Flags jedoch nicht in den Index-Eintrag.

OPEN

gibt an, mit welchem OPEN-Modus die Datei eröffnet werden soll.

Diese Angabe kann bei Dateieröffnung durch den OPEN-Makroaufruf überschrieben werden.

Voreinstellung:         OPEN = INPUT

Welche Angaben bei den Zugriffsmethoden zulässig sind, zeigt die folgende Tabelle.

OPEN-Modi beim Makro FCB

OPEN-Modus

ISAM

BTAM

SAM

UPAM

INPUT

x

x

x

x

EXTEND

x

-

x

-

INOUT

x

x

-

x

OUTIN

x

x

-

x

OUTPUT

x

x

x

-

REVERSE

-

x

x

-

SINOUT

-

x

-

-

UPDATE

-

-

x

-

x

OPEN-Modus zulässig

-

OPEN-Modus nicht zulässig

Die einzelnen OPEN-Modi sind unter den entsprechenden Zugriffsmethoden beschrieben.

= INPUT
Eine existente Datei (Definition siehe auch den Hinweis bei Abschnitt „Ablauf der OPEN-Verarbeitung“ im Kapitel „OPEN-Verarbeitung“ im Handbuch „Einführung in das DVS“ [1]) wird gelesen.

= EXTEND
Eine Datei wird erweitert, d.h. an das Dateiende werden weitere Datenblöcke angefügt, oder die Datei wird ab einem bestimmten Punkt überschrieben; es sind nur sequenzielle Schreiboperationen zulässig.

= INOUT
Eine existente Datei wird für nichtsequenzielle Verarbeitung eröffnet; es sind Schreib- und Leseoperationen zulässig.

= OUTIN
Die Datei wird erstellt oder – falls bereits existent – ab Dateianfang überschrieben. Es sind sowohl Schreib- als auch Leseoperationen zulässig (nichtsequenziell).

= OUTPUT
Die Datei wird sequenziell erstellt oder – falls bereits existent – ab Dateianfang überschrieben.

= REVERSE
Eine existente Datei wird als Eingabedatei für sequenzielles Lesen mit Verarbeitungsrichtung Dateiende -> Dateianfang eröffnet.
Über den Operanden VSEQ im Makro FILE kann die Dateiabschnittsnummer des zu verarbeitenden Dateiabschnitts angegeben werden. Banddateien sind nach Abschluss der OPEN-Verarbeitung auf das Ende des Dateiabschnitts positioniert. Ohne VSEQ-Angabe wird der letzte Dateiabschnitt bearbeitet. Automatischer Bandwechsel wird nicht unterstützt.

= SINOUT
Nur für BTAM-Banddateien:
Die Datei muss existent sein, das Band darf nicht auf Bandanfang positioniert sein; Datenblöcke können gelesen oder geschrieben werden, es erfolgt keine Kennsatzverarbeitung.
Eine Datei, die sich über mehrere Spulen erstreckt, kann nicht mit SINOUT verarbeitet werden.

= UPDATE
Nur für SAM-Plattendateien:
die Datei soll im Locate-Mode (Ortungsbetrieb) verarbeitet werden.

OPTION = code

Mit diesem Operanden kann eine Liste von Optionen angegeben werden. Standardmäßig werden keine Codes hinterlegt.
Für „code“ kann angegeben werden: GLODEF oder NOWAIT.

= GLODEF
Wird der Dateiname ohne explizite Userid angegeben und die Datei nicht unter der Benutzerkennung des Aufrufers gefunden, wird ein zweiter Leseversuch unter der System-Standardkennung durchgeführt (siehe Abschnitt „Zugriff über die System-Standardkennung“, Handbuch „Einführung in das DVS“ [1]). Dies gilt nur, wenn zum OPEN-Zeitpunkt kein TFT-Eintrag existiert, da die TFT bereits den Pfadnamen enthält.

= NOWAIT
Läuft eine Ein-/Ausgabe auf einen gerätebedingten Fehler (z.B. Gerät INOP), wartet das Programm nicht auf eine Reaktion des Operators, sondern verzweigt sofort auf den EXLST-Ausgang ERRADDR. Der Wert NOWAIT wird nur in Zusammenhang mit der Angabe PARMOD=31 und für die Zugriffsmethoden PAM und ISAM akzeptiert.

OVERLAP = YES

Nur für ISAM-Dateien:
in Zusammenhang mit der Definition eines zweiten Ein-/Ausgabebereichs im Programm (IOAREA2 im FCB), können Leseoperationen (GET/GETR) überlappend durchgeführt werden.

Voreinstellung:         OVERLAP = NO

Bei NK-ISAM bedeutet „überlappende Verarbeitung“, dass benachbarte Blöcke ebenfalls in den ISAM-Pool eingelesen werden. OVERLAP=YES sollte nur bei vorwiegend sequenziellem Lesen genutzt werden.

PAD = zahl

Nur für ISAM-Dateien, die sequenziell erstellt werden (ISAM-Makroaufruf PUT):
der „Blockfüllungsfaktor“ PAD gibt an, wie viel Platz im Datenblock für spätere Erweiterungen frei gehalten werden sollen (in Prozent der mit BLKSIZE definierten Blocklänge). Die PAD-Angabe wirkt sich somit auf die Blocksplittingrate bei nichtsequenzieller Dateierweiterung aus.

Voreinstellung:         PAD = 15

Die PAD-Angabe wirkt sich unterschiedlich aus bei NK-ISAM und K-ISAM. Bei NK-ISAM wird der Block mindestens bis zur PAD-Grenze gefüllt, bei K-ISAM höchstens bis zur PAD-Grenze.

PAMREQS = zahl

Nur für UPAM-Verarbeitung:
gibt an, wie viele asynchrone Ein-/Ausgaben höchstens gleichzeitig angefordert werden können (pro PAM-Makroaufruf; siehe PAM-Makro, Operand REQNO ("PAM - UPAM-Aktionen ausführen");
0 <= zahl <= 100).

Voreinstellung:         PAMREQS = 1

PAMTOUT = zahl

Nur für UPAM-Verarbeitung:
gibt an, wie lange ein Auftrag auf die angeforderten Sperren warten soll (in Sekunden).

0 <= zahl <= 43200

Voreinstellung:         PAMTOUT = 0

Sind nach der angegebenen Zeit die Sperren nicht verfügbar, wird der EXLST-Ausgang DLOCK oder PGLOCK angesprungen. PAMTOUT=0 bedeutet, dass die Steuerung sofort zurückgegeben wird, egal, ob die Sperren verfügbar sind oder nicht.

PARMOD

Gibt den Generierungsmodus für den Makroaufruf an.

Voreinstellung:

der durch den Makro GPARMOD oder durch den Assembler voreingestellte Wert für den Generierungsmodus

Der Generierungsmodus kann für alle Makroaufrufe eines Programms mit dem Makro GPARMOD global eingestellt werden.

Der PARMOD-Operand in den DVS-Makroaufrufen setzt die Voreinstellung durch einen GPARMOD-Aufruf oder (bei fehlendem GPARMOD) die Voreinstellung des Assemblers außer Kraft.

Alle PARMOD-Angaben für eine Dateieröffnung müssen den gleichen Wert enthalten.

= 24
Der Makroaufruf wird mit der Expansion für die 24-Bit-Schnittstelle aufgelöst.
Das Objekt ist nur im 24-Bit-Adressierungsmodus ablauffähig.

= 31
Der Makroaufruf wird adressierungsmodus-unabhängig generiert.

PASS = kennwort

Ist die Datei mit Kennwörtern geschützt, muss das für den Zugriff nötige Kennwort entweder in der Kennworttabelle des Auftrags enthalten sein oder im FCB mit PASS angegeben werden.

Das Kennwort kann maximal 4 Byte lang sein; das Kennwortfeld (ID1PASS) wird linksbündig mit Nullen aufgefüllt bzw. ein längeres Kennwort von links abgeschnitten (entsprechend der Verarbeitung von Adresskonstanten in Assembler-Programmen).

Die Regeln der Kennwortangabe sowie die Hierachie der Kennwörter sind an verschiedenen Stellen im Handbuch beschrieben; hier wird auf die Beschreibung im CATAL-Makroaufruf verwiesen.

POOLLNK = name

Nur für ISAM-Dateien, die in Benutzer-ISAM-Pools verarbeitet werden (NK-ISAM):
„name“ ist der bis zu 8 Zeichen lange „Poolkettungsname“, der in die TFT eingetragen wird. Dieser Poolkettungsname muss einem ISAM-Pool zugewiesen sein (siehe Makros ADDPLNK, "ADDPLNK - Poolkettungsnamen definieren" und CREPOOL, "CREPOOL - ISAM-Pool erzeugen").

RECFORM

Gibt zum einen das Satzformat der mit „pfadname“ bezeichneten Datei an, zum anderen, welche Steuerzeichen bei der Ausgabe über einen Drucker zu berücksichtigen sind.

Voreinstellung:         RECFORM = (V,N)

Das Satzformat wird bei den Zugriffsmethoden SAM und ISAM berücksichtigt.
UPAM verarbeitet Dateien nur blockweise, eine RECFORM-Angabe wird ignoriert.
BTAM ist zwar auch eine blockorientierte Zugriffsmethode, akzeptiert jedoch eine RECFORM-Angabe.

Die Satzformate sind im Kapitel „Zugriffsmethoden“ im Handbuch „Einführung in das DVS“ [1] detailliert beschrieben. Für den Zusammenhang zwischen RECFORM- und RECSIZE-Angabe siehe Operand RECSIZE; für die Drucksteuerzeichen-Auswertung wird auf das PRINT-DOCUMENT-Kommando (Operanden CONTROL-MODE und LINE-SPACING) in den Handbüchern „Kommandos“ [3] und „SPOOL“ [4] verwiesen.

Bei Band-Ausgabedateien mit RECFORM=V und CODEnot equalEBCDIC oder LABEL=(STD,n) (n > 1) wird der Inhalt von Satz- und Blocklängenfeld intern in das D-Format umgewandelt: der Wert für Satz-/Blocklänge wird als Dezimalzahl dargestellt. Die Blocklänge muss für solche Dateien kleiner als 10000 Byte sein. Die Format-D-Sätze werden bei der Eingabe wieder in die hexadezimale Form gebracht, bevor sie in den Bereich des Benutzers übertragen werden.

= V
„pfadname“ besteht aus Sätzen variabler Länge, d.h. der Anwender muss bei der Programmierung berücksichtigen, dass den Datensätzen ein 4 Byte langes Feld vorangestellt wird, das in den Bytes 1-2 die Satzlänge als Binärzahl enthält. Die Bytes 3-4 werden vom System genutzt. Bei Eingabedateien wird das Satzlängenfeld vom System versorgt, bei Ausgabedateien muss der Anwender das Satzlängenfeld versorgen. Eine Angabe im RECSIZE-Operanden bezeichnet die maximale Satzlänge. Für BTAM-Dateien wird die Angabe RECFORM=V wie RECFORM=U behandelt.

= F
„pfadname“ besteht aus Sätzen fester Länge, d.h. der Anwender braucht kein Satzlängen- und Steuerfeld zu berücksichtigen. Alle Sätze der Datei haben die gleiche Länge, die mit dem Operanden RECSIZE festgelegt wird. Bei BTAM bedeutet dies: alle Blöcke haben die gleiche Länge (hier ist die BLKSIZE-Angabe von Bedeutung, nicht die RECSIZE-Angabe).

= U
„pfadname“ besteht aus Sätzen „undefinierter“ Länge; jeder Datenblock enthält nur einen Satz, dessen Länge bei der Eingabe vom System, bei der Ausgabe vom Anwender in einem Register übergeben wird (siehe Operand RECSIZE). Außer bei BTAM wird bei RECFORM=U die Angabe LABEL=(STD,3) in (STD,2) umgewandelt.

Die Angabe RECFORM=U ist für ISAM-Dateien nicht zulässig.

= (...,N)
„pfadname“ ist keine Druckdatei, enthält also keine Drucksteuerzeichen und sollte nicht mit Steuerzeichenauswertung ausgedruckt werden.

= (...,M)
Das erste Datenbyte eines jeden Datensatzes wird als Steuerzeichen im EBCDI-Code interpretiert. Die Datei kann mit dem Kommando PRINT-DOCUMENT, Operand LINE-SPACING=*BY-EBCDIC-CONTROL ausgedruckt werden. Bei ISAM-Dateien wird der ISAM-Index berücksichtigt.

= (...,A)
Das erste Datenbyte eines jeden Datensatzes wird als ASA-Steuerzeichen interpretiert. Die Datei kann mit dem Kommando PRINT-DOCUMENT, Operand LINE-SPACING=*BY-ASA-CONTROL ausgedruckt werden.

RECSIZE

Gibt die Satzlänge an, abhängig vom Wert des RECFORM-Operanden.

Voreinstellung:

bei RECFORM = V: RECSIZE = BLKSIZE
bei RECFORM = F: keine Voreinstellung

= länge
maximale Satzlänge in Byte.

Für RECFORM=V:
Für NK-ISAM-Dateien ist zu beachten, dass bei Ausnutzen der maximalen Satzlänge Überlaufblöcke entstehen. Für ISAM-Dateien darf die max. Satzlänge BLKSIZE nicht überschreiten.
Für SAM-Dateien darf die max. Satzlänge BLKSIZE-4 betragen, mit BLKCTRL= DATA nur max. BLKSIZE-16.
Für Banddateien ist die Wechselwirkung mit den Operanden CODE und LABEL zu beachten, siehe „Auswirkungen des Operanden LABEL".

Für RECFORM=F (alle Sätze der Datei sind gleich lang):

Für ISAM-Dateien darf die max. Satzlänge BLKSIZE-4 nicht überschreiten.
Für SAM-Dateien darf die max. Satzlänge BLKSIZE betragen, mit BLKCTRL=DATA nur max. BLKSIZE-16.

Wird mit GET (Lesen) im Übertragungsmodus gearbeitet für Dateien mit RECFORM=V und RECSIZE=länge im Makro FCB und ist der zu lesende Satz länger als bei RECSIZE angegeben, so ist zu beachten:

      • bei ISAM-Dateien wird mit der Fehlermeldung DMS0AAD abgebrochen

      • bei SAM-Dateien wird der Satz in voller Länge in den Programmbereich übertragen, unabhängig von der Angabe bei RECSIZE.

Wird mit PUT (Schreiben) im Übertragungsmodus gearbeitet für Dateien mit RECFORM=V und RECSIZE=länge im Makro FCB und ist der zu schreibende Satz länger als bei RECSIZE angegeben, so tritt Folgendes ein:

      • bei ISAM-Dateien wird der Satz in voller Länge in die Datei geschrieben, unabhängig von der Angabe bei RECSIZE.

      • bei SAM-Dateien wird der Satz in voller Länge in die Datei geschrieben, unabhängig von der Angabe bei RECSIZE.

= reg
für RECFORM=U: mit dem Operanden RECSIZE muss ein Mehrzweckregister (2 <= reg <= 12) angegeben werden, das bei Ein- bzw. Ausgabe die aktuelle Satzlänge enthält. Bei der Eingabe wird das Register vom System versorgt, bei der Ausgabe muss es der Anwender versorgen.

RETPD = tage

Der Benutzer kann mit „RETPD“ eine Schutzfrist vereinbaren, während derer kein Schreibzugriff (Ändern, Löschen) möglich ist.

Voreinstellung:         RETPD=0, d.h. die Datei kann jederzeit geändert/gelöscht werden.

„tage“ ist eine ganze Zahl (tage <= 32767). Sie gibt die Dauer der Schutzfrist in Tagen an. Ist die Schutzfrist abgelaufen, wird die Datei nicht automatisch gelöscht, es wird lediglich wieder Schreibzugriff zugelassen.

Die Schutzfrist kann auch über das Kommando MODIFY-FILE-ATTRIBUTES oder den Makro CATAL (siehe "CATAL - Katalogeintrag bearbeiten") beeinflusst werden: die RETPD-Angabe wird dann sofort in den Katalogeintrag übernommen; für Banddateien kann CATAL nur vor der ersten Dateieröffnung genutzt werden.

SAM_NODE_FILE_ENABLE

gibt an, ob Verarbeitung von SAM-Node-Files zugelassen wird oder nicht.

=*NO
Die Verarbeitung von SAM-Node-Files wird mit dem Returncode DMS0D1A abgewiesen.

=*YES
Die Verarbeitung von SAM-Node-Files wird vom Anwender gefordert. Da die Verarbeitung von SAM-Node-Files von der SAM-Verarbeitung von Dateien auf öffentlichen Datenträgern abweicht, soll mit dem SAM_NODE_FILE_ENABLE Parameter verhindert werden, dass ältere Anwendungen unbeabsichtigt auf SAM-Node-Files zugreifen.

Bei der Verarbeitung von SAM-Node-Files werden zur Zeit die Wiedergewinnungs-Adressen auf die gleiche Art wie für SAM-Dateien auf öffentlichen Datenträgern berechnet. Die an die Anwendung zurück gegebenen Wiedergewinnungs-Adressen sind nur gültig zwischen OPEN und CLOSE.

Diese Wiedergewinnungs-Adressen sind nach dem CLOSE und einem anschließende OPEN nicht mehr gültig.

In einem weiteren Schritt soll in späteren BS2000 Versionen der Anwender mithilfe des Parameters PROCESSING_MODE beim OPEN festlegen können, ob die Wiedergewinnungsadressen wie bisher berechnet werden sollen oder immer die korrekten Wiedergewinnungsadressen zurückgeben werden, die auch nach dem CLOSE und einem neuen OPEN verwendet werden können oder ob überhaupt keine Wiedergewinnungsadressen verwendet werden und die Datei nur sequentiell verarbeitet werden soll.

SECLEV

Nur für Bandverarbeitung:
der Operand SECLEV (Security Level) bezieht sich auf den TPIGNORE-Eintrag im Benutzerkatalog-Eintrag (vgl. Kommando SHOW-USER-ATTRIBUTES). Im Dialogbetrieb wird eine SECLEV-Angabe ignoriert. Im Stapelbetrieb können dazu berechtigte Benutzer mit SECLEV festlegen, ob Fehlermeldungen unterdrückt und/oder zusätzliche Kennsatzprüfungen durchgeführt werden sollen.

= HIGH
Fehlermeldungen werden im Stapelbetrieb an der Konsole ausgegeben. Läuft der Auftrag unter einer Benutzerkennung mit der Berechtigung TPIGNORE=YES im Eintrag im Benutzerkatalog, kann der Operator die Fehlermeldung ignorieren.

= LOW
nur für den Band-/Dateieigentümer zulässig, wenn im Eintrag im Benutzerkatalog TPIGNORE=YES definiert ist: im Stapelbetrieb werden bestimmte Fehlermeldungen unterdrückt.

= (...,OPR)
Die Angabe OPR (= Overwrite Protection) veranlasst das System zusätzliche Kennsatzprüfungen durchzuführen:

      • wird eine Datei innerhalb eines Bandes im Anschluss an eine bereits existierende Datei erstellt, werden die Kennsätze der vorhergehenden Datei überprüft;

      • das Freigabedatum der neuen Datei darf nicht höher sein als das der vorhergehenden.

SHARUPD

Nur für ISAM- oder UPAM-Plattendateien:
gibt an, ob mehrere Aufträge gleichzeitig die Datei in einem anderen Modus als OPEN INPUT eröffnen dürfen.

= NO
Sobald die Datei von einem Auftrag mit OPEN not equal INPUT eröffnet wird, wird sie für andere Aufträge gesperrt. Gleichzeitiger Zugriff mehrerer Aufträge auf die Datei ist nur möglich, wenn sie in allen Aufträgen als Eingabedatei verwendet wird, d.h. OPEN INPUT eröffnet ist. Ist die Datei bereits OPEN INPUT eröffnet, wird auch jeder Versuch, sie anders zu eröffnen, abgewiesen.

= YES
Nur für ISAM- oder PAM-Dateien:
die Datei kann gleichzeitig von mehreren Aufträgen bearbeitet werden; in allen Aufträgen muss jedoch SHARUPD=YES gelten, wenn Schreiben erlaubt ist. Bei UPAM kann der Anwender Datenblöcke, solange er sie verarbeitet, vor Zugriff durch andere Aufträge schützen. Bei ISAM werden diese Sperren – wenn nötig – vom System automatisch gesetzt, bei NK-ISAM als Satzsperren bzw. „Schlüsselsperren“, bei K-ISAM als Blocksperren. Bei NK-ISAM müssen Dateien, die für Shared-Update-Verarbeitung eröffnet werden, in hostspezifischen ISAM-Pools verarbeitet werden. Gleichzeitig ist für ISAM-Dateien die WROUT-Funktion eingeschaltet (siehe Operand WROUT).

= WEAK
Nur für UPAM-Verarbeitung:
garantiert Schreibsicherheit, aber nicht Lesesicherheit: nur ein Auftrag kann die Datei zur Aktualisierung eröffnen, andere Aufträge können sie aber gleichzeitig als Eingabedatei nutzen. Der Benutzer muss in seinem Programm berücksichtigen, dass sich der Inhalt der Datei ändern kann, während er sie als Eingabedatei verwendet.
Nachstehende Tabelle zeigt die verschiedenen konkurrierenden Ebenen mit den jeweils angebotenen Schutztypen:


SHARUPD-
Options

Benutzeraktionen

Sicherheitstyp
READ

Sicherheitstyp
WRITE

YES

n Benutzer lesen und m Benutzer schreiben

*

*

WEAK

n Benutzer lesen und 1 Benutzer schreibt

-

*

NO

n Benutzer lesen oder 1 Benutzer schreibt

*

*

Der Operand WEAK wird nur bei PAM-Dateien unterstützt.
Zu den erlaubten SHARUPD-Kombinationen siehe Kapitel „UPAM“, Handbuch „Einführung in das DVS“ [1].
Bei FCBTYPE not equal PAM wird SHARUPD=WEAK wie SHARUPD=NO verarbeitet.

STREAM

Nur für BTAM-Banddateien:
Mit STREAM legt der Anwender fest, ob er im „Streaming-Modus“ arbeiten will. Das bedeutet einerseits, dass er sowohl Kettung von Datenblöcken als auch den MAV-Modus verwendet (die entsprechenden Angaben sind vom Benutzer zu machen!) und dass intern die einzelnen Aufträge auch wieder gekettet werden sollen. Andererseits bedeutet es, dass im Falle eines „Streaming“-Device dieser Modus hardwaremäßig eingestellt werden soll.

= NO
Streaming-Modus nicht einschalten.

= YES
Streaming-Modus einschalten.

TAPEWR

Nur für Dateien auf Magnetbandkassetten:
der Anwender kann bestimmen, ob die Ausgabe gepuffert erfolgen soll.

= DEVICE-BUFFER
Die Ausgabe wird über die Gerätesteuerung gepuffert, wodurch eine hohe Datenübertragungsrate erzielt werden kann.

= IMMEDIATE
Die Ausgabe wird nicht gepuffert.

TPMARK

Nur für Banddateien ohne Standardkennsätze:
legt fest, ob Abschnittsmarken geschrieben werden, d.h. der Operand TPMARK wird nur für Banddateien mit LABEL=NO/NSTD beim OPEN ausgewertet. Dateien mit LABEL= (STD,n) erhalten standardmäßig Abschnittsmarken nach den Kennsätzen.

= NO
Es wird keine Abschnittsmarke geschrieben.

= YES
Banddateien mit NSTD-Kennsätzen:
die Abschnittsmarke folgt dem Kennsatz.

Banddateien ohne Kennsätze:
die Abschnittsmarke wird an den Beginn des Bandes geschrieben.

TRANS

Nur für Banddateien, die als Eingabedateien genutzt werden und die nicht mit CODE= EBCDIC erstellt wurden. TRANS legt fest, wie der Code der Datei beim Lesen umgesetzt werden soll.

= YES
ISO-7-Bit-Code oder OWN-Code werden in EBCDI-Code umgesetzt.

= NO
ISO-7-Bit-Code wird mit einer führenden Null in ein 8-Bit-Format umgesetzt.

TRTADR = relaus

Der Operand gibt die Adresse der benutzereigenen Übersetzungstabelle für das Lesen von einer Banddatei an. Er darf nur in Verbindung mit CODE=OWN oder CODE null angegeben werden.

TRTADW = relaus

Der Operand gibt die Adresse der benutzereigenen Übersetzungstabelle für das Schreiben in einer Banddatei an. Er darf nur bei CODE=OWN oder CODE null angegeben werden.

UPAM_RAW_ACCESS

gibt an, wie eine Anwendung auf SAM-Node-Files mit UPAM Mitteln zugreift. Wenn nicht auf ein SAM-Node-File zugegriffen wird, wird die Angabe ignoriert.

=*NO
Beim UPAM OPEN auf ein SAM-Node-File wird auf logische SAM-Blöcke zugegriffen. Diese werden beim Lesen mithilfe des SAM-Konverters aus den UNIX-Daten erzeugt bzw. beim Schreiben zu einem Unix-Byte-Strom konvertiert und in die UNIX-Datei geschrieben.

Bei OPEN OUTIN oder INOUT mit UPAM_RAW_ACCESS=*NO muss SAM_NODE_FILE_ENABLE=*YES angegeben werden, um Schreibzugriff auf die Datei zu erhalten. Anderenfalls wird die Verarbeitung mit DMS0D1A abgewiesen. Für OPEN INPUT ist die Angabe von SAM_NODE_FILE_ENABLE=*YES nicht notwendig.

=*YES
Bei UPAM OPEN auf ein SAM-Node-File wird der SAM-Konverter deaktiviert, so dass die Anwendung unstrukturierte Daten empfängt bzw. in die UNIX-Datei schreibt. Der Wert des Parameters SAM_NODE-FILE_ENABLE spielt dabei keine Rolle.

VALLEN = länge

Nur für ISAM-Dateien:
legt die Länge einer Wertmarkierung (Value Flag) im ISAM-Index fest.

Voreinstellung:         VALLEN = 0 (der ISAM-Index enthält keine Wertmarkierung)

länge <= 255 – KEYLEN – LOGLEN

Wertmarkierungen werden bei NK-ISAM (BLKCTRL=DATA) und K-ISAM (BLKCTRL= PAMKEY) unterschiedlich behandelt.

Bei K-ISAM werden sie blockweise ausgewertet und entsprechend der VALPROP-Angabe in den nächsthöheren Indexeintrag übernommen.
NK-ISAM unterstützt die Verarbeitung von Wertmarkierungen kompatibel, übernimmt die Wertmarkierungen jedoch nicht in den Index-Eintrag.

VALPROP

Nur für ISAM-Dateien in Zusammenhang mit BLKCTRL=PAMKEY d.h. für K-ISAM-Dateien (NK-ISAM ignoriert eine VALPROP-Angabe):
VALPROP (= Value Propagation) legt fest, wie die Wertmarkierung in die Indexeinträge zu übernehmen ist.

= MIN
Der niedrigste Wert für die Wertmarkierung innerhalb eines Daten- oder Indexblocks wird in den Indexeintrag der nächsthöheren Stufe übernommen.

= MAX
Der höchste Wert der Markierung im Daten-/Indexblock wird übernommen.

VARBLD = reg

Nur für SAM-Dateien mit RECFORM=V, die im Locate-Mode verarbeitet werden (siehe auch Operand IOREG):
legt das Register fest (2 <= reg <= 12), in dem das DVS den freien Platz im zu schreibenden Block anzeigt (in Byte).

WRCHK

Nur für die Verarbeitung von Plattendateien:
gibt an, ob bei Schreiboperationen „Kontroll-Lesen“ erfolgt, „WRCHK“ wird nicht in den Katalogeintrag aufgenommen und muss daher vor jeder Verarbeitung/vor jedem Öffnen wiederholt werden.

Kontroll-Lesen: Prüfung auf Aufzeichnungsfehler (-> Error-Recovery-Maßnahmen). Ist der Fehler nicht behebbar, wird der EXLST-Ausgang ERRADR angestoßen. Das Kontroll-Lesen geht wegen der zusätzlichen Plattenumdrehungen stark zulasten der Performance.

= NO
Es erfolgt kein Kontroll-Lesen.

= YES
Es erfolgt Kontroll-Lesen.

WROUT

Für ISAM-Verarbeitung:
WROUT steuert das Zurückschreiben geänderter Blöcke auf die Platte. Bei Shared-Update-Verarbeitung oder in taskübergreifenden ISAM-Pools gilt implizit WROUT=YES: geänderte Blöcke werden stets sofort auf Platte zurückgeschrieben (siehe auch „Hinweise zur Programmierung").

Voreinstellung:

  • bei „normaler“ Dateiverarbeitung: WROUT = NO

  • bei Shared-Update-Verarbeitung: WROUT = YES

  • in taskübergreifenden ISAM-Pools: WROUT = YES

  • in tasklokalen ISAM-Pools, für die WROUT=YES gilt: WROUT = YES

= NO 

Der geänderte Block wird erst dann zurückgeschrieben, wenn der Inhalt des betreffenden Pufferbereichs ersetzt werden muss, spätestens beim Schließen der Datei. 

= YES
Jeder geänderte Block wird sofort zurückgeschrieben, sodass die Konsistenz der Daten auf Platte und im virtuellen Speicher stets gewährleistet ist. Allerdings ist damit auch eine erhöhte Ein-/ Ausgaberate verbunden.

Rückkehr-Information (Beispiel)

Der vom OPEN im FCB-Feld ID1ECB hinterlegte Returncode 0D33 hat folgende Bedeutung, je nach den Angaben des Aufrufers im Dateinamen und im OPTION Parameter.

Dateiname

OPTION

Bedeutung von 0D33

:cat:$user.file


Die Datei ist unter der Kennung $user auf dem Pubset cat nicht vorhanden.

$user.file


Die Datei ist unter der Kennung $user auf dem Default-Pubset von $user nicht vorhanden.

$.file


Die Datei ist unter der mit dem Systemparameter DEFLUID festgelegten Kennung auf dem dort angegebenen Pubset nicht vorhanden.

:cat:$.file


Die Datei ist unter der mit dem Systemparameter DEFLUID festgelegten Kennung auf dem Pubset cat nicht vorhanden.

file

nicht
GLODEF

Die Datei ist unter der Aufrufer-Kennung auf deren Default-Pubset nicht vorhanden.

file

GLODEF

Die Datei ist weder unter der Aufrufer-Kennung auf deren Default-Pubset noch unter der mit dem Systemparameter DEFLUID festgelegten Kennung auf dem dort angegebenen Pubset vorhanden.

:cat:file

nicht
GLODEF

Die Datei ist unter der Aufrufer-Kennung auf dem Pubset cat nicht vorhanden.

:cat:file

GLODEF

Die Datei ist weder unter der Aufrufer-Kennung noch unter der mit dem Systemparameter DEFLUID festgelegten Kennung auf dem Pubset cat vorhanden.

Eine Modifikation des Dateinamens im Feld ID1FILE innerhalb einer OPEN-EXIT-Routine wird ignoriert.

Hinweise zur Programmierung

FCB-Aufbau

Der Aufbau eines 31-Bit-FCBs unterscheidet sich wesentlich von dem eines 24-Bit-FCBs:

  • Der FCB-Makro expandiert im 31-Bit-Modus eine CSECT-Anweisung, wenn vorher noch kein weiterer DVS-Aktionsmakro im 31-Bit-Modus aufgerufen worden ist.

  • Es gibt keine FCB-Erweiterung mehr, d.h. alle Daten sind im FCB selbst untergebracht.

  • Die logischen Routinen der Zugriffsmethoden SAM und ISAM werden nicht mehr in den FCB eingebracht; der FCB enthält nur noch die Adressen der logischen Routinen.

  • Alle 3-Byte-Adressen sind eliminiert, es wurden die entsprechenden 4-Byte-Adressen eingeführt.

  • Der FCB hat eine feste einheitliche Größe.

FCB-Modifizierung

Bei Dateieröffnung prüft das DVS die FCB-Einträge und legt mit diesen Einträgen einen privilegierten Dateisteuerblock (TPR-FCB) an, eine spätere Änderung der FCB-Werte wird ignoriert. Der Dateisteuerblock kann nur dann modifiziert werden, wenn die Datei geschlossen (CLOSE) und anschließend wieder eröffnet wird (OPEN).

Wird ein Operand im FCB-Makroaufruf nicht angegeben, wird der Standardwert angenommen. Bei der Angabe eines Nullstring-Operanden wird angenommen, dass der Wert des Operanden von einem FILE-Aufruf oder vom Katalogeintrag der Datei geliefert wird (Ausnahme: Operand LINK).

Operanden für Plattendateien

FCB-Operand

Nulloperand:
über Katalog
versorgter Operand

BTAM

SAM

ISAM

PAM

Operand im
FILE-Makro

BLIM


i

x

i

i

x

BLKCTRL

x

x

x

x

x

x

BLKSIZE

x

x

x

x

x

x

BTAMRQS


x

i

i

i


BUFOFF

x

i

x

i

i

x

CHAINIO


x

i

i

i

x

CHKPT


i

x

i

i

x

CODE

x

x

x

i

i

x

DUPEKY


i

i

x

i

x

EXIT


x

x

x

x


FCBTYPE

x

x

x

x

x

x

FILE


x

x

x

x

x

FORM


i

x

x

i


FSEQ

x

x

x

i

x

x

IOAREA1


x

x

x

x


IOAREA2


x

x

x

x


IOPERF


i

x

x

x

x

IOREG


x

x

x

i


IOUSAGE


i

x

x

x

x

KEYARG


i

i

x

i


KEYLEN

x

i

i

x

i

x

KEYPOS

x

i

i

x

i

x

LABEL


x

x

i

x

x

LBP_
REQUIRED


i

i

i

x


LINK


x

x

x

x

x

LARGE_FILE


i

x

x

x

x

LOCKENV


i

x

x

x

x

LOGLEN

x

i

i

x

i

x

OPEN


x

x

x

x

x

OPTION


x

x

x

x

x

OVERLAP


i

i

x

i

x

PAD


i

i

x

i

x

PAMREQS


i

i

i

x


PAMTOUT


i

i

i

x


PARMOD


x

x

x

x


PASS


x

x

x

x


POOLLNK


i

i

x

i

x

RECFORM

x

x

x

x

i

x

RECSIZE

x

x

x

x

i

x

RETPD


x

x

x

x

x

SAM_NODE_
FILE_ENABLE


i

x

i

i


SECLEV


x

x

i

x


SHARUPD


i

x

x

x

x

STREAM


x

x

i

i


TAPEWR


x

x

i

x

x

TPMARK


x

x

i

x

x

TRANS


x

x

i

i

x

TRTADR


x

x

i

i


TRTADW


x

x

i

i


UPAM_RAW_
ACCESS


i

i

i

x


VALLEN

x

i

i

x

i

x

VALPROP

x

i

i

x


x

VARBLD

x

i

x

x

i


WROUT


i

i

x

i

x

WRCHK


i

x

x

x

x

Legende

i

x

Operanden werden ignoriert

Operanden können angegeben werden

Operand BLKSIZE

Der Anwender muss/kann BLKSIZE=(STD,n) angeben, wenn

  • der Datensatz länger ist als 2048 Byte oder

  • die Satzlänge unwirtschaftlich ist für eine Blocklänge von 2048 Byte. Wenn der Benutzer Sätze fester Länge (RECSIZE=F) zu 1500 Byte hat und BLKSIZE=STD definiert hat, so würden pro Block 548 Byte verschwendet werden. Würde der Benutzer hingegen BLKSIZE=(STD,3) angeben, so würden von den 6144 Byte (3 x 2048) 6000 Byte benutzt werden und bei drei Blöcken nur 144 Byte verschwendet werden. Die Verwendung sehr großer Blocklängen führt jedoch zu erhöhter Paging-Rate.

Operanden IOAREA1/2

Wenn eine Datei eröffnet wird, werden die Adressen der IOAREAs (falls erforderlich) erstellt und überprüft. Sie werden dann in den Systemspeicher übertragen. Demzufolge werden alle Änderungen, die diese Adressen betreffen, im FCB vollständig ignoriert. Neue Adressen werden nur wirksam nach CLOSE- und anschließendem OPEN-Makroaufruf.

Diese Art der Verarbeitung wurde gewählt, um die interne Systemverarbeitungszeit (Overhead) gering zu halten, da die Adressen der IOAREAs nicht vor jedem Aktionsmakroaufruf überprüft werden müssen. PAM und BTAM lassen die Definition der Pufferadressen in ihren Aktionsmakroaufrufen zu. Diese Pufferadressen werden bei Ausgabe der Aktionsmakroaufrufe überprüft.

Wird eine SAM-Datei im UPDATE-Modus eröffnet, so wird der Puffer IOAREA2 nicht verwendet.

Ist IOAREA1=NO angegeben, so muss der Wert für IOAREA2 ebenfalls NO sein. Ist IOAREA1 mit relaus definiert, muss der Wert für IOAREA2 ebenfalls „relaus“ oder NO sein. Ist IOAREA1 nicht angegeben, so darf IOAREA2 ebenfalls nicht angegeben werden oder muss mit NO definiert sein.

Operand LABEL

Für eine Datei, die INPUT, INOUT, EXTEND oder REVERSE eröffnet wird, ignoriert das System LABEL=(STD,n) und bezieht sich auf die im Bandkennsatz (VOL1) angegebene Austauschstufe (Normvermerk).

Für eine Ausgabedatei ist die hier angegebene Austauschstufe maßgebend. Wurde nur STD angegeben, ist die Austauschstufe 3 maßgebend.

Enthält das zugewiesene Band schon eine oder mehrere Dateien bzw. Dateiabschnitte, dann muss die Austauschstufe mit dem Normvermerk im ersten Bandkennsatz übereinstimmen.

Andernfalls wird der Normvermerk entsprechend versorgt:

Austauschstufe

0

1

2

3

Normvermerk

Leerzeichen

1

2

3

Einschränkungen

  • Austauschstufe 1: außer bei BTAM werden bei CODE=ISO7/OWN Standardblockangaben in Nichtstandardblockangaben und V-Sätze (RECFORM=V) in D-Sätze konvertiert. Ist dies nicht möglich, z.B. wenn RECSIZE/BLKSIZE > 9999, erfolgt ein OPEN-Fehler.

  • Austauschstufe 2: Nur SAM-Dateien dürfen verarbeitet werden. STD-Blockangaben werden wie bei (STD,1) konvertiert, wobei hier auch Bänder im EBCDIC davon betroffen sind.

  • Austauschstufe 3: Die Angabe RECFORM=U ist für Ausgabedateien unzulässig.

Regeln

  • Aus LABEL=(STD,3) wird (STD,1) bei FSEQ=0/1.

  • bei RECFORM=V und CODE=EBCDIC gilt implizit LABEL=(STD,1).

  • bei BLKSIZE=STD gilt implizit LABEL=(STD,1).

  • bei BLKSIZE=länge und RECFORM=U gilt implizit LABEL=(STD,2).

  • Hat ein Band schon eine bzw. mehrere Dateien bzw. Dateiabschnitte und ist der Normvermerk im ersten Bandkennsatz kleiner als die implizit angenommene DIN-Austauschstufe, wird die Versionsnummer dem Bandkennsatz entnommen.

Operand WROUT

Die Funktion WROUT erhöht die Sicherheit der ISAM-Dateibearbeitung. Bei einem Systemzusammenbruch sind dann nur die vom letzten Makroaufruf bearbeiteten Sätze fehlerhaft bzw. gehen verloren (Ausnahme: beim Makroaufruf PUT werden nur Blöcke geschrieben).

Die erhöhte Anzahl von Ein-/Ausgabe-Operationen verringert den Durchsatz.

Die Funktion WROUT wirkt nach den ISAM-Aktionsmakroaufrufen STORE, ELIM, INSRT und PUTX.

ISAM SHARED UPDATE enthält die Funktion WROUT; hier ist der Operand ohne Bedeutung.

Eine Meldung erfolgt immer bei einem von „YES“ oder „NO“ abweichenden Wert.

Der Wert im FILE-Aufruf hat Priorität vor dem Wert im FCB-Makroaufruf. Nur wenn im FILE-Aufruf der Operand nicht angegeben ist bzw. der Operandenwert fehlt (d.h. WROUT=,...), ist der im FCB-Makroaufruf angegebene Wert maßgeblich.