Dateiformat
FASTPAM bearbeitetet nur PAM-Dateien mit BLKCTRL=NO/DATA und BLKSIZE= (STD,2n), wobei n=1,2,3...8 ist. Dateien, die dieses Format nicht aufweisen, müssen zunächst konvertiert werden.
FASTPAM-Berechtigung
Der Benutzer benötigt einen Eintrag im Benutzerkatalog (Kommando SHOW-USER-ATTRIBUTES, Feld DMS-TUNING-RESOURCES=*EXCLUSIVE
bzw. Kommando MODIFY-USER-ATTRIBUTES, Feld DMS-TUNING-RESOURCES=*EXCLUSIVE-USE
), der ihn berechtigt, über FASTPAM-Aufrufe residenten Speicher zu erhalten. Hat er diese Berechtigung nicht, so kann der Benutzer zwar mit der Zugriffsmethode FASTPAM arbeiten, doch werden keine Bereiche resident gehalten. FASTPAM verhält sich in diesem Fall wie UPAM: vom System wird nur ein kleiner, nicht-residenter Teil der Ein-/Ausgabepfade angelegt; der Bereich der Parameterlisten und des IO-Area-Pool wird nicht fixiert. Die Folge ist, dass bei jeder Ein-/Ausgabe die Pfade neu angelegt und die Anwenderbereiche validiert und fixiert werden müssen, wodurch die FASTPAM-typischen Performance-Gewinne verloren gehen.
Für den Fall, dass keine Speicherresidenz erreicht werden kann, verhält sich FASTPAM wie bei Fehlen der FASTPAM-Berechtigung. Es wird dadurch ein dem UPAM äquivalentes oder besseres Performance-Verhalten geboten.
Speicherbereiche resident machen
Ein wesentlicher Zweck von FASTPAM besteht darin, hochperformante Dateizugriffe zu ermöglichen, indem bereits vor dem ersten Dateizugriff die notwendige Systemumgebung resident bereitgestellt wird.
Hierzu wird der Speicherbereich, der die Anwenderparameterlisten enthält, sowie der Speicherbereich, der die IO-Areas enthält (beide vom Anwender zur Verfügung gestellt), durch das „FASTPAM-Seitenfixieren“ speicherresident gemacht.
Dies ist im Wesentlichen derselbe Vorgang, der bei anderen Zugriffsmethoden bei jeder Ein-/Ausgabe für die IO-Area von PPAM ausgeführt wird. Nur wird bei diesen anderen Zugriffsmethoden die IO-Area nach Abschluss der Ein-/Ausgabe wieder freigegeben.
Bei FASTPAM bestimmt der Anwender durch ENABLE/DISABLE ENVIRONMENT, wie lange die Parameterlisten fixiert sind, und durch ENABLE/DISABLE IOAREA POOL, wie lange die IO-Areas fixiert sind. Während dieser Zeit kann er damit arbeiten. Die Validierung muss nur anfangs einmal erfolgen, da ein Freigeben fixierter Bereiche nicht möglich ist.
Außerdem wird bei ENABLE ENVIRONMENT der für die Ein-/Ausgaben benötigte Systemspeicher angefordert (je 1* pro parallel mögliche IO). Der größte Teil dieses Speichers, der von IOCTRL verwendete Bereich, ist immer resident. Dies ist auch bei anderen Zugriffsmethoden der Fall, doch wird er bei anderen Zugriffsmethoden für jede Ein-/Ausgabe neu zugeteilt und nicht permanent belegt.
Des Weiteren besteht dieser Systemspeicher aus einer FASTPAM-Workarea, die vor allem die Parameterliste zum Aufruf von PPAM enthält; diese muss, im Unterschied zu UPAM, beim Arbeiten mit TU-Eventing ebenfalls im residenten Speicher liegen (da die IO dann in SIH terminiert wird).
Alle diese Fixierungen erfolgen jedoch nur, wenn die Benutzerkennung über die FASTPAM-Berechtigung verfügt (Benutzerkatalog-Eintrag, Feld DMS-TUNING-RESOURCES=*EXCLUSIVE
).
In diesem Fall - und wenn die betreffenden Fixierungen durchgeführt werden konnten - kann man von einem „residenten“ Environment bzw. einem „residenten“ IO-Area-Pool sprechen.
„Residentes Environment“ bedeutet:
residente vorvalidierte Parameterlisten
vorbestellter Systemspeicher
falls mit Eventing gearbeitet wird:
residente FASTPAM-Workarea
„Residenter IO-Area-Pool„ bedeutet:
residente vorvalidierte IO-Areas
Voraussetzungen für residente FASTPAM-Bereiche
der Anwender gab die entsprechenden Parameter an
(Makro FPAMSRV, FCT=*ENAENV/*ENAIPO, Operand RES=YES)der Anwender verfügt über die FASTPAM-Berechtigung
es wird nicht mit Datenräumen gearbeitet
es ist genügend freier Hauptspeicherplatz vorhanden
die beim Programmaufruf zugeteilten residenten Seiten reichen aus (Kommando START-PROGRAM/LOAD-PROGRAM, Operand RESIDENT-PAGES); Voraussetzung für die Zuteilung residenter Seiten beim Programmaufruf ist, dass die im Benutzerkatalog festgelegte Höchstgrenze und die systemglobale Grenze für residente Speicherseiten nicht überschritten wird.
FASTPAM-Makros und ihre Funktionen
Zur Dateibearbeitung stehen dem Anwender die beiden Makros FPAMSRV und FPAMACC zur Verfügung, mit denen die entsprechenden Funktionen und Operationen ausgeführt werden können (siehe auch Abschnitt FASTPAM-Funktionen, "FASTPAM-Funktionen", Makro- und Operandenbeschreibung, "FPAMSRV - FASTPAM-Verwaltungsaufrufe formulieren").
Makro FPAMSRV mit den Funktionen:
Funktion | Bedeutung |
ENABLE ENVIRONMENT | Systemumgebung für FASTPAM-Bearbeitung vorbereiten |
ENABLE IOAREA POOL | IO-Area-Bereich für FASTPAM-Bearbeitung vorbereiten |
OPEN FILE | Datei zur Bearbeitung mit FASTPAM öffnen |
ACCESS FILE | (eine mit FPAMSRV geöffnete) Datei bearbeiten |
CLOSE FILE | (eine mit FASTPAM geöffnete) Datei schließen; hierbei kann auf Wunsch der Last Page Pointer angegeben werden. |
DISABLE ENVIRONMENT | Systemumgebung für FASTPAM-Bearbeitung abbauen |
DISABLE IOAREA POOL | IO-Area-Bereich für FASTPAM-Bearbeitung abbauen |
Makro FPAMACC mit der Funktion:
Funktion | Bedeutung |
ACCESS FILE | (eine mit FPAMSRV geöffnete) Datei bearbeiten |
Multi-User-Betrieb an einem Rechner
Eine PAM-Datei kann mit den Zugriffsmethoden UPAM (siehe "UPAM - User Primary Access Method"), FASTPAM oder DIV (siehe "DIV - Data In Virtual") erstellt bzw. bearbeitet werden.
Der erste Anwender (User A) kann beim Eröffnen seiner PAM-Datei eine beliebige Kombination von OPEN-Modus und SHARUPD-Angaben (im FCB-Makroaufruf) wählen. Die Tabelle zeigt, mit welchen Kombinationen von OPEN und SHARUPD ein weiterer Anwender (User B) die bereits eröffnete Datei seinerseits eröffnen kann. Ist die Datei von mehr als zwei Anwendern eröffnet worden, wird die Kombination OPEN/SHARUPD jedes neu hinzukommenden Anwenders (User B) mit allen bestehenden Eröffnungen (User A) verglichen. Weitere Anwender können die Datei nur eröffnen, wenn jeder dieser Vergleiche positiv ausgefallen ist. Nicht erlaubte Kombinationen führen zu einem OPEN-Fehler.
Für die Zugriffsmethode FASTPAM gilt Folgendes:
Mehrere parallele Prozesse (mehrere SHARUPD=*YES und MODE=*OUTIN/*INOUT-Eröffner) können eine Datei gleichzeitig mit FASTPAM bearbeiten.
Hinweis
Bei Mehrfachzugriff auf die Datei (Shared Update Mode) muss der Anwender selbst für entsprechende Synchronisierungsroutinen sorgen, falls diese vom eingesetzten Softwareprodukt nicht vorgesehen sind. Im Unterschied zu UPAM stellt FASTPAM hierfür keine Blocksperren-Mechanismen zur Verfügung.
FASTPAM- und UPAM-Eröffner
Eine Datei kann parallel von mehreren Tasks sowohl mit FASTPAM als auch mit UPAM eröffnet werden. Die Bearbeitung wird dabei von den Operanden MODE und SHARUPD (s.u.) der Funktion OPEN gesteuert. FASTPAM unterstützt zwar SHARUPD=WEAK nicht, verhält sich aber ansonsten genauso wie UPAM, sowohl bei FASTPAM-Eröffnern unter sich, als auch bei gemischten UPAM- und FASTPAM-Eröffnern.
Wird auf eine Datei gleichzeitig mit UPAM und FASTPAM zugegriffen, so muss auch der UPAM-Anwender sich selbst mit dem FASTPAM-Anwender synchronisieren, da die UPAM-Blocksperren nur bei beidseitiger Anwendung wirken und FASTPAM keinen Blocksperren-Mechanismus zur Verfügung stellt.FASTPAM- und DIV-Eröffner
FASTPAM verhält sich zu DIV genauso wie UPAM. Eine parallele Verarbeitung ist nur erlaubt, wenn die Datei von allen mit INPUT eröffnet wird.
Verträglichkeits-Matrix FASTPAM mit UPAM/FASTPAM/DIV
FASTPAM unterstützt nicht SHARUPD=*WEAK
USER | USER | USER | USER | USER | USER | USER | USER | USER | |||
SHARUPD= | *YES | *YES | *YES | *NO | *NO | *NO | *WEAK | *WEAK | *WEAK | ||
OPEN- | I | I | O | I | I | O | I | I | O | ||
| *YES | INPUT | X | O | X | X | |||||
*NO | INPUT | X | X | X | |||||||
*WEAK | INPUT | X | X | X | X | X | X |
Tabelle 2: FASTPAM: erlaubte SHARUPD-/OPEN-Kombinationen
Anmerkungen
Leseoperationen mit SHARUPD=*WEAK können eine Datei gleichzeitig mit jeder beliebigen Schreiboperation eröffnet haben. (SHARUPD=*WEAK ist nur bei UPAM und DIV möglich.)
Für Leseoperationen mit DIV-SHARUPD=*WEAK, die bei OPEN LOCVIEW=*NONE spezifiziert haben, besitzen dieselbe Verträglichkeit wie Leseoperationen mit UPAM-/FASTPAM-SHARUPD=*WEAK.
Ausnahme: Für Leseoperationen mit DIV-SHARUPD=*WEAK, die bei OPEN LOCVIEW=*MAP angegeben haben, ist eine parallele Eröffnung mit einer UPAM-/FASTPAM-Schreiboperation nicht erlaubt.Eröffner mit DIV-SHARUPD=*YES sind nicht mit Eröffnern mit UPAM-/FASTPAM-SHARUPD=*YES verträglich.
Leseoperationen sind immer miteinander verträglich (unabhängig von Zugriffsmethode, SHARUPD-Spezifikation, LOCKENV-Spezifikation und Host.
Nicht erlaubte Kombinationen führen zu einem OPEN-Fehler.
- SHARUPD=*YES:
Bei jedem Aufruf des Allocators wird die Dateigröße überprüft.
Wenn bei dieser Überprüfung eine Dateigröße >= 32 GB ermittelt wird und im zugehörigen FCB das Attribut LARGE_FILE=*FORBIDDEN bzw. in der TFT das Attribut EXCEED-32GB=*FORBIDDEN gesetzt ist, wird die Verarbeitung abgebrochen. FASTPAM liefert in diesem Fall den ReturncodeX'00400145'
in seiner eigenen Parameterliste FPAMACC(I).
Multi-User-Betrieb an mehreren Rechnern
Multi-System-Umgebung ist der Verbund mehrerer Systeme untereinander mittels mehrbenutzbarer privater Platten (siehe Kapitel „Datenträger“, Handbuch „Einführung in das DVS“ [1]) oder Shared-Pubsets. Die Kombinationen für den Zugriff von zwei Systemen aus sind in der Tabelle dargestellt.
Für die Zugriffsmethode FASTPAM gilt Folgendes: Multi-System-Umgebung ist der Verbund mehrerer Systeme untereinander mittels Shared-Pubsets.
Dateien auf Shared-Pubsets werden von FASTPAM unterstützt: FASTPAM-Eröffner können von verschiedenen Rechnern auf einen Shared-Pubset lesend zugreifen, auch parallel mit UPAM- und DIV-Eröffnern, die lesend zugreifen.
Rechnerübergreifender Dateizugriff (RFA) wird nicht unterstützt.
Datenkonsistenz
Datenkonsistenz im Multi-User-Betrieb
Die Zugriffsmethode FASTPAM bietet bei Mehrfachzugriff auf eine Datei (Shared-Update-Mode) keine Synchronisierungsmechanismen an. Der Anwender muss daher selbst für entsprechende Synchronisierungsroutinen sorgen, falls diese vom eingesetzten Softwareprodukt nicht vorgesehen sind. Beim gemeinsamen Shared-Update-Betrieb einer FASTPAM-, UPAM- und ggf. DIV-Anwendung muss für alle Zugriffe ein gemeinsamer Synchronisierungsmechanismus verwenden werden.Datenkonsistenz nach einem Systemausfall
Tritt bei einem ACCESS-FILE-Auftrag ein Fehler auf, kann nicht angegeben werden, ob und wie viele Daten übertragen worden sind. Das Schreiben eines Blocks darf nicht als atomar angenommen werden. Der Inhalt der Datei kann in einem solchen Fall in einem inkonsistenten Zustand sein.
Zusammenfassung der funktionellen Unterschiede zwischen UPAM und FASTPAM
Mit FASTPAM können ausschließlich PAM-Dateien mit folgenden Dateieigenschaften verarbeitet werden:
- BLOCK-CONTROL-INFO=NO
- BUF-LEN geradzahlig
- Mit FASTPAM können Ein-/Ausgaben in Datenräume (Data Spaces) erfolgen.
Folgende Funktionen werden von FASTPAM nicht unterstützt:
DUMMY-Dateien
Bandverarbeitung
RFA
FASTPAM unterstützt synchrone und asynchrone Lese- und Schreiboperationen. Folgende von UPAM angebotene Operationen werden von FASTPAM nicht unterstützt:
CHK
LOCK / UNLOCK
LRD / LRDWT / WRTWU
SETL
SYNC
Die Funktionalität der UPAM-Operation SETLPP wird im Rahmen der FASTPAM-CLOSE-Verarbeitung bereitgestellt.
Die Funktion SHARUPD=*WEAK wird nicht unterstützt (siehe auch „Verträglichkeits-Matrix FASTPAM mit UPAM/FASTPAM/DIV").
Ein impliziter WAIT ist nicht möglich.
Innerhalb einer OPEN/CLOSE-Klammer können asynchrone Ein-/Ausgaben entweder nur durch WAIT abgeschlossen oder ihre Beendigung nur über den Eventing-Mechanismus gemeldet werden.
Eine relative Seitennummern-Angabe ist nicht möglich.