Für CICS-Umgebungen können Sie angeben, ob ein Programm im Segmentmodus (pseudodialogfähiges CICS) oder im Modus ohne Segmentierung (interaktives CICS) ausgeführt wird, indem beim Definieren des Programms die Eigenschaft segmented festgelegt wird.
Das folgende Diagramm stellt den Ablauf eines Programms dar, das im nicht Modus ohne Segmentierung ausgeführt wird. Das Beispielaktualisierungsprogramm CSUP stellt ein Formular um, zeigt die zu aktualisierenden Kundenstammdaten an, akzeptiert Daten von einem Benutzer, um die Kundenstammdaten zu aktualisieren und ersetzt den Datensatz durch die geänderten Daten. Bei Verwendung des nicht Modus ohne Segmentierung sollten Sie für die Systemvariable
converseVar.commitOnConverse den Wert '1' festlegen. Dies bewirkt, dass bei Ausführung der Anweisung
converse ein Festschreibungspunkt auftritt, sodass Änderungen an Dateien und Datenbanken festgeschrieben und Sperren freigegeben werden. Das Diagramm stellt auch das Speichern einer Kopie des Datensatzes zu Vergleichszwecken nach der Ausführung der Anweisung
converse dar, um sicherzustellen, dass während der Bedenkzeit des Benutzers keine anderen Änderungen an dem Datensatz vorgenommen wurden.
Abbildung 1. Ausführung des Aktualisierungsdateiprogramms im Modus ohne Segmentierung
Das folgende Diagramm zeigt den Ablauf desselben Aktualisierungsprogramms, das im Segmentmodus ausgeführt wird.
Abbildung 2. Ausführung des Aktualisierungsdateiprogramms im Segmentmodus
Wenn ein Programm im Segmentmodus ausgeführt wird, muss ein temporärer Speicher zur Verfügung gestellt werden, in dem während der Segmentierung die temporär ein- und ausgelagerten Daten enthalten sind. Jedes Programm erfordert ungefähr 6000 Byte plus der Gesamtgröße aller Objekte, auf die das Programm zugreift (Datensätze, Variablen und Formulare). Da das Programm nach jeder Benutzereingabe gestartet werden muss, möchten Sie zusätzlich möglicherweise das Programm, das Druckserviceprogramm und das formGroup-Formatmodul für segmentierte Programme als resident definieren.