Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

LKINF - Informationen über Locks ausgeben

&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 LKINF informiert darüber, welche Locks bereits benutzt werden. Zur besseren Auswahl können einige Such-Filter aktiviert werden. Die Locks werden über ihre Lock-Namen identifiziert. Die Lock-Namen können voll- oder teilqualifizierte Namen sein. Bei Angabe von teilqualifizierten Lock-Namen dauert der Zugriff ggf. sehr lange, da die gesamte DLM-Datenbasis nach Treffern durchsucht werden muss.

Makroaufrufformat und Operandenbeschreibung

LKINF

MF=C / D / L / M / E

,CONTROL=list-poss(3): *LOCKED / *LOCKED_BY_ME / *LCKMODE

,LCKMODE=*NU / *CR / *CW / *PR / *PW / *EX / <var: enum-of _lckmode_s:1>

,NAMEADR=<var: pointer>

,NAMELEN=0 / <integer 0..48> / <var: int:2>

,NAMRNGE=*OWNSYSTEM / *CLUSTER / <var: enum-of _namerange_s:1>

,SCOPE=*NAMESPACEID / *USERID / *GROUPID / <var: emun-of_scope_s:1>

,NAMTYPE=*FULL / *PARTIAL / <var: enum-of _nametype_s:1>

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

,PREFIX=N / p

,MACID=LDI / mac

In der nachfolgenden Operandenbeschreibung sind die Operanden alphabetisch geordnet.

CONTROL=
Der Such-Filter steuert, welche Daten zurückgeliefert werden.

list-poss(3):
Aus den nachfolgenden Operandenwerten kann eine Liste gebildet werden, die maximal 3 Elemente enthält.

*LOCKED
Es werden nur Informationen über Locks zurückgeliefert, die in einem Lock-Modus ungleich Null gehalten sind.

*LOCKED_BY_ME
Es werden nur Informationen über Locks zurückgeliefert, die durch den Benutzer in einem Lock-Modus ungleich Null gehalten sind. Der Benutzer wird über seine Lock-Kurzkennung (LOCKID) identifiziert.

*LCKMODE
Es werden nur die Informationen zurückgeliefert, die zu dem angegebenen Lock-Modus gehören.

LCKMODE=
Gibt den angeforderten Lock-Modus an. Wird nur ausgewertet, wenn auch der Operand CONTROL=*LCKMODE angegeben wurde.

*NU
Der Lock befindet sich im Null-Modus und ist immer zugeteilt. Er ist mit allen anderen Lock-Anforderungen kompatibel. Ein Zugriff auf die Ressource ist nicht erlaubt.

*CR
Der Lock befindet sich im Concurrent-Read-Modus. Erlaubt sind andere Locks nur im Null-Modus, im Concurrent-Read-Modus, im Concurrent-Write-Modus, im Protected-Read-Modus und im Protected-Write-Modus. Dem Lock-Halter wird ein ungeschützter Lesezugriff auf die Ressource gewährt.

*CW
Der Lock befindet sich im Concurrent-Write-Modus. Erlaubt sind andere Locks nur im Null-Modus, im Concurrent-Write-Modus oder im Concurrent-Read-Modus. Dem Lock-Halter wird ein ungeschützter Schreibzugriff auf die Ressource gewährt.

*PR
Der Lock befindet sich im Protected-Read-Modus. Erlaubt sind andere Locks nur im Null-Modus, im Concurrent-Read-Modus oder im Protected-Read-Modus. Dem Lock-Halter wird ein geschützter Lesezugriff auf die Ressource gewährt.

*PW
Der Lock befindet sich im Protected-Write-Modus. Erlaubt sind andere Locks nur im Null-Modus und im Concurrent-Read-Modus. Dem Lock-Halter wird ein geschützter Schreibzugriff auf die Ressource gewährt.

*EX
Der Lock befindet sich im Exklusiv-Modus. Erlaubt sind andere Locks nur im Null-Modus. Nur der Lock-Halter darf auf die Ressource zugreifen.

<var: enum-of _lckmode_s:1>
Name des Feldes mit dem Lock-Modus.

Hinweis

Die Operanden LCKMODE und CONTROL dürfen nicht zusammen angegeben werden. Die Angabe des Lock-Modus darf nur direkt über den Operanden LCKMODE oder indirekt über den Operanden CONTROL angegeben werden.

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.

Bei der C-Form, D-Form oder M-Form des Makroaufrufs kann ein Präfix PREFIX und bei der C-Form oder M-Form zusätzlich eine Macid MACID angegeben werden.

NAMEADR=
Feld mit der Adresse des Lock-Namens.

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

NAMELEN=
Voreinstellung ist 0.
Gibt die Länge des Lock-Namens an.

