Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

KC_CREATE_STATEMENTS - KDCDEF-Steueranweisungen erzeugen (inverser KDCDEF)

Mit KC_CREATE_STATEMENTS können Sie während des Anwendungslaufs (online) einen inversen KDCDEF-Lauf starten. Der inverse KDCDEF erzeugt KDCDEF-Steueranweisungen aus den Konfigurationsdaten. Damit können alle Änderungen, die durch das dynamische Eintragen, Modifizieren und Löschen von Objekten bewirkt wurden, für eine Neugenerierung übernommen werden.

Die vom inversen KDCDEF erzeugten KDCDEF-Steueranweisungen stellen im folgenden Sinne einen konsistenten Stand der Konfiguration der laufenden Anwendung dar:

Die von einer Transaktion durchgeführten Änderungen der Konfigurationsdaten werden von einem gleichzeitig laufenden inversen KDCDEF immer vollständig berücksichtigt.

Siehe auch openUTM-Handbuch „Anwendungen generieren“, Abschnitt „Ablauf eines inversen KDCDEF-Laufs“.

Mit dem inversen KDCDEF können Sie folgende KDCDEF-Steueranweisungen erzeugen:

  • CON-Anweisungen für Transportverbindungen zu entfernten LU6.1-Anwendungen.

  • KSET-Anweisungen für alle Keysets.

  • LSES-Anweisungen für alle LU6.1-Sessions.

  • LTAC-Anweisungen für Transaktionscodes, über die Service-Programme in Partner-Anwendungen gestartet werden.

  • LTERM-Anweisungen für alle LTERM-Partner, die nicht zu einem LTERM-Pool bzw. Multiplexanschluss gehören.

  • PTERM-Anweisungen für alle Clients und Drucker, die explizit in die Konfiguration eingetragen wurden.

  • PROGRAM-Anweisungen für alle Teilprogramme und VORGANG-Exits.

  • TAC-Anweisungen für alle Transaktionscodes und TAC-Queues der Anwendung.

  • USER-Anweisungen für alle Benutzerkennungen einschließlich ihrer Queues.

Der inverse KDCDEF erzeugt eine Steueranweisung für jedes Objekt des angegebenen Objekttyps, das in der Konfiguration der Anwendung enthalten ist, unabhängig davon, ob es dynamisch eingetragen wurde oder nicht und ob seine Eigenschaften modifiziert wurden oder nicht. Für Objekte, die mit KC_DELETE_OBJECT gelöscht wurden, erzeugt der inverse KDCDEF keine Steueranweisungen.

Detaillierte Angaben zum inversen KDCDEF finden Sie im Kapitel „Generierungsanweisungen aus der KDCFILE erzeugen"


Steuern des inversen KDCDEF-Laufs

Der inverse KDCDEF unterscheidet die folgenden sieben Objektgruppen:

1.Gruppe

LTERM-Partner, Clients, Drucker (Objekttypen: KC_LTERM, KC_PTERM)

2.Gruppe

                    

Teilprogramme, Transaktionscodes, TAC-Queues
(Objekttypen: KC_PROGRAM, KC_TAC)

3.Gruppe

Benutzerkennungen (Objekttyp: KC_USER)

4.Gruppe

Keysets (Objekttyp: KC_KSET)

5.Gruppe

Transaktionscodes, über die Service-Programme in Partner-Anwendungen gestartet werden (Objekttyp: KC_LTAC)

6.Gruppe

Transportverbindungen zu LU6.1-Anwendungen (Objekttyp: KC_CON)

7.Gruppe

LU6.1-Sessions (Objekttyp: KC_LSES)

Mit dem KC_CREATE_STATEMENTS-Aufruf können Sie die KDCDEF-Steueranweisungen für Objekte einer oder mehrerer dieser Gruppen erzeugen.

