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