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

CHANGE 16.16

 
=========================member=CHANGE16================================
 /* COPYRIGHT (C) 1984-1999 MERRILL CONSULTANTS DALLAS TEXAS USA */

         MXG Version 16.16  is dated Feb 20, 1999, thru Change 16.394.
    Newsletter THIRTY-FIVE was dated Feb 20, 1999, thru Change 16.367.
First    MXG Version 16.10 was dated Feb  8, 1999, thru Change 16.364.
         MXG Version 16.09 was dated Jan 20, 1999, thru Change 16.334.
         MXG Version 16.08 was dated Dec 23, 1998, thru Change 16.315.
Last     MXG Version 16.07 was dated Dec  5, 1998, thru Change 16.299.
First    MXG Version 16.07 was dated Dec  4, 1998, thru Change 16.296.
Last     MXG Version 16.06 was dated Dec  2, 1998, thru Change 16.292.
Fifth    MXG Version 16.06 was dated Nov 30, 1998, thru Change 16.289.
Fourth   MXG Version 16.06 was dated Nov 21, 1998, thru Change 16.285.
Third    MXG Version 16.06 was dated Nov 18, 1998, thru Change 16.284.
Second   MXG Version 16.06 was dated Nov 17, 1998, thru Change 16.279.
First    MXG Version 16.06 was dated Nov 16, 1998, thru Change 16.278.
         MXG Version 16.05 was dated Nov  1, 1998, thru Change 16.259.
Fourth   MXG Version 16.04 was dated Oct 19, 1998, thru Change 16.242.
Third    MXG Version 16.04 was dated Oct  9, 1998, thru Change 16.231.
Second   MXG Version 16.04 was dated Oct  7, 1998, thru Change 16.224.
    Newsletter THIRTY-FOUR was dated Sep 30, 1998, thru Change 16.221.
First    MXG Version 16.04 was dated Sep 30, 1998, thru Change 16.221.
Beta 6   MXG Version 16.03 was dated Sep 23, 1998, thru Change 16.216.
Beta 5   MXG Version 16.03 was dated Sep  9, 1998, thru Change 16.196.
Beta 4   MXG Version 16.03 was dated Aug 11, 1998, thru Change 16.171.
Beta 3   MXG Version 16.03 was dated Jul 15, 1998, thru Change 16.147.
Beta 2   MXG Version 16.03 was dated Jul 14, 1998, thru Change 16.147.
Beta 1   MXG Version 16.03 was dated Jul 10, 1998, thru Change 16.147.
Final    MXG Version 16.02 was dated Jun  8, 1998, thru Change 16.120.
First    MXG Version 16.02 was dated Jun  2, 1998, thru Change 16.112.
Real     MXG Version 16.01 was dated Apr  9, 1998, thru Change 16.053.
First    MXG Version 16.01 was dated Apr  8, 1998, thru Change 16.052.
         MXG Version 15.15 was dated Feb 23, 1998, thru Change 15.391.
   Newsletter THIRTY-THREE was dated Feb 23, 1998, thru Change 15.382.

Contents of member CHANGES:

I.    MXG Software Version 16.16 is now available.
II.   MXG Technical Notes
III.  MVS Technical Notes.
IV.   DB2 Technical Notes.
V.    IMS Technical Notes.
VI.   SAS Technical Notes.
VII.  CICS Technical Notes.
VIII. Windows NT Technical Notes.
IX.   Incompatibilities and Installation of MXG 16.16.
X.    Online Documentation of MXG Software.
XI.   Changes Log

I.   MXG Software Version 16.16 was shipped with Newsletter THIRTY-FIVE.

 1. Major enhancements added in MXG 16.16 (not printed in Newsletter 35)

      Support for CA UniCenter Unix Performance Monitor.
      Support for TMON for CICS Version 2 PTF TH01129
      Support for NETSPY Version 5.2 (COMPAT).
      Support for new SNA BASE and IBM SNA objects.
      ANALHSM rewritten as %MACRO, new thread use/queue measures.
      XSUM70PR created to not-count ICF partition's CPU as a CPU.
      Trending member for PDB.SMFINTRV / TYPE30_V dataset.
      Automatically tailor BUILDPDB with the new UTILBLDP utility.
      CPU increase (16.06-16.10) in BUILDPDB due to CICINTRV corrected.

    Major enhancements added in MXG 16.10:

      OS/390 R2.7, CICS TS 1.3 and DB2 6.1 were supported in MXG 16.09
        and that support is now documented.  See 16.09 enhancements.
      Support for IDMS Version 14 Journal Records.
      Support for Sterling's SOLVE NetMaster TCP/IP SMF.
      Support for BETA93 subtypes 1,2,3,4,20,40,41,42.
      Support for WINDOWS NT 5.0 (INCOMPATIBLE) with NTSMF.
      Support for new NT 4.0 objects.

    Major enhancements added in MXG 16.09 (revised):

      Support for Year 2000 kept julian date fields input as 0cyyddd.
      Support for CICS TS 1.3 (INCOMPATIBLE):
        Lots of new CICSTRAN data, including Java execution
        and wait times and web statistics, and new statistics data for
        each of the now-eleven CICS TCBs. See Change 16.322.
      Support for DB2 Version 6.1 (COMPATIBLE).
        New header identifies end user's USERID and TERMINAL, more
        wait information, CPU time for Stored Procs and Triggers and
        User Defined Functions (with SQL time separated). Change 16.318.
      Support for OS/390 Release 2.7 (COMPATIBLE)
        New Type 74-6 HFS Global/Buffer/File Statistics, Type 73/79 CPMF
        mode, Type 70 Dec/Shared Processors Changed, new type 74 time of
        Device-Active-Only, and OS/390 Firewall Server Log Messages are
        written in new Type 109 SMF record.  See Change 16.329.

    Major enhancements added in MXG 16.08:

      Support for APAF for more than 8 CPU Engines.
      Support for BETA93 Release 3.1.3 INCOMPATIBLE subtype 0, 20.
      VMXGSUM will use new INHERIT if executed under SAS Version 7.
      IMS 6.1 support corrected for APPC, CPIC driven transactions.
      Support for DOS/VS Power V6.3.0 (COMPATIBLE).
      Revisions to RMM EDGR support - numeric date variables.

    Major enhancements added in MXG 16.07:

      Support for APAF 4.1 and 4.3 (INCOMPATIBLE).
      Support for BETA93 Release 3.1.3 INCOMPATIBLE subtype 21.
      ANALRMFR RMF reports added REPORT=XCF.

    Major enhancements added in MXG 16.06:

      Support for NPM 2.4, unfortunately very INCOMPATIBLY changed!
      PDB.CICINTRV dataset may be real bad; please get this new code!
      Support for CICS TS 1.2 Journal Format, INCOMPATIBLE.
      Support for PSF/MVS Release 3.1.0 (COMPATIBLE).
      Support for subtypes 17-20 (FSRTYPE=) HSM FSR records.
      Support for IXFP / ICEBERG fields added by APAR L170017.
      Support for Boole & Babbage MainView for CICS CMRDETL file.
      Correction for SMF 118 TCP/IP logic to not use length/subtype.
      MXG 16.04-16.05 only. ASUM70PR summarized to SHIFT vice HOUR.

    Major enhancements added in MXG 16.05:

    Fix for TMS5 multi-datasets tapes (was wrong).
    Fix for IMS 6.1 Log Records (TYPEIMSA) if GMT Offset was not zero.
    Support for OAM (Optical Access Method) SMF type 85 record
    Support for DFSORT Release 15 (no change)
    Support for Interlink TCPaccess Vers 5.2 (INCOMPAT)
    Support for decompression of MainView history files.
    Support for RACF "installation-defined data field".
    ML-18 of MXG ASMTAPES MXGTMNT monitor fixes DSAB circular queue.

    Major enhancements added in MXG 16.04:

 2. MXG 16.04 is a major internal redesign of MXG, the new "MACKEEP"
    architecture, which makes tailoring of MXG datasets simpler and more
    powerful.  You can change the output DDNAME for a large dataset with
    a simple "%LET Pdddddd=DDNAME;" statement, you can put all of your
    MXG changes in the single member IMACKEEP (instead of having to EDIT
    an IMACxxxx for each product), or you can even tailor MXG instream
    using the new "%LET MACKEEP = ;" logic, and never have to EDIT any
    members into your USERID.SOURCLIB!.  This redesign to externalize
    all attributes of every dataset began in MXG 10.10 with the "_L,_K"
    macros; now that the software is finally done, I can get back to the
    rewrite of MXG documentation (but note that member DOCMXG already
    exists to document the new architecture, with examples!).

    And most, if not all, of your existing MXG tailoring should still
    work without change!

            "MACKEEP" Architecture of MXG-built SAS "Datasets"
                         Highlights

            Everything about the creation of an MXG dataset is now
            fully externalized, and ALL MXG tailoring can now be done
            either by
               EDIT into a single member, IMACKEEP (instead of EDITing
               a separate IMAC for each product)
            or
               all tailoring can be done "instream" using the new syntax
                   %LET MACKEEP=   MACRO _oldname newvalue  %  ;

            All MXG datasets now have an &Pdddddd macro variable as the
            destination DDNAME/LIBREF, so you can use %LET Pdddddd=MYDD;
            in IMACKEEP or with MACKEEP to change the DD to which each
            MXG dataset is written or read from.

            See member DOCMXG, INSTALL, and Change 16.134 for details.

    Major enhancements added in MXG 16.04:

    MXG "MACKEEP" Architecture - see INSTALL, DOCMXG, Change 16.134.
    Support for OS/390 Release 2.6 (COMPATIBLE).
    Support for IMS Log processing for IMS 6.1.
    Support for NTSMF Version 2.2.
    Support for ACF2 Version 6.2 type 'V' (INCOMPATIBLE).
    Support for TCP/IP 3.4 SMF type 118 (INCOMPATIBLE) changes.
    Support for NCR Teradata DBS performance data.
    Support for Landmark's SQL/CAPTURE Products 'D6' record.
    Support for XCOM Release 3.0 (COMPATIBLE).
    Support for Soft Audit's Installed Products File.
    Support for BGS I/O Monitor Version 5.1.0 (COMPAT).
    Support for HSM APAR OW31281 adds RECALL, DSR, FSR statistics.
    Support for DFSMS 1.4.0 added WFSCPUTM for ABARS CPU cost.
    Support for NTSMF CachingManager and Packet Filter objects.
    Support for NT Service Pack 5A SYSTEM/PROCESS fields.
    Major revision of TMS/CA-1 processing logic in TYPETMS5.
    ML-17 of MXGTMNT/ASMTAPES synchronizes automatically.
    Enhanced TPM support reads all possible variables in TYPETPMX.
    Analysis of SMF Write Rates (MEGABYTES at 10/100sec)
    MXG CONFIG value of VMCTLISA=40K raised to 160K.
    VMXGSUM syntax for "DATETIME" now uses real name.
    ABEND/CONDCODE in PDB.JOBS is now valid, has 1st ABEND.
    (MXG 16.03 was only released as a Beta.)

    Major enhancements added in MXG 16.02:

    Support for TYPEIMS7 for IMS 6.1.
    Support for OS/400 Version 4.2.0 COMPATIBLE.
    Support for MQ Series Version 1 Release 2 INCOMPATIBLE.
    Support for Landmark's Monitor for DB2 V 3.1 INCOMPATIBLE.
    Support for Candle Omegamon V400 CANMQ and CANWLMSC.
    Support for Candle Omegamon CICS V400 "255" record.
    Support for Raptor Systems' Eagle Firewall 121 Log.
    Support for TME 10 NetView for OS/390 V1 R1 SMF 38.
    Support for Web Proxy logs Extended Common Log fmt.
    Support for Magstar tapes in TYPETMS5 INCOMPATIBLE.
    &PDBxxxx and &yyyzzz "Dataset &Macro" naming rules.
    New PDB datasets TYPE74CO/ME/PA/SY/OM/LK added to daily PDB.
    New ANALABND report ABENDs from PDB.STEPS, uses PROC TABULATE.
    Multiple JES3 purge records created duplicate PDB.JOBS obs.
    All MXG variables with format MGBYTES are now stored in 8-bytes.
    New ANAL6264 merges VSAM type 62 and 64 for OPENTIME.

    Major enhancements added in MXG 16.01:

     The major thing in 16.01 is support for Year 2000 products that
     were not Y2K compliant when 15.15 was built, so MXG 16.01 is now
     the minimum level to support all vendor records that provide year
     2000 dates, but there are also a few fixes and several enhancements
     and new products supported.

    Year 2000 issues that require MXG 16.01 or the specific change:
      TYPE6 READTIME was 1900 in 2000 due to MXG error (Change 16.039).
      AS/400 Year 2000 Support was Incorrect (Change 16.035).
      NETVIEW NPM type 28 year Y2K Ready but INCOMPATIBLE record change.
      Landmark TMON for CICS V2 converted to V8.1 Y2K Ready, INCOMPAT.
      IPAC RDS View Direct V 6.1 Y2K Ready, but INCOMPATIBLE change.
      MXG Software now warrants it is "Year 2000 Ready".
    Support for new NTSMF objects (Database, SMTP Server, WEB Service).
    Support for revised NTSMF Active Server Pages and IISG records.
    Support for Software Engineering's SpaceManager data records.
    Support for DECnet/SNA DTF SMF records.
    MXG 15.15 problems reported and fixed:
      Variable MXGVERSN in TYPE70 was blank in 15.15; impacts CPEXPERT.
      Deactivated PR/SM Partition may cause over 100% CPU Busy for CEC.

  All of these enhancements are described in the Change Log, below.

    Availability dates for the IBM products and MXG version required:

                                       Availability     MXG Version
      Product Name                     Date              Required

      MVS/ESA 4.1                      Oct 26, 1990         8.8
      MVS/ESA 4.2                      Mar 29, 1991         9.9
      MVS/ESA 4.2.2                    Aug     1991         9.9
      MVS/ESA 4.3                      Mar 23, 1993        10.10
      MVS/ESA 5.1.0 - compatibility    Jun 24, 1994        12.02
      MVS/ESA 5.1.0 - Goal Mode        May  3, 1995        13.01
      MVS/ESA 5.2.0                    Jun 15, 1995        13.05
      MVS/ESA 5.2.2                    Oct 19, 1995        13.09
      OS/390  1.1.0                    Feb 22, 1996        14.01
      OS/390  1.2.0                    Sep 30, 1996        14.05
      OS/390  1.3.0 Compatibility Mode Mar 28, 1997        14.14
      OS/390  1.3.0 WLM Goal Mode      Mar 28, 1997        15.02
      OS/390  2.4.0                    Sep 28, 1997        15.06
      OS/390  2.5.0                    Feb 24, 1998        15.06
      OS/390  2.6.0                    Sep 24, 1998        16.04
      OS/390  2.7.0                    Mar 26, 1999        16.09
      CICS/ESA 3.2                     Jun 28, 1991         9.9
      CICS/ESA 3.3                     Mar 28, 1992        10.01
      CICS/ESA 4.1                     Oct 27, 1994        13.09
      CICS/ESA 5.1 aka CICS/TS V1R1    Sep 10, 1996        14.07
      CICS-Transaction Server V1R1     Sep 10, 1996        14.07
      CICS-TS V1R1 with APAR UN98309   Sep 15, 1997        15.06
      CICS-TS V1R2                     Oct 27, 1997        15.06
      CICS-TS V1R3                     Mar ??, 1999        16.09
      CRR 1.6                          Jun 24, 1994        12.02
      CRR 1.7                          Apr 25, 1996        14.02
      DB2 2.3.0                        Oct 28, 1991        10.01
      DB2 3.1.0                        Dec 17, 1993        13.02A
      DB2 4.1.0 Tolerate               Nov  7, 1995        13.07
      DB2 4.1.0 Full support           Sep 11, 1996        14.07
      DB2 5.1.0 Tolerate               Jun 27, 1997        14.14
      DB2 5.1.0 Full support           Jun 27, 1997        15.02
      DB2 6.1.0                        Mar ??, 1999        16.09
      DFSMS/MVS 1.1                    Mar 13, 1993        11.11
      DFSMS/MVS 1.2                    Jun 24, 1994        12.02
      DFSMS/MVS 1.3                    Dec 29, 1995        13.09
      DFSMS/MVS 1.4                    Sep 28, 1997        15.04
      DFSMS/MVS 1.4 HSM                Sep 23, 1998        16.04
      MQM 1.1.2, 1.1.3, 1.1.4          Apr 25, 1996        14.02
      MQ Series 1.2.0                  May 26, 1998        16.02
      NETVIEW 3.1 type 37              ??? ??, 1996        14.03
      NPM 2.0                          Dec 17, 1993        12.03
      NPM 2.2                          Aug 29, 1994        12.05
      NPM 2.3                          ??? ??, 1996        15.08
      NPM 2.4                          Nov 18, 1998        16.06
      RMDS 2.1, 2.2                    Dec 12, 1995        12.12
      TCP/IP 3.1                       Jun 12, 1995        12.12
      TCP/IP 3.4                       Sep 22, 1998        16.04
      DOS/VSE POWER V6.3.0             Dec 19, 1998        16.08
      VM/ESA  2.0                      Dec 23, 1992        10.04
      VM/ESA  2.1                      Jun 27, 1993        12.02
      VM/ESA  2.2                      Nov 22, 1994        12.06
      VM/ESA  2.3                      ??? ??, ????        16.08
      IMS     4.1                      Jul  4, 1994        12.02
      IMS     5.1                      Jun  9, 1996        14.05
      IMS     6.1                      ???  ?, 199?        16.04
      AS400 3.7.0                      Nov  1, 1996        15.01
      AS400 4.1.0                      Dec 30, 1996        15.08
      AS400 4.2.0                      Apr 27, 1998        16.02

    Availability dates for non-IBM products and MXG version required:

                                                        MXG Version
      Product Name                                       Required

      Microsoft
       Windows NT 4.0 and NT 3.51                          14.14
       Windows NT 4.0 Service Pack 2                       15.03
       Windows NT 4.0 Service Pack 5                       16.04
      Demand Technology
       NTSMF Version 1 Beta                                14.11
       NTSMF Version 2.0                                   15.05
       NTSMF Version 2.1                                   15.06
       NTSMF Version 2.2                                   16.04
      Landmark
       The Monitor for DB2 Version 2                       13.06
       The Monitor for DB2 Version 3.0                     16.02
       The Monitor for DB2 Version 3.1                     16.02
       The Monitor for CICS/ESA 1.2 -                      12.12
       The Monitor for CICS/ESA 1.3 -                      15.01
       The Monitor for CICS/ESA 2.0 -                      15.06
       The Monitor for MVS/ESA 1.3  -                      12.05
       The Monitor for MVS/ESA 1.5  -                      12.05
       The Monitor for MVS/ESA 2.0  -                      15.09

      Candle
       Omegamon for CICS V200 User SMF                     12.05
       Omegamon for CICS V300 User SMF                     13.06
       Omegamon for CICS V400 User SMF                     16.02
       Omegamon for CICS V400 type 110 segments            16.02
       Omegamon for IMS V110 (ITRF)                        12.12
       Omegamon for IMS V300 (ITRF)                        14.04
       Omegamon for MVS V300                               13.05
       Omegamon for MVS V400                               13.06
       Omegamon for DB2 Version 2.1/2.2                    13.05
       Omegamon for VTAM V160                              12.04A
       Omegamon for VTAM V400                              15.15
       Omegamon for SMS V100/V110                          12.03
      CA
       ACF2 6.2                                            16.04
       ASTEX 2.1                                           14.04
       NETSPY 4.7                                          14.03
       NETSPY 5.0                                          14.03
       NETSPY 5.2                                          16.05
      Boole & Babbage
       IMF 3.1 (for IMS 5.1)                               12.12
       IMF 3.2 (for IMS 6.1 only)                          15.09
       IMF 3.2 (for IMS 5.1 and 6.1)                       16.04
      Memorex/Telex
       LMS 3.1                                             12.12A
      MXG IMS-Log Not-Officially-Supported
       IMS 6.1  -   ASMIMSL6/TYPEIMSA                      16.06
       IMS 5.1  -   ASMIMSL5/TYPEIMSA                      16.01
      Amdahl
       APAF 4.1, 4.3                                       16.08


