Moving a New Version of IAM into Production


Overview

Several ways can be used to place the new version or maintenance release of IAM into production. In all cases, it will make for a cleaner and safer process if you can schedule an IPL. However, many installations are not able to do that, so alternative procedures are presented that will accomplish activating the new version or maintenance release as the level used by all of the jobs in the system without an IPL. Be sure to review the IPL implementation procedure because there are tasks you will need to do so that the new version of IAM will remain in place after an IPL occurs.

It is highly recommended that no matter what procedure you decide to follow, that you keep a copy of your prior version of IAM available in an authorized library. By doing so, you will have quick access to the prior version if it becomes necessary. The recommended procedures provide the capability of an emergency fall back to the prior version without an IPL, should unexpected problems occur. Once you have reached a level where the fall back is no longer necessary, you will be able to remove the old version of IAM from your system.

Implementation Strategy

During the testing phase of the new level of IAM, you have been running with two versions of IAM active, using JOBLIB or STEPLIB to access the new version, while running out of LINKLIST for the production version. The recommended strategy is to migrate to the new level of IAM in two phases. During the first production phase for the new version, there will still be two levels of IAM started. However, the new level of IAM will be placed in the LINKLIST, while the prior version of IAM will be accessible, if necessary, through a JOBLIB or STEPLIB. The old version of IAM, while started, will be deactivated. This will leave the prior level of IAM modules in PLPA, however they will be inactive. The old level of IAM will be ready to be reactivated if the need arises.

Once the new version has been completely accepted, then the second phase can be performed. This phase will remove the old level of IAM from the system completely. During this phase, changes will be made to the IPL procedure for activating IAM. The change will be to activate just the new production level of IAM. The old library, if it is still in the LINKLIST, can be removed. Then, after an IPL, the old IAM libraries can be deleted from the system.

In planning for the implementation, it is highly recommended that there be only one load library with any particular level of IAM. The primary reason for this recommendation is to avoid the problems encountered when there are multiple load libraries for the same version. The potential problems are differences in IAM Global Options settings, and maintenance concerns when applying zaps. If you do have to copy the IAM product from one library to another, be sure to delete the original library as soon as possible to prevent inadvertent use. Also, be sure to copy all of the IAM load modules. There are occasionally new modules added to the IAM load library, and there may be some modules eliminated.

Preparation for Production

The method of implementation for the first phase that will be least likely to cause problems is to perform an IPL to put the new version of IAM into production. Because many installations are not able to use this technique, there are alternative procedures provided below to implement the new version of IAM without an IPL. However, many of the tasks described below will have to be done even with the alternative procedures, so please be sure to review this methodology.

There are two steps to prepare for the implementation. First, is to revise the start up procedures for IAM and second is to change the LINKLIST structure to include the new level of IAM. The changes to the startup procedure for IAM include adding a step to deactivate the old level of IAM after it is started, and if a TEST IAM is being used, change the JOBNAME value to JOBNAME=*, so that all jobs are eligible for the new version. Shown below is the revised multiple step PROC for starting Concurrent IAM, with a deactivation step inserted for the old version.

Example of PROC to Start Two IAM VSAM Interfaces and Deactivate One

    //IAMSTART  PROC  LIB='SYS1.IAM93.LOADLIB'
   //* MEMBER(IAMSTART)
   //******
   //*    THIS PROCEDURE HAS BEEN CREATED TO START MULTIPLE
   //*    VERSIONS OF THE IAM VIF.
    //*    USER CHANGES:
   //*       CHANGE 'SYS1.IAM93.LOADLIB' TO NAME OF OLD VERSION OF IAM
  //*    CHANGE 'SYS1.IAM94.LOADLIB' TO NAME OF NEW VERSION OF IAM
   //******
   //******
   //STARTOLD  EXEC PGM=IAMSTART
   //STEPLIB   DD   DISP=SHR,DSN=&LIB
   //SYSLIB    DD   DISP=SHR,DSN=&LIB
   //SYSUDUMP  DD SYSOUT=*
   //DEACTOLD   EXEC  PGM=IAMPARE          ß Deactivate old version
   //STEPLIB   DD    DISP=SHR,DSN=&LIB
   //SYSLIB    DD    DISP=SHR,DSN=&LIB
    //STARTNEW  EXEC  PGM=IAMSTART
   //STEPLIB   DD    DISP=SHR,DSN=SYS1.IAM94.LOADLIB
   //SYSLIB    DD    DISP=SHR,DSN=SYS1.IAM94.LOADLIB
   //STATS     EXEC  PGM=IAMSTATS
   //STEPLIB   DD    DISP=SHR,DSN=&LIB
   //SYSLIB    DD    DISP=SHR,DSN=&LIB

The second step is to put the new IAM load library into the LINKLIST (in the appropriate LNKLSTxx or PROGxx member of SYS1.PARMLIB), and to optionally remove the old library from the LINKLIST. The alternative to changing SYS1.PARMLIB is to copy the new version of IAM into an existing LINKLIST library. That job should be run just prior to the IPL. If the plans are to copy the new IAM into the library where the old version resided, make sure that you have a copy of that version of IAM in another APF authorized library. If both the new and the old libraries are in LINKLIST, make sure that the new production version is in front of the old version.

