Verhalten von segmentierten Programmen unter CICS oder IMS

Segmentierte EGL-Programme machen in den CICS- oder IMS-Umgebungen spezielle Überlegungen notwendig.

Wenn ein Benutzer ein segmentiertes EGL-Programm zum ersten Mal in diesen Umgebungen aufruft, verhält sich das Programm wie folgt:
  1. Es führt Initialisierungsaufgaben aus, z. B. erkennt es, dass der Benutzer das Programm neu gestartet hat.
  2. Es übergibt die Steuerung an den Anfang der Programmlogik.
  3. Es implementiert jede EGL-Anweisung converse:
    1. Es verwendet eine Arbeitsdatenbank, um program state zu speichern, einen Satz benutzerspezifischer Werte, die den aktuellen Status des Benutzerprogrammdialogs widerspiegeln. Der Status enthält die Daten für alle Datensätze und Formulare sowie die erforderlichen Informationen, um das Programm aus der entsprechenden Zeile auszuführen.
    2. Es schreibt Datenbankressourcen und wiederherstellbare Ressourcen fest.
    3. Es hebt alle Sperren auf.
    4. Es behält auch dann keine Datenbankposition bei, wenn die Anweisung open der Datenbank die Option forUpdate einschließt.
    5. Es konvertiert ein Formular.
    6. Es wird beendet.
Wenn der Benutzer eine Aktion ausführt, z. B. das Aktualisieren von Geschäftsdaten, stellt das Laufzeitsystem das Programm im Arbeitsspeicher wieder her. Das Programm startet erneut von vorne. Das segmentierte Programm führt automatisch die folgenden Schritte aus:
  1. Es führt Initialisierungsaufgaben aus, z. B. erkennt es, dass das Programm neu gestartet wurde.
  2. Es stellt den Programmstatus wieder her, einschließlich der Daten für alle Formulare und Datensätze sowie Informationen dazu, welche converse-Anweisung in dem Programm ausgeführt wurde.
  3. Es liest die Eingabe des Benutzers und führt Bearbeitungen aus.
  4. Es setzt den Zyklus fort, wenn die nächste converse-Anweisung implementiert wird:
    1. Es speichert den Programmstatus.
    2. Es schreibt die Datenbankressourcen und die wiederherstellbaren Ressourcen fest.
    3. Es hebt alle Sperren auf.
    4. Es behält auch dann keine Datenbankposition bei, wenn die Anweisung open der Datenbank die Option forUpdate einschließt.
    5. Es konvertiert ein Formular oder einen VGUI-Datensatz.
    6. Es wird beendet.

Feedback