Beim Start der Anwendung wird das Anwendungsprogramm in einer von Ihnen festgelegten Anzahl von Prozessen gestartet.
Da in der Regel viele Clients gleichzeitig mit einer UTM-Anwendung arbeiten, wird nicht jedem angeschlossenen Client exklusiv ein Prozess zugeordnet. Die Last einer großen Zahl von simultanen Requests wird von openUTM alternierend auf eine kleine Zahl von Prozessen verteilt. Der System-Overhead - und damit die Antwortzeit - wächst also nicht proportional zur Benutzerzahl.
Stehen zu einem bestimmten Zeitpunkt mehr Aufträge zur Bearbeitung an, als Prozesse frei sind, ordnet openUTM die Aufträge in eine Warteschlange ein. Umgekehrt werden, falls mehr Prozesse frei sind, als Aufträge anstehen, die freien Prozesse in eine Prozesswarteschlange eingereiht.
Zusätzlich zu der von Ihnen festgelegten Anzahl von Prozessen werden für eine UTM-Anwendung weitere Prozesse gestartet, die als UTM-System-Prozesse bezeichnet werden, siehe unter, Abschnitt „UTM-System-Prozesse“.
Das Konzept von openUTM, mit mehreren gleichwertigen, homogenen Prozessen zu arbeiten, hat eine Reihe weiterer Vorteile:
Mehrere Aufträge können gleichzeitig bearbeitet werden.
Wenn mehrere Aufträge den gleichen Service anfordern, kann dieser gleichzeitig in unterschiedlichen Prozessen zur Verfügung gestellt werden.
Auf schwankende Lastsituationen kann eine UTM-Anwendung flexibel reagieren, da per Administration im laufenden Betrieb Prozesse hinzugefügt oder weggenommen werden können.
Durchsatzhemmende Engpässe bei bestimmten Services werden ausgeschlossen, da die Prozesse gleichwertig (homogen) sind, und jeder Prozess für jede Aufgabe eingesetzt werden kann.
Ein schwerwiegender Fehler in einem Anwendungsprogramm kann höchstens zum Abbruch des betroffenen Prozesses führen. Die Wirkung bleibt also lokal, d.h. es ist nur der Auftrag betroffen, den der Prozess im Augenblick des Ausfalls bearbeitet. Die gesamte Anwendung oder aber andere Anwendungen, die ebenfalls unter Kontrolle von openUTM im gleichen Rechner ablaufen, sind davon nicht betroffen. Der abgebrochene Prozess wird von openUTM automatisch durch einen neuen ersetzt.
UTM-System-Prozesse
Die UTM-System-Prozesse sollen Anwendungen, die unter hoher Last laufen, reaktionsfähig halten. UTM-System-Prozesse bearbeiten nur ausgewählte Aufträge, die in erster Linie durch kurze Laufzeiten gekennzeichnet sind. Ausgewählte Aufträge sind zum Beispiel Verbindungsaufbauten oder -abbauten, Timeout-Anzeigen, Transaktionsende-Anforderungen bei UTM-D und Antworten für Programme, die auf einem PGWT-Aufruf warten.
Ausgewählte Aufträge können auch die Teilprogrammläufe eines Administrators sein. Dazu kann bei der Generierung ein so genannter privilegierter LTERM-Partner angegeben werden. Für die Verbindung, die zu diesem LTERM-Partner gehört, gilt Folgendes:
Wird für diese Verbindung ein Anmelde-Vorgang gestartet, dann wird der Anmelde-Vorgang auch von den UTM-System-Prozessen bearbeitet.
Meldet sich ein Administrator über diese Verbindung an, dann werden Teilprogrammläufe für diese Verbindung auch von den UTM-System-Prozessen bearbeitet.
Meldet sich ein normaler Benutzer über diese Verbindung an, dann wird diese Verbindung bis zum Abmelden dieses Benutzers ausschließlich von „normalen“ Prozessen bearbeitet.
UTM startet die UTM-System-Prozesse implizit beim Start einer Anwendung. Die Anzahl der gestarteten UTM-System-Prozesse hängt von der Angabe im Startparameter TASKS und der Angabe im Generierungsparameter MAX SYSTEM-TASKS ab.
Die folgende Tabelle zeigt die Anzahl der UTM-System-Prozesse, wenn in der UTM-Generierung MAX SYSTEM-TASK=*STD angegeben wurde.
Startparameter TASKS= | Anzahl zusätzlich gestarteter | Summe gestarteter Prozesse |
1 | 0 | 1 |
2 | 1 | 3 |
3 | 2 | 5 |
4 | 2 | 6 |
5 | 3 | 8 |
n > 5 | 3 | n + 3 |
Optimale Prozessauslastung durch „Pseudo-Conversations“
Service-Routinen lassen sich so programmieren, dass bei Wartesituationen, z.B. während der „Denkzeit“ eines Terminal-Benutzers, kein Prozess durch diesen Benutzer belegt wird. Der Prozess wird dann sofort freigegeben und steht für andere Aufträge bereit. Wenn der Terminal-Benutzer seine Eingabe-Aktivitäten abgeschlossen hat, übernimmt - ohne dass der Benutzer dies bemerkt - u.U. ein anderer Prozess die Fortsetzung des Dialogs.
openUTM sorgt so für eine optimale Auslastung der Prozesse, was sich positiv auf die Performance auswirkt.
Dieses Dialog-Konzept, auch „pseudo-conversational“ genannt, können Sie nicht nur für den Dialog mit Terminal-Benutzern, sondern auch für die Programm-Programm-Kommunikation einsetzen.
Nähere Informationen zum Thema „Pseudo Conversations“ finden Sie im openUTM-Handbuch: „Anwendungen programmieren mit KDCS für COBOL, C und C++“. Auf einige betriebssystemspezifische Aspekte des Prozesskonzepts wird in den Kapiteln „openUTM auf BS2000-Systemen", „openUTM auf Unix- und Linux-Systemen" und „openUTM auf Windows-Systemen" eingegangen. |