Many years ago, I wrote down my process to dynamically update LINKLIST. It
uses the command "LNKLST Update Job(*)" which may not be appropriate in your
environment (i.e., read the manual and test it in your environment). The
basic logic is:

1. Create temporary LNKLST set using SET PROG=CT
   a. Create temporary LNKLST set from current one ("source" LNKLST set) 
   b. Force everyone to use temp LNKLST set.
   c. Delete source LNKLST set.
2. Update PROGxx member that created the "source" LNKLST (the one used by
IPL). We have separate PROGxx members for LNKLST, APF, & EXIT.
3. Re-create updated LNKLST with SET PROG=xx.
4. Switch back to updated LNKLST set using SET PROG=DT
   a. Force everyone to use updated LNKLST set.
   b. Delete temporary LNKLST set.
5. Cycle LLA to pickup new library names.

What I like about my process is that my update tend to automatically persist
across the next IPL

I have not thoroughly tested my procedure to ensure that it handles every
theoretical situation, but so far it has never failed me in over 10 years of
use.

Excerpt from my LINKLIST doc:
=========================================================================
To dynamically change LNKLST, perform the following steps:               
                                                                         
  1. Display defined linklist sets using console command:                
                                                                         
     DISPLAY PROG,LINKLIST,NAMES                                         
                                                                         
       CSV472I hh.mm.ss LNKLST DISPLAY                                   
       LNKLST SET       LNKLST SET       LNKLST SET       LNKLST SET     
       LNKLST                                                            
                                                                         
     LNKLST is should be the only LNKLST SET. Any others would be due to 
     some manual action, probably an error or incomplete process which   
     should investigated.                                                
                                                                         
  2. Display current linklist set name and data sets using console       
     command:  DISPLAY PROG,LINKLIST                                     
                                                                         
       CSV470I 11.38.13 LNKLST DISPLAY                                   
       LNKLST SET LNKLST   LNKAUTH=LNKLST                                
       ENTRY  APF  VOLUME  DSNAME                                        
          1    A   R160H1  SYS1.LINKLIB                                  
          2    A   R160H1  SYS1.MIGLIB                                   
          2    A   R160H1  SYS1.MIGLIB                                   
          3    A   R160H1  SYS1.CSSLIB                                   
          4    A   W4S101  SYS2.WEB4.LINKLIB.ZOS16                       
          5        SYS113  SYS2.MVS1.CICSTS.SDFHLINK                     
          6    A   SYS103  SYS2.MVS1.DSNHELP.SEOYLOAD                    
       ...                                                               
                                                                         
  3. Backup and update the normal PROGnL member as needed.               
                                                                         
  4. Create temporary linklist by issuing console command:  SET PROG=CT  
                                                                         
     The commands in PROGCT will:                                        
     a. Copy the standard linklist (must be named LNKLST), to new        
        linklist named TEMP.                                             
     b. Activate temporary linklist.                                     
     c. Update all jobs to use the temporary linklist.                   
     d. Delete standard linklist, LNKLST, so that it can be redefined in 
        the next step.                                                   
   * e. You MUST wait for the IEE536I PROG     VALUE CT NOW IN EFFECT    
        message.                                                         
                                                                         
  5. Activate updated linklist, PROGnL, by issuing console command:      
     SET PROG=nL                                                         
                                                                         
     The PROGnL member that you updated should:                          
     a. Redefine the standard linklist named LNKLST.                     
     b. Activate it.                                                     
   * c. You MUST wait for the IEE536I PROG     VALUE xL NOW IN EFFECT    
        message.                                                         
                                                                         
  6. Delete temporary linklist by issuing console command:  SET PROG=DT  
                                                                         
     The commands in PROGDT will:                                        
     a. Update all jobs to use updated linklist, LNKLST.                 
     b. Delete temporary linklist.                                       
   * c. You MUST wait for the IEE536I PROG     VALUE DT NOW IN EFFECT    
        message.                                                         
                                                                         
  7. Cycle LLA to pickup new LNKLST allocations (MODIFY LLA,REFRESH only 
     picks up directory updates and NOT library name changes).           
                                                                         
     STOP LLA                                                            
     START LLA,SUB=MSTR                                                  
=========================================================================


Member PROGCT
/* This member moves LNKLST into TEMP linklist                       */
LNKLST Define Name(TEMP) copyfrom(LNKLST)                              
LNKLST Activate Name(TEMP)                                             
LNKLST Update Job(*)                                                   
LNKLST Undefine Name(LNKLST)                                           


Member PROGDT
/* This member deletes TEMP linklist                                 */
LNKLST Update Job(*)                                                   
LNKLST Undefine Name(TEMP)                                             

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to