Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

SREL Löschen eines Sekundärspeicherbereichs

Mit dem Aufruf SREL (storage release) löschen Sie einen Sekundärspeicherbereich. Als Sekundärspeicherbereiche kommen dabei infrage:

  • der Globale Sekundäre Speicherbereich (GSSB)

  • der Lokale Sekundäre Speicherbereich (LSSB)

Blöcke eines ULS (User-spezifischer Langzeitspeicher) können nicht mit SREL gelöscht werden, da ihre Namen bei der Generierung der Anwendung vergeben werden. Soll der Inhalt eines ULS-Block gelöscht werden, so ist der Block mit der Länge null zu überschreiben.

Unix-, Linux- und Windows-Systeme
In UTM-Cluster-Anwendungen ist ein GSSB Cluster-weit gültig. Damit wirkt sich auch sein Löschen mit SREL Cluster-weit aus.

Versorgen des 1. Parameters (KDCS-Parameterbereich)

Die folgende Tabelle zeigt die verschiedenen Möglichkeiten und die dafür notwendigen Angaben im KDCS-Parameterbereich.

Funktion des Aufrufs

Einträge im KDCS-Parameterbereich

KCOP

KCOM

KCRN

Löschen eines LSSB

"SREL"

"LB"

Name des LSSB

Löschen eines GSSB

"SREL"

"GB"

Name des GSSB

Versorgen der Parameter

Feldname im KDCS-Parameterbereich

Inhalt

KCOP

"SREL"

KCOM

"LB"/"GB"

KCRN

Name des Bereichs

KDCS-Aufruf

1. Parameter

2. Parameter

KDCS-Parameterbereich

C/C++-Makroaufrufe

Makronamen

Parameter

KDCS_SRELGB / KDCS_SRELLB

(kcrn)

Rückgaben von openUTM

Feldname im KB-Rückgabebereich

Inhalt

KCRCCC

Returncode

KCRCDC

interner Returncode

In den KDCS-Parameterbereich tragen Sie für den SREL-Aufruf ein:

KCOP

im Feld KCOP den Operationscode SREL.

KCOM

im Feld KCOM

  • LB zum Löschen eines LSSBs oder

  • GB zum Löschen eines GSSBs.

KCRN

im Feld KCRN den Namen des LSSB/GSSB, der gelöscht werden soll.

Beim KDCS-Aufruf geben Sie an:

1. Parameter

als 1. Parameter: Die Adresse des KDCS-Parameterbereichs.

Makronamen

Wie Sie Makroaufrufe für C/C++ nutzen, ist in Abschnitt „C/C++-Makroschnittstelle" ausführlich beschrieben.

openUTM gibt zurück:

KCRCCC

im Feld KCRCCC den KDCS-Returncode.

KCRCDC

im Feld KCRCDC den internen Returncode von openUTM (siehe openUTM-Handbuch „Meldungen, Test und Diagnose“).

KDCS-Returncodes im Feld KCRCCC beim SREL-Aufruf

Im Programm sind auswertbar:

000

Die Operation wurde ausgeführt.

14Z

Unter dem in KCRN angegebenen Namen ist kein Bereich vorhanden.

40Z

Das System kann die Operation nicht ausführen (Generierungs- bzw. Systemfehler, Deadlock, Timeout), siehe KCRCDC.

42Z

Der Eintrag in KCOM ist ungültig.

44Z

Name in KCRN ist ungültig (wenn er nur aus Leerzeichen oder nur aus binär null besteht).

Ein weiterer Returncode ist dem DUMP zu entnehmen:

71Z

In diesem Programm wurde kein INIT gegeben.

Eigenschaften des SREL-Aufrufs

  • openUTM führt SREL erst am Ende der laufenden Transaktion aus.

  • SREL wird nicht ausgeführt

    • bei Vorgangs-Abbruch durch PEND ER/FR, oder

    • wenn ein PEND RS oder ein RSET-Aufruf folgt.

  • Ein SREL-Aufruf sperrt den aufgerufenen Bereich bis zum Transaktionsende bzw. der Freigabe durch UNLK oder bis zur nächsten Rücksetzoperation, d.h. nachfolgende SGET-Aufrufe auf diesen Bereich weist openUTM mit dem Returncode 14Z zurück. Folgt aber auf einen SREL-Aufruf ein SPUT-Aufruf mit demselben Bereichsnamen, dann wird dieser Bereich (LSSB oder GSSB) neu eingerichtet.

    Die Sperre wird über einen Verarbeitungs-/Dialog-Schritt hinaus beibehalten, wenn der Teilprogrammlauf abgeschlossen oder unterbrochen wird mit

    • PEND KP und PGWT KP,

    • PEND PA/PR mit Taskwechsel wegen TAC-Klassensteuerung,

    • PEND PA/PR oder PGWT PR mit Warten auf eine DGET-Nachricht.

    Ist der gesperrte Bereich ein GSSB, dann können andere Vorgänge auf diesen GSSB weder mit SGET noch mit SPUT zugreifen. Wie openUTM in diesem Fall reagiert, ist in Abschnitt „Verhalten bei gesperrten Speicherbereichen (TLS, ULS und GSSB)" beschrieben.

  • Bei Vorgangsende (PEND FI/FC) oder Vorgangs-Abbruch (PEND ER/FR, u.U. auch bei PEND RS) löscht openUTM automatisch alle LSSBs. SREL-Aufrufe auf LSSBs sind daher in Transaktionen, die den Vorgang beenden, überflüssig.

  • Unix-, Linux- und Windows-Systeme
    In UTM-Cluster-Anwendungen wird ein GSSB durch einen SREL-Aufruf Cluster-weit gelöscht, d.h. sobald der SREL-Aufruf wirksam wird, kann der GSSB in keiner Knoten-Anwendung mehr gelesen werden.

Die folgende Tabelle beschreibt, wie die Aufruffolge SREL . . . RSET oder SREL . . . PEND auf GSSBs oder LSSBs wirkt.

Aufruf

Wirkung auf GSSB

Wirkung auf LSSB

SREL

löscht und sperrt; Operation bleibt rücksetzbar

löscht; Operation bleibt rücksetzbar

...

RSET
PEND RS
PGWT RB

setzt zurück und entsperrt

setzt zurück

...

PEND KP
PGWT KP

lässt die Operation rücksetzbar

lässt die Operation rücksetzbar

....

PEND RE
PEND SP
PGWT CM

löscht und entsperrt; Operation nicht rücksetzbar

löscht; Operation nicht rücksetzbar

....

PEND FI
PEND FC

löscht alle LSSBs

....

PEND ER
PEND FR

setzt zurück und entsperrt

löscht alle LSSBs

....

PEND PA/PR1
PGWT PR 1

Sperre bleibt, Operation rücksetzbar

Sperre bleibt, Operation rücksetzbar

Mit Taskwechsel wegen TAC-Klassensteuerung oder mit Warten auf eine DGET-Nachricht