ISAM ist wie SAM eine satzorientierte Zugriffsmethode für Plattendateien. Grundlage der Verarbeitung ist eine aus Index- und Datenblöcken aufgebaute Datei. Jeder Datensatz enthält einen Schlüssel; die Schlüssel dienen als Sortierkriterium (Zu Index- und Datenblöcken siehe Handbuch „Einführung in das DVS“ [1]).
Es gibt zwei Ausprägungen der Zugriffsmethode ISAM, mit denen Dateien unterschiedlicher Blockformate (siehe Kapitel „Zugriffsmethoden“ im Handbuch „Einführung in das DVS“ [1]) verarbeitet werden können:
NK-ISAM (Nonkey-ISAM) verarbeitet Dateien des Blockformats „DATA“: Solche Dateien enthalten keine gesonderten PAM-Schlüssel. Die DVS-Verwaltungsinformation wird innerhalb der PAM-Seite in einem Blockkontrollfeld hinterlegt.
K-ISAM (Key-ISAM) verarbeitet Dateien des Blockformates „PAMKEY“:
Diese Dateien sind dadurch gekennzeichnet, dass für jede PAM-Seite DVS-Verwaltungsinformation in einem eigenen (außerhalb der Seite gelegenen) PAM-Schlüssel geführt wird.
Mit dem Operanden BLKCTRL in den Makros FILE und FCB kann der Anwender zwischen diesen beiden Verarbeitungsformen wählen:
BLKCTRL=DATA/DATA2K/DATA4K legt NK-ISAM fest.
BLKCTRL=PAMKEY vereinbart K-ISAM
Da K-ISAM in der Praxis mehr und mehr an Bedeutung verliert, werden ab BS2000 OSD/BC V11.0 auch auf K-Platten standardmäßig ISAM-Dateien als NK-ISAM-Dateien angelegt.
Für den Fall, dass der Benutzer keine explizite Angabe zu BLKCTRL macht, steuert der Systemparameter BLKCTRL allgemein, ob auf K-Platten eine Datei mit der Eigenschaft BLKCTRL=PAMKEY oder DATA/NO angelegt wird.
Wenn die Datei als ISAM-Datei angelegt werden soll, steuert der Systemparameter ISBLKCTL, ob die Datei auch auf K-Platten als NK-ISAM-Datei angelegt wird. Die Voreinstellung von ISBLKCTL ist c'NONKEY', d.h. standardmäßig wird auch auf K-Platten eine ISAM-Datei als NK-ISAM-Datei angelegt.
Makroaufrufe für die Zugriffsmethode ISAM
Die Makros der Zugriffsmethode ISAM lassen sich in Funktionsklassen einteilen:
Verwaltung: | Makros mit Verwaltungsfunktionen, die die Dateibearbeitung unterstützen. |
Zugriff: | Makros, die auf die Daten der Datei zugreifen. |
Makroaufruf | Funktionsklasse | Kurzbeschreibung |
ADDPLNK | Verwaltung | weist einem Benutzer-ISAM-Pool einen Poolkettungsnamen zu |
CREAIX | Verwaltung | erzeugt einen Sekundärindex für eine ISAM-Datei |
DELAIX | Verwaltung | löscht Sekundärindizes einer ISAM-Datei |
DELPOOL | Verwaltung | löscht einen Benutzer-ISAM-Pool |
ELIM | Zugriff | streicht einen Satz aus der Datei |
GET | Zugriff | liest den in der Datei folgenden Satz (sequenzielles Lesen) |
GETFL | Zugriff | bei Verwendung von markierten ISAM-Schlüsseln: liest den folgenden Satz innerhalb des Markierungsbereichs (sequenziell) |
GETKY | Zugriff | liest den ersten Satz mit dem angegebenen Schlüssel |
GETR | Zugriff | liest den vorhergehenden Satz (sequenzielles Lesen, rückwärts) |
INSRT | Zugriff | fügt einen Satz mit neuem ISAM-Schlüssel in die Datei ein |
ISREQ | Zugriff | hebt eine ISAM-Sperre auf |
OSTAT | Zugriff | informiert über Anzahl und Art gleichzeitiger Dateizugriffe |
PUT | Zugriff | schreibt sequenziell Sätze an das Dateiende (inklusive Prüfung der Schlüssel auf gültige Reihenfolge) |
PUTX | Zugriff | ersetzt einen durch GET o.Ä. bereitgestellten Satz |
REMPLNK | Verwaltung | löscht den Poolkettungsnamen |
RETRY | Zugriff | setzt nach Durchlaufen des EXLST-PGLOCK-Ausgangs den ISAM-Zeiger neu und wiederholt den letzten Makroaufruf |
SETL | Zugriff | positioniert den ISAM-Zeiger für anschließende sequenzielle Verarbeitung auf Dateianfang, -ende oder einen bestimmten Satz |
SHOPLNK | Verwaltung | informiert über die Zuordnung von ISAM-Pools zu Poolkettungsnamen |
SHOPOOL | Verwaltung | informiert über Attribute und Belegungszustände von ISAM-Pools |
STORE | Zugriff |
|