Makrotyp: | R bei PARMOD=24 |
Der ISREQ-Makroaufruf wird bei Shared-Update-Verarbeitung genutzt, um eine Sperre aufzuheben, die explizit bei einer Leseoperation angefordert wurde und die nicht (implizit) durch Zurückschreiben des Satzes (oder einen anderen ISAM-Aktionsmakroaufruf) aufgehoben wird.
Sperren werden implizit aufgehoben durch den nächsten ISAM-Aktionsmakroaufruf, es sei denn es folgt ein OSTAT-Makroaufruf oder eine Leseoperation für eine andere Datei mit der Angabe NOLOCK.
Die Sperre kann sein
eine Satzsperre (bei NK-ISAM, nichtsequenzielle Verarbeitung)
eine Bereichssperre (bei NK-ISAM, sequenzielle Verarbeitung)
eine Datenblocksperre (bei K-ISAM)
Format
Operation | Operanden |
|
|
fcbadr
Adresse des FCB der Datei, in der die Sperre besteht
(r)
Die FCB-Adresse steht im Register „r“.
ACTION = UNLOCK
Hebt eine externe Sperre auf.
Nach Ausführung von „ISREQ ...,UNLOCK“ kehrt ISAM zu der Anweisung zurück, die dem ISREQ-Makroaufruf folgt.
PARMOD
Gibt den Generierungsmodus an.
Voreinstellung: | der durch den Assembler oder den GPARMOD-Makroaufruf im Programm eingestellte Wert |
= 24
Es wird ein Objekt erzeugt, das nur im 16-MB-Adressraum ablauffähig ist
(nur 24-Bit-Adressierung).
= 31
Es wird ein Objekt erzeugt, das im 2-GB-Adressraum ablauffähig ist
(24-Bit- oder 31-Bit-Adressierung).
Hinweis zur Programmierung
Der ISREQ-Makroaufruf zerstört die Register 0, 1, 14 und 15.
Returncode
Das FCB-Feld „ID1ECB“ enthält einen Returncode. Je nach Fehlerschlüssel ist auch das Register 1 davon betroffen:
ID1ECB | R1 | Bedeutung |
X' 0000' | unverändert | Sperre aufgehoben |
X' 0A01' | verändert | für die Datei, deren FCB-Adresse in Register 1 hinterlegt ist, besteht eine Sperre für den Auftrag *) |
X' 0A02' | unverändert | keine Sperre vorhanden |
X' 0AA3' | unverändert | FCB ungültig |
*) Der Benutzer kann die Sperre aufheben, indem er den ISREQ-Makro mit unverändertem Register 1 als erstem Operanden aufruft.