Previous Topic: 3.1.2.2 Sample JCL Member VCCRUNH

Next Topic: 3.1.3 Job Operational Flow

3.1.2.3 Setting Up Hourly Scans with VCC


This section describes how to process data created by
DATAINFO=N in VCC (also see section 3.1.4 for more discussion
on running VCC at frequent intervals).

You may need to examine public volumes, work storage groups
or pools at more frequent time intervals than once per day.
While a DAILY inventory of volumes containing "normal" data
sets (those with a permanent DSNAME) is sufficient and
efficient for accounting purposes, you may need an hourly
inventory of public volumes to see the change in volume
free-space.

The VCAARCT routines will not be able to determine
"ownership" of the public volumes because of the format.  You
can use the DATAINFO run-time parameter to do this.  Setting
DATAINFO=N will filter out data set information and provide
the basis for the type of volume observations needed to track
capacity of special volumes like this.

The following contains some requirements and suggested
ideas.  We try to convey as much as possible by example for
conciseness.  Translate these general ideas into your own
requirements.  DATAINFO=N is best used with:

   o INCLUDEVOL=(WORK*,HSM*)  (Scratch pools and/or HSM ML1
                               vols)
   o VSAMSUBT=0
   o a separate VCCNTROL file
   o a separate VCCDATA file
     - allocate a small amount of tracks since only one
       record per volume is recorded
     - allocate VCCDATA to a temporary data set on SYSDA
     - follow VCCNTRL execution step with IEBGENER which
       copies VCCDATA to an output data set with DISP=MOD.

Run frequency should be every 30 minutes or 1 hour.

This process reads VTOCs and filters out all data set level
information and writes only one VCC record per volume
scanned. Use the following techniques to obtain this
information:

____ 1. The hourly inventory must use SMFID=xxx to
        differentiate the output from the daily inventory.
        You can use SMFID=194 for the hourly, while the daily
        defaults to SMFID=198.

        The hourly inventory should write to a temporary data
        set then MOD onto a permanent file for HOURLY data.

        Example:

        //S1 EXEC PGM=VCCNTRL
        //VCCDATA DD DISP=(,PASS),DSN=&&HOUR,
        // SPACE=(TRK,(5,1),RLSE)
        ..
        .. .... remainder of VCC JCL .....
        ..
        //S2 EXEC PGM=IEBGENER
        //SYSUT1 DD DISP=(OLD,DELETE),DSN=&&HOUR
        //SYSUT2 DD DISP=MOD,DSN=VCC.VCCDATA.HOURLY

        When the daily inventory runs, it should do some
        cleanup on behalf of the hourly inventory.

        - VCC.VCCDATA.HOURLY (in the MOD file above) should
          be copied into another data set to isolate it from
          subsequent hourly scans.

          Example:

        //S1 EXEC PGM=VCCNTRL   **for daily inventory**
        ..
        .. .... remainder of VCC JCL .....
        ..
        //S2 EXEC PGM=IEBGENER  **cleanup for hourly data**
        //SYSUT1 DD DISP=(OLD,DELETE),DSN=VCC.VCCDATA.HOURLY
        //SYSUT2 DD DISP=SHR,DSN=VCC.VCCDATA.HOURS
        //S3 EXEC PGM=IEFBR14  **setup a new place to MOD**
        //NEWPLACE DD DISP=(,CATLG),DSN=VCC.VCCDATA.HOURLY,
        // SPACE=(TRK,(5,5),RLSE)

____ 2. Modify SP.GENLIB VCAGENIN to add a special SMF
        record number for the hourly scan using the INPUTSMF
        statement.

        Run VCAGEN.

____ 3. Concatenate the hourly inventories for the whole day
        with a single daily inventory for the same day and
        run them both into the same DAY90 step (in the same
        unit database).  Example:

        //INPUTSMF DD DISP=SHR,DSN=VCC.VCCDATA.HOURS
        //         DD DISP=SHR,DSN=VCC.VCCDATA.DAILY

____ 4. Code the _USRSEL exit as follows to identify the
        hourly data and change it in a way that allows for
        later separation of the data at reporting time.

        For example:

        IF ROUTINE EQ 'DYVCAFMT' AND
          SMFRTYPE EQ 194 THEN DO;
          ORGSYSID='HOUR'; /*variable tested at report time*/
          SMFRTYPE=198;    /*treat the rest of the data*/
                           /*the same*/
        END;

____ 5. Running hourly scans by performing the above steps
        has the following effect on the VCAVOA file:

        All volumes will have one observation with the same
        ENDTS (as each other) as a result of the DAILY scan.

        Volumes in the hourly scan domain (via INCLUDEVOL)
        will have 24 additional observations in the same
        cycle at DETAIL timespan.

        One of those hourly observations will occur in the
        same hour of the day as the sole observation from the
        DAILY scan.

        And it has the following effect on reporting (example
        is PROC CHART):

        DATA EXTRACT;        /* Create hourly-obs only file*/
        SET DETAIL.VCAVOA01;
         IF ORGSYSID='HOUR';
         PROC PLOT DATA=EXTRACT;
          PLOT VOASPACA*HOUR;  /*Now hour has more than one*/
                               /*obs*/
           BY VOLSER;

        StorageMate has a built-in report to handle this (see
        STGEJE).