Rectifying your PARMGEN configuration

If manual modifications exist in your PARMGEN configuration, follow these steps to standardize your configuration. This task applies only to runtime environments that were created using PARMGEN.

Before you begin

If you set up your runtime environment using PARMGEN, then any maintenance should also occur using the PARMGEN tool. You should not manually modify any of the parameters or members.

In some cases, members or parameters are modified manually (either intentionally or unintentionally), which can cause problems when applying maintenance or upgrading products within the runtime environment. It is recommended that you follow the guidance in this task to standardize your configuration so that you can perform future maintenance properly and without issue.

Important: If you plan to migrate from PARMGEN to IBM ZĀ® Monitoring Configuration Manager, you must standardize your PARMGEN configuration for a smooth migration. Complete this task to prepare your PARMGEN configuration for migration.

About this task

The following six libraries are within the OMEGAMON runtime environment and contain configurable members:
  • RKANPARU
  • RKANSAMU
  • RKANCMDU
  • RKD2PAR
  • RKD2PRF
  • RKD2SAM
Note: Libraries RKD2PAR, RKD2PRF, and RKD2SAM (and respective WK* libraries) are applicable only when OMEGAMONĀ® AI for Db2 is configured.
The members in these libraries should be configured using PARMGEN and standard PARMGEN parameters or embed overrides.
Note: For more information about embed members, see Override embed members and Customizing the override embed members.
If any of these members contain manual modifications, or if you are unsure if there are manual modifications, perform the steps in the following procedure to synchronize your PARMGEN configuration with parameter values inside configurable members. The steps are divided into the following sections:

Procedure

Part I: Identify and isolate
Identify and isolate all manual changes inside the PARMGEN runtime environment members.
Important: In some rare cases, extra members might exist in the data sets. If such a member is needed for the runtime environment, make sure to include the member in the user-defined exclude list WCONFIG(KCI$XW2R).
  1. Use the PARMGEN tailored JCL job KCIJPSPC to compare WK* libraries against RK* libraries (for example, compare WKANSAMU to RKANSAMU). To perform this step, open the Utilities panel, and choose option 27.
      Submit a utility job (Maintenance):                                         
                            Description                                  Job/Label
            -----------------------------------------------------------  ---------
        20. Refresh IK* templates/WCONFIG *$IBM profiles.                KCIJPUP1 
        21. Convert an ICAT RTE Batch member.                            KCIJPCNV 
        22. Merge profile from a backup LPAR RTE profile.                KCIJPMCF 
        23. Validate PARMGEN profile parameter values.                   KCIJPVAL 
        24. Back-up WK* work user libraries.                             KCIJPCPW 
        25. Back-up RK* product execution user libraries.                KCIJPCPR 
        26. Recall migrated DEMO RTE datasets.                           KCIJPHRC 
        27. Compare work and runtime user libraries.                     KCIJPSPC 
        28. Empty runtime members in RK* user libraries.                 KCIJPMTY 
        29. Copy WK*->RK* user libraries keeping EXCLUDE members.        KCIJPW1R 
        30. Restore back-up user libs. to current set.                   KCIJPB2R 
        31. Resolve system symbolics in PARMGEN jobs.                    KCIJVSRV 
        32. Collect diagnostic information for this RTE.                 KCIJPCOL 
        33. Delete RTE: DEMO                                             KCIJPDEL 
    Note: Depending on your screen resolution, you might have to scroll down to see all the options on the panel. Look for MORE+ on the screen, which indicates there are additional options.
    This job compares all libraries with configurable members against working data sets and writes the results to data set rte_plib_hilev.rte_name.WSUPERC (for example, TDXMP.HLQ.DEMO.WSUPERC). The following comparisons are performed:
    • RKANPARU compared with WKANPARU
    • RKANSAMU compared with WKANSAMU
    • RKANCMDU compared with WKANCMDU
    • RKD2PAR compared with WKD2PAR
    • RKD2PRF compared with WKD2PRF
    • RKD2SAM compared with WKD2SAM
  2. Open data set rte_plib_hilev.rte_name.WSUPERC in view mode, and issue the following command to filter the results:
    res; x all; hide x; f 'TOTAL CHANGES' all

    This command helps you to quickly identify data sets and members that are impacted, as follows:

    • If you find only 0 (zeros) before TOTAL CHANGES, your runtime environment is in sync with your PARMGEN parameters, and you do not need to perform any additional steps in this task.
    • If there are changes, you will see the results similar to the following example and will need to continue with the task to rectify the differences::
            107 NUMBER OF LINE MATCHES         0  TOTAL CHANGES (PAIRED+NONPAIRED CHNG)
           5951 NUMBER OF LINE MATCHES         9  TOTAL CHANGES (PAIRED+NONPAIRED CHNG)
          56072 NUMBER OF LINE MATCHES         0  TOTAL CHANGES (PAIRED+NONPAIRED CHNG)
  3. Issue the following command to identify the data sets and members that are impacted by filtering the impacted members only:
    res; x all; hide x; f R'NEW:.+([\(])' all
    This command produces a list of members that most likely were manually modified and should be fixed, as shown in the following example:
          NEW: TDXMP.HLQ.DEMO.WKANPARU(KDSENV)      OLD: TDXMP.HLQ.DEMO.RKANPARU(KDSENV)
          NEW: TDXMP.HLQ.DEMO.WKANPARU(KC5ENV)      OLD: TDXMP.HLQ.DEMO.RKANPARU(KC5ENV)
          NEW: TDXMP.HLQ.DEMO.WKANPARU(KD5ENV)      OLD: TDXMP.HLQ.DEMO.RKANPARU(KD5ENV)

    You now have a list of all members that are impacted and can start looking for parameters within your PARMGEN configuration that can fix those members, as described in the next section.

