Dieses Dokument beschreibt Zweck, Verwendung und Funktionsweise des Editor Buffer Pool, eines Zwischenspeichers, der vom Software AG Editor verwendet wird.
Dieses Kapitel behandelt die folgenden Themen:
Der Editor Buffer Pool kann als eine Erweiterung des
Editor-Arbeitsbereichs angesehen werden (siehe auch Profilparameter
SSIZE). Er
ist ein Zwischenspeicher, der vom Software AG-Editor für die Verwaltung seiner
logischen Dateien verwendet wird.
Eine logische Datei besteht aus einem oder mehreren logischen Datensätzen und enthält die Daten eines Natural-Quellcodeobjekts oder einer Datei (z. B. eines Jobs, eines PDS-Members oder eines LMS-Elements), die mit dem Editor verwaltete werden. Da ein Benutzer mit mehr als einem Objekt gleichzeitig arbeiten kann, können für jeden Benutzer mehrere logische Dateien gleichzeitig existieren.
Die Anzahl der logischen Dateien (sowie der Prozentsatz der Wiederherstellungssätze in der Editor-Arbeitsdatei) wird im Buffer Pool-Parametermakro definiert.
Der Editor Buffer Pool kann als lokaler oder globaler Buffer Pool
oder als Hilfs-Buffer Pool (siehe auch Profilparameter
EDPSIZE)
definiert werden. In Mehrbenutzerumgebungen (CICS und IMS TM) wird der Editor
Buffer Pool von allen Editorbenutzern entweder derselben Region (lokaler Pool)
oder mehrerer Regionen (globaler Pool) gemeinsam genutzt.
Der Editor Puffer Pool enthält verschiedene Steuertabellen und eine Reihe von Datenblöcken:
| Bereich | Größe |
|---|---|
| Hauptsteuerblock | 500 Bytes |
| Tabelle der logischen Dateien | 20 Bytes pro logische Datei |
| Arbeitsdateitabelle | 4 Bytes pro Datensatz |
| Tabelle der Wiederherstellungsdatei | 16 Bytes pro Datensatz |
| Buffer Pool-Blocktabelle | 2828 Bytes pro Block |
| Buffer Pool-Blöcke | siehe Text unten |
Da die Größe eines Buffer Pool-Blocks der Größe eines Arbeitsdateisatzes entspricht, kann ein Buffer Pool-Block einen logischen Dateisatz enthalten.
Der Buffer Pool wird vom ersten Benutzer des Editors initialisiert. Während der Buffer Pool-Initialisierung beim Warmstart werden alle Wiederherstellungsdatensätze überprüft, um die Tabelle der Wiederherstellungsdateien anzulegen.
Für den Zugriff auf den Buffer Pool stehen mehrere Funktionen zur Verfügung (z. B. Funktionen zum Zuordnen, Lesen, Schreiben oder Löschen eines Datensatzes).
Wenn der Buffer Pool voll wird, müssen Buffer Pool-Blöcke in einen externen Dataset, die Arbeitsdatei des Editors, verschoben werden, um freie Blöcke zu erhalten.
In einer solchen Situation überprüft der Editor alle logischen Dateien auf ihren Timeout-Wert und löscht jede logische Datei, auf die innerhalb der angegebenen Zeit nicht zugegriffen wurde. Das bedeutet, dass alle Buffer Pool-Blöcke und Arbeitsdateisätze freigegeben werden und die logische Datei verloren ist.
Wenn immer noch kein Buffer Pool-Block verfügbar ist, verschiebt der
Editor den ältesten Block in die Arbeitsdatei, und zwar entsprechend den
angegebenen Timeout-Parameterwerten (siehe die Funktion
Generation
Parameters - Generierungs-Parameter des Dienstprogramms
SYSEDT.
Beim ersten Aufruf des Software AG Editors wird ein nicht initialisierter Editor Buffer Pool initialisiert. Anschließend werden die verschiedenen Kontrollblöcke angelegt. Es gibt zwei verschiedene Modi für die Initialisierung von Buffer Pool und Arbeitsdatei (Workfile): Kaltstart und Warmstart.
Ein Buffer Pool-Kaltstart kann durch den Editor Buffer
Pool-Subparameter COLD oder
durch das Dienstprogramm SYSEDT oder
automatisch (wenn die Editor-Arbeitsdatei unformatiert ist) ausgelöst
werden.
Während eines Buffer Pool-Kaltstarts werden die Werte des Editor
Puffer Pool-Parameters EDBP oder des
entsprechenden Makros
NTEDBP
im Arbeitsdatei-Steuerungsdatensatz gespeichert und alle
Wiederherstellungssätze der Arbeitsdatei werden gelöscht.
Während eines Buffer Pool-Warmstarts werden die Buffer Pool-Parameter aus dem Arbeitsdatei-Steuerungsdatensatz gelesen, und alle Arbeitsdatei-Wiederherstellungsdatensätze werden gelesen, um die Wiederherstellungsdatentabelle im Buffer Pool anzulegen.
Die Arbeitsdatei, auf die der Editor zugreift, kann nur von
Sitzungen innerhalb desselben Betriebssystems (Systemvariable
*HOSTNAME)
und mit demselben globalen Buffer Pool oder demselben Jobnamen für lokale
Buffer Pools verwendet werden. Diese Verbindung kann nur durch einen Buffer
Pool-Kaltstart beendet werden. Alternativ kann die Software AG Editor Workfile
Formatting Utility verwendet werden, um die Arbeitsdatei-Verbindung
zurückzusetzen.
Mit dem Dienstprogramm SYSEDT zur
Verwaltung des Editor Buffer Pool können Sie den Editor Buffer Pool beenden,
d.h. ihn in den nicht initialisierten Zustand versetzen. Dadurch wird ein
Neustart des TP-Systems oder des globalen Buffer Pool vermieden.
Falls SYSEDT aufgrund von Buffer Pool-Problemen nicht
verfügbar ist, kann das Programm BPTERM verwendet werden, um den
Buffer Pool zu beenden.
Wichtig
Alle Natural-Sitzungen müssen wiederhergestellt werden, wenn
sie den Editor nach dem Neustart des Buffer Pool verwenden sollen.
Der Editor Buffer Pool-Parameter EDBP oder das
entsprechende Makro NTEDBP
im Natural-Parametermodul wird benötigt, um Parameter für den Betrieb des
Editor Buffer Pool zu definieren.
Bei der Formatierung der Editor-Arbeitsdatei werden diese Parameter im Arbeitsdatei-Steuerungssatz gespeichert, während alle anderen Sätze gelöscht werden. Die Neuformatierung einer zuvor verwendeten Arbeitsdatei bedeutet also, daß alle Editor-Checkpoint- und Wiederherstellungsinformationen verlorengehen.
Einige dieser Parameter können während der Ausführung des Buffer
Pool mit Hilfe des Dienstprogramms
SYSEDT
dynamisch geändert werden.
Während der Buffer Pool-Initialisierung werden alle Wiederherstellungssätze aus der Arbeitsdatei des Editors gelesen. Daher müssen die ersten Benutzer lange warten oder erhalten sogar eine Zeitüberschreitungsmeldung (Timeout), bis die Editor Buffer Pool-Initialisierung abgeschlossen ist.
Aus diesem Grund wird ein spezielles Natural-Programm ausgeliefert, das die Buffer Pool-Initialisierung auslöst, bevor der erste Benutzer aktiv wird. Dieses Programm kann entweder während des Starts des TP-Monitors aktiviert werden oder durch einen Batch-Job, wenn ein globaler Buffer Pool verwendet wird.
Die Sitzung muss dann mit dem Session-Parameter gestartet werden:
STACK=(LOGON SYSEDT,user,password;BPINIT;FIN)
Unter CICS: Falls die Sitzung
asynchron läuft, muss SENDER=CONSOLE angegeben werden, um
eventuelle Fehlermeldungen während der Initialisierung angezeigt zu erhalten.
Das Quellcodeprogramm FRONTPLT wird als Beispielprogramm
mitgeliefert, um Ihnen zu zeigen, wie Sie eine asynchrone Natural-Sitzung beim
CICS-Start über PLTPI starten können.