Beim KC_CREATE_STATEMENTS-Aufruf müssen Sie angeben, in welche Datei UTM die KDCDEF-Steueranweisungen schreiben soll. Sie können alle Steueranweisungen in eine Datei schreiben lassen oder für jede Objektgruppe eine eigene Datei angeben. Beim Aufruf können Sie darüber hinaus angeben, ob UTM neue Dateien anlegen oder bereits existierende Dateien erweitern soll.
Auf BS2000-Systemen können die Steueranweisungen statt in eine Datei auch in ein LMS-Bibliothekselement geschrieben werden. Das Vorgehen bei Bibliothekselementen ist analog zum Vorgehen bei Dateien. 


Ablauf eines inversen KDCDEF-Laufs

Der Zeitpunkt, zu dem der inverse KDCDEF-Lauf gestartet wird, und der Ablauf, sind abhängig vom momentanen Zustand der Anwendung. Die folgenden zwei Fälle sind zu unterscheiden:

  • Der inverse KDCDEF-Lauf wird asynchron gestartet, wenn zum Zeitpunkt des KC_CREATE_STATEMENTS-Aufrufs Transaktionen laufen, die schreibend auf die Konfigurationsdaten der Objekte zugreifen. Der inverse KDCDEF-Lauf wird dann erst gestartet, wenn diese Transaktionen abgeschlossen sind. Bei neuen Transaktionen, die Daten der Objekttabellen verändern sollen, werden die entsprechenden Aufrufe zum Ändern der Konfigurationsdaten der Anwendung jedoch abgewiesen, bis der inverse KDCDEF-Lauf abgeschlossen, d.h. der Asynchron-Auftrag bearbeitet ist.

    In UTM-Cluster-Anwendungen (Unix-, Linux- und Windows-Systeme) gilt außerdem:
    Eine Cluster-global wirkende Administrationsaktion führt in jeder laufenden Knoten-Anwendung zu einer solchen Transaktion, die den Start des inversen KDCDEF verzögern kann. Umgekehrt kann die Ausführung einer globalen Administrationsaktion auf einem laufenden Knoten verzögert werden, wenn dort gerade ein inverser KDCDEF läuft.

  • Der inverse KDCDEF-Lauf wird synchron gestartet, wenn zum Zeitpunkt des KC_CREATE_STATEMENTS-Aufrufs keine Transaktionen laufen, die schreibend auf die Konfigurationsdaten der Objekte zugreifen. Er ist bereits bei der Rückkehr in das Administrationsprogramm beendet. D.h. zu diesem Zeitpunkt sind bereits alle angeforderten KDCDEF-Steueranweisungen erzeugt und in den angegebenen Dateien abgelegt.


Ergebnis des inversen KDCDEF-Laufs

Nach einem erfolgreichen inversen KDCDEF-Lauf stehen die angeforderten Steueranweisungen in den beim Aufruf angegebenen Dateien. Diese Dateien können Sie bei einer Neugenerierung der Anwendung als Input für das UTM-Generierungstool KDCDEF verwenden. Jede der Dateien müssen Sie mit der KDCDEF-Steueranweisung OPTION DATA=Dateiname an KDCDEF übergeben. Die Dateien sind editierbar und können modifiziert werden.
Analoges gilt, wenn die Steueranweisungen auf BS2000-Systemen in LMS-Bibliothekselemente statt in Dateien geschrieben werden. Ob die Elemente editierbar sind, hängt allerdings von deren Typ ab; nur textartige Elemente sind modifizierbar. 


Transaktionssicherung / Cluster

Der KC_CREATE_STATEMENTS-Aufruf greift nur lesend auf die Daten der KDCFILE zu. Er unterliegt deshalb nicht der Transaktionssicherung. Er kann nicht durch einen RSET-Aufruf in der gleichen Transaktion zurückgesetzt werden.

Für UTM-Cluster-Anwendungen (Unix-, Linux- und Windows-Systeme) gilt:
Der Aufruf wirkt Knoten-lokal, d.h. das Starten eines inversen KDCDEF-Laufs zum Erzeugen von Steueranweisungen aus den Konfigurationsdaten wird nur in dieser Knoten-Anwendung ausgeführt. Diese Knoten-lokale Wirkung reicht aus, da in jeder Knoten-Anwendung dieselben Objekte existieren. Eine Cluster-globale Wirkung würde lauter identische KDCDEF-Anweisungen erzeugen.

