Temporären Speicher verwenden

Der temporäre Speicher ist in CICS das primäre Verfahren für die Speicherung von Daten, die für mehrere Transaktionen verfügbar sein müssen. Datenelemente im temporären Speicher werden in Warteschlangen mit Namen gestellt, die von dem Programm, das die Daten speichert, dynamisch zugeordnet werden. Der temporäre Speicher wird auf zwei unterschiedlichen Wegen implementiert, nämlich als temporärer Hauptspeicher und als temporärer Hilfsspeicher:
Haupt- und Zusatzspeicher besitzen die folgenden Merkmale:

Aus EGL auf temporären Speicher zugreifen

Ein für die CICS-Umgebung generiertes EGL-Programm kann auf den temporären CICS-Speicher als seriellen oder als relativen Datensatz zugreifen. Die folgenden E/A-Anweisungen sind beim Zugriff auf temporären Speicher gültig:

In der Ressourcenzuordnung für die Datei muss der EGL-Dateityp als tempaux (Hilfsspeicherdatei) oder tempmain (Hauptspeicherdatei) angegeben sein, wenn das Programm generiert wird. Der Systemressourcenname (Eigenschaft systemName) ist der Name der Warteschlange, die der temporären Speicherdatei zugeordnet ist.

Temporäre Speicherdateien können gleichzeitig jeweils nur von einer einzigen Task verwendet werden. EGL generiert die folgenden CICS-Befehle für Sie:

Nicht-EGL-Programme, die auf dieselbe Datei zugreifen, müssen Daten für denselben Systemressourcennamen in die Warteschlange stellen, wenn sie auf die Datei zugreifen.

Am Anfang von Datensätzen im temporären Speicher wird ein zusätzliches Byte hinzugefügt, das den Status des Datensatzes angibt:
X'01'
Gibt an, dass der Datensatz logisch gelöscht wurde.
X'00'
Gibt an, dass der Datensatz logisch in der Datei vorhanden ist.
Das zusätzliche Byte wird von Rational COBOL Runtime for z/Series zur Datensatzdefinition hinzugefügt und verwaltet. Fügen Sie das zusätzliche Byte nicht selbst zur EGL-Datensatzdefinition hinzu. Falls die temporäre Speicherdatei jedoch auch von einem Nicht-EGL-Programm verwendet wird, muss das Nicht-EGL-Programm Speicherbereich für das Byte zuordnen, das Byte interpretieren und wie EGL aktualisieren. Die Verarbeitung des zusätzlichen Byte findet folgendermaßen statt:
add oder replace
Das Byte wird auf X'00' gesetzt.
delete
Das Byte wird auf X'01' gesetzt; die Satzlänge wird auf 1 gesetzt.
get next
Datensätze mit dem Wert X'01' werden übersprungen.
get oder get forUpdate
Datensätze mit dem Wert X'01' bewirken, dass der Datensatzstatus noRecordFound festgelegt wird.
Die Anweisung close löscht temporäre Speicherdateien nicht. Verwenden Sie zum Löschen der Datei die Systemfunktion sysLib.purge(). EGL reiht Daten in die Warteschlange ein, indem ein CICS-Befehl ENQ mit der Option NOSUSPEND für den Ressourcennamen EZETEMP-warteschlangenname generiert wird, wenn sysLib.purge() verwendet wird, und entfernt die Daten aus der Warteschlange (Befehl DEQ), nachdem die Warteschlange gelöscht wurde.

Feedback