IAM/PLEX JCL procedure


IAM/PLEX runs as a started task in a z/OS system. The IAM/PLEX procedure runs continuously as a non-swappable address space, providing services to the various jobs and CICS regions that are sharing IAM files. In general, you should keep IAM/PLEX running all the time. However, you can shut down and restart IAM/PLEX without affecting processing for IAM data sets that are not using IAM/PLEX.


Warning

Important

Because IAM/PLEX is an I/O service provider, make sure that the IAM/PLEX address space is provided with a high enough priority to service the CICS transactions and batch jobs to meet their response time requirements.

We recommend giving it a priority at least as high as the most critical CICS region or batch job. Specifying too low a priority results in poor response times for CICS transactions and elongated run times for batch jobs.

If you are using the Workload Manager (WLM) to manage the workload in your sysplex, then consider assigning the same service class to IAM/PLEX that is used for the DB2 lock manager.


Multiple IAM/PLEX address spaces

You can run one full function IAM/PLEX instance per LPAR of the same RLSGROUP. You can have other IAM/PLEX instances of the same RLSGROUP on the same LPAR. If the REMOTERLS parameter is not specified, then it uses REMOTERLS parameter by default if there is already a ROUTER IAM/PLEX instance for the RLSGROUP on the LPAR. A REMOTERLS region is a FILESERVER-only region and cannot be connected directly by a batch job or CICS region. You can start more IAM/PLEX regions that are part of a different RLSGROUP on the same LPAR. You can also have a mix of IAM/PLEX regions and IAM/RLS regions on the same LPAR.

You might decide to run multiple IAM/PLEX address spaces for the following reasons: 

  • To isolate different applications so that a failure in one application grouping does not affect other unrelated applications.
  • For billing purposes, to isolate as much processing as possible for different applications or customers by eliminating common server address spaces.
  • For security purposes, to isolate some applications from others.

Whatever the reason, to use multiple IAM/PLEX address spaces, you must have well defined groups of data sets and processing that can be isolated from each other.

Using multiple IAM/PLEX address spaces is subject to the following restrictions:

  • A batch job, CICS region, or TSO user can only be directly connected to only one IAM/PLEX instance. All IAM data sets that require IAM/PLEX processing for that user address space must be handled by an IAM/PLEX instance that is a member of the same RLSGROUP as the IAM/PLEX that it is connected to.
  • An IAM data set can only be opened by only one IAM/PLEX instance at a time.
  • Each IAM/PLEX instance must be started with its own unique procedure and name.
  • Each IAM/PLEX instance in an RLSGROUP must use the SYSTEM LOGGER, and the LOGSTREAM must be defined as part of a STRUCTURE in the coupling facility.
  • All IAM/PLEX instances in the SYSPLEX must use the same data set name table.
  • Each IAM/PLEX instance requires its own system LX. A system LX is the facility through which cross-memory access to the IAM/PLEX address space is authorized. Owing to system limitations on the number of system LXs, this restricts the maximum number of IAM/PLEX address spaces that you can use, unless the address space is started with the REUSASID=YES parameter on the START command for the IAM/RLS procedure. To use the REUSASID=YES parameter, make sure that the DIAGxx member in parmlib also specifies REUSASID(YES).

IAM/PLEX procedure

The IAMSAMP that was part of the installation package, contains the following sample IAM/PLEX procedure. You can be edit this sample and copy it into one of your system proclibs. You must change the data set name of the IAM load library and the data set name of the card image PDS to be used for parameters and overrides. You can change the default member names for the IAM/PLEX parameters and for the IAM/PLEX override.

//IAMPLEX  PROC MBR=PLXPRM1,OVR=PLXOVRID,TBL=PLXDSNTB
//IEFPROC  EXEC PGM=IAMPLEX,MEMLIMIT=8G,
//              REGION=0M,DPRTY=(15,15),TIME=1440
//STEPLIB  DD   DSN=<dataSet>,DISP=SHR
//SYSLIB   DD   DSN=<dataSet>,DISP=SHR
//SYSPRINT DD   SYSOUT=X
//RLSLOGDD DD   SYSOUT=X
//SYSABEND DD   SYSOUT=X
//RLSINFO  DD   SYSOUT=X
//RLOKJRNL DD   DISP=SHR,DSN=<dataSet>
//IPARMLIB DD   DISP=SHR,DSN=<dataSet>(&MBR)
//IAMOVRID DD   DISP=SHR,DSN=<dataSet>(&OVR)
//IAMDSNTB DD   DISP=SHR,DSN=<dataSet>(&TBL)

