How to do a 3.14 on multiple libraries

144 views
Skip to first unread message

Bob Bridges

unread,
Dec 14, 2018, 3:29:19 PM12/14/18
to ispf-...@nd.edu
I'd like to write a REXX that'll fetch a list of libraries concatenated to a particular DD name - ISPSLIB, SYSPROC, whatever - and then search each library in that concatenation for a specified character string. Like a 3.14, only with multiple PDSs rather than just one. I just looked in the ISPF Services Guide and didn't see a likely candidate. Can anyone steer me in the right direction? I could tell the REXX to search each member individually, but I expect it would take a while to run; if there's something built into ISPF it's probably much faster. (In fact, rather than a REXX built that way it'd probably run faster to have my emulation app do it.)

---
Bob Bridges, cell 336 382-7313
robhb...@gmail.com
rbri...@InfoSecInc.com

/* It is amazing how reading the whole Bible can affect some eschatology. -Rick Joyner, October 2018. */

Mark Zelden

unread,
Dec 14, 2018, 3:35:54 PM12/14/18
to ispf-...@nd.edu
Already can do it interactively with "TSO ISRDDN", or if you have the default
command table in place (or one not too old) you can use the "DDLIST"command
from the command line.   See help for details of how to search, but it is simple.
After the list comes up you type (for example):

M ISR@PRIM ISPPLIB

M is short for "MEMBER" 

Best Regards,

Mark
--
Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS
ITIL v3 Foundation Certified
mailto:ma...@mzelden.com
Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html
Systems Programming expert at http://search390.techtarget.com/ateExperts/

--
You received this message because you are subscribed to the Google Groups "ISPF discussion list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ispf-l-list...@nd.edu.
To post to this group, send email to ispf-...@nd.edu.

Frank Clarke

unread,
Dec 14, 2018, 3:39:33 PM12/14/18
to ispf-...@nd.edu

You may need to add other components found on that site.  In particular, much of the contents of REXXSKEL must be added after the end of "DEIMBED" and before the ISPF assets that follow.

Frank Clarke



From: Bob Bridges <robhb...@gmail.com>
To: ispf-...@nd.edu
Sent: Friday, December 14, 2018 3:29 PM

Subject: [ISPF-L] How to do a 3.14 on multiple libraries
--
You received this message because you are subscribed to the Google Groups "ISPF discussion list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ispf-l-list+unsub...@nd.edu.

Bob Bridges

unread,
Dec 14, 2018, 3:42:43 PM12/14/18
to ispf-...@nd.edu

I’ll look, but ISRDDN is a panel app; it’ll show me all the PDSs attached to a DD, but then I’d have to search each PDS manually, right?  As I said, I want to write a REXX to do it.  That is, I want to issue a command something like this:

 

tso ddfind sysexec findstr

 

...and have the DDFIND command search all the PDSs concatenated to SYSEXEC and tell me which members in each PDS contain a string “findstr”.  Likewise you speak of using the DDLIST command from the command line, and typing something after the list comes up.

 

I’ll look, though; maybe I can adapt it to what I want to do.  Thanks.

 

/* Cats consent to love us.  Dogs beg to love us.  -Cathryn Michon, Grrl Genius */

 

From: ispf-...@nd.edu [mailto:ispf-...@nd.edu] On Behalf Of Mark Zelden
Sent: Friday, December 14, 2018 15:35

 

Already can do it interactively with "TSO ISRDDN", or if you have the default

command table in place (or one not too old) you can use the "DDLIST"command

from the command line.   See help for details of how to search, but it is simple.

After the list comes up you type (for example):

 

M ISR@PRIM ISPPLIB

 

M is short for "MEMBER" 

 

-------- Original Message --------
Subject: [ISPF-L] How to do a 3.14 on multiple libraries
Date: Fri, December 14, 2018 2:29 pm

Mark Zelden

unread,
Dec 14, 2018, 3:58:56 PM12/14/18
to ispf-...@nd.edu
Yes, it is interactive.   No you don't have to search each library individually, in my example
it searches the ISPPLIB concatenation.  If you leave off a DDNAME it will search all
libraries allocated to your TSO / ISPF session.  If you type LNK or LPA, it adds that
to the list and will search those also. 

Best Regards,

Mark
--
Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS
ITIL v3 Foundation Certified
mailto:ma...@mzelden.com
Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html
Systems Programming expert at http://search390.techtarget.com/ateExperts/

--
You received this message because you are subscribed to the Google Groups "ISPF discussion list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ispf-l-list...@nd.edu.

Horne, Jim - James S

unread,
Dec 14, 2018, 4:03:54 PM12/14/18
to ispf-...@nd.edu

I thought DDLIST could only find member names, not strings within individual members

NOTICE: All information in and attached to the e-mails below may be proprietary, confidential, privileged and otherwise protected from improper or erroneous disclosure. If you are not the sender's intended recipient, you are not authorized to intercept, read, print, retain, copy, forward, or disseminate this message. If you have erroneously received this communication, please notify the sender immediately by phone (704-758-1000) or by e-mail and destroy all copies of this message electronic, paper, or otherwise.