II.  MXG Technical Notes

 1. Counting tape mounts.
    Tape mount counts from the MXGTMNT monitor can be compared with the
    tape mount counts (TAPNMNTS+TAPSMNTS) in the step records, and there
    can be differences, mostly due to the difference in time-frame of
    the mount records (when they occur) and the step records (when the
    step ended):
    - MXG will count high for Started Tasks that never end (e.g.DFHSM),
      or for any job whose step record had not yet been written in the
      SMF time-frame you examined.
    - MXG will count low for steps that ended in the SMF time-frame, but
      whose mounts occurred before the start of that SMF file.
    - MXG counts physical mount events, but the type 30 counts completed
      mounts, so when your tapeape intentionally mounts the wrong VOLSER
      five times
         if they can't find the right tape, they mount any tape, knowing
         MVS label-check will prevent it from being used, but any mount
         terminates the outstanding mount message so the MVS console guy
         can't see how long the real mount has been waiting!
      the MXG count is five mounts, the step record count is one.
    - MXG misses some VTS scratch mounts, when using the default two
      second sampling in MXGTMNT, because scratch mounts to VTS can be
      fast.  In one day MXG missed 200 VTS scratch mounts out of 2000
      total VTS mounts with the two second sampling, but MXGTMNT saw
      all of the VTS scratch mounts with one-half second sampling.

    Recommendations:

    If you want to compare totals, use the TYPE30_V or PDB.SMFINTRV data
    from type 30 interval records instead of TYPE30_4 or PDB.STEPS data
    to minimize (but not eliminate) time-frame error, since the interval
    records will count the mounts for those long-running jobs and STCs.

    If you do have Virtual Tape Devices, you could change the interval
    constant in member ASMTAPES (INTERVAL DC F'200' to  DC F'050') to
    change the MXG default of 2.00 seconds to 0.50 seconds, and then
    re-assemble to change the MXGTMNT program to sample at half-second
    intervals.  While 2 seconds is still the MXG default, half-second
    was tested and briefly suggested as an alternative, as the CPU cost
    was still small:
      At half-second sampling, it took less than 3 CPU seconds per
      15 minute interval to scan 100 tape devices, and another 1 CPU
      second for every 100 tape mounts, or a few minutes per day with
      2000 mounts.

    However, even with .5 second interval, the mount monitor missed some
    fast VTS mounts, which caused me to create the completely new logic
    in the ASUMTAPE program, which creates the new PDB.ASUMTAPE dataset
    (that should be used in place of PDB.TYPETMNT in tape mount
    analysis).  The new logic is driven by the type 21 dismount record,
    so even if MXGTMNT missed the fast mount, PDB.ASUMTAPE has the tape
    event, albeit with the tape mount duration missing (so you know it
    was less than 2 secs!), so the original 2 second default was kept.

    If you decide to change the sample interval, you can compare the
    number of observations in PDB.ASUMTAPE that have missing TAPMNTTM,
    to see how many more of the fast-scratch-VTS-mounts you actually
    capture at 1/2 second instead of the MXG default of 2 seconds.

III. MVS Technical Notes.

 1. APAR OW35684 confirms that the BLKSIZE in the DD segments of type 30
    records is correct for tape but incorrect for a DASD dataset that is
    being opened for output DISP=NEW when DADSM allocate did not
    determine a system determined blocksize (SDB) even though BLKSIZE=0
    was specified on the DD statement.  DADSM SDB processing was not
    done because DSORG and/or LRECL were not also specified.  The APAR
    is closed "FIN" - Fixed in Next DF/SMS Release in 18-24 months.

 2. APAR OW31700 RMF OS/390 type 74 subtype 5 describes "short records"
    created when there are more than 153 devices on a cache controller
    (because 153 segments fills the 32756-byte limit of SMF data).  They
    have no impact on MXG, as MXG reads each record and outputs from
    each device data section (but IBM had to add counters so RMF
    could reassemble the large event from these 32K "small" records).
    There may be an error, as I have seen type 74 subtype 5 records with
    only the Product and Control section, with no status nor data and
    with R745CCNT, record sequence, of 2.  Site is talking to IBM.

 3. SMF type 42 APARS:
    APARs OW29633 corrects timestamps in TYPE42DS (type 42 subtype 6)
    SMF records that caused SMF42PTS to be much earlier than the job's
    READTIME.  Reported in OW10694 (closed RET) and OW25624 (closed PER)
    the actual error was a failure to freemain between jobs, so you
    would have someone else's READTIME in your record.  This error was
    not fixed to correct SMF, but because someone's system stayed up
    long enough that the memory leak causes a storage shortage ABEND!

    APAR OW32248 discusses type 42 VSAM/RLS counter errors, affecting
    SMF41IAY/IAZ/IBA/IBB/ICY/ICZ/IDA/IDB/IBG/IDG fields.

    APAR OW35762 corrects count of SEQ blocks read and written for PS
    datasets on non-SMS managed volumes.

 4. APAR OW35952 corrects large value for IOUNITS in type 30 records;
    the problem primarily affected DB2 address spaces with very large
    (but legitimate) I/O counts that caused an overflow internally in
    IBM code.  The APAR text cites negative values in SMF30IO (IOUNITS),
    but as MXG uses PIB instead of IB, very, very large values (so they
    are noticed!) are created rather than small negative values.

 5. APAR PQ18797 for MQ Series Release 1.3.0, PTF UQ23424 corrects zero
    values for 'QMSTxxxx' variables in dataset MQMMSGDM from type 115
    SMF record subtype 2.

IV.  DB2 Technical Notes.

 1. Boole and Babbage's MainView for DB2 product's THRDHIST VSAM file is
    used for online access and its keyed record format is not public, so
    MXG cannot support that file.  But Boole recommends you create DB2
    SMF records (their DB2 batch reports use the 100/101/102 records) so
    THRDHIST was never intended to be useful for accounting or trending.

 2. MXG Newsletter 34 reported that after installing APAR PN55122 and
    migrating to CICS 5.1, that LU6.2 terminal's QWHCTOKN no longer had
    the UOWID token in their DB2ACCT record (as a result, MXG's ASUMUOW
    could not match DB2ACCT to CICSTRAN by Unit-of-Work ID).  IBM has
    now released APAR PQ15565 (and PTF UQ18583) to correct their error.

 3. APARs PQ10864/PQ06968/PQ10864 discuss excessive numbers of DB2 type
    101 SMF records that are created with CPU parallelism; if your DB2
    application is running with more than 1 degree of CPU parallelism,
    the child tasks will create SMF 101 accounting records every time
    they are spawned (i.e., every SQL execution).  In cases where an
    application loops thru static SQL frequently or for transaction type
    queries the volume can be a very serious problem. Use the DSNZPARM
    macro DSN6SYSP PTASKROL parameter for parallel task accounting
    control.  APAR PQ06968 has been created to allow RLF to disable
    modes of parallelism during static BIND; by using RLFFUNC=4 during
    BIND, you can force problem applications back to IOP parallelism
    (versus CPU parallelism). APAR PQ28414 provides a new ability to
    limit the degree of query parallelism, and provides a maximum degree
    parameter, PARAMDEG, and adds the field to the install process in
    Version 6.  This note updated with IBM input 19Dec1999.

V.   IMS Technical Notes.


VI.  SAS Technical Notes.

 1. MXG 16.05 QA stream has executed using the SAS Version 7 Beta, under
    OS/390, Windows 95/98 and Windows NT.  Minor changes were needed in
    MXG code, mostly to circumvent Beta things that SAS will have fixed
    by the Production release this fall.  A complete list will be in a
    future MXG Technical Note when Version 7 is available.
    Initial performance measurements of the MXG QA stream show no change
    in the runtime between Version 6.12 TS045 and Version 7 Beta, so
    it looks like lots of new features at no cost, for a change!

    SAS Version 7 datasets cannot be read by SAS Version 6; the format
    of SAS data libraries on all platforms was changed incompatibly.
    Fortunately, MXG will not exploit on any SAS Version 7 features in
    the near future, and there are no compelling reasons to migrate to
    SAS Version 7 (run times and resources were about the same), but
    when you do migrate to SAS V7, you will either have to drop it in
    all at once, or at least you will need to install from the back end:
    convert your report programs first and then convert the programs
    that build the datasets that the reports use.

 2. RETAIN statement only retains variables in assignment statements.
    You cannot use a RETAIN statement with SET A B  logic to retain the
    value of variable A from dataset A into processing of observations
    from dataset B.  While the A variable will exist in the OUT dataset
    its value will be missing:

       DATA A; A=1;
       DATA B; DO B=1 TO 5; OUTPUT B; END;
       DATA OUT; SET A B;
       RETAIN A;

    To retain the value of variable A, you must assign it to a new name
    (AA) while reading an observation from dataset A, retain that AA
    name, and then when reading an observation from dataset B, assign AA
    back to its original name A (and then DROP variable AA from OUT):

       DATA OUT; SET A (IN=INA) B (IN=INB);
       RETAIN AA;  DROP AA;
       IF INA THEN AA=A;
       IF INB THEN DO; A=AA; OUTPUT; END;

    Fortunately, variable A's attributes (LABEL, FORMAT, etc) are indeed
    propagated into variable A in the OUT dataset.

 3. SAS 6.09 TS455 and TS460 on MVS may encounter SAS "VM1319" or "NO
    MKLEs" ABENDs, due to a memory overlay introduced by TS455.  SAS ZAP
    Z609E449 exists and is flagged as REQUIRED, but is not a true fix.
    That ZAP forces SAS options MVARSIZE=0 and MSYMSIZE=0, which causes
    %MACRO variables and symbol tables to be written/read to/from disk
    instead of from memory. By reducing memory for macros, the overlay
    may be avoided, but depending on how %macros are used, that ZAP
    could impact runtime performance.  The text of ZAP Z609E449 suggests
    that increasing MEMSIZE may circumvent the error, since the overlay
    is less likely with more addressability, so if you encounter the
    error, first increase MEMSIZE by 8MB (and remember to increase your
    REGION size), and then if that doesn't work, then either install the
    ZAP, or install its effect by setting MVARSIZE=0 and MSYMSIZE=0
    yourself.

 4. SAS 6.09 TS455/TS460 do not free memory for user formats, which can
    cause an out of memory error if there are repeated references to a
    user format, e.g.,a DO Loop around PUT(variable,format) statement
    where the format is NOT one supplied with SAS (MGxxxxx formats or
    your own build with PROC FORMAT are "user formats").
    SAS ZAP Z609F331 will correct this memory "leak".

VII. CICS Technical Notes.

 1. There are two CICS summary programs in MXG:
     ASUMCICS summarizes the detail CICSTRAN.CICSTRAN transactions, so
              variable NUMTRANS counts the number of transactions.
     ASUMCICX summarizes the already-summarized ASUMUOW unit-of-work
              dataset, so NUMTRANS counts the number of unit's-of-work,
              and variable MROTRANS counts the number of CICSTRAN
              transactions that were executed by that unit-of-work.

 2. APAR PQ13647 corrects invalid Y2K date in IBM type 110 subtype 2
    TS Server records written by CICS TS 1.1 and 1.2.  The dates will
    contain 1AYY instead of 20YY without this fix.



VIII. Windows NT Technical Notes.

   There are no Windows NT Technical Notes in this Newsletter.

IX.   Incompatibilities and Installation of MXG 16.16.

 1. Incompatibilities introduced in MXG 16.16 (since MXG 15.15):

  a- IMACs that were changed (if they exist in your USERID.SOURCLIB, you
     must refit your tailoring, starting with the new IMAC member):

      IMACPDB - new PDB.STEPS/PDB.JOBS CONDCODE.   Change 16.106

  b- Other incompatibility changes:

     All MGBYTES formatted variables are now length 8, instead of 4.
     If you use PROC APPEND without FORCE, SAS will ERROR when you try
     to combine new and old datasets with dissimilar length variables.

  c- These products were incompatibly changed by their vendor, and they
     require MXG Version 16.01 as indicated:

     MXG Y2K support for AS/400                MXG 16.01  Change 16.035
     CA-1/TMS TYPETMS5 with Magstar drives     MXG 16.02  Change 16.088
     LANDMARK CICS V2 recs convert to V8.1     MXG 16.01  Change 16.049
     LANDMARK DB2 V 3.1                        MXG 16.02  Change 16.097
     MQ Series V1 R2 SMF 115 MQMLOG dataset    MXG 16.02  Change 16.099
     MXG Y2K support for Type 6 SMF record     MXG 16.01  Change 16.039
     NETVIEW NPM (Year 2000 dates)             MXG 16.01  Change 16.003
     NTSMF EXCHANGE 5.5                        MXG 16.01  Change 16.024

 2. Installation and re-installation procedures are described in detail
    in member INSTALL (which also lists common Error/Warning messages a
    new user might encounter), and sample JCL is in member JCLINSTL.


X.    Online Documentation of MXG Software.

    MXG Documentation is now described in member DOCUMENT.


XI.   Changes Log

==========================Changes Log=================================

 You MUST read each Change description to determine if a Change will
 impact your site. All changes have been made in this MXG Library.

 Member CHANGES of the MXG SOURCLIB will always be more accurate than
 the printed changes in a Newsletter, because the software is normally
 created after the newsletter is sent to the printer!  Member CHANGES
 on the www.MXG.com homepage are the most timely, as they are updated
 (sometimes) between MXG versions.

 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 than described in the change text (which might have printed
 only the critical part of the correction that can be made by paper).

 Scan each source member named in any impacting change for any comments
 at the beginning of the member for additional documentation, since the
 documentation of new datasets, variables, validation status, and notes,
 are often found in comments in the source members.

