Für die Systemfunktion „CLOSE = Dateien schließen“ werden zwei Exits angeboten. Für Banddateien kann unter der Benutzerkennung TSOS mithilfe dieser Exits über entsprechende Exit-Routinen die Verwendung von Bändern kontrolliert/registriert und somit eine eigene Bandverwaltung realisiert werden.
Der Request Exit wird zu Beginn der CLOSE-Verarbeitung angestoßen. Bei Banddateien ist das Band hinter dem letzten verarbeiteten Datenblock positioniert, Dateiendekennsätze sind noch nicht bearbeitet.
Die Return Exit-Routine wird am Ende der CLOSE-Verarbeitung aufgerufen. Bei Banddateien ist das Band zwischen den beiden Abschnittsmarken positioniert, die das Dateiende kennzeichnen; bei Bändern mit Standardkennsätzen liegt diese Stelle hinter den EOF-Kennsätzen.
In beiden Fällen wird die Adresse des Exit-Parameterbereichs übergeben. Damit ist es möglich, auf weitere Informationen aus dem P1-FCB, P2-FCB oder der CVT (Current Volume Table) zuzugreifen.
Folgende Informationen werden an die Exit-Routine übergeben:
R1 = A($DOCSYS-Parameterbereich) R12 = A(TPR Program Manager) R13 = A(Sicherungsbereich der rufenden Komponente) R14 = A(indirekter Rücksprung) R15 = A(Exit-Routine)
Hinweise
Die Register 12, 13 und 14 dürfen von der Exit-Routine nicht zerstört werden.
Ist der Returncode im Parameterbereich des Exit-Basismechanismus
!=
0, wird auf dem Bedienplatz die Meldung DMS0D15 ausgegeben. Danach geht die Verarbeitung weiter.% DMS0D15 AUFRUF DES BASISMECHANISMUS FUER DEN SYSTEM EXIT '(&00)' LIEFERT FEHLERCODE '(&01)' (&00): EXIT-Nummer. (&01): Fehlercode der $SYSX-Schnittstelle.
Informationsquellen
Die folgende Tabelle enthält Hinweise zum Zugriff auf Informationen, die sinnvoll von den Exit-Routinen verarbeitet werden können:
Information | DSECT | I/A | Name | steht in | Bemerkung |
Exit-Parameterliste | $DOCSYS | A | Register 1 | ||
P1-FCB | IDFCB | A | P1FCB- | Exit-Parameterliste | |
P2-FCB | IDFC2 | A | D1P2LNK | P1-FCB | |
CVT | DMACVT | A | D2CVTAD | P2-FCB | |
VSN | DMADR | I | DRVVSN | TFT | mit RDTFT-Makro |
G | DMACVT | I | DCVRID | CVT | steht bei CLOSE |
Kennsätze | DTVOL | A A | D2LGINF D2LGINF | P2-FCB P2-FCB | Return Exit Request Exit |
Blockzähler | I | D2THPGN | P2-FCB | nur bei SAM und | |
Blockzähler | I | DIHPGNR | P2-FCB | BLKSIZE=STD |
I = Information ist Inhalt von Feld „Name“
A= Adresse von Information in Feld „Name“
Exit-Routinen und EXLST-Ausgänge
Die obenbeschriebenen Exit-Routinen und die bei der CLOSE-Verarbeitung anschließbaren EXLST-Ausgänge werden, falls vorhanden, in der nachfolgend gezeigten Reihenfolge aktiviert.
Return Exit (042)
Die Exit-Routine kann keine Rückkehrinformation an den Systemmodul senden.
Request Exit (043)
Die Exit-Routine kann keine Rückkehrinformation an den Systemmodul senden.
Bei Ausgabedateien auf Band kann über die Adresse im Feld D2LGINF im P2-FCB auf die vom OPEN geschriebenen Kennsätze VOL1, HDR1, HDR2 und HDR3 zugegriffen werden. Die Länge des adressierten Bereichs ist 4 x 80 = 320 Bytes.
Der Blockzähler ist zum Aufrufzeitpunkt der Request Exit-Routine noch nicht versorgt.
Parameterbereich
Das Layout des Exit-Parameterbereichs kann mit dem Makro $DOCSYS generiert werden.
$DOCSYS MF=D MFTST MF=D,PREFIX=D,MACID=OCS,ALIGN=F, C DMACID=OCS,SUPPORT=(D,C,M,L),DNAME=OCS_MDL DOCS_MDL DSECT , *,##### PREFIX=D, MACID=OCS ##### * parameterarea description DOCSHDR FHDR MF=(C,DOCS),EQUATES=NO Standardheader DOCSHDR DS 0A DOCSFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER * DOCSIFID DS 0A 0 INTERFACE IDENTIFIER DOCSFCTU DS AL2 0 FUNCTION UNIT NUMBER * BIT 15 HEADER FLAG BIT, * MUST BE RESET UNTIL FURTHER NOTICE * BIT 14-12 UNUSED, MUST BE RESET * BIT 11-0 REAL FUNCTION UNIT NUMBER DOCSFCT DS AL1 2 FUNCTION NUMBER DOCSFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER * DOCSRET DS 0A 4 GENERAL RETURN CODE DOCSSRET DS 0AL2 4 SUB RETURN CODE DOCSSR2 DS AL1 4 SUB RETURN CODE 2 DOCSSR1 DS AL1 5 SUB RETURN CODE 1 DOCSMRET DS 0AL2 6 MAIN RETURN CODE DOCSMR2 DS AL1 6 MAIN RETURN CODE 2 DOCSMR1 DS AL1 7 MAIN RETURN CODE 1 DOCSFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH * * main return codes DOCSNOER EQU 0 no error detected DOCSRREJ EQU 4 request rejected * DOCSFCB@ DS A address of P1-FCB DOCS# EQU *-DOCSHDR