By transmitting documents via this email: Users, Customers, Suppliers and Vendors collectively acknowledge and agree the transmittal of information via email is voluntary, is offered as a convenience, and is not a secured method of communication; Not to transmit any payment information E.G. credit card, debit card, checking account, wire transfer information, passwords, or sensitive and personal information E.G. Driver's license, DOB, social security, or any other information the user wishes to remain confidential; To transmit only non-confidential information such as plans, pictures and drawings and to assume all risk and liability for and indemnify Lowe's from any claims, losses or damages that may arise from the transmittal of documents or including non-confidential information in the body of an email transmittal. Thank you.

Andreas Fischer

unread,
Dec 14, 2018, 4:10:23 PM12/14/18
to ispf-...@nd.edu
well i use the QBASELIB command to retrieve the data set names for a specified DDNAME. actually i'm generating JCL with PGM=ISRSUPC then for searching, but if i remember correctly, you can call ISRSUPC in a REXX exec as well, can't you?

regards,
andi


ispf-...@nd.edu schrieb am 14.12.2018 21:29:04:

> Von: "Bob Bridges" <robhb...@gmail.com>

Mark Zelden

unread,
Dec 14, 2018, 4:10:35 PM12/14/18
to ispf-...@nd.edu
Oops!   My apologies, somehow I missed that he was looking for a string search
and thought he was looking for a member name search. 

My only excuse is.. it's Friday.  :-)
---
Bob Bridges, cell 336 382-7313
 
/* Cats consent to love us.  Dogs beg to love us.  -Cathryn Michon, Grrl Genius */
 
From: ispf-...@nd.edu [mailto:ispf-...@nd.edu] On Behalf Of Mark Zelden
Sent: Friday, December 14, 2018 15:35
 
Already can do it interactively with "TSO ISRDDN", or if you have the default
command table in place (or one not too old) you can use the "DDLIST"command
from the command line.   See help for details of how to search, but it is simple.
After the list comes up you type (for example):
 
M ISR@PRIM ISPPLIB
 
M is short for "MEMBER" 
 
-------- Original Message --------
Subject: [ISPF-L] How to do a 3.14 on multiple libraries
Date: Fri, December 14, 2018 2:29 pm

I'd like to write a REXX that'll fetch a list of libraries concatenated to a particular DD name - ISPSLIB, SYSPROC, whatever - and then search each library in that concatenation for a specified character string. Like a 3.14, only with multiple PDSs rather than just one. I just looked in the ISPF Services Guide and didn't see a likely candidate. Can anyone steer me in the right direction? I could tell the REXX to search each member individually, but I expect it would take a while to run; if there's something built into ISPF it's probably much faster. (In fact, rather than a REXX built that way it'd probably run faster to have my emulation app do it.)
--
You received this message because you are subscribed to the Google Groups "ISPF discussion list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ispf-l-list...@nd.edu.
To post to this group, send email to ispf-...@nd.edu.
--
You received this message because you are subscribed to the Google Groups "ISPF discussion list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ispf-l-list...@nd.edu.
To post to this group, send email to ispf-...@nd.edu.
NOTICE: All information in and attached to the e-mails below may be proprietary, confidential, privileged and otherwise protected from improper or erroneous disclosure. If you are not the sender's intended recipient, you are not authorized to intercept, read, print, retain, copy, forward, or disseminate this message. If you have erroneously received this communication, please notify the sender immediately by phone (704-758-1000) or by e-mail and destroy all copies of this message electronic, paper, or otherwise.

By transmitting documents via this email: Users, Customers, Suppliers and Vendors collectively acknowledge and agree the transmittal of information via email is voluntary, is offered as a convenience, and is not a secured method of communication; Not to transmit any payment information E.G. credit card, debit card, checking account, wire transfer information, passwords, or sensitive and personal information E.G. Driver's license, DOB, social security, or any other information the user wishes to remain confidential; To transmit only non-confidential information such as plans, pictures and drawings and to assume all risk and liability for and indemnify Lowe's from any claims, losses or damages that may arise from the transmittal of documents or including non-confidential information in the body of an email transmittal. Thank you.

Lizette Koehler

unread,
Dec 14, 2018, 5:44:57 PM12/14/18
to ispf-...@nd.edu

One trick I use, I go to 3.14

 

I think select the option at the bottom to run in BATCH not FOREGROUND.

 

It builds the JCL and I can concatenate what I want.  I can then use that as an example on how to do it through other mechanisms.

 

 

Lizette

Paul Gilmartin

unread,
Dec 14, 2018, 6:27:22 PM12/14/18
to ispf-...@nd.edu
On 2018-12-14, at 13:29:04, Bob Bridges wrote:

