In IMS mit Terminals interagieren

Für Standard-IMS-Programme wird eine nachrichtengesteuerte Struktur wie die in der folgenden Abbildung gezeigte verwendet:

Struktur einer Nachrichtenwarteschlange in IMS

In diesem Beispiel wird das Transaktionsprogramm von der IMS-Steuereinheit gestartet, wenn die dem Programm zugeordnete Nachrichtenwarteschlange eine Nachricht enthält. In einem anderen Programm würde die Nachricht möglicherweise in die Warteschlange aufgenommen oder in der Steuereinheit wären möglicherweise Eingaben aus dem Terminal gelesen worden. Im Programm wird die Nachricht aus der Warteschlange entfernt, erforderliche Datenbank-Ein-/Ausgaben werden durchgeführt und es werden Nachrichten in Ausgabewarteschlangen hinzugefügt, um die Verarbeitung fortzusetzen. Die Ausgabewarteschlange kann das Eingabeterminal, ein anderes Terminal, einen Drucker oder eine einer anderen Transaktion zugeordnete Warteschlange darstellen. Danach wird im Programm eine Schleife zurück zum Anfang durchgeführt und die nächste Nachricht in der Eingabewarteschlange des Programms wird verarbeitet.

In Standard-PL/I- oder COBOL-Programmen muss der Zyklus fortgesetzt werden, bis die Nachrichtenwarteschlange leer ist, da in mehreren Terminals gleichzeitig dieselbe Transaktion ausgeführt wird. In EGL-textUI-Programmen wird jedoch automatisch eine Schleife zum Lesen der jeweils nächsten Nachricht in der Warteschlange durchgeführt. Es müssen keine Steuerfunktionen für Nachrichtenwarteschlangen direkt definiert werden. Sie können Programme für IMS genau so definieren, wie Sie Programme für CICS definieren, bei denen eine synchrone Logikstruktur anstelle einer nachrichtengesteuerten Struktur verwendet wird. In der folgenden Abbildung wird ein Beispiel für ein synchrones Programm gezeigt:

Struktur eines synchronen Programms

Beim synchronen Modell müssen Sie nur die Verarbeitung berücksichtigen, die für einen einzelnen Benutzer bei einem einzelnen Terminal durchgeführt werden muss. Dadurch werden sowohl die Konstruktion als auch die Definition des Programms vereinfacht.

In IMS müssen alle Datenbankänderungen festgeschrieben und alle Datenbanksperren und -positionen aufgehoben werden, wenn auf Benutzereingaben gewartet wird. In EGL bedeutet dies, dass ein segmentiertes Programm erstellt wird. Wenn Sie das Programm definieren, beachten Sie, dass in EGL bei jeder CONVERSE-E/A-Anweisung eine Festschreibung durchgeführt wird.

Es ist wichtig zu wissen, wie die Segmentierung zum Entwickeln von Programmen für IMS funktioniert. Lesen Sie dazu das Kapitel Segmentierung in Text-UI-Programmen und UI-Programmen.


Feedback