Discussion:
Unix "which" command equivalent for MVS ?
Mike Stramba
2010-06-21 16:21:36 UTC
Permalink
*nix has a handy command "which".
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
Kevin Monceaux
2010-06-21 17:19:03 UTC
Permalink
Post by Mike Stramba
Is there an equivalent command for MVS?
There might be a command. If so, I'm not familiar with it. IMON:

http://www.prycroft6.com.au/vs2sw/index.html#imon370

has a BLDL AND LPA SEARCH DISPLAY function.

I hadn't fired up that program in a while. I just gave it a try to jog my
memory and it looks like I need to update the version on my Turnkey system.
I still have the 05/18/2002 version installed, which doesn't seem to like
the latest VTAM USERMODs. It's only displaying the first seven lines of the
display. It looks like that was fixed with the 03/30/2003 release,
according to the changelog.
--
Kevin
http://www.RawFedDogs.net
http://www.WacoAgilityGroup.org
Bruceville, TX

What's the definition of a legacy system? One that works!
Errare humanum est, ignoscere caninum.
Gordon SCOTT
2010-06-21 17:35:47 UTC
Permalink
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 : turnkey-mvs-***@public.gmane.org [mailto:turnkey-mvs-***@public.gmane.org] De la
part de Mike Stramba
Envoyé : lundi 21 juin 2010 18:22
À : turnkey-mvs-***@public.gmane.org
Objet : [turnkey-mvs] Unix "which" command equivalent for MVS ?





*nix has a handy command "which".
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
Michael
2010-06-22 21:36:47 UTC
Permalink
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!
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.
**********************************************************************
programs, the first woodpecker to come along would destroy civilization.
part de Mike Stramba
Envoyé : lundi 21 juin 2010 18:22
Objet : [turnkey-mvs] Unix "which" command equivalent for MVS ?
*nix has a handy command "which".
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
Davis, Ron
2010-06-23 00:42:04 UTC
Permalink
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: turnkey-mvs-***@public.gmane.org [mailto:turnkey-mvs-***@public.gmane.org] On Behalf Of Michael
Sent: Wednesday, June 23, 2010 7:37 AM
To: turnkey-mvs-***@public.gmane.org
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!
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.
**********************************************************************
programs, the first woodpecker to come along would destroy civilization.
part de Mike Stramba
Envoyé : lundi 21 juin 2010 18:22
Objet : [turnkey-mvs] Unix "which" command equivalent for MVS ?
*nix has a handy command "which".
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
Rick Fochtman
2010-06-23 14:09:53 UTC
Permalink
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
--------------------------------------------------------
Post by Michael
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
- 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
- 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.
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!
<mailto:turnkey-mvs%40yahoogroups.com>, "Gordon SCOTT"
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
programs, the first woodpecker to come along would destroy civilization.
<mailto:turnkey-mvs%40yahoogroups.com>
<mailto:turnkey-mvs%40yahoogroups.com>] De la
part de Mike Stramba
Envoyé : lundi 21 juin 2010 18:22
Objet : [turnkey-mvs] Unix "which" command equivalent for MVS ?
*nix has a handy command "which".
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
Gordon SCOTT
2010-06-23 16:31:32 UTC
Permalink
I forgot to say that pser,lserv,cserv are all utilities for DOS/VSE… Are
they on the CBTapes ?



Best regards



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.
**********************************************************************



I wish I could feel it with you.

De : turnkey-mvs-***@public.gmane.org [mailto:turnkey-mvs-***@public.gmane.org] De la
part de Rick Fochtman
Envoyé : mercredi 23 juin 2010 16:10
À : turnkey-mvs-***@public.gmane.org
Objet : Re: [turnkey-mvs] Re: Unix "which" command equivalent for MVS ?





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!
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.
**********************************************************************
programs, the first woodpecker to come along would destroy civilization.
[mailto:turnkey-mvs-***@public.gmane.org <mailto:turnkey-mvs%40yahoogroups.com> ]
De la
part de Mike Stramba
Envoyé : lundi 21 juin 2010 18:22
Objet : [turnkey-mvs] Unix "which" command equivalent for MVS ?
*nix has a handy command "which".
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
Mike Stramba
2010-06-23 16:52:46 UTC
Permalink
Post by Gordon SCOTT
I forgot to say that pser,lserv,cserv are all utilities for DOS/VSE
Which relates to *MVS* ... how ?? ;)
Post by Gordon SCOTT
I forgot to say that pser,lserv,cserv are all utilities for DOS/VSE… Are
they on the CBTapes ?
Best regards
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.
**********************************************************************
I wish I could feel it with you.
part de Rick Fochtman
Envoyé : mercredi 23 juin 2010 16:10
Objet : Re: [turnkey-mvs] Re: Unix "which" command equivalent for MVS ?
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
--------------------------------------------------------
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
- 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
- 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.
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!
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
programs, the first woodpecker to come along would destroy civilization.
De la
part de Mike Stramba
Envoyé : lundi 21 juin 2010 18:22
Objet : [turnkey-mvs] Unix "which" command equivalent for MVS ?
*nix has a handy command "which".
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
------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/turnkey-mvs/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/turnkey-mvs/join
(Yahoo! ID required)

