Anwendungsbereich: | SYSTEM-TUNING |
Privilegierung: | TSOS |
Funktionsbeschreibung
Mit dem Kommando /START-DAB-CACHING
werden die DAB-Cache-Bereiche eingerichtet . Die Auswahl der gepufferten Datenbasis kann automatisch durch AutoDAB (Angabe von AREA=*BY-SYSTEM) oder manuell (Angabe von AREA=*FILE(...)) durchgeführt werden.
Für jeden Cache-Bereich kann die exakte Arbeitsweise des DAB festgelegt werden:
Auswahl der zu bedienenden Datenbereiche
Auswahl des Cache-Bereichs durch Angabe von Speichertyp (MM) und Speichergröße (CACHE-SIZE)
Festlegung des Cache-Bereichs-Identifiers (CACHE-ID)
Festlegung des Caching-Modus (Lese-, Schreib- oder Schreib-Lese-Caching)
Festlegung der Cache-Segmentgröße (4, 8, 16 oder 32 KB)
Festlegung der Datensicherungsstufe mit oder ohne schwellwertgesteuerte Datensicherung auf Platte
Implizite Festlegung der Cache-Technik bei der Angabe von CACHE-SIZE (Verdrängung nach LRU oder Residente Zwischenpufferung)
Festlegung der Lage des Cache-Bereichs und seiner Verwaltungsdaten (resident unterhalb oder nicht-resident oberhalb des Hauptspeicher-Minimums)
Festlegung, ob Daten auch auf Shared Pubsets bedient werden sollen.
/START-DAB-CACHING
ist die Eingabelänge auf maximal 4096 Zeichen (einschließlich Leerzeichen und Kommentare) beschränkt.Die veränderlichen Eigenschaften eines eingerichteten DAB-Cache-Bereichs können mit dem Kommando /MODIFY-DAB-CACHING
(siehe "MODIFY-DAB-CACHING Parameter eines DAB-Cache-Bereichs dynamisch ändern") dynamisch geändert werden.
Format
START-DAB-CACHING | Kurzname: SRDABC | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operandenbeschreibung
AREA = *BY-SYSTEM(...) / *FILE(...)
Die Zuweisung von Datenbereichen automatisiert oder manuell auf Dateiebene.
AREA = *BY-SYSTEM(...)
Die Zuweisung erfolgt auf Pubset-/Privatplatten-Basis. Die Auswahl der zu bedienenden Dateien auf diesen Datenträgern wird vom AutoDAB getroffen.
PUBSET = *NO / list-poss(100): <cat-id>
Gibt an, welche Pubsets/Volume-Sets von DAB mit automatisiertem Caching bedient werden sollen.
PUBSET = *NO
Es soll kein Pubset bedient werden. Die Pubsets müssen mit /MODIFY-DAB-CACHING
dem Datenbereich hinzugefügt werden.
PUBSET = list-poss(100): <cat-id>
Gibt die Pubsets/Volume-Sets an, deren Dateien vom AutoDAB bedient werden sollen. Anzugeben sind die Katalogkennungen (max. 100).
PRIVATE-VOLUME = *NO / list-poss(100): <vsn>
Gibt an, welche Privatplatten von DAB mit automatisiertem Caching bedient werden sollen
PRIVATE-VOLUME = *NO
Es soll keine Privatplatte bedient werden (die Angabe von PUBSET ist dann zwingend).
PRIVATE-VOLUME = list-poss(100): <vsn>
Gibt die Privatplatten an, deren Dateien vom AutoDAB bedient werden sollen. Anzugeben ist die Archivnummer der Privatplatte (max. 100), auf der sich die Dateien befinden.
AREA = *FILE(...)
Die Zuweisung der Datenbereiche erfolgt auf Dateiebene.
FILE-AREA = *NO
Keine Dateiangabe.
Die Dateien müssen mit /MODIFY-DAB-CACHING
dem Datenbereich hinzugefügt werden.
FILE-AREA = list-poss(16): <filename 1..54 without-vers>
Die hier angegebenen Dateien sollen ab sofort von DAB bedient werden.
Maximal 16 Dateien können angegeben werden. Weitere Dateien können jedoch mit /MODIFY-DAB-CACHING
dem Datenbereich hinzugefügt werden.
CACHE-SIZE =
Legt die Größe des Cache-Bereichs fest.
CACHE-SIZE = <integer 1..8388608>(...)
Legt die Größe des Cache-Bereichs fest, in dem die im AREA- Operanden angegebenen Datenbereiche zwischengespeichert werden.
DIMENSION = *KILOBYTE / *MEGABYTE
Legt fest, ob die Größenangabe für den Cache-Bereich in KB oder in MB erfolgt.
Je mehr Speicherplatz beim Cache-Medium Hauptspeicher für das Caching verwendet wird, desto kleiner wird der für Paging-Aktivitäten verfügbare Speicherbereich. Ein Ansteigen der Paging-Rate verringert den Performance-Gewinn durch DAB und sollte daher vermieden werden. Der Wert sollte ein Vielfaches von 32 KB sein. Ist dies nicht der Fall, so rundet DAB auf das nächstkleinere Vielfache von 32 ab. Key und Verwaltungsdaten werden zusätzlich belegt. Der Wert von <integer> muss kleiner sein als 7/8 des noch verfügbaren Hauptspeichers, der für Paging zur Verfügung steht, oder der installationsspezifische Wert muss angepasst werden.
CACHE-SIZE = *BY-FILE
Die Größe des Cache-Bereichs richtet sich nach den im FILE-AREA-Operanden angegebenen Datenbereichen.
CACHE-SIZE=*BY-FILE ist nur erlaubt, wenn die zu bedienenden Datenbereiche per FILE-AREA-Operand angegeben werden. Jede Erweiterung der Plattenspeicherbelegungen dieser Dateien, die während der Bedienung durch DAB erfolgt, führt auch zu einer Erweiterung des zugeordneten Cache-Bereichs.
CACHE-ID = *STD / <name 1..32>
Legt einen Identifier für den Cache-Bereich fest.
CACHE-ID = *STD
Standardwert: BUFFER#iii
(iii = niedrigste, bisher noch nicht vergebene DAB-interne Nummer).
CACHE-ID = <name 1..32>
Identifier, der dem neuen Cache-Bereich zugeteilt wird. <name> darf außer ’#’ , ’@’ und ’$’ kein Sonderzeichen enthalten und muss mit einem Buchstaben beginnen.
CACHING-MODE = *READ / *WRITE / *READ-WRITE / *BY-CACHE-MEDIUM
Legt den zu verwendenden Caching-Modus fest.
CACHING-MODE = *READ
Caching-Modus ist Lese-Caching.
CACHING-MODE = *WRITE
Caching-Modus ist Schreib-Caching.
CACHING-MODE = *READ-WRITE
Caching-Modus ist Schreib-Lese-Caching.
CACHING-MODE = *BY-CACHE-MEDIUM
Die Einstellung für Lese- oder Schreib-Lese-Caching erfolgt abhängig von der Datenbereichs-Spezifikation:
Manuelles Caching auf Dateiebene (Angabe AREA=*FILE):
Es wird der Caching-Modus READ eingestellt.Automatisiertes Caching (Angabe AREA=*BY-SYSTEM):
Für permanente Dateien wird der Caching-Modus READ, für temporäre Dateien der Caching-Modus READ-WRITE eingestellt. Bei den temporären Dateien werden die Cache-Daten beim Schließen der Dateien auf die Platten zurückgeschrieben, um ein ausfallsicheres Caching zu gewährleisten.
CACHE-MEDIUM = *MAIN-MEMORY(...)
Der Cache-Bereich soll im Hauptspeicher eingerichtet werden.
CACHE-SEGMENT-SIZE = *32 / *4 / *8 / *16
Für den neuen Cache-Bereich zu verwendende Segmentgröße in KB. Für automatisierte Cache-Bereiche (AREA=*BY-SYSTEM) wird der Operand ignoriert.
MEMORY = *STD / *ANY / *BELOW-MIN-MEM-SIZE / *ABOVE-MIN-MEM-SIZE
Legt für Systeme, bei denen eine dynamische Hauptspeicher-Rekonfiguration möglich ist, die Lage des Cache-Bereichs und seiner Verwaltungsdaten fest.
Auf Systemen, in denen keine Hauptspeicher-Rekonfiguration möglich ist, sind die Operandenwerte *ANY / *BELOW-MIN-MEM-SIZE / *ABOVE-MIN-MEM-SIZE gleichwertig; es kann aber zu Größenanpassungen bei Speichersättigung kommen. Bei *STD gibt es keine Größenanpassung.
MEMORY = *STD
Der Cache-Bereich und seine Verwaltungsdaten werden (wie in früheren DAB-Versionen) resident unterhalb dem Hauptspeicher-Minimum angelegt.
Die Größe des Cache-Bereichs muss beim Einrichten folgender Formel genügen:
CACHE-SIZE
≤ 7/8 * (P - 5) MB
Dabei bezeichnet P
(in MB):
die Größe des seitenwechselbaren Hauptspeichers im System, wenn keine Haupt-speicher-Rekonfiguration möglich ist
die Größe des seitenwechselbaren Hauptspeichers unter dem Hauptspeicher-Minimum, wenn Hauptspeicher-Rekonfiguration möglich ist
MEMORY = *ANY
Der Cache-Bereich und seine Verwaltungsdaten werden (bevorzugt) oberhalb und unterhalb des Hauptspeicher-Minimums angelegt.
Bei Hauptspeicher-Rekonfiguration oder Erhöhung des Hauptspeicher-Minimums wird auch die Größe der Cache-Bereiche angepasst. Nötigenfalls wird die Größe der Cache-Bereiche bis auf 0 reduziert. Die Hauptspeichergröße eines Systems kann so flexibel gehandhabt werden.
Die Größe des Cache-Bereichs muss beim Einrichten folgender Formel genügen:
CACHE-SIZE
≤ 7/8 * (P - 64) MB
Dabei bezeichnet P
(in MB) die Größe des seitenwechselbaren Hauptspeichers im System.
MEMORY = *ABOVE-MIN-MEM-SIZE
Der Cache-Bereich und seine Verwaltungsdaten werden nur so groß angelegt, wie es über dem Hauptspeicher-Minimum möglich ist.
Bei Hauptspeicher-Rekonfiguration oder Erhöhung des Hauptspeicher-Minimums wird auch die Größe der Cache-Bereiche angepasst.
Die Größe des Cache-Bereichs muss beim Einrichten folgender Formel genügen:
CACHE-SIZE
≤ 7/8 * (P - 64) MB
Dabei bezeichnet P
(in MB) die Größe des seitenwechselbaren Hauptspeichers oberhalb des Hauptspeicher-Minimums.
Wenn es keinen seitenwechselbaren Hauptspeicher über dem Hauptspeicher-Minimum gibt, dann wird der Cache-Bereich mit Größe 0 angelegt. Er wird dann bei einer späteren Hauptspeicher-Vergrößerung bis zu der im Operanden CACHE-SIZE angegebenen Größe erweitert.
MEMORY = *BELOW-MIN-MEM-SIZE
Der Cache-Bereich und seine Verwaltungsdaten werden resident unterhalb des Hauptspeicher-Minimums angelegt.
Die Größe des Cache-Bereichs muss folgender Formel genügen:CACHE-SIZE
≤ 7/8 * (P - 64) MB
Dabei bezeichnet P
(in MB):
die Größe des seitenwechselbaren Hauptspeichers im System, wenn keine Haupt-speicher-Rekonfiguration möglich ist
die Größe des seitenwechselbaren Hauptspeichers unter dem Hauptspeicher-Minimum, wenn Hauptspeicher-Rekonfiguration möglich ist
Wenn im Operanden CACHE-SIZE ein größerer Wert für die Cache-Größe angegeben wird, dann wird eine Cache-Größe gemäß obiger Formel gewählt. Bei einer späteren Erhöhung des Hauptspeicher-Minimums wird dann die Größe des Cache-Bereiches unter Beachtung obiger Formel bis zur gewünschten Cache-Größe erweitert.
Bei Hauptspeicher-Sättigung wird die Cache-Größe automatisch verkleinert. Wenn die Hauptspeicher-Sättigung aufgelöst ist, dann wird die Cache-Größe wieder vergrößert.
FORCE-OUT = *AT-LOW-FILLING / *AT-HIGH-FILLING / *NO
Gibt an, ob schwellwertgesteuerte Sicherungsläufe durchgeführt werden sollen. Dieser Operand ist nur bei den Caching-Modi WRITE, READ-WRITE oder BY-CACHE-MEDIUM von Bedeutung (siehe Hinweis 4). Für automatisierte Cache-Bereiche (AREA=*BY-SYSTEM) ist der Operand ohne Bedeutung (siehe Abschnitt „Automatische FORCE-OUT-Korrektur" (Automatisiertes Caching (AutoDAB))).
FORCE-OUT = *AT-LOW-FILLING
Durch schwellwertgesteuerte Sicherungsläufe soll die Anzahl der Cache-Segmente, die nicht auf Platte gesichert sind, möglichst klein gehalten werden. Das Zurückschreiben soll erfolgen, sobald der Cache zu 25% mit nicht gesicherten Schreibdaten belegt ist.
FORCE-OUT = *AT-HIGH-FILLING
Für die Cachesegmente dieses Cache-Bereichs sollen nur so viele Datensicherungen durchgeführt werden, wie erforderlich sind, um immer einen ausreichend großen Vorrat an Segmenten für neue Cache-Einlagerungen zur Verfügung zu haben. Das Zurückschreiben soll erfolgen, sobald der Cache zu 75% mit nicht gesicherten Schreibdaten belegt ist.
FORCE-OUT = *NO
Die Daten dieses Cache-Bereichs sollen nicht in schwellwertgesteuerten Sicherungsläufen auf die Platte übertragen werden. Die Daten werden erst auf die Platte übertragen, wenn über das Kommando STOP-DAB-CACHING der Cache-Bereich abgebaut wird.
SHARED-DISK-SUPPORT = *NO / *YES
Legt bei AREA=*FILE fest, ob auch Datenbereiche auf Platten unterstützt werden, die als Shared Pubset betrieben werden (siehe Hinweise 6 und 7). Die Unterstützung erfolgt nur im Lesemodus.
SHARED-DISK-SUPPORT = *NO
Ein Datenbereich auf Platte soll nicht bedient werden, wenn die Platte zum Zeitpunkt der Erstbedienung durch DAB als Shared Pubset betrieben wird.
SHARED-DISK-SUPPORT = *YES
Ein Datenbereich auf Platte soll auch dann bedient werden, wenn die Platte zu Beginn eines neuen Bedienungsintervalls durch DAB als Shared Pubset betrieben wird.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
---|---|---|---|
0 | CMD0001 | Ohne Fehler | |
0 | NDB0021 | Ohne Fehler. Cache-Bereich mit reduzierter Größe angelegt. | |
1 | CMD0202 | Syntax- oder Semantik-Fehler im Kommando | |
32 | CMD0221 | Interner SDF-Fehler | |
64 | CMD0216 | Erforderliches Privileg fehlt | |
64 | NDB0005 | Fehlende Berechtigung zum Kommandoaufruf | |
64 | NDB0010 | Falsche Syntaxdatei-Version | |
64 | NDB0012 | DVS-Fehler | |
64 | NDB0013 | Datei mehrfach spezifiziert | |
64 | NDB0016 | Cache-Speicher-Engpass | |
64 | NDB0017 | Speicher-Engpass (Cache oder Verwaltungsdaten) oder Systemfehler | |
64 | NDB0018 | Cache-ID bereits definiert | |
64 | NDB0025 | Volume ist nicht belegt | |
64 | NDB0026 | Datei ist nicht katalogisiert | |
64 | NDB0027 | Band-Datei bzw. migrierte Datei | |
64 | NDB0028 | Datei/Volume bereits bedient | |
64 | NDB0034 | Datei auf Key-Platte kann nicht in Cache-Bereich ohne Keys aufgenommen werden | |
64 | NDB0036 | CACHE-SIZE=*BY-FILE nur bei Datei-Spezifikation zulässig | |
64 | NDB0065 | /STOP-SUBSYSTEM ist aktiv | |
64 | NDB0066 | Keine Default-Cache-ID mehr verfügbar | |
64 | NDB0071 | Datei ist nicht cachebar, da verschlüsselt und der Cache ist ein Schreib-Cache. | |
64 | NDB0072 | Unbekannte User-ID | |
64 | NDB0080 | Automatisches Caching von Daten im Home-Pubset ist in einem Schreib- oder Schreib-Lese-Cache nicht erlaubt | |
64 | NDB0098 | Pubset nicht lokal importiert | |
64 | NDB0100 | Pubset wird bereits bedient | |
64 | NDB0101 | Mehr als ein SM-Pubset für (RD-)WR-Caching spezifiziert | |
64 | NDB0102 | Volume ist keine Privatplatte | |
64 | NDB0103 | Datei-Katalog kann wg. Fehler nicht bedient werden | |
64 | NDB0107 | Pubset mehrfach spezifiziert | |
64 | NDB0110 | SM-Pubset enthält kein cache-bares Volume-Set | |
64 | NDB0162 | Die Bearbeitung eines Pubsets ist beim Zugriff auf ein bestimmtes Volume abgebrochen worden | |
64 | NDB0163 | Die Bearbeitung eines Pubsets ist beim Zugriff auf ein Volume abgebrochen worden | |
64 | NDB0164 | Die Bearbeitung eines Volumes ist beim Zugriff auf dieses Volume abgebrochen worden | |
64 | NDB0165 | Die Bearbeitung eines Pubsets ist beim Zugriff auf ein bestimmtes Volume unterbrochen worden. Der Abschluss der Bearbeitung ist unbekannt | |
64 | NDB0166 | Die Bearbeitung eines Pubsets ist beim Zugriff auf ein bestimmtes Volume unterbrochen worden. Der Abschluss der Bearbeitung ist unbekannt | |
64 | NDB0167 | Die Bearbeitung eines Volumes ist beim Zugriff auf dieses Volume abgebrochen worden. Der Abschluss der Bearbeitung unbekannt | |
64 | NDB0177 | Die Konfiguration eines Cache-Bereichs kann während einer Hauptspeicher-Rekonfiguration nicht modifiziert werden | |
65 | CMD2241 | Subsystem nicht vorhanden | |
128 | CMD2280 | Saturation-Problem |
Beispiele
Bedienung mehrerer Pubsets im Cache-Medium Hauptspeicher mit automatischer Auswahl der Dateien und des Caching-Modus
/START-DAB-CACHING AREA=*BY-SYSTEM(PUBSET=(CAM4,RATS), - / CACHE-SIZE=100(*MEGABYTE), - / CACHE-MEDIUM=*MAIN-MEMORY(MEMORY=*ABOVE-MIN-MEM-SIZE), - / CACHING-MODE=*BY-CACHE-MEDIUM % NDB0021 /START-DAB-CACHING COMMAND ACCEPTED. THE DAB CACHE BUFFER 'BUFFER#001' WAS INSTALLED WITH 66 MB (INSTEAD OF THE TARGET SIZE OF 100 MB) FOR THE FOLLOWING FILES/PUBSETS: % F I L E / P U B S E T % -------------------------------------------------------------------- % :CAM4: (SYSTEM-CONTROLLED) % :RATS: (SYSTEM-CONTROLLED)
Bedienung des Dateikatalogs TSOSCAT des Pubsets RATS mit Cache-Medium Hauptspeicher im Read-Modus.
mit fester Cache-Größe 1 MB
/START-DAB-CACHING AREA=*FILE(FILE-AREA=:RATS:TSOSCAT), - / CACHE-SIZE=1(DIMENSION=*MEGABYTE), - / CACHE-MEDIUM=*MAIN-MEMORY,CACHING-MODE=*READ % NDB0020 /START-DAB-CACHING COMMAND ACCEPTED. THE DAB CACHE BUFFER 'BUFFER#001' WAS INSTALLED WITH 1 MB FOR THE FOLLOWING FILES/PUBSETS: % F I L E / P U B S E T % ----------------------------------------------------------------- % :RATS:$TSOS.TSOSCAT
mit variabler Cache-Größe im Modus „Residente Zwischenpufferung“. Der bediente Datenbereich wird vollständig im Cache gepuffert.
/START-DAB-CACHING AREA=*FILE(FILE-AREA=:RATS:TSOSCAT), - / CACHE-SIZE=*BY-FILE,CACHE-MEDIUM=*MAIN-MEMORY, - / CACHING-MODE=*READ % NDB0020 /START-DAB-CACHING COMMAND ACCEPTED. THE DAB CACHE BUFFER 'BUFFER#001' WAS INSTALLED WITH 16416 KB FOR THE FOLLOWING FILES/PUBSETS: % F I L E / P U B S E T % ----------------------------------------------------------------- % :RATS:$TSOS.TSOSCAT
Anwendungsmuster für
CACHE-MEDIUM=*MAIN-MEMORY(MEMORY=*ABOVE-MIN-MEM-SIZE)
Vorbereiten eines Standby-Systems unter VM2000, das nötigenfalls die Last eines Pro-duktiv-Systems übernehmen soll (bevor das Produktiv-System gestartet wird):
Setzen Sie das Hauptspeicher-Minimum und die aktuelle Hauptspeichergröße des Systems auf dieselbe Mindestgröße, so dass der Bedarf des Standby-Systems und der Bedarf an residentem Speicher bei Übernahme der Produktivlast gedeckt ist.
Importieren Sie die Pubsets, die nach Lastübernahme gepuffert werden sollen.
Richten Sie die Cache-Bereiche mit
/START-DAB-CACHING ...,CACHE-MEDIUM= *MAIN-MEMORY(MEMORY=*ABOVE-MIN-MEM-SIZE)
ein. Die Cache-Bereiche erhalten die aktuelle Größe 0.Geben Sie bei
/START-DAB-CACHING
auch die Pubsets (AutoDAB) oder Dateien (FILE-AREA-Cache) an, die gepuffert werden sollen.Exportieren Sie die Pubsets, die nach Lastübernahme gepuffert werden sollen.
Erhöhen Sie bei Lastübernahme die Größe des Hauptspeichers. Die Cache-Bereiche werden entsprechend vergrößert.
Alternativ zu b), d) und e) können Sie die Pubsets und Dateien nach Lastübernahme mit /MODIFY-DAB-CACHING
hinzufügen. Das Vorbereiten des Standby-Systems ist dann unabhängig vom Lauf des Produktiv-System.
Hinweise
Ein DAB-Cache-Bereich kann dynamisch nur mit dem Kommando
/MODIFY-DAB-CACHING
modifiziert werden. Wiederholte/START-DAB-CACHING
-Kommandos mit dem gleichen CACHE-ID-Wert sind nur zulässig, wenn dazwischen ein/STOP-DAB-CACHING
Kommando mit derselben CACHE-ID ausgeführt wurde.
Ein
/START-DAB-CACHING
wird nur zur weiteren Bearbeitung angenommen, wenn alle Platten, auf denen die zu bedienenden Datenbereiche liegen, belegt sind und nicht zu einem Pubset gehören, der mit DAB über PFA gepuffert wird.Hinweise zum Operanden CACHE-MEDIUM = *MAIN-MEMORY(MEMORY=...)
Cache-Bereiche mit MEMORY=*ANY/*BELOW-MIN-MEM-SIZE/*ABOVE-MIN-MEM-SIZE sind nur in Systemen sinnvoll, in denen eine Hauptspeicher-Rekonfiguration möglich ist, z.B. unter VM2000.
Das Anlegen von Cache-Bereichen oberhalb des Hauptspeicher-Minimums (MEMORY=*ANY/*ABOVE-MIN-MEM-SIZE) erlaubt es, das Hauptspeicher-Minimum des (VM2000-)Systems klein zu halten. Der Hauptspeicher eines (Standby-) Gastsystems unter VM2000 kann somit im laufenden Betrieb bei geringer Last reduziert und bei erhöhter Last vergrößert werden.
Bei Cache-Bereichen mit MEMORY=*ANY/*BELOW-MIN-MEM-SIZE/*ABOVE-MIN-MEM-SIZE kann es sein, dass der Cache-Bereich nicht mit der im Operanden CACHE-SIZE angegebene Größe angelegt, sondern mit einer kleineren, der aktuellen Größe betrieben wird. Die aktuelle Größe ist immer kleiner oder gleich der angegebenen Größe.
Ursache ist, dass zum Zeitpunkt der Einrichtung des Cache-Bereiches nicht genügend Speicherplatz im Hauptspeicher zur Verfügung steht oder dass der DAB-Cache auf Grund einer Speicherreduktion (bei MEMORY=*ABOVE-MIN-MEM-SIZE/*ANY) oder einer Speichersättigung (MEMORY=*ANY/*BELOW-MIN-MEM-SIZE/*ABOVE-MIN-MEM-SIZE) reduziert wurde. Die aktuelle Größe des Cache-Bereichs legt DAB fest. Für Cache-Bereiche mit reduzierter Größe wird nach jeder impliziten Änderung die aktuelle Größe mit der Meldung NDB0052 auf Konsole protokolliert. Da bei einer Speicherreduktion ein Cache-Bereich mit MEMORY= *ANY/*ABOVE-MIN-MEM-SIZE auf jeden Fall zuerst komplett abgebaut werden muss und nach der Speicherreduktion wieder aufgebaut wird, ist es möglich, dass die alte Cache-Größe wieder erreicht wird. Dies wird mit der Meldung NDB0176 auf Konsole protokolliert.
Die aktuelle (reduzierte) Größe des Cache-Bereichs kann mit dem Kommando
/MODIFY-DAB-CACHING
geändert werden, siehe "MODIFY-DAB-CACHING Parameter eines DAB-Cache-Bereichs dynamisch ändern".Bei Verwendung von DAB-Caches mit MEMORY=*ANY kann es zeitweise zu Per-formance-Beeinträchtigungen kommen, wenn die Lage dieses Cache-Speichers im Hauptspeicher verändert werden muss. Dies kann in folgenden Fällen auftreten:
Der Cache-Speicher konnte nicht sofort im bevorzugten Bereich im Hauptspeicher angelegt werden, weil Seiten nicht schnell genug auf den Seitenwechselspeicher verdrängt werden konnten oder der Hauptspeicher durch andere Cache-Bereiche mit MEMORY=*ANY/*ABOVE-MIN-MEM-SIZE belegt war.
Der Cache-Speicher muss wegen residenter Speicheranforderungen verlagert werden.
Bei Cache-Bereichen im Hauptspeicher mit MEMORY=*ANY/*ABOVE-MIN-MEM-SIZE wird vor der Hauptspeicher-Reduktion bzw. vor der Erhöhung des Hauptspei-cher-Minimums zunächst der gesamte Cache-Bereich auf 0 reduziert.
Nach der Hauptspeicher-Reduktion bzw. der Erhöhung des Hauptspeicher-Minimums wird die Größe diese Cache-Bereiche neu berechnet und dabei um den entsprechenden Prozentsatz reduziert.
Beispiel: Eine Hauptspeicher-Reduktion um 20% führt auch zu einer Reduktion der Größe der Cache-Bereiche um 20%. Der gleiche Effekt tritt ein, wenn der Hauptspeicherbereich über dem Hauptspeicher-Minimum durch Erhöhung des Haupt-speicher-Minimums um 20% reduziert wird.Wenn der Hauptspeicher (wieder) vergrößert wird, dann wird auch die Größe der Cache-Bereiche anteilig bis zu der bei
/START-
oder/MODIFY-DAB-CACHING
angegebenen Größe vergrößert.Cache-Bereiche im Hauptspeicher mit MEMORY=*BELOW-MIN-MEM-SIZE werden bei nicht ausreichender Speichergröße mit einer geringeren als der angegebenen Größe eingerichtet. Bei Erhöhung des Hauptspeicher-Minimums werden solche Cache-Bereiche dann anteilig bis zu der bei
/START-
oder/MODIFY-DAB-CACHING
angegebenen Größe vergrößert.DAB führt bei Hauptspeichersättigung eine automatische anteilige Reduktion der Größe der Cache-Bereiche mit MEMORY=*ANY/*BELOW-MIN-MEM-SIZE/ *ABOVE-MIN-MEM-SIZE durch. Entsprechend wird die Größe erhöht, wenn die Speichersättigung zurück geht.
Die neue aktuelle Größe der Cache-Bereiche wird mit der Meldung NDB0052 auf Konsole protokolliert.
Wenn Cache-Bereiche mit MEMORY=*STD oder Cache-Bereiche aus früheren DAB-Versionen umgewandelt werden sollen in Cache-Bereiche mit MEMORY=*ANY/*BELOW-MIN-MEM-SIZE/*ABOVE-MIN-MEM-SIZE, dann sollte das System mit einem den Größen der Cache-Bereiche angepassten Hauptspeicher-Minimum versehen werden.Operand FORCE-OUT
Ob die Einstellung FORCE-OUT=*AT-LOW-FILLING oder *AT-HIGH-FILLING zu wählen ist, hängt von verschiedenen Gegebenheiten ab. So wird durch die Einstellung *AT-HIGH-FILLING das Ein-/-Ausgabesystem geringer als bei *AT-LOW-FILLING belastet. Andererseits ist der Cache zu 75% mit Schreibdaten gefüllt, was bei einem plötzlichen Schreibschwall zu einem Cache-Überlauf führen kann.
Die Einstellung FORCE-OUT=*AT-LOW-FILLING belastet möglicherweise das Ein-/Ausgabesystem mit überflüssigen Sicherungen.
Bei Schreib-Caching sollte geprüft werden, ob das Caching mit der Einstellung FORCE-OUT=*AT-HIGH-FILLING ein zufrieden stellendes Cache-Verhalten ergibt. Tritt ein Cache-Überlauf auf, muss die Einstellung FORCE-OUT=*AT-LOW-FILLING gewählt werden.
Bei Schreib-/Lese-Caching sollte grundsätzlich die Einstellung FORCE-OUT=*AT-LOW-FILLING gewählt werden.
Bei residentem Caching empfiehlt sich die Einstellung FORCE-OUT=*NO.Beim automatisierten Caching wird die Einstellung des Operanden FORCE-OUT überprüft und ggf. korrigiert (siehe auch Abschnitt „Automatisiertes Caching (AutoDAB)").
Wenn ein SM-Pubset in einem Schreib- oder Lese-Schreib-Cache gepuffert werden soll, dann muss das SM-Pubset bereits bei
/START-DAB-CACHING
angegeben werden. Es kann nicht nachträglich mit/MODIFY-DAB-CACHING
hinzugefügt werden. In diesem Cache-Bereich ist kein weiteres SF- oder SM-Pubset erlaubt.Caching von Shared Pubsets
Automatisiertes Caching
Bei automatisch ausgewählten Cache-Bereichen (AREA=*BY-SYSTEM) ist der Operand SHARED-DISK-SUPPORT ohne Bedeutung. Hier übernimmt DAB die Kontrolle über das Caching von Daten auf gemeinsam genutzten Datenträgern und gewährleistet die Konsistenz der Daten durch folgende Maßnahmen:
Datenbereiche auf diesen Datenträgern werden nur im Lese-Caching bedient. Das Caching wird nur dann eingeschaltet, wenn der Caching-Modus des zugehörigen Cache-Bereichs explizit ein Lese-Caching vorgibt.
Das Lese-Caching einer Datei auf einem solchen Datenträger wird nicht aufgenommen, wenn die Datei in einem Modus bearbeitet wird, der den parallelen Update dieser Datei von einem anderen System aus zulässt.
Nicht automatisiertes Caching
Die Bedienung systemübergreifender Datenbereiche, wie z.B. Dateien auf Shared Pubsets, durch systemlokale Caches ist generell problematisch. Der Einsatz des nicht automatisierten DAB-Cachings für solche Datenbereiche ist nur sinnvoll, wenn sichergestellt ist, dass auf die von DAB bedienten Bereiche von allen Sharern nur lesend zugegriffen wird. Bei der Angabe des Operanden SHARED-DISK-SUPPORT ist daher Folgendes zu beachten:
Datenbereiche, die auf einer Platte liegen, die im Shared-Disk-Allocation-Modus betrieben wird, werden auf keinen Fall bedient, wenn der zugehörige Cache-Bereich als Schreib-Lese- oder als Schreib-Cache betrieben wird.
Der Operand SHARED-DISK-SUPPORT wird bei der Bearbeitung des Kommandos
/START-DAB-CACHING
ausgewertet. Eine nachträgliche Änderung des Belegungsmodus wird von DAB erkannt und bearbeitet.
Die Entscheidung, ob dateibezogene Datenbereiche (AREA=*FILE) auf gemeinschaftlich genutzten Datenträgern bedient werden, hängt von den vom Anwender gegebenen Parameterspezifikationen für einen Cache-Bereich ab. Daraus leiten sich folgende Differenzierungen beim Caching von solchen Datenbereichen ab:
Wird ein gemeinsam genutztes Volume von verschiedenen Cache-Bereichen bedient, kann es vorkommen, dass seine Teilbereiche von einem Cache-Bereich bedient werden und von dem anderen nicht.
Da der Belegungszustand eines Volumes während der Bedienung durch einen Cache-Bereich beliebig oft wechseln kann, kann es vorkommen, dass ein Datenbereich abwechselnd gepuffert oder nicht gepuffert wird.