> I'd like to write a REXX that'll fetch a list of libraries concatenated to a particular DD name - ISPSLIB, SYSPROC, whatever - and then search each library in that concatenation for a specified character string. Like a 3.14, only with multiple PDSs rather than just one. I just looked in the ISPF Services Guide and didn't see a likely candidate. Can anyone steer me in the right direction? I could tell the REXX to search each member individually, but I expect it would take a while to run; if there's something built into ISPF it's probably much faster. (In fact, rather than a REXX built that way it'd probably run faster to have my emulation app do it.)
>
Use BPXWDYN( 'INFO ...' ) to find the data sets associated with a DDNAME, then
use ISRSUPC on each.

(Untested)

-- gil

Pedro Vera

unread,
Dec 14, 2018, 6:40:44 PM12/14/18
to ISPF discussion list
>>  One trick I use, I go to 3.14  ...   It builds the JCL and I can concatenate what I want.

To do your search, you can call SUPERC from rexx as Lizzette implies.  Also, you can concatenate your datasets to NEWDD and SUPERC will search each one individually and the report will tell you which member the text was found and which data set the member was in.

I use these parms when calling SUPERC:
"SRCHCMP,ANYC,SDUPM"

SDUPM shows duplicate members if your search text was found in the same member name in different data sets.  Otherwise, it only reports the first data set for that member.

Here is an example of calling from rexx:
parm2 = "SRCHCMP,ANYC,SDUPM"
Address LINKMVS "ISRSUPC PARM2"
 
The post described getting the data set names of existing concatenation...  you can use bpxwdyn from rexx to get the concatenation.   I recall that bpxwdyn can also concatenate two file allocations, so maybe you can figure out how to just concatenate SYSPROC, for example to a blank NEWDD file (which is used by SUPERC).

Paul Gilmartin

unread,
Dec 14, 2018, 6:48:39 PM12/14/18
to ispf-...@nd.edu
On 2018-12-14, at 16:40:43, Pedro Vera wrote:

> >> One trick I use, I go to 3.14 ... It builds the JCL and I can concatenate what I want.
>
> To do your search, you can call SUPERC from rexx as Lizzette implies. Also, you can concatenate your datasets to NEWDD and SUPERC will search each one individually and the report will tell you which member the text was found and which data set the member was in.
>
Does this work if the concatenation includes UNIX directories?

> ...
> The post described getting the data set names of existing concatenation... you can use bpxwdyn from rexx to get the concatenation. I recall that bpxwdyn can also concatenate two file allocations, so maybe you can figure out how to just concatenate SYSPROC, for example to a blank NEWDD file (which is used by SUPERC).
>
Or, use BPXWDYN( 'INFO ...' ) to enumerate the data sets, then build
a similar NEWDD.

-- gil

Pedro Vera

unread,
Dec 14, 2018, 7:04:38 PM12/14/18
to ISPF discussion list
>> Does this work if the concatenation includes UNIX directories?

I doubt that a UNIX directory will work.  I do not have mainframe access anymore, so I cannot verify.

Paul Gilmartin

unread,
Dec 14, 2018, 8:42:47 PM12/14/18
to ispf-...@nd.edu
On 2018-12-14, at 17:04:38, Pedro Vera wrote:

> >> Does this work if the concatenation includes UNIX directories?
>
> I doubt that a UNIX directory will work. I do not have mainframe access anymore, so I cannot verify.
>
I've learned to trust your intuition on such matters, despite:
z/OS IBM DFSMS Using Data Sets
Version 2 Release 3 SC23-6855-30
...
Partitioned Concatenation
Concatenated PDSs are processed with a DSORG=PO in the DCB. When PDSs
are concatenated, the system treats the group as a single data set.
A partitioned concatenation can contain a mixture of PDSs, PDSEs,
and UNIX directories. Partitioned concatenation is supported only when
the DCB is open for input.

Note "... and UNIX directories." I wonder why IBM is satisfied with such a
half-hearted implementation. Likewise, search IBM doc for DESERV and UNIX.

-- gil

Pedro Vera

unread,
Dec 15, 2018, 3:58:01 PM12/15/18
to ISPF discussion list
>>  concatenation can contain a mixture of PDSs, PDSEs, and UNIX directories.

Someone should try it.  Support for UNIX directories have changed over time and my recollection might be out-of-date.


>> I've learned to trust your intuition on such matters

Thanks for your confidence.    

Paul Gilmartin

unread,
Dec 15, 2018, 5:49:36 PM12/15/18
to ispf-...@nd.edu
On 2018-12-14, at 16:40:43, Pedro Vera wrote:
>
> The post described getting the data set names of existing concatenation... you can use bpxwdyn from rexx to get the concatenation. I recall that bpxwdyn can also concatenate two file allocations, so maybe you can figure out how to just concatenate SYSPROC, for example to a blank NEWDD file (which is used by SUPERC).
>
There's considerable motivation here for an RFE that ISRSUPC should honor
an alternate DDNAME list as conventional utilities do.
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.idau100/u1245.htm

... then one could just run ISRUPC against SYSPROC, for example, rather
than allocating a new DDNAME.

-- gil

Reply all
Reply to author
Forward
0 new messages