Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Wiedergewinnungsadresse

Das DVS versorgt beim Erstellen einer SAM-Datei im FCB eine Wiedergewinnungsadresse, die für direkten Zugriff bei späterer Verarbeitung genutzt werden kann. Die Wiedergewinnungsadresse besteht aus Block- und Satznummern, die Blocknummer bezieht sich immer auf den logischen Datenblock (nicht auf PAM-Seiten), die Satznummer zeigt die Position des Satzes innerhalb eines Datenblocks. Bei Mehrbanddateien ist zu beachten, dass die Blocknummer nur innerhalb eines Bandes geführt wird.

Im 31-bit-TU-FCB, d.h. bei XS-Programmierung, ist die Wiedergewinnungsadresse auf zwei jeweils ein Wort lange Felder aufgeteilt: das Feld ID1BLK# enthält die Blocknummer innerhalb der Datei, das Feld ID1REC# die Satznummer innerhalb des Datenblocks. Satz- und Blockzähler werden bei PUT und GET vom System automatisch hochgezählt. Wird eine Datenübertragung ausgelöst, wird der Satzzähler automatisch zurückgesetzt.

Bei Nicht-XS-Verarbeitung ist die Wiedergewinnungsadresse im 24-bit-TU-FCB im Feld ID1RPTR in der Form „bbbbbbrr“ enthalten:

  • „bbbbbb“ ist die Nummer des Datenblocks in der Datei

  • „rr“ die Nummer des Satzes innerhalb des Datenblocks

Der Satzzähler wird vom System nicht automatisch hochgezählt, dies muss der Benutzer im Programm durchführen, wenn er die Wiedergewinnungsadresse nutzen will. Der Satzzähler wird jedoch bei jeder Datenübertragung automatisch zurückgesetzt.
Für Bandverarbeitung ist zu beachten, dass die Wiedergewinnungsadresse bei Nicht-XS-Verarbeitung nur für Dateien mit Standardblockung versorgt wird, sodass für Dateien mit Nicht-Standardblöcken kein SETL R möglich ist.

XS-Schnittstelle: 31-bit-TU-FCBNicht-XS-Schnittstelle: 24-bit-TU-FCB

ID1BLK# (1 Wort)

ID1REC# (1 Wort)

ID1RPTR (1 Wort) 

Byte 1-3Byte 4

Blocknumer

Satznummer

Blocknummer

Satznummer

Tabelle 67: Aufbau der Wiedergewinnungsadresse

Der erste Satz einer Datei hat also folgende Wiedergewinnungsadressen:

  • im 31-bit-TU-FCB 00000001 im Feld ID1BLK# und 00000001 im Feld ID1REC#

  • im 24-bit-TU-FCB 00000101 im Feld ID1RPTR

Die folgende Tabelle zeigt die Werte der Wiedergewinnungsadresse nach den Aktionsmakros SETL B und SETL E in Abhängigkeit des Open-Modus

OPEN-Modus

SETL B

SETL E

ID1BLK#ID1REC#ID1RPTRID1BLK#ID1REC#ID1RPTR

INPUT, UPDATE

-

-

-

max

1

max 1

OUTPUT

1

0

1 0

Fehler

Fehler

Fehler

EXTEND

1

0

1 0

Fehler

Fehler

Fehler

REVERSE

-

-

-

-

-

-

Tabelle 68: Werte der Wiedergewinnungsadresse nach SETL B und SETL E, abhängig von OPEN

-

Feldinhalt unverändert

max

höchste Blocknummer

Im Feld IDRPTR sind Block- und Satzzähler dargestellt.

Die folgende Tabelle erläutert, in welcher Weise die Aktionsmakroaufrufe die Wiedergewinnungsadresse versorgen:

Makro

Versorgung der Wiedergewinnungsadresse

GET

Wird durch den angegebenen Satz eine Datenübertragung erforderlich, enthält der Blockzähler die logische Blocknummer, der Satzzähler wird zurückgesetzt. Bei XS-Programmierungwird der Satzzähler bei jedem Aktionsmakroaufruf aktualisiert.

PUT

Wird durch den PUT-Makroaufruf für den angegebenen Satz eine Datenübertragung ausgelöst, dann wird der Blockzähler aktualisiert und der Satzzähler zurückgesetzt. Das heißt, dass der Blockzähler auf die Nummer des neuen Datenblocks gesetzt wird, der den Satz aufnehmen soll. Bei XS-Programmierung wird der Satzzähler bei jedem Aktionsmakroaufrufaktualisiert.

RELSE

Wenn eine Datei erstellt oder erweitert wird (OPEN OUTPUT/EXTEND) enthält der Blockzähler die Nummer des Datenblocks, der den folgenden Satz aufnehmen soll, der Satzzähler wird auf null gesetzt.

FEOV

nach Bandwechsel werden Block- und Satzzähler für das neue Band vom System zurückgesetzt.

Tabelle 69: SAM-Aktionsmakros und Wiedergewinnungsadresse

Beispiel

Die Dateieigenschaften werden definiert :

  • über den Makro FILE:
    BLKCTRL=PAMKEY,
    BLKSIZE=(STD,2),
    RECFORM=F,
    RECSIZE=512

oder

  • mit dem Kommando ADD-FILE-LINK:
    BLOCK-CONTROL-INFO=*PAMKEY,
    BUFFER-LENGTH=*STD( SIZE=2),
    RECORD-FORMAT=*FIXED,
    RECORD-SIZE=512

Die Wiedergewinnungsadresse lautet:


Wiedergewinnungsadresse
31-bit-TU-FCB24-bit-TU-FCB

ID1BLK#

ID1REC#

IDRPTR

für Satz 10

00000002

00000002

00000202

für Satz 20

00000003

00000004

00000304

Hinweis zur Bearbeitung von SAM-Node-Files

Wird beim Beschreiben eines SAM-Node-Files ein Datenblock mit RELSE abgeschlossen, bevor er vollständig gefüllt worden ist, sind die Wiedergewinnungsadressen ab dieser Stelle nur gültig solange die Datei noch geöffnet ist.
Nach CLOSE und erneutem OPEN, ergibt sich eine andere Aufteilung der Datensätze des Node-Files auf die SAM-Blöcke, die der Zugriffsmethode zur Bearbeitung übergeben werden, so dass die vorherigen Wiedergewinnungsadressen nicht mehr zur Datei passen!

Der gleiche Effekt tritt bei der OPEN UPDATE-Verarbeitung auf. Wurde ein SAM-Node-File im UPDATE-Modus geöffnet und erweitert, sind Wiedergewinnungsadressen nach Schließen und erneutem Öffnen der Datei unbrauchbar.

Dieses Verhalten bei SAM-Node-Files (Net-Storage) ist inkompatibel zur Verarbeitung von SAM-Dateien auf herkömmlichem Public-Space, wo die Block- und Satzstruktur auch nach CLOSE und OPEN erhalten bleibt. Die Anwendung muss daher vor dem Öffnen der Datei mit dem Indikator SAM_NODE_FILE_ENABLE im Dateisteuerblock (FCB) anzeigen, dass sie in der Lage ist SAM-Node-Files korrekt zu verarbeiten.