Re: Re: Unix "which" command equivalent for MVS ?
Rick Fochtman <[email protected]> Wed, 23 Jun 2010 09:09:53 -0500
| Newsgroups | gmane.comp.emulators.turnkey-mvs |
|---|---|
| Message-ID | <[email protected]> |
The order of search for a program is: JPA --- Programs that are already in your address space TASKLIB (If present) STEPLIB JOBLIB LINKPACK LINKLIST I might have gotten LINKPACK and LINKLIST switched, but this is the basic search order. SVCLIB and NUCLEUS are NOT part of the program search. Whether or not a module might be in FIXED LINKPACK has no bearing on the search mechanism. Type 1 & 2 SVC's are located in the nucleus, while Type 3/4 are located in LINKPACK. I forget where Type 6 SVC code is located. SYS1.SVCLIB usually contains I/O appendages only. Rick -------------------------------------------------------- Michael wrote: > > > > > As far as I remember from MVS it sort of works like this: > > 1) At IPL time you when you R 00 you can specify an alternative spec. > telling the Nucleus Initialization Program (NIP) to use multiple > IEASYSnn members of SYS1.PARMLIB, e.g. R 00,SYSP=(00,01). Otherwise it > defaults to SYS1.PARMLIB(IEASYS00). You generally use this for > testing. In production, usually you just go with the default. > > 2) IEASYSnn in turn tells NIP what PARMLIB members to use to get > specific parameters for SMF, Dump datasets, Performance parameters, > and so on. As regards your question, it includes parameters naming > various lists of modules and libraries and how to handle them: > > - CLPA tells NIP to create the Link Pack Area (LPA) loading the > modules contained in SYS1.LPALIB. When you R 00,CLPA at IPL it tells > the system to rebuild this. This is not a list. > > - FIX lists name modules from SYSY1.SVCLIB, SYS1.LINKLIB and > SYS1.LPALIB to be placed in a fixed LPA which lasts for the life of > the IPL. > > - BLDL or BLDLF list names modules to be placed in a pageable or fixed > BLDL or "Build list". > > - MLPA list names modules to be placed in a temporary LPA extension. > > - LNK lists name libraries to be concatenated with SYS1.LINKLIB when > searching for a program. > > 3) So, when you IPL, it creates what approximates to your UNIX $PATH > for the system, including loading a lot of frequently used routines > into different areas of fixed and pageable storage. Then, when looking > for a routine itself, or when running a job the system looks for > programs in a certain order: > > - Nucleus first, I guess (Type 1 SVC routines have to go here) > - Various Link Pack Areas (fixed, then pageable, etc.) > - SYS1.SVCLIB and SYS1.LINKLIB > - Any other libraries in the Link list > - STEPLIB > - JOBLIB. > > The last two you can specify in JCL. > > For definitive explanations do a web search for "MVS Initialization > and Tuning" and you will find lots to read (you are already doing > this), including various versions of the manual for MVS, MVS/XA, > MVS/ESA OS/390, z/OS, explanations of the order in which things happen > at IPL time, pretty pictures, and many very detailed explanations of > individual parameters and what they do. The "Init and Tuning Guide" is > indispensable for a working MVS systems programmer. > > As far as I know, there's no exact equivalent of $PATH, and no single > way to locate a program the way "which" does, but you could do as as > Gordon has suggested, or run a job to EXEC IDCAMS and do various > lists, or you could write a TSO Clist to do various lists. > > >From web searches, yours is quite a popular request and it looks like > various folks have done things with REXX and Perl to get a solution. > > You might also like to look into the TSO command LIBLIST: > > LIBLIST P(progname) - lists all linklist & LPA libs, and shows > which one has progname in it. > > I can't check this out further myself right now 'cos I am rebuilding > my system. > > Enjoy! > --- In [email protected] > <mailto:turnkey-mvs%40yahoogroups.com>, "Gordon SCOTT" > <gsscottgordon@...> wrote: > > > > Hi there ! > > > > > > > > Simple to to an "LD" of all the progs in your LIBLIST either with > "sserv", > > "lserv" or "pserv". Look at ESA/390 Principles and Operation. I'm > getting > > too old for this ! > > > > > > > > Gordon SCOTT > > Software Engineer & Consultant > > > > 17 rue Professeur Rene Franquet > > 51100 REIMS > > > > Tél : 03 51 85 57 75 > > Mobile : 06 82 14 65 67 > > > > This e-mail, any attachments and the information contained therein > ("this > > message") are confidential and intended solely for the use of the > > addressee(s). If you have received this message in error please send > it back > > to the sender and delete it. Unauthorized publication, use, > dissemination or > > disclosure of this message, either in whole or in part is strictly > > prohibited. > > ********************************************************************** > > Ce message éléctronique et tous les fichiers joints ainsi que les > > informations contenues dans ce message ( ci après "le message" ), sont > > confidentiels et destinés exclusivement l'usage de la personne > laquelle ils > > sont adressés. Si vous avez reçu ce message par erreur, merci de le > renvoyer > > à son émetteur et de le détruire. Toutes diffusion, publication, > totale ou > > partielle ou divulgation sous quelque forme que se soit non expressément > > autorises de ce message, sont interdites. > > ********************************************************************** > > > > > > > > Weinberg's Second Law: If builders built buildings the way > programmers wrote > > programs, the first woodpecker to come along would destroy civilization. > > > > De : [email protected] > <mailto:turnkey-mvs%40yahoogroups.com> > [mailto:[email protected] > <mailto:turnkey-mvs%40yahoogroups.com>] De la > > part de Mike Stramba > > Envoyé : lundi 21 juin 2010 18:22 > > à : [email protected] <mailto:turnkey-mvs%40yahoogroups.com> > > Objet : [turnkey-mvs] Unix "which" command equivalent for MVS ? > > > > > > > > > > > > *nix has a handy command "which". > > > > From the man page : > > > > which [options] [--] programname [...] > > > > Which takes one or more arguments. For each of its arguments it prints > > to stdout the full path of the executables that would have been exe- > > cuted when this argument had been entered at the shell prompt. It does > > this by searching for an executable or script in the directories listed > > in the environment variable PATH using the same algorithm as bash(1). > > > > Is there an equivalent command for MVS? > > > > If not how would I write one? > > > > I'm reading through 'ABC's of System Programming for OS390', and VOl > > #2, Chapter 4 "LPA, LNKLST, authorized libraries", and chapter 1, > > "IPL" have been helpful, in my attempt to understand how MVS searches > > for executables. > > > > There seem to be similarities with it and MVS38j (lnklst ...etc), but > > there are enough differences to pose a few "challenges" ;) > > > > Mike > > > >