IAM Override Statements Overview
IAM offers various features and capabilities that are not available with VSAM. One of the ways to indicate to IAM what features and capabilities are to be used with any specific file is through the IAM Override facility. Many features can be activated or deactivated as defaults through the IAM Global Options facility. Others, such as IAM's Dynamic Tabling, are available only through an override specification. There could also be circumstances where the user does not want the default values from the IAM Global Options Table, or wants to make sure a certain capability is being used. For example, with a very highly accessed IAM file, the user may want to increase the maximum and / or minimum number of buffers that IAM is to use for processing that file.
This section is intended to provide in one place, a reference for all of the IAM Overrides using the IAM VSAM (VIF) interface. The various facilities and capabilities of IAM are described in other places of the space.
IAM offers the user two types of override statements, the CREATE override and the ACCESS override.
CREATE Statement
The CREATE statement can be used when a file is defined, loaded, reorganized or re-cataloged to specify file attributes and special IAM features. Using the CREATE statement, an IAM user can tailor file processing by changing or overriding file characteristics and options that would otherwise be based on the IDCAMS DEFINE parameters and the defaults in IAM's Global Option table. In some cases IAM's default values may not be sufficient. For example, for a file that has very heavy access, which could benefit from using more than the default number of buffers use the CREATE statement to override the defaults for MAXBUFNO and MINBUFNO on the file define or load, which will eliminate the need to override the file by every job that accesses that file.
ACCESS Statement
The ACCESS statement can be used when a loaded file is processed for input or update to override IAM run time options for a specific job. Using the ACCESS statement an IAM user can, at execution time, tailor a file's processing. The user can specify options that do not exist in VSAM (example, Dynamic Tabling of Data Records) or adjust IAM's Real Time Tuning (example, MAXBUFNO, MINBUFNO). The overrides specified on an ACCESS statement are used only for that particular job step, and are not saved within the file as certain CREATE override values are.
IAMOVRID DD Card
The IAMOVRID DD card specifies the Override control data set. This data set is in card image format, and is typically an input stream (that is, DD *) data set or a member of a card image PDS. IAMOVRID may be used in any job step that processes IAM files (IDCAMS, CICS, batch applications and so on). In general, the IAMOVRID file is only read once per job step, unless the REREAD keyword is specified. The file is read when the first IAM file in the job step is opened. A table of the overrides is built in extended private storage, and is referenced for subsequent IAM file opens. The table remains in storage until step termination. Upto two hundred override statements can be provided.
For long running address spaces including CICS, IAM/RLS or IAM/PLEX, IAM will automatically read the overrides for each IAM data set being opened. This enables users to revise the override statements and have the changes take effect without recycling the CICS, IAM/RLS, or IAM/PLEX address space.
Override Statement Format
IAM Override statements are contained on one or more 80-character records coded in positions 1 through 71. Each control statement starts with a command (example, CREATE or ACCESS). The command can begin in the first column, or can be preceded by some blanks. The command is immediately followed by one or more blanks, then one or more optional keywords with their values, separated by commas. The last keyword or keyword / value pair in a statement must be followed by one or more blanks. Anything following the blank will be treated as comments. Comments are not permitted prior to the first keyword in a statement. The entire line will be treated as a comment when a ‘*’ is placed in the first column.
To continue a statement onto an additional line a comma and at least one blank must follow the last keyword or keyword / value pair on that line. The next keyword is then begun on the following line. When a keyword requires an optional variable, that keyword and its variable must start and end on the same line.
Each override statement indicates the files to which it applies through the DD= or DSN= keyword. Up to 40 different DD names or one data set name (DSN) can be specified for any particular override statement. Additionally, an override command can be made applicable to all IAM files in that job step by coding DD=&ALLDD. Such an override will be effective for all IAM files except those that have their own explicit override. If multiple overrides of the same type (that is, CREATE or ACCESS) are specified for the same DD name, then the overrides on the last one will be used for that execution, with ALL values from prior cards being replaced. The DD name field has precedence over the data set name (DSN). The files and data sets referenced on the overrides do not have to be included in the JCL. IAM data sets can be dynamically allocated. This is frequently the case with CICS systems, and when using IAM Alternate Index support. When an IAM file is opened, IAM scans through the table of overrides to see if there is a match for the DD name of the file being opened. If so, the specified overrides are used. If no matching DD name is found, then IAM scans through the DSN= overrides looking for a match. If none is found, and the &ALLDD override has not been specified, then the file will be processed using defaults from the IAM Global Options Table.
The various override keywords can be abbreviated, if desired. The underscored portion of the keyword indicates the minimum abbreviation allowed when it is described.
Override Syntax Errors
If an error is detected on one or more of the provided override cards, IAM will print the contents of the override card on the job log, along with a message indicating the error. If an IAM files is being defined or loaded and an override error is encountered, then the file definition or load will be failed. Override errors are tolerated for normal file access, with the bad override statements being ignored. The reason a define or file load is failed when there are override errors is that the file may not be defined or loaded with the desired attributes, which may cause processing problems in subsequent programs that use the file. Normal file access overrides, while critical for performance, will generally not have the impact on a file that the CREATE overrides can have, therefore those errors are tolerated.