In diesem Beispiel soll ein in mehreren Versionen vorhandenes Lademodul, Shared Object bzw. eine DLL im laufenden Betrieb gegen eine neue Version ausgetauscht und um ein neues Teilprogramm mit einem neuen TAC erweitert werden. Der Austausch verläuft in drei Schritten.
Zuerst müssen über KDCADMI einige Daten abgefragt werden wie z.B. die aktuelle geladene Version des Lademoduls/ des Shared Objects/der DLL, bevor im zweiten Schritt die Konfiguration (TAC- und PROGRAM-Anweisung) geändert wird. In einem letzten Schritt wird der eigentliche Austausch veranlasst.
#include <kcadminc.h> /* Include-Datei fuer die Administration */ INIT ... MGET /* Daten (Name, TAC,...) des zu tauschenden */ /* Teilprogramms einlesen */ ... Eingabe analysieren /********************* 1. Teil: Pruefen und Abfragen *********************/ KDCADMI opcode=KC_GET_OBJECT /* Ist noch Platz fuer TAC- PROGRAM,... */ /* -Anweisungen reserviert ? */ KDCADMI opcode=KC_GET_OBJECT /* Pruefen, ob es die TAC-, PROGRAM- ... */ /* Anweisungen schon gibt */ KDCADMI opcode=KC_GET_OBJECT /* Aktuelle Version des Lademoduls / Shared */ /* Objects ermitteln */ if {Fehler in Teil 1: MPUT mit PEND FI } /* Bei Fehler Meldung an Bildschirm */
/********************* 2. Teil: Dynamisch generieren *****************/ KDCADMI opcode=KC_CREATE_OBJECT /* PROGRAM-Anweisung einfuegen */ KDCADMI opcode=KC_CREATE_OBJECT /* TAC-Anweisung einfuegen */ if {Fehler in Teil 2: RSET} /* Bei Fehler Transaktion zurücksetzen */
/********************* 3. Teil: Programm austauschen ********************/ KDCADMI opcode=KC_MODIFY_OBJECT /* Teilprogramm austauschen */ MPUT /* Meldung an Bildschirm */ PEND FI
Der RSET-Aufruf ist notwendig, damit keine inkonsistente Generierung entsteht, wenn in Teil 2 Fehler auftreten. Die KC_CREATE_OBJECT-Operationen müssen für die aufgeführten Objekte in dieser Reihenfolge (PROGRAM-TAC) angegeben werden, sonst kann openUTM die Bezüge nicht herstellen.