<integer 0..48>
Direkte Angabe der Länge des Lock-Namens zum Übersetzungszeitpunkt.

<var: int:2>
Name des Feldes mit der Länge des Lock-Namens zum Ausführungszeitpunkt.

NAMRNGE=
Gibt an, in welchem Bereich der Lock-Name gültig ist.

*OWNSYSTEM
Der angegebene Lockname ist nur auf dem lokalen System gültig.

*CLUSTER
Der angegebene Lockname ist cluster-weit gültig.

<var: enum-of _namerange_s:1>
Name des Feldes mit dem Bereich, in dem der Lock-Name gültig ist.

NAMTYPE=
Gibt an, ob die Namens-Zeichenfolge einen voll-qualifizierten Lock-Namen oder einen teilqualifizierten Lock-Namen bezeichnet.

*FULL
Der angegebene Lock-Name ist ein voll-qualifizierter Lock-Name.

*PARTIAL
Der angegebene Lock-Name ist ein teil-qualifizierter Lock-Name.

<var: enum-of _nametype_s:1>
Name des Feldes mit dem Typ des Lock-Namens.

SCOPE=
Bestimmt den lokalen Geltungsbereich des Lock-Namens.

*NAMESPACEID
ist Voreinstellung: Der angegebene Lock-Name wird als interner Lock-Name
verwendet. Der erste Teil (8 Byte) des angegebenen Lock-Namens bildet dabei implizit den lokalen Geltungsbereich. Der lokale Geltungsbereich muss eine Zeichenfolge sein. Die gültigen Zeichen sind die Buchstaben „A..Z”, „a..z”; die Ziffern „0..9” und die Sonderzeichen „@” und „#”. Die maximale Länge des angegebenen Lock-Namens ist 48 Zeichen.

*USERID
Die Benutzerkennung zu der die Aufrufer-Task gehört, wird für die Bildung des internen Lock-Namens verwendet. Der DLM bestimmt die Benutzerkennung und setzt sie an den Anfang des Lock-Namens. Der erste Teil des angegebenen Lock-Namens wird nicht als lokaler Geltungsbereich betrachtet. Die maximale Länge des angegebenen Lock-Namens verringert sich auf 40 Zeichen.
Durch die Angabe des Operanden SCOPE=*USERID können die Locks einer Anwendung auf einfache Weise gegen den Zugriff einer anderen Anwendung geschützt werden. Die Anwendungen müssen nur unter verschiedenen Benutzerkennungen gestartet werden.

*GROUPID
Die Benutzergruppe zu der die Aufrufer-Task gehört, wird für die Bildung des internen Lock-Namens verwendet. Der DLM bestimmt die Benutzergruppe und setzt sie an den Anfang des Lock-Namens. Der erste Teil des angegebenen Lock-Namens wird nicht als lokaler Geltungsbereich betrachtet. Die maximale Länge des angegebenen Lock-Namens verringert sich auf 40 Zeichen.
Der Operand SCOPE=*GROUPID darf nur angegeben werden, wenn das kostenpflichtige Software-Produkt SECOS im Einsatz ist, sonst führt der LKENQ-Aufruf zu einem Fehler.

<var: enum-of _scope_s:1>
Name des Feldes mit dem lokalen Geltungsbereich des Lock-Namens zum Ausführungszeitpunkt.

Rückinformation und Fehleranzeigen

Standardheader:

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

Über die Ausführung des Makros LKINF 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. Mindestens ein entsprechender
Lock wurde gefunden.

X'01'

X'00'

X'0000'

Der Makro wurde ausgeführt, aber es wurde kein entsprechender Lock
gefunden.

X'02'

X'00'

X'0000'

Der Makro wurde ausgeführt, entsprechende Locks wurden gefunden,
aber nicht alle Knoten haben wegen eines Netzwerksproblems Informationen
geliefert.

X'00'

X'01'

X'1001'

Die Länge des Lock-Namens ist zu groß.

X'00'

X'01'

X'1002'

Die Adresse des Lock-Namens ist nicht verfügbar.

X'00'

X'01'

X'1003'

Der angegebene Lock-Name ist unzulässig.

X'00'

X'01'

X'1004'

Der angegebene Namensraum ist ungültig.

X'00'

X'01'

X'100F'

Der Such-Filter ist unzulässig.

X'00'

X'01'

X'1015'

Die Angabe im Operanden LCKMODE ist ungültig.

X'00'

X'01'

X'1016'

Die Angabe im Operanden NAMTYPE ist ungültig.

X'00'

X'01'

X'1017'

Die Angabe im Operanden NAMRNGE ist ungültig.

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.

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