Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

LKCAN - Lock-Anforderung löschen

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

Distributed-Lock-Manager (DLM); siehe "Distributed-Lock-Manager (DLM)"

Makrotyp:

S-Typ, MF-Format 3: C-/D-/L-/M-/E-Form;

siehe "S-Typ-Makroaufrufe"


Makrobeschreibung

Der Makro LKCAN löscht Lock-Anforderungen, die noch nicht vom DLM zugeteilt wurden.

Die Lock-Anforderungen, die vom LKENQ-Makro erstellt wurden und sich in der WAITING- oder CONVERTING-Warteschlange des Locks befinden, werden vollständig gelöscht. Befindet sich die Lock-Anforderung in der GRANTED-Warteschlange, wird mit einem Fehler-Code abgebrochen.

Die Lock-Anforderungen, die durch den LKCVT-Makro verändert werden sollen, werden nicht gelöscht. Es wird nur der Änderungsauftrag gelöscht.

Der Aufruf kann synchron oder asynchron erfolgen.

Makroaufrufformat und Operandenbeschreibung

LKCAN

MF=C / D / L / M / E

,ACKEVTT=*SYNCH / *TUCONTI / *TUEVENT / <var: enum-of _evttype_s:1>

,ACKNID=0 / <var: int:4>

,LOCKID=0 / <var: int:4>

,LSBADR=<var: pointer>

,USERPAR=0 / <var: int:4>

,PARAM=<var: pointer> / (reg: pointer>)

,PREFIX=N / p

,MACID=LDA / mac

In der nachfolgenden Operandenbeschreibung sind die Operanden alphabetisch geordnet.

ACKEVTT=

Beschreibt in welcher Art Informationen über die Löschung zurückgeliefert werden sollen. Es gibt drei Methoden zur Steuerung. Die angegebene Kurzkennung (Contingency-Kurzkennung oder Ereigniskennung) ist für die aktuelle Lösch-Anforderung gültig. Andere Lösch-Anforderungen von anderen Tasks können andere Kurzkennungen angeben.

*SYNCH
Synchrone Lösch-Anforderung. Rücksprung aus dem Makro, wenn die Lock-Anforderung gelöscht oder eine Fehlerbedingung erkannt wurde. Die Lösch-Information wird im Returncode zurückgeliefert.

*TUCONTI
Contingency-Prozess. Dieser Wert muss angegeben werden, um eine Bestätigung der Lösch-Anforderung während der Contingency-Verarbeitung zu erhalten.

*TUEVENT
Ereignissteuerung (Eventing). Um die Lösch-Information zu erhalten, kann eine Ereignisvariable benutzt werden. Durch Aufruf des SOLSIG-Makros wird die Lösch-Information geliefert.

<var:enum-of _evttype_s:1>
Name des Feldes mit dem Wert der Lösch-Methode.

ACKNID=
Gibt bei einer asynchronen Lock-Anforderung die Contingency-Kurzkennung oder die Ereigniskennung an, die die Information erhält, dass der Lock jetzt gelöscht wurde.

<var: int:4>
Voreinstellung ist 0.
Contingency-Kurzkennung oder Ereigniskennung.

LOCKID=
Lock-Kurzkennung der Lock-Anforderung, die gelöscht werden soll.

<var: int:4>
Voreinstellung ist 0.
Lock-Kurzkennung, die vom LKENQ-Makro zurückgeliefert wurde.

LSBADR=
Feld mit der Adresse des Lock-Status-Blocks. Der Lock-Status-Block enthält den Returncode des asynchronen Aufrufs.

<var: pointer>
Name des Feldes mit der Adresse des Lock-Status-Blocks.

MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. PREFIX, MACID und PARAM) siehe Abschnitt „S-Typ-Makroaufrufe“. Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.

USERPAR=

Die Parameter für asynchrone Mitteilungen, die an den Contingency-Prozess oder an die Ereignisvariable übergeben werden sollen.

<var: int:4>
Voreinstellung ist 0.
Benutzerdefinierte Werte.

Rückinformation und Fehleranzeigen

Standardheader:

+---------------+
|   |   |   |   |
|c|c|b|b|a|a|a|a|
+---------------+

Über die Ausführung des Makros LKCAN wird im Standardheader folgender Returncode übergeben (cc=Subcode2, bb=Subcode1, aaaa=Maincode):

X'cc'

X'bb'

X'aaaa'

Erläuterung

X'00'

X'00'

X'0000'

Der Makro wurde normal ausgeführt.

X'00'

X'00'

X'0001'

Der Makro wurde normal ausgeführt. Die Lösch-Anforderung wurde in
die Warteschlange eingereiht. Die Lock-Anforderung wird asynchron
gelöscht.

X'00'

X'00'

X'0004'

Löschen der Lock-Anforderung wurde eingeleitet, aber der Lock ist noch
zugeteilt.

X'00'

X'01'

X'1005'

Der Lock-Status-Block ist nicht zugreifbar.

X'00'

X'01'

X'1006'

Der Typ von ACKNID ist nicht derselbe wie in ACKEVTT vereinbart.

X'00'

X'01'

X'100C'

Die Angabe im Operanden LOCKID ist ungültig.

X'00'

X'01'

X'1014'

Die ausgewählte Funktion ist für den Benutzer nicht erlaubt.

X'00'

X'01'

X'10FF'

Es wurde ein falscher Parameter angegeben, der keinen spezifischen
Returncode hat.

X'00'

X'20'

X'2001'

Es trat ein interner Fehler auf.

X'00'

X'20'

X'2003'

Es trat ein interner Fehler im Zusammenhang mit dem Ressourcen-
Block auf.

X'00'

X'20'

X'2004'

Es trat ein interner Fehler im Zusammenhang mit Zeitlimitüberschreitung
auf.

X'00'

X'20'

X'2005'

Es trat ein interner Fehler im Zusammenhang mit der Lock-Anforderung
auf.

X'00'

X'20'

X'2006'

Es trat ein interner Fehler im Zusammenhang mit XCS auf.

X'00'

X'82'

X'8004'

Der Lock wurde bereits freigegeben.

Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle „Standard-Returncodes“ (Standardheader) entnommen werden.