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.