IAM/PLEX Automatic Data Set Eligibility


IAM/PLEX Data Set Selection

IAM can automatically decide during OPEN processing which IAM data sets are to be handled by IAM/PLEX. Automatic selection is based on the share options that a data set was defined with, if an RLSID was specified when a data set is defined or loaded, and/or by the data set name table. An installation specifies the criteria IAM is to use through the IAM Global Options Table, via the RLS option. Using the RLS option, users can specify the minimum share option required for eligibility for IAM/PLEX processing, and whether or not a data set name table has been provided to IAM/PLEX. If a combination of share option and data set name eligibility is requested, the user can specify via the RLS option whether a data set must meet both the share option criteria and be in the data set name table, or if a match on either one sets the data set as eligible for IAM/PLEX. The values that can be specified for the RLS Global Option are shown below:

To minimize OPEN overhead in determining a data set’s eligibility for IAM/PLEX processing consider implementing a process that specifies the RLSID for data sets as they are defined. The RLSID can be modified or removed through a DEFINE RECATALOG process when necessary.

Below is the description of the RLS Global Option.

RLS Global Option

RLS Option

Description

AND

Indicate that to be automatically eligible for IAM/PLEX, a data set must have the specified share option AND must be selected in the data set name table.

NONE

Indicates that no data sets are to be considered for automatic eligibility for IAM/PLEX. Set this option if you are not going to be activating the IAM/PLEX address space, or if you want to manually direct activity to IAM/PLEX through the IAM Overrides. This is the default option as shipped.

OPTIONAL

Allows data sets to be opened without IAM/PLEX when the IAM/PLEX address space is not active. This is useful for when the TABLE option has been specified and IAM/PLEX may not be active on all LPAR’s because IAM/PLEX has to at least have been active at some point in time for the data set name table to be loaded. If specified, this value will also be applied to data sets defined with an RLSID, in that if IAM/PLEX is not active, the data set will be opened locally.

OR

Indicates that to be automatically eligible for IAM/PLEX, a data set must have either the specified share option or be selected in the data set name table. If a data set meets the share option eligibility, then the data set name table will not be examined. If a data set does not meet the share option eligibility criteria, then it must be selected in the data set name table to be eligible for IAM/PLEX processing. OR is the default if both TABLE and a SHAREx value are specified.

REQUIRED

Indicates that IAM/PLEX must be active if a data set is eligible for IAM/PLEX processing, or when the TABLE Global Option is specified. If IAM/PLEX is not active, then any attempt to open a potentially IAM/PLEX eligible data set will be failed. REQUIRED is the default. For data sets defined with an RLSID, IAM/PLEX must be active even if RLS=NONE is set, unless RLS=(NONE,OPTIONAL) is specified.

SHARE1

Indicates that data sets with any cross-region share option value (1, 2, 3, or 4) will be eligible for IAM/PLEX processing. Use of this value is not recommended.

SHARE2

Indicates that data sets with cross-region share options of 2, 3, or 4 will be eligible for IAM/PLEX processing. Use of this value is not recommended.

SHARE3

Indicates that data sets with cross-region share options of 3 or 4 will be eligible for IAM/PLEX processing.

SHARE4

Indicates that only data sets with a cross-region share option of 4 will be eligible for IAM/PLEX processing.

TABLE

Indicates that IAM is to search the data set name table to determine eligibility for IAM/PLEX processing, subject to other criteria. Be careful of using the options TABLE with REQUIRED. With both of those options, no IAM data sets can be opened until a table has been loaded into virtual storage. If IAMRLS is not started up immediately during the IPL process, consider starting the IAMRLS with PARM=DSNTLOAD which will start VIF and load the DSN TABLE then exit. The default is that the data set name tables will not take part in eligibility selection for IAM/PLEX.

Using the RLS Global Option

