COPYRIGHT (C) 1984-2005 MERRILL CONSULTANTS DALLAS TEXAS USA

Newsletter TWENTY NINETEEN

 /* COPYRIGHT (C) 1984-2005 MERRILL CONSULTANTS, DALLAS, TEXAS */
****************NEWSLETTER=NINETEEN*************************************










             MXG NEWSLETTER NUMBER NINETEEN April 8, 1991



Technical Newsletter for Users of MXG :  Merrill's Expanded Guide to CPE



                         TABLE OF CONTENTS



I.   MXG SOFTWARE Version status.
  1. Production MXG Version is MXG 8.8, shipped April 8.        page   2
  2. Recent IBM Announcements and their MXG support.            page   3
II.  MVS Technical Notes.                                       page   3
  1. SMF CI Size should be 22K/26K for 3380/3390 devices.       page   3
  2. Timestamps in CICS and DB2 records may have wrong hour.    page   3
  3. PSF Printer utilization analysis.                          page   4
  4. Use PDB.STEPS for ABEND analysis.                          page   4
  5. Duplicate-Job-Name-HOLD delay detection.                   page   5
  6. APAR OY40625 for Vector Processors.                        page   5
  7. APAR OY36668 captures PR/SM LPAR "overhead".               page   5
  8. OPPSI, Operator Single System Image in a SYSPLEX.          page   5
  9. APAR OY31613, PTF UY56157 in error, lost jobname.          page   5
 10. DFSORT Release 10 invalid type 16 SMF Sort record          page   5
 11. SHARE 76 Paper "MVS/ESA Performance and Accounting Data"   page   6
III. VM  Technical Notes.
  1. SHARE 76 Paper "VM/ESA Measurement Facilities"             page  28
IV.  SAS Notes.
  1. SAS 6.06 has been repaired, and can be safely used.        page  37
  2. SAS 6.06 and 5.18 options now REQUIRED by MXG 8.8.         page  37
  3. Format libraries differences between MVS SAS 6.06-5.18.    page  38
  4. CMS-MXG Installation and Execution Considerations.         page  39
  5. SAS Input formats for times and timestamps.                page  40
  6. "Close" of data libraries was changed by SAS 6.06.         page  40
V.   Documentation of MXG Software.                             page  41
VI.  Installation, Space, Compatibility, for MXG 8.8.           page  41
VII. Change Log  Changes 8.283 to 8.187.                        page  44
      (Alphabetic INDEX of Significant Changes on page 44)      thru  72



         COPYRIGHT (C) 1991 BY MERRILL CONSULTANTS DALLAS TEXAS
          MXG IS A REGISTERED TRADEMARK OF MERRILL CONSULTANTS
          SAS IS A REGISTERED TRADEMARK OF SAS INSTITUTE

I.   MXG SOFTWARE Version status.

  1. Production MXG Version is now MXG 8.8, dated April 8, 1991.

 MXG Version 8.8 is shipped with NEWSLETTER NINETEEN to all sites, and
 should be installed as soon as possible.  MXG 8.8 is mandatory for MXG
 execution under SAS 6.06 or later, has MANY major enhancements, and has
 been testing at over 500 MXG sites.  MXG 8.8 WILL SAVE YOU TIME LATER,
 SO PLEASE INSTALL IT AS SOON AS POSSIBLE. Major enhancements in MXG 8.8

        Support for Amdahl MDF Performance Tool "MPT" SMF record.
        Support for Amdahl MDFTRACK record.
        Support for Amdahl SPMS Cache DASD Controller SMF record.
        Support for Boole IMF 2.6 (for IMS 3.1).
        Support for Cray COS 1.16 Operating System Data.
        Support for DASD Space management with fast VTOC read program.
        Support for DASD VTOCs and VVDSs for SMS variables.
        Support for Hitachi processors MLPF.
        Support for IBM CICS/ESA 3.1.1 Monitor and Statistics Data.
        Support for IBM DCOLLECT data records.
        Support for IBM DCOLLECT data records.
        Support for IBM HSM user SMF records, including deaccumulation.
        Support for IBM Hiperbatch statistics in SMF type 14, 15, & 64.
        Support for IBM IMS/ESA 3.1.
        Support for IBM MVS/ESA 4.1.
        Support for IBM MVS/ESA 4.2.
        Support for IBM NETVIEW/NPM 1.4
        Support for IBM RMF 4.1.2 (APAR OY29112, PTF UY90666).
        Support for IBM RMF 4.2.0
        Support for IBM RMF 4.2.1
        Support for IBM SMS records (HSM, VVR, VVDS, SMS/DFP) enhanced.
        Support for IBM VLF subtype 3 in SMF type 41.
        Support for IBM VM/ESA Version 1 Release 1.0 (ESA Feature).
        Support for Landmark's Monitor for CICS Version 8.
        Support for Landmark's TMON/MVS Version 1.1 and spanned records.
        Support for Oracle SMF record.
        Support for RSD WSF2 version 3.3.4.
        Support for Tangram Arbiter Version 2.1.1.
        SPIN library fills due to JES2 maintenance circumvented.
        CICS Shutdown Statistics no longer printed, only in SMF or MXG.
        Documentation of Trend Data Base processing.
        Documentation of DB2 analysis.
        Documentation of IMAC.... installation tailoring members.
        Corrections in IMS Log measurement of INPQUETM/RESPNSTM.
        NPM records from VM can be processed.
        Testing of MXG Version 8.8 under SAS 6.06 Version 6.06.
        DB2 trace SQL reporting.
        DB2 trace Transit Time reporting.
        BUILDPDB/3 Enhancements.
        - SPIN library copied into PDB for backup and recovery
        - ACCOUNTn and SACCTn added to SMFINTRV.
        - TYPE25 processing added for JES3.
        - PDB.SPUNJOBS allows reporting on jobs still in SPIN library.

  MXG Software next-release agenda (subject to change):
        Validation of EXPLORE/VM, EPILOG/CICS, and restructure of the
          AS400 support was not complete as this was written.
        DB2 2.3 will be supported when available, late this year.
        CICS 3.2 will be supported when available, later this year.
        Landmark CICS Version 9 will be developed later this year.
        Cray UNICOS is a future consideraton.
        VAX/VMS Account/SPM is a future consideration.
        JES3 Tape Mount Merge with TYPETMNT is a future consideration.

  2. Recent IBM Announcements and their MXG support.

 IBM has made many major announcements relating to the System/390, the
 ES/9000 family, and ESCON capabilities.  The following table identifies
 announced availability dates for the IBM product, and the corresponding
 Version/PreRelease of MXG required to support that IBM product.

   Product Name                     Availability     MXG Version
                                    Date              Required

   VM/ESA  1.1.0 (370 Feature)      Oct 26, 1990.        7.7
   RMF 4.1.2 (for MVS/ESA 3.1.3)    Sep  7, 1990.        8.8
   RMF 4.2   (for MVS/ESA 4.1)      Oct 26, 1990.        8.8
   MVS/ESA 4.1                      Oct 26, 1990.        8.8

   MVS/ESA 4.2                      Mar 29, 1991.        8.8
   RMF 4.2.1 (for MVS/ESA 4.2)      Mar 29, 1991.        8.8

   VM/ESA  1.1.0 (ESA Feature)      Mar 29, 1991.        8.8
   VM/ESA  1.1.1                    Dec 27, 1991.        ???



II.  MVS Technical Notes.

  1. SMF CI Size should be 22K/26K for 3380/3390 devices.

  SMF VSAM data sets should use a CI size of 26K for 3390's and a CI
  size of 22K for 3380's, to reduce physical I/Os to the VSAM file and
  to optimize disk storage space for SYS1.MANs. The DCB for the output
  data set created by the IFASMFDP program MUST specify:

           DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=32760)      on tape

           DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=23476)      on 3380

           DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=27998)      on 3390

  to avoid potential SMF data loss.  Yes, the IFASMFDP utility defaults
  to BLKSIZE=32767, but off-the-shelf packages have failed with that
  irrational and inappropriate value, often corrupting data. The BLKSIZE
  should always be 32760 for sequential data on tape, and should be the
  half-track-value if you dump to DASD devices. Since the record format
  is VBS, there is no required relationship between BLKSIZE and LRECL
  (if RECFM is V or VB, there IS the requirement that BLKSIZE be 4-bytes
  larger than LRECL, but is not true for VBS). Since the actual maximum
  LRECL that can be written by SMF writer is 32760 (including the RDW)
  does actually occur (a subtype 1 type 79 record with over 330 active)
  the LRECL MUST be 32760. If you specify a smaller LRECL on your dump
  output AND a real 32760 RDW LRECL record occurs, it will be truncated!

  2. Timestamps in CICS and DB2 records may have the "wrong" hour of the
   day, if the sites PARMLIB member PARMTZ (370) or TIMECLOCK (XA,ESA)
   is non-zero.  While ALL other SMF records reflect the site's true
   "Time-of-Day", and while the SMFTIME value in the DB2 and CICS SMF
   records is "true", only DB2 and CICS use TIMECLOCK internally which
   causes DB2 variables QWACBSC, QWACESC, QWHSSTCK, and CICS variables
   STRTTIME, ENDTIME to contain the "Time-of-Day" Plus or Minus the site
   TIMECLOCK value.  This is true no matter which vendor writes the data
   records for CICS and/or DB2.  Sure makes analysis harder!  While the
   MXG exit facility can be used to correct these times, it sure would
   be better if DB2 and CICS would conform to the rest of the SMF data!


3. PSF Printer utilization analysis in ANALPRTR and associated members
    solve several long-term analysis problems.  This is a brief summary
    of that implementation.

   The IBM 3800-3 Printer running under PSF has several unfortunate
   characteristics that make it difficult to measure directly with TYPE6
   (PDB.PRINT) data for predictions of performance and print throughput.
   First, each time that a set of banner pages is encountered, a printer
    pauses for about 9.5 seconds.  This does not occur when the printer
    is running in 3800-1 emulation mode, (i.e., as a JES printer), but
   only when the printer is running under PSF.
   Second, the NPRO value set for PSF (in JES JOBPARMS or in the PSF JCL
    Procedure) affects how long a job's output will sit in the transfer
    station before it is mechanically moved through the fuser and into
    the output stacker.  Since there is 9 feet of paper in the path, if
    each job were pushed into the output stacker immediately upon its
    print completion, paper would be wasted.  Instead, thejob's SYSOUT
    is left at the transfer until:
    a) Another JOB begins printing and pushes the job to the stacker, or
    b) The operator mashes the NPRO button, or
    c) The amount of time specified in NPRO parameter expires.
   The SMF type 6 record will not be timestamped until the SYSOUT has
    reached the output stacker and (this may be important) also when the
    printer is ready to print the next job.  If an operator presses NPRO
    (to eject) but then fails to press READY button, the type 6 will not
    be timestamped until (much?) later.  For PSF printers throughput in
    ANALPRTR, an NPRO is said to have occurred whenever there were NPRO
    minutes between the end of one and the start of the next event, and
    the NPRO value is subtracted from the previous print duration, which
    more accurately reflects true printer utilization.  Note that this
    approximation cannot estimate printer utilization due to paper jams,
    out of paper, out of toner, or other operator intervention.
   One site found 215 ppm printers actually ran at only 90 ppm because
    the average print job was much less than 25 pages!

4. Use PDB.STEPS for ABEND analysis.  Steps ABEND, jobs don't.

   ABEND Analysis should always be done with the PDB.STEPS (or TYPE30_4)
   data set). The PDB.JOBS (or TYPE30_5) is not valid for ABEND data.
   Programs ABEND, jobs don't!  And multi-step jobs can have multiple
   ABENDs.  In addition, the ABEND and CONDCODE variables in PDB.JOBS
   are taken from TYPE30_5, but it turns out that the 30_5 may not be
   valid. Flushed steps following an ABEND can create a job termination
   record with SYSTEM abend flagged, but with a zero CONDCODE value!

   You really want to use the step level data for ABEND analysis anyhow,
   because you can then identify which PROGRAMS are causing failures.
   You may have fifteen jobs which ABENDed because of the same program;
   using PROGRAM name will show the culprit, whereas using JOB wouldn't.
   The first few characters of PROGRAM will identify the "group" that
   wrote the program (eg., IBM utilities, vendor software, in-house
   written COBOL programs, etc.). You can provide management with a
   clearer picture of what failures occur, for example, by using:
           DATA ABENDS;
            SET PDB.STEPS;
            IF ABEND GT " ";      /*select only failing programs*/
            LENGTH GROUP $3.;     /*use 1st 3 characters for group*/
            GROUP=PROGRAM;
            KEEP GROUP PROGRAM ABEND CONDCODE;
           PROC SORT DATA=ABENDS; BY GROUP;
           PROC FREQ DATA=ABENDS; BY GROUP;
            TABLES CONDCODE*ABEND/NOROW NOCOL NOPERCENT;
            TITLE 'MXG ABEND ANALYSIS BY PROGRAMMING GROUP';

  5. Duplicate-Job-Name-HOLD delay detection.

   JES2 users frequently submit series of jobs with identical job names,
   because they want the jobs to sequence themselves one at a time. The
   The input wait time (IWT is READTIME to INITTIME) will be wrong, as
   it includes the time waiting in "HOLD". (Note this is not a problem
   with TYPRUN=HOLD jobs, because variable TYPRUN identifies them).
   Freddie Arie at Lone Star Gas saw that the key condition to identify
   a Duplicate-Name-Held-Job delay is when the "end of execution" of the
   preceeding job is LATER than the read-in time of this job. For these
   jobs, the previous job's "end time" must be used for this job's start
   of "read-in". For a job that was NOT delayed due to duplicate name
   hold, we use variable JRDRTIME as the "read-in" instead of READTIME
   for two reasons. First, JRDRTIME is the "end of read-in event", and
   more appropriate than the READTIME, the "start of read-in event".
   Second, for jobs submitted via NJE, READTIME is on the clock of the
   submitting node (e.g., EST), while JRDRTIME is on the clock zone of
   the receiving (executing) node, so its use eliminates the NJE clock
   differences.  For jobs which are delayed due to duplicate job name
   hold, the "end of execution" time to be used for the next job depends
   on whether this job was also restarted.  For a job that was NOT
   restarted (i.e., RESTART=1), the JTRMTIME is the "end" to be used.
   Consider, however, a job restarted due to data set name enque.  That
   single job could sit in hold for hours, while the other duplicate
   jobs continued to execute.  For restarted jobs, then, we use JRSTTIME
   (the actual time the operator first restarted the job) for "end" time
   in the IWT calculation of the subsequent duplicate name job.

   This algorithm is not perfect.  If a sequence of duplicate jobs spans
   two PDB's, the first job in the second PDB will not be recognized as
   a part of a duplicate jobname hold family, and the IWT time for that
   first job will be incorrectly calculated from JRDRTIME instead of the
   real "end time".  Using a weekly or monthly PDB as input reduces this
   probability, but it cannot be completely eliminated.

   This algorithm is now implemented in the ASUMJOBS member, summarizing
   and reporting batch job service from the PDB.JOBS, which is also used
   as the input to create the PDB.JOBSKED for batch service objectives.
   With the new implementation, the IWT reported by ASUMJOBS output no
   longer includes delay due to duplicate job name hold condition.

  6. APAR OY40625 is mandatory if you use Vector Processors. Without it
     fix, the Vector Processor Affinity CPU times are wrong. The fix is
     needed for MVS/ESA 3.1.3 thru 4.1.0.

  7. APAR OY36668 captures PR/SM LPAR management time and LPAR overhead.

  8. OPPSI, Operator Single System Image in a SYSPLEX, RMF support
     consists of six new traceable fields (with TYPE76).

  9. MVS/XA Only, APAR OY31613, PTF UY56157 is in error and can lose the
     Job name in SMF records. The APAR recognizing the PE (PTF in Error)
     is OY38538 and a SUPERZAP fix existed 12/11/90.

 10. DFSORT Release 10 occasionally produces a type 16 SMF Sort record
     with exactly 24 hours CPU TCB time. The problem goes away in Rel 11

 11. SHARE 76 Paper "MVS/ESA Performance and Accounting Data"
          that is now captured in MVS/ESA Version 4.2

                    H.  W.  Barry Merrill, PhD
                       President-Programmer
                       Merrill Consultants
                       Dallas, Texas 75229

     Portions of this paper were presented/published at/in:

            UKCMG 90 Glasgow, Scotland May 21, 1990
            SWCMG    Austin, Texas     Jun 21, 1990
            MXG Newsletter SEVENTEEN   Jul 10, 1990.
            SHARE 76 San Francicso, CA Feb 26, 1991.
            MXG Newsletter NINETEEN    Apr  8, 1991.

