IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

DSLIST in batch?


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
DaveV

New User


Joined: 12 Apr 2016
Posts: 7
Location: United States

PostPosted: Wed Oct 13, 2021 8:07 pm
Reply with quote

Hi all - is there a simple way to capture the output of 3.4 (DSLIST) in batch? I know how to run LISTCAT and am aware of DCOLLECT as well, but what I am looking for is to produce a simple list of ALL datasets on our system in a simple linear format that I can download to a text file on the PC. The DSN names would be sufficient, but date created/date referenced would be nice as well. Any thoughts/responses appreciated! icon_smile.gif
Back to top
View user's profile Send private message
Joerg.Findeisen

Active Member


Joined: 15 Aug 2015
Posts: 751
Location: Bamberg, Germany

PostPosted: Wed Oct 13, 2021 8:24 pm
Reply with quote

See ibmmainframes.com/about68154.html
Back to top
View user's profile Send private message
DaveV

New User


Joined: 12 Apr 2016
Posts: 7
Location: United States

PostPosted: Wed Oct 13, 2021 8:37 pm
Reply with quote

Is there another way besides REXX?
Back to top
View user's profile Send private message
sergeyken
Warnings : 2

Senior Member


Joined: 29 Apr 2008
Posts: 1425

PostPosted: Wed Oct 13, 2021 10:59 pm
Reply with quote

DaveV wrote:
Hi all - is there a simple way to capture the output of 3.4 (DSLIST) in batch? I know how to run LISTCAT and am aware of DCOLLECT as well, but what I am looking for is to produce a simple list of ALL datasets on our system in a simple linear format that I can download to a text file on the PC. The DSN names would be sufficient, but date created/date referenced would be nice as well. Any thoughts/responses appreciated! icon_smile.gif

Use either DSLIST, or LISTCAT, or DCOLLECT, - whatever works for you, and then process its output using any utility like SYNCSORT/DFSORT. You may be satisfied.
Back to top
View user's profile Send private message
sergeyken
Warnings : 2

Senior Member


Joined: 29 Apr 2008
Posts: 1425

PostPosted: Thu Oct 14, 2021 12:33 am
Reply with quote

Again, and again, and again:

This topic has nothing to do with neither JCL, nor VSAM.
Back to top
View user's profile Send private message
Joerg.Findeisen

Active Member


Joined: 15 Aug 2015
Posts: 751
Location: Bamberg, Germany

PostPosted: Thu Oct 14, 2021 3:46 am
Reply with quote

DaveV wrote:
Is there another way besides REXX?

File #112 from CBTTAPE.ORG for ex.
Back to top
View user's profile Send private message
Pete Wilson

Active Member


Joined: 31 Dec 2009
Posts: 540
Location: London

PostPosted: Tue Oct 19, 2021 2:34 pm
Reply with quote

There's various OEM products out there that could do this so you you should check with your Storage or Sysprog team, or perhaps your Performance team to see what is available in your site.

NOTE: Including creation and last reference dates means accessing the physical volumes to get that which will make it take a lot longer than just a catalog search for names only.
Back to top
View user's profile Send private message
Joerg.Findeisen

Active Member


Joined: 15 Aug 2015
Posts: 751
Location: Bamberg, Germany

PostPosted: Wed Oct 20, 2021 10:24 am
Reply with quote

Basically you can also use NAVIQUEST (ISMF in Batch), although it might take ages to complete on large installations.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 918
Location: The Universe

PostPosted: Sun Jan 02, 2022 11:23 pm
Reply with quote

Is something like this what you have in mind?
Code:
VOLUME RECFM LRECL BLKSZ DSORG CREDT  XPIRDT  LASTREF  ALLOC   USED  DATA SET NAME
XXX003 FB       80  3120  PS  15OCT21 -----   02JAN22               XXXXXX.DSLIST.ASM
XXXSTG VBM     137 27998  PS  04NOV21 -----   02JAN22               XXXXXX.DSLIST.ASMLIST
XXX006 VB      255  3120  PS  18OCT21 -----   02JAN22               XXXXXX.DSLIST.CLIST
XXXSTG U         0 32760  PO  04NOV21 -----   02JAN22               XXXXXX.DSLIST.LOAD
XXX004 FB       80 27920  PS  04NOV21 -----   02JAN22               XXXXXX.DSLIST.OBJ
XXXSTG VB     4100 27998  PS  04NOV21 -----   02JAN22               XXXXXX.DSLIST.PCLIST
XXX006 VBA     125 27998  PS  13NOV21 -----   28DEC21               XXXXXX.DSLIST.XXXXXX.SYSPRINT
XXX006 VBA     125 27998  PS  01JAN22 -----   02JAN22               XXXXXX.DSLIST.SYSPRINT

