Old MIM LOAD libs in APF listing or showing in MIM startup
search cancel

Old MIM LOAD libs in APF listing or showing in MIM startup

book

Article ID: 208281

calendar_today

Updated On:

Products

MIM Data Sharing (MII) MIM Resource Sharing (MIM)

Issue/Introduction

One of two issues may be occurring
1. In one of our LPARs, we are seeing a healthcheck exception in APF, where the system sees multiple versions of MIM load datasets even though we have defined only one dataset in the PROG member. We're unsure from where it picks the dataset from. Could you please advise on this issue?

The MIM STEPLIB contains hlq.MIM.R125F.LOAD.

The healthcheck shows

CSVH0955I A problem was found with each APF list entry displayed.      
                                                                       
VOLUME DSNAME                                            ERROR 
MSYS02 hlq.MIM.R125.LOAD                        DS is SMS-managed
MSYS07 hlq.MIM.R125A.LOAD                         DS is SMS-managed
                                                                       
* Low Severity Exception *                                           

Where are the R125.LOAD and R125A.LOAD files coming from?

2. We are seeing old MIM LOAD libraries when viewing MIM in SYSVIEW

Jobname CAMIMGR   ASID 0009  Jobid STC35557
           Interval   n/a      
-------------------------------------------------------
Cmd      DDname    DatasetName   
         STEPLIB   hlq.MIM.V125.CBTDLOAD.M210121 <--current
       MIMPARMS  hlq.MIM.V125.CBTDPARM  
       MIMMSGS   hlq.MIM.V125.CBTDMSEN.M210121
       MIMRMFIL  hlq.MIM.V125.MIMRMFIL.SYSC
         SYS00001  hlq.MIM.V125.CBTDLOAD.M180110 <--old
         SYS00002  hlq.MIM.V125.CBTDLOAD.M180110 <--old

Where are the CBTDLOAD libraries in SYS00001 and SYS0002 coming from?

Environment

Release : 12.5

Component : MIM

Cause

The hlq.RMFIL used for the Dynamic Restart Feature contains old datasets

Resolution

1. When MIM initializes and you have the MIMRMFIL DD defined, any libraries contained in your hlq.RMFIL are APF authorized IF you have APF enabled (which is the default).

   These files are ONLY used or changed when a MIM LOADLIB command is issued. This command is part of the MIM Dynamic Refresh Facility.
   Thus if the file has not been needed for a longer period of time, the files it contains may become outdated.
   This does not hurt anything in and of itself, but may cause confusion.

2. You can issue the MIM command D LOADLIB to see the contents of your hlq.RMFIL.
    This will verify the contents of your file, including which dataset names it contains, and whether APF is set to YES.

Example :

F MIM,D LOADLIB                     
MIM0067I Command DISPLAY 801            
MIM0964I MIM Load Library Display:      
 Type DSName                             
Init hlq.MIM125.TS1.CBTDLOAD      
Curr hlq.MIM125.TS1.CBTDLOAD      
Prim hlq.MIM125.TS1.CBTDLOAD      
Alt  hlq.MIM125.MII00284.CBTDLOAD.T
 SETAPF=Yes                              
 STARTFROM=Initial  

  You can use this command to verify the contents of your file after every LOADLIB command.

 

In all of the examples below, I have a STEPLIB in my JCL that points to hlq.MIM125.PRD.CBTDLOAD
The commands allow you to replace the content of the old libraries with your current ones.

We recommend against any manual update of the file as it may cause corruption, unless you want to delete and redefine a new, empty file.

 

3. If you just want to stop the APF authorization of any files in the RMFIL, you can issue 

   LOADLIB SETAPF=NO.

   The D LOADLIB will then show

 F MIM,D LOADLIB                     
MIM0067I Command DISPLAY 801            
MIM0964I MIM Load Library Display:      
 Type DSName                            
Init hlq.MIM125.TS1.CBTDLOAD      
Curr hlq.MIM125.TS1.CBTDLOAD      
Prim hlq.MIM125.TS1.CBTDLOAD      
Alt  hlq.MIM125.MII00284.CBTDLOAD.T
 SETAPF=No                              
 STARTFROM=Initial
That means that the next time MIM initializes after an IPL, those old files will not be APF authorized, so will not trigger a healthcheck.

 

If you will not be using some or all of the  LOAD libraries contained in this file on any of your systems going forward and want to clean up the content of the file itself, you can issue a few commands to do so.

4. Issuing LOADLIB SAVE
    Saves your current  LOADLIB environment from your STEPLIB to the Initial and Current locations in the RMFIL.

    So now a D LOADLIB shows the current LOAD library in the Initial and Current locations.

F MIM,D LOADLIB                     
MIM0067I Command DISPLAY 801            
MIM0964I MIM Load Library Display:      
 Type DSName                             
 Init hlq.MIM125.PRD.CBTDLOAD
Curr hlq.MIM125.PRD.CBTDLOAD
Prim hlq.MIM125.TS1.CBTDLOAD      
Alt  hlq.MIM125.MII00284.CBTDLOAD.T
SETAPF=No                            
STARTFROM=Initial            

5. Issuing LOADLIB RESETALTERNATE
    Removes the content in the Alt field
  F MIM,D LOADLIB                   