This  paper  identifies  the  significant changes in data elements that
are now captured by MVS/ESA 4.2.  PR/SM CPU "overhead" is now measured.
Three new CPU measures captured in SMF type 30 and type 72 data affect
billing and capacity measures.  Step level use of HIPERSPACE DataSpace
resources (like CPU time) are captured.  "Resident Frame Seconds" of
Central AND Expanded memory are separated for each performance group.
Print is identified to the step. Blocked paging exists.  New APPC/MVS
has resource accounting SMF data.  The SMF writer itself is enhanced.
This paper includes all changes in these releases:

    MVS/ESA 3.1.0e  MVS/ESA 3.1.3   MVS/ESA 4.1   MVS/ESA 4.2
    MVS RMF 4.1.1       RMF 4.1.2       RMF 4.2       RMF 4.2.1



a. New MVS/ESA CPU measures, two old, one new, have been added.

  "RCT"  - Region Control Task (Quiesce/Restore/Swap), caused
CPURCTTM   by TSO swapping.  This time has always existed,
           (as uncaptured CPU), and was the major contributor
           to poor TSO capture ratios.

  "IIP"  - I/O Interrupt Processing (Second Level Interrupt
CPUIIPTM   Handler, SLIH).  This time has always existed,
           (as uncaptured CPU), and affected all workload's.
           capture ratios.

  "HPT"  - Hiperspace processing CPU time. Hiperspace CPU time
CPUHPTTM   displaces functions which formerly were measured under
           TCB (or SRB). For example, a SORT using Hiperspace will
           significantly REDUCE the recorded TCB CPU time, because
           function moved from TCB to HPT.  DFSORT benchmarks show
           TCB reduced from 100 to 50 seconds, but HPT recorded 25
           seconds; thus actual CPU reduction was only 100 to 75!
           Billing/Capacity measures based on only TCB+SRB time are
           very inaccurate in a Hiperspace environment.
             Hiperspace CPU time is only recorded for tasks that
             execute in a User Protect Key, and only User Key Data
             Spaces are under control of the IEFUSI exit for size.
             Most IBM uses of dataspaces (HIPERBATCH, VLF, DFP, CATALOG)
             use Key Zero to avoid IEFUSI virtual storage limitations,
             and thus will not record HPT CPU time (nor DSSIZHWM, see
             below).
Moral:
         You MUST use all seven CPU measures in billing/capacity:

 CPUTM = TCB + SRB + ITCB + ISRB + RCT + IIP + HPT

b. PR/SM "overhead" is captured with APAR OY36668 in ES/9000 or 3090J's.

   The "Effective Dispatch", LCPUEDTM, is recorded for each partition in
   TYPE70PR.

   The difference between the Partition Dispatch LCPUPDTM and this new
   Effective Dispatch LCPUEDTM is the CPU time that this partition was
   dispatched for the LPAR management of this partition.

   In addition to this LPAR management time for each partition, there is
   a new "psedo" partition named "PHYSICAL" that exists only in the RMF
   type 70 record and which creates a separate observation in TYPE70PR.
   This observation with LPARNAME='PHYSICAL' contains only LCPUPDTM,
   which records the additional LPAR management CPU time that could not
   be charged to a specific partition.



               Total Partition Dispatch (CPU) Time
         (LCPUPDTM summed for all real partitions + PHYSICAL)


   |______________________________________________________________|
   |                                                              |




   |    LPAR #1    |    LPAR #2    |   LPAR # 2    |  "PHYSICAL"  |
   |  LCPUPDTM     |  LCPUPDTM     |  LCPUPDTM     |   LCPUPDTM   |
   |_______________|_______________|_______________|______________|
   |  |            |  |            |  |            |              |
   |  |  LCPUEDTM  |  |  LCPUEDTM  |  |  LCPUEDTM  |
   |  |   LPAR1    |  |   LPAR2    |  |   LPAR3    |
   |  |  Effective |  |  Effective |  |  Effective |
   |  |            |  |



    __              __              __              ______________
   |  |            |  |            |  |            |              |
     1               2               3                "Physical"

     In-partition LPAR Management Time               Other LPAR time




 The PR/SM "low utilization" affect has now been measured with these
 new fields.  While the LPAR management time may be 6-10% when the
 total LCPUPDTM busy is 60-70%, when the total busy is 95%+, the LPAR
 management decreases into the 2-3% range.  (Note, however, that the
 LPAR management time for a CAPPED partition is substantially higher).
 Most of all, now you can finally measure the LPAR management time!

 IBM's RMF reports will use the "Effective" dispatch time as the 100%
 CPU busy denominator (because then the LPAR numbers can be compared
 with non-PR/SM utilization numbers).

 Unrelated but included in this APAR, LCPUCAP identifies if Capping is
 in effect, and LCPUCAPC identifies changes in Capping status.

c. Three new CPU times were added to SMF type 30 in MVS 3.1.0e, but were
   NOT added to RMF type 72 until MVS/ESA 4.2 (RMF 4.2.1).  RMF capture
   ratios decrease when you migrate from MVS/370 to MVS/ESA 3.1.0e, and
   then increase when you install MVS/ESA 4.2, but now they're right!

TYPE 70 (RMF-captured CPU measurement of real or logical CPUs):


    Elapsed Interval (Duration multiplied by number of CPUs)
|________________________________________________________________|
|                                                                |
|                                                                |
|______________________________________________________|---------|
|                     CPU                              |   CPU
|                   Executing                          | Waiting
|                                                      |
|                                                      |
|________|________|_________|________|________|________|
| CPU 1    CPU 2    CPU 3     CPU 4    CPU 5    CPU 6  |
|  Busy     Busy     Busy      Busy     Busy     Busy  |
|                                                      |
|                                                      |
|______________________________________________________|

 Total Hardware CPU Busy Time (from Type 70 "non-wait")


        (solid=captured      dashed=uncaptured)


|______________________________________________________|

 Total Hardware CPU Busy Time (from Type 70 "non-wait")

TYPE 72 (use only the control performance groups):

|___________|-----|-----|_________________|------------|
| TCB | SRB | TCB | SRB | IIP | RCT | HPT |Uncapturable
| CPU   CPU   CPI   CPI   CPU   CPU   CPU |    CPU
|                                                      |
|_____|_____|-----|-----|_____|_____|_____|------------|
| RMF   RMF | Uncaptured| Captured in     |Uncapturable|
| TCB   SRB | Initiator |  RMF 4.2.1      |  RMF CPU   |
| CPU   CPU | Privileged| Uncaptured in   |            |
|           |     |     |  RMF 4.1.2-4.2  |            |
|___________|------------_____|_____|_____|------------|
|           | Existed,  | Existed,  |New, |Uncapturable|
|  TCB+SRB  | Uncaptured|Moved from |was  |  RMF CPU   |
|           | by RMF but|Uncaptured |RMF  |            |
|           | is in SMF.|   to      |TCB  |            |
|           |           | Captured  |     |            |

|_____|_____|    +      |_____|_____|_____|  = CPUTM, sum of 5.

TYPE 30 (all work started and ended):

|           |           |           |     |            |
|_____|_____|_____|_____|_____|_____|_____|------------|
| SMF   SMF   SMF   SMF   SMF   SMF   SMF |Uncapturable
| TCB   SRB   TCB   SRB   IIP   RCT   HPT |    SMF
| CPU   CPU   CPI   CPI   CPU   CPU   CPU |    CPU

|_____|_____|_____|_____|_____|_____|_____|  = CPUTM, sum of 7.

d. Type 30 SMF record Step Hiperspace/Data Space Activity
   added several measures:

    HIPAGINS - Hiper Page Ins
    HIPAGOUT - Hiper Page Outs
    DSSIZHWM - Data Space/Hiperspace High Water Mark, Megabytes
               (if non-zero, identifies Data Space/Hiperspace user)
    CREADMIS - CREADS Missed in Hiperspace
    DIVRREAD - Address Space total Reread Count
    ABNDRSNC - ABEND reason code
    TERMNAME - Terminal Identification


e. Type 72 Performance Group CPU/paging/memory measures

 BLKSAUIN - Blocks paged in from Auxilliary DASD
 BLKSESIN - Blocks paged in from ESTORE
 HIPPGINS - Hiperspace Page Ins from Aux DASD
 HIPRDMIS - Hiperspace Read Misses (CREADS in 30s)
 PGPAGEIN - Page Ins from Auxilliary DASD
 PAGEESIN - Page Ins from Expanded Storage
 PGBKESIN - Blocked pages paged in from ESTORE
 PGBKTOIN - Blocked pages paged in total (ESTORE+AUX)

 CPUHPTTM - Hiperspace CPU time               Actual times
 CPUIIPTM - I/O interrupt processing CPU      and not
 CPURCTTM - Region control task CPU time      service units!

 SYSTRNTM   System transaction time           point of entry
                                              until termination

 ACTFRMTM - Frame-seconds of CS+ES memory occupancy while tasks in
            this performance group period were "SRM Resident".
            This includes both Central Store and Expanded Store
            frames, but does not include Nucleus or Common Area
            (since they are not in an address space), and does
            NOT include frames of Logically Swapped ASIDs.

 ACTESFTM - Frame-seconds of ES memory occupancy while tasks in
            this performance group period were "SRM Resident".
            This is the ES part of ACTFRMTM.

 MSOUNITS - Represents frame-seconds of Central Store memory
            occupancy, but only while executing TCB.

 For example, assume:

     DURATM   = Duration of Interval           100 seconds
     RESIDTM  = Accumulated Residency Time     800 seconds
     ACTFRMTM = Central+ESTORE              80,000 frame-seconds
     ACTESFTM = ESTORE                      30,000 frame-seconds

 Then

     MPL  = (800/100) = 8 users are resident, on average.

     ES Frames = (30,000/100)        = 300 ES Frames (1.2 MB) used

     CS Frames = (80,000-30,000)/100 = 500 CS Frames (2 MB) used

Because
          ACTFRMTM
       (-------------)      = CS + ES frames used by perf group period
          DURATM


          ACTESFTM
       (-------------)      = ES frames used per user
          RESIDTM


          MSOUNITS
    (--------------------)  = TCB-only CS frames used per user
     50*MSOCOEFF*CPUTCBTM




f. New TYPE71 counts of blocked pages paged in, blocks in, PWSS size
   (primary working set size), pages migrated, and the number of
   ESTORE frames that were freed without migration:

         BLKSAUIN - Blocks paged in from AUX
         PGBKAUIN - Blocked pages paged in from AUX
         ESPGFRNO - ESTORE frames freed without migration
         PWSSMIIN - PWSS pages migrated from ESTORE

    TYPE71 contains four new swap reason codes, because MVS now has
    four additional reasons for swapping an address space:

      AW - APPC Wait swap, awaiting a Transactio Program.

      IC - Improve Central Storage usage swap, by recognizing
           page thrashing.

      IP - Improve System Paging Rate swap, identifies that
           your PTR controls are causing swaps.

      MR - Make Room to swap in a user who has been swapped
           out too long. When an Exchange Swap should have
           occurred, SRM starts a clock, defaults to 30 sec
           for TSO, 10 min for non-TSO, and will bring that
           task back in if it stays out that long.

  For each swap reason, there are five new variables for the swap rate
  of each possible transition (EXTAUX.., LOGAUX.., LOGEXT.., PHYAUX..,
  and PHYEXT..). The sum of all transitions for each swap reason,
  (i.e., the total swap rate for that reason code) is in the new
  variables SWAPIC, SWAPIP, and SWAPMR.

g. TYPE 71: Overall System Memory measurement in MVS/ESA:


 Area      Expanded Frames     Central ("Real") Frames
           Avg, Min, Max       Avg, Min, Max
           Measures            Measures

 CSA       CSAEXAV,MN,MX         n/a
 Hiper     HIPEXAV,MN,MX         n/a
 LPA       LPAEXAV,MN,MX         n/a
 LSQA      LSQAEXAV,MN,MX      LSQAREAV,MN,MX
 REG+SQA   REGSEXAV,MN,MX        n/a
 SQA       SQAEXAV,MN,MX       SQAREAV,MN,MX
 VIO       VIOEXAV,MN,MX         n/a


 Type      Pages           Pages             Pages
           Read            Written           Migrated
           From ESTORE     To ESTORE         To Aux

 Hiper     HIPREADS        HIPWRITS          HIPMIGRS
 VIO       VIOREADS        VIOWRITS          VIOMIGRS

 Total     EXTREADS

 Hiper page ins    HIPAGINS
 Hiper page outs   HIPAGOUT


h. Blocked/Unblocked Paging/Blocks summary.

Sequential I/O is always better (less CPU, less real memory, less
elapsed time) with blocks of logical records than unblocked records.
MVS/ESA 4.2 introduces "Blocking" (multiple pages in a block).  What we
knew as "pages" are now counted as "unblocked pages". The following
schematic tabulates the SMF suffix of measured/calculated counts in the
type 30  record:


 Type 30 IBM           Pages    Blocked    Blocks
                      (Unblkd)  Pages

   In
      from AUX         pia       BIA        KIA
      from ESTORE      PIE       BIE        KIE

   Out
      to   AUX         poa       BOA        KOA
      to   ESTORE      POE       BOE        KOE


 Type 30 MXG           Pages    Blocked    Blocks
                      (Unblkd)  Pages

   In
      from AUX         PAGEINS   PGBKAUIN   BLKSAUIN
      from ESTORE      PAGEESIN  PGBKESIN   BLKSESIN

   Out
      to   AUX         PAGEOUTS  PGBKAUOU   BLKSAUOU
      to   ESTORE      PAGEESOU  PGBKESOU   BLKSESOU

This next table shows the fields in the type 72, and as might be
expected, they contain only inbound paging activity.

 Type 72 MXG                         Pages    Blocked    Blocks
                                     (Unblkd)  Pages

   In from AUX                       pgpagein  PGBKAUIN   BLKSAUIN
   In from ESTORE                    PAGEESIN  PGBKESIN   BLKSESIN

The type 71, global paging, surprisingly contains only these new fields:

 Type 71 MXG                          Pages    Blocked    Blocks
                                     (Unblkd)  Pages

   In from AUX         total                   PGBKAUIN   BLKSAUIN
                       Hiperspace     hipagins
   In from ESTORE      Hiperspace     hipreads
   In from ESTORE      VIO            vioreads
   In from ESTORE      total          extreads

   Out to  AUX         Hiperspace     hipagout
   Out to  ESTORE      Hiperspace     hipwrits
   Out to  ESTORE      VIO            viowrits

   Migrates to AUX     Hiperspace     HIPMIGRS
   Migrates to AUX     VIO            VIOMIGRS


i. TYPE70PR  - PR/SM Processor Partition Data

Durations of partition

 DURATM     Duration of interval
 LCPUEDTM   Effective logical processor dispatch time
 LCPUPDTM   Logical processor dispatch time
 PRSMSLIC   Dispatch interval timeslice

Identification of partition

 LCPUADDR   Logical processor CPUID address
 LPARNAME   Logical partition name
 LPARNUM    Logical partition number

Status flags and numbers

 DIAG204F   Diagnose X204 failure?
 LCPUDED    Logical processor dedicated?
 LCPUWAIT   LPAR Wait Completion (Yes/No)?
 NRPRCHGD   Was the number of CPUs changed?
 PARTFLG    Was the Partition deactivated?
 SLICCHGD   PRSMSLIC Time-slice was changed?
 LCPUSHAR   Processor relative share
 LPARCPUS   Number of CPUs in this LPAR
 NRCPUS     Number of CPUs
 NRPRCS     Number of logical partitions
 PARTISHN   Partition number of this MVS
 PARTNCPU   Nr of CPUs available to this partition

