If the intent is to make a permanent change for one user, or a subset of
users, there are two ways this is typically done:
(1) Define additional logon procs with the appropriately different DD
statements, or
(2) put the minimal possible allocations in the logon proc and have the
logon proc EXEC include a parm to begin execution with an installation
REXX exec which allocates all of the ISPF-related datasets. The EXEC
can be sensitive to userid, associated RACF groups, or whatever criteria
makes sense to perform different allocations for different users.
Unless your installation has software that supports dynamic STEPLIB
allocation, you may still have cases where you need multiple logon PROCs
if sometimes different STEPLIBs are needed.
There is no reason why all users have to use a single logon proc, or for
that matter why a single user can't be authorized to use multiple logon
procs.
For temporary allocation of additional libraries to the standard ISPF
concatenations, the usual way this is done is to invoke the ISPF
application with a REXX exec that adds the additional libraries with
ISPFEXEC LIBDEF commands and run the application under a unique ISPF
APPL ID. This allows the LIBDEFs to be unstacked when the application
exits.
It is also possible to reallocate things like ISPxLIB dynamically by
using "REUSE" and reallocating with all the old concatenations plus your
new one. This requires a REXX EXEC that first determines and saves the
existing allocation concatenation list, adds a dataset to the list, and
then allocates with "REUSE" and all the datasets. This technique would
not normally be used except in some testing scenarios, because the
overhead of this technique is considerably higher than the provided
mechanism of using LIBDEF.
JC Ewing
On 10/11/2009 09:24 PM, bububut wrote:
> Thanks a lot for all your support!
>
> Hi Steve - I'm now in Shanghai, China and yes I'm talking about zOS.
>
> For your better understanding, I'm following the steps listed here:
> <http://www-03.ibm.com/servers/eserver/zseries/zos/sdsf/tools/sdsfrexx.html>
> in step 2, it says "Concatenate the panel data set to ISPPLIB and the
> skeleton data set to ISPSLIB."
>
> In my envrionment, ISPPLIB is allocated by a DD name in my logon
> procedure. So I think the context we are talking about is my user
> address space. When in ISPF, I can use command DDLIST to see the
> ISPPLIB ddname and several data sets in its concatenation, now I just
> want to add another one into them.
>
> The problem is I don't want to change the logon procedure - it is
> shared by many other users. Then I tried 'ALLOCATE F(ISPPLIB)
> DA('xxxxx') SHR' but still doesn't work. It seems that ALLOCATE will
> firstly deallocate the original ddname and then allocate again with
> the new data set. And it tells me that "FILE ISPPLIB NOT UNALLOCATED,
> DATA SET IS OPEN".
>
> So I just want to add a data set into the ISPPLIB concatenation while
> giving no influence on any other data sets already there. Hope that
> I've made my question clear ~
>
> Thanks,
> Wei
>
>
>
> On Sun, Oct 11, 2009 at 8:50 PM, Steve Comstock
> <[email protected]> wrote:
>> bububut wrote:
>>>
>>> Hi All,
>>>
>>> I am new to Mainframe (get to learn Mainframe about 3 months ago). I
>>> find it amazing and interesting exploring the mf world. But I have met
>>> many problems as well. Lucky to find here to put my questions^
>>>
>>> One of them is: How to add (or remove) libraries to an existed dataset
>>> concatenation? I do not want to disturb other libraries already in the
>>> concatenation. Is there any command or utility that can do this?
>>>
>>> Thanks in advance for your help!
>>>
>>> Wei
>>
>> Welcome to the mainframe world, Wei. Where are you
>> located? It's nice to know there are people jumping
>> into the z/OS world (I assume you are talking about
>> z/OS, but you need to be aware that there are a
>> number of mainframe operating systems and it's
>> always a good idea to specify which one you are
>> talking about).
>>
>> Your question is a little odd because you did not
>> specify a context. Data sets in and of themselves
>> do not exist in a concatenation. But when you run
>> a job or started task it is usually done using
>> JCL; in JCL you can concatenate a string of data sets
>> to belong under the grouping of a single DD name: but
>> that is only in the context of that job or task.
>>
>> You can create a concatenation dynamically with
>> the TSO allocate command or calls to various system
>> services; again, such a concatenation exists only
>> in the context of the program issuing the command
>> or calls.
>>
>> Under z/OS UNIX in some situations (e.g., the STEPLIB
>> environment variable) you can create a concatenation
>> of libraries. But, once again, the concatenation only
>> has signficance to the process where the environment
>> variable is used.
>>
>> How you change a concatenation depends on how the
>> concatenation is built: by JCL, by commands. or by
>> setting an environment variable.
>>
>> Given that, can you tell us more specifically what
>> you are after?
>>
>>
>> --
>>
>> Kind regards,
>>
>> -Steve Comstock
>> The Trainer's Friend, Inc.
...
--
Joel C. Ewing, Fort Smith, AR [email protected]
----------------------------------------------------------------------
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