Alphabetical list of important changes after MXG 15.15 now in MXG 16.16:

  Dataset/
  Member   Change    Description

  Many     16.216  Support for OS/390 Release 2.6 (COMPATIBLE).
  Many     16.078  MXG variables with format MGBYTES are now 8-bytes.
  Many     16.068  &PDBxxxx and &yyyzzz "Dataset &Macro" naming rules.
  ADOCQAPM 16.301  Enhanced documentation for AS/400 processing
  ANAL6264 16.071  Analysis merges VSAM type 62 and 64 for OPENTIME.
  ANALABND 16.082  ABEND stats from PDB.STEPS, uses PROC TABULATE.
  ANALCISH 16.104  MORE THAN 32767, MORE THAN 10 errors corrected.
  ANALPATH 16.006  SUBSCRIPT OUT OF RANGE, report expected 10 LCUs max.
  ANALRMFR 16.295  ANALRMFR RMF reports added REPORT=XCF.
  ANALSRVC 16.098  Report now works for CPU Percent by Service Class.
  ANALUOW  16.075  Enhancements, DB2 Class 3 waits. etc were added.
  ANALVTS  16.162  Analysis combines 30s, TMNT, TALO and 21s for tapes.
  ANANCNCR 16.206  COUNT= option corrected.
  ASMIMSL5 16.058  ASMIMSL5 in MXG 15.15 failed during assembly.
  ASMIMSL6 16.185  Support for IMS Log processing for IMS 6.1.
  ASMMNVW  16.247  Support for decompression of MainView history files.
  ASMTAPES 16.154  ML-17 of MXGTMNT synchronizes automatically.
  ASMTAPES 16.164  MXGTMNT misses too-fast VTS tape mounts.
  ASMTAPES 16.259  ML-18 of ASMTAPES protects DSAB circular queue.
  ASUM42DS 16.046  New summary member for TYPE42DS by dataset.
  ASUM70PR 16.028  Deactivated Partition may cause over 100% CPU Busy.
  ASUM70PR 16.271  16.04-16.05. ASUM70PR summarized at SHIFT vice HOUR.
  ASUMCACH 16.141  DURATM in ASUMCACH revised for accuracy.
  ASUMCICS 16.137  INVALID ARGUMENT TO FUNCTION SQRT when N=1.
  ASUMHSM  16.315  Revision to Support HSM Y2K julian dates.
  ASUMHSM  16.345  HSM summarization separates HSM active from queued.
  ASUMTALO 16.076  Revised to work with TALO records from old ASMTAPES.
  ASUMTALO 16.169  SPIN.SPINTALO now backed up into PDB library.
  BLDNTPDB 16.180  NTSMF Daily/Weekly/etc BUILD program enhanced.
  BUILDPD3 16.080  JES3 BUILDPDB - Multiple PDB.JOBS obs - multi purges.
  BUILDPDB 16.008  Duplicate TYPE30_V records might not be deleted.
  BUILDPDB 16.107  PDB.TYPE74CO/ME/PA/SY/OM/LK added to day/week PDB.
  BUILDPDB 16.183  ABEND/CONDCODE in PDB.JOBS now valid, has 1st ABEND.
  BUILDPDB 16.230  Duplicate type 30 records caused RESTARTS to be high.
  BUILDPDB 16.231  TYPE6 vars STDUPLEX/FCB/OVLYLOAD/OVLYUSED added.
  BUILDPDB 16.348  BINxxxx variables added to PDB.PRINT.
  CICINTRV 16.253  Revision of CICINTRV auto-determine input location.
  CICINTRV 16.277  PDB.CICINTRV dataset may be real bad; get this code!
  CONFIG   16.066  Option SASAUTOS=(SOURCLIB SASAUTOS) is now used.
  CONFIG   16.117  CODEPCT=150 now set to eliminate SAS message.
  CONFIG   16.157  MXG CONFIG value of VMCTLISA=40K raised to 160K.
  CONFIG   16.209  NOSTIMER now specified, SAS 6.12 TS045 changed.
  DOCGRAF  16.018  Examples of getting graphs from mainframe to your PC.
  DOCMXG   16.134  New &MACKEEP and IMACKEEP MXG architecture changed.
  FORMATS  16.214  Support for DF/SMS 1.4 changes to HSM (COMPAT).
  IMACFILE 16.016  &MACFILE macro added for instream tailoring.
  IMACICDM 16.067  Support for Candle Omegamon V400 CANMQ and CANWLMSC.
  IMACPDB  16.106  Enclave CPU time and count added to PDB.STEPS/JOBS.
  IMACPDB  16.341  IMACPDB documentation, no code was changed.
  MXGSAS   16.081  JCL parameter TAILORNG now spelled TAILOR.
  RMFINTRV 16.288  Sort order of RMF is now BY SYSPLEX SYSTEM STARTIME.
  TRND70   16.021  TRENDing of TYPE70 now supports 16 buckets of CPUs.
  TRND72GO 16.029  Variable R723CIMP in TRND72GO SUMmed vice IDd.
  TRNDTALO 16.221  Overlapped hour could miscount tape allocations.
  TYPE109  16.329  Support for TYPE109 OS390 Firewall Server.
  TYPE110  16.031  CICS UNEXPECTED STID=0 was error in STID=94 segment.
  TYPE110  16.153  GMT offset calculation in CICS off by up to 1.4 secs.
  TYPE110  16.270  Support for CICS TS 1.2 Journal Format, INCOMPATIBLE.
  TYPE110  16.322  Support for CICS TS 1.3 (INCOMPATIBLE).
  TYPE115  16.099  Support for MQ Series Version 1 Release 2 (INCOMPAT).
  TYPE16   16.254  Support for DFSORT Release 15 (No Change).
  TYPE28   16.003  NETVIEW NPM type 28 INCOMPATIBLE year 2000 change.
  TYPE28   16.290  NPMLANOD dataset TIC_UTIL variable was missing.
  TYPE28   16.336  STOPOVER NPM 2.4 NPMSUBTY='DD'x; IBM doc was wrong.
  TYPE30   16.150  TYPETASK='ASCH' or TYPETASK='OMVS' now set in PDB.
  TYPE38   16.101  Support for TME 10 NetView for OS/390 V1 R1 SMF 38.
  TYPE42   16.339  SMF type 42 subtypes 15-19 (VSAM RLS) now validated.
  TYPE57   16.234  JES3 with more than 9999 job numbers INVALID DATA.
  TYPE6    16.039  READTIME in TYPE6 and hence PRINT is 1900 in 2000.
  TYPE6    16.264  Support for PSF/MVS Release 3.1.0 (COMPATIBLE).
  TYPE7072 16.009  Variable MXGVERSN in TYPE70 was blank in 15.15.
  TYPE7072 16.194  Delay Percents now divided by R723CTSA.
  TYPE7072 16.326  TYPE72 Compat Delay variables were incomplete.
  TYPE7072 16.327  PERFINDX sometimes missing for Average Resp Goals.
  TYPE7072 16.328  Variable PCTMETGO added to TYPE72GO for Percentiles.
  TYPE7072 16.342  New variable CECSER with CPU Serial of the CEC.
  TYPE72GO 16.064  Variables AVGRESP, EXETTM, AVGXETTM added/changed.
  TYPE72GO 16.083  Variables R723CQDT/CADT/CCVT/CIQT wrong multiplier.
  TYPE74   16.032  NO STRUCTURE MATCH message understood and eliminated.
  TYPE74   16.095  TYPE74 variable IORATE changed to match IBM's RMF.
  TYPE74   16.329  Support for TYPE746B/F/G datasets in OS/390 R2.7.
  TYPE79   16.213  Type 79 Subtype 15 (IMS Long Lock) corrected.
  TYPE7xxx 16.288  Sort order of RMF is now BY SYSPLEX SYSTEM STARTIME.
  TYPE80A  16.236  Support for RACFEVNT=26 APPCLU Session Establish.
  TYPE80A  16.245  Support for RACF "installation-defined data field".
  TYPE85   16.255  Support for OAM type 85 SMF record, 11 datasets.
  TYPE94   16.135  VTS variables SMF94VBA/VLA were misdocumented by IBM.
  TYPE99   16.026  New subtype 6 SMF type 99 INVALID SERVER SECTION.
  TYPEACF2 16.215  Support for ACF2 Ver 6.2 type 'V' (INCOMPATIBLE).
  TYPEAPAF 16.305  Support for more than 8 engines in APAF data.
  TYPEBETA 16.293  BETA93 Version 3.1.3 INCOMPATIBLY changed.
  TYPEBETA 16.351  Support for BETA93 subtypes 1,2,3,4,20,40,41,42.
  TYPEBGSI 16.155  Support for BGS I/O Monitor Version 5.1.0 (COMPAT).
  TYPECIMS 16.030  ABENDUSR in CIMSPROG has never been right.
  TYPECIMS 16.227  IMF 3.2 with IMS 5.1 INPUT STATEMENT EXCEEDED.
  TYPEDB2  16.318  Support for DB2 Version 6.1 (COMPATIBLE).
  TYPEDB2  16.148  Dataset DB2STATR was invalid, duplicate observations.
  TYPEDCOL 16.017  DCOLLECT DSORG field expanded to 3 in MXG (PSU etc).
  TYPEDECS 16.034  Support for DECnet/SNA DTF SMF records.
  TYPEDOS  16.312  Support for DOS/VS Power V6.3.0 (COMPATIBLE).
  TYPEEAGL 16.102  Support for Raptor Systems' Eagle Firewall 121 Log.
  TYPEEDGR 16.308  Revisions to RMM EDGR support - numeric dates.
  TYPEHSM  16.136  DFSMS 1.4.0 added WFSCPUTM for ABARS CPU cost.
  TYPEHSM  16.145  Support for APAR OW31281 adds RECALL, DSR, FSR.
  TYPEHSM  16.149  SHORT ABAR message after Change 16.025 fixed.
  TYPEHSM  16.263  Support for FSRTYPE=17 thru 20 HSM FSR records.
  TYPEHSM  16.315  Revision to Support HSM Y2K julian dates.
  TYPEICE  16.280  Support for IXFP fields added by APAR L170017.
  TYPEIDMJ 16.361  Support for IDMS Version 14 Journal Records.
  TYPEIDMS 16.002  New TASNxxx variables labels were incorrect.
  TYPEIDMS 16.012  IDMS 10.2.1 caused INPUT STATEMENT EXCEEDED.
  TYPEIDMS 16.033  IDMS 10.2 records were not output.
  TYPEILKA 16.249  Support for Interlink TCPaccess Vers 5.2 (INCOMPAT)
  TYPEIMS7 16.119  Support for TYPEIMS7 for IMS 6.1.
  TYPEIMSA 16.069  ASMIMSL5 process now has _L, _K macros, exit members.
  TYPEIMSA 16.257  IMS 6.1 Support correct only in European Summer Time.
  TYPEIMSA 16.343  Zero observations in IMSFASTP, SUBCODE not kept.
  TYPEIPAC 16.052  Y2K INCOMPATIBLE IPAC RDS 6.1 user SMF record.
  TYPEMON8 16.049  Y2K Support for TMON V2 records converted to 8.1.
  TYPEMON8 16.073  INVALID DATA FOR TMMDMODL message corrected.
  TYPEMON8 16.091  TMON for CICS V2 Converted records MONIRECD='D'.
  TYPEMVCI 16.260  Support for Boole & Babbage MainView CMRDETL file.
  TYPENDM  16.060  Sterling's Connect Direct aka NDM PI=754129 open.
  TYPENSPY 16.147  NETSPY='N' record support was restored for old 4.4.
  TYPENTSM 16.024  Support new "Database" object and EXCHANGE 5.5.
  TYPENTSM 16.045  Support for IISG, Active Server Pages, Web Service.
  TYPENTSM 16.049  New SNA LU, SNA 3270 Response, etc, NTSMF objects.
  TYPENTSM 16.121  Support for NTSMF Cache Mgr & Packet Filter objects.
  TYPENTSM 16.133  Summarization of NETWSEGM into NTINTRV wrong if two.
  TYPENTSM 16.177  Support for NT Service Pack 5A SYSTEM/PROCESS fields.
  TYPENTSM 16.199  NTSMF Object='WidetoMBErr' explained.
  TYPENTSM 16.208  Support for NTSMF internal 0.1 configuration record.
  TYPENTSM 16.217  New objects NetShow Station/Unicast Service support.
  TYPENTSM 16.228  Support for NTSMF V2.2 with Record Header 2.2.1.
  TYPENTSM 16.317  Support for NTSMF 2.2.1 header (or use COMPRESS).
  TYPENTSM 16.337  Support for new NT 4.0 objects.
  TYPENTSM 16.350  Support for WINDOWS NT 5.0 (INCOMPATIBLE) with NTSMF.
  TYPEOMCI 16.116  Support for Candle Omegamon CICS V400 "255" record.
  TYPEOMVT 16.262  Candle Omegamon for VTAM documentation error.
  TYPEQAPM 16.035  Year 2000 Support for AS/400 was corrected.
  TYPEQAPM 16.063  Support for OS/400 Version 4.2.0 (COMPATIBLE).
  TYPESFTA 16.175  Support for Soft Audit's Installed Products File.
  TYPESOLN 16.356  Support for Sterling's SOLVE NetMaster TCP/IP SMF.
  TYPESPMG 16.020  Support for Software Engineering's SpaceManager data.
  TYPETAND 16.118  Tandem variables CnBLKS and CnBLKSAV corrected.
  TYPETCP  16.211  Support for TCP/IP 3.4 (sorta INCOMPATIBLE).
  TYPETCP  16.242  TCP SMF record subtype externalized  _SUBTCP5 macro.
  TYPETDTA 16.170  Support for NCR Teradata DBS performance data.
  TYPETMDB 16.097  Support for Landmark's Monitor for DB2 V 3.1 INCOMPA
  TYPETMDB 16.160  Support for Landmark's SQL/CAPTURE type 'D6' record.
  TYPETMO2 16.122  Variables SYSID,APPLID,SYSPLEX blank in MXG.
  TYPETMS5 16.088  Lost obs in TMS dataset DSNBRECD for Magstar tapes.
  TYPETMS5 16.129  Major revision of TMS/CA-1 processing logic.
  TYPETMS5 16.191  Final revisions to TMS logic changes for FILSEQ.
  TYPETMS5 16.251  TMS support for multi-dataset tapes now correct.
  TYPETMV2 16.212  TMON for MVS V2 variables wrong in TMVSSYS dataset.
  TYPETPMX 16.189  Enhanced TPM support reads all possible variables.
  TYPETPX  16.019  TPXBYTI/BYTO wrong due to CA's documentation error.
  TYPEVLFC 16.089  Zero observations in dataset TYPEVLFC corrected.
  TYPEVMXA 16.310  Support for VM/ESA 2.3 MTRSYS and USEACT segments.
  TYPEWWW  16.105  Support for Web Proxy logs Extended Common Log fmt.
  TYPEXCOM 16.114  XCOM variable REQTYPE renamed REQTYPEX, conflict.
  TYPEXCOM 16.187  Support for XCOM Release 3.0 (COMPATIBLE).
  USMFRATE 16.158  Analysis of SMF Write Rates (MEGABYTES at 10/100sec)
  UTILBHEX 16.070  Utility creates SMF records from hex dump from LIST;.
  UTILCICS 16.061  Incorrect Candle value ERRMQ=64 in CANMQ detected.
  VMAC7072 16.130  Type 70 records have CPU segment after VARY OFF.
  VMACIMSA 16.313  IMS 6.1 type 08 correction for APPC, CPIC driven.
  VMXGSUM  16.120  New ERASEOUT parameter added.
  VMXGSUM  16.131  UNIX forward slashed caused VMXGSUM to fail.
  VMXGSUM  16.146  VMXGSUM syntax for "DATETIME" now uses real name.
  VMXGSUM  16.179  Support for SAS Version 7 (INCOMPATIBLE).
  VMXGSUM  16.306  INHERIT (SAS V7 only) now exploited in VMXGSUM.
  VMXGSUM  16.306  INHERIT parameter used if under SAS Version 7.
  VMXGSUM  16.323  Correction after Change 16.271 &DATETIME=DATETIME;
  VMXGWORL 16.266  Sorted status now validated by SORT flag for _L data.
  WEEKBLDT 16.140  Weekly build of ASUMDB2B fails with wrong sort order.
  XMXGSUM  16.314  New function enhancements for VMXGSUM for testing.
  YEAR2000 16.330  MXG 16.09 now required for 100% YEAR2000 Support.
  TYPEUNIC 16.391  Support for CA UniCenter VMS Performance Monitor.
  TYPE102  16.390  Support for IFCIDS 252 and 260.
  TYPETMO2 16.387  Support for TMON for CICS Version 2 PTF TH01129
  TYPENSPY 16.386  Support for NETSPY Version 5.2 (COMPAT).
  BUILDPDB 16.385  New WLM variables added to PDB.JOBS dataset
  TYPENTSM 16.384  Support for new SNA BASE and IBM SNA objects.
  ANALHSM  16.383  Rewrite as %MACRO, new thread use/queue measures.
  TYPETMS5 16.382  Documentation of TMS EXPDT values.
  XSUM70PR 16.381  Circumvention for IBM including ICF partition as CPU.
  VMACDB2H 16.380  Invalid QWHSSTCK data value trashed dates/times.
  IMAC6ESS 16.376  Optional ESS decoding of type 6 fails with 2 fields.
  VMXGSUM  16.375  Invalid Argument to Substring message eliminated.
  TRNDSMFI 16.374  Trending member for PDB.SMFINTRV / TYPE30_V dataset.
  UTILPLDB 16.373  Automatic generate BUILDPDB utility.
  ASUMUOW  16.371  Revisions for SPIN and missing values.
  UTILCICS 16.371  Subtype 0 CICS 4.1 caused INPUT STATEMENT error.
  TYPE7072 16.370  New PCTMETGO variable was not correct.
  CICINTRV 16.367  Big CPU increase in 16.06-16.10 corrected.


Inverse chronological list of all Changes:


NEXTCHANGE: Version 16

======Changes thru 16.394 were in MXG 16.16 dated Feb 20, 1999======