Read ZZ05-0453-01 "PR/SM Performance in LPAR Mode" (IBM Internal, from
your IBM SE) for additional important PR/SM information.

j. TYPE72MN - RMF III Monitor subtype of type 72 record

MVS/ESA creates an RMF record from RMF Monitor III,
but only a small part of the data captured by RMF III
is written to SMF, for each Performance Group:

  User Statistics                Frame Statistics

  AVGUSER  - Logged On           FRAMEACT - Active Frames
  AVGACTS  - Active Users        FRAMEDIV - DIV Frames
  AVGACTV  - Active Not OUTR     FRAMEFIX - Fixed Frames
  AVGDIVS  - D-I-V Users         FRAMEIDL - Idle Frames
  AVGIDLS  - Idle Users

  Delayed Users Statistics       Miscellaneous

  AVGOUTR  - Out and Ready       FRAMEASM - Slots Used
  AVGPAGDL - Delayed Paging      PGINRATE - Page Ins
  AVGSWPDL - Delayed Swap        DOMAIN   - Domain
                                 PERFGRP  - Perf Group
  Averages of Averages

  WSETACT  - Avg working set per active user
  WSETASM  - Avg ASM slots used per user
  WSETDIV  - Avg working set per DIV user
  WSETFIX  - Avg fixed frames per user
  WSETIDL  - Avg working set per idle user


k. I/O Activity measurement, non-VSAM, VSAM, DASD, TAPE:

TYPE1415 Non-VSAM File, for each open of each file:

 DSSNO      Dataset serial number
 IDRC       3480 IDRC compaction used?
 NULLSEG    null segment encountered?
 PDSE       PDSE (formerly ILIB) managed data set?
 SMFCHITS   Hiperbatch successful searches
 SMFCIOS    Hiperbatch DASD I/Os copied into buffers
 SMFIOREQ   Hiperbatch total searches
 SMFNMWTS   Hiperbatch conflict suspends
 SMFPHIOS   Hiperbatch searchs that caused DASD I/O
 TRUNC      TRUNC MACRO issued?

TYPE64 VSAM File, for each open of each file:

 ACBBUFND   BUFND - Number of Data Buffers
 ACBBUFNI   BUFNI - Number of Index Buffers
 ACBBUFSP   BUFSP - Buffer Space
 ACBMACR    MACRF flag bytes (Random, Seq, Input, Output, etc.)
 ACBSTRNO   STRNO - String number
 BUFDRNO    Actual number of buffers
 JCFBDSNM   Cluster Name
 PLHCNT     Actual number of concurrent strings
 SMF64HIT   Hiperbatch successful searches
 SMF64IOS   Hiperbatch DASD I/Os copied into buffers
 SMF64MIS   Hiperbatch searches that caused DASD I/Os
 SMF64SIO   Hiperbatch total searches
 SMF64WTS   Hiperbatch conflict suspends

TYPE 21 Tape Volume Dismount

 BYTEREAD  Bytes read
 BYTEWRIT  Bytes written
 DCBOFLG   DCBOFLG control byte
 DEVICE    Device type
 OPEN      Type of OPEN
 TAPCUSER  Tape unit serial of creation device
 TAPUNSER  Tape unit serial of this device
 TEMPRBER  Temporary read backward errors
 TEMPRFER  Temporary read forware errors
 TEMPWRER  Temporary write (buffered) errors


TYPE74 DASD Volume Activity

 DASDRCFG - Number/Storage Group Options
 STORGRUP - Storage Group Name
 CUNAME   - Control unit name
 DEVMODEL - Device model name
 AVGPNDIR - Avg ms per I/O delay due to director port busy
 DLYDIRTM - Total seconds  delay due to director port busy
 PCTPNDIR - Percent of time when delayed due to director port busy.


l. RMF Monitor III Cross-System Coupling Facility (XCF) reports
 on message traffic between local system (where RMF executes)
 and remote systems creates four new TYPE74xx datasets:

TYPE74CO - control data

 R742MNXT - Member data sections in next records
 R742MTOT - Member data sections in all records
 R742PNXT - Path data sections in next record
 R742PTOT - Path data sections in all records
 R742SNXT - System data sections in next records
 R742STOT - System data sections in all records
 R742TSR  - Subtype 2 records in interval

TYPE74ME - member data

 R742MGRP - Group name
 R742MMEM - Member name
 R742MRCV - Signals received by member
 R742MSNT - Signals sent by member
 R742MSTF - Status flags
 R742MSYS - System name where member resides

TYPE74SY - system data

 R742SBIG - Number of "big message" conditions
 R742SBSY - Number of "no buffer" conditions
 R742SDIR - Direction of the message traffic
 R742SFIT - Number of "message fit" conditions
 R742SMXB - Maximum message buffer space
 R742SNME - System name
 R742SNOP - Number of "no path" conditions
 R742SOVR - Big messages that exceeded OPT message length
 R742SPTH - Signaling paths currently in service
 R742SSML - Number of "small message" condiions
 R742SSTF - Status flags
 R742STCL - Message length for transport class
 R742STCN - Transport class name

TYPE74PA - path data

 R742PAPP - Path was busy when selected to transfer
 R742PDEV - Device number
 R742PDIR - Direction path
 R742PIBR - Inbound signals refused due to max message limit
 R742PMXM - Maximum message buffer space
 R742PNME - System name
 R742PODV - Device number on other end
 R742PONA - Name of system on other end
 R742PQLN - Outbound signals pending transfer on path
 R742PRET - Path retry limit
 R742PRST - Number of restarts
 R742PSIG - Out/In bound signals sent/received over path
 R742PSTA - Path status
 R742PSTF - Status flags
 R742PSUS - Path not busy when slected to transfer '
 R742PTCN - Transport class name




m. DFP 3.2 Statistics and Configuration

TYPE 42 record contains 3 new subtypes that create five new datasets:

TYPE42AU "Audit" VARY SMS, ACTIVATE SMS, or ENF event occurrence, but
  is relatively unimportant:

 CURRTIME   Current update timestamp
 SMF42EAC   Activate, ENF, or VARY SMS?
 SMF42EAD   Active control dataset name
 SMF42ENS   New MVS volume status
 SMF42EOS   Old MVS volume status
 SMF42ERC   Return code
 SMF42ERS   Reason code
 SMF42ESD   Source control dataset name
 SMF42ESN   Name of storage group
 SMF42EST   Resulting status after action
 SMF42ESY   "ALL", or first 8 system names
 SMF42EUA   UCB address for the device
 SMF42EVL   Volume serial number


TYPE42CU Model 3990-3 Cache Control Unit Statistics,
 for each cache controller having an SMS volume attached.

 Identification and timestamps

 SMF42CID   Subsystem identifier
 CURRTIME   Current update timestamp
 LASTTIME   Last update timestamp

 Statistics during interval

 SMF42AFW   Average fast-write waits per minute
 SMF42AHR   Average hit ratio
 SMF42CCT   Current I/O count for the subsystem
 SMF42LCT   Last    I/O count for the subsystem
 SMF42CFW   Current fast write wait count
 SMF42LFW   Last    fast write wait count
 SMF42CRH   Current cache normal read hit percent
 SMF42LRH   Last    cache normal read hit percent
 SMF42CWM   Current fast write waits per minute
 SMF42LWM   Last    fast write waits per minute

 Storage capacity/availability

 SMF42CSS   Subsystem storage capacity
 SMF42NCS   Subsystem non-volatile storage status
 SMF42NSZ   Non-volatile cache capacity
 SMF42SAP   Storage allocated for PINNED data
 SMF42SCS   Storage director caching status
 SMF42SPR   Non-volatile storage allocated for PINNED
 SMF42SSA   Storage available for allocation as CACHE
 SMF42SSU   Storage unavailable due to failures

TYPE42VL Status for each SMS volume behind 3990-3

 CURRTIME   Current update timestamp
 SMF42CID   Subsystem identifier
 SMF42DB1   Device status flags one
 SMF42DB2   Device status flags two
 SMF42DEV   Device number
 SMF42VOL   Volume Serial Number

TYPE42SC Storage Class Buffer Manager Facility (BMF) Statistics
 for each Storage Class. (Interval set in IGDSMSxx).

 DURATM     Interval duration
 SMF42PNN   Storage Class Name
 SMF42SDH   Directory data page read hits
 SMF42SDT   Directory data page reads
 SMF42SRH   Member data page read hits
 SMF42SRT   Member data page reads
 STARTIME   Start timestamp of the interval

TYPE42TO Buffer Manager Facility (BMF) Totals for all Classes.

 DURATM     Interval duration
 SMF42LGE   Largest size of storage
 SMF42TDH   Directory data page read hits
 SMF42TDT   Directory data page reads
 SMF42TNA   Number of storage classes
 SMF42TRH   Member data page read hits
 SMF42TRT   Member data page reads
 STARTIME   Start timestamp of the interval

n. TYPE6 JES Printer Record Enhancements

Step identification of source of print

 SMF6DDNM   DDNAME that created printing
 SMF6DSNM   JES assigned temporary DSNAME of the print dataset
 SMF6PRNM   PROCSTEP that created printing
 SMF6STNM   STEPNAME that created printing
 SMF6USID   USERID that created printing
 SUBSYS6    Printing Subsystem (JES/PSF) used.
 SMF6PRMD   Processing mode (PAGE/LINE) of print.
 SMF6FDNM   FORMDEF name used
 SMF6PDNM   PAGEDEF name used
 SMF6PTDV   PRINTDEF name used

Print security identification

 SMF6NPS    Security page segments used
 SMF6NSFO   Security fonts used
 SMF6NSOL   Security overlays used
 SMF6OTOK   Output user security token
 SMF6SECS   Security label of print dataset

Enhanced SYSOUT Support, ESS. JES2 only, not PSF.
  (fields also added to type 24 and 57 SMF records).

 SMF6IND    ESS segment indicator
 SMF6JDVT   JCL definition table name in JDTV
 SMF6SGID   Segment identifier
 SMF6TU     Text unit (SWBTU) data area
 SMF6TUL    Text unit (SWBTU) data area langth

Yes/No Print Activity flags

 BINnUSED   BIN Number n was used?
 CONTRIN0   SPIN data set?
 CONTRIN1   Operator terminated print?
 CONTRIN2   Operator restarted print?
 CONTRIN3   Print intrepreted?
 CONTRIN4   Operator interrupted print?
 CONTRIN5   Print continuation?
 CONTRIN6   Operator overrode?
 CONTRIN7   Restart with destination?
 CONTRIN8   Received operator restart?
 CONTRIN9   Operator started single space?
 DIADPLWS   Data page labelling suppressed?
 DIAJHWP    Job trailer page printed?
 DIASLIG    Job header page printed?
 DIAUPAWS   User print are suppressed?
 DPAGELBL   Keyword DPAGELBL=YES?
 ERROVRUN   Image overrun error?
 ERRSECOV   Error in security overlay?
 INTEGRTY   Security label integrity?
 PRSUCCES   Print operation successful?
 SPAGELBL   Keyword SPAGELBL=YES?
 STDUPLEX   Standard duplex used?
 SYSAREA    Keyword SYSAREA=YES?
 TMBUPLEX   Tumble duplex used?

o. Data-In-Virtual (DIV) and Virtual Lookaside Facility (VLF):

TYPE41AC (DIV Accessed) and TYPE41UN (DIV Unaccessed)

Common to both Access and Unaccess

 ACCSTIME   Time when object was accessed
 DDNAME     DDNAME used
 JOB        Job name or TSO user accessing
 OBJMODE    Access mode (Read/Update)
 OBJSIZEA   Object size (blocks) when accessed
 OBJTYPE    Object type (DA)

Additional data at Unaccess in TYPE41UN

 IOCALREA   Total I/O calls for read
 IOCALWRT   Total I/O calls for write
 OBJSIZEU   Object size (blocks) when unaccessed
 TOTREADS   Total blocks read (including rereads)
 TOTRREAD   Total blocks re-read
 TOTWRITE   Total blocks written
 UACCTIME   Time when object was unaccessed

TYPE41VF Virtual Lookaside Facility (VLF) statistics

APARs OY28799 and OY288800 for MVS/ESA create a
 type 41 subtype 3 interval (15 min) record for
 each class in the COFVLFxx PARMLIB member.


 SMF41CLS   Class name
 SMF41SRC   Times cache was searched
 VLFHITPC   Percent of searches found in VLF

 SMF41ADD   Objects added to cache during interval
 SMF41DEL   Objects deleted from cache
 SMF41FND   Objects found in cache
 SMF41TRM   Objects trimmed from cache

 SMF41LRG   Largest object ever attempted
 SMF41MVT   MAXVIRT specified
 SMF41USD   Amound of storage used


 R. Shannon of Aetna pointed out that the LLA's use of VLF causes
 type 41 data to report LLA's utilization near 100%, but LLA still
 adds modules, because LLA only calls VLF for modules that LLA had
 previously cached.  Additionally, the storage used reported by
 VLF is not the highwatermark, but is the end of interval value.

 SMF records can be created from the CSVLLIX1 exit to provide the
 detail fetch statistics, but (too?) many records are created.

p. Structural changes in SMF writer recording and SMF management.

   Control Interval of SMF VSAM data set can be 22K (finally!!!). This
   change is in ESA 3.1.3.  SMF initially now gets 259 buffers (CIs) at
   startup. If CIsize is 4K, thats only 1MB, but with recommended 22K
   CIsize, 22K*259=6MB and thus SMF address space must be 6MB. If SMF
   needs more buffers, they are above the line to a maximum of 32MB.

   SMF internal buffers can be reclaimed from a SYSMDUMP, SVCDUMP or a
   Standalone dump with IPCS SMFDATA command into a VSAM dataset.

   Buffer shortage msg at 80% redisplayed if increases, deleted at 70%.
    Gets 200 more buffers (CIs) up to 4000 buffers (=32MB)
    The percentage number does not decrease as buffers are freed.
   SMF Exits can use 31-bit addressing AMODE(31). Callers in Cross mem
   can now call SMF (MODE=XMEM on SMFEWTM). New IEFU85 exit exists.
   LASTDS options in SMF PARMLIB controls SMF when last SMF dataset full
    MSG  - send message, start buffering data (default)
    HALT - put system in restartable WAIT STATE ('D0D-01')
   NOBUFFS options in SMF PARMLIB when internal buffers fill
    MSG  - send message and enter data lost mode (default)
    HALT - put system in restartable WAIT STATE ('D0D-00')
   Type 4, 5, 34, and 35s are dead.
    Flags are set when data is not in thes records and 30s must be used:
      CPUWRONG to "Y" if TCB time has overflowed
      EXCPLOST to "Y" if over 1635 DD statements
      IBM's ESA SMF manual now states:
       "Only the type 30 record should be considered valid."
   MSS (Mass Storage System) device is no longer.

 What happens when SMF records suddenly fill SMF?

 A site had 450 CYL of 3380 for all SMF data sets, enough for their
 full day's data.  When they migrated to MVS/ESA 4.1.0, SMF datasets
 filled at 3:15pm.  Ninety minutes later, the SMF buffers filled and
 recording stopped.  (ESA buffering gave the operator 1.5 hours)!

 An increased number of SMF type 60 for Non-VSAM Record "NVR" updates
 (added by SMS/DFP 3.2, because now ALL data sets, VSAM and non-VSAM
 must be in the VVDS) is thought to be the cause, but because the site
 lost all SMF data it's not proven.  The site did turn off the type 60s
 and the problem has not recurred.  The only use of the 60s data that I
 know of are third-party products to re-build a broken VVDS.  No IBM
 utility uses type 60s.  If you do not have such a product, it is my
 suggestion that you not record type 60 SMF records, because I have not
 found them needed for analysis, nor do I know of anyone who has used
 them.  If anyone has ever found the type 60s useful, please contact me.
 If no one replies, I will change my suggestion to a recommendation.

 In 90 minutes the site filled the 32MB (fixed maximum) ESA buffers, or
 only 6213 bytes per second were being moved from your address space to
 the SMF address space for eventual (asynchronous) writing to DASD. With
 an SMF CI size of 22K, this is a physical write to DASD every 4 seconds

    or only about 15 I/Os per MINUTE !!!!!!!!!!!!

    to a device capable of 40 I/Os per SECOND !!!!

 Again, this should prove that the SMF writer and SMF data sets are NOT
 stressed, that the SMF data sets do NOT require special treatment, and
 SMF data volume does not cause performance degredation.