Wenn Knoten-Anwendungen mit unterschiedlichen Generierungen laufen (während eines Online-Updates), wird der Aufruf abgelehnt, da das Ergebnis ansonsten davon abhängig wäre, auf welcher Knoten-Anwendung der Aufruf ausgeführt wird.

Versorgung der zu übergebenden Bereiche

Funktion des Aufrufs

Angabe im

Parameterbereich

Identifikationsbereich

Selektionsbereich

Datenbereich       

Online KDCDEF-Steueranweisungen erzeugen

Operationscode:
KC_CREATE_
STATEMENTS

——

——

Datenstruktur mit Informationen zum Typ der zu erzeugenden Steueranweisungen sowie Namen und Schreibmodus der Dateien

Versorgung der Parameter

Parameterbereich

Feldname

Inhalt

version

KC_ADMI_VERSION_1

retcode

KC_RC_NIL

version_data

KC_VERSION_DATA_11

opcode

KC_CREATE_STATEMENTS

id_lth

0

select_lth

0

data_lth

Länge der Daten im Datenbereich

Identifikationsbereich

Selektionsbereich

Datenbereich

Datenstruktur kc_create_statements_str

KDCADMI-Aufruf

KDCADMI (&parameter_area, NULL, NULL, &data_area)

Rückgaben von UTM

Parameterbereich

Feldname

Inhalt

retcode

Returncodes

data_lth

In data_lth geben Sie die Länge der Datenstruktur kc_create_statements_str an.

Datenbereich

Im Datenbereich müssen Sie für jede der Objektgruppen angeben, ob UTM die zugehörigen KDCDEF-Steueranweisungen erzeugen soll oder nicht. Soll UTM Steueranweisungen für eine Objektgruppe erzeugen, dann müssen Sie zusätzlich die Datei angeben, in die UTM die Steueranweisungen schreiben soll, und den Schreibmodus der Datei. Zur Übergabe dieser Informationen an UTM ist in der Include-Datei kcadminc.h folgende Datenstruktur definiert.


Definition von Konstanten

#define KC_FILE_NAME_LTH    54
#define KC_ELEM_NAME_LTH    64 
#define KC_VERSION_LTH      24
#define KC_TYPE_LTH          8 


Definition der Indexkonstante

typedef enum
{  KC_DEVICE_STMT      = 0,
   KC_PROGRAM_STMT     = 1,
   KC_USER_STMT        = 2,
   KC_KSET_STMT        = 3,
   KC_LTAC_STMT        = 4,
   KC_CON_STMT         = 5,
   KC_LSES_STMT        = 6,
   KC_MAX_STMT_TYPE    = 6, 
   KC_DUMMY_STMT_TYPE  = 7
} KC_INVDEF_TYPE;


Definition der Datenstruktur

struct kc_create_statements_str
{  struct
   {  char  create_control_stmts;
       char  file_name[KC_FILE_NAME_LTH];
       char  file_mode;
       char  lib_name[KC_FILE_NAME_LTH];
       char  elem_name[KC_ELEM_NAME_LTH];
       char  vers[KC_VERSION_LTH];
       char  type[KC_TYPE_LTH];

   } type_list[(int)KC_MAX_STMT_TYPE + 1];
  char stmt_type;
  char file_error_code[4];
};

Der Index KC_INVDEF_TYPE des Vektors type_list gibt die Gruppe der Objekte an: 

KC_DEVICE_STMT

Steht für die 1. Gruppe, in der LTERM-Partner, Clients und Drucker zusammengefasst sind. In dieser Gruppe werden die KDCDEF-Steueranweisungen LTERM und PTERM erzeugt.

KC_PROGRAM_STMT

