On Thu, May 3, 2018 at 8:23 AM, Steve Horein <[email protected]> wrote:

> Is there a practical limit to the number of dynamic LNKLST sets created?
>
> I find myself in a position to deploy two products upgrades, both requiring
> new data sets in LNKLST (either new names, or under-sizing issues). To
> accommodate implementation and back out processes, I would like to come up
> with a naming convention for the LNKLST sets that includes a numeric
> suffix, such that if product "A" is introduced first, the new set name is
> LNKLST01. When product "B" is introduced, set name LNKLST02 is defined. If
> product "A" requires back out, LNKLST03 is defined. If product "B" requires
> back out, LNKLST04 is defined, etc, etc, rinse, repeat. I honestly doubt
> there would ever be need to extend past "LNKLST99", or even "LNKLST09", but
> knowing a limitation (if one exists) will help shape a standard. Is hex
> representation acceptable, allowing from 01-FF sets? Does decimal
> representation, allowing from 01-99 sets exceed a limit?
>
> If the maximum number of LNKLST sets is defined somewhere, my apologies for
> not seeing it!
>
>
​The names are effectively unlimited. From the book at
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.ieae200/linsyn.htm

====

NAME(name)The name of the LNKLST set that you want to specify. Naming
conventions are as follows:

   - You can specify from 1 to 16 characters for name.
   - You can use alphanumerics, underscores, periods, and #, $, or @.
   - Do not use imbedded blanks.
   - Do not use the names CURRENT or IPL. The system uses CURRENT to mean
   the current LNKLST set and IPL to mean LNKLST information specified in
   SYS1.PARMLIB member LNKLSTxx.
   - Do not begin the name with SYS. SYS is reserved for IBM® use.



====​

​If you want to calculate that, there are 31 valid symbols. So there are
36^1 single character names; 36^2​ double characters; up to 36^16 (~8E24).
So sum those up and you'll know the theoretical limit. You'll run out of
ECSA (or wherever the z/OS control blocks are built) long before then.

Now, I am pretty sure that you can do an second ACTIVATE on a previously
defined LNKLST. So assume the following:

LNKLST00 - name at IPL.
LNKLST01 - Install Product "A" (only)
LNKLST02 - Install Product "B" with product "A"
LNKLST03  - Install Product "B" (only, no "A")

SETPROG LNKLST,ACTIVATE,NAME=LNKLST00 - Do this to remove both product "A"
and "B"
SETPROG LNKLST,ACTIVATE,NAME=LNKLST01 - Do this to install "A"
SETPROG LNKLST,ACTIVATE,NAME=LNKLST02 - Add "B" while leaving "A"
SETPROG LNKLST,ACTIVATE,NAME=LNKLST03 - Leave "B" while removing "A"
SETPROG LNKLST,UNDEFINE,NAME=LNKLST01 - Remove "A" only LNKLST (fails if
LNKLST is in use by some address space)
SETPROG LNKLST,UNDEFINE,NAME=LNKLST02 - Remove "B" only LNKLST (see comment
above)

-- after the above LNKLST01 & LNKLST02 are _gone_, unless some address
space is using them. This means that the name can be reused!


--- Fixed Product "A" and reuse the same LNKLST name as above for
consistency.
SETPROG LNKLST,ACTIVATE,NAME=LNKLST02 - Add "A" while leaving "B".

SETPROG LNKLST,ACTIVATE,NAME=LNKLST01 - Leave "A" while removing "B"


and so on.


-- 
We all have skeletons in our closet.
Mine are so old, they have osteoporosis.

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to