Wenn Sie die zentrale Administration über openUTM mit verteilter Verarbeitung abwickeln möchten, haben Sie den Vorteil, dass
gleichzeitig mehrere Anwendungen administriert werden können,
ein Administrations-Auftrag sowohl von der Administrations-Anwendung als auch durch die administrierten Anwendungen angestoßen werden kann (Poll-Funktion),
auf einfache Art zeitgesteuerte Administrationsaufträge gestellt werden können (DPUT),
bei Bedarf mit globaler Transaktionssicherung gearbeitet werden kann. Dadurch können Sie z.B. sicherstellen, dass bestimmte Anwendungsparameter gleichzeitig für alle Anwendungen geändert werden, was bei der Administration über einen UPIC-Client oder eine TS-Anwendung nicht gewährleistet ist, da z.B. Netzstörungen dazu führen können, dass die Aktion in einer der Anwendungen nicht durchgeführt werden kann, während die anderen Anwendungen schon mit den neuen Werten arbeiten.
Für die Kommunikation zwischen Administrations-Anwendung und den administrierten Servern können Sie die Protokolle LU6.1 oder OSI TP verwenden.
Programmierung
Wenn Sie für die Administration eine globale Transaktionssicherung wünschen, muss eine Transaktion der Administrations-Anwendung mit mehreren Auftragnehmern kommunizieren. Das folgende Diagramm veranschaulicht das Prinzip anhand von zwei administrierten Anwendungen, die jeweils mehrere Administrationsaufrufe absetzen.
Das Programm TPADM beauftragt beide Anwendungen. Das Programm TPREC wird erst aufgerufen, nachdem die Antworten von beiden Anwendungen eingetroffen sind. Wenn beide Anwendungen ihren Auftrag ordnungsgemäß abgeschlossen haben, beendet TPREC die globale Transaktion und den Vorgang.
Das folgende Beispiel skizziert, wie die Programme TPADM und TPREC aussehen können. Die Administrationsaufgabe besteht darin, von einem Unix- oder Linux-System aus einen Programmaustausch in einer UTM-Anwendung auf einem Unix- oder Linux-System und einer UTM-Anwendung auf einem BS2000-System gleichzeitig zu initiieren. Der Austausch verläuft auf einem Unix- oder Linux-System und auf einem BS2000-System unterschiedlich. Auf einem BS2000-System wird die aktuelle Version des Lademoduls ermittelt, das Lademodul zum Austausch vorgemerkt und anschließend die Anwendung neu geladen. Auf einem Unix- oder Linux-System wird das Programm gleich ausgetauscht. Die administrierten Anwendungen können dabei ein Programm wie im Abschnitt "Mehrere Administrationsaufrufe" verwenden. Das folgende Diagramm skizziert die Umsetzung des Beispiels für LU6.1 und für OSI TP ohne globale Transaktionssicherung.
Programmierung und Generierung sind analog, wenn statt der administrierenden und/oder der administrierten UTM-Anwendung auf Unix- und Linux-Systemen eine UTM-Anwendung auf Windows-Systemen eingesetzt wird. Bitte beachten Sie, dass Portnummer 102 nicht für UTM-Anwendungen auf Unix-, Linux- und Windows-Systemen verwendet werden kann.
/* Teilprogramm TPADM sendet Daten an Anwendung UTMAPPL1 und UTMAPPL2 */ INIT memcpy (buffer, ...) /* Daten vorbereiten */ APRO DM KCPI=VGID1 KCPA=UTMAPPL1 /* Auftragnehmerservice TPADMIN */ KCRN=TPADMIN /* in UTMAPPL1 adressieren */ MPUT NE buffer /* Daten an UTMAPPL1 senden */ KCRN=VGID1 APRO DM KCPI=VGID2 KCPA=UTMAPPL2 /* Auftragnehmerservice TPADMIN in */ KCRN=TPADMIN /* UTMAPPL2 adressieren */ MPUT NE buffer /* Daten an UTMAPPL2 senden */ KCRN=VGID2 PEND KP KCRN=TPREC /* Warten auf Auftragnehmer */
Für OSI TP mit globaler Transaktionssicherung sind zusätzliche Anweisungen erforderlich, um
die Commit Functional Unit auszuwählen
(APRO... KCOF=C)UTMAPPL1 aufzufordern, das Transaktions- und Dialog-Ende einzuleiten
(CTRL PE, KCRN=VGID1)UTMAPPL2 aufzufordern, das Transaktions- und Dialog-Ende einzuleiten
(CTRL PE, KCRN=VGID1)
/* Folgeprogramm TPREC nimmt Quittung von Auftragnehmer-Service entgegen */ INIT KCRPI=VGIDx /* 1. Nachricht kommt von AN- */ /* Service mit Vorgangs-ID VGIDx */ MGET NT KCRN=VGIDx /* Antwort von AN-Service 1 lesen, */ KCRCCC=12Z KCRPI=VGIDy /* weitere Nachricht von anderem */ /* AN-Service (VGIDy) liegt vor */ if (OK) /* AN-Service1 hat den Programm- */ { /* austausch angestossen */ MGET NT KCRN=VGIDy /* Antwort von AN-Service 2 lesen */ KCRCCC=10Z KCRPI=SPACES /* Keine Nachricht mehr vorhanden */ if (OK) /* AN-Service2 hat den Programm- */ { /* austausch angestossen */ MPUT NE /* Nachricht an Administrator */ PEND FI /* Globale Transaktion beenden */ } else error_routine(); } else error_routine(); .... error_routine () /* Fehlerroutine */ { MPUT NE /* Administrator benachrichtigen */ PEND FR } /* Globale Transaktion */ /* zuruecksetzen und beenden */
Generierungsbeispiel
Das Beispiel zeigt eine LU6.1-Generierung, wobei die Administrations-Anwendung eine zweistufige Adressierung verwendet.
Im Beispiel werden die Portnummern und Rechnernamen (BS20HOST, UnixHOST, UnixADMI) in den Generierungsanweisungen angegeben. Siehe dazu openUTM-Handbuch „Anwendungen generieren“ unter „Adressinformationen bereitstellen“.
Generierung der UTM-Administrations-Anwendung auf Unix- oder Linux-Systemen
BCAMAPPL ADMINAPP,LISTENER-PORT=1234,T-PROT=RFC1006,T-SEL-FORMAT=T *** *** Verbindung zur Anwendung auf Unix- oder Linux-System, *** Administrator-Anwendung ist Auftraggeber SESCHA ADMAPPL1,PLU=Y,CONNECT=Y LPAP UTMAPPL1,SESCHA=ADMAPPL1 LSES ADMAG1,LPAP=UTMAPPL1,... CON APPLUnix,BCAMAPPL=ADMINAPP,PRONAM=UnixHOST - ,LISTENER-PORT=2345,LPAP=UTMAPPL1,... *** *** Verbindung zur Anwendung auf dem BS2000-System, *** Administrator-Anwendung ist Auftraggeber SESCHA ADMAPPL2,PLU=Y,CONNECT=Y LPAP UTMAPPL2,SESCHA=ADMAPPL2 LSES ADMAG2,LPAP=UTMAPPL2,... CON APPLIBS2,BCAMAPPL=ADMINAPP,PRONAM=BS20HOST - ,LISTENER-PORT=102,LPAP=UTMAPPL2,... *** *** LTAC fuer fernes Administrationsprogramm, zweistufige Adressierung *** LTAC=RTAC ist der TAC in der entfernten Anwendung LTAC TPADMIN *** *** TACs fuer die beiden Administrationsprogramme TAC TPADM,PROGRAM=... TAC TPREC,PROGRAM=...
Generierung der administrierten UTM-Anwendung auf BS2000-Systemen
BCAMAPPL APPLIBS2,T-PROT=ISO *** *** LU6-Generierung fuer Auftragnehmer SESCHA ADMINREC,PLU=N,CONNECT=N LPAP UTMADMIN,SESCHA=ADMINREC,PERMIT=ADMIN LSES ADMAN,LPAP=UTMADMIN,... CON ADMINAPP,BCAMAPPL=APPLIBS2,PRONAM=UnixADMI,LPAP=UTMADMIN,... *** TAC TPADMIN,PROGRAM=ADMINPRG,ADMIN=Y PROGRAM ADMINPRG,...
Generierung der administrierten UTM-Anwendung auf Unix- und Linux-Systemen
BCAMAPPL APPLUnix,LISTENER-PORT=1234,T-PROT=RFC1006,T-SEL-FORMAT=T *** *** LU6-Generierung fuer Auftragnehmer SESCHA ADMINREC,PLU=N,CONNECT=N LPAP UTMADMIN,SESCHA=ADMINREC,PERMIT=ADMIN LSES ADMAN,LPAP=UTMADMIN,... CON ADMINAPP,BCAMAPPL=APPLUnix,PRONAM=UnixADMI - ,LISTENER-PORT=2345,LPAP=UTMADMIN,... *** TAC TPADMIN,PROGRAM=ADMINPRG,ADMIN=Y PROGRAM ADMINPRG,...