The following discussion applies to the use of the RLS Global Option. Full use of the IAM Global Option Change Facility is described in IAM-Global-Option-Change-Facility of the IAM Users space. Multiple values can be specified for the RLS option, by enclosing them within parenthesis. When the RLS option is specified on the ZAP control statement, the values specified will act as a complete replacement for the existing RLS values they do not act in combination with the prior values. As shipped, the default value is RLS=NONE, meaning that no IAM files are automatically eligible for IAM/PLEX processing.

You might desire some combination of selection criteria; for example, you want all share option 3 or 4 files to be eligible, and some selected share option 2 files. For this, you would specify RLS=(SHARE3,OR,TABLE). You would then specify the names of the other files to be included or excluded in the data set name tables. The reason for both an include and an exclude list is so that you could select all data sets beginning with PROD.SHARE for IAM/PLEX processing. You would specify in the data set name table SELECT DSN=PROD.SHARE*. However, perhaps there is a file with that name prefix that you want excluded from IAM/PLEX, so you could specify EXCLUDE DSN=PROD.SHARE.FILE1

Another possibility is that you might want only share option 3 or 4 files to be eligible for IAM/PLEX, however you might want to exclude some selected files. In this situation, you would specify RLS=(SHARE3,AND,TABLE). Then in the data set name table, you would specify SELECT DSN=* which will include all data sets, and then exclude specific data sets, such as EXCLUDE DSN=PROD.DONOT.SHARE.FILE1

Important

Remember to refresh LLA after any changes to the  Global Options, which is necessary if  is in the link list for the changes to take effect.

RLS DSN Table

The data set name table is provided to the IAM/PLEX address space through the IAMDSNTB DD statement. This DD must specify a card image data set, either sequential or a PDS member. The table is read in during initialization of the first IAM/RLS or IAM/PLEX address space started on an LPAR, and stored in ECSA. The table is kept in ECSA storage to minimize the overhead of searching the table during IAM OPEN processing. Customers can update the data set name tables within the IAMDSNTB data set, and activate the updated tables by using the CHANGEDSNT command of the IAM/PLEX address space. If you have IAM/PLEX running on multiple LPARs with the same RLSGROUP then the command is automatically sent to those address spaces.

Within the IAMDSNTB data set, two lists of data set names can be provided. Each data set name entry is considered a full data set name unless it contains 1 or more of the special masking characters. The masking characters allow a single entry in the table to represent multiple data set names, resulting in a smaller table. Refer to the topic below on data set name masking for complete information. Enhanced data set name masking is supported, however, the old use of a trailing single asterisk (*) will still work the same as it did previously.

