Editor Buffer Pool

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:


Zweck des Editor Buffer Pool

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).

Freie Blöcke erhalten

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.

Initialisierung des Editor Puffer Pool

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.

Buffer Pool-Kaltstart

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.

Buffer Pool-Warmstart

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.

Neustart des Editor Buffer Pool

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.

Editor Buffer Pool-Parameter

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.

Buffer Pool-Initialisierung für Mehrbenutzerumgebungen

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.