Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

STXIT routines (BS2000 systems)

On BS2000 systems it is possible to define STXIT routines for certain events (e.g. address errors, program end). These routines are activated by the operating system (not by openUTM) if one of the specified events occurs (see the BS2000 manual "Executive Macros").

openUTM provides STXIT routines of its own which are opened before the START exit is called. Exception: TIMER/RTIMER, which are opened immediately after the START exit and are used by openUTM to check the program unit runtime (see the TIME parameter for the TAC statement).

You can define your own parallel STXIT routines which are then activated in addition to the ones defined by openUTM. If you specify the start parameter STXIT=OFF, only those STXIT routines that you have defined are activated (UTM STXIT routines are not activated). The latter is only possible if the application was started in the dialog.

The STXIT routines that you have created are always activated before the UTM STXIT routines (with the exception of RUNOUT).

If programs are loaded dynamically with associated runtime systems after the start phase, and if these programs initiate their own STXIT routines, the sequence in which the STXIT routines are activated may differ from the one described here.

The STXIT routines that you have created must be terminated with EXIT CONTINU=YES. Otherwise, openUTM cannot guarantee that errors will be handled correctly (e.g. PEND ER in certain situations). The openUTM STXIT routines are terminated with EXIT CONTINU=NO.

For STXIT processing in ILCS programs, please refer to the description in section "Event handling in ILCS programs (BS2000 systems)".

Please note that no timer functions such as the C library function alarm() or the macro SETIC (Set interval timer) may be used in the application program, at least not if the respective timer has been generated for the current TAC (KDCDEF generation TAC TIME={time1 | (time1,time2)}).