IAM/PLEX TEST procedure

You can use the PARM=’TEST,JOBNAME=(JOBX*) parameter in your IAM/PLEX startup procedure to start a test version of the IAM VSAM interface (VIF). You must set up a different procedure by using a unique RLSID and start the procedure with a STEPLIB to the load library for the level being tested. To run a job using the test IAM/PLEX you use the same STEPLIB and specify the RLSID of the test IAM/PLEX. If you start the (VIF) before starting IAM/PLEX, then you must put the PARM=’TEST,JOBNAME=(JOBX*)’ in the procedure that you use to start VIF. 

The test job names in the following sample are specified by the JOB parameter when the IAMPLEXT procedure runs:

Sample of TEST IAM/PLEX PROC Member IAMPLEXT in IAMSAMP

//IAMPLEXT PROC MBR=RLSPARMT,OVR=RLSOVRID,TBL=DSNTB
//IEFPROC  EXEC PGM=IAMPLEX,MEMLIMIT=4G,
//              PARM='TEST,JOBNAME=(JOBX*)',
//              REGION=0M,DPRTY=(15,15),TIME=1440
//STEPLIB  DD   DSN=<dataSet>,DISP=SHR
//SYSLIB   DD   DSN=<dataSet>,DISP=SHR
//SYSPRINT DD   SYSOUT=X
//RLSLOGDD DD   SYSOUT=X
//RLSINFO  DD   SYSOUT=X
//SYSABEND DD   SYSOUT=X
//RLOKJRNL DD   DISP=SHR,DSN=<dataSet>
//IPARMLIB DD   DISP=SHR,DSN=<dataSet>(&MBR)
//IAMOVRID DD   DISP=SHR,DSN=<dataSet>(&OVR)
//IAMDSNTB DD   DISP=SHR,DSN=<dataSet>(&TBL)

IAM/PLEX DD statements

The following table describes the DD statements in the IAM/PLEX procedure:

DD name

Description

STEPLIB

Specifies the IAM load library data set. This DD is optional if IAM is in the system link list.

SYSLIB

(Required) Specifies the IAM load library data set.

SYSPRINT

(Required) Specifies a sequential output data set that is normally printed

If specified as SYSOUT, make sure the class used is one that is not automatically purged in case the output is needed to diagnose problems.

RLSLOGDD

(Optional) Specifies a sequential output data set that is normally printed

This class contains a log of activity and error messages. If you specify the SYSOUT class, make sure that the class used is one that is not automatically purged in case the output is needed to diagnose problems. If you do not include this statement in the IAM/PLEX procedure, then IAM/PLEX dynamically allocates a printed log file to SYSOUT by using the SYSOUT class value specified by the SYSOUT=x IAM/PLEX parameter. If you do not specify the SYSOUT class, then the default SYSOUT class for the started procedure is used. By allowing this data set to be dynamically allocated, you can spin off the current log data at any time by using the IAM/PLEX LOGSWITCH command.

SYSABEND

(Optional, but highly recommended) Used when a dump is taken due to an abend condition

We recommend that you not use a SYSMDUMP DD instead of a SYSABEND DD because SYSMDUMP DD contains insufficient information to diagnose problems.

RLSINFO

(Optional) Generates IAM/PLEX statistics reports, as specified by the STATS parameter in the startup parameters

RLOKJRNL

(Optional) Specifies the record lock journal file used for IAM-PLEX-record-lock-recovery.

IPARMLIB

(Optional) Specifies an 80-character card image input data set containing various parameters and options for IAM/PLEX. This data set is typically a PDS.

IAMOVRID

(Optional) Specifies an 80-character card image input data set, containing the IAM override statements. This provides a mechanism for indicating parameters, such as number-enabling journaling for all files processed by IAM/PLEX.

IAMDSNTB

(Optional) Contains an 80-character card image input data set containing the data set selection and data set exclusion lists for IAM/PLEX processing.

IAMINFO

(Optional) Contains in the standard IAMINFO reports produced whenever an IAM file is closed.

Because this will generate a significant amount of output, we recommend that you do not use it. Instead enable the IAM SMF records to be recorded which contain the same information.

ABNLIGNR

DD DUMMY to bypass Abend-AID dumps

ABNLDUMP

DD DUMMY to bypass Abend-AID dumps

 

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

BMC AMI Storage IAM 11.1