Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

ENQAR - Belegung einer Serialisierungskennung anfordern

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

(Task-)Serialisierung; siehe "(Task-)Serialisierung"

Makrotyp:

S-Typ, MF-Format 1: Standardform/L-/E-Form;

siehe "S-Typ-Makroaufrufe"


ENQAR generiert je nach Angabe die 24-Bit- oder die 31-Bit-Schnittstelle. Bei Makroverkettung müssen alle Makros der Kette dieselbe Schnittstelle benutzen.

Makrobeschreibung

Dieser Makro fordert den Zugriff zu der angegebenen Serialisierungskennung an. Die Zugriffsanforderung wird in die Warteschlange dieser Serialisierungskennung eingetragen und das Programm solange in den Wartezustand versetzt, bis es das erste Programm in dieser Warteschlange ist. Dann läuft das Programm weiter und belegt die Serialisierungskennung solange, bis ein DEQAR-Makroaufruf für diese Serialisierungskennung gegeben wird. Ist keine Serialisierungskennung mit dem angegebenen Namen im definierten Geltungsbereich vorhanden, so wird sie eingerichtet und eine implizite Enable-Funktion (siehe ENASI-Makroaufruf) ausgeführt. Durch den COND-Operanden bestimmt der Benutzer, ob die Zugriffsanforderung auf jeden Fall bearbeitet wird oder nur dann, wenn sie sofort befriedigt werden kann. Mit dem LIFETIM-Operanden kann die Zeit begrenzt werden, die ein Programm auf die Erfüllung einer Zugriffsanforderung wartet.
Durch den CONTINU-Operanden können bis zu 255 ENQAR-Aufrufe gekettet werden. Eine solche Folge von Anforderungen wird erst dann verarbeitet, wenn gleichzeitig alle Einzelanforderungen erfüllt werden können.

Makroaufrufformat und Operandenbeschreibung

ENQAR

{ {SINAME=name / SINAMAD={adr / (r)} [,SINAMLN=länge] },SCOPE={LOCAL / GROUP / USER_GROUP /

GLOBAL} /

SIID={adr / (r)} }

,CONTINU=NO / YES

,COND=UNCOND / IMMED

[,LIFETIM=sec / (r)]

[,PARMOD=24 / 31]

[,MF=L / (E,..)]

SINAME=name

gibt den Namen der Serialisierungskennung an. Diese Angabe ist nur zusammen mit dem Geltungsbereich (Operand SCOPE) eindeutig.

SINAMAD=
bezeichnet den Namen der Serialisierungskennung. Dieser Name ist nur zusammen mit dem Geltungsbereich (Operand SCOPE) eindeutig.

adr
symbolische Adresse des Feldes, das den Namen enthält

(r)
r = Register, das die Adresse enthält

SINAMLN=
gibt die Länge des Namens der Serialisierungskennung in Byte an. Die Länge muss mindestens 1 Byte sein und darf 54 Byte nicht überschreiten.
Fehlt der Operand, so wird das Längenattribut des SINAMAD-Operanden angenommen, wenn SINAMAD=adr angegeben ist; bei SINAMAD=(r) wird die maximale Länge (54) angenommen.

länge
Länge des Namens der Serialisierungskennung.

SCOPE=
beschreibt den Geltungsbereich (Teilnehmerkreis) für die Serialisierungskennung.

LOCAL
Die Serialisierungskennung wird nur von der Task des Aufrufers benutzt.

GROUP
Teilnehmer sind alle Tasks unter der Benutzerkennung des Aufrufers.

USER_GROUP
Teilnehmer können alle Tasks sein, deren Benutzerkennungen der gleichen Benutzergruppe angehören wie die Benutzerkennung des einrichtenden Teilnehmers. Der Operandenwert setzt die Existenz von Benutzergruppen voraus und kann daher nur angegeben werden, wenn die Funktionseinheit SRPM des Software-Produkts SECOS im System vorhanden ist.