Steht für die 2. Gruppe, in der Teilprogramme, Transaktionscodes und TAC- Queues zusammengefasst sind. In dieser Gruppe werden die KDCDEF-Steueranweisungen PROGRAM und TAC erzeugt.

KC_USER_STMT

Steht für die 3. Gruppe der UTM-Benutzerkennungen. In dieser Gruppe werden die KDCDEF-Steueranweisungen USER erzeugt.

KC_KSET_STMT

Steht für die 4. Gruppe, die KSETS. In dieser Gruppe werden die KDCDEF-Steueranweisungen KSET erzeugt.

KC_LTAC_STMT

Steht für die 5. Gruppe, die Transaktionscodes, über die Service-Programme in Partner-Anwendungen gestartet werden. In dieser Gruppe werden die KDCDEF-Steueranweisungen LTAC erzeugt.

KC_CON_STMT

Steht für die 6. Gruppe, die Transportverbindungen zu LU6.1-Anwendungen.
In dieser Gruppe werden die KDCDEF-Steueranweisungen CON erzeugt.

KC_LSES_STMT

Steht für die 7. Gruppe, die LU6.1-Sessions. In dieser Gruppe werden die KDCDEF-Steueranweisungen LSES erzeugt.

Die Felder der Datenstrukturen müssen Sie wie folgt versorgen:

create_control_stmts



Hier geben Sie an, ob für die zu KC_INVDEF_TYPE gehörende Objektgruppe KDCDEF-Steueranweisungen erzeugt werden sollen oder nicht.


'Y'

Für diese Objektgruppe sollen KDCDEF-Steueranweisungen erzeugt werden.


'N'

Für diese Objektgruppe sollen keine KDCDEF-Steueranweisungen erzeugt werden. Statt 'N' kann auch das Null-Byte ('\0') angegeben werden.

file_name

Name der Datei, in der die KDCDEF-Steueranweisungen abgelegt werdensollen. Der Name darf bis zu 54 Zeichen lang sein. Er muss den Konventionen für Dateinamen in dem Betriebssystem genügen, in dem die Anwendung abläuft. Auf Unix-, Linux- und Windows-Systemen kann der Dateiname absolut oder relativ angegeben werden. Eine relative Angabe bezieht sich auf das Dateiverzeichnis, in dem die Anwendung gestartet wurde.

file_mode

Schreibmodus der Datei in file_name bzw. des Elements elem_name.


'C'

Create:

UTM soll eine neue Datei mit dem Namen file_name bzw. ein neues Element mit dem Namen elem_name erzeugen.Auf BS2000-Systemen erzeugt der inverse KDCDEF eine SAM-Datei bzw. ein LMS-Bibliothekselement, wobei Folgendes gilt:

  • Falls bereits eine Datei gleichen Namens existiert, muss es eine SAM-Datei sein. Die bereits existierende SAM-Datei wird dann überschrieben.

  • Falls bereits ein Element gleichen Namens existiert und falls bei vers=C‘<version>‘ oder *HIGHEST-EXISTING oder *UPPER-LIMIT angegeben wird, dann wird ein bereits vorhandenes Element mit der angegebenen Version überschrieben.

Existiert auf Unix-, Linux- und Windows-Systemen bereits eine Datei gleichen Namens, dann wird sie überschrieben.


'E'

Extend:

UTM soll die KDCDEF-Steueranweisungen an eine existierende Datei bzw. an ein bereits existierendes Element anhängen. Dabei gilt:

  • Existiert die Datei mit dem Namen file_name nicht, legt UTM sie an.

  • Wird auf BS2000-Systemen in lib_name eine LMS-Bibliothek angegeben, dann muss die Bibliothek bereits existieren. Dabei wird ein vorhandenes Element mit der angegebenen Version erweitert; existiert das Element mit dieser Version noch nicht, dann wird es neu angelegt.

lib_name (nur auf BS2000-Systemen)