q. System Managed Storage, SMS, extensions.

  System  Managed  Storage  (SMS)  now uses formerly reserved bits
  located at offset '4E'x  in  the  DSCB1  in  your  VTOCs.   DASD
  products  like  DMS/OS  and ASM2 have used these bits, and local
  modifications (to CSECTS IFG0196W and IFG0194E) have also caused
  this  "DSCB  Contamination".IBM published "Clean up VTOCs Before
  Implementing DFP V3"(as WSC Flash 9009, Hone Entry  G022345)  to
  advise you of the exposure.  If DSCB contamination is found, you
  must not only clean the VTOCs of your online data sets, but  you
  will need to also clean all migrated datasets, since their DSCBs
  were also migrated and your  migration  software  will  need  to
  correct the contamination when datasets are recalled.

  These new SMS variables are contained in DASD VTOCs:

  DS1CRSDB  DADSM Create originated blocksize?
  DS1PDSE   PDSE Managed Dataset?
  DS1REBLK  Data set may be reblocked?
  DS1SCCPF  Secondary is compacted by factor of 1, 256, 65536?
  DS1SECUN  units of allocation (avblk,bytes,kilo,mbytes A/B/K/M)
  DS1SCXTV  Secondary space extension value
  DS1SMSDS  System managed dataset?
  DS1SMSUC  No BCS entry exists for data set?
  OFFSET4E  Offset 4E into DSCB1 (used by SMS)

DCOLLECT is a new IDCAMS facility, that creates a flat file with
seven different records containing VTOC, VVDS, and HSM measures.
While DCOLLECT does not include 100% of the raw records, it can
avoid reading the VVDSs and VTOCs, which are now defined by IBM
as "product-sensitive programming interfaces", meaning that the
format and content of data records can change from release to
release.

  Eg., a VVDS cannot be casually allocated, and an authorized
  ASM program is required to capture VVDS data into SMF).

DCOLLECT records are part of the SAA preferred type of data that IBM
now calls a "general-use  programming interface".

IBM documentation for the records produced by DCOLLECT is spread across
several manuals. GC24-3540-00, "DFSMS Planning and Reporting" overviews.

Three datasets, DCOLDSNS (data sets), DCOLVOLS (volumes) and
DCOLCLUS (VVDS), are built from VTOC/VVDS information, and their
contents are described in Appendix E of DFP 3.2 "Access Method
Services for Integrated Catalog Facility", SC26-4562-1.

Four datasets, DCOLMIGS (migrations), DCOLBKUP (backup), DCOLCAPD
and DCOLCAPT (HSM tapes) are HSM-related and they are described
(poorly, DCOLLECT is not even cited in the table of contents nor
in the index) in Chapter 17 (User Application Interfaces) of
SH35-0084-4, "DFHSM 2.5.0 Installation and Customization Guide".



DCOLBKUP

   Variable Type Length  Format       Label

   DCUSYSID  CHAR   4              SYSTEM*ID
   DCUTMSTP  NUM    8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
   UBDATCL   CHAR  30              DATA CLASS NAME
   UBDCLNG   NUM    4              DATA CLASS LENGTH
   UBDEVCL   CHAR   1              DASD*OR*TAPE?
   UBDSIZE   NUM    4              MIGRATED COPY*DATA SET SIZE
   UBDSNAM   CHAR  44              USER*DATASET*NAME
   UBMCLNG   NUM    4              MANAGEMENT CLASS LENGTH
   UBMGTCL   CHAR  30              MANAGEMENT CLASS NAME
   UBSCLNG   NUM    4              STORAGE CLASS LENGTH
   UBSTGCL   CHAR  30              STORAGE CLASS NAME
   UBTIME    NUM    8 DATETIME21.2 MIGRATED*DATETIME*STAMP

DCOLCAPD

   DCUSYSID  CHAR   4              SYSTEM*ID
   DCUTMSTP  NUM    8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
   UCAFOCC   NUM    4              OCCUPANCY OF*VOLUME AFTER*PROCESSING
   UCBFOCC   NUM    4              OCCUPANCY OF*VOLUME BEFORE*PROCESSING
   UCCOLDT   NUM    4              JULIAN DATE*WHEN DATA*WAS COLLECTED
   UCINTVM   NUM    4              TARGET OCCUPANCY*WAS MET*FOR VOLUME
   UCLEVEL   NUM    4              LEVEL*OF*VOLUME
   UCNINTV   NUM    4              INTERVAL*MIGRATIONS*RUN AGAINST VOLUM
   UCNOMIG   NUM    4              PCT NOT MIGRATED*BUT ELIGIBLE*TO MIGR
   UCTGOCC   NUM    4              SPECIFIED TARGET*OCCUPANCY*OF VOLUME
   UCTOTAL   NUM    4              TOTAL*CAPACITY*OF VOLUME
   UCTROCC   NUM    4              SPECIFIED TRIGGER*OCCUPANCY*OF VOLUME
   UCVOLSR   CHAR   6              VOLUME*SERIAL

DCOLCAPT

   Variable Type Length  Format       Label

   DCUSYSID  CHAR   4              SYSTEM*ID
   DCUTMSTP  NUM    8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
   UCEMPTY   NUM    4              NUMBER OF*EMPTY TAPE*VOLUMES
   UTFULL    NUM    4              NUMBER OF*FULL TAPE*VOLUMES
   UTPART    NUM    4              NUMBER OF*PARTIALLY FILLED*VOLUMES
   UTSTYPE   CHAR   1              TYPE OF*TAPE CAPACITY*PLANNING RECORD


DCOLCLUS

   DCAASSOC  CHAR  44              CLUSTER*NAME
   DCACMPNT  CHAR   1              DATA OR*INDEX*COMPONENT?
   DCADSNAM  CHAR  44              DATASET*NAME
   DCAFLAG1  CHAR   1 HEX2.0       TYPE*FLAG
   DCAFLAG2  CHAR   1 HEX2.0       STATUS*FLAG
   DCAIXUPG  CHAR   1              ALTERNATE*INDEX WITH*UPGRADE?
   DCAKR1ST  CHAR   1              1ST SEGMENT*OF KR*DATA SET?
   DCATYPE   CHAR   4              ENTRY*TYPE
   DCUSYSID  CHAR   4              SYSTEM*ID
   DCUTMSTP  NUM    8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP

DCOLDSET

   DCDALLSP  NUM    4 MGBYTES5.0   ALLOCATED*SPACE*(MGBYTES)
   DCDBKLNG  NUM    4              BLOCK*SIZE
   DCDCHIND  CHAR   1              CHANGE*INDICATOR?
   DCDCREDT  NUM    4 DATE9.0      CREATE*DATE*(SAS DATE)
   DCDDATCL  CHAR  30              DATA*CLASS
   DCDDCLNG  NUM    4              DATA*CLASS*LENGTH
   DCDDSNAM  CHAR  44              DATASET*NAME
   DCDDSORG  CHAR   2              DSORG
   DCDDSSER  CHAR   6              DATASET*SERIAL*NUMBER
   DCDEMNGD  CHAR   1              SMS*MANAGED*INCONSISTENCY?
   DCDERROR  CHAR   1 HEX2.0       ERROR*FLAG
   DCDEXPDT  NUM    4 DATE9.0      EXPIRE*DATE*(SAS DATE)
   DCDFLAG1  CHAR   1 HEX2.0       STATUS*FLAG
   DCDFLAG2  CHAR   1 HEX2.0       CATLG*FLAG
   DCDGDS    CHAR   1              GDG*DATA*SET?
   DCDINICF  CHAR   1              DATA SET*IS CATALOGED*IN ICF?
   DCDINTCG  CHAR   1              DATA SET*IS AN ICF*CATALOG?
   DCDLBKDT  CHAR   8              LAST*BACKUP*DATE
   DCDLRECL  NUM    4              RECORD*SIZE
   DCDLSTRF  NUM    4 DATE9.0      LAST*REFERENCED*DATE (SAS DATE)
   DCDMCLNG  NUM    4              MANAGEMENT*CLASS*LENGTH
   DCDMGTCL  CHAR  30              MANAGEMENT*CLASS*NAME
   DCDNMBLK  NUM    4 MGBYTES5.0   UNUSEABLE*SPACE IN*BLOCKS(MGBYTES)
   DCDNMEXT  NUM    4              NUMBER*OF*EXTENTS
   DCDNOFM1  CHAR   1              NO FMT 1*DSCB FOR*THIS DATASET?
   DCDNOSPC  CHAR   1              NO SPACE*INFORMATION*PROVIDED?
   DCDNOVVR  CHAR   1              NO VVR*FOR THIS*DATA SET?
   DCDPDSE   CHAR   1              PDSE*EXTENDED?
   DCDRACFD  CHAR   1              DATA SET*IS RACF*DEFINED?
   DCDREBLK  CHAR   1              DATA SET*MAY BE*REBLOCKED?
   DCDRECFA  CHAR   1              ANSI*CONTROL*CHARACTER?
   DCDRECFB  CHAR   1              BLOCKED*RECORDS?
   DCDRECFC  CHAR   1              MACINE CONTROL*CHARACTER?
   DCDRECFF  CHAR   1              FIXED*LENGTH*RECORDS?
   DCDRECFS  CHAR   1              STANDARD*BLOCKS(F) OR*SPANNED(V)?
   DCDRECFT  CHAR   1              TRACK*OVERFLOW?
   DCDRECFU  CHAR   1              UNDEFINED*LENGTH*RECORDS?
   DCDRECFV  CHAR   1              VARIABLE*LENGTH*RECORDS?
   DCDSCALL  NUM    4 MGBYTES5.0   SECONDARY*ALLOCATION*(MGBYTES)
   DCDSCLNG  NUM    4              STORAGE*CLASS*LENGTH
   DCDSGLNG  NUM    4              STORAGE*GROUP*LENGTH
   DCDSMSM   CHAR   1              SMS-MANAGED*DATA*SET?
   DCDSTGCL  CHAR  30              STORAGE*CLASS
   DCDSTGRP  CHAR  30              STORAGE*GROUP*NAME
   DCDTEMP   CHAR   1              TEMPORARY*DATA*SET?
   DCDUSESP  NUM    4 MGBYTES5.0   USED*SPACE*(MGBYTES)
   DCDVOLSQ  NUM    4              VOLUME*SEQ
   DCDVOLSR  CHAR   6              VOLSER
   DCDVSAMI  CHAR   1              VSAM*INDICATORS*INCONSISTENT?
   DCUSYSID  CHAR   4              SYSTEM*ID
   DCUTMSTP  NUM    8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
   ORGEXPDT  NUM    4              ORIGINAL*JULIAN*EXPDT


DCOLMIGS

   DCUSYSID  CHAR   4              SYSTEM*ID
   DCUTMSTP  NUM    8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
   UMDATCL   CHAR  30              DATA CLASS NAME
   UMDCLNG   NUM    4              DATA CLASS LENGTH
   UMDEVCL   CHAR   1              DASD*OR*TAPE?
   UMDSIZE   NUM    4 MGBYTES5.0   MIGRATED COPY*DATA SET SIZE*(MGBYTES)
   UMDSNAM   CHAR  44              USER*DATASET*NAME
   UMLEVEL   NUM    4              CURRENTLY*MIGRATED*LEVEL
   UMMCLNG   NUM    4              MANAGEMENT CLASS LENGTH
   UMMGTCL   CHAR  30              MANAGEMENT CLASS NAME
   UMSCLNG   NUM    4              STORAGE CLASS LENGTH
   UMSTGCL   CHAR  30              STORAGE CLASS NAME
   UMTIME    NUM    8 DATETIME21.2 MIGRATED*DATETIME*STAMP

DCOLVOLS

   DCUSYSID  CHAR   4              SYSTEM*ID
   DCUTMSTP  NUM    8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
   DCVALLOC  NUM    4 MGBYTES5.0   ALLOCATED*SPACE*(MGBYTES)
   DCVDVNUM  NUM    4 HEX3.0       DEVICE*NUMBER
   DCVDVTYP  CHAR   8              DEVICE*TYPE
   DCVEBYTK  CHAR   1              ERROR*CALCULATING*BYTES/TRACK?
   DCVELSPC  CHAR   1              ERROR*DURING LSPACE*PROCESSING?
   DCVERROR  CHAR   1 HEX2.0       ERROR*FLAG
   DCVEVLCP  CHAR   1              ERROR*CALCULATING*VOL CAPACITY?
   DCVFDSCB  NUM    4              FREE*DSCBS
   DCVFLAG1  CHAR   1 HEX2.0       VOLUME*STATUS
   DCVFRAG1  NUM    4              FRAG*INDEX
   DCVFRESP  NUM    4 MGBYTES5.0   FREE*SPACE*(MGBYTES)
   DCVFREXT  NUM    4              FREE*EXTENTS
   DCVFVIRS  NUM    4              FREE*VIRS
   DCVINITL  CHAR   1              IN CONVERSION TO SMS?
   DCVINXEN  CHAR   1              INDEXED VTOC ENABLED?
   DCVINXEX  CHAR   1              INDEXED VTOC EXISTS?
   DCVLGEXT  NUM    4 MGBYTES5.0   LARGEST*EXTENT*(MGBYTES)
   DCVMANGD  CHAR   1              VOLUME IS MANAGED BY SMS?
   DCVNMNGD  CHAR   1              NON-SMS MANAGED VOLUME?
   DCVPERCT  NUM    4              PERCENT*FREE*SPACE
   DCVSGLNG  NUM    4              STORGRUP*LENGTH
   DCVSGTCL  CHAR  30              STORGRUP
   DCVSHRDS  CHAR   1              DEVICE*IS*SHAREABLE?
   DCVUSPUB  CHAR   1              USE*ATTRIB*PUBLIC?
   DCVUSPVT  CHAR   1              USE*ATTRIB*PRIVATE?
   DCVUSSTO  CHAR   1              USE*ATTRIB*STORAGE?
   DCVVLCAP  NUM    4 MGBYTES5.0   TOTAL SPACE*ON VOLUME*(MGBYTES)
   DCVVOLSR  CHAR   6              VOLSER

