Die TBCENTRY-Anweisung ist nur für COB1-Teilprogramme zulässig. COBOL-Teilprogramme, die nicht ILCS-fähig sind, müssen bei openUTM mit PROGRAM ...,COMP=COB1 generiert werden. TCB-Entries sind von Vorteil in Verbindung mit COBOL-DML sowie bei einem GOTO in eine PERFORM-Routine. Näheres hierzu ist dem openUTM-Handbuch „Anwendungen programmieren mit KDCS“ zu entnehmen.
TCB-Entries dienen dazu, verschachtelte COBOL-Programme reentrant-fähig zu machen. In den folgenden Fällen sind TCB-Entries notwendig:
In Verbindung mit COBOL-DML:
Wenn in einer DECLARATIVES-Unterabteilung die Klausel USE-DATABASE-EXEPTION verwendet und der Programmablauf innerhalb dieser Declaratives mit PEND beendet wird. In diesem Fall muss der TCB-Entry I$ITCUPS angegeben werden, weil sonst der Zähler für den Durchlauf der DECLARATIVES nicht zurückgesetzt wird, was zu einer COBOL-Fehleraktion führt. I$ITCUPS setzt daher den Zähler bei einem PEND innerhalb der DECLARATIVES zurück.Bei einem GOTO in eine PERFORM-Routine:
Wenn ein Teilprogramm in einer PERFORM-Routine beendet wird, merkt sich das COBOL-Laufzeitsystem die Rücksprungadresse. Springt man im nächsten Teilprogramm mit GOTO in die PERFORM-Routine, dann verhält sich das Teilprogramm so, als wäre die PERFORM-Routine noch offen und springt auf die Rücksprungadresse. Durch Angabe eines TCB-Entries (mit beliebigem Namen) werden die Merker zurückgesetzt.
TCB-Entries müssen auch dem COB1-Compiler über einen COBRUN-Parameter bekannt gemacht werden.
Die Anweisung kann mehrmals angegeben werden.
|
|
tcbentry_groupname | |
ist ein frei wählbarer, max. 8 Zeichen langer Name, über den die mit dieser TCBENTRY-Anweisung definierte Gruppe von TCB-Entries angesprochen werden kann. Mit diesem Namen kann eine Gruppe von TCB-Entries an eine TAC-Anweisung geknüpft werden. | |
ENTRY= | TCB-Entry-Name |