RE: Re: Unix "which" command equivalent for MVS ? [TOBECLASSIFIED] [SEC=UNOFFICIAL]
"Davis, Ron" <[email protected]> Wed, 23 Jun 2010 10:42:04 +1000
| Newsgroups | gmane.comp.emulators.turnkey-mvs |
|---|---|
| Message-ID | <[email protected]> |
Michael said... ------------------------------------------------------------------------------------------------------- 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. ------------------------------------------------------------------------------------------------------- I don't believe this is correct. STEPLIBs then JOBLIBs will be searched first, then the others in order. Cheers Ron ________________________________ From: [email protected] [mailto:[email protected]] On Behalf Of Michael Sent: Wednesday, June 23, 2010 7:37 AM To: [email protected] Subject: [turnkey-mvs] Re: Unix "which" command equivalent for MVS ? [TO BE CLASSIFIED] 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 >