Name der LMS-Bibliothek, in der die KDCDEF-Steueranweisungen abgelegt werden sollen. Der Name darf bis zu 54 Zeichen lang sein. Er muss den Konventionen für Dateinamen auf BS2000-Systemen genügen.

Ist der Name kürzer als die Feldlänge, dann muss er mit Leerzeichen aufgefüllt werden.

Die gleichzeitige Angabe von file_name und lib_name ist nicht erlaubt.

Wenn lib_name angegeben wird, dann müssen auch die Parameter elem_namevers und type versorgt werden.

elem_name (nur auf BS2000-Systemen)



Name des LMS-Bibliothekselements, in das die KDCDEF-Steueranweisungen geschrieben werden sollen. Der Name darf bis zu 64 Zeichen lang sein. Ist der Name kürzer als die Feldlänge, dann muss er mit Leerzeichen aufgefüllt werden. Der Name muss den Konventionen für LMS-Elementnamen genügen. 

vers (nur auf BS2000-Systemen)



Version des LMS-Bibliothekselements, in das die KDCDEF-Steueranweisungen geschrieben werden sollen. Die Version darf bis zu 24 Zeichen lang sein und muss den Konventionen für LMS- Versionsangaben genügen. Ist die Version kürzer als die Feldlänge, dann muss sie mit Leerzeichen aufgefüllt werden.

Als Version können auch die folgenden Zeichenfolgen angegeben werden:


*HIGHEST-EXISTING



Es wird in die höchste in der Bibliothek vorhandene Version des angegebenen Elements geschrieben.


*UPPER-LIMIT



Es wird in die höchst mögliche Version des angegebenen Elements geschrieben; diese Version wird von LMS durch "@" dargestellt.


*INCREMENT



Es wird für das angegebene Element eine neue Version angelegt. Die Angabe von *INCREMENT ist nur bei file_mode='C' erlaubt.

Diese Zeichenfolgen dürfen nicht abgekürzt werden!

type (nur auf BS2000-Systemen)



Type des LMS-Bibliothekselements, in das die KDCDEF-Steueranweisungen geschrieben werden sollen. Der Typ darf bis zu 8 Zeichen lang sein und muss den Konventionen für LMS-Typangaben genügen. Ist der Typ kürzer als die Feldlänge, dann muss er mit Leerzeichen aufgefüllt werden.

Es wird empfohlen, als type den LMS-Typ "S" zu verwenden.


Von KDCDEF wird nicht geprüft, ob die Angaben bei elem_name, vers oder type den Syntaxregeln von LMS entsprechen. Weitere Informationen zu den Syntaxregeln für den Namen von LMS-Elementen und Angabe von Version und Typ finden Sie im Handbuch „LMS SDF-Format“.

stmt_type

Wenn als Maincode ein Wert ungleich KC_MC_OK zurückgegeben wird, dann enthält das Feld stmt_type den Index aus KC_INVDEF_TYPE, auf den sich die Fehlermeldung bezieht.

file_error_code



Wenn im Fehlerfall als Subcode KC_SC_FILE_ERROR zurückgegeben wird, dann enthält das Feld file_error_code den DMS-Fehlercode oder (auf BS2000-Systemen) den zugehörigen PLAM-Fehlercode.

Der Vektor type_list wird beim Aufruf von UTM in der Reihenfolge vom 1.Vektorelement (Index KC_DEVICE_STMT) zum letzten Vektorelement (Index KC_LSES_STMT) abgearbeitet.

Soll UTM KDCDEF-Steueranweisungen für alle Objektgruppen erzeugen, dann muss in jedem Vektorelement das Feld create_control_stmts mit 'Y' versorgt, der Dateiname im Feld file_name angegeben und der Schreibmodus der Datei im Feld file_mode gesetzt werden.

Sollen alle Steueranweisungen in eine Datei geschrieben werden, ist zu beachten, dass der Schreibmodus richtig gesetzt wird.

