Vor allem die nicht-sequenzielle Verarbeitung von ISAM-Dateien hat oft eine hohe Ein-/Ausgaberate zur Folge. NK-ISAM reduziert diese Ein-/Ausgaberate und verbessert die Performance erheblich, indem es die Dateien in geeignet dimensionierten ISAM-Pools verarbeitet, die als Zwischenspeicher zur Pufferung von Dateiblöcken dienen.
ISAM-Pools können sowohl explizit vom Benutzer über spezielle Kommandos oder Makroaufrufe angelegt und verwaltet werden als auch implizit vom DVS:
Vom DVS implizit eröffnete Pools heißen Standard-ISAM-Pools (siehe Abschnitt„Standard-ISAM-Pools").
Vom Benutzer erstellte Pools heißen Benutzer-ISAM-Pools (siehe Abschnitt „Benutzer-ISAM-Pools").
Des Weiteren werden zwei Geltungsbereiche für Pools unterschieden:
Ein tasklokaler ISAM-Pool (SCOPE=*TASK) wird im Klasse-5-Speicher der Eigentümertask abgelegt. Andere Tasks können auf diesen Speicher - und damit den ISAM-Pool - nicht zugreifen.
Ein tasklokaler ISAM-Pool ist daher nur für ISAM-Dateien geeignet, die im Modus SHARUPD=NO eröffnet werden.Ein taskübergreifender ISAM-Pool (SCOPE=*HOST-SYSTEM) wird in einem privilegierten Data Space abgelegt, auf den alle Tasks im System zugreifen können. Näheres zu diesem verbesserten Konzept finden Sie im Abschnitt „ISAM-Pools in Data Spaces".
Ein taskübergreifender Pool ist Voraussetzung, um ISAM-Dateien im Modus SHARUPD=YES verarbeiten zu können. Im Modus SHARUPD=NO eröffnete ISAM-Dateien könnten zwar ebenfalls in Task-übergreifenden Pools bearbeitet werden. Aus Performance-Gründen (z.B. überflüssige Serialisierung) ist dies jedoch nicht zu empfehlen.
Die Geltungsbereiche SCOPE=*USER-GROUP und SCOPE=*USER-ID werden nur aus Kompatibilitätsgründen akzeptiert. Intern werden sie jedoch auf SCOPE=*HOST-SYSTEM (taskübergreifender Pool) abgebildet.
Die Kommandos und Makros zur Verwaltung von tasklokalen ISAM-Pools sind auch RFA zugänglich (siehe Handbuch „RFA“ [6]).
Eine Übersicht über die ISAM-Pool-Makroaufrufe ist im Abschnitt „Benutzer-ISAM-Pools" zu finden.
Die Datei A wird von den Benutzerprogrammen PROG A und PROG B gelesen, die Datei B von PROG B erstellt. Der ISAM-Pool ISAMWORK ist ein taskübergreifender Pool.