Change 16.394  Support for CA MIM Version 4.3 Product SMF record adds
EXTYMIM        thirteen new datasets created from its subtypes.  The
EXTYMIM1       original MIMTAPE dataset is still built, but the names
EXTYMIM2       of the variables are changed to be consistent with the
EXTYMIM3       MIM documentation; where they started with STCxxxxx in
EXTYMIM4       the documentation, the variable names are MIMxxxxx now.
EXTYMIM5       This revision was a user contribution that I revised for
EXTYMIM6       the new MXG architecture, but have only run syntax check,
EXTYMIM7       as I have no sample records to test with before 16.16 is
EXTYMIM8       finalized and tapes are built!
EXTYMIM9
EXTYMIMA
EXTYMIMB
EXTYMIMC
EXTYMIMD
IMACMIM
TYPEMIM
TYPSMIM
VMACMIM
Feb 21, 1999
   Thanks to Martyn A. Jones, CHASE, ENGLAND.

Change 16.393  This is the "40 GIG" paper that Chuck Hopf and I have
DOC40GIG       presented at SHARE and CMG in 1998.  The graphs, tables,
Feb 19, 1999   and charts that are not text documents cannot be included
               in this text member, but the text contains the link to
               those graphic documents, which are now on our homepage.

Change 16.392  Preliminary MXG "New User" manual is far from complete,
NEWUSER        but has excellent examples of how to use MXG, how to set
Feb 19, 1999   up SMF, etc., and comprehensive documentation of the MXG
               summarization macro, VMXGSUM.  This will be expanded.
               Most of this document can be directly read, but there are
               some figures that are graphics or tables that cannot be
               included in a text document; instead, the document has
               the link to that document on the MXG homepage, so if you
               can connect to the internet while you read, you can see
               the figures and tables that can't be included in text.
   Thanks to Chuck Hopf, MNBA, USA.

Change 16.391  Support for CA UniCenter VMS Performance Monitor data
EXUNICCP       from their ADVISE PERFORMANCE EXPORT/TYPE=ASCII command.
EXUNICDI       Thirteen datasets are created:
EXUNICDV        dddddd  dataset    description
EXUNICIO        UNICCP  UNICTRCP   UniCenter CPU statistics
EXUNICLK        UNICDI  UNICTRDI   UniCenter DISK statistics
EXUNICME        UNICDV  UNICTRDV   UniCenter DEVICE statistics
EXUNICPG        UNICIO  UNICTRIO   UniCenter I/O statistics
EXUNICPR        UNICLK  UNICTRLK   UniCenter LOCK statistics
EXUNICSC        UNICME  UNICTRME   UniCenter MEMORY statistics
EXUNICSR        UNICPG  UNICTRPG   UniCenter PAGE statistics
EXUNICSY        UNICPR  UNICTRPR   UniCenter PROCESS METRICS stats
EXUNICVR        UNICSC  UNICTRSC   UniCenter SYSTEM COMM stats
EXUNICXQ        UNICSR  UNICTRSR   UniCenter SERVER statistics
FORMATS         UNICSY  UNICTRSY   UniCenter SYSTEM statistics
IMACUNIC        UNICVR  UNICTRVR   UniCenter VERSION number
TYPEUNIC        UNICXQ  UNICTRXQ   UNICENTER XQP statistics
TYPSUNIC       Some counters (RMTPAGNT,RMTSWPNG) in UNICTRDI Disk data
VMACUNIC       that have a value of minus one that is not documented but
Feb 19, 1999   I assume means that field was not used?  There is a lot
Feb 24, 1999   of information captured by UniCenter in these records!
               Feb 24:  Originally was mis-stated as UNIX support, but
               records are from the VMS and Open VMS operating system).
   Thanks to Frank d'Hoine, Nationale Bank van Belgie, BELGIUM.

Change 16.390  Support for DB2 Trace IFCIDs 250, 252 and 260, 261, and
VMAC102        262 has been added and validated with DB2 5.1 records.
Feb 18, 1999

Change 16.389  An include of IMACKEEP was added after the definition
CICINTRV       of _CICINTV macro that sets the interval duration so
Feb 18, 1999   it can be overridden with IMACKEEP/MACKEEP logic.
   Thanks to Alex Torben Nielsen, TeleDanmark EDB, DENMARK

Change 16.388  An include of IMACKEEP was added after the include of
RMFINTRV       IMACRMFI so that the _DURSET macro that set interval
Feb 18, 1999   duration can be overridden with IMACKEEP/MACKEEP.
   Thanks to Paul Oliver, BHP Information Technology, AUSTRALIA.

Change 16.387  Support for TMON for CICS Version 2 PTF TH01129 (COMPAT)
VMACTMO2       adds MQ Series fields to both the MONISYST and MONITASK
Feb 18, 1999   records, using existing reserved fields.  New variables:
                 MONISYST    MONITASK    Description
                 TIMQQMGR    TAMQQMGR    MQ Series Queue Manager Name
                 TIMQSRCT    TIMQSRCT    MQ Series API Request Count
                 TIMQSRTM    TIMQSRTM    MQ Series API Request Duration
                 TIMQSWCT    TIMQSWCT    MQ Series Wait Count
                 TIMQSWTM    TIMQSWTM    MQ Series Wait Time
               These new variables are defined, but the actual DSECT had
               not been received so the fields are not yet actually read
               in yet, so they will all be missing until this is fixed.
   Thanks to Brian Kaczkowski, Kohl's Department Stores, USA.

Change 16.386  Support for NETSPY Version 5.2 is already in MXG, as none
VMACNSPY       of the supported subtypes were changed.  There is a new
Feb 18, 1999   NSPYREC='I' record for TCP/IP, but that new subtype is
               not yet supported, pending fixes from the vendor (there
               is time for all transactions and network time for 3270
               emulation, but no network time for GUI users who telnet
               in, etc.).  When valid data is available and the record
               format is stable, I will add support for type "I" data.
   Thanks to Roger Zimmerman, Zurich Kemper Investments, USA.

Change 16.385  New WLM variables added by OS/390 2.4 are now added to
BUILD005       the PDB.JOBS dataset.  Variables are JOBMODE0 JOBMODE1
Feb 18, 1999   SMF26WCL, SMF26WIN, SMF26WJC, SMF26WOC, SMF26WSE.
   Thanks to Jack Hudnall, Southwestern Bell, USA.
   Thanks to Diane Eppestine, Southwestern Bell, USA.

Change 16.384  Support for three new IBM SNA Objects:
EXNTSNA1         dddddd   Dataset   Object                    Variables
EXNTSNA1         NTSNAB   SNABASE   SNA BASE                     19
EXNTSNAB         NTSNA1   SNAIBMCS  IBM SNA CLIENT SERVICES       2
FORMATS          NTSNA2   SNAIBMLB  IBM SNA LOAD BALANCING        2
IMACNTSM       Also, the _UNTDISC macro used to print discover records
VMACNTSM       was revised for changed headers.
VMXGINIT
Feb 17, 1999

Change 16.383  HSM Analysis example was rewritten as a %MACRO so that
ANALHSM        arguments can be passed, and additional reports on HSM
Feb 17, 1999   activity (concurrent threads, threads queued, etc). The
               program requires the ASUMHSM member of change 16.345.

Change 16.382  No change, documentation only.  TMS a/k/a CA-1 now has
TYPETMS5       new values for EXPDT that have special meaning:
Feb 17, 1999     EXPDT       Meaning                      TMS Prints
                 9989xxx     Conversion from Prior        STATS/xxx
                 9990000     Catalog Retention            CATALOG
                 9998xxx     Retain xxx after LastRef     LDATE/xxx
                 9999xxx     Number of Cycles             CYCLES/xxx
                 9999999     Permanent Retention          PERMANENT
               I have been unsuccesful in creating a FORMAT that will
               extract that xxx value and print these special EXPTD
               values the way TMSBINQ and other CA programs do.
   Thanks to Wayne Hartman, Prudential, USA.

Change 16.381  CECs with an Integrated Coupling Facility, ICF, count the
XSUM70PR       "spare" CPU in which the Coupling Facility is running as
Feb 17, 1999   a real processor.  This summer, IBM will document changes
               to the Diagnose 204 and 224 to define 3-byte codes for CP
               types (general purpose and ICF) and will update the RMF
               Type 70 SMF record so that the records for the ICF
               Partition (and its PHYSICAL record for the ICF) can be
               recognized and either deleted or at least excluded from
               the count of CPUs.  In advance of that APAR, this change
               lets you delete the TYPE70PR observations from the ICF
               LPAR (by LPARNAME/LCPUADDR) and lets you correct the
               number of engines, so that the created PDB.ASUM70PR
               counts the real workload and the real processors.  You
               will have to examine your TYPE70PR observations to see
               what combination of LPARNAME, LPARNUM, and LCPUADDR can
               be used to identify the ICF LPAR and its "PHYSICAL"
               partition observations.
   Thanks to Forrest Nielson, State of Utah, USA.
   Thanks to Barry Rozemeijer, ING Nederland, THE NETHERLANDS.

Change 16.380  Invalid QWHSSTCK value in DB2ACCT records causes datetime
VMACDB2H       variables QWACBSC and QWACESC to be trashed (dates in the
Feb 17, 1999   year 2082, wrong times).  Instead of an expected 8-byte
               field in TODSTAMP format (for example, the raw QWACESC is
               'B1CFB43F08BF37F1'x for '15FEB1999:17:57:26.02'), the bad
               QWHSSTCK field has a value in SMFSTAMP format (the raw
               value '0020734600099031F'x is '31JAN1999:05:05:54.78' as
               an SMFSTAMP, but that date is two weeks earlier than the
               actual records (created on Feb 15, 1999), so not only is
               the format wrong, the value is wrong too!  MXG uses that
               bad QWHSSTCK value to calculate your GMT offset, so that
               QWACBSC/QWACESC can be converted back to local time, but
               MXG input that bad QWHSSTCK as the expected TODSTAMP, it
               is '26JAN1900:20:15:19.53', which causes GMTOFFDB to be
               98 years (SMFTIME is 15FEB1999:11:57:23.02), which is
               what then corrupts the QWACBSC and QWACESC values.
               While investigating the source of this bad value, which
               may have come from one of those Y2K-date-simulator-tools
               that intercept STCK macro calls inside MVS, I now check
               to see that the calculated GMTOFFDB is less than 24 hours
               and if it is not, then I print an error message on your
               SAS log that I could not calculate GMT offset and that
               your BSC/ESC timestamps will be on GMT rather than local,
               and set GMTOFFDB to zero.   I will update this note when
               we know if this error is due to a STCK-interceptor or if
               it is an IBM DB2 error.
   Thanks to Warren E. Waid, JC Penny, USA.

Change 16.379  Syntax error in this JCL example. The test should be
JCLADHOC         IF APPLID='PROC' THEN OUTPUT _WCICTRN;
Feb 17, 1999
   Thanks to Khalid Meskinia, SAS Institute, FRANCE.

Change 16.378  This analysis failed with dataset not found.  This line
ANALVVDS         PROC SORT DATA=_WTYVVDS..TYPEVVDS OUT=MXGVVDS.TYPEVVDS;
Feb 17, 1999   should have been
                 PROC SORT DATA=_WTYVVDS OUT=MXGVVDS.TYPEVVDS;
   Thanks to David Mesiano, Sharp Electronics, USA.
   Thanks to Steve Mesiano, Sharp Electronics, USA.

Change 16.377 -Format MGX37FL, used in TYPEPROS (STOPX37 replacement),
FORMATS        had values of 12/16/20/24/28/32x when the actual data
VMACPROS       values are 0c/10/14/18/1c/20x.
Feb 16, 1999  -Label for ABDISP now is 'ABEND*DISPOSITION'.
   Thanks to Michael E. Friske, Fidelity Investments, USA.

Change 16.376  Optional decoding of the ESS segment in SMF type 6 record
IMAC6ESS       fails with INPUT STATEMENT EXCEEDED RECORD LENGTH if you
Feb 16, 1999   have more than 1 address parameter in the JCL.  The line
               GEPARTLN=0; must be moved to before IF GEPARMKY=27X....
               and new line
                 IF GEPARTLN GT 0 THEN GEPARMLN=GEPARTLN+(GEPARMNR-1)*2;
               was added before GEOFFSET=GEOFFSET+GEPARMLN+6;
   Thanks to Waldemar Rathfelder, ADP TAYLORIX GmbH, GERMANY.

Change 16.375  Fixes logic dealing with the length of the dataset names
VMXGSUM        in the INDATA= that cause warning messages about invalid
Feb 16, 1999   arguments to SUBSTR function.  Improved KEEP logic now
               uses NODETAILS options on PROC CONTENTS to avoid reading
               the entire dataset just to find out what variables exist.

Change 16.374  Trending member for the PDB.SMFINTRV dataset (which is
TRNDSMFI       from Type 30 Subtype 2/3 records and is created as
Feb 16, 1999   dataset TYPE30_V, controlled in member IMACINTV.

Change 16.373  Confused by the syntax for the new %LET statements in
UTILBLDP       MXG 16.16?  This macro will build the SYSIN stream for
Feb 16, 1999   you to run BUILDPDB completely from SYSIN using the new
               %LET architecture.  You tell us the SPINCNT desired, any
               time differences, any additional SMF records that you
               want to add to the BUILDPDB process, and anything that
               you want to suppress, and this utility builds the sysin
               stream, complete with comments.
   Thanks to Chuck Hopf, MBNA, USA.

Change 16.371  If you were not using ASUMUOW's normal default (use the
ASUMUOW        earliest transaction record as the real transaction name)
Feb 16, 1999   then some of the variables that are used to identify the
Feb 18, 1999   transaction (such as LUNAME, USER, TERMINAL, SYSTEM,
               SMFTIME) may not have come from that real transaction
               record, but were erroneously picked up from the last
               transaction record in the unit of work, which might have
               come from the SPIN library and might have blank values.
               This change treats these identifying variables the way
               that TRANNAME is, so that they all come from the same
               record, and corrects the logic for SPINning records.
   Thanks to Kevin Marsh, AT&T Solutions EMEA, ENGLAND.

Change 16.371  Subtype 0 records from CICS/ESA 4.1 caused UTILCICS to
UTILCICS       fail with INPUT STATEMENT EXCEEDED RECORD error.  Replace
Feb 16, 1999      IF '02' LE OLDVERCI LE '03' THEN SUBTYPE=0;
                  IF SUBTYPE EQ 00 THEN DO;
               with
                  IF '02' LE OLDVERCI LE '03' THEN DO;
                  SUBTYPE=0;    /* CICS 1.6, 1.7, 2.1 FORMAT DATA */
               The real culprit was the MXG logic error, not the record!
   Thanks to Andre van de Riet, Hudson Williams Europe, THE NETHERLANDS.

Change 16.370  New variable PCTMETGO was not calculated correctly; the
VMAC7072       test should be IF R723CVAL*RTSMAP(M) GE R723CVAL THEN DO;
Feb 16, 1999   so we compare the bucket's response time (instead of the
               percentage value for that bucket) to the response goal.
               At present, counting the first six buckets would produce
               the same value, as the 6th bucket is the 100% bucket, but
               this algorithm should protect future changes.
   Thanks to Bruce Widlund, Merrill Consultants, USA.

Change 16.369  MXG 16.06-16.10.  Cosmetic.  Names of some DROP variables
VMXGCICI       were truncated (DIFTQTEM,DIFIOCRS,DIFIOCWF,DIFSTL,DIFST)
Feb 16, 1999   and so they were not dropped from temporary datasets, but
               the MXG datasets were built without error.
   Thanks to Alex Torben Nielsen, TeleDanmark EDB, DENMARK

Change 16.368  MXG 16.09-16.10.  Macro PMVCICS had not been defined in
VMXGINIT       VMXGINIT for the new CMRDETL support added in 16.09.
Feb 16, 1999
   Thanks to Stephen Mesiano, Sharp Electronics Corp., USA.

==Changes thru 16.367 were in MXG NEWSLETTER THIRTY-FIVE  Feb 20, 1999==

Change 16.367  MXG 16.06-16.10.  Big CPU increase in BUILDPDB due to
VMXGCICI       CICINTRV revisions introduced in MXG 16.06.  MXG's use of
CICINTRV       VMXGSUM's KEEPIN= option (which creates KEEP= statement
Feb  9, 1999   to keep only the needed variables) turns out to be very
               CPU intensive in CICINTRV/VMXGCICI, even when there are
               zero CICS observations!  Replacing KEEPIN= option with
               KEEPALL=YES removed the excessive cost of KEEPIN= logic.
               In a single invocation of VMXGSUM when you need to keep
               only a few variables from a large number of variables,
               and when you have many observations (e.g., summing ten
               variables from CICSTRAN, which was its purpose) using the
               KEEPIN= option still makes sense, as it will save lots of
               work space during the summarization.  But CICINTRV, with
               its many invocations of VMXGSUM (and a KEEPIN execution
               for each argument of each VMXGSUM), and with essentially
               all variables kept, so no space could be saved, the CPU
               cost of KEEPIN was greater than the runtime without it!

               Mac reported his BUILDPDB increased from 324 to 2650 CPU
               seconds, a factor of eight!  In my confirming tests, I
               isolated the increase to CICINTRV and saw it jumped from
               64 seconds to 446 seconds, about the same increase ratio!
               That high cost (one build of the OPTVAR dataset took 53
               seconds) is because we have to use SAS macro language to
               parse arguments into macro variables and then convert to
               variables in data steps so we can sort and remove dupes!

               Note that VMXGSUM turns off SAS log messages, especially
               for the data steps executed by the KEEPIN= algorithms,
               and so the sum of "Step Used CPU" log messages will be
               much smaller than the "Total CPU Used" value.  For Mac,
               his Total was 2650 seconds, but sum was only 380 seconds;
               over 2270 seconds of KEEPIN= were not printed on the log!
   Thanks to Mac Moss, Burlington Industries, Inc.