The code to calculate allocated & used space is not in the program yet, along with a lot of other code. I think the hard part - calling IGGCSI00 and analyzing its output - seems to be working reliably
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 918
Location: The Universe

PostPosted: Tue Jan 11, 2022 5:48 am
Reply with quote

The batch DSLIST program is ready for evaluation. Send me, steve-myers, a PM with your E-mail, and I'll send you a file consisting of a unloaded PDS containing an evaluation copy of the program. They have made it moderately difficult to get to the PM page. From the home page of the web site, click on the Forum link. On that page click on the PM link. This link uses awfully small characters and it's hard to see.

I do ask that you install it, try it, and let me know about any issues you have. I won't promise to correct them, but I'll try. The final distribution will be through cbttape.org.
Back to top
View user's profile Send private message
Joerg.Findeisen

Active Member


Joined: 15 Aug 2015
Posts: 751
Location: Bamberg, Germany

PostPosted: Tue Jan 11, 2022 7:06 am
Reply with quote

@Steve: I personally would change the order of the columns. DSN Volume..
Q: What do you do with Multi Volume Datasets? ISPF displays a plus sign after the volume name.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 918
Location: The Universe

PostPosted: Tue Jan 11, 2022 8:44 pm
Reply with quote

I deliberately chose to put the data set name on the right, for two reasons:

- Since the output is VBA, the SYSPRINT data set will be smaller. The program truncates the output line at the end of the data set name.
- Most testing was done in TSO, so all of the data set attributes, which represents quite a lot of code, was readily available on the terminal.

I will look into your idea about multi-volume data sets. This is not trivial, especially if the data set is the object of an alias as the alias name follows the volume list.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 918
Location: The Universe

PostPosted: Wed Jan 19, 2022 12:07 am
Reply with quote

The offer of an evaluation copy of DSLIST for batch has been withdrawn; there have been no takers.

Some time in the next month it will appear in CBT tape. I will announce its availability in this thread.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 918
Location: The Universe

PostPosted: Thu Jan 20, 2022 8:37 pm
Reply with quote

DSLIST is now available on cbttape.org. It is "file" 1025.

It is distributed in source, so the proposal to rearrange the output line can be easily accomplished.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 918
Location: The Universe

PostPosted: Fri Jan 21, 2022 11:26 pm
Reply with quote

Joerg.Findeisen wrote:
@Steve: I personally would change the order of the columns. DSN Volume..
Q: What do you do with Multi Volume Datasets? ISPF displays a plus sign after the volume name.


Apply this update to the source in CBT File 1025 -
Code:
./ CHANGE NAME=DSLIST,NEW=PS
./ NUMBER INSERT=YES,SEQ1=02070000,NEW1=02150000,INCR=1000
*   V1L0a January 2022
*    - Change order of SYSPRINT output
./ NUMBER INSERT=YES,SEQ1=26730000,NEW1=26810000,INCR=1000
NA9000   LA    14,DUSED+L'DUSED    Compute address of the end of the  ->
                                    detail line
./ DELETE SEQ1=26820000,SEQ2=26820000
./ NUMBER INSERT=YES,SEQ1=80640000,NEW1=80641000,INCR=1000
         DC    CL45' DATA SET NAME'
./ NUMBER INSERT=YES,SEQ1=80730000,NEW1=80810000,INCR=1000
         DC    C'  LASTREF  ALLOC   USED'
./ DELETE SEQ1=80820000,SEQ2=80820000
./ NUMBER INSERT=YES,SEQ1=81000000,NEW1=81010000,INCR=1000
DDSNAME  DC    CL44' ',C' '
./ DELETE SEQ1=81990000,SEQ2=81990000


to generate output like this -
Code:
DATA SET NAME                                VOLUME  RECFM LRECL BLKSZ DSORG CREDT  XPIRDT  LASTREF  ALLOC   USED
SYS1.ADFMAC1                                 XXXRES  FB       80 27920  PO  20OCT21 -----   20OCT21      4      1
The code to insert a + after the first volume of a multi-volume data set is in the CBT version of DSLIST.
Back to top
View user's profile Send private message
Joerg.Findeisen

Active Member


Joined: 15 Aug 2015
Posts: 751
Location: Bamberg, Germany

PostPosted: Sat Jan 22, 2022 2:26 pm
Reply with quote

@Steve: Is it possible to extend the field for Allocated and Used by two digits at least? I get wrong results when I test against a very large SA-Dump Dataset residing on 15x Model-54 in our shop.

I do get this as:
Code:
0SSA00+ FBS    4160 24960  PS  14APR12 -----   07JAN22 401718      1 SYS1.SADMP

