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.
4. Update PROGxx member that created the "source" LNKLST (the one used by
IPL). We have separate PROGxx members for LNKLST, APF, & EXIT.
5. Re-create updated LNKLST with SET PROG=xx.
6. Switch back to updated LNKLST set using SET PROG=DT
a. Force everyone to use updated LNKLST set.
b. Delete temporary LNKLST set.
7. 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 [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html