Change 16.366  NTSMF dataset PROCESOR variable DPCQUERT replaced DPCQUED
NTINTRV        but the old variable name was still used in NTINTRV,
Feb  9, 1999   causing a missing value in NTINTRV.
   Thanks to Chris Weston, SAS Institute ITSV Development, USA.

Change 16.365  Type 42 subtype 9 (dataset TYPE4237) was validated and
VMAC42         revised, and subtype 19 records showed wholesale revision
Feb  9, 1999   from their earlier documentation.  Revised in 10Feb tape.
   Thanks to Edward McCarthy, Health Insurance Commission, AUSTRALIA.

======Changes thru 16.364 were in MXG 16.10 dated Feb  8, 1999======

Change 16.364  QA test and MXG 16.04+ revision cleanup analysis:
many          -TYPETMS5: PROC DELETE DATA=MGTMSVL; added after last use.
Feb  8, 1999  -SPUNJOBS: Variable DATETIME now formatted.
              -MNTHDB2S: Variable STRTTIME now formatted.
              -VMACTMDB: Variables D6ACBSC/D6ACESC now formatted.
              -VMACVMXA: Variable DELTATM is now LENGTH 4 instead of 8.
              -VMACEDGS: EDGSV: and EDGSU: added to dataset labels.
              -VMACIMS/VMACIMSA: dddddd: added to dataset labels.
              -TYPEMON8: dddddd: added to dataset labels.
              -VMACOPC:  OPC20: added to dataset label.
              -VMAC28:   L028IN7: corrected to 028IN7:.
              -VMAC42:   TY42P2: was missing colon in label.
              -VMACMDF:  Dataset Label was added.
              -VMACHMF:  Dataset Labels were added where missing.
              -DIFFTPX:  Dataset Labels was added.
              -DIFFNTCP: Dataset Labels was added.

               These products are not yet converted to the 16.04 design,
               because they are second phase processes that don't read
               raw data and don't really need the additional macro names
               but they will eventually be revised to be consistent:
                TRND70,TRND70PR,TRND71,TRND72,TRND27GO
                TRNDDB2A,TRNDDB2S,TRNDDBDS,TRNDIDMS,TRNDRMFI,TRNDVMXA,
                MNTH70,MNTH70PR,MNTH71,MNTH72,MNTHCICS,MNTH72GO MNTHDB2A
                MNTHDB2S,MNTHDBDS,MNTHRMF,RMFINTRV.
                VMXGHSM - does read HSM catalogs, but is standalone.

               These products have not yet been 16.04 converted, and
               won't be until someone asks for it, or until a change in
               data requires an enhancement in these either standalone
               or archaic programs:
                TYPECRAY, TYPEFACO, TYPEPDL, TYPEVLFC, TYPEWWW, TYPEZARA
                TYPE200, TYPETPNS, TYPERRTM.

Change 16.363  16.09 only, JCLTEST6 only.  The new VMACMVCI for CMRDETL
JCLTEST6       still had RECFM=S370VB from PC testing, and MVS SAS does
VMACMVCI       currently accepts only RECFM=VB, (although SAS has plans
Jan 21, 1999   for a fix to make S370VB an alias on MVS in Version 8?).

Change 16.362  The dataset name in MACRO _LHSMFUN should be HSMDSRFU.
VMACHSM        The typo, HSMFSRFU, has never been a real dataset.
Feb  5, 1999   This 16.04 error has impact only if you used the _LHSMFUN
               macro as the destination of your own PROC SORT, or if you
               used the new _SHSMFUN macro; that created PDB.HSMFSRFU
               instead of PDB.HSMDSRFU (but since it has all of the
               variables, you can just rename it back to PDB.HSMDSRFU
               without re-read of your SMF data).
   Thanks to John McCray, Huntington Services Company, USA.

Change 16.361  Support for IDMS Version 14 Journal Records.  Most IDMS
TYPEIDMJ       sites write to SMF rather than a journal, and the SMF
VMACIDMJ       records were fine, but the TYPEIDMJ support for journal
Feb  5, 1999   format had not been updated from IDMS Version 12!  This
               change only works with Version 14 data; I didn't take the
               time to write it to work with both, as I don't think you
               can be still running Version 12, but if you need it, I'll
               enhance it for the old version too!
   Thanks to David Thorn, Dow Jones, USA.

Change 16.360 -VMAC110: 16.09 only, new time variables in CICDS and in
IMACICOM       CICINTRV did not have TIME12.2 format.
VMAC110       -IMACICOM: several MQxxxxTM duration variables had the
VMACDB2        same label as the MQxxxxCN count variables.
VMACTMDB      -VMACDB2: new variables QXCOORNO/QXCRGTT/QXISORR/QXSTREOP
TYPETMON       and QZZCBPNX/QZZCSKIP were missing because they had been
TYPEMONI       added to the KEEP= list for DB2STAT0 instead of DB2STAT1.
Feb  5, 1999  -VMACTMDB: variable LMRKFLG1 was listed twice in FORMAT
               statement; the last instance -  $HEX2. - was removed as
               it was overriding the $MGTMDGF decoding format.
              -Archaic TYPETMON and TYPEMONI were upgraded to the 16.04
               architecture, mostly for QA purposes than real need, as
               both are archaic (replaced by TYPETMO2 and TYPEMON8).
   Thanks to Chris Weston, SAS Institute ITSV Development, USA.

Change 16.359  Change 16.204 externalized tailoring for IMACACCT among
IMACACCT       others, but the &MACACCT;  statement was not added to
Feb  3, 1999   the end of the IMACACCT member until now.
   Thanks to Paul Oliver, BHP, AUSTRALIA.

Change 16.358  TYPE39_6 variables DURATM, STARTIME, in the SCS segment
VMAC39         were originally only created in Netmaster records, but
Feb  3, 1999   became unneeded when IBM added ACTSTIME/ACTETIME to the
               accounting segment.  I never noticed, but now in NetView
               for OS/390 Version 1 Release 1 type 39 records, IBM has
               put several character fields where those old fields were
               input, causing strange dates (like 2008) when MXG reads
               those characters as TODSTAMP datetimes!  The unneeded old
               Netmaster variables are now set missing/blank, and the
               new fields (Primary/Secondary CP NetworkID/Name and APPN
               class of service name and APPN transport priority) were
               added to each of the subtype 1-8 TYPE39 datasets.
   Thanks to Tracy Blackstone, Kaiser Permanente, USA.