Part II: Fix impacted members

After you have identified the differences that exist, you can start standardizing your configuration, as described in these steps.

  1. Continue viewing data set rte_plib_hilev.rte_name.WSUPERC, as it contains all the information needed to identify manual modifications.
  2. Perform the following steps for each of the impacted members:
    1. Issue the following command to view the differences for a specific member, where the data set name and member are from the list of impacted members:
      res; f 'NEW: TDXMP.HLQ.DEMO.WKANPARU(KDSENV)' all
      Note: The string depends on the list produced in the previous steps.
      The following example shows the result of the previous command. In this example, there are six lines that do not match in the KDSENV member.
      Note: In this example, the first three differences can be rectified using standard parameters, which are described in the subsequent steps. The last three differences use embed overrides, which are described in the step in section Embed overrides.
      NEW: TDXMP.HLQ.DEMO.WKANPARU(KDSENV)                         OLD: TDXMP.HLQ.DEMO.RKANPARU(KDSENV)         
                                                                                                                
                           LISTING OUTPUT SECTION (LINE COMPARE)                                                
                                                                                                                
      ID       SOURCE LINES                                                                TYPE  LEN N-LN# O-LN#
          ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8                      
                                                                                               
      I -  HTTP:1920 USE:Y \                                     
      D -  HTTP:1921 USE:Y \                                                                                    
      I -  IP.PIPE PORT:1918 \                                                              
      D -  IP.PIPE PORT:11918 \                                                                                 
                                                                                                     
      I -  IP6.PIPE PORT:1918 \                                                            
      D -  IP6.PIPE PORT:11918 \                                                                                
                                                                                                     
      I - *KOE_MFSB_WUI=600                                                              
      D - KOE_MFSB_WUI=600                                                                                      
                                                                                                     
      I - *KOE_MFSB_MDI=18000                                                             
      D - KOE_MFSB_MDI=18000                                                                                    
                                                                                                      
      I - *KOE_MFSB_TBI=18000                                                          
      D - KOE_MFSB_TBI=18000    
    2. Address each of the differences individually, as follows.
      The following explanation uses the first identified difference as an example, where member WKANPARU(KDSENV) contains the original value of 1920 and the runtime member RKANPARU(KDSENV) has a different port value of 1921:
      I -  HTTP:1920 USE:Y \                                     
      D -  HTTP:1921 USE:Y \ 

      You can locate the parameter responsible for this line as follows:

      1. Open member rte_plib_hilev.rte_name.WCONFIG(rte_name).
      2. Use the following command to exclude all lines and find all occurrences of the value 1920. It is important to search for the original value from the WK* libraries.
        x all; hide x; f '1920' all
        For this example, the result of the search is as follows:
        KDS_TEMS_HTTP_PORT_NUM            1920     * HTTP port number
        Note: If no results are found, the setting might be an embed override. See section Embed overrides.
      3. Review IBM Documentation for information about this parameter and to ensure it is correct.
        Tip: You can use the search bar on the IBM Documentation landing page to locate information for the parameter by name. Note that some common parameters are documented using prefix Kpp, where pp is a placeholder for the product code. You can also use the links on page OMEGAMON product codes and documentation to navigate through the documentation for the various OMEGAMON products.
      4. Change the value for the parameter (which, in this example, is from 1920 to 1921), and save the member.
      5. Repeat these steps for the next identified difference.
    3. Repeat these steps for the next member.
