Die SAT-Exit-Routine wird nur für Ereignisse aufgerufen, die protokolliert werden sollen, siehe Handbuch „SECOS“ [12]. Dies geschieht unmittelbar bevor das Ereignis in die SAT-Protokolldatei geschrieben wird. Die Exit-Routine muss von der Systembetreuung geladen und vom Sicherheitsbeauftragten aktiviert werden (/MODIFY-SAT-PRESELECTION EXIT=YES).
Die Exit-Routine kann
gezielte Reaktionen einleiten (z.B. Sperrung einer Benutzerkennung nach einer bestimmten Anzahl fehlerhafter LOGON-Versuche)
einen eigenen SATLOG-Satz schreiben (Ereignis ANY, Makro $SATANY)
bei Rückkehr zu SAT über den Returncode das Schreiben des analysierten SATLOG-Satzes zulassen oder unterdrücken.
Folgende Information wird an die Routine übergeben:
R1 = A(EX110-Parameterbereich) R12 = A(TPR Program Manager) R13 = A(Sicherungsbereich der rufenden Komponente) R14 = A(indirekter Rücksprung) R15 = A(Exit-Routine)
Die Rückkehrinformation an die aufrufende Systemkomponente erfolgt über die Parameterliste SATZPMDL im Feld SATZSR1.
SATZSR1 = X'00' (das Ereignis soll in die SAT-Protokolldatei geschrieben werden)
SATZSR1 = X'04' (das Ereignis soll nicht in die SAT-Protokolldatei geschrieben werden)
Die Parameter-Liste, die an die Exit-Routine übergeben wird, enthält eine Kopie des Protokolldatensatzes. Dadurch wird sichergestellt, dass die Originalinformation nicht verändert werden kann.
Die Parameter-Liste hat folgenden Inhalt:
Standardheader
Länge des Datensatzes (2 Byte)
reserviert (2 Byte)
Protokolldatensatz (fester und variabler Teil)
Der Protokolldatensatz ist im Handbuch „SECOS“ [12] beschrieben. Er besteht aus einem festen Teil und einem variablen Teil. Der variable Teil enthält eine Liste von Informationsfeldern. Es gibt zwei Typen von Informationsfeldern:
Das Standard-Informationsfeld
Längenangabe
Identifikator (siehe Handbuch „SECOS“ [12])
zugehöriges Datenfeld
Das *LNG-Feld
Feld mit dem Wert 255 (Indikator für *LNG-Feld)
negativen Indikator
Längenangabe
2 Byte reserviert
zugehöriges Datenfeld
Die Beschreibung des Parameterbereichs gibt nur das Layout für ein Informationsfeld (Standard-Informationsfeld bzw. *LNG-Feld) des variablen Teils an.
DSECT
EX110 MF=D
MFTST MF=D,PREFIX=S,MACID=ATZ,ALIGN=F, C
DMACID=ATZ,SUPPORT=(D,C),DNAME=ATZPMDL
SATZPMDL DSECT ,
*,##### PREFIX=S, MACID=ATZ #####
* set for subcode_1
SATZLOG EQU 0 record-log requested
SATZRJ EQU 4 reject record
*
SATZIMDL EQU 5900 max. length of logging record
*
SATZILFP EQU 28 length of fixed part in
* logging record
*
* parameter list description
SATZHDR FHDR MF=(C,SATZ),EQUATES=NO standard header
SATZHDR DS 0A
SATZFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER
*
SATZIFID DS 0A 0 INTERFACE IDENTIFIER
SATZFCTU 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
SATZFCT DS AL1 2 FUNCTION NUMBER
SATZFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER
*
SATZRET DS 0A 4 GENERAL RETURN CODE
SATZSRET DS 0AL2 4 SUB RETURN CODE
SATZSR2 DS AL1 4 SUB RETURN CODE 2
SATZSR1 DS AL1 5 SUB RETURN CODE 1
SATZMRET DS 0AL2 6 MAIN RETURN CODE
SATZMR2 DS AL1 6 MAIN RETURN CODE 2
SATZMR1 DS AL1 7 MAIN RETURN CODE 1
SATZFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH
*
* main return codes
SATZOK EQU 0 no error
*
SATZLEN DS H length of logging record
SATZRS1 DS XL2 alignment
*
SATZREC DS 0XL5928 logging record
*
SATZFIX DS 0XL28 fixed part of logging record
SATZUID DS CL8 user id
SATZTSN DS CL4 TSN
SATZEVT DS CL3 event
SATZRES DS CL1 event result
*
SATZTSP DS 0XL8 time stamp
SATZDAT DS CL4 YYYYMMDD
SATZTIM DS CL4 HHMMSS00
*
SATZSAT DS X SAT version
SATZETT DS X reserved for extent
SATZSCF DS X caller
SATZSCV DS X caller version
*
SATZVAR DS 0XL5900 variable part of logging
* record
SATZDAR DS CL5900 variable part
ORG SATZVAR
*
SATZFLD DS 0XL258 layout of a standard field
SATZVLN DS X length of the field
SATZVID DS CL2 id of the field
SATZVDT DS CL255 data
*
ORG SATZVAR
*
SATZEFLD DS 0XL4007 layout of a *LNG field
SATZVLND DS X 255 to indicate *LNG-field
SATZNIDE DS CL2 negative id of the field
SATZFLEN DS CL2 length of *LNG-field
SATZABRL DS CL2 on exit 110 always zero
SATZLVAL DS CL4000 data
*
ORG SATZVAR+5900
*
SATZ# EQU *-SATZHDR