The first list is the data set name selection list. It is specified by “SELECT RLISD=rlsx,DSN=(” followed by a list of data set names, separated by commas. All of the data sets included on that select statement are assigned to the specified RLSID. Multiple cards can be used, however, each data set name or mask must be fully contained within a single card image. A closing parenthesis is used at the end of the last data set name. If there is just one data set name, or only a * (single asterisk) then no parenthesis are needed.

The exclude list is specified by the “EXCLUDE DSN=(” followed by a list of data set names, separated by commas. Multiple cards can be used, however, each data set name or mask must be fully contained within a single card image. A closing parenthesis is used at the end of the last data set name. If there is just one data set name, or only an *, then no parenthesis are needed. The EXCLUDE statement must start on a new card.

The EXCLUDE list is always searched first, so if the data set name matches any mask in the exclude list it is automatically not eligible for IAM/PLEX processing even if it is in the INCLUDE list. As much as possible, it is recommended that the EXCLUDE list be kept short but very broad so that as many data sets as possible will be recognized as not requiring IAM/RLS or IAM/PLEX processing.

You can group data set names by RLSID. If no RLSID is specified on the SELECT statement then it will be blank in the table and during open processing the RLSID provided by the CREATE or ACCESS overrides or the default in the Global Options Table will be used. There can be multiple SELECT DSN= and EXCLUDE DSN= statements in the IAMDSNTB DD input file. Each statement will be processed with the data set names added to the corresponding Select or Exclude table in storage. If an error is encountered on the first SELECT or EXCLUDE statement, and there was already a Select or Exclude table in storage, then the old table will still be in effect. If an error is encountered on a subsequent SELECT or EXCLUDE statement in the processing of the IAMDSNTB DD input file then the in storage Select and Exclude table will contain only those data set names that were successfully processed on the previous input cards before the error was encountered. A maximum of 399 input cards can be specified for each SELECT or EXCLUDE statement with multiple data set names on each card. A total maximum of 32,767 names can be specified for each list. However, it is highly recommended that you keep the lists as short as possible, to keep the ECSA storage requirement low, and to minimize the searching CPU time.

For Alternate Indexes, the PATH data set name should be used in the DSN table. It is not necessary to include AIX data set names. If the PATH data set name is covered by a mask (see below), then you do not need to include the PATH DSN.

Data Set Name Masking

To provide more flexibility and help reduce the size of the table, IAM provides a masking facility that can be used when specifying data set names on the SELECT and EXCLUDE statements. The mask may contain:

  • Any valid alphanumeric or national character representing itself
  • / (slash) symbol represents a single valid character
  • | (vertical bar) represents a single alphabetic character
  • + (plus) represents a single valid numeric character
  • ? (question mark) represents a single valid national character (that is, #, $, or @ in US, or € in Europe)
  • * (single asterisk) represents zero or more valid characters within one index level except when it is the last character in the mask in which case it is treated as meaning any subsequent characters.
  • ** (double asterisk) represents zero or more valid characters contained in one or more index levels (including their periods)
  • . (period) represents a period (index level) in the data set name except as noted in special cases below. A period at the beginning of the mask, or immediately following another period is interpreted as an *. (single asterisk, period).
  • **. (double asterisk, period) at the beginning of a string represents one or more index levels at the beginning of the data set name
  • .* (period, asterisk) at the end of the string represents one or more index levels at the end of the data set name
  • .**. (period, double asterisk, period) in the middle of the string represents either a SINGLE period or one or more index levels at that point in the data set name
  • The last character specified cannot be a period.
  • *** (triple asterisks) are invalid.
  • An **.** is invalid, If you want to represent at least a specific number of index levels use *.**

Masking Examples

Below is a sampling of some of the data set name variations that can be built with the masking capability.

  • ABC.GLEDGER.MASTER This example is for a complete data set name
  • XYZ.PROD.GROUP*.MSTR.MUPD This example allows for multiple data sets with additional characters as part of the GROUP index level. For example, this would pick up GROUP0, GROUP1A, GROUP001, GROUPABC, and so on.
  • XYZ.PROD.GROUP++.MSTR.MUPD In this variation the GROUP must be followed by 2 numeric digits, such as GROUP25, or GROUP99, and so on.
  • PROD.IAM.PAYROLL.* All data sets that begin with PROD.IAM.PAYROLL.
  • XYZ.*.SHARED Allows data sets that start with XYZ, have any second level index, and ending with.SHARED, for example: XYZ.F1.SHARED or XYZ.ABC12345.SHARED
  • PROD//.ARMASTER.* Includes data sets that begin with PROD followed by any two valid characters such as PRODNY.ARMASTER.abc which are followed by any characters at the end. Other possible matches include: PRODNJ.ARMASTER.d060510.master, or PROD99.ARMASTER.xyz
  • TEST* Any data sets that begin with the characters TEST.

RLS DSN Table Example

Shown below is an example of an RLS Data Set Name table:

Example of IAM/PLEX Data Set Name Table Member PLXDSNTB in ICL

SELECT RLSID=RLS1,DSN=(PROD.PAYROLL.IAM.*,
                      PROD.AR///.IAM.*,
                      IAMV.**.RLS,
                      PROD.APAY.*.SHARED)
SELECT RLSID=RLS2,DSN=(PROD2.PAYROLL.IAM.*,
                      PROD2.AR*.IAM.*,
                      IAMV2.*.RLS)
EXCLUDE DSN=(PROD.PAYROLL.IAM.TESTFILE,
               PROD.AR.IAM.HISTORY,
               TEST.*,
               IAMV.RLS999.DONOT.SHARE.*)

Recommended Implementation

The implementation method chosen by many users is the data set name table. This method offers a single point of control over which data sets are going to be utilizing IAM/PLEX and eliminates the need for any JCL changes for jobs utilizing IAM/PLEX. The requirements to utilize this method are:

  1. Building a card image data set containing the data set SELECT list and if necessary a data set EXCLUDE list along with the desired RLSID to handle each SELECT group.
  2. Specification of the table via a DD statement in each of the IAM/PL EX and IAM/RLS JCL procedures. Each IAM/PLEX and IAM/RLS procedure MUST specify the same table.
  3. Revising the IAM Global Options to RLS=(TABLE,OPTIONAL) or RLS=(TABLE,REQUIRED).
  4. Starting an IAM/PLEX (or IAM/RLS) address space on each LPAR that is using IAM files during IPL, or before any IAM files are processed. If RLS=(TABLE,REQUIRED) is used, then no IAMfiles will be able to be opened until an IAM/PLEX or IAM/RLS address space has initialized a table in virtual storage.

You specify the RLSID on the SELECT statement like the following:

  • SELECT RLSID=RLS1,DSN=(IAM.DATASET.ONE, IAM.DATASET.TWO,IAM.APPL1*)
  • SELECT RLSID=RLS2,DSN=(IAM.DATASET.THREE,IAM.DATASET.FOUR)

If the RLS Global Option is set to use the data set name table, then the first 2 data sets and any that match the beginning of the file name IAM.APPL1 will automatically be opened under RLS1, and the second 2 data sets will be opened under RLS2.

A second recommended method of implementing the use of multiple IAM/PLEX address spaces is to have all files that are going to be using IAM/PLEX services be defined with the IAM CREATE Override of RLSID=nnnn indicating the IAM/PLEX address space is to process it. The primary advantage of this method of implementation is that it eliminates the overhead during open processing of every IAM file for scanning the table to determine eligibility for IAM/PLEX and eliminates the need for the ECSA storage used to hold the table. There also is no need to change the JCL of any of the jobs using this data set, other than the job that defines or reorganizes it. The specification of the CREATE Override of RLSID will indicate that this data set is requesting / requiring IAM/PLEX services from the specified IAM/PLEX address space. The RLSID can be revised or eliminated at any time through the use of the DEFINE RECATALOG process.

Alternative Implementations

An alternative implementation method is to use the IAM ACCESS Overrides. Using this method, the jobs and CICS regions that have the data sets requiring other than the default IAM/PLEX address space will need to have their JCL changed to include an IAM ACCESS Override, for example:

Example of using ACCESS overrides to direct data sets to IAM/PLEX

   //IAMOVRID DD *
    ACCESS DD=&ALLDD,RLSID=xxxx
    ACCESS DSN=IAM.DATASET.SHARE1,RLS,RLSID=xxxx
    ACCESS DSN=IAM.DATASET.SHARE2,RLS,RLSID=yyyy
  /*

The following notes explain the above example:

  • The first override with DD=&ALLDD will in effect set the default RLSID for any IAM data sets that require IAM/PLEX usage that do not have explicit overrides.
  • The second override requests IAM/PLEX processing for data set.SHARE1. Because this is an explicit override, none of the information from the DD=&ALLDD applies, so the RLSID needs to specified here even though it is the same as the one on the DD=&ALLDD card.
  • The third override card specifies IAM/PLEX processing for file SHARE2, but it is directed to a different IAM/PLEX address space, which must be a member of the same RLSGROUP as the other IAM/PLEX address space.

If there are overrides for additional specific data sets, then they will have to include the RLSID=xxxx override as well.


 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*