Embed overrides
If the identified difference is from an embed override, it cannot be rectified using standard parameters. The following example shows another identified difference in the KDSENV member, from the example in the previous steps:
I - *KOE_MFSB_WUI=600
D - KOE_MFSB_WUI=600

Because KOE_MFSB_WUI is not a standard parameter, the parameter cannot be located in the WCONFIG(rte_name) member. Use the following steps to determine if this setting is controlled by an embed override member, and how to proceed if it is.

  1. To rectify embed override settings:
    1. Open the member that contains the identified difference. In this example, it is member WKANPARU(KDSENV).
    2. Locate the parameter in the member. Typically, embed overrides are grouped together, as shown in the following example:
      * *******************************************************************
      * USER SECTION: OVERRIDE FOR MEMBER WKANPARU(KDSENV)
      * *******************************************************************
      
      . . . overrides are here . . .
      
      *KOE_MFSB_WUI=600            
      
      ** ----------------- END   - USER SECTION: OVERRIDE ---------------- *
      If you found your parameter within this code block, it means that you can control it using embed override members located in the rte_plib_hilev.rte_name.WCONFIG data set. The embed member that is used to add user-defined parameters to WKANPARU(KDSENV) is WCONFIG(KDS$PENV).
      Tip: If you do not know the embed member name, you can find the location of the parameter setting using the SRCHFOR command against the WCONFIG data set, as shown in the following example:
      srchfor KOE_MFSB_WUI
      The results indicate the location of the parameter in the respective override embed member:
        Menu  Functions  Confirm  Utilities  Help                                    
                                                                                     
      VIEW              TDXMP.HLQ.DEMO.WCONFIG                       String(s) found 
      Command ===>                                                  Scroll ===> CSR  
                 Name     Prompt       Size   Created          Changed          ID   
      _________ KDS$PENV *Found                                                      
      _________ KDS$PSYS                                                             
      Note: For more information about using override embed members and the embed member names, see Override embed members and Customizing the override embed members.
    3. Edit the override embed member, which in this example is rte_plib_hilev.rte_name.WCONFIG(KDS$PENV), locate the parameter (KOE_MFSB_WUI), remove the asterisk from the first column, and save the member.
Part III: Regenerate WK* libraries
After you have updated all the parameters and embed override members, you can proceed with the remaining steps. In this section, you use your updated parameters and embed overrides when regenerating the following working data sets:
  • WKANPARU
  • WKANSAMU
  • WKANCMDU
  • WKD2PAR
  • WKD2PRF
  • WKD2SAM
  1. In PARMGEN, run the $PARSE job, as follows:
    1. From the Workflow - Primary Option Menu, select Create the RTE members and jobs.
      The Create the RTE Members and Jobs panel (KCIP@PR1) is displayed.
      KCIP@PR1 -------------- CREATE THE RTE MEMBERS AND JOBS -----------------------
      Option ===>                                                                    
                                                                                     
      Select option 1 to SUBMIT the full $PARSE job in WCONFIG for   RTE=DEMO.       
      $PARSE composite job creates product runtime members and jobs in    all the    
      PARMGEN WK* work libraries.                                                    
      Tips:                                                                          
      o: Press F5 to access the library-specific $PARSE* jobs (ideal in an RTE       
         reconfiguration scenario). First-time RTE deployment must run $PARSE.       
      o: Select R to submit the KCIJPUP1 job to refresh the IK* product and          
         WCONFIG *$IBM profiles before recreating the runtime members.               
                                                                                     
      Enter ns (1s-2s) for detailed job/task status.                                 
                                                                                     
                         Description                    Job Name   Status     Date   
         ---------------------------------------------- -------- --------- ----------
      R  Refresh IK* templates/WCONFIG *$IBM profiles.  KCIJPUP1  
                                                                                     
      1. Create runtime members/jobs in all WK* libs.   $PARSE    
      Press F1=Help for more information.  Type U or UTIL to access utility menu.    
    2. Select option 1 to submit the composite job to regenerate all libraries.
      Note: If you want to create (or re-create) only certain runtime members, press F5 for a menu of the individual jobs submitted by the composite job.

      The $PARSE job regenerates working data sets only, so it will not impact any of your running started tasks or other actively used data sets.

  2. After the $PARSE job is completed, go back to the first step, and compare your WK* data sets against your RK* data sets again.

    Repeat these steps until your WK* libraries are exactly the same as your RK* libraries.