r. APPC Accounting and Capacity Planning

  i.   OVERVIEW of APPC

  Advanced Program-to-Program Communications/MVS (APPC/MVS) is the
  MVS support for cooperative processing.

  Two "peers" communicate using APPC/MVS services called "TP"s, or
  transaction programs. Each MVS TP executes in its own ASID.

  The interaction between two TPs (eg., a host TP and an OS/2 TP)
  is called a conversation.

  Each "peer" is called a partner in the conversation.

  Once a conversation is established, the actual work consists of
  sending or receiving data to or from the other partner.

  The partner identification is the LUNAME (the VTAM "port" name
  thru which communications flow). The requesting partner may be
  "remote" to MVS (an OS/2 program), or "local" (TSO user or job).
  The "partner" LU name is for the REQUESTOR of the TP, while the
  "local" LU name is for the TP itself.

  Two new address spaces execute for  APPC/MVS:
   "ASCH" the APPC Scheduler, and "APPC", the VTAM interface.


  ii.  APPC resources captured in type 30 (ASID) record.

  Type 30 records contain eight new variables that capture the
  the APPC activity by any address space that is an APPC TP:

     APPCATR   Transactions scheduled by ASCH
     APPCCN    Total conversations (active plus deallocated)
     APPCCNA   Number of all conversation allocated
     APPCDAR   Bytes of data received by the TP
     APPCDAT   Bytes of data sent by the TP
     APPCREC   Receive calls issued by TP
     APPCSEN   Send calls issued by TP
     APPCTAC   Number of active conversations

  SMF type 30 records will be written for the TP Address space,
  the ASCH and APPC address spaces, and the MVS partner address
  space (for step/job CPU, I/O, etc.). As the ASCH and APPC ASIDs
  do not actually "use" APPC, their APPC.... variables are zero.

  iii. New SMF type 33 APPC/MVS TP Accounting record.

    Each APPC event is recorded in a type 33 accounting record with
    contains the same APPC counters that are summarized in type
    30s.  Additional timestamps of the receipt, scheduling and
    execution of the TP are provided, as are CPU times (only TCB and
    SRB), I/O connect time and EXCP counts are captured:

   ACCOUNTn - Accounting field (nth)
   APPCCN   - Number of conversations for this TP'
   APPCCNA  - Conversations allocated by this TP'
   APPCDARS - Bytes received by this TP '
   APPCDATS - Bytes sent by this TP '
   APPCRECV - Received issued by this TP'
   APPCSEND - Sends issued by this TP '
   CPUSRBTM - CPU SRB duration
   CPUTCBTM - CPU TCB duration
   ELAPSTM  - Elapsed duration
   EXCPTOTL - EXCPS for this TP'
   INPREQTM - Input request duration
   IOTMTOTL - Device connect duration
   LENACCTn - Length of nth accounting field
   LOCLLUNM - Local LU name for this TP
   NRACCTFL - Number of accounting fields
   PARTLUNM - Nodename LU Name of partner
   QUEUETM  - SCHEDULER*QUEUE*DURATION'
   RACFGRUP - RACF group identification       <---- requestor
   RACFUSER - RACF user identification        <----    "
   REQDTIME - Request recognized by FMH-5
   SKEDTIME - Request placed on scheduler queue
   SMFTIME  - Datetimestamp when SMF record was buffered
   SYSTEM   - SMF system ID
   TPCLASS  - TP class
   TPNAME   - TP name
   TPNDTIME - TP execution ended datetimestamp
   TPROFILE - TP profile name
   TPSKEDTY - TP scheduler type (standard/multi-trans)
   TPSTTIME - TP execution started datetimestamp
   TPUSECNT - Uses of this TP by this user
   TPUSRTYP - TP user type (shell/user)
   ZDATE    - Zee date Zee obs was put in Zee PDB.

  iv.  The intervals between the four scheduling timestamps give this
       picture of the events in the lifetime of an APPC task.


           INPREQTM      QUEUETM         ELAPSTM

           Waiting on    Waiting on      Executing
           Scheduler     TP queue
        |_____________|_______________|____________|
        |             |               |            |
     REQDTIME      SKEDTIME       TPSTTIME      TPENTIME

     Request       Placed on      Execution     Execution
     Received      TP's queue     Started       Ended

 A  "Standard"  TP  is  initialized  for each inbound conversation
 request and terminated at end of its processing.   Resources  are
 allocated and deallocated for each inbound conversation request.

 A "Multi-trans" TP remains active  between  inbound  conversation
 requests,  with  its  resources  already  allocated.   Subsequent
 requests  avoid  the  overhead   of   repeated   allocation   and
 deallocation.

 Initialization and termination processing for a multi-trans TP is
 typically performed by the "Multi-trans Shell", surrounding the
 part of the TP that holds conversations.

 Separate type 33 records are written for "Shell" and "User".

 The scheduler timestamps do not exist in the "Shell" record, but
 CPU time and resources are captured in the type 33 shell data.

 If  the  "Type  of  User"  flag  is  'shell' (the other choice is
 'regular'), then this is the 'shell' record, and  the  "user  id"
 field is the ID if the "generic" user.

 The  "requestor"  of the APPC work is identified by the "user ID"
 and "group ID" pair of fields.  Most APPC work will  likely  come
 from a PC or a network, and not a TSO user or Batch job.

 APPC transaction programs can bypass the IEFUAV accounting exit
 by specifying TAILOR_ACCOUNT(NO) or by NOT specifying (YES).
 Watch this integrity exposure that would allow a TP program to
 disable its account validation!   Read  "The  Cuckoo's Egg"!


  v.   Schematic representation of type 30 / 33 SMF records and their
       subtypes for a multi-trans TP with shell:

 -->  Start     GET     GET    GET    RET    GET    GET   RET  End
       __________________________________________________________
       |         |       |      |      |      |      |     |     |
       |         |       |      |      |      |      |     |     |
       __________________________________________________________
SMF 30 |                            |                            |
for   -1                           -2                           -3
TP    init                       interval                       -4
                                                                -5
                                                              term

SMF 33 |_________|                     |______|            |_____|
for    |         |                     |      |            |     |
shell           -1                           -1                 -1

SMF 33           |_______|_______|_____|      |______|______|
for              |       |       |     |      |      |      |
user                    -1      -1    -1            -1     -1
                                            /         \
                                           /           \
                                          /             \
                                         /               \
              Waiting on    Waiting on  |    Executing    |
Type 33       Scheduler     TP queue    |                 |
Scheduling  |____________|______________|_________________|
Timestamps  |            |              |                 |
          Request      Placed on      Execution         Execution
          Received     TP's queue      Started           Ended

 This shows the three type 33's due to shell and the five type 33s
 due to user  GET  activity. The final RET in the schematic can be
 a real RET, but if the TP depends on the expiration of the "wait"
 time for the GETTRANS, then there is a "logical" RETTRANS done on
 its behalf.

   When a multi-trans TP is ready to run a user request, it issues
   a "GET-Transaction" GETTRANS to ASCH scheduler.

   When a multi-trans TP shell does processing not directly related
   to a user request it issues a "RETURN-Transaction" RETTRANS.

APPC conversation counts in SMF 30 and 33 are categorized:

 APPCCN  - Total conversations for this TP, both currently active
           and deallocated. Count of all conversations that this
           TP is involved in (both OUTbound and INbound).

 APPCCNA - Total conversations ALLOCATED by this TP. The number of
           OUTbound conversations that this TP has requested.

 APPCTAC - Total active conversations that are still "open" when
           the record was created.  Will always be zero in step
           or job termination record, wince by the end of step,
           all conversations are closed.

 APPCATR - Total transactions scheduled by ASCH (type 30 only).
           This equals the total count of type 33 records that
           will/could have been written.


  vi.  APPC Changes to TYPETASK, JESNR, & JCTJOBID may affect analysis.

  SMF type 6,30,32,26, and 57 records contain the JCTJOBID field,
  (named SMFnnJNM) that decodes into TYPETASK (JOB,STC,TSU) and
  the five digit JESNR of the address space.

  For APPC address spaces, the JCTJOBID contains an "A" followed
  by a seven digit "JESNR", creating a TYPETASK of "A  ".

  This could cause your reporting programs to fail, if they use
  TYPETASK for selection and did not protect for new values or
  for seven-digit JES numbers.

  This could also impact any "banner page" statistics written to
  a job's SYSLOG from your IEFU83, IEFU84, and IEFU85 SMF exists.

  vii. APPC support added APPC address space statistics to TYPE70.

       APPC address spaces active (i.e., in initiation) are in
       APPCMIN, APPCMAX, and APPCAVG, and with twelve buckets
       APPC00-APPC11 that contain the percentage of time when 0,
       1-3, 4-6, ... >36 APPC ASIDs were active, just like the
       existing statistics and buckets for BAT, TSU, and STC
       address spaces.

III. VM  Technical Notes.

  1. SHARE 76 Paper "VM/ESA Measurement Facilities"


                    H.  W.  Barry Merrill, PhD
                       President-Programmer
                       Merrill Consultants
                       Dallas, Texas 75229

     Portions of this paper were presented/published at/in:

            SHARE 76 San Francicso, CA Feb 27, 1991.
            MXG Newsletter NINETEEN    Apr  8, 1991.


   VM/ESA changed the output data records from MONWRITE with new data
   fields and new records, but because the changes were implemented
   by IBM in a fully compatible manner, previous versions of your VM/XA
   analysis software will not fail when they process the VM/ESA 1.1.0
   (ESA Feature) records. This paper discusses the new measures, the
   new file server measures captured in the new MONWRITE Application
   Interface record, and snapshots a benchmark of a VM/ESA (ESA Feature)
   MONWRITE interval on a 3090/600 with 4,800 logged on CMS users.

a.   Fifteen existing datasets (records) that have new data values:

VM/ESA (ESA Feature) Monitor data is an enhanced version of VM/XA data,
with the same names for datasets, variables and IBM fields, so you will
have nothing to change in your reports until you want the new data.


VXSYTXSP    New variables PLSPGMRD,PLSPGMRX,PLSPGXRD,PLSPGXWT added with
            page reads/writes to/from ESTORE/AUX due to page. This is
            translations/migrations. This is an interval record.

VXSYTASG    SALPRFAV,SALPRFIU are now reserved (were Preferred Paging),
            new variables for page/spool average/total MLOAD value:
            CALTOTM1,M2, CALAVGM1,M2). Interval.