Vor einem Makroaufruf mit SCOPE=USER_GROUP muss deshalb mit dem Makro GE-TUGR (siehe Handbuch „SECOS“ [14]) geprüft werden, ob SRPM zur Verfügung steht; abhängig vom Ergebnis (Returncode) ist im Programm zu reagieren.

GLOBAL
Teilnehmer sind alle Tasks im System.

SIID=

bezeichnet die Kurzkennung der Serialisierungskennung. Diese Kurzkennung wird dem Benutzer durch den ENASI-Makroaufruf zur Verfügung gestellt. Die Verwendung der Kurzkennung an Stelle des Namens zur Indentifizierung der Serialisierungskennung beschleunigt die Verarbeitung und ist eindeutig.

adr
symbolische Adresse eines 4 Byte langen Feldes, das die Kurzkennung enthält

(r)
r = Register, das die Adresse enthält

CONTINU=
Durch diesen Operanden kann eine Kettung von bis zu 255 ENQAR-Aufrufen erfolgen.

NO
Dies ist der letzte (bzw. einzige) Aufruf einer Folge.

YES
YES bedeutet, dass unmittelbar nach diesem ENQAR-Aufruf ein weiterer folgt.

COND=
beschreibt die Verarbeitungsweise der Zugriffsanforderung. Kann die Anforderung sofort erfüllt werden, wird dies getan; wenn nicht, wird die Anforderung in die Warteschlange für die angesprochene Serialisierungskennung eingereiht. Das aufrufende Programm muss dann solange warten, bis die vollständige Anforderung bearbeitet werden kann oder die im LIFETIM-Operanden angegebene Wartezeit abgelaufen ist. In einer mit CONTINU geketteten Folge von ENQAR-Aufrufen muss der Operand COND im letzten ENQAR

  • Aufruf angegeben werden; er gilt jedoch für die gesamte Folge.

    UNCOND
    Die Anforderung ist ohne Bedingung.

    IMMED
    Die Zugriffsanforderung wird nur dann verarbeitet, wenn die vollständige Anforderung erfüllt werden kann.

    LIFETIM=
    gibt die Zeit an, die die Task auf die Erfüllung der Zugriffsanforderungen warten soll. Ein Returncode zeigt an, ob die Anforderung erfüllt oder die maximale Wartezeit überschritten wurde. In einer mit CONTINU geketteten Folge von ENQAR-Aufrufen muss der Operand LIFETIM im letzten ENQAR-Aufruf angegegeben werden; er gilt jedoch für die gesamte Folge.

    sec
    Zeitangabe in Sekunden. 1 sec <= Wartezeit <= 43200 sec
    Die Genauigkeit der Bearbeitung beträgt +10 sec.
    Voreinstellung: 600 sec

    (r)
    r = Register, das die Zeitangabe in Sekunden enthält.

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

    PARMOD=
    steuert die Makroauflösung. Es wird entweder die 24-Bit- oder die 31-Bit-Schnittstelle generiert.
    Wenn PARMOD nicht spezifiziert wird, erfolgt die Makroauflösung entsprechend der Angabe für den Makro GPARMOD oder der Voreinstellung für den Assembler (= 24-Bit-Schnittstelle).

    24
    Die 24-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 24-Bit-Adressen (Adressraum <= 16 MB).

    31
    Die 31-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 31-Bit-Adressen (Adressraum <= 2 GB). Datenlisten beginnen mit dem Standardheader.