<*> To change settings via email:
turnkey-mvs-digest-***@public.gmane.org
turnkey-mvs-fullfeatured-***@public.gmane.org

<*> To unsubscribe from this group, send an email to:
turnkey-mvs-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Rick Fochtman
2010-06-23 19:38:10 UTC
Permalink
Nope. the CBTTAPE web site is for MVS stuff.

Rick

I note that you're located in Reims. Could you contact me privately please?
-------------------------------------------------------------------
I forgot to say that pser,lserv,cserv are all utilities for DOS/VSE...
Are they on the CBTapes ?
Best regards
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.
**********************************************************************
I wish I could feel it with you.
De la part de Rick Fochtman
Envoyé : mercredi 23 juin 2010 16:10
Objet : Re: [turnkey-mvs] Re: Unix "which" command equivalent for MVS ?
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
--------------------------------------------------------
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
- 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
- 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.
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!
<mailto:turnkey-mvs%40yahoogroups.com>, "Gordon SCOTT"
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
programs, the first woodpecker to come along would destroy
civilization.
<mailto:turnkey-mvs%40yahoogroups.com>
<mailto:turnkey-mvs%40yahoogroups.com>] De la
part de Mike Stramba
Envoyé : lundi 21 juin 2010 18:22
<mailto:turnkey-mvs%40yahoogroups.com>
Objet : [turnkey-mvs] Unix "which" command equivalent for MVS ?
*nix has a handy command "which".
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
Gordon SCOTT
2010-06-24 13:29:08 UTC
Permalink
OK,



I’ll work on a TSO CLIST to try and reply to you. It’s a shame that REXX is
not available yet ! Might be soon.



Best regards



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.
**********************************************************************



Civilization is a little citadel of light in a malignant sea of darkness.

De : turnkey-mvs-***@public.gmane.org [mailto:turnkey-mvs-***@public.gmane.org] De la
part de Rick Fochtman
Envoyé : mercredi 23 juin 2010 21:38
À : turnkey-mvs-***@public.gmane.org
Objet : Re: [turnkey-mvs] Re: Unix "which" command equivalent for MVS ?





Nope. the CBTTAPE web site is for MVS stuff.

Rick

I note that you're located in Reims. Could you contact me privately please?
-------------------------------------------------------------------
Gordon SCOTT wrote:



I forgot to say that pser,lserv,cserv are all utilities for DOS/VSE… Are
they on the CBTapes ?



Best regards



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.
**********************************************************************



I wish I could feel it with you.

De : turnkey-mvs-***@public.gmane.org [mailto:turnkey-mvs-***@public.gmane.org] De la
part de Rick Fochtman
Envoyé : mercredi 23 juin 2010 16:10
À : turnkey-mvs-***@public.gmane.org
Objet : Re: [turnkey-mvs] Re: Unix "which" command equivalent for MVS ?





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!
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.
**********************************************************************
programs, the first woodpecker to come along would destroy civilization.
[mailto:turnkey-mvs-***@public.gmane.org <mailto:turnkey-mvs%40yahoogroups.com> ]
De la
part de Mike Stramba
Envoyé : lundi 21 juin 2010 18:22
Objet : [turnkey-mvs] Unix "which" command equivalent for MVS ?
*nix has a handy command "which".
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
kerravon86
2010-06-30 00:48:40 UTC
Permalink
I'll work on a TSO CLIST to try and reply to you.
It's a shame that REXX is not available yet ! Might
be soon.
BREXX has been ported to MVS 3.8j, and available as
part of SEASIK 1.0. The BREXX port to DOS/VS is
currently waiting on about 1000 lines of assembler
to be written, but there is a separate DOSVS group
if you wish to discuss that. Come to think of it,
simple REXX programs can probably be made to work
even without the assembler being available.

BFN. Paul.

Continue reading on narkive:
Search results for 'Unix "which" command equivalent for MVS ?' (Questions and Answers)
15
replies
different kinds of operating system?
started 2006-06-21 18:03:50 UTC
homework help
Loading...