I wrote a NetView Rexx exec/Command list to get similar information at a
volume level.
It first issues "DS QD,VOL=<volser>,TOTALCYL" to get a volume's total
number of CYLs, with the total being the last word of the last line.
Next, it invokes ADDRESS LINKMVS 'IEHLIST PARM DDLIST' using "LISTVTOC
VOL=3390=<volser>" as the input to get total number of empty cylinders and
empty tracks, found in the last few lines of the report.
The "DDLIST" portion is used to override the SYSIN and SYSPRINT DDNames
already allocated to the NetView started task JCL.
A little bit of math gets the percent free.

I lean on NetView PIPEs to do some of the more complicated output parsing,
but TSO Rexx should be able to accomplish the same.
The challenge could be getting MVS command output, depending on your
security setup.

"NetView" Code snippet if interested:

'PIPE CC',                             /* Issue a DEVSERV command to */
'  DS QD,VOL='PARMSTR',TOTALCYL',      /*  get target volser size    */
'|EXPOSE COMMAND NOLOG',               /* Suppress but trap command  */
'|TOS /IEE459I/',                      /* Expect this message        */
'|SEP',                                /* Expect multiple messages   */
'|TAKE LAST 1',                        /* Size in cylinders in on    */
'|EDIT WORD -1',                       /*  the last line, last word  */
'|VAR TOTALCYL'                        /* Store result in variable   */
                                       /*----------------------------*/
LVTOCI = 'LVI'||RANDOM(10000,99999)    /* Define input  DD name      */
LVTOCO = 'LVO'||RANDOM(10000,99999)    /* Define output DD name      */
                                       /*----------------------------*/
'PIPE NETV ALLOC FI('LVTOCI')',        /* Allocate a data set to     */
'  TRACKS SPACE(1 1) UNIT(3390)',      /*  contain input to the      */
'  LRECL(80) BLKSIZE(0) RECFM(F B)',   /*  IEHLIST program.          */
'  DSORG(PS) NEW',                     /* Allocation errors will be  */
'|NLOC /CNM272I/',                     /*  written to the console,   */
'|CONS'                                /*  otherwise suppressed.     */
                                       /*----------------------------*/
'PIPE NETV ALLOC FI('LVTOCO')',        /* Allocate a data set to     */
'  TRACKS SPACE(5 5) UNIT(3390)',      /*  receive output from the   */
'  LRECL(121) BLKSIZE(0) RECFM(F B A)',/*  IEHLIST program. Again,   */
'  DSORG(PS) NEW',                     /*  allocation errors will be */
'|NLOC /CNM272I/',                     /*  written the the console,  */
'|CONS'                                /*  otherwise suppressed.     */
                                       /*----------------------------*/
'PIPE NETV ALLOC FI(VOLSERDD)',        /* This allocation is needed  */
'  VOLUME('PARMSTR')  UNIT(3390)',     /*  by the IEHLIST program.   */
'  DSN(SYS1.VTOCIX.'PARMSTR')',        /* It merely allocates the    */
'  SHR',                               /*  device, and ignores DSN.  */
'|NLOC /CNM272I/',                     /* Another suppression of     */
'|CONS'                                /*  successful allocation.    */
                                       /*----------------------------*/
'PIPE LIT',                            /* This PIPE will write the   */
'  /  LISTVTOC VOL=3390='PARMSTR'/',   /*  required LISTVTOC control */
'|QSAM' LVTOCI                         /*  statement to the input DD */
                                       /*----------------------------*/
PARM   = ''                            /* Standard PARM, as from JCL */
DDLIST = COPIES('00'X,32)||,           /* DD  #1-4 override 'As-Is'  */
         LVTOCI          ||,           /* DD    #5 override SYSIN    */
         LVTOCO          ||,           /* DD    #6 override SYSPRINT */
         COPIES('00'X,64)              /* DD #7-14 override 'As-Is'  */
                                       /*----------------------------*/
ADDRESS LINKMVS 'IEHLIST PARM DDLIST'  /* Invoke IEHLIST with parms  */
                                       /*----------------------------*/
