Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

OPEN-Exits (039/040/041)

&pagelevel(3)&pagelevel

Mithilfe von drei Exitpunkten kann die Anwendung der Systemfunktion „OPEN = Datei Eröffnen“ gesteuert und überwacht werden. Dabei ist es gleichgültig, ob der OPEN aus einem Programm des Benutzers, einem Dienstprogramm (z.B. LMS, EDT) oder der Bearbeitung eines Systemkommados (z.B. START-PROGRAM) stammt.

  • Am Security-Exit (039) kann die Systembetreuung den OPEN-Aufruf zurückweisen, bevor er ausgeführt ist.

  • Am Request Exit (041) kann die Systembetreuung den OPEN-Aufruf zurückweisen, bevor er ausgeführt wird. Die zu öffnende Datei ist entweder aus der Task File Table oder dem FCB zu bestimmen.

  • Am Return Exit (040) ist die Datei bereits eröffnet. Die Exit-Routine kann das Eröffnen nicht mehr verhindern oder rückgängig machen. Alle Funktionen des Return Exits können auch vom Security-Exit übernommen werden.

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.

  • Die Exits 039/040 können in Abhängigkeit vom Wert des AUDIT-Anzeigers im Katalogeintrag Überwachungsmaßnahmen durchführen (siehe „Überwachung von Dateizugriffen“).

  • Wenn die Exits 039/040 angesprungen werden, hat das Datenverwaltungssystem von BS2000 die Datei bereits eröffnet. In den Exits 039 und 041 ist der Katalogeintrag für die eröffnete Datei noch gesperrt.
    Falls die Exit-Routine auf Grund eines Programmierfehlers „hängt“ oder „schleift“, ohne sich fehlerhaft zu beenden (dies hätte Abnormal Task Termination und Freigabe der Datei zur Folge), bleibt die Datei bis zum Ende des Systemlaufs gesperrt.

  • Im Exit 040 ist der Katalogeintrag für die eröffnete Datei bereits freigegeben.

  • Die Exit-Routine darf selbst wieder Dateien eröffnen! Probleme, die sich aus einer solchen rekursiven Aufrufverschachtelung ergeben, müssen von der Exit-Routine selbst abgefangen werden.

  • 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.

  • Wird der OPEN abgewiesen, erhält der Benutzer die Meldung DMS0D10 auf SYSOUT, bzw. den Fehlercode X'0D10' im Feld ID1ECB des FCB:

    %  DMS0D10 BENUTZUNG DES OPEN-MAKROS WURDE VON DEM SYSTEMADMINISTRATOR 
    EINGESCHRAENKT.
    Die aktivierte System-EXIT-Routine hat den OPEN abgewiesen.
    Das Programm wird mit dem EXLST-Ausgang 'OPENER' fortgesetzt, wenn dieser
    definiert ist, ansonsten abgebrochen.
    
  • Bei einem Fehler des Exit-Basismechanismus, wird am 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.
    

Exit-Routinen und EXLST-Ausgänge

Die obenbeschriebenen Exit-Routinen und die bei der OPEN-Verarbeitung anschließbaren EXLST-Ausgänge werden, falls vorhanden, in der nachfolgend gezeigten Reihenfolge aktiviert.

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

Security Exit (039)

Die Rückinformation an den aufrufenden Systemmodul wird im Standard-Header des $DOCSYS-Parameterbereichs im Feld DOCSMRET übergeben.

Returncode: DOCSNOER = X'0000' = kein Fehler

Returncode: DOCSRREJ = X'0004' = OPEN soll abgewiesen werden

Der Security-Exit wird nicht angesprungen, wenn ein OPEN wegen eines ungültigen Dateinamens abgewiesen wird.

Return Exit (040)

Der Return Exit wird auch dann angesprungen, wenn ein OPEN wegen eines ungültigen Dateinamens abgewiesen wird.

Die Exit-Routine kann keine Rückkehrinformation an den Systemmodul senden.

Request Exit (041)

Die Rückkehrinformation an den aufrufenden Systemmodul wird im Standard-Header des $DOCSYS-Parameterbereichs im Feld DOCSMRET übergeben.

Returncode: DOCSNOER = X'0000' = kein Fehler

Returncode: DOCSRREJ = X'0004' = OPEN soll abgewiesen werden