A system exit is a point in the operating system or in a TU program where current processing can be interrupted by calling an exit routine. (TU = Task Unprivileged)
An exit routine is a component written, as a rule, by BS2000 systems support and which is inserted in the operating system. It enables a normally non-modifiable operating system function to be modified to suit the special requirements of a particular computer center’s operational procedures. Exit routines can add new functions to the standard ones, or they can modify or replace existing functions. System exits are integral components of the operating system.
Exit routines can be loaded and activated or deactivated during a session, i.e. managed dynamically.
Provisions have been made for calling the exit routines in the system functions listed in the table below. Some functions have two exit points:
a request exit which allows the user’s input to be modified or rejected before BS2000 processing
a return exit which is provided for checking or modifying the processing results from the BS2000 component before the program returns to the requesting task.
The TU exit which can be called from each TU program occupies a special position here. When and how this exit is employed is entirely the responsibility of systems support, in consultation with the computer center customers.
Overview of the exits
Each exit is classified internally by means of an exit number. The following overview shows the exits and the occasions when they are used:
No. | Exit | Type / when used |
---|---|---|
000 | TU exit | |
001 | Termination exits for terminating programs and tasks | request |
003 | SHUTDOWN exit | while the session is being terminated |
005 | OPEN member exit | request |
007 | CLOSE member exit | request |
010 | JOIN command | prior to writing the user record to the user catalog |
015 | Accounting exit | prior to writing an accounting record |
020 | PSWORD command | prior to modifying a password in a user record in the user catalog |
025 | SECURE command | request |
030 | LOGON exit | with the ENTER-JOB, ENTER-PROCEDURE |
032 | Job parameter exit | with the ENTER-JOB, ENTER-PROCEDURE, MODIFY-JOB and SET-LOGON-PARAMETERS |
033 | JV exit | during read access to a special job variable |
036 | BCAM exit | connection setup to system applications |
039 | OPEN exit | security |
040 | OPEN exit | request |
042 | CLOSE exit | request |
044 | Volume swap for tapes | request |
050 | CREATE-FILE/ | request |
054 | ATTACH library exit for program libraries | after opening a program library |
055 | DELETE member exit for program libraries | request |
057 | RENAME member exit for program libraries | request |
060 | DELETE-FILE/ | request |
070 | CREATE-FILE/ | request |
075 | DCAM | request/event-driven |
080 082 | CMD (SDF exits) STMT | request = before processing each command |
090 | SPOOL exit | before output of each record via the printer |
091 | SPOOL header page | prior to output of the header page |
094 | SPOOL resources routine | conversion of client/server resource |
095 | SPOOL exit | prior to output of the channel program |
096 | SPOOL exit | server selection |
097 | SPOOL exit | control of jobs for file transfer |
110 | SAT exit | before writing a SAT protocol record |
Overview of macros used and the associated standard libraries
The macros listed below can be used to generate the DSECTs required for the exits.The macros are supplied in the specified libraries. The place where they are stored can be changed by system administration.
Macro name | Standard library |
$TERMRF, $DOCSYS, | SIPLIB.BS2CP.<ver> |
EX005, EX007, EX054, EX055, EX057 | SIPLIB.PLAM.<ver> |
$SRMSYE | SIPLIB.SRPMNUC.<ver> |
NASXIT, NKSEPAR, EX030, EX032, EX050, EX060, EX070, EX080 | SYSLIB.BS2CP.<ver> |
EX033 | SYSLIB.JV.<ver> |
YDDEXPL | SYSLIB.DCAM |
EX090, EX091, EX092, EX094, EX095, EX096, EX097 | SYSLIB.SPOOL.<ver> |
EX110 | SIPLIB.SATCP.<ver> |
<ver> means version of current component.