Hinweise zum Makroaufruf

  • Ein implizites Enable wird ausgeführt, wenn der Aufrufer für diese Serialisierungskennung noch kein explizites Enable (siehe ENASI-Makroaufruf) angefordert hatte. Es wird jedoch bei einem impliziten Enable keine Kurzkennung zur Verfügung gestellt.

  • Jeder weitere Enable-Aufruf (explizit oder implizit) in einem Programm für eine Serialisierungskennung, die bereits vorher in einem expliziten Enable angegeben und deren Verwendung wieder beendet wurde (siehe DISSI-Aufruf), bekommt nicht notwendigerweise dieselbe Kurzkennung wie im ersten Enable-Aufruf.

  • Ein Enable, das als Teil eines ENQAR-Aufrufes ausgeführt wird, und das Einreihen in die Warteschlange sind eine zusammengehörende Operation.

  • Ist derselbe Name für eine Serialisierungskennung in zwei Enable-Aufrufen mit zwei verschiedenen Geltungsbereichen angegeben, werden zwei unterschiedliche Serialisierungskennungen vom System verarbeitet.

  • Bei der Verwendung von MF=L ist zu beachten:
    Zur Ausführung muss nur ein Makroaufruf mit MF=E gegeben werden, unabhängig davon, ob dieser Aufruf für eine einzelne Anforderung oder für eine Folge von Anforderungen gilt. Der Datenbereich bei einer Folge von Anforderungen wird durch Kettung der Makroaufrufe (MF=L) durch den CONTINU-Operanden erzeugt.

Rückinformation und Fehleranzeigen

Register R1 enthält die Adresse des Datenbereichs.

R15:

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

Über die Ausführung des Makros ENQAR wird ein gegliederter Returncode (aa=primärer RC, bb=sekundärer RC) im Register R15 übergeben.

X'bb'

X'aa'

Erläuterung

X'04'

X'00'

Die Enqueue-Anforderungen wurden erfüllt: Mindestens eine Serialisierungskennung
wurde eingerichtet und der Task des Aufrufers zugeordnet.

X'08'

X'00'

Die Enqueue-Anforderungen wurden erfüllt: Mindestens eine Serialisierungskennung
wurde der Task des Aufrufers zugeordnet.

X'0C'

X'00'

Die Enqueue-Anforderungen wurden erfüllt: Alle Serialisierungskennungen waren
bereits der Task des Aufrufers zugeordnet.

X'3C'

X'00'

Die Enqueue-Anforderungen wurden erfüllt: Es wurde bereits ein DEQAR-Aufruf
aus einer Task verarbeitet, die nicht ' Halter' der Serialisierungskennung war. Dieser
DEQAR-Aufruf wurde verarbeitet, da HOLDER=ANY angegeben war. Diese
Rückinformation hat Priorität über alle anderen, deren Rücksprungschalter RS=X'
00' ist.

X'10'

X'04'

Die Enqueue-Anforderungen wurden nicht erfüllt. Es wurden ungültige Operanden
angegeben:

  • ungültige Adresse (z.B. Adresse innerhalb einer DSECT)

  • ungültige Länge, ungültiger Name, ungültiger LIFETIM-Wert

  • nichtdefinierter Geltungsbereich, CONTINU- oder COND-Wert

  • COND- oder LIFETIM-Angabe für eine Kennung, die nicht die letzte in einer
    mit CONTINU geketteten Folge ist.

X'14'

X'04'

Die Enqueue-Anforderungen wurden nicht erfüllt: Es wurde eine ungültige
Kennung angegeben.

X'18'

X'04'

Die Enqueue-Anforderungen wurden nicht erfüllt: Die maximale Anzahl gleichzeitig
verwendbarer Serialisierungskennungen wurde überschritten.

X'1C'

X'04'

Die Enqueue-Anforderungen wurden nicht erfüllt:
Die gesamte Anforderung konnte nicht

  • sofort erfüllt werden (bei COND=IMMED)

  • innerhalb der Wartezeit erfüllt werden (bei COND=UNCOND).

X'24'

X'04'

Die Enqueue-Anforderungen wurden nicht erfüllt: Das aufrufende Programm
belegt bereits die angeforderte Serialisierungskennung.

X'40'

X'04'

Die Enqueue-Anforderungen wurden nicht erfüllt: Es war kein Klasse-5-Speicher
zur Verarbeitung der Anforderung verfügbar.

X'44'

X'04'

Die Enqueue-Anforderungen wurden nicht erfüllt: Es wurde eine Disable-Anforderung
für mindestens eine Serialisierungskennung gegeben (durch einen Contin-
gency-Prozess mit höherer Priorität), während die Enqueue-Anforderung noch
anstand.