How to: Switch base read-only libraries using a user-defined variable

To leave started tasks running from one set of base read-only libraries while you apply maintenance or upgrades to a second set, use a user-defined symbol for the name of the base runtime environment (RTE) and create a second set of read-only libraries. Then, after you successfully apply and test the changes, you can point the STCs to the second set either by editing the value of the symbol in the RTE's variables profile, or by modifying the composite STC (IBMSSTRT by default). This topic explains how to perform this task using PARMGEN.

About this task

In a sharing RTE, the values for the RTE_X_HILEV_SHARING and the RTE_SHARE parameters in the RTE configuration profile become part of the BASEHLEV symbol in the PARMGEN-created STCs. For example, the parameters in the following example:
000025 RTE_X_HILEV_SHARING "IBM.ITM63051" 
.
000039 RTE_SHARE "BASE&BASELVL."
become BASEHLEV=IBM.ITM63051.BASE&BASELVL..R in the following started task:
000020 //IBMDS PROC RGN=0M,TIM=1440,  
000021 // SYS=&SYSNAME.,  
000022 // RHILEV=IBM.ITM63053,  
000023 // BASEHLEV=IBM.ITM63053.BASE&BASELVL..R, 
After both BASE1 and BASE2 libraries are created, the BASEHLEV symbol in all product points to the generic BASEHLEV=IBM.ITM63051.BASE&BASELVL..R. The CONFIG DD in the product started tasks determines which set of libraries the started task is pointing to.

To set up a sharing-with-base RTE that has two sets of read-only base libraries, complete the following steps.

Procedure

  • To create a sharing-with-base RTE that uses variables, complete the following steps:
    1. Create a sharing-with-base RTE and enable it for system variables (RTE_SYSV_SYSVAR_FLAG=Y).

      Use a variable such as &BASELVL. for the name of the base RTE (for example, RTE_SHARE=BASE&BASELVL.). Define the variable in the RTE's variables profile (%GBL_USER_JCL%(%RTE_NAME%) ) and set its value to 1. This creates a set of BASE1 read-only libraries named IBM.ITM63051.BASE1.RK* (RKANMOD, RKANMODL, RKANPENU, RKANEXEC, and so on).

      For step-by-step instructions, see Scenario QCF09: Creating a sharing-with-SMP/E runtime environment with a remote monitoring server and variables enabled.

    2. Create a second set of shared read-only BASE2 libraries:
      1. Edit the variables profile for the sharing RTE that you created in the previous step and specify the value for BASELVL as 2.
      2. Submit the WKANSAMU(KCIJVBSA) stand-alone base-only allocation job to allocate the new base libraries.
      3. Submit the WKANSAMU(KCIJVBSL) standalone base-only allocation job to load the new base libraries.
    3. To control which base libraries are used at product start up, customize the IBMSTRT composite startup member supplied by PARMGEN to override the value of the user-defined symbol. (If you start your products from SDSF, customize each STC to set the appropriate value.)
      The following example shows two ways to modify the startup procedures to change the value. You can override just the BASELVL symbol (line 000071), or you can override the entire base high level symbol, by changing the value for the base libraries (line 000073).
      EDIT       CAN.USER.PROCLIB(IBMSTRT) - 01.14               CHARS 'DSR2' found 
      Command ===>                                                  Scroll ===> CSR  
      000069 //******************************************************************    
      000070 //*  IBMDS - Tivoli Enterprise Monitoring Server                     
      000071 //*  START IBMDS&AR,MSGCLASS=X,BASELVL=1                              
      000072 //*  START IBMDS&AR,MSGCLASS=X,BASEHLEV=TSTEST.ITM6353.BASE1.R        
      000073 //   START IBMDS&AR,MSGCLASS=X,BASEHLEV=TSTEST.ITM6353.BASE2.R        
      000076 //*                                          
  • To convert an existing RTE to use a second shared base RTE, complete the following steps:
    1. If variables are not already enabled in the sharing RTE, or a static value was used for the RTE_SHARE parameter:
      1. Edit the RTE configuration profile to set RTE_SYSV_SYSVAR_FLAG=Y.
      2. Edit the RTE_SHARE parameter in the RTE profile to use a variable such as &BASELVL. as part of the name of the base RTE.
      3. Edit the RTE's variables profile (%GBL_USER_JCL%(%RTE_NAME%) ) to define the variable and set its value to the value you want to use for the first shared RTE.
      4. Run the $PARSESV job.
      5. Resubmit the following batch jobs to refresh the RTE members and jobs:
        • KCIJVSYS (to refresh the updated system members such as the started tasks and VTAM major nodes)
        • KCIJVCPR (to backup the current user product execution user libraries)
        • KCIJVW2R (to copy the work libraries to the product execution user libraries--RKANCMDU, RKANPARU, RKANSAMU, and so on)
    2. Create the second set of base libraries:
      1. Edit the variables profile for the sharing RTE and specify the value for BASELVL for the second base RTE, for example 2.
      2. Submit the WKANSAMU(KCIJVBSA) job to allocate the new base libraries.
      3. Submit the WKANSAMU(KCIJVBSL) job to load the new base libraries.
    3. See step 3 in the previous procedure.