Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

CREATE-ISAM-POOL

&pagelevel(3)&pagelevel

ISAM-Pool erzeugen oder Task an ISAM-Pool anschließen

Komponente:

BS2000

Funktionsbereich:

Dateiverarbeitung

Anwendungsbereich:

FILE

Privilegierung:

STD-PROCESSING

Funktionsbeschreibung

Mit dem Kommando CREATE-ISAM-POOL kann der Benutzer einen ISAM-Pool erzeugen, oder seinen Auftrag mit einem bereits existierenden ISAM-Pool verbinden, der systemweit eingerichtet wurde.

Jeder ISAM-Pool ist eindeutig durch folgende Eigenschaften gekennzeichnet, die beim Erstellen des ISAM-Pools festgelegt werden:

  • Name des ISAM-Pools (Operand POOL-NAME)

  • Katalogkennung des Pubsets (Operand CAT-ID)

  • Gültigkeitsbereich (Operand SCOPE)

  • Art der Pufferung (Operand WRITE-IMMEDIATE)

  • Größe (Operand SIZE)

  • Performance-Eigenschaft (Operand RESIDENT)

Soll die Task an einen bereits existierenden ISAM-Pool angeschlossen werden, dürfen die Angaben im CREATE-ISAM-POOL-Kommando nicht den Eigenschaften des existierenden ISAM-Pools widersprechen. Die Eigenschaften des ISAM-Pools kann sich der Benutzer mit dem Kommando SHOW-ISAM-POOL-ATTRIBUTES ausgeben lassen.

Hinweis zu ISAM-Pools

