Teilprogramme, Transaktionscodes, TAC-Queues und VORGANG-Exits können nur verzögert aus der Konfiguration gelöscht werden.
Zum Löschen eines Teilprogramms oder VORGANG-Exits aus der Konfiguration müssen Sie KC_DELETE_OBJECT (mit subopcode1=KC_DELAY) für den Objekttyp KC_PROGRAM aufrufen. Zum Löschen eines Transaktionscodes oder einer TAC-Queue müssen Sie den Objekttyp KC_TAC angeben.
Transaktionscodes und das Teilprogramm, dem diese Transaktionscodes zugeordnet sind, stehen in Beziehung zueinander. Ebenso steht ein VORGANG-Exit in Beziehung zu den Transaktionscodes, denen er zugeordnet ist. Deshalb müssen Sie beim Löschen von Transaktionscodes, Teilprogrammen und VORGANG-Exits auf die Reihenfolge achten. Allgemein gilt folgende Regel:
Ein Teilprogramm/VORGANG-Exit darf erst gelöscht werden, nachdem alle zugehörigen Transaktionscodes gelöscht sind. |
Folgende Teilprogramme dürfen nicht gelöscht werden:
Teilprogramme, die zu den Event-Exits START, SHUT, FORMAT oder INPUT gehören.
BS2000-Systeme: Teilprogramme und VORGANG-Exits, die in Lademodulen mit Lademodus STATIC gebunden sind.
Unix, Linux- und Windows-Systeme: Teilprogramme und VORGANG-Exits, die statisch ins Anwendungsprogramm gebunden sind. D.h. Sie dürfen nur Teilprogramme und VORGANG-Exits löschen, die in Shared Objects bzw. DLLs enthalten sind.
Folgende Transaktionscodes dürfen nicht gelöscht werden:
die Transaktionscodes KDCMSGTC, KDCSGNTC, KDCBADTC der Event-Services MSGTAC, SIGNON und BADTACS.
das Administrationskommando KDCSHUT des Administrationsprogramms KDCADM.
die von openUTM für XATMI intern erzeugten Transaktionscodes KDCTXCOM und KDCTXRLB.
Transaktionscodes, die im Parameter SIGNON-TAC der BCAMAPPL-Anweisung definiert sind.
Folgende TAC-Queue darf nicht gelöscht werden:
die Dead Letter Queue KDCDLETQ.
Alle anderen Teilprogramme und VORGANG-Exits, die nicht statisch gebunden sind, sowie Transaktionscodes können Sie aus der Konfiguration löschen, unabhängig davon, ob sie statisch oder dynamisch in die Konfiguration aufgenommen wurden.
Einen Asynchron-TAC bzw. eine TAC-Queue, der bzw. die als Empfänger (destadm) für die Ergebnisse der asynchronen Administrationskommandos definiert ist, dürfen Sie löschen. Sie sollten in diesem Fall jedoch einen neuen Empfänger definieren, da sonst die Ergebnisse verloren gehen. Dazu stehen Ihnen der Aufruf KC_MODIFY_OBJECT mit Parametertyp KC_MAX_PAR und das Administrationskommando KDCAPPL zur Verfügung.
Das Löschen von Teilprogrammen, VORGANG-Exits, Transaktionscodes und TAC-Queues hat folgende Auswirkungen:
Gelöschte Teilprogramme und VORGANG-Exits werden nicht mehr aufgerufen.
Asynchron-Aufträge an einen gelöschten Transaktionscode können nicht mehr erzeugt werden.
Asynchron-Aufträge, die zum Zeitpunkt des Löschens in der Message Queue des Transaktionscodes stehen, also vor dem Löschen erzeugt wurden, werden nicht mehr bearbeitet. Die Aufträge bleiben in der Message Queue des Asynchron-TACs. Zur Entlastung des Pagepools sollten Sie die Asynchron-Aufträge aus der Queue löschen (siehe KDCS-Aufruf DADM im openUTM-Handbuch „Anwendungen programmieren mit KDCS“).
Es können keine Dialog-Vorgänge an einen gelöschten TAC gestartet werden. Zum Zeitpunkt des Löschens offene Dialog-Vorgänge können noch normal abgewickelt werden, wenn nur der Vorgangs-TAC gelöscht wurde. Sie werden jedoch abgebrochen, wenn ein Folge-TAC aufgerufen wird, der gelöscht wurde.
Beim Löschen einer TAC-Queue werden deren Nachrichten sofort gelöscht. Neue Nachrichten für eine gelöschte TAC-Queue können nicht erzeugt werden.