Bei der ersten Angabe der Datei bzw. des LMS-Bibliothekselements können Sie den Schreibmodus auf 'C' oder 'E' setzen. In den folgenden Vektorelementen muss der Schreibmodus aber auf 'E' gesetzt werden, sonst werden die zuvor erzeugten Steueranweisungen überschrieben.

Soll UTM für eine der Objektgruppen keine Steueranweisungen erzeugen, dann ist im zugehörigen Vektorelement nur create_control_stmts='N' oder keine Angabe zu machen.


retcode

Im Feld retcode liefert UTM den Returnscode des Aufrufs zurück. Neben den in Abschnitt „Returncodes" aufgelisteten Returncodes können zusätzlich folgende Returncodes auftreten:


Maincode = KC_MC_OK

Der Aufruf wurde fehlerfrei bearbeitet.

Subcode:

KC_SC_ASYN_INIT

Der Auftrag wurde entgegengenommen, der inverse KDCDEF wird asynchron gestartet, sobald alle Transaktionen beendet sind, die Konfigurationsdaten verändern.

Maincode = KC_MC_DATA_INVALID

Ungültige oder fehlende Angabe im Datenbereich.

Subcodes:

KC_SC_DATA_MISSING

In der Datenstruktur, die im Datenbereich übergeben wurde, sind keine Daten angegeben.

KC_SC_NO_INFO

In der Datenstruktur, die im Datenbereich übergeben wurde, wurden ungültige Daten angegeben.

KC_SC_FILE_LIBRARY_MISMATCH (nur auf BS2000-Systemen)

Es wurde sowohl ein Dateiname (file_name) als auch eine LMS-Bibliothek (lib_name) angegeben.

KC_SC_LMS_ELEMENT_MISSING (nur auf BS2000-Systemen)

Es wurde eine LMS-Bibliothek (lib_name) angegeben, aber kein Element-Name (elem_name).

KC_SC_LMS_VERSION_MISSING (nur auf BS2000-Systemen)

Es wurde eine LMS-Bibliothek (lib_name) angegeben, aber keine Element-Version (vers).

KC_SC_LMS_TYPE_MISSING (nur auf BS2000-Systemen)

Es wurde eine LMS-Bibliothek (lib_name) angegeben, aber kein Element-Typ (type).

KC_SC_LMS_VERSION_MODE_MISMATCH (nur auf BS2000-Systemen)

Als LMS-Version wurde *INCREMENT angegeben, aber file_mode ist nicht 'C'.



Maincode = KC_MC_MEMORY_INSUFF

Es steht nicht genügend von UTM intern benötigter Speicherplatz zur Verfügung.

Subcode:

KC_SC_NO_INFO

Maincode = KC_MC_REJECTED_CURR

Der Aufruf kann zur Zeit nicht bearbeitet werden.

Subcode:

KC_SC_INVDEF_RUNNING

Es läuft bereits ein inverser KDCDEF oder ein inverser KDCDEF-Lauf ist asynchron in Vorbereitung, d.h. der Auftrag kann derzeit nicht bearbeitet werden.

Maincode = KC_MC_REJECTED

Der Aufruf wurde von UTM abgewiesen.

Subcodes:

KC_SC_NOT_GEN

Es sollen KDCDEF-Steueranweisungen für Objekte erzeugt werden, deren Typ nicht generiert wurde, z.B. USER-Anweisungen für eine Anwendung ohne Benutzerkennungen.

KC_SC_FILE_ERROR

Eine der Dateien, in die die KDCDEF-Steueranweisungen abgelegt werden sollen, kann nicht beschrieben werden. Im Feld file_error_code wird ein DMS-Fehlercode oder (auf BS2000-Systemen) ein PLAM-Fehlercode zurückgegeben, der Hinweise auf den aufgetretenen Fehler gibt.

KC_SC_NO_INFO

Der Pagepool zur Zwischenspeicherung der Übergabeparameter ist voll.

KC_SC_CLUSTER_CONF_INCONS

Nur für UTM-Cluster-Anwendungen:
Die laufenden Knoten-Anwendungen haben unterschiedliche Generierungen.