Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

UNLK Entsperren eines TLS, ULS oder eines GSSB

Mit dem Aufruf UNLK (unlock) entsperren Sie einen der folgenden Speicherbereiche:

  • den Globalen Sekundären Speicherbereich (GSSB).

  • einen Block des Terminal-spezifischen Langzeitspeichers (TLS).

  • einen Block des User-spezifischen Langzeitspeichers (ULS).

Der Bereich wird nur dann entsperrt, wenn aus ihm in der aktuellen Transaktion nur gelesen wurde.

Unix-, Linux- und Windows-Systeme
In UTM-Cluster-Anwendungen sind GSSB und ULS Cluster-weit gültig. Damit wirkt sich das Entsperren eines GSSB oder ULS mit UNLK 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

KCLT bzw. KCUS

Entsperren eines TLS (in Dialog-Programmen)

"UNLK"

"DA"

Blockname

-

Entsperren eines TLS (in Asynchron-Programmen)

"UNLK"

"DA"

Blockname

LTERM/LPAP/OSI-LPAP/Master-LPAP-Name

Entsperren eines GSSB

"UNLK"

"GB"

Name des GSSB

-

Entsperren eines ULS

"UNLK"

"US"

Blockname

Benutzerkennung/LSES-Name/Association-Name/Leerzeichen

Bei KCOM = US müssen alle nicht verwendeten Felder des KDCS-Parameterbereichs mit binär null versorgt werden.

Versorgen der Parameter

Feldname im KDCS-Parameterbereich

Inhalt

KCOP

"UNLK"

KCOM

"GB"/"DA"/"US"

KCRN

Name des Bereichs/Blockname

KCLT bzw.
KCUS

LTERM/LPAP/OSI-LPAP/Master-LPAP-Name bzw.
Benutzerkennung/LSES-Name/Association-Name/Leerzeichen

KDCS-Aufruf

1. Parameter

2. Parameter

KDCS-Parameterbereich

Nachrichtenbereich

C/C++-Makroaufrufe

Makronamen

Parameter

KDCS_UNLKGB

(kcrn)

KDCS_UNLKDA

(kcrn,kclt)

KDCS_UNLKUS

(kcrn,kcus)

Rückgaben von openUTM

Feldname im KB-Rückgabebereich

Inhalt

KCRCCC

Returncode

KCRCDC

interner Returncode

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

KCOP

im Feld KCOP den Operationscode UNLK.

KCOM

im Feld KCOM den Speichertyp, der entsperrt werden soll:

  • GB für einen Globalen Sekundären Speicherbereich (GSSB),

  • DA für einen Terminal-spezifischen Langzeitspeicher (TLS),

  • US für einen User-spezifischen Langzeitspeicher (ULS).

KCRN

im Feld KCRN den Namen des zu entsperrenden Speicherbereichs.

KCLT
KCUS

je nachdem, um welchen Speichertyp es sich handelt:

  • beim Entsperren eines TLS in einem Asynchron-Programm:
    im Feld KCLT den Namen des LTERM- oder (OSI-)LPAP-Partners, dessen TLS entsperrt werden soll,

  • beim Entsperren eines TLS in einem Dialog-Programm:
    irrelevant, es wird immer auf den entsprechenden Block des "eigenen" TLS zugegriffen.

  • beim Entsperren eines ULS-Blocks:
    im Feld KCUS die Benutzerkennung, wenn ein ULS-Block einer fremden Benutzerkennung entsperrt werden soll, oder Leerzeichen bei einem ULS-Block der eigenen Benutzerkennung. Wird eine fremde Benutzerkennung in KCUS eingetragen, dann muss die eigene Benutzerkennung administrationsberechtigt sein.

    Falls ein ULS-Block einer fremden Session/Association entsperrt werden soll, ist deren Name anzugeben.

  • beim Entsperren eines GSSBs:
    irrelevant.

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 UNLK-Aufruf

Im Programm sind auswertbar:

000

Die Operation wurde ausgeführt.

14Z

Unter dem in KCRN angegebenen Namen ist kein GSSB/TLS vorhanden.

16Z

GSSB/TLS/ULS nicht von eigener Transaktion gesperrt oder GSSB wurde in gleicher Transaktion erzeugt oder geändert oder TLS wurde in gleicher Transaktion geändert.

40Z

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

42Z

Die Angabe in KCOM ist ungültig.

44Z

Bei GSSB: Angabe in KCRN ist ungültig (Leerzeichen oder binär null).

Bei TLS und ULS: Der Name des Blocks in KCRN ist unbekannt oder ungültig.

46Z

LTERM- oder LPAP-Name in KCLT ist ungültig (nur bei Asynchron-Programmen und TLS) oder die Benutzerkennung ist unbekannt (nur bei ULS).

49Z

Der Inhalt nicht verwendeter Felder des KDCS-Parameterbereichs ist ungleich binär null (nur bei KCOM = US).

Ein weiterer Returncode ist dem DUMP zu entnehmen:

71Z

In diesem Programm wurde kein INIT gegeben.

Eigenschaften des UNLK-Aufrufs

  • Ein UNLK-Aufruf auf einen TLS/ULS/GSSB ist nur sinnvoll nach einem vorherigen Leseaufruf (GTDA bzw. SGET). Wurde der Bereich in der aktuellen Transaktion mit PTDA, SPUT oder SREL (bei GSSBs) verändert, dann weist openUTM den Aufruf mit KCRCCC = 16Z zurück; der Bereich bleibt bis Transaktionsende gesperrt.

  • Ein UNLK-Aufruf ist z.B. vor einem PEND KP bzw. PGWT KP/PR sinnvoll. Dadurch lassen sich TLS/ULS-Blöcke und GSSBs bereits vor dem nächsten Sicherungspunkt freigeben. Damit stehen sie den anderen Transaktionen zur Verfügung.

  • Ein UNLK-Aufruf für einen Bereich, der nicht von der eigenen Transaktion gesperrt ist, wird abgewiesen (Returncode 16Z).

  • Unix-, Linux- und Windows-Systeme
    In UTM-Cluster-Anwendungen wird ein GSSB oder ULS durch einen UNLK-Aufruf Cluster-weit entsperrt, d.h. sobald der UNLK-Aufruf wirksam wird, können auch Transaktionen in anderen Knoten-Anwendungen wieder auf den entsperrten Bereich zugreifen.