VXSYTCOM    New variable count IUCVs (good to/from, and bad to the
            services: SYSTEM, CRM ACCOUNT,LOGREC,IDENT,CONFIG, and SPL.
            Twenty-one counters:  PLSIS+{E,T,U}+{SY,CR,AC,LO,ID,CF,SP}.

VXMTREPR    New flag if Application Domain Event is active, and CONFIG
            time limit variable.

VXMTRPAG    DDIPREF now reserved (Pref. Paging Flag) DDIPPCYL renamed
            RDCPCYL, and RDEVSID, Host Subchannel ID was added.

VXMTRSPR    New flag if Application Domain Sample is active, and CONFIG
            time limit variable.

VXMTRSCH    New SRMWSSMP for SET SRM MAXWSS value.

VXSCHDDL    New VMDLRGST if user prempted for storage.

VXSCLSRM    New SRMWSSMP for SET SRM MAXWSS value, New SRMWSSMP for SET
            SRM MAXWSS value, and VMDSCDF1 was replaced with VMCQDSPU.

VXSTORSG    New CALASCRT,CALASCFT,CALASCUT for paging virtual segment
            control (reorgs, unused and used pages).

VXSTORSP    New PLSPGDRD,PLSPGDWT for page tables paged to/from
            auxiliary storage.

VXSTOASP    New EXPDEVST,EXPMLOAD,CPVLOKAT,CPVALOCD with paging device
            service time, MLOAD, scans for allocations, actual
            allocations, and twenty EXPCON01-EXPCON20 tabulating how
            many times that many contiguous slots were available.

VXSTOATC    DDIPREF now reserved, CALPAGCY renamed to RDCPCYL, and
            RDEVSID added.

VXUSEACT    VMDCTPPS (Pref Page Slots) deleted.

VXIODCAD    New CALPSF data for 3990-3 status bytes.

b.  Five new records create these new datasets:

VXSTOASS    Auxiliary Shared Storage Sample Data record describing
            resources from the CP-owining a shared volume (PAGE/SPOOL
            READs/WRITES, queue length, and SSCH+RSCH counts).

VXIODATS    Attach Shared Device Event Data record, which contains
            exactly the same data as the existing VXIODATD Attach
            (non-shared) Device dataset.

VXAPLEDT    Application Event Data record, with a variable length string
            of installation/application created event data, domain 10
            record 1.  No IBM application currently uses this new event
            data interface.

VXAPLSDT    Application Sample Data record with a variable length string
            of installation/application created interval data, domain 10
            record 2.  IBM applications do now use this new interface
            but they are recognized by MXG and create the new VXAPLSRV
            dataset described below.

VXAPLSRV    IBM's use of Application Sample Data to record "Server
            Monitor Records". Both SFS file pool servers and CRR
            recovery servers use the APPLDATA class call to provide 123
            counters or clocks that are listed below. MXG converts all
            counters to rates per second (which are, by an MXG
            convention, formatted 7.1 to so indicate that they are
            rates), but the clocks are kept in units of seconds during
            the sample interval (and formated TIME12.2 to so indicate).
            The VMDUSER (VM User ID) must be used to identify which
            server created the application data:

              Server-ID     Observation contains

              VMSERVR       CRR (Counters 103-116 are only
                                 for CRR, and 114 will be
                                 always non-zero if CRR).
              VMSERVS       SFS (System owned file pool)
              VMSERVU       User (User owned file pool)

            The following list of variables created from
            these servers using the new application data
            interface clearly is a major enhancment in
            the measurement and management of the shared
            file system and other future file servers:

DEDMTFLG Dedicated maintenance mode   SRVCN061 Logical u-o-work rollback
FIRSTR   1st record since diage dc    SRVCN062 SAC calls
MDGPROD  Application release          SRVCN063 Stor group explicit lock
SRVCN001 Active agents highest value  SRVCN064 File space explicit lock
SRVCN002 Virtual storage highest      SRVCN065 Lock conflict, dir. exp.
SRVCN003 Virtual storage requests     SRVCN066 ", File explicit
SRVCN004 Checkpoints taken            SRVCN067 ", Storage group logical
SRVCN005 Checkpoint time              SRVCN068 ", File space logical
SRVCN006 Security manager exit calls  SRVCN069 ", Directory logogical
SRVCN007 Security manager exit time   SRVCN070 ", File logical
SRVCN008 Ext.  security mgr exit call SRVCN071 ", Catalog
SRVCN009 Ext. security mgr exit time  SRVCN072 Lock wait time
SRVCN010 Add storage requests         SRVCN073 Deadlocks
SRVCN011 Cache release requests       SRVCN074 QSAM requests
SRVCN012 Change threshold requests    SRVCN075 QSAM time
SRVCN013 Close directory requests     SRVCN076 File blocks read
SRVCN014 Close file requests          SRVCN077 File blocks written
SRVCN015 Commit requests              SRVCN078 Catalog blocks read
SRVCN016 Connect requests             SRVCN079 Catalog blks written
SRVCN017 Create alias requests        SRVCN080 Cntl minidisk blks read
SRVCN018 Create directory requests    SRVCN081 Cntl minidisk blks writ
SRVCN019 Delete directory requests    SRVCN082 Log blks read
SRVCN020 Delete file requests         SRVCN083 Log blks written
SRVCN021 Delete storage requests      SRVCN084 BIO req to read file blks
SRVCN022 File copy requests           SRVCN085 BIO req to write file blk
SRVCN023 Get directory requests       SRVCN086 BIO req to read cat blks
SRVCN024 Get directory entry req      SRVCN087 BIO req to write cat blk
SRVCN025 Grant administrator auth     SRVCN088 BIO req to read cntl mdsk
SRVCN026 Grant authorization req      SRVCN089 BIO req to write cntl
SRVCN027 Grant user connect req       SRVCN090 Total BIO request time
SRVCN028 Lock requests                SRVCN091 I/O req to read file blk
SRVCN029 Open directory requests      SRVCN092 I/O req to write file blk
SRVCN030 Open file new requests       SRVCN093 I/O req to read cat blks
SRVCN031 Open file read requests      SRVCN094 I/O req to write catalog
SRVCN032 Open file replace requests   SRVCN095 I/O req to read cntl mdks
SRVCN033 Open file write requests     SRVCN096 I/O req to write cntl
SRVCN034 Query administrator req      SRVCN097 Release blks requests
SRVCN035 Query connected users req    SRVCN098 Temporary close requests
SRVCN036 Query enrolled users req     SRVCN099 SFS send user data reques
SRVCN037 Query lock conflict req      SRVCN100 Prepare requests
SRVCN038 Query file pool requests     SRVCN101 Change file attribute
SRVCN039 Query user space requests    SRVCN102 Highest maxconn user
SRVCN040 Read file requests           SRVCN103 Get capability requests
SRVCN041 Recovery close catalog req   SRVCN104 Get log name requests
SRVCN042 Recovery get catalog req     SRVCN105 CRR get LUWID requests
SRVCN043 Recovery open catalog req    SRVCN106 Resync initial requests
SRVCN044 Recovery put catalog req     SRVCN107 Resync protocol viol reqs
SRVCN045 Refresh directory req        SRVCN108 Resync query dir requests
SRVCN046 Relocate requests            SRVCN109 CRR write log requests
SRVCN047 Rename requests              SRVCN110 CRR request service time
SRVCN048 Revoke administrator auth    SRVCN111 Number of sync points
SRVCN049 Revoke authorization req     SRVCN112 SYNC point time
SRVCN050 Revoke user requests         SRVCN113 Partresc CRR write log rq
SRVCN051 Rollback requests            SRVCN114 CRR log checkpoints taken
SRVCN052 Unlock requests              SRVCN115 CRR log i/o requests
SRVCN053 Write accounting requests    SRVCN116 CRR bio request time
SRVCN054 Write file requests          SRVCN118 DIRATTR requests
SRVCN055 Filepool request srvc time   SRVCN119 Query accessors requests
SRVCN056 Remote file pool requests    SRVCN122 Dir cntl res lock confl
SRVCN057 Alias definitions examined   SRVCN123 Deadlocks caused rollback
SRVCN058 Alias definitions updated    SVMSTAT  Option svmstat in dir?
SRVCN059 Begin logical units of work  VMDUSER  Server identification
SRVCN060 Agent holding time

  32 c.     Rate Per Second Perspective

The following table compares the rate at which "things" happen in the
real world, and the rate at which some man-made objects function in that
real world.  I have found insight when I look at the rate at which
things happen!



                                        Rate per    Duration between
    Activity:                           Second          Events

                                         (Hz)       milli micro nano
                                                     sec   sec   sec

    Build MXG tapes (at 400 per hour)       .111     9000
    VM/ESA HF Sample taken every 2 sec      .5       2000
    Send 3270 screen at 9600 baud           .666     1500
    Sub-second response event               1        1000
    Eyeblinks                               8         125
    MVS/ESA RMF/SRM Sample taken           20          50
    Movie Frames Per Second                30          33
    Maximum ful-track I/Os to 3380         56          17
    CRT Flicker Visible                    57          17
    DASD rotation (at 3600 rpm)            60          16
    CRT Flicker Disappears                 72          13
    VM/ESA Trivial+NoTrivials Trans       224           4
    VM/ESA Slot Searches                  318           3
    VM/ESA PG Moves                     1,700                588
    VM/ESA Simulated Instructions       6,800                147
    VM/ESA Instructions from SIE       10,000                100
    Software Timer Units (TUs)         38,400                 26
    CICS Clock Ticks                   62,500                 16
    TOD Clock Ticks                 1,000,000                  1

    30 MIPs Engine instruction     30,000,000                      33





  Thanks to Judy for a comment about persistence of movie film that
  caused me to put this tabulation together.

d.  VM/ESA (ESA Feature) Benchmark Data

This analysis of data is from VM/ESA (ESA Feature) MONWRITE output using
MXG 8.8 and only PROC PRINTs and PROC MEANs of the VMXAINTV & VXAPLSRV
data sets.  The hardware platform, a 3090-600 class machine under stress
has 4,800 logged on (simulated) CMS users.  Note how few pages of output
is need to characterise this system.

Output from     PROC MEANS DATA=VXAPLSRV MAX SUM MEAN;
                 217 obs for 30 intervals   7 servers
                                          max      sum      mean
-----------------------------------------------------------------
005 CHECKPOINT*TIME                       0.20    18.53     0.08
014 CLOSE*FILE*REQUESTS                  22.03  2056.48     9.47
016 CONNECT*REQUESTS                      0.41    32.75     0.15
020 DELETE*FILE*REQUESTS                  5.21   491.86     2.26
028 LOCK*REQUESTS                         1.30   127.59     0.58
030 OPEN FILE*NEW REQUESTS                0.16     8.06     0.03
031 OPEN FILE*READ*REQUESTS              13.86  1178.29     5.42
032 OPEN FILE*REPLACE*REQUESTS            8.62   750.30     3.45
033 OPEN FILE*WRITE*REQUESTS              1.34   119.70     0.55
039 QUERY*USER SPACE*REQUESTS             1.30   110.31     0.50
040 READ*FILE*REQUESTS                   13.19  1187.22     5.47
045 REFRESH*DIRECTORY*REQUESTS            0.84    65.28     0.30
047 RENAME*REQUESTS                       0.36    25.42     0.11
052 UNLOCK*REQUESTS                       1.38   128.13     0.59
054 WRITE*FILE*REQUESTS                   7.77   663.34     3.05
055 FILE POOL*REQUEST*SERVICE TIME       10.50   774.54     3.56
059 BEGIN*LOGICAL*UNITS OF WORK          26.83  2626.28    12.10
060 AGENT*HOLDING*TIME                   12.76   968.83     4.46
062 SAC*CALLS                           323.21 32332.62   148.99
071 CATALOG*LOCK*CONFLICTS                1.59    42.24     0.19
072 LOCK*WAIT*TIME                        0.18     3.21     0.01
076 FILE*BLOCKS*READ                     52.99  4912.81    22.63
077 FILE*BLOCKS*WRITTEN                  34.15  3032.45    13.97
078 CATALOG*BLOCKS*READ                  23.09  2251.14    10.37
079 CATALOG*BLOCKS*WRITTEN               16.96  1455.10     6.70
081 cntl*MINIDISK*BLOCKS WRITTEN          6.14   583.24     2.68
083 LOG*BLOCKS*WRITTEN                   21.01  2291.50    10.55
084 BIO REQ TO*READ FILE*BLOCKS          27.47  2620.48    12.07
085 BIO REQ TO*WRITE FILE*BLOCKS         16.86  1512.56     6.97
086 BIO REQ TO*READ CATALOG*BLOCKS       23.09  2251.14    10.37
087 BIO REQ TO*WRITE CATALOG*BLOCKS      16.96  1455.10     6.70
089 BIO REQ TO*WRITE CONTROL*MDISK blk    0.20    20.00     0.09
090 TOTAL*BIO REQUEST*TIME                2.88   234.32     1.07
091 I/O REQ TO*READ FILE*BLOCKS          29.59  2674.68    12.32
092 I/O REQ TO*WRITE FILE*BLOCKS         21.55  1968.02     9.06
093 I/O REQ TO*READ CATALOG*BLOCKS       23.09  2251.14    10.37
094 I/O REQ TO*WRITE CATALOG*BLOCKS      16.96  1455.10     6.70
096 I/O REQ TO*WRITE CONTROL*MDISK BLK    0.38    37.09     0.17

          Statistic               Event             Total    Rate
                                  Count    Percent  Seconds  Per
                                                             Second
          Duration of Interval                        60
          Users Logged On          4,807
          Active Users               819
          Quickdisp                   80
          UP Trivials              6,330
          UP Non-Trivials          7,143
          CPU (6) Busy                       91.3    328
                  System Code                 8.0     29
                  User Code                  83.2    300
                  Emulation Mode                     184
                  TTIME                              299
                  VTIME                              182
          Resume Subchannels                                  99.8
          Solicited Interrupts                               487.7
          Start Subchannels                                  384.9
          VIO Requests to DASD                               285.4
          Read Operations for Sys Paging                     237.4
          Write Operations for Sys Paging                    188.4
          Page Faults on Host from Guest                      51.4
          Page Faults on Guest Pages                          50.9
          Read Pages                                         184.7
          Write Pages                                        114.2
          Users Logged On          4,807
          Active Users               819
          Max in PLDV                 84
          Users in Dispatch          171 ---> close to 177, sampled.
           "  Console Wait        2
           "  Running on Real     3
           "  In Real CPU Wait   94
           "  In I/O Wait        18
           "  Quickdisp           7
           "  Simulate Wait      26
           "  Test IDLE          27
           "  Sub Total         177      ---> close to 171, sampled.
          Users Loading                2
          Users Dorm in Dorm       4,636
          Users Dorm in Elig           0
          Q1+Q2+Q3 in Dispatch       162
          Q2+Q3    in Dispatch        45
          Q3       in Dispatch        18
          Prempts from Q0 for E1                             108.4
          Diagnose X98 Issued                                 57.3
          Pages Migrated ESTORE to DASD                      236.7
          Pages Written to ESTORE                           1671.7
          Pages Read in from ESTORE                         1436.8
          VMDBKs In PLDV When Not Empty                       14.9
          Times PLDV Had No VMDBKs                           436.7
          VMDBKs Moved to Master                           1,074.6
          Long Paths Thru Dispatcher                       8,137.2
          Interceptions from SIE                           8,667.1
          Instructions from SIE                           10,289.9
          Unsolicited Interrupts                              23.5
          External Interrupts Received                     1,931.7
          IBM Supplied Diagnose Issued                     2,576.6
          Simulated Instructions                           6,815.1
          Frame List Reorders                                 41.7
          VMDBKs Stolen  total-->                          2,194.6
            "     " ->in CPU#   0    1    2    3    4    5
                         Rate 462. 448. 418. 385. 394.  56.

  VM/ESA Memory measures (Virtual, Expanded and Central, and Auxiliary)

                                          GB        MB        KB
          Slots Allocated for Paging      10G
          Slots In Use for Paging                 1060M
          Slots Alloc for Spool                   4143M
          Slots in Use by Spool                    168M

          Free Storage Extend Frames                47M
          Free Storage Available                            9124K
          Free Storage In Use                               7995K
          Frames In Use for Saveareas                        888K
          Resident Shared Frames                            4432K

          Size of Dynamic Area DPA                 420M
          Frames on Available List                          2320K
          Times Avail List Became Empty  3
          Avail List High Threshold                         3608K
          Avail List Low Threshold                           408K

          Non Pageable Frames                       80M
          Pageable Frames                          501M
          Pages Locked in 31-bit Mode                        540K
          XSTORE Blocks in CP Partition           2048M
          Estore Blocks Released w/o I/O            12M
          Avail XSTORE Note In Use                          6192K

                                            Rate/sec

          Migrate Invocations                  0.8
          Migrate Unreferenced Blocked Pages  51.9
          Stolen Unreferenced Blocked Pages   33.6
          Single Reads for a Guest            10.7
          Single Reads for the System         26.6
          XSTORE Allocations               1,787.2
          XSTORE Deallocations             1,854.0
          IUCV Receive Queue                  31.3
          IUCV Send    Queue                    .1
          Device SSCH+RSCH                   485.0
          RDEV Locks Deferred                   .2
          RDEV Locks Granted Immed           902.7
          Solicited Interrupts               488.1
          Unsolicited Interrupts              23.4


         DASD statistics               Seconds    MPL    msec per I/O

          Device Connect Duration       163.97   2.73       5
          Device Disconnect Duration    370.76   6.18      13
          Device Pending Duration        15.10    .25


          IUCV activity            From          To        Bad
           (rate per second)
           BLOCKIO                 320.4        344.4
           MSG
           MSGALL                    8.0
           MONITOR
           RPI
           CP System Service      1,241.9     1,209.6      83.7
           CCS                      361.6       377.9
           SIGNAL                   123.8       123.8
           Virtual Machine        1,239.2     1,207.7      83.7

                   File Pool Statistics in VXAPLSRV data


                                       -------User File Pool Servers----
                                         SRV2     SRV4    SRV7     SRV8

       005 CHECKPOINT*TIME                .190     .191    .188     .174
       014 CLOSE*FILE*REQUESTS          22.0     15.1    15.6     16.8
       016 CONNECT*REQUESTS               .2       .1      .1       .1
       020 DELETE*FILE*REQUESTS          4.3      3.6     3.2      5.1
       028 LOCK*REQUESTS                  .9      1.2     1.1      1.1
       030 OPEN FILE*NEW REQUESTS         .1       .1      .1       .1
       031 OPEN FILE*READ*REQUESTS      13.9      8.8     9.3      7.7
       032 OPEN FILE*REPLACE*REQUESTS    6.7      5.1     5.6      7.9
       033 OPEN FILE*WRITE*REQUESTS      1.2      1.0      .9       .9
       039 QUERY*USER SPACE*REQUESTS      .5       .8      .9       .7
       040 READ*FILE*REQUESTS           10.8      9.5    10.0     11.7
       045 REFRESH*DIRECTORY*REQUESTS     .6       .4      .4       .2
       047 RENAME*REQUESTS                .2       .1      .2       .2
       052 UNLOCK*REQUESTS               1.0      1.2     1.2      1.2
       054 WRITE*FILE*REQUESTS           5.6      5.5     5.9      6.9
       055 FILE POOL*REQ*SERVICE TIME    7.437    8.003   7.466    8.024
       059 BEGIN*LOGICAL*UNITS OF WORK  26.8     19.1    20.0     19.8
       060 AGENT*HOLDING*TIME            9.037    9.412   8.742   10.066
       062 SAC*CALLS                   320.2    242.0   243.4    283.3
       071 CATALOG*LOCK*CONFLICTS         .1       .6      .5       .5
       072 LOCK*WAIT*TIME                 .007     .026    .027     .057
       076 FILE*BLOCKS*READ             47.1     38.5    41.5     45.6
       077 FILE*BLOCKS*WRITTEN          26.2     24.4    24.6     31.5
       078 CATALOG*BLOCKS*READ          19.6     18.0    19.9     18.5
       079 CATALOG*BLOCKS*WRITTEN        8.0     13.0    16.4     12.2
       081 CONTROL*MDISK*BLKS WRITTEN    3.6      6.1     5.9      5.9
       083 LOG*BLOCKS*WRITTEN           20.8     17.0    16.7     19.7
       084 BIO REQ TO*READ FILE*BLKS    27.3     19.3    22.1     21.8
       085 BIO REQ TO*WRITE FILE*BLKS   13.4     11.5    12.2     16.0
       086 BIO REQ TO*READ CTLG*BLKS    19.6     18.0    19.9     18.5
       087 BIO REQ TO*WRITE CTLG*BLKS    8.0     13.0    16.4     12.2
       089 BIO REQ*WRT CNTL*MDISK BLKS    .2       .2      .2       .2
       090 TOTAL*BIO REQUEST*TIME        2.213    1.903   2.139    2.259
       091 I/O REQ TO*READ FILE*BLKS    28.0     18.9    21.5     23.1
       092 I/O REQ TO*WRITE FILE*BLKS   17.8     13.9    14.9     21.4
       093 I/O REQ TO*READ CTLG*BLKS    19.6     18.0    19.9     18.5
       094 I/O REQ TO*WRITE CTLG*BLKS    8.0     13.0    16.4     12.2
       096 I/O REQ*WRT CNTL*MDISK BLKS    .4       .4      .4       .4


The  documentation  of  the  VM/ESA Monitor records will  now  be  only
in  "softcopy",  and  will  be unloaded  at  install  into  a  file
named MONITOR LIST1403 on your base CP object  disk  (194).   The new
documentation contains an excellent table that details changes made to
the content and  format  of the  monitor records, including the many
APARs that are a part of VM/XA.  But the file I got, offloaded to tape
was not readable with any MVS utility I had ever seen. Any ideas?

A big thanks to IBM for making documentation available so early; it's
nice to not have to play "catch-up".


IV.  SAS Notes.

  1. SAS 6.06 has been repaired, and can be safely used.

   SAS 6.06 has finished its shakedown cruise, and shipyard repairs have
   been made, and the SAS Usage Note tape for March (or later) can now
   be safely and easily installed.  (Starting in February, SAS now ships
   a load library on that tape which contains 100% pre-applied SAS ZAPs
   for all SAS products. A SAS 6.07 will likely exist by year end, but
   THERE IS NO LONGER ANY REASON TO WAIT.  ALL MXG-critical problems are
   fixed by the March tape.  Furthermore, SAS 5.18 sites that have made
   extensions to BUILDPDB may find that their program is now too large
   for the SAS 5.18 compiler (Error 344) which can only be eliminated
   by execution under SAS 6.06 or later.
   See Change 7.038 in member CHANGE07 for 344 error circumvention.

   MXG NOW RECOMMENDS MIGRATION TO SAS 6.06 WITH SAS's MARCH 6.06 TAPE.

  2. SAS 6.06 and 5.18 options now REQUIRED by MXG 8.8.

     Please read this section carefully.  MXG execution will fail if you
     do not pay attention to these (potentially incompatible) changes:

     MANDATORY OPTIONS with either SAS Version 5.18 or 6.06:

        NOIMPLMAC MAUTOSOURCE SASAUTOS=SOURCLIB ERRORABEND MACRO DQUOTE

     MANDATORY OPTIONS with SAS Version 5.18 that do not exist in 6.06:

        MWORK=28000 GEN=0

     MANDATORY OPTION with SAS Version 6.06 that does not exist in 5.18:

        MEMSIZE=12M

     RECOMMENDED Options with either SAS Version 5.18 or 6.06:

        FIRSTOBS=1 OBS=MAX
        NOSOURCE NOSOURCE2 NOMACROGEN NOMPRINT NOMLOGIC

 SAS Version 5.18 requires the MACRO and MWORK=28000 options to be on
 the EXEC statement, but all other mandatory/recommended options can be
 specified in a SAS OPTIONS statement before your %INCLUDE statements:

    a.)   //stepname EXEC SAS,OPTIONS='MACRO MWORK=28000'
          //SYSIN     DD *
           OPTIONS
              NOIMPLMAC MAUTOSOURCE SASAUTOS=SOURCLIB
              DQUOTE ERRORABEND
              GEN=0
              FIRSTOBS=1 OBS=MAX
              NOSOURCE NOSOURCE2 NOMACROGEN NOMPRINT NOMLOGIC;

 However, so you (and I) don't have to type all those options each time
 we run an MXG 8.8 program under SAS 5.18, member SASOPTV5 was built and
 it MUST be %INCLUDEd each time you execute under SAS 5.18:

    b.)   //stepname EXEC SAS,OPTIONS='MACRO MWORK=28000'
          //SYSIN     DD *
            %INCLUDE SOURCLIB(SASOPTV5);
             ... the rest of your program ...

 IF YOU DON'T HAVE THE RIGHT OPTIONS IN EFFECT, YOU WILL RECEIVE
 RUDE AND INSULTING SAS ERROR MESSAGES, INCLUDING 180 ERRORssss!

 For SAS Version 6.06+, options are supplied via an OPTIONS statement,
 via the CONFIG DDname, or (as is now MXG's recommendation), via the
 CONFIG= JCL parameter on the EXEC statement.  MXG 8.8 member CONFIG
 contains the MXG-required options (CONFIG is a changed copy of BATCHXA
 config member on the SAS distribution tape).  In previous Newsletters
 and sample JCL, MXG had used the CONFIG DDname, but because different
 sites have their JCL procedure DD statements in different sequences,
 and since overrides have to be EXACTLY in the right order, it is now
 clear that specifying CONFIG='MXG.SOURCLIB(CONFIG)' on your EXEC
 statement is far safer to ensure the correct options are in effect:

     // EXEC SAS606,TIME=10,
     //             CONFIG='MXG.SOURCLIB(CONFIG)'

 These are the required options added to BATCHXA to create CONFIG:

   NOIMPLMAC MAUTOSOURCE SASAUTOS=SOURCLIB MEMSIZE=12M
   FULLSTATS STIMER

 The MEMSIZE=12M parameter only works with MVS/XA and MVS/ESA. In almost
 all of my tests, 12M was sufficient.  The exceptions were when BUILDPDB
 was "tailored" and many additional SMF records were added to BUILDPDB
 using the EXPDB... exit facility.  One large site with heavy user SMF
 record additions to BUILDPDB reported they needed 24MB.  Since this is
 all virtual storage, and above the line, and only during the "build"
 phase in MXG processing, it should not cause a problem.  If you really
 are limited in virtual storage (or are trying to execute MXG 8.8 with
 SAS 6.06 under MVS/370) you can significantly reduce the virtual memory
 requirement by specifying BLKSIZE=4096 or even 1024. Small blocks will
 reduce the virtual memory size, but can significantly increase the real
 CPU time, run time, I/O interrupts, and the amount of real memory used.
 See the paper on blocksize in Chapter 42 of the MXG Guide.

  3. Format library differences between MVS SAS 6.06-5.18.

   The MXG-built "SASLIB" formats are built by the first step of either
   JCLTEST (for SAS 5.18) or JCLTEST6 (for SAS 6.06).

   Under SAS Version 5.18, formats are members of a PDS load library
   which must be allocated as SPACE=(CYL,(3,1,99)).
   SAS 5.18 formats are always referenced using the DDname of SASLIB.

   Under SAS Version 6.06, formats are members of a SAS data library,
   which must be allocated as SPACE=(CYL,(1,1)). Note there is NOT
   a third parameter in SPACE (for PDS directory blocks) because data
   libraries in SAS 6.06 are physical sequential files.
   SAS 6.06 formats are always referenced using the DDname of LIBRARY.

   In either version of SAS, the blocksize is set by the PROC FORMAT.

   MXG always requires the appropriate DDname (SASLIB or LIBRARY).

   You will fail with SAS 170 FORMAT NOT FOUND errors if you do not
   have the correct format library pointed to by the correct DDname.


  4. CMS-MXG Installation and Execution Considerations.

   a. CMS Format libraries are different.

   MXG Formats are created under SAS 6.06 by executing member FORMATS,
   which creates a SAS Catalog that is named 0FORMATS LIBRARY (yes, the
   first character is a numeric zero and the third an alphabetic "oh").
   Since this catalog contains all of the MXG Formats, the installation
   instructions on page 120 of the MXG Supplement ("iv. Optionally copy
   TEXT into TXTLIB") no longer apply. Also the SASLIB SASLIB option in
   the example is not used to access SAS 6.06 Formats (although SASLIB
   SASLIB is still valid in SAS 6.06 to access SAS 5.18-built formats).
   As long as the 0FORMATS LIBRARY file built by member FORMATS is on
   your first disk, SAS 6.06 will automatically find MXG formats there.

   b. Virtual Storage requirement for MXG and SAS 6.06 with VM/370.

   Executing under VM/370, MXG 8.8 needed a 10MB machine for BUILDPDB.
   It is necessary to use the NOSSEG option to disable the "SAS Saved
   Segment" to use addresses above 7MB, because the SAS Saved segment
   begins at address 7MB!  The NOSSEG only applies to this machine,
   and is needed only for the big virtual memory programs that build
   lots of MXG datasets simultaneously (like VMACVMXA, VMACVMON, etc.).
   The rest of MXG needs only a 4MB machine under VM/360.
   The BLKSIZE is set small in the REXXTES6 exec, so that the virtual
   storage required for the biggest MXG programs (BUILDPDB) would fit in
   the 10 meg I could get under VM/370, but you should experiment to use
   the largest BLKSIZE you can (and still compile the data step!). Small
   block size reduces only the virtual storage size; a large block size
   will reduce CPU time, elapsed time, I/O interrupts, and will actually
   reduce the real memory required (always true for sequential access,
   and building SAS datasets with MXG is a sequential process)!
   Executing under VM/XA, MXG 8.8 was tested in a 16MB machine.

   c. CMS SAS 6.06 ZAPs required.

   SAS ZAPS Z6062068 (add) and Z6060508 (remove) appear to solve the
   only serious CMS SAS 6.06 problem. Without the zap, CMS MACLIB
   CONCAT concatenation fails, and you cannot read members from the
   second concatenation.

   d. CMS Testing Notes.

   The REXX exec that was used for MXG testing with CMS SAS was printed
   in MXG Newsleter EIGHTEEN and is contained in member REXXTST6.
   Before the exec is invoked, you must first issue the DEFINE STOR 10M
   command, followed by the IPL CMS command.  All datasets are sent to
   your "T" disk, a temporary disk (199 cylinders in the exec) that will
   go away at logoff, unless you use the USER= SAS option, or PROC COPY.

   One Irritating problem in my testing of MXG with CMS is IBM's fault:
   There is no CMS equivalent for "DD DUMMY" or NULLFILE.  Under MVS,
   NULLFILE lets me syntax check all MXG code by dummying input files.
   Under CMS I had to create pseudo records (but with RECFM=VB, instead
   of RECFM=VBS) because of Another Irritating IBM feature:
     CMS only partially supports the VBS record format:
        CMS only reads, and can not create/write/copy VBS files, and
        CMS ABENDs if it gets an SMF record with LRECL=32760.
   All this, to verify that ALL of MXG executes under SAS/CMS, for those
   sites who have only a SAS/CMS license and use MXG to process both the
   VM and SMF data under CMS.

  5. SAS Input formats for times and timestamps.

  A problem with CICS time stamps caused me to tabulate my experiences
  and explain those funny calculations in MXG for timestamp values.


  Time/Timestamp         Format            Clock Tick Statistics
                                         Counts per    Pulse duration
                                         Second        (microsec)

  Store Clock, STCK      TODSTAMP8.      1,000,000         1
  -eight bytes           MSEC8.
  -bit 51=microsec       PIB8.6/4096

  Store Clock, STCK      IB4.*1.048576  .953674316         1.048576
  -high order four
   bytes as duration

  Timer Units, TU        TU4.                38400         26
                         PIB4./38400

  CICS Clock 4 bytes     16*PIB4.6           62500         16
                         PIB4./62500
      Note: these are the four MMMM bytes in hhMMMMll eight bytes.

  CICS Clock 8 bytes     16*PIB8.3/65536     62500         16
                         PIB8.3/4096

  SMF Timestamp          SMFSTAMP8.            100      10,000

  RMF Duration           RMFDUR4.             1000     100,000

    SAS Version 5.18 does not support all possible values of some of its
    time formats.  The MSEC8. input format is set missing for a value of
    2**49 or greater. The TODSTAMP8. format is zero for values less than
    2**25. The difference between a TODSTAMP8. and '01JAN1960:00:00'DT
    (the literal for the number of seconds between the IBM 1900 clock
    and the SAS 1960 clock) should exactly match the TODSTAMP8. field if
    had been INPUTed as MSEC8., but it doesn't; the difference remains a
    zero until the field value is 2**12 or greater. The TU4. format is
    correct for all values except 'FF...FF'X, which is set missing!

    SAS Version 6.06 does better, but is still not perfect. The MSEC8.
    input format is no longer missing for large values. However, a value
    of 'FF...FF'X cause TODSTAMP, TODELTA, MSEC8, and even PIB8. to now
    have a value of zero (which prints Jan 1, 1960 for a SAS timestamp!)
    whereas SAS 5.18 correctly handled this maximum binary value!

    Because SAS formats are not perfect, the only truly safe algorithm
    is to use the PIBy.x input format with the appropriate arithmetic
    operation, which more reliably produces the correct values.

  6. "Close" of data libraries was changed by SAS 6.06.

    SAS 6.06 has changed when SAS data libraries are "closed", and this
    change can cause PROC RELEASE DDNAME=XYZ to fail under SAS 6.06.
    This redesign will also change how many type 14/15 SMF records are
    written for a SAS job, since they are only written at "close" time.

    Under SAS 5.18, all SAS data libraries were closed at the end of
    each SAS data step or PROC step.  This caused a type 14/15 SMF data
    record to be written, and even without enabling the SAS User SMF
    record, you could examine those close records and determine which
    part of a complex SAS program took how much elapsed time.  In SAS
    6.06, work data sets are NO LONGER closed between data/PROC steps.
    This reduces the overhead associated with OPEN/CLOSE, and may be
    wise, but it does change what happens!  There is an undocumented
    option, $LIBCLEAR, that will make SAS 6.06 act like SAS 5.18 and
    cause datasets to be closed as before, but it is suggested that
    you DO NOT use that option, as it clearly will increase SAS 6.06
    execution costs.

    The only real incompatibility seen so far occurs with PROC RELEASE.
    In SAS 6.06, you must preceed each PROC RELEASE DDNAME=XYZ; with a
    LIBNAME XYZ CLEAR; statement, to close the XYZ fileref (and, if
    XYZ was dynamically allocated, the CLEAR also deallocates the XYZ
    fileref), because PROC RELEASE cannot release space if the dataset
    is still open.  Instead of the LIBNAME XYZ CLEAR; statement (which
    requires a change to your source program), you can alternatively
    execute the PROC RELEASE in a separate MVS JCL step.


V.  Documentation of MXG Software.
Member CHANGES always contains the version number of MXG Software, and
it lists changes that were installed in that version.  Several members
named CHANGEnn are the contents of changes when that "nn" MXG version
was created.  Details on enhancements will be found in the text of the
Change description that made the enhancement (in those CHANGES and
CHANGEnn members).  The CHANGE  members can also be scanned online (with
SPF BROWSE) to search for specific product name references (CICS,
MVS/ESA, etc.).  The text of each Change identifies the member(s) that
were altered or added by that change, and documentation (especially for
new product support) is often found in comments at the beginning of
those named members.

Member NEWSLTRS contains the text of all newsletters (up through the
newsletter that accompanied that MXG release). You can search NEWSLTRS
for product name or acronym to find the technical notes, APARs, etc.
from all MXG newsletters.  (The Change Log of each Newsletter is not
replicated in member NEWSLTRS, since that text will be in CHANGES).

Member DOCVERnn is the "delta-documentation" (in abbreviated Chapter
FORTY style) of only those variables and datasets that were changed
between successive MXG Versions. There is a DOCVERnn "delta" member in
the MXG library for each version.

Penultimately, member DOCVER contains abbreviated Chapter FORTY format
that documents all of the 26,355 variables from the 791 MXG data sets
that can be created by that MXG Software Version (alphabetically by data
set name and variable name).

Finally, MXG is a source distributed system, so you can often find your
answer by BROWSE/EDIT of the source member, especially the VMAC...'s
that actually create the data set, or ANAL....'s that analyze the MXG
datasets. In many instance, the MXG Variable is the IBM or Vendor's
documented field name. In other cases, the IBM field name is carried as
a comment beside the MXG variable that contains that information.  In
all cases, you should also have the Vendor's documentation of the
particular data record you are using for analysis.


VI.  MXG Version 8.8 Installation, Space, Compatibility, etc.


   MXG Compatibility Exposures in MXG Version 8 for Existing Users:

   a.  The SAS options required by MXG for execution have changed.
   b.  Execution under SAS 6.06 is different than under SAS 5.18.
   c.  To create your PDB directly on tape, IMACCICS must be changed.
   d.  If you have added additional SMF record processing to BUILDPDB,
       and you still execute MXG under SAS 5.18, you may encounter a
       SAS Version 5.18 Compiler Limit "344" error. BUILDPDB is larger.
       See Change 7.038 in member CHANGE07 for 344 error circumvention.

Always read comments in the CHANGES member for compatibility issues, as
well as for any last minute changes added after Newsletter composition.

 1. Installation, re-installation,  and Space Requirements.

The MXG Installation instructions were found in Chapter 32 of the MXG
Supplement for both new installation and for version replacement, and
those instructions, plus this discussion, is still usable. MXG SOURCLIB
member INSTALL will be a complete rewrite of Installation Instructions
for MXG, consolidating both Chapter 32s and these notes.  After you have
unloaded MXG 8.8 SOURCLIB and read these notes, read member INSTALL.

This MXG tape is distributed as a Non-Labelled (NL) tape with a single
file, DCB=RECFM=FB,LRECL=80,BLKSIZE=6160, that is actually an unloaded
Partitioned Data Set containing 1360 members (and about 296,242 source
lines) in IEBUPDTE format.

Under MVS use the IEBUPDTE utility to build the MXG.SOURCLIB library.
Under CMS use the TAPPDS   command to build the SOURCLIB MACLIB library.

Under MVS, MXG Version 8.8 MXG.SOURCLIB requires SPACE=(CYL,(40,1,299))
and DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440) on DASD.

Under CMS, approximately the same space (40 cylinders) will eventually
required by the MXG SOURCLIB MACLIB, but during the CMS installation
process you should have at least 100 free cylinders on your minidisk.

MXG is tailored and extended by "Installation Macro" members (begin with
IMAC) and the "MXG Exit Facility" members (begin with EX) that are put
in the installation's "USERID.SOURCLIB", the "MXG Tailoring" library,
that is concatenated ahead of MXG.SOURCLIB in your SOURCLIB DDname:

  //SOURCLIB DD DSN=USERID.SOURCLIB,DISP=SHR --> site tailoring (yours)
  //         DD DSN=MXG.SOURCLIB,DISP=SHR    --> never changed  (mine)

If this is an MXG re-install, there should already be a USERID.SOURCLIB.
If not, then allocate one using the same attributes as the MXG.SOURCLIB,
with SPACE=(CYL,(1,1,99)); for CMS create an equivalent MACLIB.

Changes are made by copying the member from my library to your library.

IMAC.... members are self-documenting. IMACAAAA indexes all IMACs.

You should create a member CHANGES in your USERID.SOURCLIB and record
therein chronologically the MXG tailoring and installation history,
just like the member CHANGES in MXG.SOURCLIB tracks MXG itself.


You must now browse the members in USERID.SOURCLIB. If there are VMACs
members, they will override the new MXG code, and should be removed now.
However, the real purpose of USERID.SOURCLIB is for normal tailoring of
MXG for your site.  It is completely normal to have some members there:

   If you have installed printed changes from an MXG Newsletter, you
   would have copied member(s) from MXG.SOURCLIB into your site's
   USERID.SOURCLIB and then made the changes therein, or alternatively,
   you would have made a new PDS (we suggested the name MXG.CHANGLIB)
   into which you put those in-between-version changes, concatenating
   it between USERID.SOURCLIB and MXG.SOURCLIB until you receive this
   new MXG Release.  In either case, if you made temporary changes,
   now is the time to remove them.  Delete the changed VMACs members
   from your USERID.SOURCLIB,  or remove the MXG.CHANGLIB from your
   SOURCLIB concatenation.

   If you have tailored IMAC.... members in your USERID.SOURCLIB, and
   that member was changed by the new MXG Version, you must compare your
   member with the new MXG member, and retrofit your tailoring on the
   new member.  These IMACs are of particular importance, if they exist:

   IMACPDB (options for BUILDPDB) has changed and must be retrofit.

   IMACKEEP can cause syntax errors when MXG creates a new dataset from
            an existing record. MXG 8.8 support for CICS/ESA adds new
            CIC.... datasets in TYPE110/VMAC110 processing.  If IMACKEEP
            had been used to tailor the variables kept in CICSTRAN by
            redefining the  _VAR110 macro (an appropriate use of this
            tailoring exit), the new dataset will cause "Dataset not in
            DATA statement" SAS error condition), unless you retrofit
            your _VAR110 changes starting with MXG 8.8.

Whenever you install changes or test a new version of MXG (or even your
own reports), be extra careful to look on the SAS log for any real error
conditions. Search for all occurrences of "ERROR:" and  "ERROR :"  and
"UNINITIALIZED" and "NOT CATLGD", as they may indicate a serious error.

A PROC PRINT and a PROC MEANS of each new MXG-built SAS dataset can help
you to understand their contents, and should be used to examine any
unusually large, negative, or suspicious values.  Print all variables in
the data set, and read the variable's descriptions in Chapter FORTY.


 Summary of critical actions to be taken in installing new version:

     a. All VMAC.... members in your USERID.SOURCLIB must be examined
        and, in general, must be deleted.

     b. All IMAC.... members in your USERID.SOURCLIB must be compared
        with the new IMAC.... members, and if there is a difference,
        you MUST start with this version's IMAC and retrofit your
        installation's tailoring.

     c. It is always wisest to PROC PRINT the first 50 observations of
        important datasets, especially PDB.JOBS, which can be affected
        by user tailoring in IMACPDB. A visual scan of that PROC PRINT
        serves as an excellent validation of correct installation, and
        will almost always detect any serious problems BEFORE you begin
        your production MXG runs!  See the MXG utility UTILPRAL.

VII. Change Log
--------------------------Changes Log---------------------------------

 You MUST read each Change description below to determine if a Change
 will impact your installation.  All of these changes have been made
 to this MXG Source Library.

 Member CHANGES of the MXG SOURCLIB will always be more accurate than
 the printed changes in a Newsletter, because the software is created
 after the newsletter is sent to the printer!

 Member CHANGES always identifies the actual version and release of
 MXG Software that is contained in that library.

 The actual code implementation of some changes in MXG SOURCLIB may be
 different that described in the printed NEWSLETTER (which might have
 printed only the easily installed, critical part of the correction).

 Always read the comments at the beginning of each source member named
 under the Change Number for impacting changes.

 Documentation of new datasets and variables, validation status, notes,
 etc., are usually in comments in the source members.


Alphabetic INDEX of the most significant changes in MXG 8.8.

  Member    Change   Description

  ANALDB2R  8.030  DB2 Reporting from GTF data failed.
  ANALDB2R  8.031  DB2 Report PMLOK03 fails with 170 format error.
  ANALDB2R  8.067  Report selection by time frame incorrect, minor.
  ANALDB2R  8.084  DB2 Trace reporting with PDB=SMF avoids IMAC102.
  ANALDB2R  8.121  PMAUD02/PMAUD03 request caused SAS 145/170 error.
  ANALDB2R  8.280  Transit time and SQL reports added.
  ANALDBTR  8.249  DB2 Trace record pairing (SnnnSnnn) datasets built.
  ANALDSET  8.077  ACCESS variable was not created, report failed.
  ANALDSET  8.223  EXCP count deaccumulation from SMF 14/15 corrected.
  ANALPRTR  8.146  New printer capacity analysis system.
  AS400PDS  8.278  AS400 Records processing.
  ASMTMNT   8.070  MXG Tape Mount Monitor on 7.7 does support MVS/ESA.
  ASMVTOC   8.117  Assembly program for Fast reading of DASD VTOCs.
  ASUMCICS  8.023  Variable LENGTHs caused trunction.
  ASUMJOBS  8.230  Duplicate-Job-Name-Hold delay time estimated.
  BUILDPDB  8.069  ACCOUNT/SACCT in SMFINTRV, SPIN in PDB, TYPE25 added.
  CICINTRV  8.182  New CICINTRV (CICS/ESA Interval Statistics) dataset.
  CICINTRV  8.251  New CICEODRV (CICS/ESA Shutdown Statistics) dataset.
  CONFIG    8.068  SAS 6.06 options member added to MXG library.
  DIFFHSM   8.260  HSM User SMF Record de-accumulation.
  DOCDB2PM  8.112  Documentation of DB2PM-like reports in ANALDB2R.
  DOCGRAF   8.274  SAS/GRAPH device support and MXG standards.
  DOCTREND  8.113  Incompatible changes in MXG Trending implemented.
  EXACFJR   8.047  ACF2 dataset ACF2JR may have deleted observations.
  EXIDMTAS  8.105  IDMS Batch ACCOUNT1-3 fields decoded.
  FMXGUCBL  8.009  Returns wrong value under SAS 5.18.
  GRAFDB2   8.275  SAS/GRAPH analysis of DB2 data.
  GRAFWORK  8.140  New graphic report of RMFINTRV workloads by hour.
  IMACAAAA  8.281  Install aid describing which tailoring IMACs do what.
  IMACACCT  8.133  Safer/Easier user tailoring of kept Account fields.
  IMACICDB  8.177  CICS/ESA 3.1 Transaction DBCTL counters/clocks.
  IMACPDB   8.048  Variables ABNDRSNC DIVRREAD DSSIZHWM TERMNAME added.
  JCLDASD   8.264  MXG DASD (VTOC,VVDS) Space Management example.
  JCLTEST   8.001  Options MACRO DQUOTE MWORK=28K required by MXG 7.7.

  JCLTEST   8.025  WORK.DIRMACR REQUIRES MORE SPACE error condition.
  JCLTREND  8.058  PROC SORT added to avoid not-sorted condition.
  MONTHBLD  8.095  Syntax error under SAS 6.06 circumvented.
  MVS 4.1   8.167  Support for MVS/ESA SP Version 4.1 and RMF 4.2.
  MVS 4.2   8.224  Support for MVS/ESA SP Version 4.2 and RMF 4.2.1
  NPM       8.038  NPM records from VM can be processed.
  PRODUCTS  8.282  Documents MXG support by "product name/acronym"
  RMFINTRV  8.216  SIO counts in RMFINTRV missing.
  SAS 6.06  8.283  "Dataset is not sorted" SAS Error fixed by Z6062141.
  SPIN      8.158  SPIN library fills when MVS/ESA replaces MVS/XA.
  SPIN      8.172  SPIN library fills when MVS/ESA replaces MVS/XA.
  SPUNJOBS  8.258  New PDB.SPUNJOBS dataset for SPIN reporting.
  TRND72    8.143  Critical error, but only in PreRelease 8.3
  TRNDDB2A  8.276  TRENDing for DB2ACCT into MXG Trend database.
  TRNDDB2S  8.279  TRENDing for DB2STAT0 and DB2STAT1.
  TRNDRMFI  8.143  Critical error, but only in PreRelease 8.3.
  UTILGETM  8.206  %MACRO on FILE statement CPU loop in SAS 6.06.
  VMAC110   8.065  Support for new CICS 3.1.1 major changes.
  VMAC1415  8.017  New hiperbatch counts added to SMF type 1415.
  VMAC1415  8.137  Hiperbatch values non-zero when they should be zero.
  VMAC23    8.208  SMF writer memory usage added (OY27449).
  VMAC28    8.111  INPUT function error in NPM subtype 82.
  VMAC28    8.148  Support for NPM Release 4 (NPM 1.4), SMF Type 28.
  VMAC30    8.081  Support for APAR adding DDCONS() option.
  VMAC30    8.082  Support for APAR adding PROCSTEP to type 30s.
  VMAC30    8.208  NOT CATLG 2 or 7 now added (APAR OY24857) to 30s.
  VMAC37    8.022  Variable KEEP, FORMATs.
  VMAC39    8.022  TYPE39EL conditionally created. ZDATE kept.
  VMAC39    8.245  Support for NETMASTER V2.1.0 subtype 255.
  VMAC41    8.015  New VLF counts in new subtype 3 SMF type 41.
  VMAC42    8.136  STOPOVER on subtype 3 due to IBM error.
  VMAC57    8.184  STOPOVER on type 57 (MVS 4.1 and MXG 8.5 only).
  VMAC6     8.057  STOPOVER due to invalid external writer record.
  VMAC60    8.128  STOPOVER on SMS NVR segment in type 60.
  VMAC6156  8.027  STOPOVER error with ICF catalog record section.
  VMAC6156  8.039  TYPE6156 VOLSER may be wrong for GDGs.
  VMAC6156  8.214  "Invalid Third Argument to Function SUBSTR."
  VMAC64    8.134  ACBMACRF fields individually decoded into variables.
  VMAC64    8.219  TYPE64 hiperbatch variables missing.
  VMAC64    8.234  VSAM Hiperbatch counters corrected.
  VMAC7072  8.066  Support for new "SRCL" field in RMF Product section.
  VMAC7072  8.187  Support for new Hitachi processors with MLPF.
  VMAC7072  8.233  "Invalid data for MSOCOEFF..." correction.
  VMAC7072  8.250  Support for PR/SM "overhead" measures APAR OY36668.
  VMAC76    8.254  Support for OPPSI in SYSPLEX is traceable.
  VMAC78    8.049  TYPE78CF only output if CHPID is online.
  VMAC78    8.132  STOPOVER on type 78 subtype 3 with ES/9000 CPUs.
  VMAC79    8.012  STOPOVER correction, support validation.
  VMAC79    8.055  Formats and units corrections.
  VMACACF2  8.002  ACF2 SMF record caused STOPOVER.
  VMACACF2  8.090  Further validation of ACF2 SMF record.
  VMACARB   8.190  Support for Arbiter Version 2.1.1 SMF records.
  VMACCIMS  8.064  Support for IMF 2.6 (for IMS 3.1).
  VMACCMF   8.247  Support for Boole & Babbage CMF SMF record 240.
  VMACCRAY  8.044  Support for CRAY COS operating system
  VMACDB2   8.102  Distributed DB2 header added to DB2ACCT.
  VMACDB2   8.225  Support for Landmark's The Monitor for DB2.
  VMACDCOL  8.130  DCOLLECT enhancement for all seven records.
  VMACDCOL  8.210  DCOLLECT migration/backup tape dates correction.
  VMACDCOL  8.252  Support for DCOLLECT APAR OY37378.
  VMACDCOL  8.074  Support for SMS DCOLLECT data records.
  VMACDMON  8.003  Uninitialized variable in ANALDMON caused.
  VMACDMON  8.236  Support for LEGENT ASTEX replacement for DASDMON.

  VMACEPMV  8.217  Support for Candle's EPILOG for MVS SMF Type 180.
  VMACHSM   8.138  Preliminary support for HSM User SMF records.
  VMACIDMS  8.005  IDMS/R SMF record variables format incorrect.
  VMACIMS   8.006  IMS crashes required duplicate DTOKEN protection.
  VMACIMS   8.098  Support for IMS/ESA 3.1 log records.
  VMACIMS   8.118  IMS Cold start support and logic changes.
  VMACIMS   8.119  Correction of IMS Input Queue time.
  VMACIMS   8.176  IMS 3.1 DBCTL Thread Transactions Deleted.
  VMACIMS   8.256  Support for IMS Wait-for-Input from IMS log.
  VMACMDF   8.091  Amdahl's MDFTRACH SMF records corrected.
  VMACMEMO  8.227  Support for MEMO European Electronic Mail SMF record.
  VMACMON8  8.161  Support for Landmark's Monitor for CICS Version 8.0
  VMACMONI  8.036  CREATIME in MONITASK may have wrong date.
  VMACMPT   8.173  Support for Amdahl's MDF Performance Tool
  VMACNSPY  8.010  NETSPY 3.2 support was incomplete.
  VMACNSPY  8.043  Netspy 3.1 STOPOVER.
  VMACNSPY  8.265  Support for NETSPY Release 4.0.
  VMACORAC  8.080  Support for Oracle SMF record.
  VMACROSC  8.028  ROSCOAUD contained zero observations always.
  VMACSASU  8.157  SAS User Record changed under SAS 6.06.
  VMACSESA  8.228  Support for Volvo's SESAME VTAM Monitor.
  VMACSMF   8.013  DB2 read from GTF. Minor.
  VMACSPMS  8.149  Support for Amdahl's SPMS SMF (Cache DASD CU).
  VMACSTC   8.092  STC 4400 Silo SMF record new subtype.
  VMACSTC   8.194  STC 4400 Silo SMF record new subtype STOPOVER!
  VMACSYNC  8.020  Invalid CPUTCBTM value detected.
  VMACSYNC  8.056  SIRECFM,SORECFM contain invalid data value.
  VMACSYNC  8.123  Error (only in PreRelease 8.2) in TYPESYNC data.
  VMACSYNC  8.211  SYNCSORT EW2903 detects SAS invoked Sort.
  VMACSYNC  8.253  Support for SYNCSORT SCZ 33038 (Hiperspace stats).
  VMACTMNT  8.033  Minor. Formats for DEVFROM/DEVTO.
  VMACTMVS  8.173  Protection for TMON/MVS Spanned Records
  VMACTPNS  8.269  Support for TPNS log.
  VMACTPX   8.016  No observations in TPXINTRV.
  VMACTSOM  8.007  Missing STRTTIME in TSOMCMND.
  VMACTSOM  8.104  Invalid READTIME due to CA7 in TSO/MON record.
  VMACTSOM  8.262  Support for LEGENT TSO/MON Release 5.3.0.
  VMACVMON  8.037  Divide by zero.
  VMACVMON  8.045  24APR90 became 02OCT89 when 202 day clock wrapped.
  VMACVMON  8.106  VM Start Time off by 43 minutes on Aug 4, 1990.
  VMACVMXA  8.004  OMEGAMON/VM creates invalid VM/XA VB records.
  VMACVMXA  8.099  Many VM/XA PTFs altered Monitor records.
  VMACVMXP  8.041  Minor EXPLORE/VM processing changes.
  VMACVPD   8.234  Support for NETVIEW's VPD aka NAM type 37 SMF data.
  VMACVVDS  8.073  Validation of VVDS record created by ASMVVDS.
  VMACWSF   8.100  Support for WSF archive product SMF.
  VMACX37   8.024  STOPX37, minor.
  VMACZRB   8.054  RMF 4.1.1 caused STOPOVER.
  VMACZRB   8.079  Further validation of RMF III VSAM data.
  VMACZRB   8.156  Further validation and reports.
  VMXGDOWN  8.273  Download to PC all datasets in a SAS library.
  VMXGSUM   8.021  Missing variable initialization protection.
  VMXGVTOC  8.018  OFFSET4E and SMS variables added.
  VMXGVTOC  8.032  Minor. RECFM should be $4.
  VMXGVTOC  8.075  Did not capture free space at beginning of volume.
  VMXGVTOF  8.193  Build VMXGVTOC datasets from ASMVTOC records.
  VMXGVTOR  8.009  Incorrect on 7.7, changes not propagated.
  XMAC7072  8.014  ZDATE not kept in TYPE70PR and TYPE72MN
  ZZZZZZZZ  8.011  Final member of MXG Library is named.

Inverse chronological list of all Changes:

  Changes thru 8.283-8.187 were printed here in Newsleter NINETEEN

  See member CHANGE08 for actual change text.

End of Changes Log in Newsletter NINETEEN.