MIM0067I Command DISPLAY 937          
MIM0964I MIM Load Library Display:    
   Type DSName                           
 Init hlq.MIM125.PRD.CBTDLOAD    
 Curr hlq.MIM125.PRD.CBTDLOAD    
 Prim hlq.MIM125.TS1.CBTDLOAD    
   Alt  
   SETAPF=No                            
   STARTFROM=Initial                
 
 
6. LOADLIB COMMIT places the current STEPLIB into the PRIMary field         
  F MIM,D LOADLIB                
MIM0067I Command DISPLAY 523      
MIM0964I MIM Load Library Display:
   Type DSName                        
 Init hlq.MIM125.PRD.CBTDLOAD
 Curr hlq.MIM125.PRD.CBTDLOAD
   Prim hlq.MIM125.PRD.CBTDLOAD  
   Alt                                
   SETAPF=No                         
   STARTFROM=Initial      

So at this point, everything would point to your current libraries and it would actually not hurt to have APF set to YES.

Each of the above LOADLIB commands is independent of any other, so you can issue only those commands needed to correct any problem you are seeing. 

Reading up on the LOADLIB command is strongly recommended (see Additional Information).
It is used as part of the  Dynamic Refresh feature, and can be of assistance if you want to be able to switch out LOAD libraries while MIM is running. You would want to do some testing prior to using it in production.

 

RECOMMENDED FILE HANDLING

The MIMRMFIL is used for the Dynamic Restart Facility.

The content of the hlq.RMFIL cannot be changed manually without the potential for corruption; it must be done using LOADLIB commands

This facility works both with and without the MIMRMFIL. So which option you choose is ultimately up to you.


Here are the differences:
1. If you remove the DD MIMRMFIL statement, the DISPLAY LOADLIB will show  the following (assuming the MIM STEPLIB contains DSN=hlq.MIM125.CBTDLOAD)

   D LOADLIB                                                      
   MIA0067I Command DISPLAY 179                                    
   MIA0964I MIM Load Library Display:                              
  Type DSName                                   Vol    DDName
  Init hlq.MIM125.CBTDLOAD                 VOL001 STEPLIB
  Curr hlq.MIM125.CBTDLOAD                 VOL001 STEPLIB
  Prim hlq.MIM125.CBTDLOAD                 VOL001 STEPLIB
    Alt                                                            
    SETAPF=Yes                                                      
    STARTFROM=Initial    

   - you can issue LOADLIB commands to change values you see, and also to issue various REFRESHFROM commands, just as you would with the MIMRMFIL defined. 
   - at IPL or product restart, the content reverts to what you see above; any changes are not retained.
   - we recommend leaving SETAPF=YES. The reason for this is that, when you issue a LOADLIB REFRESH of any kind, MIM is dynamically restarted using the library you choose. Disabling the automatic APF authorization could leave you open to potential failure during MIM restart if the chosen library is not APF authorized.

   So if you rarely (or do not) use the LOADLIB REFRESH command and your main concern is to avoid issues with the files in the RMFIL becoming old and showing up in your list of APF Authorized libraries, removing the MIMRMFIL may be your preferred way to go.

 

2. If you keep the MIMRMFIL DD, the hlq.RMFIL needs to be updated when you apply maintenance and change the LOAD library you will be using, otherwise you will hit the same problem again.  You can do this in one of two ways:
   A) delete and redefine the RMFIL while MIM is down.
       It will autopopulate with the information as in #1 above.
   B) Issue LOADLIB commands to ensure the file has current content:
      LOADLIB SAVE    (set Init and Curr to match STEPLIB)
      LOADLIB COMMIT    (Set Prim to match STEPLIB)
      LOADLIB RESETALTERNATE   (to blank out Alt - only required if it has content)

   If you choose to keep the MIMRMFIL DD, we have the following recommendations:
   - as noted in #1, leave APF set to YES to avoid a potential MIM failure during dynamic restart.
   - ensure the LOAD libs in the hlq.RMFIL match the LOAD lib in your STEPLIB when the file is not in use
   - should the file become corrupted for some reason, MIM will work as if it was not defined, defaulting to the values of #1 above.
   - Browse the hlq.RMFIL file to validate content before issuing a LOADLIB REFRESH of any kind, as occasionally the D LOADLIB results and the actual content may differ.

IMPORTANT! The idea behind having APF=YES is the ability to have alternate libraries available in case of problems, and ensure they are APF authorized so MIM doesn't fail if a LOADLIB command is issued.

So if you do set APF to No, please consider carefully how you want to handle the file longer term.



Additional Information

This section of the doc gives an overview of the Dynamic Refresh Feature.
https://techdocs.broadcom.com/us/en/ca-mainframe-software/traditional-management/ca-mim-for-z-os/12-5/release-notes/new-features-in-ca-mim-for-z-os-release-12-5/new-ca-mim-driver-features.html 


This section shows the syntax
https://techdocs.broadcom.com/us/en/ca-mainframe-software/traditional-management/ca-mim-for-z-os/12-5/statement-and-command-reference/general-ca-mim-statements-and-commands/mim-loadlib-command.html

and this section supplies specifics about Dynamic Refresh Activation
https://techdocs.broadcom.com/us/en/ca-mainframe-software/traditional-management/ca-mim-for-z-os/12-5/ca-mim-product-maintenance/dynamic-refresh-activation.html