After the IPL, the new version will be the production version. From the IAMSTATS, you will see that the old level of IAM is in storage, but INACTIVE. Should the need arise, the old version can be reactivated by running IAMSTART with that version's libraries as the STEPLIB and SYSLIB. Once the old version is reactivated, it can be accessed by JOBLIB or STEPLIB for selected jobs, or the library can be copied into LINKLIST in front of or over the new version, followed by an LLA refresh.

z/OS has the capabilities to dynamically change the system LINKLIST. This facility will make it possible to put the new version of IAM into production with minimal impact to the ongoing operation of the system. This procedure can also be used to put a new maintenance level of IAM into production, however you should run some tests prior to doing the cut over with running the new level of IAM with the old level of IAM.

  1. Make sure that each version of IAM is in it's own unique library, and that each corresponding version of the IAM VSAM interface has been activated in the proper sequence with any other potentially interacting software products.
  2. If the new IAM is a TEST IAM, set the JOBNAME=* so that it will process all jobs.
  3. Issue the following Operator Commands:
    • SETPROG LNKLST,DEFINE,NAME=NEWIAM,COPYFROM=CURRENT
      This will build a new LINKLIST based on the currently active LINKLIST.
    • SETPROG LNKLST,ADD,NAME=NEWIAM,DSNAME=newiam.loadlib,ATTOP
      This command will place the new IAM library at the top of the LINKLIST concatenation, after SYS1.LINKLIB. Alternatively, instead of ATTOP, you can specify AFTER=dsname to place the new IAM library in a particular location. Be sure that if you do use AFTER= that the new IAM library will still be in front of the old IAM library.
    • SETPROG LNKLST,DELETE,NAME=NEWIAM,DSNAME=oldiam.loadlib
      This command is optional, it will remove the old IAM library from the new LINKLIST.
    • SETPROG LNKLST,ACTIVATE,NAME=NEWIAM
      This will activate the new LINKLIST for all new jobs and address spaces. Currently executing jobs will continue to use the old version of IAM.
  4. Prior to performing an IPL, make sure to update the SYS1.PARMLIB with the LINKLIST changes, as well as changing the IAMSTART PROC if necessary.

When using the above procedure, do not deactivate the old version of IAM until you are certain that all jobs that were using that version of IAM have terminated. If you need to back out the new level of IAM, you can either activate the original LINKLIST, if you know the name, or build a new LINKLIST as the commands above do, deleting the new IAM library, and adding the old IAM library if you had deleted it. If you were running a TEST IAM where the prior IAM had the same internal level identifier, then deactivate the TEST IAM with the VIFSTOP JCL.

The following procedure to put IAM into production without using the Dynamic Linklist facilities. Because this procedure does not utilize the dynamic LINKLIST, it will require a brief period of time where all activity against IAM files must be quiesced.

  1. The first step is to make sure that there is an APF authorized backup library with the current production version of IAM. This must be separate from the target production LINKLIST library for the new version.
  2. The second step is to make sure that both the current production version of IAM and the new version of IAM have been activated in the correct order regarding other software products in your installation. This is best accomplished by using one of the suggested multiple step IAM start procedures.
    • All activity on IAM files must be stopped. All open IAM files must be closed. When that point is reached, the following tasks are to be done:
      • Deactivate the production version of IAM using the VIFSTOP job.
      • Copy the new IAM library into the LINKLIST. The copy can be done into a library in front of the current production IAM library in LINKLIST, or into the current production library in LINKLIST. Make sure that the library that you copy the new IAM version into does not take any extents. If it does, a re-IPL will be necessary if running a compress does not get the data set back down to it's original size.
      • Refresh the LINKLIST with the F LLA,REFRESH command.
      • If the new version is running as a TEST IAM, set JOBNAME=* by running the VIF START job with a PARM='TEST,JOBNAME=*'.
  3. The new IAM is ready for use. IAM file activity can be resumed with the new production version of IAM.
  4. When a back out procedure is no longer needed, revise the IAM start procedure for IPL to activate only the new production level of IAM. Then whenever the system is re-IPL'd, the new production version will be the only version of IAM installed on the system, and the backup library for the old version can be deleted.

If you need to backout the new IAM version, reactivate the old IAM, then copy the old IAM library back into the LINKLIST over the new version, and do an LLA Refresh. Once that is complete, you can deactivate the new IAM and resume processing of your jobs. Be sure to back out any changes you may have made to SYS1.PARMLIB for LINKLIST or the IAMSTART procedure.

Final Steps

The final phase of implementation of the new version or maintenance level of IAM can take place once you are satisfied with the performance and reliability of the product. To accomplish this task, change the start up of IAM during IPL to only start the new production version of IAM. If you are using the recommended multiple step PROC, then remove the start up and deactivation of the prior release. If the new IAM was being run as a TEST IAM, it can now be turned into a regular IAM by removing the parameter fields. (that is, PARM='TEST,JOBNAME=*') The load library with the old IAM version can now be removed from the LINKLIST, and also from the APF list, presuming that the data set was being used for IAM only. After the system is re-IPL'd, which can be done whenever it is convenient, then the new version of IAM is in full production. At this point, the old libraries can be deleted from your system.


 

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

BMC Compuware IAM 10.00