Taskübergreifende ISAM-Pools werden dateispezifisch bei der Dateieröffnung in einem Data Space angelegt. Das CREATE-ISAM-POOL-Kommando mit SCOPE=*USER-ID/*USER-GROUP wird nur noch aus Kompatibilitätsgründen unterstützt und wirkt wie SCOPE=*HOST-SYSTEM (Details zu ISAM-Pools in Data Spaces siehe „Einführung in das DVS“ [13]).

NK-ISAM-Dateien im NK2- und NK4-Format

Über den ISAM-Pool können sowohl NK2- als auch NK4-ISAM-Dateien verarbeitet werden. Der ISAM-Pool wird beim Eröffnen der ersten zu verarbeitenden NK-ISAM-Datei entsprechend formatiert. Sobald eine weitere NK-ISAM-Datei in einem anderen Format über den ISAM-Pool eröffnet wird, wird der ISAM-Pool dynamisch um einen Extent in seiner bisherigen Größe erweitert und für die zu verarbeitende Datei entsprechend formatiert. Der ISAM-Pool besteht nach der Erweiterung aus einem Extent zur Verarbeitung von NK2-ISAM-Dateien und aus einem Extent zur Verarbeitung von NK4-ISAM-Dateien. Der tatsächlich benötigte Speicherplatz ist somit doppelt so hoch wie sich aus der Angabe von SIZE ergibt. Um Performance-Verluste zu vermeiden, sollten über einen ISAM-Pool nur Dateien eines Formates verarbeitet werden.

Eine ausführliche Beschreibung des ISAM-Pools enthält das Handbuch „Einführung in das DVS“ [13]. 

Format

CREATE-ISAM-POOL                                                                                                                                  

 POOL-NAME = <name 1..8>

,CAT-ID = *DEFAULT-PUBSET / <cat-id 1..4>

,SCOPE = *TASK (...) / *HOST-SYSTEM(...) / *USER-ID(...) / *USER-GROUP(...)


*TASK(...)



|

WRITE-IMMEDIATE = *NO / *YES


*HOST-SYSTEM(...)



|

WRITE-IMMEDIATE = *YES / *NO



|

,CREATION-MODE = *ANY / *NEW


*USER-ID(...)



|

WRITE-IMMEDIATE = *YES / *NO



|

,CREATION-MODE = *ANY / *NEW


*USER-GROUP(...)



|

WRITE-IMMEDIATE = *YES / NO



|

,CREATION-MODE = *ANY / NEW

,SIZE = *STD / <integer 32..32767 2Kbyte>

,RESIDENT = *NO / *YES

Operandenbeschreibung

POOL-NAME = <name 1..8>
Ordnet dem ISAM-Pool, der erzeugt werden soll bzw. der bereits existiert und an den die Task angeschlossen werden soll, einen Namen zu. Zusammen mit Katalogkennung und Gültigkeitsbereich ist der Pool so eindeutig identifizierbar.

CAT-ID = *DEFAULT-PUBSET / <alphanum-name 1..4>
Gibt die Katalogkennung des Pubsets an, dem der ISAM-Pool zugeordnet werden soll. Der ISAM-Pool wird an dem Host-Rechner eingerichtet, zu dem der hier genannte Pubset gehört. Die Katalogkennung kann – wie beim Dateinamen – als Teil des Namens gesehen werden, d.h. verschiedene Katalogkennungen bezeichnen verschiedene ISAM-Pools. 

CAT-ID = *DEFAULT-PUBSET
Der ISAM-Pool wird dem Katalog zugeordnet, der mit dem Systemparameter ISPLDEFC (ISAM-POOL-DEFAULT-CATID) eingestellt ist:

X'00':

Standard-Katalogkennung aus dem Benutzereintrag (siehe Kommando SHOW-USER-ATTRIBUTES, Ausgabefeld DEFAULT-PUBSET)

X'01':

Katalogkennung des Home-Pubsets

CAT-ID = <alphanum-name 1..4>
Katalogkennung des Pubsets, dem der ISAM-Pool zugeordnet werden soll.

SCOPE = *TASK(...) / *HOST-SYSTEM(...) / *USER-ID(...) / *USER-GROUP(...)
Gibt den Gültigkeitsbereich des ISAM-Pools an und bestimmt die möglichen Nutzer:

  • tasklokal, d.h. nur für die einrichtende Task

  • taskübergreifend, d.h. für alle Tasks des Systems

Der Gültigkeitsbereich kennzeichnet den ISAM-Pool eindeutig, d.h., verschiedene Gültigkeitsbereiche bezeichnen unterschiedliche ISAM-Pools gleichen Namens und gleicher Katalogkennung.

SCOPE = *TASK(...)
Der ISAM-Pool kann nur vom aufrufenden Auftrag genutzt werden: er ist tasklokal.

WRITE-IMMEDIATE = *NO / *YES
Damit wird festgelegt, ob die in dem ISAM-Pool gepufferten Blöcke sofort nach erfolgter Änderung zurückgeschrieben werden oder erst wenn der Puffer für einen anderen Block benötigt wird.

WRITE-IMMEDIATE = *NO
Für die in diesem Pool zu verarbeitenden Dateien gilt die WRITE-IMMEDIATE-Angabe aus dem Kommando ADD-FILE-LINK bzw. aus der FCB-Angabe im Programm. Erfolgte dort keine Eingabe, so wird *NO eingestellt.

WRITE-IMMEDIATE = *YES
Für alle in diesem Pool verarbeiteten Dateien wird die Funktion WRITE-IMMEDIATE eingeschaltet: geänderte Blöcke werden sofort auf die Platte zurückgeschrieben.
Zu berücksichtigen ist, dass die Ein-/Ausgaberate stark steigt und die Performance verringert wird.

SCOPE = *HOST-SYSTEM(...)
Der ISAM-Pool ist taskübergreifend, er kann von allen Aufträgen (Tasks) genutzt werden.

WRITE-IMMEDIATE = *YES / *NO
Gibt an, ob die in dem ISAM-Pool gepufferten Blöcke sofort nach erfolgter Änderung oder erst wenn der Puffer für einen anderen Block benötigt wird, zurückgeschrieben werden.

WRITE-IMMEDIATE = *YES
Für alle in diesem Pool verarbeiteten Dateien wird die Funktion WRITE-IMMEDIATE eingeschaltet: geänderte Blöcke werden sofort auf die Platte zurückgeschrieben.

WRITE-IMMEDIATE = *NO
Geänderte Blöcke werden erst zurückgeschrieben, wenn der Puffer für einen anderen Block benötigt wird. Für eine Datei, die über diesen ISAM-Pool verarbeitet werden soll, muss im Kommando ADD-FILE-LINK WRITE-IMMEDIATE=*NO vereinbart werden. Anderenfalls kann die Datei nicht eröffnet werden.

CREATION-MODE = *ANY / *NEW
Gibt an, ob der Benutzer einen neuen ISAM-Pool anlegen will oder ob eine Verbindung zu einem evtl. bereits vorhandenen ISAM-Pool gleichen Namens und gleicher Katalogkennung hergestellt werden darf.

CREATION-MODE = *ANY
Falls bereits ein taskübergreifender ISAM-Pool mit gleichem Namen und gleicher Katalogkennung existiert, wird der Auftrag an diesen Pool angeschlossen. Die Angabe der Größe (SIZE) wird dabei nicht berücksichtigt.
Existiert noch kein solcher ISAM-Pool, wird ein neuer Pool mit der in SIZE definierten Größe angelegt.

CREATION-MODE = *NEW
Es soll ein neuer ISAM-Pool angelegt werden. Existiert jedoch bereits ein taskübergreifender ISAM-Pool mit gleichem Namen und gleicher Katalogkennung, wird das Kommando mit einer Fehlermeldung abgewiesen.

SCOPE = *USER-ID(...) / *USER-GROUP(...)
Diese Angabe wird nur noch aus Kompatibilitätsgründen unterstützt und wirkt wie SCOPE=*HOST-SYSTEM (siehe auch „Hinweis zu ISAM-Pools").

SIZE = *STD / <integer 32..32767 2Kbyte>
Definiert die Größe des neu anzulegenden ISAM-Pools.

SIZE = *STD
Ein tasklokaler ISAM-Pool wird mit der im ISAM-Parameter LCLPS im Parameterservice festgelegten Standardgröße angelegt. Ein taskübergreifender ISAM-Pool wird mit der im ISAM-Parameter GLBPS festgelegten Größe angelegt.

SIZE = <integer 32..32767>
Bestimmt die Größe des anzulegenden ISAM-Pools in Einheiten zu 2 KByte (PAM-Seiten). Folgende Größenangaben sind möglich:

32 <= SIZE <= 32767
32 <= SIZE <= 8192

für taskübergreifende ISAM-Pools
für tasklokale ISAM-Pools                                                            

Die Angabe von SIZE wird, falls nötig, intern gerundet. Die Ausgabe des Kommandos SHOW-ISAM-POOL-ATTRIBUTES enthält dann für SIZE den gerundeten Wert.
Mit der minimalen Größe von 32 PAM-Seiten können Dateien mit logischen Blöcken von maximal STD(6) bearbeitet werden. Für die Bearbeitung von Dateien mit logischen Blöcken der Größe STD(16) wird ein ISAM-Pool mit 96 PAM-Seiten benötigt.
Über den ISAM-Pool können sowohl NK2- als auch NK4-ISAM-Dateien verarbeitet werden. Der ISAM-Pool wird beim Eröffnen der ersten zu verarbeitenden NK-ISAM-Datei entsprechend formatiert. Sobald eine weitere NK-ISAM-Datei in einem anderen Format über den ISAM-Pool verarbeitet wird, wird der ISAM-Pool dynamisch um einen Extent in seiner bisherigen Größe erweitert. Um Performance-Verluste zu vermeiden, sollten über einen ISAM-Pool nur Dateien eines Formates verarbeitet werden.

RESIDENT = *NO / *YES
Performance-Eigenschaft des ISAM-Pools.
Gibt an, ob der ISAM-Pool speicherresident angelegt werden soll, falls die aktuelle Betriebsmittelsituation dies erlaubt.
Die Angabe muss bei Anschluss an einen bereits existierenden ISAM-Pool mit der dort definierten Performance-Eigenschaft übereinstimmen.

RESIDENT = *NO
Die Speicherseiten des ISAM-Pools sind seitenwechselbar.

RESIDENT = *YES
Die Angabe ist nur möglich für Benutzer, die das DMS-Tuning-Privileg CONCURRENT-USE oder EXCLUSIVE-USE für den Pubset des ISAM-Pools besitzen (siehe Ausgabe des Kommandos SHOW-USER-ATTRIBUTES, Ausgabefeld DMS-TUNING-RESOURCES).
Die Speicherseiten des ISAM-Pools werden resident gehalten, soweit dies die aktuelle Betriebsmittelsituation erlaubt. 

Kommando-Returncode

(SC2)

SC1

Maincode

Bedeutung


0

CMD0001

Kommando fehlerfrei ausgeführt


32

DMS0A17

Interner Systemfehler


64

DMS0A0E

Syntaxfehler bei ISAM-Pool-Kommando


64

DMS0A11

Angegebene CATID existiert nicht


64

DMS0A13

Angegebener Pool-Name ist ungültig


64

DMS0A15

Angegebener ISAM-Pool existiert bereits


64

DMS0A18

Größe des ISAM-Pools ist ungültig


64

DMS0A1E

Keine Berechtigung für residenten Pool


64

DMS0A1F

RESIDENT-Parameter unverträglich


64

DMS0A20

Parameter für Remote-BS2000-Version nicht zulässig


64

DMS0A21

Kontingent für ISAM-Pools erschöpft


64

DMS0A22

Keine Benutzergruppe vorhanden


130

DMS0A12

Angegebene CATID ist nicht verfügbar


130

DMS0A14

Speichermangel bei CREATE-ISAM-POOL

Beispiel

Anschluss der Task an mehrere ISAM-Pools

/show-isam-pool-attr pool=*all        ——————————————————————————————   (1)

%
%  CATID    POOLNAME  SCOPE            WROUT   SIZE  EXTENTS  RESIDENT 
%=====================================================================
%  1OSB     SDFPOOLN  TASK              NO      128   --/--      NO 
%

/cre-isam-pool pool-name=poolab01,scope=*host  —————————————————————   (2)
/cre-isam-pool pool-name=poolab01,scope=*task  —————————————————————   (3)
/show-isam-pool-attr pool=*all                ——————————————————————   (4)

%
%  CATID    POOLNAME  SCOPE            WROUT   SIZE  EXTENTS  RESIDENT 
%=====================================================================
%  1OSB     SDFPOOLN  TASK              NO      128   --/--      NO 
%  N        POOLAB01  HOST              YES      96   --/--      NO 
%  N        POOLAB01  TASK              NO       96   --/--      NO 
%

/show-isam-pool-attr pool=poolab01(scope=host),inf=*user-and-attr   —— (5)

%
%  CATID    POOLNAME  SCOPE            WROUT   SIZE  EXTENTS  RESIDENT 
%=====================================================================
%  N        POOLAB01  HOST              YES      96   --/--      NO 
%
%------------------- CONNECTED TASKS ---------------------------------
%                                            TSN = 1EUW 
%                                            TSN = 1EUE 
%--------------------------------------------------------------------%
%

/show-isam-pool-attr pool=poolab01(scope=*task),inf=*user-and-attr ——— (6)

%
%  CATID    POOLNAME  SCOPE            WROUT   SIZE  EXTENTS  RESIDENT
%=====================================================================
%  N        POOLAB01  TASK              NO       96   --/--      NO
%
%------------------- CONNECTED TASKS ---------------------------------
%                                            TSN = 1EUE
%--------------------------------------------------------------------%

(1)

Information über alle ISAM-Pools, an die die Task angeschlossen ist. Es existiert bereits der tasklokale ISAM-Pool SDFPOOLN.

(2)

Anschluss der Task an den taskübergreifenden ISAM-Pool POOLAB01.

(3)

Anschluss der Task an den tasklokalen ISAM-Pool POOLAB01. Der tasklokale ISAM-Pool besitzt denselben Namen wie der taskübergreifenden ISAM-Pool. Der Name ist jedoch wegen des unterschiedlichen Gültigkeitsbereichs eindeutig.

(4)

Information über alle ISAM-Pools, an die die Task angeschlossen ist. Es existieren die ISAM-Pools SDFPOOLN, ein taskübergreifender und ein tasklokaler ISAM-Pool mit dem Namen POOLAB01. Über diese ISAM-Pools wurde noch keine Datei bearbeitet, da die Ausgabespalte EXTENTS noch keine Information über die Formatierung enthält.

(5)

Ausgabe der Eigenschaften und der angeschlossenen Task für den taskübergreifenden ISAM-Pool POOLAB01. Es sind 2 Tasks angeschlossen. Der ISAM-Pool wurde bereits von der Task mit der TSN 1EUW erzeugt (die eigene TSN 1EUE wird als zweite Task angezeigt; siehe auch Punkt 6).

(6)

Ausgabe der Eigenschaften und der angeschlossenen Task für den tasklokalen ISAM-Pool POOLAB01. Es kann nur die eigene Task (TSN 1EUE) angeschlossen sein. Der ISAM-Pool wurde mit dem CREATE-ISAM-POOL-Kommando (Punkt 3) erzeugt.