Die KDCFILE und die ROOT-Tabellen-Sourcen können wahlweise in einem KDCDEF-Lauf oder jeweils separat in unterschiedlichen KDCDEF-Läufen generiert werden. Mit der KDCDEF-Anweisung OPTION legen Sie fest, welche Generierungsobjekte KDCDEF erzeugen soll:
|
Unix-, Linux- und Windows-Systeme:
Für UTM-Cluster-Anwendungen auf Unix-, Linux- und Windows-Systemen gibt es die zusätzliche Option CLUSTER, siehe Abschnitt „OPTION - KDCDEF-Lauf steuern".
Den Namen der ROOT-Tabellen legen Sie mit der ROOT-Anweisung fest.
|
Auf BS2000-Systemen ist rootname der Name des ROOT-Tabellenmoduls.
Auf Unix-, Linux- und Windows-Systemen ist rootname ein Namensteil der ROOT-Tabellen-Source (ROOTSRC).
KDCDEF liest die Steueranweisungen von der Standardeingabe oder aus einer Datei ein.
Standardeingabe bedeutet auf BS2000-Systemen SYSDTA (mit dem SDF-Kommando ASSIGN-SYSDTA können Sie SYSDTA z.B. einer SAM- oder ISAM-Datei, einem Bibliothekselement vom Typ S einer PLAM-Bibliothek oder *SYSCMD zuweisen).
Auf Unix-, Linux- und Windows-Systemen bedeutet Standardeingabe stdin (d.h. von der Unix-, Linux- und Windows-Kommandoebene).
Wie Sie KDCDEF starten und die Steueranweisungen an KDCDEF übergeben, ist im Abschnitt "Aufruf von KDCDEF und Eingabe der Steueranweisungen" detailliert beschrieben.
KDCDEF führt für alle KDCDEF-Anweisungen Syntax- und Plausibilitätsprüfungen durch. Erkennt KDCDEF dabei keine schwerwiegenden Fehler, dann werden für eine stand-alone UTM-Anwendung die in Bild 2 aufgeführten Dateien erstellt.
Welche Dateien erstellt werden, wenn eine UTM-Cluster-Anwendung generiert wird, entnehmen Sie Bild 17 im Kapitel "UTM-Cluster-Dateien".
Auch wenn mit einem KDCDEF-Lauf – gesteuert durch die OPTION-Anweisung – nur ein Teil der Konfiguration (neu) erstellt werden soll, geben Sie dennoch für jeden Generierungslauf die Anweisungen für die gesamte Konfiguration an. Nur dann ist KDCDEF in der Lage, die Vollständigkeit und Konsistenz der Generierungsanweisungen zu überprüfen.
KDCDEF führt Plausibilitätsprüfungen immer für alle Anweisungen durch. Soll in einem KDCDEF-Lauf z.B. nur eine ROOT-Source erzeugt werden, dann prüft KDCDEF auch die Anweisungen, die sich nur auf die KDCFILE auswirken.
Durch diese vollständige Prüfung können Inkonsistenzen beim Erzeugen von ROOT-Tabellenmodul und KDCFILE, die sonst erst beim Start der Anwendung entdeckt würden, frühzeitig erkannt und damit Folgefehler vermieden werden.
Das folgende Bild zeigt, welche Dateien erstellt werden, wenn Sie eine stand-alone UTM-Anwendung definieren.
Bild 2: Ergebnis des KDCDEF-Laufs (bei OPTION ...,GEN=ALL) für eine stand-alone UTM-Anwendung
KDCDEF-Anweisungen für eine Minimal-Konfiguration
Damit Ihre UTM-Anwendung ablaufen kann, müssen Sie mindestens die folgenden Steueranweisungen an KDCDEF übergeben.
Für die verteilte Verarbeitung, den Anschluss von bestimmten Clients und Druckern etc. müssen Sie weitere KDCDEF-Anweisungen absetzen. Nähere Informationen dazu finden Sie im Abschnitt "Anwendungen für verteilte Verarbeitung generieren" und Abschnitt "Clients an die Anwendung anschließen" sowie Abschnitt "Druckergenerieren (auf BS2000-, Unix- und Linux-Systemen)".
Bei den mit ’*’ beginnenden Zeilen handelt es sich um Kommentare.
Minimalkonfiguration für BS2000-Systeme:
**************************************************************************** * Angabe, welche Teile des Anwendungsprogramms KDCDEF erzeugen soll * **************************************************************************** * OPTION GEN=... * **************************************************************************** * * Name der Root-Tabellen festlegen * **************************************************************************** * ROOT applroot * **************************************************************************** * * Anwendungsparameter festlegen * **************************************************************************** * * Name, unter dem die Anwendung von Kommunikationspartnern * angesprochen werden kann MAX APPLINAME=sample * Basisname der Anwendung festlegen. MAX KDCFILE=filebase * Maximalanzahl der Prozesse der UTM-Anwendung festlegen: MAX TASKS=2 * **************************************************************************** * optional: Datenbank-System generieren (im Beispiel Oracle) **************************************************************************** * DATABASE TYPE=XA * **************************************************************************** * optional: Verwendetes Formatierungssystem angeben **************************************************************************** * die Anweisung FORMSYS müssen Sie nur angeben, falls Ihre UTM-Anwendung * im formatierten Betrieb ablaufen soll FORMSYS TYPE=FHS * **************************************************************************** * * Anschlusspunkte (LTERM-Partner) für Clients/TS-Anwendungen * **************************************************************************** * * Z.B. offene LTERM-Pools generieren, damit sich Clients/TS-Anwendungen * an die Anwendung anschließen können * LTERM-Pools für die verschiedenen Client-Typen ------------------------(1) TPOOL LTERM=client, NUMBER=..., PTYPE=*ANY, PRONAM=*ANY BCAMAPPL upicappl, T-PROT=ISO TPOOL LTERM=upic, NUMBER=..., PTYPE=UPIC-R, BCAMAPPL=upicappl, PRONAM=*ANY TPOOL LTERM=appli, NUMBER=..., PTYPE=APPLI, PRONAM=*ANY BCAMAPPL sockappl, T-PROT=SOCKET, LISTENER-PORT=number TPOOL LTERM=socket, NUMBER=..., PTYPE=SOCKET, BCAMAPPL=sockappl, PRONAM=*ANY * **************************************************************************** * * Services generieren * **************************************************************************** * * Eigene Teilprogramme, die die Services erbringen, und die zugehörigen * Transaktionscodes generieren * (für COMP=... ist der verwendete Compiler bzw. das Laufzeitsystem, meistens * „ILCS", anzugeben) PROGRAM=userpu,COMP= ... TAC usertc,PROGRAM=userpu, ... ------------------------------------------2) * **************************************************************************** * * Administration * **************************************************************************** * * Administrations-Programm KDCADM PROGRAM KDCADM,COMP=ILCS * Administrationskommando KDCSHUT generieren, damit die Anwendung immer * normal beendet werden kann TAC KDCSHUT,PROGRAM=KDCADM ... ------------------------------------------(3) * In Anwendungen mit Benutzerkennungen: Benutzerkennung für den Administrator USER admin,PERMIT=ADMIN,PASS=.... * * Soll die Administration über WinAdmin/WebAdmin erfolgen, * müssen Sie die folgende TAC- und PROGRAM Anweisung absetzen * und einen Anschluss für den UPIC-Client (hier einen LTERM-Pool) generieren * Außerdem sollten Sie dann die administrationsberechtigte Benutzerkennung * admin ohne Wiederanlauf-Eigenschaft oder eine eigene * admistrationsberechtigte Benutzerkennung ohne Wiederanlauf-Eigenschaft für * die Adminstration über WinAdmin/WebAdmin generieren. * Administrations-Programm KDCWADMI * PROGRAM KDCWADMI,COMP=ILCS TAC KDCWADMI,PROGRAM=KDCWADMI,CALL=BOTH,ADMIN=Y TPOOL LTERM=WADM,PTYPE=UPIC-R,PRONAM=*ANY, NUMBER=1 ---------------------(5) **************************************************************************** * optional: Tabellenplätze für die dynamische Administration reservieren * **************************************************************************** RESERVE OBJECT=...,NUMBER=... -------------------------------------------(4) END
Anmerkungen (BS2000-Systeme) | |
(1) | Für jeden Client-Typ, der sich an die Anwendung anschließen kann (Terminal, UPIC-Client, TS-Anwendung), müssen Sie einen eigenen LTERM-Pool generieren. Für Terminals reicht ein LTERM-Pool - unabhängig vom Typ der Terminals, die sich an die Anwendung anmelden sollen. Sie können die LTERM-Pools auch so generieren, dass sich alle Clients eines bestimmten Typs anmelden können - unabhängig von dem Rechner, an dem sie sich befinden. Den Anschluss von Clients können Sie auch mit Hilfe von LTERM-/PTERM-Anweisungen realisieren. LTERM-/PTERM-Anweisungen müssen Sie insbesondere dann verwenden, wenn die UTM-Anwendung selbst Verbindungen zu Clients (z.B. TS-Anwendungen) aufbauen oder wenn ein Drucker generiert werden soll. Für UPIC-Clients bzw. HTTP-Clients oder TS-Anwendungen ist eigener BCAMAPPL mit T-PROT=ISO oder RFC1006 bzw. (SOCKET,...) notwendig. |
(2) | Sie können einem Teilprogramm auch mehrere Transaktionscodes zuordnen, wenn es mehrere verschiedene Services erbringt. |
(3) | Durch weitere TAC-Anweisungen können Sie alle Administrationskommandos generieren, die Sie im Betrieb verwenden wollen. Wollen Sie für die Administration der Anwendung eigene Administrationsprogramme verwenden, dann müssen Sie diese mit entsprechenden PROGRAM- und TAC-Anweisungen generieren. |
(4) | Mit Hilfe der Administration können Sie im laufenden Betrieb der Anwendung weitere Objekte in die Konfiguration der Anwendung eintragen (siehe openUTM-Handbuch „Anwendungen administrieren“). Für diese Objekte müssen Sie bei der KDCDEF-Generierung Tabellenplätze in KDCFILE erzeugen. |
(5) | Die Verbindung für einen WinAdmin- oder WebAdmin-Client kann anstatt mit einer TPOOL-Anweisung auch mit entsprechenden PTERM-/LTERM-Anweisungen - z.B. mit einem privilegiertem LTERM - generiert werden, siehe openUTM-Handbuch „Anwendungen administrieren“. |
Minimalkonfiguration für Unix-, Linux- und Windows-Systeme
**************************************************************************** * * Angabe, welche Teile des Anwendungsprogramms KDCDEF erzeugen soll * **************************************************************************** * OPTION GEN=... * **************************************************************************** * * Name der Root-Tabellen festlegen * **************************************************************************** * ROOT applroot * **************************************************************************** * * Anwendungsparameter festlegen * **************************************************************************** * * Name, unter dem die Anwendung von Kommunikationspartnern * angesprochen werden kann * MAX APPLINAME=sample * * Basisverzeichnis der Anwendung festlegen. * Das ist das Verzeichnis, in dem u.a. die KDCFILE abgelegt wird. * MAX KDCFILE=filebase * * Schlüssel für Shared Memory Bereiche festlegen * MAX CACHESHMKEY=...,IPCSHMKEY=...,KAASHMKEY=... [,OSISHMKEY=...,XAPTPSHMKEY=...] --------------------- (1) * Semaphore Schlüssel für die anwendungsglobalen Semaphore festlegen * MAX SEMARRAY=number,number1 * * Maximalanzahl der Prozesse der UTM-Anwendung festlegen. MAX TASKS=2 * **************************************************************************** * * optional: Datenbank-System generieren (am Beispiel Oracle) * **************************************************************************** * RMXA XASWITCH=xaoswd,SPEC=C * **************************************************************************** * * Anschlusspunkte (LTERM-Partner) für Clients/TS-Anwendungen * **************************************************************************** * * Z.B. offene LTERM-Pools generieren, damit sich Clients/TS-Anwendungen an * * die Anwendung anschließen können * LTERM-Pools für die verschiedenen Client-Typen ------------------------ (2) TPOOL LTERM=clientr, PTYPE=UPIC-R, NUMBER=... TPOOL LTERM=clientl, PTYPE=UPIC-L, NUMBER=... TPOOL LTERM=appli, PTYPE=APPLI, NUMBER=... BCAMAPPL sockappl, LISTENER-PORT=number TPOOL LTERM=socket, PTYPE=SOCKET, BCAMAPPL=sockappl, NUMBER=... TPOOL LTERM=term, PTYPE=TTY, NUMBER=... * **************************************************************************** * * Services generieren * **************************************************************************** * * Eigene Teilprogramme, die die Services erbringen, und die zugehörigen * Transaktionscodes generieren * (für COMP=... ist der verwendete Compiler anzugeben) * PROGRAM=userpu,COMP=... TAC usertc,PROGRAM=userpu,... ------------------------------------------- (3) * **************************************************************************** * * Administration * **************************************************************************** * * Administrations-Programm KDCADM * PROGRAM KDCADM,COMP=C * Administrationskommando KDCSHUT generieren, damit die Anwendung immer * normal beendet werden kann * TAC KDCSHUT,PROGRAM=KDCADM ... ----------------------------------------- (4) * In Anwendungen mit Benutzerkennungen: Benutzerkennung für den Administrator * USER admin,PERMIT=ADMIN,PASS=.... * * Soll die Administration über WinAdmin/WebAdmin erfolgen, * müssen Sie die folgende TAC- und PROGRAM Anweisung absetzen * und einen Anschluss für den UPIC-Client (hier einen LTERM-Pool) generieren * Administrations-Programm KDCWADMI * PROGRAM KDCWADMI,COMP=C TAC KDCWADMI,PROGRAM=KDCWADMI,CALL=BOTH,ADMIN=Y TPOOL LTERM=WADM,PTYPE=UPIC-R,NUMBER=1 ---------------------------------- (6) * **************************************************************************** * * optional: Tabellenplätze für die dynamische Administration reservieren * **************************************************************************** * RESERVE OBJECT=...,NUMBER=... ------------------------------------------ (5) END
Anmerkungen (Unix-, Linux- und Windows-Systeme) | |
(1) | Die Shared-Memory-Schlüssel OSISHMKEY= und XAPTPSHMKEY= müssen Sie nur angeben, wenn Sie Objekte für die Kommunikation über OSI TP generieren. Die anderen Shared Memories benötigt jede UTM-Anwendung, die auf Unix-, Linux- oder Windows-Systemen abläuft. |
(2) | Auf Unix-, Linux- oder Windows-Systemen müssen Sie für jeden Client-Typ, der sich an die Anwendung anschließen kann (Terminal, UPIC-Client, TS-Anwendung), einen eigenen LTERM-Pool generieren. Sie können die LTERM-Pools auch so generieren, dass sich alle Clients eines bestimmten Typs anmelden können - unabhängig von dem Rechner, an dem sie sich befinden. Den Anschluss von Clients können Sie auch mit Hilfe von LTERM-/PTERM-Anweisungen realisieren. LTERM-/PTERM-Anweisungen müssen Sie insbesondere dann verwenden, wenn die UTM-Anwendung selbst Verbindungen zu Clients (z.B. TS-Anwendungen) aufbauen soll oder wenn auf Unix- oder Linux-Systemen ein Drucker generiert werden soll. Für HTTP-Clients oder Socket-Anwendungen ist eigener BCAMAPPL mit T-PROT= (SOCKET,...) notwendig. |
(3) | Sie können einem Teilprogramm auch mehrere Transaktionscodes zuordnen, wenn es mehrere verschiedene Services erbringt. |
(4) | Durch weitere TAC-Anweisungen können Sie alle Administrationskommandos generieren, die Sie im Betrieb verwenden wollen. Wollen Sie für die Administration der Anwendung eigene Administrationsprogramme verwenden, dann müssen Sie diese mit entsprechenden PROGRAM- und TAC-Anweisungen generieren. |
(5) | Mit Hilfe der Administration können Sie im laufenden Betrieb der Anwendung weitere Objekte in die Konfiguration der Anwendung eintragen (siehe openUTM-Handbuch „Anwendungen administrieren“). Für diese Objekte müssen Sie bei der KDCDEF-Generierung Tabellenplätze in der KDCFILE erzeugen. |
(6) | Die Verbindung für einen WinAdmin- oder WebAdmin-Client kann anstatt mit einer TPOOL-Anweisung auch mit entsprechenden PTERM-/LTERM-Anweisungen - z.B. mit einem privilegiertem LTERM - generiert werden, siehe openUTM-Handbuch „Anwendungen administrieren“. |
Bestehende UTM-Anwendung neu generieren
Wenn Sie für eine bestehende Anwendung (d.h. KDCROOT und KDCFILE existieren bereits) eine neue ROOT-Tabellen-Source und/oder eine neue KDCFILE generieren wollen, müssen Sie Folgendes beachten:
Informationen zu Objekten, die im Betrieb der Anwendung dynamisch in die KDCFILE eingetragen oder deren Eigenschaften geändert wurden, müssen Sie in die neue KDCFILE übernehmen. Dazu steht Ihnen die Funktion „inverser KDCDEF“ zur Verfügung. Mit ihr erzeugen Sie aus den Konfigurationsinformationen der aktuellen KDCFILE Steueranweisungen für den KDCDEF-Lauf, die Sie sofort weiterverarbeiten können. Im KDCDEF-Lauf müssen Sie dazu die Steueranweisung CREATE-CONTROL-STATEMENTS aufrufen.
Über die UTM-Administration können Sie den inversen KDCDEF-Lauf auch im laufenden Betrieb der Anwendung durchführen.
Informationen zur Funktion „inverser KDCDEF“ finden Sie im Abschnitt "Inverser KDCDEF". |
Bild 3: KDCDEF-Lauf mit inversem KDCDEF