ISPF 3.4 DSLIST however reports as 13516650 Trks or in detail:
Code:
Data Set Name . . . . : SYS1.SADMP                                       
                                                                         
General Data                           Current Allocation                 
 Management class . . : **None**        Allocated cylinders : 901,110     
 Storage class  . . . : **None**        Allocated extents . : 15         
  Volume serial . . . : 0SSA00 +                                         
  Device type . . . . : 3390                                             
 Data class . . . . . : **None**                                         
  Organization  . . . : PS             Current Utilization               
  Record format . . . : FBS             Used cylinders  . . : 1           
  Record length . . . : 4160            Used extents  . . . : 1           
  Block size  . . . . : 24960                                             
  1st extent cylinders: 60074                                             
  Secondary cylinders : 60074          Dates                             
  Data set name type  : LARGE           Creation date . . . : 14.04.1912 
  Data set encryption : NEI             Referenced date . . : 07.01.2022 
                                        Expiration date . . : ***None*** 


Something is strange when calculating Allocated for MV Datasets.

I have a Dataset spread on 2 Volumes:
Code:
Aktion - Zur Auswahl "/" eingeben                           Spuren %Bel    XT
------------------------------------------------------------------------------
         &SYSUID..#T                                           3000    1    16
         &SYSUID..#T                                           1455   99    10


DSLIST reports only the first volume as:
Code:
SMS11E+ FBA     133 27930  PS  20JAN22 -----   21JAN22   3000      1 &SYSUID..#T


Hopefully it can be fixed. Fingers crossed.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 918
Location: The Universe

PostPosted: Sat Jan 22, 2022 10:05 pm
Reply with quote

The internal calculation for allocated and used space is correct, but it only displays the rightmost 6 digits after converting the rightmost 7 digits, so 10,000,001 tracks will display as 000001. You run into a problem of output line space vs output line width. Internally, converting 9 digits to display 7 or 8 (or even 9) is not a major problem, but then we run into the issue of line width. When I was preparing the update I posted yesterday I found the basic line width was 118 bytes (with the RDW), so there is 7 available bytes for LRECL=125. Of course, you can expand the LRECL to 137 quit easily, though the page header requires some recalculation to fill out the 137 bytes.

Now it was my guess that there were very few data set with more than 1,000,000 tracks, and 6 digits would be adequate for most data sets. This leave me with inserting separator characters, which have its own set of line width issues (999,999 becomes 7 characters, not 6). I find that 1000001 is quite difficult to interpret, much more so than, say, 125346; 1,000,001 is relatively easy to interpret compared to 1000001.

I will look into expanding allocated and used tracks for the next update, if any defects are reported.

FWIW, while testing the update it got an S002 ABEND, so my first guess was the output line got too long, so I checked that first. It turned out the sub header line was too long; I forgot to remove the right DATA SET NAME text. After I corrected that goof it ran fine.
Back to top
View user's profile Send private message
Joerg.Findeisen

Active Member


Joined: 15 Aug 2015
Posts: 751
Location: Bamberg, Germany

PostPosted: Sat Jan 22, 2022 11:42 pm
Reply with quote

I will test the new Update once it is released. Thank you for taking care of the issues.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 918
Location: The Universe

PostPosted: Sun Jan 23, 2022 10:17 pm
Reply with quote

The present version of DSLIST does not support data sets with extended attributes. The largest possible "regular" data set is 491505 tracks on one volume - well below 999999 tracks. Worse, I do not have any "extended" volumes to practice on, just pseudo 3390-9 volumes.
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 918
Location: The Universe

PostPosted: Thu Feb 17, 2022 11:40 pm
Reply with quote

DSLIST with extended volume support appears to be working, though it will require more testing.

I have other programs that compute allocated space. The first one I tested failed miserably. I then examined the extent entry in the format 8 DSCB. It did not appear to have valid data: FFFF 0000 for the start of the one and only extent for the data set. Last night I realized it was perfectly OK. Start cylinder 000FFFF is the first cylinder after the track managed space, this made the end extent 004001E after it was normalized to 0010040E (cylinder 0010040 head E).

Since DSLIST does the same calculation I then tried it. It reported 315 allocated tracks, so the basic algorithm was correct. I then went back to the first program and went over its calculation. I discovered (I think) two bugs. After I corrected the bugs it worked! It requires more testing before I send anything to CBT.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts Easy way to delete selected members f... IBM Tools 12
No new posts Intertest Batch issue with called ass... COBOL Programming 4
No new posts Mainframe batch Job or REXX to get VT... CLIST & REXX 7
No new posts File-aid batch how to repeat a line... Compuware & Other Tools 2
No new posts How to pass arguments in a ISPSTART c... CLIST & REXX 6
Search our Forums:

Back to Top