Change 16.357  Variable DDNAME was not kept in TYPETMNT, but no one had
VMACTMNT       need of it.  But now, in developing a new MXG tool that
Feb  3, 1999   decomposes all job delays, we find DDNAME is needed so we
               can detect "parallel" tape mounts (when one tape DD has
               multiple tape drives allocated) so we can not-include the
               second-and-subsequent mount delays in the job delay total
               (the reason you allocate two drives for one tape DD is so
               that the rewind/mount time of one is in parallel with the
               job's use of the other, to prevent any delay to the job).

Change 16.356  Support for Sterling's SOLVE NetMaster for TCP/IP SMF
EXTYSOLN       creates one observation in dataset TYPESOLN for each
FORMATS        record (which are identified as either interval or
IMACSOLN       event), decoding as many of the up-to-12 fields that
TYPESOLN       might be present.  Variable ATTRID identifies what is
VMACSOLN       measured in each record, and has values in mixed case
VMXGINIT       (like "ifInPktsNUcast" and "ifInPktsDiscard") for each
Feb  3, 1999   metric.  There are nearly 60 metrics available:
                TCP/IP Stack:  FTP/TELNET/Workload Connection activity
                TCP/IP Node Monitor: SNMP counters/response/available
                CISCO Monitor:       Channel card load/errors/TN3270 use
                Local Interface:     Status and Thruput
               The complete list and description is in SOLVE:Netmaster
               Graphical Performance Manager User's Guide, Appendix C,
               Attribute Descriptions.
   Thanks to Wendy Wong, Sterling (Field Engineer), AUSTRALIA

Change 16.355  The DB2 Buffer Hit Ratios calculated in DB2STATS became
VMACDB2        negative because the TSPP field apparently should not be
Feb  2, 1999   included.  The old equation TGET-(TSIO+TDPP+TLPP+TSPP)
               had values of 175-(101+0+0+1621) so clearly TSPP is out
               of place, and thus has been removed from the equations
               for B1HITRAT/B2HITRAT/B3HITRAT/B4HITRAT and BPHITRAT.
               I am now looking for an IBM update to their equations.

Change 16.354  There are additional fields captured in HPs MeasureWare
VMACMWSU       for Sun that can now be output; some fields were removed
Feb  2, 1999   and some were reordered.  The new fields are defined, but
               you may need to compare the headings of the report with
               the MXG input sequence to see that they are the same.
   Thanks to Tim Crocker, NCCI, USA.

Change 16.353  The RMF WKLD Workload Activity Report was updated for
ANALRMFR       OS/390 MODE=COMPAT, the WLMGL Report RPTORP=RCLASS
Feb  2, 1999   SCLASS SCPER has been updated for MODE=GOAL, the WGPER
Feb 20, 1999   BY lists now have BY SYSPLEX STARTIME ....
   Thanks to Jane S. Huang, CIGNA Systems, USA.

Change 16.352  Some report/summary members had not been revised for the
ANALARB        16.04+ architecture and still %INCLUDEd their product's
ANALDB2R       IMACxxxx member instead of its VMACxxxx member.  As long
ANALPDSM       as the program ran in the same step that built its data
ASUMHPSU       sets, there was no error, because the VMACxxxx member
ASUMHPUX       would have already been %INCLUDEd, but standalone runs
Feb  2, 1999   caused SAS "180" syntax errors due to missing macros.
               MXG no longer defines macros in the product IMACxxxxs,
               but instead MXG defines its macros in the VMACxxxx's,
               which themselves include the IMACxxxx if you have one.
               any overrides of the MXG defaults.
               But not all includes of IMACxxxx members were changed,
               as there are non-product IMACxxxx members (IMACRMFI)
               that are still validly included by these programs.
   Thanks to Chuck Hopf, MBNA, USA.

Change 16.351 -Support for BETA93 3.1.3 Subtypes 1, 2, 3, 4, 20, 40, 41
FORMATS        and 42 has been validated with single-record tests. In
VMACBETA       one subtype 20, the READ DATE and TIME are invalid, which
Feb  2, 1999   means variable READTIME (which is necessary to match the
               Beta records to other SMF records for the job accounting)
               has a missing value, so the Beta records can't be matched
               to their jobs other data!  In the one test record:
                     valid LINP date       invalid LJOB date
                   S20LINPT+S20LINPD      S20LJOBT+S20LJOBD
                     time    cyyddd         time    cyyddd
                  '0064B47A 0095001F'    '00000000 0100000F'x
               That record was written on 2Nov98; the 95 date shows the
               document has been around for a while.  This discovery
               will be forwarded to the MXG site to forward to the Beta
               vendor for response and correction.  I will update this
               MXG note when I hear back from the vendor, but since the
               invalid date causes a hex dump of the record on the SAS
               log, I have added  "??" to suppress the dump and message.
               Create the Beta datasets and use PROC MEANS N DATA=....
               to see how many records have invalid data for READTIME.
              -Existing format MGBETRT for variable BETAATT4 was updated
               since it now has character rather than hex values.
   Thanks to Wolfgang Prescher, Quelle, GERMANY.

Change 16.350  Support for WINDOWS NT 5.0 (INCOMPATIBLE) for NTSMF adds
EXNTAPLT       new objects and new counters, but NT 5.0 appears to have
EXNTGWNW       removed some important data:
EXNTHTIS      =Changes to existing supported objects:
EXNTINSF      -SYSTEM object removed all of the CPU busy fields; these
EXNTINSR       variables will have missing value in the SYSTEM dataset:
EXNTJOB            APCBYPAS DPCQUERT DPCRATE DPCBYPAS INTERUPT
EXNTJOBD           PCTCPUTM PCTUSRTM PCTPRVTM PCTDPCTM PCTINTTM
EXNTMACF       But those variables are also in the PROCESOR dataset
EXNTPRNQ       (although per-CPU instead of per-interval), and NTINTRV
EXNTRASI       logic sums those PROCESSOR variables into the interval
FORMATS        CPU busy measures (by accident, because it happens that
IMACNTSM       the MERGE statement lists SYSTEM before PROCESOR, and SAS
VMACNTSM       always takes values from the last dataset when the same
VMXGINIT       variable is in multiple datasets), so you should make
Feb  1, 1999   sure you are creating the Processor object so you can get
Feb  4, 1999   those most-important measures in PDB.NTINTRV dataset.
               And if you were using dataset SYSTEM in your reporting
               for those fields, you'll need to change to use PROCESOR
               or PDB.NTINTRV for the interval utilizations in NT 5.0.
               Two new variables, PROCESES and THREADS were added to the
               SYSTEM object to count processes and threads.
              -LOGLDISK object no longer has the physical disk name,
               variable PDSKNAME, so you can't recognize which logical
               disks are on which physical devices!  Two new measures
               PCTIDLE (percent idle time) and SPLTIORT (SPLIT I/Os per
               second) were added to this object.
              -PHYSDISK object has the same two new measures, PCTIDLE
               and SPLTIORT that were added to LOGLDISK object.

              =New objects, their "NTdddd" suffix and dataset name:
                                               suffix    dataset
                 AppleTalk                     NTAPLT    APPLETLK
                 Gateway Service for Netware   NTGWNW    GTWYNETW
                 Http Indexing Service         NTHTIS    HTTPINSR
                 Indexing Service              NTINSR    INDEXSRV
                 Indexing Service Filter       NTINSF    INDSRVFL
                 Job Object                    NTJOB     JOB
                 Job Object Details            NTJOBD    JOBDETLS
                 MacFile Server                NTMACF    MACFILE
                 Print Queue                   NTPRNQ    PRINTQUE
                 RADIUS Server [IAS]           NTRASI    RADIUIAS

               This support is based on Windows NT 5.0 Beta 2 discovery
               records, and some records have been tested, but none of
               new objects yet.  NT 5.0 is to be renamed Windows 2000.

               With 486 processors and NTSMF earlier than 2.2, an INPUT
               STATEMENT EXCEEDED RECORD LENGTH on the 0.0 record is now
               avoided; the CPUSPEED fields are now only input if your
               NTSMF version is 2.2 or higher.

Change 16.349  The statement SQRTARG=(SSQELAP/TRANS-(RESPAVG**2);
ASUMCICS       caused INVALID ARGUMENT TO SQRT function because it
ASUMCICX       should have been  IF TRANS GT 0 THEN SORTARG=(....
TRNDCICS       Change 16.137 protected for negative square roots, but
TRND72         did not protect for zero divide with zero transactions.
Jan 30, 1999
   Thanks to Normand Poitras, ISM, CANADA.

Change 16.348  The internal _PDB6 macro was enhanced, adding variables:
BUILD005        BINUSED  BIN1BNCT BIN2BNCT BIN3BNCT BIN4BNCT
BUIL3005        BIN5BNCT BIN6BNCT BIN7BNCT BIN8BNCT BIN1USED
Jan 30, 1999    BIN2USED BIN3USED BIN4USED BIN5USED BIN6USED
                BIN7USED BIN8USED
               so they are kept in PDB.PRINT to measure bin activity.
   Thanks to John A. Rivest, TDS-Computing Services, USA.

Change 16.347  Preliminary report merges datasets HSMFSRST and PDB.JOBS
ANALALOC       to report how much of ALOCTM allocation delay was due to
Jan 30, 1999   HSM recall (and recall time spent queueing for an HSM
Feb 17, 1999   thread is separated from actual recall time), and how
               much was real allocation delay.  Further enhancements to
               bring in other delay records (e.g., MXGTMNT allocation
               and tape mount delay) are planned, to ultimately provide
               measurement of each separable delay in a job's life.
               Revised, Feb 17, 1999, but does not yet account for
               overlap of mount times when parallel devices mounts are
               used (i.e., multiple tape devices for one DD).
   Thanks to Rebecca Cates, PKS Computer Services, USA.

Change 16.346  Thruput Manager SMF records with no token entries caused
VMACTPMX         ERROR.VMACTPMX. TOKEN NOT FOUND, FIELD WAS NOT INPUT.
Jan 30, 1999   because MXG logic assumed there would always be tokens.
               Change the DO UNTIL (NEXLOC=0); to now read
                 IF OFFXFE GT 0 THEN DO UNTIL (NEXTLOC=0);
               and the record will be output.
   Thanks to Joseph Montana, Trans Union Corporation, USA.

Change 16.345  Enhanced HSM summarization now separates the HSM delay
ASUMHSM        into active and queued requests so you can track HSM's
TRNDHSM        concurrent thread count, used and required.  Triggered
Jan 30, 1999   by the new ANALALOC program, in Change 16.347, and now
               used by the revised ANALHSM in Change 16.383.

Change 16.344  RMF Reports are enhanced:
ANALRMFR      -Coupling Facility, Average CF utilization corrected.
FORMATS        PCTCFBSY, if logical processors present, calculate
Jan 30, 1999   using logical processor effective.
              -Updates PARTITION DATA REPORT for deactivated LPARs.
               The values for counts in the MXG reports, will be
               output as they are in the MXG/SAS database. (IBM
               reports counts as 80K but ANALRMFR shows 80396).
               Some values (standard deviation, delay time and /all
               time), are still in development/validation.
              -ADD Subchannel Activity Report.
              -Format MGRMFF was revised to round percentages better.
   Thanks to Scott Wiig, USBank, USA.

Change 16.343  Using JCLIMSLG/ASMIMSLG logic to read IMS log records for
VMACIMSA       IMS FastPath transactions created zero observations in
Jan 30, 1999   IMSFASTP dataset, because the variable SUBCODE was not
               kept in the IMS591,593,596,597, and IMS598 datasets.
               The variable was added to the KEEP= list for those five
               datasets (but Pete just used the five _KIMS59x macros
               to add SUBCODE to circumvent the error in the interim).
               Also, the PUT _ALL_'s that were unlimited will now only
               print for the first five instances of unmatched fastpath.
   Thanks to Pete Gain, SAS Software Pty, ENGLAND.

Change 16.342  New variable CECSER, the CPU SERIAL NUMBER OF THE CEC,
VMAC7072       (Central Electronic Complex) is created from CPUSER in
Jan 29, 1999   TYPE70 and TYPE70PR datasets, to identify the hardware
               box in which this MVS system ran.  The last two bytes of
               CPU Serial (CPUSER) are converted to hex representation
               and stored in the new 4-byte character variable CECSER,
               so a CPUSER='03870F'X has CECSER='870F'.
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.

Change 16.341  IMACPDB documentation.  No code was changed.
BUILD005       The new architecture eliminates tailoring member IMACPDB,
BUIL3005       but I failed to document how!  Previously, you EDITed the
IMACPDB        macros (_PDB6, _PDB26J2, etc.) in IMACPDB to add fields
ZMACPDB        (not kept by default) from type 6, 25, 26, and 30 SMF
Jan 29, 1999   records, into the PDB.JOBS, PDB.STEPS, and PDB.PRINT
               datasets.  But then you had to update your IMACPDB each
               time when I changed something, because your IMACPDB will
               (still) override my defaults.   But now, with the 16.04+
               design, you can instead use the &ADDxxxx macro variables,
               with  %LET ADDxxxx= var1 var2 ... ; syntax, to add your
               variables.  Your %LET can be in member IMACKEEP or can
               be in the SYSIN stream using the "MACKEEP=".  So if you
               have an IMACPDB member, compare it with the old member in
               ZMACPDB to see what your site added, and use the %LETs to
               add those variables and eliminate your IMACPDB.
               The new macro variable names and their function are:
                     MACRO Variable        For Dataset/Function
                       ADD6                 TYPE6
                       ADD25                TYPE25    (JES3 only)
                       ADD26J2              TYPE26J2  (JES2 only)
                       ADD26J3              TYPE26J3  (JES3 only)
                       ADD30U1              TYPE30_1
                       ADD30U4              TYPE30_4
                       ADD30U5              TYPE30_5

                       ADDACT2              Account fields back-merged
                                            from JOBS to STEPS/PRINT
                                            (JES2 only)
                       ADDACT3              Account fields back-merged
                                            from JOBS to STEPS/PRINT
                                            (JES3 only)

               The macros formerly defined in IMACPDB member are now
               defined in members BUILD005 (JES2) or BUIL3005 (JES3).
   Thanks to Mike A. Geiger, A. C.  Nielsen, USA.

Change 16.340  Some variables in ENDEAVOR dataset ENDEVRSE were wrong
VMACENDV       because the end-of-comment was missing after the INPUT
Jan 29, 1999   of variable EDVIFUNC, causing out-of-alignment.
   Thanks to Kenneth D. Jones, SHL Systemhouse, CANADA.

Change 16.339  Type 42 subtypes 15-19 (VSAM RLS) now exist and test data
VMAC42         exposed IBM errors: their length field in the triplet has
Jan 29, 1999   total length, instead of the length of the segment, which
               caused MXG to DELETE all the records with a WRONG LENGTH
               message on the log because of this invalid length value.
               MXG circumvents by constructing the segment length for
               from total length and number of segments.  However, IBM
               has changed some fields after the early documentation,
               and real data corrected several typos & logic errors so
               that now each repeated segment will be output.  Also, all
               TYPE42xx datasets now have their _BTY42xx "By" and their
               _STY42xx "Sort" macros implemented.
   Thanks to Ed McCarthy, Health Insurance Commission, AUSTRALIA.

Change 16.338  The old &PDB70,&PDB71,...&PDB78 macro variable names were
ASUM70PR       still used as the source DDNAME of the TYPE7xxx datasets
RMFINTRV       that are read into RMFINTRV, but in the new 16.04+ design
Jan 28, 1999   those names should have been &PTY70,&PTY71... PTY78.
               There was no execution error, because both sets of macros
               variable names have default values of "PDB", but if you
               tried to use the new 16.04+ tailoring to split your PDB
               into multiple destinations, DATASET NOT FOUND errors
               would result.  All of the &PDB7xxx's are now &PTY7xxx's.
               Note that &PDBRMFI is still the name for RMFINTRV.
              -Same error in ASUM70PR, but &PDB70PR is now &PTY70PR.
   Thanks to Linda Carroll, IBM Global Services, USA.

Change 16.337 =Support for these new NT objects:
EXNTBENC      -DB2 NT DATABASE MANAGER object creates dataset DB2.
EXNTDB2        with one instance variable and 15 counter variables.
EXNTFAXG      -FAX SR. GATEWAY MONITOR object creates dataset FAXGATEW,
EXNTMSCC       with one Instance variable and 8 counter variables.
EXNTPCHB      -VPN ADAPTER object creates VPNADAPT dataset with two
EXNTRADI       Instance variables and 15 counter variables.
EXNTUSER      -Terminal Server object USER creates dataset USER with
EXNTVINE       one instance variable (USER) and the other fields in the
EXNTVPN        PROCESS object (except for IDUSER/IDLOGON!).
FORMATS       -Radius Server object creates dataset RADIUS, but only
IMACNTSM       discovery records have been read.
VMACINIT      -Benchmark Factory object creates dataset BENCHMRK, but
VMACNTSM       only discovery records have been read.
Jan 30, 1999  -Microsoft Exchange object MSExchangeMSCC created MSEXCHCC
               with counts and rates of mail activity between Exchange
               and Lotus CC:MAIL.  Only Discovery have been read.
              -Vines Communications object creates dataset VINES with
               33 counters.
              =Enhancement/correction to existing NT objects:
              -PROCESS dataset variables IDLOGON and IDUSER had missing
               values, because MXG had a test for NRDATA=20 instead of
               NRDATA=21.  The WIDE2MBE variable was renamed to CREATPID
               when Demand Technology was able to discover what was put
               in that undocumented field (Creation Process ID).
              -WINPROXY dataset has two variables now removed from the
               record (but MXG still creates them, with missing value,
               so your reports won't die), and five new fields were
               added (incompatibly, of course!).
   Thanks to Jim Quigley, Consolidated Edison, USA.

Change 16.336  IBM Documentation for NPM 2.4 is wrong, causing STOPOVER
VMAC28         error with NPMSUBTY='DD'x record.  The VTT section has a
Jan 26, 1999   documented length of 196 bytes, but records with only 176
               bytes (thru VTTNNCDS) are being created by IBM.  To avoid
               the error, two lines were inserted in the VTT input:
                       VTTNNCDS    &PIB.4.                original line
                 @;                                       inserted line
                 IF LENAOF GE 196 THEN INPUT              inserted line
                       VTTNRRGC    &PIB.4.                original line
               Mar 10, 2000: APAR OW37758 fixed the 2.4 error, but that
               APAR was not applied to the 2.5 release, so APAR AW43578
               exists for 2.5, with no PTF.  See Change 18.032.
   Thanks to Brian Crow, British Telecom, ENGLAND.

Change 16.335  Variables H15TCSDT and H15TCEDT in TYPERDSn RDS datasets
VMACRDS        have never been correct, because MXG used JULDATE() where
Jan 22, 1999   it should have had DATEJUL().  No one noticed/complained,
               probably because variable SMFTIME was valid, but now the
               dates use DATEJUL() and its protection algorithm.
   Thanks to Forrest Nielson, State of Utah, USA.

======Changes thru 16.334 were in MXG 16.09 dated Jan 20, 1999======

Change 16.334  Variable INNODE in TYPETPMX was changed to INNODEC, from
VMACTPMX       numeric to character because INNODE was already defined
Jan 19, 1999   as numeric in other datasets created from SMF records.

Change 16.333  ADSM data transfer units were true Kilobytes so their
VMAC42         multiplier is changed from 1000 to 1024 for variables
Jan 17, 1999   ARCBYTCS,BKPBYTCS,DATBYTCS,ARCBYTRE and BKPBYTRE in
               dataset TYPE42AD.  I guessed the 1000 because most of
               storage in IBM "KB" means 1000 rather than 1024, but
               this guess was wrong.
   Thanks to Kristyann Manske, University of Wisconsin-Milwaukee, USA.

Change 16.332  Variables DPRTY and IODP are both now formatted as HEX2.
VMAC99         to be consistent with historic priority ranges that are
Jan 17, 1999   commonly in hex (00-FF) rather than decimal.
   Thanks to Chuck Hopf, MBNA, USA.

Change 16.331  "Cosmetic Audit" of duplicate variables in LABEL, LENGTH
many           and FORMAT statements, incorrect dataset name in comments
Jan 17, 1999   and _L macro names where _W macro names belong, and other
               similar typos were corrected in these members:
                 VMAC102  VMAC110  VMAC28   VMAC30   VMAC40   VMACAPAF
                 VMACCIMS VMACCIMS VMACCMF  VMACCMFV VMACDCOL VMACHSM
                 VMACICE  VMACILKA VMACIMS  VMACIMSA VMACMWAI VMACMWUX
                 VMACNTSM VMACPW   VMACRMFV VMACVMON VMACVMXA
   Thanks to Freddie Arie, Lone Star Gas, USA.

Change 16.330  Status of MXG Year 2000 Support as of Jan 20, 1999.
ASUMHSM
TYPE80A        MXG 16.09 is now required for full Year 2000 Support of
TYPEBETA       all fields in all records from all supported products.
TYPEDCOL       This replaces all prior statements of MXG Y2K Support.
TYPEHSM
TYPEMON8       MXG 16.01 and later do support almost all products, but
TYPEMOND       five common products now require MXG 16.09 or later:
TYPEOPC           HSM SMF Records
TYPETMON          CA-1 aka TMS Tape Management Records
TYPETMS5          BETA93 SMF Records
TYPETMV2          Landmark Monitor for MVS Version 2
TYPETMVS          VM Accounting records
TYPEVLFC       Additionally, six other products that have variables
TYPEVM         that were not Y2K compliant, but those variables were
YEAR2000       unlikely to have been used in your reports:
Jan 17, 1999      DCOLLECT - one julian date variable, UCCOLDT
Jan 20, 1999      OPC/A    - three obscure julian date variables
                  Landmark - CICS: TYPEMON8,TYPETMON,TYPEMOND
                             MVS:  TYPETMV2,TYPETMVS
                             one internal datetime TMMDCCLK.
                  ASTEX    - one julian date SDATE
                  RACF SMF - two variables REVOKEDTE, RESUMEDTE
                  VLF      - VLF Catalog records from SYSLOG.

               Products were found with julian dates that were kept as
               0cyyddd value (0100001 for 01Jan2000), which is a valid
               Y2K format, but which is one not supported by SAS's
               DATEJUL() function, so while MXG correctly created valid
               Y2K values, your reports or exit logic would fail if they
               used DATEJUL() on those 0cyyddd values.  No ABEND, but
               missing values or invalid argument messages on your log.

               For example, TMS records have julian date values like the
               EXPDT that are kept as 0cyyddd that could cause problems.

               This DATEJUL() problem itself is not new.  MXG reported
               it and has provided an algorithm (described in member
               YEAR2000, implemented by Change 15.050) that protects
               julian dates as they are converted into SAS DATETIME
               or DATE variables, which are Y2K compliant.  But that
               algorithm did not change the raw julian date value.

               This change revises the protection algorithm so that it
               now replaces the original 0cyyddd value with the valid
               yyyyddd value in the raw julian date variable, unless the
               yyyyddd value is missing (i.e., an invalid "date" like
               99000), when the original raw value is not overwritten.

               ASUMHSM testing with Y2K HSM records exposed the error,
               and I realized that TMS and all products that keep julian
               date variables were exposed, so every MXG member that had
               a julian date field was examined, and I found four more
               with the kept-julian-date-problem.  I also found six
               products (nine variables) that had been overlooked by MXG
               Change 15.050 that were having unprotected sex with the
               DATEJUL() function.  All are now algorithm-protected.

                 Members with kept-julian-date-fields and the variables
                 that are now converted to yyyyddd:
                   TYPEDCOL   UCCOLDT
                   TYPEHSM    DSRDATE,VSRDATE,FSRBDATE,FSRDATR,FSRDLM,
                              FSRDLU
                   ASUMHSM    DSRDATE
                   TYPEOPC    TRLEVDAT,MT0CPED,MT0DAT
                   TYPETMS5   BTHDATE,CRTDT,DSADT,EXPDT,TMVADATE,LDATE,
                              TMAUDATE
                   TYPETMV2   JDRDATE
                   TYPETMVS   (archaic) JDRDATE

                 Members overlooked in Change 15.050 and the variables
                 that are now protected:
                   TYPEBETA   BETASTRT, BETAEND, BETASTSE, BETAENSE
                   TYPEDMON   SDATE
                   TYPEHSM    WFSRDATR, WFSRDATS, WFSRDATE
                   TYPETMV2   LMRKDATE, ENDTIME, STRTTIME
                   TYPETMVS   (archaic) LMRKCARK
                   TYPE80A    REVOKDTE, RESUMDTE
                   TYPEMOND   TMMDCCLK
                   TYPEMON8   (archaic) TMMDCCLK
                   TYPETMON   (archaic) TMMDCCLK
                   TYPEVLFC   DATETIME
                   TYPEVM     STARTIME, ENDTIME

                 In addition, thirty-five other members were changed
                 to streamline the algorithm where the creation of the
                 DATEYYYY variable was not required.  These members
                 were and still are Y2K compliant, but are now more
                 robustly protected and their non-kept julian dates
                 are now converted to yyyyddd format:
                   TYPE90,TYPE84,TYPE434,TYPE37,TYPE1415,TYPE110,
                   TYPECTLT,TYPEFILA,TYPEIDMJ,TYPEIDMS,TYPEIMS,
                   TYPEIMSA,TYPEIPAC,TYPEITRF,TYPENDM,TYPENETP
                   TYPENSPY,TYPEOMVT,TYPEPDSM,TYPEROSC,TYPESIM,
                   TYPETRMS,TYPEWSF,TYPEXCOM,TYPEXSTR,TYPESUPR,
                   TYPESLRI,TYPERTEJ,TYPEDMS,IDMSLO57,IDMSJRNL,
                   ANALTMS,ANALSNAP,ANALRACF,ANALCM29
   Thanks to John McCray, Huntington Services Company, USA.
   Thanks to Xiaobo Zhang, Insurance Service Office, USA.

CHANGE 16.329  Support for OS/390 R 2.7 (COMPATIBLE) adds new subtypes,
EXTY746B       records, and segments:
EXTY746F      -RMF type 74 record has new subtype 6 which creates three
EXTY746G       new MXG datasets describing Hierarchical File Systems.
FORMATS        While storage size fields in the raw record are in pages
VMAC42         or MB, MXG converts them all to bytes and formats with
VMAC7072       MGBYTES so the storage variables have the same, standard
VMAC73         units that display as MegaBytes, GigaBytes, etc.
VMAC74         -TYPE746G - HFS Global Statistics - one per interval
VMAC79           R746G1C ='FIRST PAGE*FINDS*IN CACHE'
VMXGINIT         R746G1NC='FIRST PAGE*NOT FOUND*IN CACHE'
VMAC109          R746GLRC='RETURN CODE*BPX1PCT*BUFFLIM'
EXTY109          R746GLRS='REASON CODE*BPX1PCT*BUFFLIM'
IMAC109          R746GMC ='METADATA*FINDS*IN CACHE'
TYPE109          R746GMNC='METADATA*NOT FOUND*IN CACHE'
TYPS109          R746GMNF='VALUE OF FIXED(MIN)'
Jan 16, 1999     R746GMXV='VALUE OF*VIRTUAL(MAX)'
                 R746GSFL='STATUS FLAGS'
                 R746GSRC='RETURN CODE*BPX1PCT*GLOBSTAT'
                 R746GSRS='REASON CODE*BPX1PCT*GLOBSTAT'
                 R746GUSF='PERMANENT*FIXED*STORAGE*IN USE'
                 R746GUSV='VIRTUAL*STORAGE*IN USE'
               -TYPE746B - HFS Buffer Statistics - one per buffer pool
                 R746GBF ='BUFFER*WAS FIXED*PRIOR TO*IO REQUEST'
                 R746GBNF='BUFFER*WAS NOT FIXED*PRIOR TO*IO REQUEST'
                 R746GNDS='NUMBER OF*DATA SPACES*FOR BUFFER POOL'
                 R746GSB ='SIZE OF*BUFFERS*IN BUFFER POOL'
                 R746GSBN='BUFFER*POOL*NUMBER'
                 R746GSBF='SIZE OF*PERMANENT*FIXED*BUFFERS'
                 R746GSBP='SIZE OF*BUFFER*POOL'
               -TYPE746F - HFS File System Detail Statistics
                 R742PSNM='FILE*SYSTEM*NAME*(DSN)'
                 R746F1C ='FIRST PAGE*WAS FOUND*IN CACHE'
                 R746F1NC='FIRST PAGE*NOT FOUND*IN CACHE'
                 R746FCTM='CURRENT*TIME*STAMP'
                 R746FIJ ='INDEX JOINS'
                 R746FINT='INDEX NEW TOPS'
                 R746FIRH='INDEX PAGE READ HITS'
                 R746FIRM='INDEX PAGE READ MISSES'
                 R746FIS ='INDEX SPLITS'
                 R746FIWH='INDEX PAGE WRITE HITS'
                 R746FIWM='INDEX PAGE WRITE MISSES'
                 R746FMC ='METADATA WAS FOUND IN CACHE'
                 R746FMNC='METADATA NOT FOUND IN CACHE'
                 R746FMTM='MOUNT*TIME*STAMP'
                 R746FPC ='DATA BUFFER BYTES CACHED BY THIS FILESYS'
                 R746FPD ='BYTES USED FOR ATTRIBUTE*DIRECTORY'
                 R746FPF ='BYTES*INTERNALLY*USED*BY HFS'
                 R746FRFI='RANDOM FILE DATA I/O REQUESTS'
                 R746FSF ='BYTE SIZE OF*FILE*SYSTEM'
                 R746FSFI='SEQUENTIAL FILE DATA I/O REQUESTS'
                 R746FSFL='STATUS*FLAGS'
                 R746FSNL='LENGTH OF*FILE*SYSTEM*NAME'
                 R746FSRC='RETURN CODE*BPX1PCT*FSSTATS'
                 R746FSRS='REASON CODE*BPX1PCT*FSSTATS'
              -RMF type 70 record has new bit values for SMF70PFG that
               MXG decodes into two new variables in TYPE70PR:
                 LPARCHDE='NUMBER OF*DEDICATED*PROCESSORS*CHANGED?'
                 LPARCHSH='NUMBER OF*SHARED*PROCESSORS*CHANGED?'
              -RMF type 73 record has new CPMF (Channel Path Measurement
               Facility) mode variable in dataset TYPE73:
                 SMF73CMI='CPMF*MODE'
               which is decoded by the new MG073CP format:
                     0='0:CPMF IS NOT ACTIVE'
                     1='1:COMPATIBILITY MODE'
                     2='2:EXTENDED MODE'
              -RMF type 79 record subtype 12 also has a new CPMF*MODE
               variable in dataset TYPE79C
                 R79CCMI='CPMF*MODE'
               that is also decoded by the new MG073CP format, above.
              -SMF type 42 subtype 5 and 6 contain new field S42DSDAO
               that MXG creates in datasets TYPE42DS, TYPE42SR, and
               TYPE42VT as new variable named:
                 AVGDAOMS='AVERAGE*I/O DEV-ACTIVE-ONLY*MS PER SSCH'
              -New SMF type 109 record is written by OS/390 Firewall
               Server, and contains log messages of firewall activity
               that appear to be quite useful to security folks.  The
               ICAxxxxx and ICACxxxx message structure will be decoded
               when I have test data from an interested site; for now,
               those messages are just carried as text strings.

               These changes have not been tested with 2.7 data yet.

Change 16.328  For Percentile Goal Service Classes, a new MXG variable
VMAC7072       PCTMETGO reports the actual percentage of transactions
Jan 14, 1999   that met the goal.  For example, take a Service Class
Sep 17, 2002   that has a goal value of 1 second.  Its MAP values are
               actually percentages of the goal and the product of the
               MAP value and the goal value is the response time value.
               If the goal is 90% in 1 second, and your data values are:

                MAP  .5   .6  .7 .8 .9  1 1.1 1.2 1.3 1.4 1.5  2   4  FF
                TRN 8638 108 101 69 59 53  56  43  42  30  1  147 134 22

               then 90.9% (8638/9503) of those transactions ended in the
               first bucket, in one-half-second.  You easily met your
               90%-in-one-second goal; in fact 90% of your transactions
               were satisfied in less than 50% of your goal value, so
               your goal is being met at a level of 50% of the response
               time goal, so IBM's PERFINDX is 0.5, "twice as good".
                 (See why you need to be careful with percentages,
                  and always include, "of what").
               But if we sum the number of transactions in the first six
               buckets (i.e., those transactions whose response time was
               less than or equal to the goal value), there were 9028 of
               the 9503 transactions (95%) that met the one second goal,
               and the value of new variable PCTMETGO=95.00.
    Thanks to Chuck Hopf, MNBA, USA.

Change 16.327  For Service Classes with Average Goal value that had no
VMAC7072       delay samples (i.e., PCUTSOU=0 and PCTDLTOT=0), VELOCITY
Jan 14, 1999   cannot be calculated so it was missing value, but MXG
               then erroneously set PERFINDX to zero, even when it
               could be calculated.  The original logic:
               IF (TRANS EQ 0 AND TRANSEXC GT 0) OR R723CRGF='A' THEN ..
                 IF R723CVAL LE 0 OR VELOCITY LE 0 THEN PERFINDX=0;
                 ELSE PERFINDX=AVGELPTM/R723CVAL;
               END;
               now has the test for VELOCITY removed:
               IF (TRANS EQ 0 AND TRANSEXC GT 0) OR R723CRGF='A' THEN ..
                 IF R723CVAL LE 0 THEN PERFINDX=0;
                 ELSE PERFINDX=AVGELPTM/R723CVAL;
               END;
   Thanks to Chuck Hopf, MBNA, USA.

Change 16.326  TYPE72 for Compatibility Mode OS/390 R2.4+ was incomplete
VMAC7072       as new delay variables were input in the subtype 3 SMF
Jan 14, 1999   record for WLM Goal Mode, but were not input for the
               subtype 1 Compat Mode record.  These variables are new:
                 SMF72ADT='INELIBIBLE*AFFINITY*TIME'
                 SMF72CVT='JCL CONVERSION*TIME'
                 SMF72IOD='TOTAL*I/O*DELAYS*SAMPLES'
                 SMF72IOT='DASD*IOS QUEUE*TIME'
                 SMF72IQT='INELIGIBLE*OTHER*RESOURCE*TIME'
                 SMF72QDT='TOTAL*QUEUE*DELAY*TIME'
                 SMF72TSA='TOTAL*EXECUTION*SAMPLES'
   Thanks to Rick Mansfeldt, GE Capital, USA.

Change 16.325  Documentation only; the instructions implied you needed
BLDNTPDB       to run three separate BLDNTDPBs, one for DAY, WEEK, and
Jan 14, 1999   MONTH, but in fact, all you need is to use daily:
                %BLDNTPDB(RUNDAY=YES,RUNWEEK=YES,RUNMNTH=YES);
               and the daily will always be built, the weekly will be
               built on the WEEKSTRT= date (default=MON), and the
               monthly will be built on the first day of the month.
   Thanks to Wayne Holzback, Reynolds Metal Company, USA.

Change 16.324  Variables R744FTIM, FSQU, FCTM, and FCSQ should have
VMAC74         been divided by 4096.
Jan 14, 1999
   Thanks to Bruce Widlund, Merrill Consultants, USA.

Change 16.323  Change 16.271 was not supposed to change VMXGSUM, but it
VMXGSUM        did; the comments around &DATETIME=DATETIME; statement
Jan 14, 1999   that were added by 16.271 have now been removed.
   Thanks to Freddie Arie, Lone Star Gas, USA

Change 16.322  Support for CICS TS 1.3 (INCOMPATIBLE).  IBM inserted
ADOC110        data fields in the middle of the accounting record, so
EXCICCF6       you MUST use MXG 16.09 or later to read CICS TS 1.3 data.
EXCICCF7
EXCICCF8       Lots of new measurements have been added, especially for
EXCICCF9       Web activity (and the first JAVA measurements in MVS!!!).
EXCICNC4       There are also new subtypes 3, 4 and 5, and new stat data
EXCICNC5       records and new fields added to existing statistics, and
EXCICSOR       there are now 11 TCBs that CICS can dispatch!
FORMATS        The type 110 subtype 1 (CICSTRAN dataset) has these 61
VMAC110        new variables added:
VMXGCICI          ACTVTYID='ACTIVITY*ID'
Nov 29, 1998      ACTVTYNM='ACTIVITY*NAME'
Jan 12, 1999      BAACDCCT='ACTIVITY*DATA*CONTAINER*REQUESTS'
                  BAACQPCT='ACQUIRE*PROCESS*REQUESTS'
                  BADACTCT='DEFINE*ACTIVITY*REQUESTS'
                  BADCPACT='DELETE*ACTIVITY*AND CANCEL*REQUESTS'
                  BADFIECT='DEFINE*INPUT*EVENT*REQUESTS'
                  BADFTECT='DEFINE*TIMER*EVENT*REQUESTS'
                  BADPROCT='DEFINE*PROCESS*REQUESTS'
                  BALKPACT='LINK*PROCESS*ACTIVITY*REQUESTS'
                  BAPRDCCT='PROCESS*DATA*CONTAINER*REQUESTS'
                  BARACTCT='RESET*ACTIVITY*REQUESTS'
                  BARASYCT='RUN*PROCESS*ACTIVITY*ASYNC'
                  BARATECT='RETRIEVE*REATTACH*EVENT*REQUESTS'
                  BARMPACT='RESUME*PROCESS*ACTIVITY*REQUESTS'
                  BARSYNCT='RUN*PROCESS*ACTIVITY*SYNC'
                  BASUPACT='SUSPEND*PROCESS*ACTIVITY*REQUESTS'
                  BATOTCCT='TOTAL*DATA*CONTAINER*REQUESTS'
                  BATOTECT='TOTAL*EVENT*REQUESTS'
                  BATOTPCT='TOTAL*PROCESS*ACTIVITY*REQUESTS'
                  CFCAPICT='OO CLASS*LIBRARY*API*REQUESTS'
                  CFDTWACN='CF DATA*TABLE*WAIT*COUNT'
                  CFDTWATM='CF DATA*TABLE*WAIT*TIME'
                  CHMODECT='CICS*DISPATCHER*MODE*CHANGES'
                  CLIPADDR='CLIENT*IP*ADDRESS'
                  DB2CONCN='DB2*CONNECTION*WAIT*WAIT*COUNT'
                  DB2CONTM='DB2*CONNECTION*WAIT*WAIT*TIME'
                  DB2RDYCN='DB2*READY*QUEUE*WAIT*COUNT'
                  DB2RDYTM='DB2*READY*QUEUE*WAIT*TIME'
                  DB2REQCT='DB2*REQUEST*COUNT'
                  DB2WAICN='DB2*WAIT*WAIT*COUNT'
                  DB2WAITM='DB2*WAIT*WAIT*TIME'
                  DHCRECT ='DOCUMENT*CREATE*REQUESTS'
                  DHINSCT ='DOCUMENT*INSERT*REQUESTS'
                  DHRETCT ='DOCUMENT*RETRIEVE*REQUESTS'
                  DHSETCT ='DOCUMENT*SET*REQUESTS'
                  DHTOTCT ='TOTAL*DOCUMENT*REQUESTS'
                  DHTOTDCL='TOTAL*DOCUMENT*CREATED*LENGTH'
                  GNQDELCN='GLOBAL*ENQUE*DELAY*COUNT'
                  GNQDELTM='GLOBAL*ENQUE*DELAY*TIME'
                  IMSREQCT='IMS*REQUEST*COUNT'
                  IMSWAICN='IMS*WAIT*COUNT'
                  IMSWAITM='IMS*WAIT*TIME'
                  J8CPUTCN='USER TASK*J8 MODE*CPU TCB*COUNT'
                  J8CPUTTM='USER TASK*J8 MODE*CPU TCB*TIME'
                  JVMSUSCN='JAVA*VM*SUSPEND*COUNT'
                  JVMSUSTM='JAVA*VM*SUSPEND*TIME'
                  JVMTIMCN='JAVA*VM*EXECUTION*COUNT'
                  JVMTIMTM='JAVA*VM*EXECUTION*TIME'
                  L8CPUTCN='USER TASK*L8 MODE*CPU TCB*COUNT'
                  L8CPUTTM='USER TASK*L8 MODE*CPU TCB*TIME'
                  MAXOTDCN='MAX*OPEN*TCB*DELAY*COUNT'
                  MAXOTDTM='MAX*OPEN*TCB*DELAY*TIME'
                  MSCPUTCN='USER TASK*OTHER MODE*CPU TCB*COUNT'
                  MSCPUTTM='USER TASK*OTHER MODE*CPU TCB*TIME'
                  MSDISPCN='USER TASK*OTHER MODE*DISPATCH*COUNT'
                  MSDISPTM='USER TASK*OTHER MODE*DISPATCH*TIME'
                  PCDPLCT ='DPL*PROGRAM*LINKS'
                  PRCSID  ='PROCESS*ID'
                  PRCSNAME='PROCESS*NAME'
                  PRCSTYPE='PROCESS*TYPE'
                  QRCPUTCN='USER TASK*QR MODE*CPU TCB*COUNT'
                  QRCPUTTM='USER TASK*QR MODE*CPU TCB*TIME'
                  QRDISPCN='USER TASK*QR MODE*DISPATCH*COUNT'
                  QRDISPTM='USER TASK*QR MODE*DISPATCH*TIME'
                  QRMODDCN='QR*MODE*DELAY*COUNT'
                  QRMODDTM='QR*MODE*DELAY*TIME'
                  RRMSURID='RRMS/MVS*UNIT OF RECOVERY*ID'
                  RRMSWACN='RRMS/MVS*WAIT*COUNT'
                  RRMSWATM='RRMS/MVS*WAIT*TIME'
                  RUNTRWCN='RUN*TRANSACTION*WAIT*COUNT'
                  RUNTRWTM='RUN*TRANSACTION*WAIT*TIME'
                  S8CPUTCN='USER TASK*S8 MODE*CPU TCB*COUNT'
                  S8CPUTTM='USER TASK*S8 MODE*CPU TCB*TIME'
                  SOBYDECT='BYTES*DECRYPTED'
                  SOBYENCT='BYTES*ENCRYPTED'
                  SOIOWTCN='SOCKET*IO*WAIT*COUNT'
                  SOIOWTTM='SOCKET*IO*WAIT*TIME'
                  SRVSYWCN='SERVER*SYNCPOINT*WAIT*COUNT'
                  SRVSYWTM='SERVER*SYNCPOINT*WAIT*TIME'
                  SYNCDLCN='SYNCPOINT*DELAY*COUNT'
                  SYNCDLTM='SYNCPOINT*DELAY*TIME'
                  TCBATTCT='CICS*DISPATCHER*TCB*ATTACHES'
                  WBCHRIN ='WEB*CHARACTERS*RECEIVED'
                  WBCHROUT='WEB*CHARACTERS*SENT'
                  WBRCVCT ='WEB*RECEIVE*REQUESTS'
                  WBREPRCT='REPOSITORY*READS'
                  WBREPWCT='REPOSITORY*WRITES'
                  WBSENDCT='WEB*SEND*REQUESTS'
                  WBTOTCT ='TOTAL*WEB*REQUESTS'
               The type 110 subtype 1 (CICSEXCE dataset) adds variables:
                  EXCMNBTR='BRIDGE*TRANSACTION*ID'
                  EXCMNCPN='CURRENT*PROGRAM*NAME'
                  EXCMNFCN='TRANSACTION*FACILITY*NAME'
                  EXCMNNPX='NETWORK*UNIT-OF-WORK*PREFIX'
                  EXCMNNSX='NETWORK*UNIT-OF-WORK*PREFIX'
                  EXCMNRIL='EXCEPTION*RESOURCE*ID*LENGTH'
                  EXCMNRIX='EXCEPTION*RESOURCE*ID'
                  EXCMNTRF='TRANSACTION*FLAGS'
                  EXCMNURI='RRMS/MVS*UNIT OF RECOVERY*ID'
              -Statistics STID=55 now creates CICDS Dispatcher Stats
               dataset (replacing STID=56 or STID=57). There are now
               eleven TCBs separately reported in CICDS dataset:
                  TCB  Var Prefix Abbreviation  Description
                    1     DSG        QR         Quasi Reentrant
                    2     DS2        RO         Resource Owning
                    3     DS3        CO         Concurrent
                    4     DS4        SZ         Secondary LU
                    5     DS5        RP         ONC/RPC
                    6     DS6        FO         File Owning
                    7     DS7        SL         Sockets Owning SL
                    8     DS8        SO         Sockets Owning SO
                    9     DS9        J8         J8 Open
                   10     DSA        L8         L8 Open
                   11     DSB        S8         S8 Open
               The CICDS labels now conain the TCB abbreviation.
              -Statistics STID=67 (CICFCR dataset) has new variables:
                  A17DTCFP='CF*DATA*TABLE*POOL NAME'
                  A17DTCON='CHANGED*RESPONSES*FOR CFDT'
                  A17DTLDS='LOADING*RESPONSES'
              -Statistics STID=42 (CICTQR dataset) has new variable:
                  TQRPDSMN='PDS*MEMBER*NAME'
              -Statistics STID=52 (CICCONSR dataset) has new field:
                  A14ESTPC='PROGRAM*CONTROL*FUNCTION*SHIP*REQUESTS'
              -Statistics STID=97 now creates CICNQG ENQ Manager data;
               it was previously in STID=96, but not only was the STID
               changed, there are four new variables:
                 NQGGNQSW='TOTAL*SYSPLEX*ENQUES*WAITED'
                 NQGGNQWT='TOTAL*SYSPLEX*ENQ*WAITING TIME'
                 NQGSNQSW='CURRENT*SYSPLEX*ENQUEUE*WAITING'
                 NQGSNQWT='CURRENT*SYSPLEX*ENQ*WAITING TIME'
              -New Statistics segments and new Subtypes create seven new
               datasets, but I have no test data to validate the code,
               so no deaccumulation (if needed) has been written.  The
               contents of these new datasets are impressive:

                MXG DATASET STID  DSECT Subtype Description
                 CICTCPIP   108     SOR    2    TCP/IP Statistics
                 CICNCS4D   124   NCS4D    5    NC Server List Structure
                 CICNCS5D   125   NCS5D    5    NC Server Storage Stats
                 CICCFS6D   126   CFS6D    4    CFTD Server List
                 CICCFS7D   127   CFS7D    4    CFTD Buffer Statistics
                 CICCFS8D   128   CFS8D    4    CFTD Request Statistics
                 CICCFS9D   129   CFS9D    4    CFTD Storage Statistics

               Contents of CICTCPIP - TCP/IP Statistics
                  SORBACKL='TCP/IP*SERVICE*BACKLOG'
                  SORBYTRC='BYTES*RECEIVED*(ALL SOCKETS)'
                  SORBYTSN='BYTES*SENT*(ALL SOCKETS)'
                  SORCLOSG='GMT SERVICE*CLOSE TIME*(GMT)'
                  SORCLOSL='LOCAL SERVICE*CLOSE TIME*(LOCAL)'
                  SORCUCON='CURRENT*NUMBER OF*CONNECTIONS'
                  SORIPADR='TCP/IP*SERVICE*IP ADDRESS'
                  SOROPENG='GMT SERVICE*OPEN TIME*(GMT)'
                  SOROPENL='LOCAL SERVICE*OPEN TIME*(LOCAL)'
                  SORPKCON='PEAK*NUMBER OF*CONNECTIONS'
                  SORPORTN='TCP/IP*SERVICE*PORT*NUMBER'
                  SORRECVS='RECEIVES*(ALL SOCKETS)'
                  SORSENDS='SENDS*(ALL SOCKETS)'
                  SORSERVN='TCP/IP*SERVICE*NAME'
                  SORSSLFL='TCP/IP*SERVICE*SSL*SUPPORT'
                  SORTRANA='TRANSACTIONS*ATTACHED'
               Contents of CICNCS4D - NC Server List Structure
                  S4ASYCT ='NUMBER OF*ASYNCHRONOUS*REQUESTS'
                  S4CNPREF='PREFIX FOR*CONNECTION*NAME'
                  S4CNSYSN='OWN MVS*SYSTEM NAME*FROM*CVTSNAME'
                  S4CRECT ='CREATE*COUNTER'
                  S4DELCT ='DELETE*COUNTER'
                  S4ENTRCT='CURRENT*NUMBER*OF ENTRIES*IN USE'
                  S4ENTRHI='HIGHEST*NUMBER*OF ENTRIES*IN USE'
                  S4ENTRLO='LOWEST*NUMBER*OF FREE*ENTRIES'
                  S4ENTRMX='MAX ENTRIES*RETURNED*BY IXLCONN'
                  S4GETCT ='GET AND*INCREMENT*COUNTER'
                  S4KEQCT ='INQUIRE*KEQ'
                  S4KGECT ='INQUIRE*KGE'
                  S4POOL  ='POOL NAME*PART OF*STRUCTURE NAME'
                  S4PREF  ='FIRST*PART OF*STRUCTURE*NAME'
                  S4RSP1CT='NORMAL RESPONSE EVERYTHING OK'
                  S4RSP2CT='NO MATCHING*ENTRY*WAS FOUND'
                  S4RSP3CT='ENTRY*VERSION*DID NOT*MATCH'
                  S4RSP4CT='LIST*AUTHORITY*COMPARISON*MISMATCH'
                  S4RSP5CT='THE LIST*STRUCTURE*IS OUT*OF SPACE'
                  S4RSP6CT='IXLLIST*RETURN*CODE*OCCURRED*OTHER'
                  S4SETCT ='SET*COUNTER'
                  S4SIZE  ='STRUCTURE*SIZE*(UNSIGNED*FULLWORD)'
                  S4SIZEMX='MAXIMUM*STRUCTURE*SIZE'
               Contents of CICNCS5D - NC Server Storage Statistics
                  S5ANYFR ='NUMBER OF*FREE PAGES*IN THE POOL'
                  S5ANYLO ='LOWEST*FREE*PAGES*(SINCE RESET)'
                  S5ANYMX ='TOTAL PAGES*IN THE*STORAGE*POOL'
                  S5ANYNAM='POOL NAME*AXMPGANY'
                  S5ANYPTR='ADDRESS OF*STORAGE*POOL*AREA'
                  S5ANYRQC='COMPRESS*(DEFRAGMENTATION)*ATTEMPTS'
                  S5ANYRQF='GETS*WHICH FAILED*TO OBTAIN*STORAGE'
                  S5ANYRQG='STORAGE*GET*REQUESTS'
                  S5ANYRQS='STORAGE*FREE*REQUESTS'
                  S5ANYSIZ='SIZE OF*STORAGE*POOL*AREA'
                  S5ANYUS ='NUMBER OF*USED PAGES*IN THE POOL'
                  S5LOWFR ='NUMBER OF*FREE PAGES*IN THE POOL'
                  S5LOWLO ='LOWEST*FREE*PAGES*(SINCE RESET)'
                  S5LOWMX ='TOTAL PAGES*IN THE*STORAGE*POOL'
                  S5LOWNAM='POOL NAME*AXMPGLOW'
                  S5LOWPTR='ADDRESS OF*STORAGE*POOL*AREA'
                  S5LOWRQC='COMPRESS*(DEFRAGMENTATION)*ATTEMPTS'
                  S5LOWRQF='GETS*WHICH FAILED*TO OBTAIN*STORAGE'
                  S5LOWRQG='STORAGE*GET*REQUESTS'
                  S5LOWRQS='STORAGE*FREE*REQUESTS'
                  S5LOWSIZ='SIZE OF*STORAGE*POOL*AREA'
                  S5LOWUS ='NUMBER OF*USED PAGES*IN THE POOL'
               Contents of CICCSF6D - CFTD Server List
                  S6CNPREF='PREFIX*FOR*CONNECTION*NAME'
                  S6CNSYSN='OWN MVS*SYSTEM NAME*FROM CVTSNAME'
                  S6ELEMCT='CURRENT*NUMBER OF*ELEMENTS*IN USE'
                  S6ELEMHI='HIGHEST*NUMBER OF*ELEMENTS*IN USE'
                  S6ELEMLN='DATA*ELEMENT*SIZE'
                  S6ELEMLO='LOWEST*NUMBER OF*FREE*ELEMENTS'
                  S6ELEMMX='MAX ELEMENTS*RETURNED*BY IXLCONN'
                  S6ELEMPE='MAX ELEMENTS*PER ENTRY*(FOR 32K)'
                  S6ELEMPW='DATA*ELEMENT*SIZE*AS POWER OF 2'
                  S6ELEMRT='ELEMENT SIDE*OF ENTRY*ELEMENT RATIO'
                  S6ENTRCT='CURRENT*NUMBER OF*ENTRIES*IN USE'
                  S6ENTRHI='HIGHEST*NUMBER OF*ENTRIES*IN USE'
                  S6ENTRLO='LOWEST*NUMBER OF*FREE*ENTRIES'
                  S6ENTRMX='MAX ENTRIES*RETURNED*BY IXLCONN'
                  S6ENTRRT='ENTRY SIDE*OF ENTRY*ELEMENT RATIO'
                  S6FREECT='NUMBER OF*ENTRIES*ON FREE LIST'
                  S6FREEHI='HIGHEST*ENTRIES*ON FREE LIST'
                  S6HDRS  ='MAXIMUM*NUMBER OF*LIST*HEADERS'
                  S6HDRSCT='HEADERS*USED FOR*CONTROL*LISTS'
                  S6HDRSTD='HEADERS*AVAILABLE FOR*TABLE DATA'
                  S6INDXCT='NUMBER OF*ENTRIES*IN TABLE INDEX'
                  S6POOL  ='POOL NAME*PART OF*STRUCTURE*NAME'
                  S6PREF  ='FIRST PART*OF*STRUCTURE*NAME'
                  S6RSP8CT='AN IXLLIST*RETURN*CODE*OCCURRED*OTHER'
                  S6SIZE  ='STRUCTURE*SIZE*'
                  S6SIZEMX='MAXIMUM*STRUCTURE*SIZE'
                  S6USEDCT='NUMBER OF*ENTRIES*ON USED LIST'
                  S6INDXHI='HIGHEST*ENTRIES*IN TABLE INDEX'
                  S6APPLCT='NUMBER OF*ENTRIES*IN APPLID LIST'
                  S6APPLHI='HIGHEST*ENTRIES*IN APPLID LIST'
                  S6UOWLCT='NUMBER OF*ENTRIES*IN UOW LIST'
                  S6UOWLHI='HIGHEST*ENTRIES*IN UOW LIST'
                  S6RDICT ='READ*TABLE*INDEX*ENTRY'
                  S6WRICT ='WRITE*TABLE*INDEX*ENTRY'
                  S6RWICT ='REWRITE*TABLE*INDEX*ENTRY'
                  S6DLICT ='DELETE*TABLE*INDEX*ENTRY'
                  S6CRLCT ='CREATE*LIST'
                  S6MDLCT ='MODIFY*LIST'
                  S6DLLCT ='DELETE*LIST'
                  S6RDDCT ='READ*DATA*ITEM'
                  S6WRDCT ='WRITE*DATA*ITEM'
                  S6RWDCT ='REWRITE*DATA*ITEM'
                  S6DLDCT ='DELETE*DATA*ITEM'
                  S6INLCT ='INQUIRE*ON*DATA LIST'
                  S6RDMCT ='READ*MESSAGE*QUEUE'
                  S6WRMCT ='WRITE TO*MESSAGE*QUEUE'
                  S6RDUCT ='READ*UOW*ENTRY'
                  S6WRUCT ='WRITE*UOW*ENTRY'
                  S6RWUCT ='REWRITE*UOW*ENTRY'
                  S6DLUCT ='DELETE*UOW*ENTRY'
                  S6RDACT ='READ*APPLID*ENTRY'
                  S6WRACT ='WRITE*APPLID*ENTRY'
                  S6RWACT ='REWRITE*APPLID*ENTRY'
                  S6DLACT ='DELETE*APPLID*ENTRY'
                  S6RRLCT ='REREAD*ENTRY FOR*FULL DATA*LENGTH'
                  S6ASYCT ='NUMBER OF*ASYNCHRONOUS*REQUESTS'
                  S6RSP1CT='NORMAL*RESPONSE*EVERYTHING*OK'
                  S6RSP2CT='BUFFER LEN*TOO SHORT*FULL LENGTH*REREAD'
                  S6RSP3CT='NO MATCHING*ENTRY*WAS FOUND'
                  S6RSP4CT='ENTRY VERSION*DID NOT*MATCH'
                  S6RSP5CT='LIST*AUTHORITY*COMPARISON*MISMATCH'
                  S6RSP6CT='MAXIMUM*LIST*KEY*REACHED'
                  S6RSP7CT='THE LIST*STRUCTURE*IS OUT OF*SPACE'
                  S6USEDHI='HIGHEST*ENTRIES*ON USED LIST'
               Contents of CICCSF7D - CFTD Buffer Statistics
                  S7OCCLOS='CLOSE*TABLE'
                  S7OCDELE='DELETE*TABLE'
                  S7OCOPEN='OPEN*TABLE'
                  S7OCSET ='SET TABLE*ATTRIBUTES'
                  S7OCSTAT='EXTRACT*TABLE*STATISTICS'
                  S7RQHIGH='RETURN*HIGHEST*KEY'
                  S7RQLOAD='LOAD  '
                  S7RQPOIN='POINT '
                  S7RQRDDL='READ*AND*DELETE'
                  S7RQREAD='READ*(INCLUDING READ*FOR UPDATE)'
                  S7RQREWR='REWRITE'
                  S7RQUNLK='UNLOCK'
                  S7RQWRIT='WRITE*(NEW RECORD)'
                  S7TABLE ='TABLE*NAME'
               Contents of CICCSF8D - CFTD Request Statistics
                  S8IQINQU='INQUIRE*TABLE'
                  S8OCCLOS='CLOSE*TABLE'
                  S8OCDELE='DELETE*TABLE'
                  S8OCOPEN='OPEN*TABLE'
                  S8OCSET ='SET TABLE*ATTRIBUTES'
                  S8OCSTAT='EXTRACT*TABLE*STATISTICS'
                  S8RQDELE='DELETE*RECORD'
                  S8RQDELM='DELETE*MULTIPLE*RECORDS'
                  S8RQHIGH='RETURN*HIGHEST*KEY'
                  S8RQLOAD='LOAD*RECORD*AT INITIAL*LOAD TIME'
                  S8RQPOIN='POINT*TO*RECORD'
                  S8RQRDDL='READ*AND*DELETE*RECORD'
                  S8RQREAD='READ*RECORD*(INCLUDES*FOR UPDATE)'
                  S8RQREWR='REWRITE*EXISTING*RECORD'
                  S8RQUNLK='UNLOCK*RECORD'
                  S8RQWRIT='WRITE*NEW*RECORD'
                  S8SPBACK='BACK OUT*UNIT OF WORK'
                  S8SPCOMM='COMMIT*UNIT OF WORK'
                  S8SPINQU='INQUIRE*ABOUT*UNIT OF WORK'
                  S8SPPREP='PREPARE*TO COMMIT*UNIT OF WORK'
                  S8SPREST='RESTART*RECOVERABLE*CONNECTION'
                  S8SPRETA='RETAIN*LOCKS FOR*UNIT OF WORK'
               Contents of CICCSF9D - CFTD Storage Statistics
                  S9ANYFR ='NUMBER OF*FREE PAGES*IN THE POOL'
                  S9ANYLO ='LOWEST*FREE*PAGES*(SINCE RESET)'
                  S9ANYMX ='TOTAL PAGES*IN THE*STORAGE*POOL'
                  S9ANYNAM='POOL NAME*AXMPGANY'
                  S9ANYPTR='ADDRESS OF*STORAGE*POOL*AREA'
                  S9ANYRQC='COMPRESS*(DEFRAGMENTATION)*ATTEMPTS'
                  S9ANYRQF='GETS WHICH*FAILED TO*OBTAIN STORAGE'
                  S9ANYRQG='STORAGE*GET*REQUESTS'
                  S9ANYRQS='STORAGE*FREE*REQUESTS'
                  S9ANYSIZ='SIZE OF*STORAGE*POOL*AREA'
                  S9ANYUS ='NUMBER OF*USED PAGES*IN THE POOL'
                  S9LOWFR ='NUMBER OF*FREE PAGES*IN THE POOL'
                  S9LOWLO ='LOWEST FREE PAGES (SINCE RESET)'
                  S9LOWMX ='TOTAL PAGES*IN THE*STORAGE POOL'
                  S9LOWNAM='POOL NAME*AXMPGLOW'
                  S9LOWPTR='ADDRESS OF*STORAGE*POOL*AREA'
                  S9LOWRQC='COMPRESS*(DEFRAGMENTATION)*ATTEMPTS'
                  S9LOWRQF='GETS WHICH*FAILED TO*OBTAIN STORAGE'
                  S9LOWRQG='STORAGE*GET*REQUESTS'
                  S9LOWRQS='STORAGE*FREE*REQUESTS'
                  S9LOWSIZ='SIZE OF*STORAGE*POOL*AREA'
                  S9LOWUS ='NUMBER OF*USED PAGES*IN THE POOL'


Change 16.321  If the last structure in a type 74 subtype 4 record had
VMAC74         an extension, the extension was not input, so variables
Jan 12, 1999   R774CRHC thru R744CWUC were missing TYPE74ST dataset for
               that observation.  My existence test for the extension:
                 IF R744CDSI GT 0 AND CDSILOC+200 LE LENGTH THEN DO;
                   INPUT @(SMF744CO+(R744CDSI-1)*SMF744CL)
               should have been:
                 IF R744CDSI GT 0 AND CDSILOC+200 LE LENGTH-1 THEN DO;
               but clearer/safer logic is to use R744CDNE to validate
               the existence of the extension, so the test now is:
                 IF R744CDSI GT 0 AND R744CDNE GE 1 THEN DO;
                   INPUT @CDSILOC
   Thanks to Bruce Widlund, Merrill Consultants, USA.

Change 16.320  This test member had hex strings that caused FTP to gag
ZTIMECHK       when the MXG Source Library was FTP'd from MVS; as it was
Jan 10, 1999   only for my internal testing, the member was deleted.
   Thanks to Freddie Arie, Lone Star Gas, USA.

Change 16.319  Using the new TYPSAIM0 member (for FACOM operating sys)
VMACAIM0       failed, as the MACRO _SAIM0  _SAIM0 %  syntax failed. As
Jan 10,