Loading...
Select Version
&pagelevel(3)&pagelevel
Prozeduren und Programme gegen Unterbrechung sichern
Durch die Operandeneinstellung INTERRUPT-ALLOWED=*NO bei SET-PROCEDURE-OPTIONS bzw. MODIFY-PROCEDURE-OPTIONS wird eine Prozedur gegen Unterbrechungen von Kommando-Eingaben im Dialog-Modus geschützt.
Wenn ein Programm in einer Prozedur aktiviert wird, muss die Prozedur auch vor unkontrollierten Kommando-Eingaben geschützt werden: z.B. wenn das Programm Daten oder Anweisungen verabeitet und einige davon das Programm veranlassen, Kommandos auszuführen (CMD-Makro) oder eine Unterbrechung verursachen (BKPT-Makro), die bei der Prozedur nicht vorgesehen ist.
Beispiel
/SET-PROCEDURE-OPTIONS ...,INTERRUPT-ALLOWED=NO /ASSIGN-SYSDTA TO=*PRIMARY /START-LMS ----------> Dialog am Terminal: // //... //END /MODIFY-JOB-SWITCHES ON=(4,5) /START-EDT ----------> Dialog am Terminal: * * ... * /EXIT-PROC
Ist eine Prozedur vor Unterbrechung geschützt, so wird normalerweise auch ein in dieser Prozedur ablaufendes Programm gegen Unterbrechung durch die Funktionstaste
geschützt. Ist im Programm jedoch eine STXIT-Routine für -Unterbrechung definiert (ESCPBRK), so wird das Ereignis -Unterbrechung an diese STXIT-Routine durchgereicht. Die Verantwortung für die Behandlung dieses Ereignisses liegt dann beim Programm. Allerdings führt das zu Problemen, wenn das Programm mit einem BKPT-Makro reagiert.Beispiel
/SET-PROCEDURE-OPTIONS ...,INTERRUPT-ALLOWED=NO /START-EXECUTABLE-PROGRAM ... // <-----------[K2] [K2]-STXIT> Ausgabe PC BKPT "Zurück zur Kommandoebene" /EXIT-PROCEDURE