ISAM, like SAM, is a record-oriented access method for disk files. Processing is based on a file composed or index and data blocks. Each data record contains a key, and these act as a sort criterion (for index and data blocks, see the “Introductory Guide to DMS” [1]).
There are two versions of the ISAM access method, capable of processing files with two different block formats (see chapter “Access Methods” in the “Introductory Guide to DMS” manual [1).
NK-ISAM (Non-Key ISAM) processes files with the block format “DATA”: These do not contain a separate PAM key. The DMS management information is kept in a block control field within the PAM page.
K-ISAM (Key ISAM) processes files with the block format “PAMKEY”: These are characterized by the fact that DMS management information for each PAM page is kept in a separate PAM key located outside the page.
By means of the BLKCTRL operand in the macros FILE and FCB, the user can select whether a K file or an NK file is to be processed:
BLKCTRL=DATA/DATA2K/DATA4K declares an NK-ISAM file
BLKCTRL=PAMKEY declares a K-ISAM file
As K-ISAM is becoming less and less relevant in practice, from BS2000 OSD/BC V11.0 onwards ISAM files are created as NK-ISAM on K disks by default as well.
If the user makes no explicit specification for BLKCTRL, the BLKCTRL system parameter controls in general whether the file is created on K disks with the BLKCTRL=PAMKEY or DATA/NO attribute.
If the file is to be created as ISAM file, the ISBLKCTL system parameter controls whether the file is created as an NK-ISAM file on K disks as well. The default setting of ISBLKCTL is c'NONKEY', i.e. an ISAM file is created as NK-ISAM file on K disks by default as well.
Macros for the ISAM access method
The macros for the ISAM access method can be split into function classes:
Administration: | Macros with administration functions that support file processing. |
Access: | Macros that access the data on a file. |
Macro | Function | Brief description |
ADDPLNK | Administration | Assigns a pool link name to a user ISAM pool |
CREAIX | Administration | Creates a secondary index for an ISAM file |
DELAIX | Administration | Deletes secondary indices for an ISAM file |
DELPOOL | Administration | Deletes a user ISAM pool |
ELIM | Access | Erases a record from the file |
GET | Access | Reads the following record in the file (sequential reading) |
GETFL | Access | When using marked ISAM keys: |
GETKY | Access | Reads the first record with the specified key |
GETR | Access | Reads the previous record (sequential reading, in reverse) |
INSRT | Access | Adds a record with a new ISAM key to the file |
ISREQ | Access | Removes an ISAM lock |
OSTAT | Access | Gives details of the number and type of synchronous file accesses |
PUT | Access | Writes records sequentially to the end of file (including checking the key for valid sequence) |
PUTX | Access | Replaces a record provided by GET, etc. |
REMPLNK | Administration | Deletes the pool link name |
RETRY | Access | Resets the ISAM pointer after execution of the EXLST-PGLOCK and repeats the last macro |
SETL | Access | Positions the ISAM pointer for subsequent sequential processing at start or end of file or a particular record |
SHOPLNK | Administration | Gives details of assignment of ISAM pools to pool link names |
SHOPOOL | Administration | Gives details of attributes and allocation states of ISAM pools |
STORE | Access |
|