IF RC ¬= 0,                            /* If there is an issue with  */
THEN DO                                /*  IEHLIST, the contents of  */
  'PIPE QSAM 'LVTOCO  ,                /*  the output file are sent  */
  '|CONS'                              /*  to the console. The files */
  CALL FREEFILE                        /* A housekeeping routine is  */
  EXIT                                 /*  called to free files, and */
END                                    /*  the CLIST will end.       */
                                       /*----------------------------*/
'PIPE QSAM 'LVTOCO  ,                  /* If IEHLIST ends well, the  */
'|LOC /EMPTY/',                        /*  output file is read,      */
'|LOC /VOLUME/',                       /*  and keywords are used to  */
'|EDIT SKIPTO /THERE ARE/ W3 1 W7 NW', /*  isolate the desired info. */
'|SPLIT',                              /* Both CYLINDER and TRACK    */
'|VAR EMPTYCYL EMPTYTRK'               /*  information is captured.  */
                                       /*----------------------------*/
CALL FREEFILE                          /* Call housekeeping routine  */
                                       /*----------------------------*/
CYLTRKS = EMPTYTRK/15                  /* Change TRACKS to CYLS.     */
TOTAL   = EMPTYCYL + CYLTRKS           /* Add those to CYL total.    */
PCTFREE = (TOTAL/TOTALCYL)*100         /* Calculate free space       */
                                       /*----------------------------*/
IF CMDTYPE = 'COMMAND',                /* Invoked as a command       */
THEN                                   /* Perform the following      */
  'WJDMSG' 'JDSTG9500I' PARMSTR  ,     /* Display the VOLSER         */
                        EMPTYCYL ,     /*  Number of empty cylinders */
                        TOTALCYL ,     /*  Total number of cylinders */
                        EMPTYTRK ,     /*  Number of empty tracks    */
                        PCTFREE        /*  Percentage of empty space */
                                       /*----------------------------*/
ELSE                                   /* Perform the following      */
  RETURN TOTALCYL ,                    /* Total number of cylinders  */
         EMPTYCYL ,                    /*  Number of empty cylinders */
         EMPTYTRK ,                    /*  Number of empty tracks    */
         PCTFREE                       /*  Percentage of empty space */
                                       /*----------------------------*/
EXIT                                   /* Nothing more to do         */

There is standard setup and recovery code surrounding the above.I didn't
include the FREEFILE housekeeping routine either.
I built it originally to be called as a function, but gave the option to
send the output to the caller's NetView console using a local message
template based routine.
Hopefully this could help spawn some ideas.

On Sun, Jul 29, 2018 at 11:50 AM saurabh khandelwal <
venkatkulkarn...@gmail.com> wrote:

> Hello,
> Our all volumes are not sms managed, so we can not use this   Storage Group
> exceeds a define capacity percentage method.
>
>
>
> On Sun, Jul 29, 2018 at 9:50 AM, Gadi Ben-Avi <gad...@malam.com> wrote:
>
> > When a Storage Group exceeds a define capacity percentage, a message is
> > issued to the console and log.
> >
> > -----Original Message-----
> > From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf
> > Of saurabh khandelwal
> > Sent: Sunday, July 29, 2018 9:38 AM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: DASD Utilization Trigger
> >
> > Hello Group,
> >
> > Do we have any free tool available in Mainframe ISMF or any other place
> to
> > track dasd utilization .
> >
> > Ex . If any of dasd utilization reached more then threshold( Ex. 80%)
> > limit, we should get alert on operator console.
> >
> > ----------------------------------------------------------------------
> > For IBM-MAIN subscribe / signoff / archive access instructions, send
> email
> > to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> > הודעה זו נשלחה אליך מטעם חברה בקבוצת מלם תים וייתכן שהיא מוגנת תחת סודיות
> > מסחרית. כל הצעה, התחייבות או מצג מטעם החברה, מחייבים מסמך נפרד וחתום על
> ידי
> > מורשה החתימה של החברה. החברה רשאית לנטר כל תכתובת העוברת בשרתיה והיא לא
> > תישא באחריות לכל נזק, ו/או אובדן, שיבוש או פגיעה במידע כלשהו שנגרם מסיבות
> > של תקיפה חיצונית ו/או זדונית על הארגון.
> >
> > ----------------------------------------------------------------------
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> >
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to