Mit den System Exits für Programmbibliotheken (PLAM-Exits) kann die Systembetreuung die Zugriffe auf die Bibliothekselemente überwachen und gegebenenfalls zurückweisen. Unterstützt werden die Funktionen: Element eröffnen, schließen, löschen und umbenennen. Für jede dieser Funktionen gibt es Request- und Return Exits, also vor Funktionsaufruf und nach Abschluss der Operation, siehe unten die Übersicht über die PLAM-Exits.
Die gezielte Auswahl einer Bibliothek wird über einen eigenen Exit getroffen, der bei jeder Funktion ATTACH-Library angesprochen wird. Die Exits für die Element-Zugriffsfunktionen können so auf ein vertretbares Minimum (Performance) beschränkt werden.
Funktion | Art des Exits | Exit-Nummer |
Element eröffnen (OPEN ELEMENT) | Request | 005 |
Return | 006 | |
Element schließen (CLOSE ELEMENT) | Request | 007 |
Return | 008 | |
Element löschen (DELETE ELEMENT) | Request | 055 |
Return | 056 | |
Element umbenennen (RENAME ELEMENT) | Request | 057 |
Return | 058 | |
Programmbibliothek eröffnen (ATTACH LIBRARY) | 054 |
Folgende Informationen werden an den Exit-Punkten übergeben:
R1 = A(Exit-Parameterliste) R12 = A(TPR Program Manager) R13 = A(Sicherungsbereich der rufenden Komponente) R14 = A(indirekter Rücksprung) R15 = A(Exit-Routine)
Rückkehrinformation:
R15 = X'000000RR' RR = Rückkehrinformation der Exit-Routine: 00: kein Fehler (005-008, 055-058), Bibliothek soll überwacht werden (054) 04: Funktion wird abgewiesen (005, 006, 008, 055-058), Bibliothek soll nicht überwacht werden (054)
Am Request Exit kann die Systembetreuung den Funktionsaufruf zurückweisen, bevor er ausgeführt wird (Exit-Punkte 005, 055, 057).
Am Return Exit ist die Aktion bereits ausgeführt (Exit-Punkte 006, 008, 056, 058). Mit Ausnahme des Exit-Punktes 006 (OPEN ELEMENT) kann die Aktion nicht mehr rückgängig gemacht werden.
DSECT
Sämtliche Exits für Programmbibliotheken werden mit einer Parameterliste identischer Struktur versorgt.
Mit dem Makro EXnnn kann eine DSECT für die Parameterliste generiert werden: name EXnnn D[,[prefix],[ALL]]
nnn = dreistellige Exitnummer
Ohne die Angabe ALL werden nur die von der Funktion versorgten Felder mit Namen versehen. Mit der Angabe ALL wird eine für alle Funktionen allgemein gültige Parameterliste erzeugt. Mit dem Parameter „prefix“ lassen sich die symbolischen Feldnamen um einen vorangestellten, freigewählten Buchstaben erweitern.
Alle Exits werden in der Parameterliste mit der aktuellen PLAM-Version und dem Bibliotheksnamen versorgt. Ein LINK=name wird hinterlegt, sofern vorher angegeben. Typ, Name, Version und Variante eines Bibliothekselements sind ebenfalls in der Parameterliste hinterlegt mit Ausnahme der Funktionen
ATTACH LIBRARY: es besteht noch kein Bezug zum Bibliothekselement
OPEN ELEMENT: beim Request Exit können die Angaben zum Bibliothekselement noch unvollständig sein (siehe auch OPEN-Element-Exit 005).
Welche Felder von PLAM versorgt werden, zeigt die folgende Tabelle.
von PLAM | Exit-Routinen | ||||||||
ATTACH | OPEN | CLOSE | DELETE | RENAME | |||||
054 | 005 | 006 | 007 | 008 | 056 | 057 | 058 | 059 | |
PMRC | x | x | x | x | x | x | x | x | x |
PMRC1 | x | x | x | x | x | x | x | x | x |
PMPLV | x | x | x | x | x | x | x | x | x |
PMLIB | x | x | x | x | x | x | x | x | x |
PMLINK | x | x | x | x | x | x | x | x | x |
PMOPM | x | x | |||||||
PMSLV | x | x | |||||||
PMLVD | x | x | |||||||
PMCLM | x | x | |||||||
PMTYP | x | x | x | x | x | x | x | x | |
PMNAM | x | x | x | x | x | x | x | x | |
PMVER | x | x | x | x | x | x | x | x | |
PMVAR | x | x | x | x | x | x | x | x | |
PMDAT | x | x | x | x | x | x | x | x | |
PMTYP2 | x | x | |||||||
PMNAM2 | x | x | |||||||
PMVER2 | x | x |