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

CHANGE 14.14

 
=========================member=CHANGE14================================
 /* COPYRIGHT (C) 1984-1997 MERRILL CONSULTANTS DALLAS TEXAS USA */

This is MXG Version 14.14 is dated Feb 21, 1997, thru Change 14.352.
  Newsletter THIRTY-ONE  was dated Feb 21, 1997, thru Change 14.343
2nd   MXG Version 14.11  was dated Feb  4, 1997, thru Change 14.324
1st   MXG Version 14.11  was dated Feb  3, 1997, thru Change 14.323
      MXG Version 14.10  was dated Jan 10, 1997, thru Change 14.299
      MXG Version 14.09  was dated Dec 17, 1996, thru Change 14.295
      MXG Version 14.08A was dated Nov 18, 1996, thru Change 14.275
      MXG Version 14.08  was dated Nov 13, 1996, thru Change 14.271
      MXG Version 14.07  was dated Sep 11, 1996, thru Change 14.221
      Newsletter THIRTY  was dated Sep 10, 1996, thru Change 14.209
early MXG Version 14.07  was dated Sep 10, 1996, thru Change 14.209
      MXG Version 14.06  was dated Aug 20, 1996, thru Change 14.191
      MXG Version 14.05  was dated Jul 15, 1996, thru Change 14.160
      MXG Version 14.04  was dated Jun 13, 1996, thru Change 14.132
      MXG Version 14.03  was dated May 27, 1996, thru Change 14.114
      MXG Version 14.02  was dated Apr 25, 1996, thru Change 14.096
      MXG Version 14.01  was dated Mar  7, 1996, thru Change 14.051
      MXG Version 13.13  was dated Jan 20, 1996, thru Change 13.332
      Newsletter TWENTY-NINE,  dtd Jan 20, 1995, thru Change 13.323


Contents of member CHANGES:

  0.  Table of contents of NEWSLETTER THIRTY-ONE (see member NEWSLTRS).
  I.  MXG Software Version 14.14 Status.
      1. Announcing email, WWW.MXG.COM home page, and MXG-L LISTSERV.
      2. MXG Software Version 14.14, dated Feb 21, 1997, was shipped.
      3. What products are not yet supported?
  II.-X. Technical Notes are in Newsletter THIRTY-ONE.
  IX. Incompatibilities and Installation of MXG 14.14.
   X. Online Documentation of MXG Software.
  XI. Changes Log



  0.  Table of contents of NEWSLETTER THIRTY-ONE:


             MXG NEWSLETTER NUMBER THIRTY-ONE February 21, 1997

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

                         TABLE OF CONTENTS                          Page

I.   MXG Software Version 14.14 was shipped with this newsletter.      2
 1. Announcing email, our www.MXG.com home page and the MXG-L LISTSERV 2
 2. MXG Software Version 14.14, dated Feb 21, 1997, was shipped.       2
II.  MXG Technical Notes                                               7
 1.   MXGTMNT's Tape Allocation Monitor logic at MAINTLEV 9.           7
 2.   If MONTHBLD fails due to NOTSORTED error due to skipped version. 7
III. MVS Technical Notes.                                              7
 1. APAR OW15356 now writes type 21 SMF records                        7
 2. APAR OW10686 corrects errors in counting I/Os in type 30 records   7
 3. MVS/XA type 30 subtype 2, 3, & 4 with hex zeros for JOB.           7
 4. Increased Logical Swaps becoming Physical Swaps with Goal Mode.    7
 5. Type 74 subtype 5 Cache record (TYPE74CA) has duplicates.          7
 6. APAR OW23225 EXCP counts zero in TYPE30 for VSAM RLS datasets.     8
 7. Boole & Babbage CMF 5.2 creates type 72 with STARTIME 1 sec off.   8
 8. APAR OW23872 for 3590 Model A00 Control Unit serial number wrong.  8
 9. APAR OW23814 documents errors in DCOLLECT type A DCAFLAG1.         8
10. Media Manager EXCP counting for DB2 VSAM in 30 and 72s.            8
11. TCP/IP SMF records with invalid data for FTPCLIENT.                8
12. Type 6 CA-DISPATCH non-matching READTIME values.                   8
13. Slow TSO Logon duration due to massive STEPLIBs.                   8
14. Type 42 records were enhanced by APAR OW20866 (DCME enhancements). 9
IV.  DB2 Technical Notes.                                              9
 1. Where have all the DB2 buffer pools data gone?                     9
 2. Number of observations in DB2ACCT no longer counts plans.         10
V.   IMS Technical Notes.                                             10
 1. Boole & Babbage IMF had negative values for RESPTM                10
 2. Boole & Babbage IMF caused 10% increase in CPU time in MVS 5.2.2. 10
VI.  SAS Technical Notes.                                             10
 1. SAS USER ABEND 318 with SAS 6.08 at TS425 with 4-digit UCB.       10
 2. SAS note 8243: SAS data libs cannot be hdw compress or striped.   10
 3. IBM APAR OW14045 causes SYNCSORT to ABEND with 0C4 under SAS.     10
 4. SAS Usage Note 5637 (from 1992) - how to ftp V VB VBS files.      10
 5. If you use the FILE command from a Display Manager Session.       11
 6. Algorithm to count the number of bits that are on in a bit flag.  11
VII. CICS Technical Notes.                                            11
 1.  APAR PN70228 has extensive discussion of Short on Storage.       11
VIII.Windows NT Technical Notes.                                      11
 1. MXG Support for Windows NT with Demand Technology's NTSMF-WHY?    11
 2. So what is NTSMF and what measures do you get from NT registry?   12
IX.  Incompatibilities and Installation of MXG 14.14.                 20
X.   Online Documentation of MXG Software.                            21
XI.  Changes Log                                                      23
     Alphabetical list of important changes                           23
     Changes 14.343 thru 14.210                                    26-48

      COPYRIGHT (C) 1997 MERRILL CONSULTANTS DALLAS TEXAS USA

I. MXG Software Version Status.

 1. Announcing email, our WWW.MXG.COM home page, and the MXG-L LISTSERV.

    My new email address is BARRY@MXG.COM (replacing mxg@e-mail.com), an
    administrative matters can be sent to ADMIN@MXG.COM, or can be faxed

    I have, to some extent, embraced email, especially for receiving SMF
    data and for sending new members to beta sites for new support tests
    and I do try to check my email once a day.  I still find that fax is
    often faster (I check it much more frequently as it is beside the
    coffee pot!) but for hex dumps, the virtues of email over fax are
    both its legibility, and its machine readability for searching.
    If it is really critical, email the information, fax a reminder for
    me to logon, and call me to remind me to look at the fax machine!

    I still prefer to answer technical questions by phone whenever I can

    Our home page has been operational since November 1996, and it has
    the up-to-date status of the current MXG version.  (MXG 14.14 is the
    15th release since MXG 13.13, the last annual version).  On the home
    page you will find these members from the current version: CHANGES
    (status of what MXG version you need for what), YEAR2000 (status of
    other vendor's fixes), CHANGESS (all changes to all MXG versions),
    and NEWSLTRS (text of all MXG newsletters). While the Annual Softwar
    Version and Newsletter shipment sent in First Quarter, and the Summe
    Newsletter sent in Third Quarter are still the primary MXG formal
    communications, more current information is always on the home page.

    Instructions on how to subscribe to the MXG-L LISTSERV, an e-mailing
    list, are also on our home page.  When you subscribe, any e-mail
    sent to MXG-L will be rebroadcast to all subscribers.  All MXG-L
    notes are viewable in the MXG-L Archive, and you do not need to be
    a subscriber to view the archive.  MXG-L is intended as a forum for
    technical questions among MXG users.  It is not moderated, but is
    monitored.  It also provides me with an easy way to let you know
    there is something worthwhile that has changed; for example, I email
    to the MXG-L list when there is a new MXG version available.


 2. MXG Software Version 14.14, dated Feb 21, 1997, was shipped to your
    site with this Newsletter.

   Major enhancements added in MXG 14.14 dated Feb 21, 1997:

   MXG is now distributed as an unnumbered dataset.
   MXG now converts DB2 GMT times to Local (Check you Exit Tailoring)
   Support for OS/390 Version 1 Release 3 (Compatible)
   Support for APAF Version 3.
   Support for NPM APAR OW17875 type 28 new subtype 2Ax.
   Support for Landmark's The Monitor for CICS/ESA 1.5 (easy - no change
   New ASUMUOW to combine CICSTRAN and DB2ACCT by unit of work.
   PROCSRCE member is "Proc Source" for ASCII SAS.
   DB2GBPST dataset is now deaccumulated and usable.

   Major enhancements added in MXG 14.11 dated Feb 3, 1997:

   NTSMF support for 3.51, more data sets verified, record protects.
   Support for new Type 42 subtype 19 and changed subtypes 15-18.
   MXG Tape Mount and Tape Allocation Monitor ML11 in ASMTAPES
   Coupling Facility Structure Data TYPE74ST enhancements.
   DB2 GMT times now converted to local - see INCOMPATIBILTY SECTION.
   MXGSAS JCL Procedure finally corrected!

   Major enhancements added in MXG 14.10 dated Jan 10, 1997:

   Windows NT support using NTSMF significantly enhanced and documented.
    See "Windows NT Technical Notes" or member ADOCNTSM.

   Major enhancements added in MXG 14.09 dated Dec 17, 1996:

   Support for Demand Technology's NTSMF "SMF for Windows NT" product.
   Support for Demand Technology's Stress Test product's SMF record.
   Support for IBM VTAM Session Management Exit's SMF record

   Major enhancements added in MXG 14.08A dated Nov 18, 1996:

   Correction to VMAC74 INVALID DATA message for R744FCTM,FCSQ.

   Major enhancements added in MXG 14.08 dated Nov 13, 1996:

   Support for OS/400,AS/400 Release 3.7.0 and Release 3.6.0.
   Support for CA's ENDEAVOR SMF record.
   Support for APAR OW22209,OW25262 bytes read/written.
   Support for HP's Measureware for AIX.
   Support for Applied Software's SUPER IND$FILE SMF.
   Support for Oracle Release 7.2.3 SMF record.
   Support for RACF 2.1 IRRDBU00 unload utility.
   Petabytes now formatted. (1024 Terabytes=1 Petabyte).
   The TAILORNG= JCL parameter causes JCL error.
   Support for RMF type 74 subtype 100 IRLM long locks.
   Support for Interlink's Harbor 4.1 SMF record
   Support for RSD's EOS SMF record (INCOMPATIBLE, not in 14.07).
   Support for Boole and Babbage's PRO/SMS SMF Recovery Record.

   Major enhancements added in MXG 14.07 dated Sep 11, 1996:

   Support for Desktalk's TRENDSNMP IFENTRY SNMP data.
   Support for Candle's Omegamon for SMS V150 (no change!).
   CICS 4.1+ incorrect MCTMNTAD GMT offset circumvented.
   CICINTRV variable A02TTS missing in CICEODRV
   BUILDPDB now asserts SORTEDBY= for PDB.JOBS/STEPS/PRINT/SMFINTRV
   Beta Test of MXG DASD Allocation Monitor in ASMDALO/TYPEDALO.
   New utility UTILCONT (Contents of SAS library, sizes in Megabytes).

   Major enhancements in early MXG 14.07 shown in MXG Newsletter THIRTY:

   Support for CICS/ESA 5.1.0 aka Transaction Server (INCOMPATIBLE)
   Support for TMON/DB2 Version 3 (INCOMPATIBLE).
   Support for Boole and Babbage's PRO/SMS SMF Message Record.

   Major enhancements added in MXG 14.06 dated Aug 20, 1996:

   Support for CONTROL-T from New Dimension Software.
   Support for Omegamon/VTAM V200 (INCOMPATIBLE).
   Support for MODEL204 Release 3.2.1 (INCOMPATIBLE).
   Support for SoftAudit Version 5.1 (INCOMPATIBLE).
   Support for APAR OW15406 for RMF adds support for Year 2000.
   Support for Tandem Controller and Line records added.
   Sample code to read Network General's Sniffer Network Monitor data.
   VM Print sent to JES2 is now merged in PDB.JOBS.
   BUILDPD3 now sums JES3 type 25 MDS Tape Mounts/Fetches.
   More RACF Reports for Command Events decoded by TYPE80A.
   DB2 4.1 DB2STATS interval lost due to QWHSISEQ skipped values.
   CICINTRV restored to pre-14.04 version, fixed for CICS 4.1.
   Redesigned TRNDTALO to "SPIN" active allocations.
   SMF Simulator (ANALSMF) now tests a CISIZE of 18432 for 3390s.

   Major enhancements added in MXG 14.05 dated Jul 15, 1996:

   Support for OS/390 Version 1 Release 2 (COMPATIBLE).
     MXG 13.13 and later tolerate OS/390 Release 2, but to capture
     the several new variables and new subtypes of type 74 and 89,
     you must install MXG 14.05 or later.
   Support for SMF type 89 subtype 2 (Measured Usage Product Summary).
   Support for DB2 trace data written to GTF instead of SMF.
   Support for HP MeasureWare for HP-UX platform
   Support for RDS's EOS Enterprise Output Solution
   Support for Landmark TMON/MVS spanned records.
   Support for RMF type 74 subtype 5 Cache RMF Reporter.
   Support for Anacomp, Inc's XSTAR product's SMF record
   Support for DFSORT Release 13 APAR PN71337.
   New JCLADHOC example of MXG ad hoc job to select specific data.
   Revised MXGSAS JCL procedure adds TAILORNG= symbolic parameter.
   New DB2 trace datasets to hold all SQL text are created.
   MXG JCL examples now specify REGION=0M
   VMXGTAPE utility macro to determine if lib/dsn is on tape.
   UDEBLOCK utility to create valid RECFM=U on MVS from PC data.
   ASMIMSLG/ASMIMSL5 SLOTS table was moved above the 16MB line.

   Major enhancements added in MXG 14.04 dated Jun 15, 1996:

   Support for ASTEX 2.1 (INCOMPATIBLE)
   Support for NDM 1.4 (compatible) new variables
   Support for IMS APAR PN76410 (INCOMPATIBLE) for ASMIMSLG processing.
   Support for APAR PN78083 to SMF type 42 (ADSM) required no change.
   Enhanced CICINTRV was installed as default (but removed in 14.06).

   Major enhancements added in MXG 14.03 dated May 27, 1996:

   Support for RACF 1.10 (compatible) - toleration of new records.
   Support for NETSPY Release 4.7.
   Support (partial) for AS/400,OS/400 Release 3.6 (INCOMPATIBLE).
   Support for Thruput Manager #V041238 (INCOMPATIBLE).
   All datetime constants '01JAN00:...' were changed to '01JAN1900:....'
   Corrections to errors that were only in MXG 14.02:
     DIFFDB2  14.108  BY VARIABLES ARE NOT PROPERLY SORTED DB2STATR
     TYPE37   14.107  INPUT STATEMENT EXCEEDED ID=37
     TYPE72   14.102  INPUT STATEMENT EXCEEDED ID=72
     TYPENSPY 14.097  Zero obs in NSPYLU.

   Major enhancements added in MXG 14.02 dated April 25, 1996:

    ASMTAPES MAINTLEV 9, monitor no longer quits writing, TMNT013I msg.
    Support for IBM's Cache RMF Reporter CRR Version 1.7.
    Support for Netview FTP (File Transfer) SMF subtype 51x record.
    Support for second length STK HSC Subtype 08 record.
    Support for Shared Page Groups statistics in TYPE71.
    Support for STK's NearOAM user SMF record.
    Support for IBM's RMDS Version 2.2 (no change).
    Support for NPM APARs OW08565/OW10584 for 3746/900.

   Major enhancements added in MXG 14.01 dated March 7, 1996:

    Support for OS/390 Release 1.1.0 (already in MXG 13.13).
    Support for FACOM MSPE/EX PTF 93061 ID=127 SMF record.
    Support for SMF type 6's ESS segment added and externalized.
    MAINTLEV 8 of the MXG Tape Mount and Tape Allocation Monitor
    INPUT EXCEEDED for NETSPY 4.6, type A record.
    INPUT EXCEEDED for STK HSC subtype 8 record corrected.
    INPUT EXCEEDED for DB2 4.1 type 101 subtype 2 (packages).
    INPUT EXCEEDED for DFSMS/rmm type "O" record.
    INPUT EXCEEDED for EREP type '40'X record.
    INPUT EXCEEDED for PSF 6 SMF, PSF wrote truncated record.
    INPUT EXCEEDED for VSAM 64 SMF, CF Cache Structure segment.
    NOTSORTED error for PDB.CICS in WEEKBLD, WEEKBLDT, and MONTHBLD.
    ASMVTOC failed to assemble.
    INVALID DATA FOR HH,MM,SS with SAMS SMF record.
    VARIABLE SYSTEM uninitialized in ASMIMSLG processing.
    Hipercache SMF record values for VSAM segment wrong.
    NDM/Connect Direct timestamps missing, data wrong.
    TLMS dates were not decoded correctly.
    NPM dataset NPMVSVVR variables were trashed.

  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                    Mar 28  1997        14.14
      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                     Sep 10, 1996        14.07
      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           Nov  7, 1995        14.07
      DB2 5.1.0                        ??? ??, 1997        ??.??
      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
      MQM 1.2, 1.3, 1.4                Apr 25, 1996.       14.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, 2.4                     ??? ??, 1996.       14.03
      RMDS 2.1, 2.2                    Dec 12, 1995.       12.12
      TCP/IP 3.1                       Jun 12, 1995.       12.12
      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
      IMS     4.1                      Jul  4, 1994        12.02
      IMS     5.1                      Jun  9, 1996        14.05

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

                                       Availability     MXG Version
      Product Name                     Date or Change    Required

      Demand Technology
       NTSMF Version 1 Beta                                14.11
      Landmark
       The Monitor for DB2 Version 3                       14.07
       The Monitor for DB2 Version 2                       13.06
       The Monitor for CICS/ESA 1.2 -                      12.12
       The Monitor for CICS/ESA 1.3 -                      12.12A
       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.??
      Candle
       Omegamon for CICS V300 User SMF                     12.05
       Omegamon for CICS V400 User SMF                     13.06
       Omegamon for IMS V110 (ITRF)                        12.12
       Omegamon for IMS V300 (ITRF)                        14.04
       Omegamon for MVS  V300               13.170         13.05
       Omegamon for MVS  V400               13.201         13.06
       Omegamon for DB2 Version 2.1/2.2                    13.05
       Omegamon for VTAM V160                              12.04A
       Omegamon for SMS V100/V110                          12.03
      CA
       ASTEX 2.1                                           14.04
      Boole & Babbage
       IMF 3.1 (for IMS 5.1)                               12.12
      Memorex/Telex
       LMS 3.1                                             12.12A

 3. What products are not yet supported?

   a. Support for Landmark's Performance Works for Unix, a replacement
      for their earlier The Monitor for Unix (that was supported by MXG
      TYPETUX) is in development (although Landmark still has not been
      able to provide documentaion, users have!) and may be partially
      complete in the actual MXG 14.14 version.

   b. Landmark's The Monitor for CICS/ESA Version 2 will be relased this
      spring, but the documentation and test data had not yet arrived.

   c. Enhancements to ASMRMFV (work on ASMTAPES ML 12 pre-empted) are
      now hoped for second quarter.

 4.   What's planned for the near future?

   a. Documentation revision.  MXG 14.14 has support for just about ever
      new product's version that anyone has asked for, so finally I can
      return to updating the ACHAP and ADOC documentation members!

IX.   Incompatibilities and Installation of MXG 14.14.

 1. Incompatibilities introduced in MXG 14.14 (since MXG 13.13):

  a- IMACs that were changed (if they exist in your USERID.SOURCLIB, you
     must refit your tailoring, starting with the new IMAC member):
       IMACCIMS - For Boole & Babbage IMF - See Change 14.152.

  b- Other incompatibility changes:
     - Dataset TYPE116 (MQM) variable QWHCATYP replaced by QWHCXTYP.
     - With OS/390 R2, IBM CRR product (dataset CACHE90 from VMACACHE)
        becomes dataset TYPE74CA from VMAC74. See TYPE74CA in MVS Tech
        Notes.
     - MXG now converts DB2 time stamps (like QWACBSC,QWACESC,QWHSSTCK)
       from GMT to local, but if you did that already in EXDB2ACC for
       DB2ACCT, you must remove your conversion code and let MXG do it.

  c- These products were incompatibly changed by their vendor, and they
     require MXG 14.xx as indicated:
       See products listed as INCOMPATIBLE in Section I, Enhancements.

 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:
    Summary:
     a. Install member MXGSAS as JCL Procedure MXGSAS in your PROCLIB.
     b. Allocate a 105-cyl PDS: MXG.V1414.MXG.SOURCLIB, and use IEBUPDTE
        to read the MXG tape to create the 2955+ member Source Library.
     c. Allocate a 1-cyl PDS:  MXG.V1414.USERID.SOURCLIB for your site
        "Installation Tailoring" Source Library.  Installation specific
        tailoring (like telling MXG your shift hours, which performance
        groups are TSO, CICS, etc.) is done by copying and modifying MXG
        source members into V1414.USERID.SOURCLIB.
     d. Allocate a 1-cyl SAS Data Library:  MXG.V1414.MXG.FORMATS and
        execute SAS to create the library of Formats required by MXG.
     e. If this is the initial install of MXG, tailor these members into
        your MXG.V1414.USERID.SOURCLIB tailoring library:
          IMACACCT (Account Length),
          IMACSHFT (Shift Definitions),
          IMACWORK (Performance Group to Workload mapping), and
          IMACSPIN (for BUILDPDB).
        Each IMAC member is self-documenting, and IMACAAAA is the index
        of all of the IMACs.  You should at least scan IMACAAAA to see
        the acronyms MXG uses for the many products MXG supports.
     e. If re-installing MXG, copy your existing USERID.SOURCLIB library
        members into the MXG.V1414.USERID.SOURCLIB.  Then, compare the
        members in your USERID.SOURCLIB with the list of members that
        were incompatibly changed (above, in this section) in this MXG.
        If any of the incompatibly changed members exist in your dataset
        MXG.V1414.USERID.SOURCLIB, then you must reinstall your site's
        tailoring for that IMAC, starting with the IMAC member from the
        MXG 14.14 Source Library.
     f. EDIT and submit member JCLTEST6 to verify that your tailoring
        did not create any errors.

     g. EDIT and submit JCLPDB6 to create a Daily PDB for testing.  Or
        use the TYPE.... members to process specific data sources, use
        the ANAL.... members for report examples, the GRAF.... members
        for SAS/GRAPH reports.

     You have now installed MXG 14.14 in its own set of libraries. When
     parallel testing is complete and are ready to implement MXG 14.14
     in production, rename your three current MXG Production Libraries
     (MXG.MXG.SOURCLIB, MXG.USERID.SOURCLIB, and MXG.MXG.FORMATS) to
     (MXG.BACK.MXG.SOURCLIB, MXG.BACK.USERID.SOURCLIB, MXG.BACK.MXG....)
     and rename the MXG.V1414.x.y libraries to their Production names!

     Again, detailed installation instructions are in member INSTALL

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

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

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

X.    Online Documentation of MXG Software.

Since 1994, the contents of the two MXG Books, (the 1984 MXG Guide, and
the 1987 MXG Supplement) are contained in the MXG Source Library, as are
all MXG Technical Newsletters and all MXG Changes, so all MXG
documentation is actually online in the software itself; even the
Installation Instructions are online, in members INSTALL/JCLINSTL!

ACHAPxxx members are the text of the 42 chapters from the two MXG books,
to which the text from newsletters and changes has been added.  Some of
these chapters are still rough; while some of the chapters have actually
been completely revised, many of these ACHAPxxx are little more than a
concatenation of the two original chapters, often without the figures
or tables.  The revision is work still in progress!

Members ADOCxxxx are what were in Chapter FORTY, and should be the first
place you look for information about MXG variables and/or datasets.  The
ADOCxxxx members alphabetically describe each dataset and all variables
that are created by product xxxx, the instructions on how to enable that
product, bibliography of the vendor documentation, sample PROC PRINT and
PROC MEANS of real data, references to MXG reports that use these data,
and the MXG member names that you use to process that product.  While
this too is work in progress, the most heavily used data sources,
especially the common SMF records, have been revised and are up to date.

There is an IMACxxxx member for every product supported by MXG.  Once
you know the xxxx suffix for a product, you then know the names of all
of the MXG members for that product, because of MXG naming conventions:

  IMACxxxx - Defines record IDs, and the _Lyyyzzz and _Kyyyzzz macros
             that name the dataset(s) created from product xxxx.

  ADOCxxxx - "Chapter FORTY" style dataset and variable documentation of
             all datasets created from product xxxx, with sample output.
  VMACxxxx - The "real" source code member, often extensively commented.
  TYPExxxx - Standalone member to test or process product xxxx records.
  ASUMxxxx - Summarization example (only for some products)
  TRNDxxxx - Trending example (only for some products)
  ANALxxxx - Reporting/analysis example (only for some products)
  GRAFxxxx - SAS/GRAPH report example (only for some products)
  EXyyyzzz - OUTPUT exit for tailoring of each MXG dataset, not used by
             most MXG sites, but powerful if needed.  There can be more
             than one dataset created from one product.  The yyyzzz
             suffix of the EXyyyzzz member name is the same as the
             suffix of "_L" and "_K" macros defined in the IMACxxxx for
             its product. See Using the MXG Exit Facilities in ACHAP33.

Member IMACAAAA is an index of all IMACs, and is the best place to begin
to find what xxxx suffix Merrill chose for which product!  You can often
find additional documentation by searching members NEWSLTRS or CHANGESS
for the xxxx suffix.

Member CHANGES identifies this Version and Release of MXG Software, and
describes all changes made in this Release, plus new technical notes.

Member CHANGESS contains each of the CHANGES members from each version
of MXG, so this member contains ALL changes ever made to MXG Software.
Since each MXG change lists the names of the members that were added or
altered, names the new product/version supported by a change, or lists
error messages corrected by a change, this member is designed to be read
online (with SPF BROWSE); you can search for specific product acronyms
(CICS, MVS/ESA, etc.), or the MXG member name or anything else.  Many of
the changes are actually mini-tutorials, especially for new products.

Member NEWSLTRS contains the text of all newsletters.  You can search
NEWSLTRS for product name or acronym to find all of Dr. Merrill's
published and unpublished technical papers, technical notes announcing
enhancements in new operating systems or subsystems, new datasets and
products, important APARs and PTFs, and other technical information of
importance to MXG users.  (Since the Change Log that is printed in each
newsletter is in member CHANGESS, it is not repeated in NEWSLTRS.) MXG
Technical Newsletters are typically published twice a year, with one
printed copy sent to each licensed site's technical addressee.

Member DOCVER lists alphabetically ALL datasets and variables that are
built by this MXG Software Version, abbreviated to a line per variable.

Members DOCVERnn are the "delta-documentation" between MXG versions, and
list only those datasets and variables that were added/deleted/changed
by version "nn", so you can identify when a variable/dataset was added.

Finally, remember that MXG is source code, and you can often find your
answer by BROWSING the source members, especially the VMACxxxx members.
The MXG Variable name is frequently the vendor's field name, or the
vendor's field name is often in a comment adjacent to the variable's
INPUT, so you can cross reference MXG to the vendor's documentation.

The migration from print to online is clearly work in progress, but at
least the two books are now machine readable!  When all 42 chapters
are completely revised and updated in the source library, I will decide
which, if any, will also be made available in printed form, but the
primary media for all future MXG documentation will be these members of
the MXG source library, which can be immediately updated in each new
version of MXG as changes occur.

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 tapes are
 created after the newsletter is sent to the printer!

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

 The actual code implementation of some changes in MXG SOURCLIB may be
 different 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 between MXG 13.13 and MXG 14.14:

  Dataset/
  Member   Change    Description

  many     14.019  Support for OS/390 Release 1.0 already in MXG 13.13!
  many     14.158  Support for OS/390 Release 2.0 tolerate by MXG 13.13!
  many     14.318  Support for OS/390 Release 3 (Compatible).
  many     14.320  MXG is now distributed as a unnumbered dataset.
  ANALCNCR 14.162  FILE WORK.SPLIT DOES NOT EXIST corrected.
  ANALCNCR 14.175  Specifying both output dataset and reports failed.
  ANALDB2R 14.022  DB2 report PMAUD03, if PDB is on tape, will fail.
  ANALDB2R 14.073  VARIABLE QWHSIID NOT FOUND corrected in DB2 reports.
  ANALDB2R 14.286  DB2 Buffer statistics, Acct Detail, missed BP 1 & 2.
  ANALDSET 14.064  Using Tape instead of DASD for ANALDSET fails.
  ANALDB2R 14.340  DB2 4.1 Reporting for Buffer Pools and Packages.
  ANALSMF  14.178  SMF Simulator now tests a CISIZE of 18432 for 3390s.
  ASMDALO  14.222  Beta ASM failed due to careless changes.
  ASMIMSL5 14.129  Support for IMS 5.1 APAR PN76410 (INCOMPATIBLE)
  ASMIMSLG 14.148  SLOTS table moved above the 16MB line.
  ASMTAPES 14.037  MAINTLEV 8 of MXG Tape Mount and Allocation Monitor.
  ASMTAPES 14.086  MAINTLEV 9, monitor does not stop, new TMNT013I.
  ASMTAPES 14.322  ML11 of the Tape Mount/Allocation monitor.  No SRB!
  ASMTAPES 14.351  ML 12 of MXGTMNT included in MXG 14.14.
  ASMVTOC  14.003  Archaic assembly member was wrong on MXG 13.13
  ASUM70PR 14.319  ASUM70PR LPAR data LPnCAP and LPnSHARE new variables.
  ASUMAPAF 14.062  SORT ORDER error if you increase number of domains.
  ASUMDB2R 14.287  NUMPLANS now counts only DB2PARTY='S', ='O'.
  ASUMUOW  14.343  New ASUMUOW for CICS MRO and DB2 Unit of Work merge.
  BUILDPD3 14.169  JES3 type 25 MDS Tape Mounts/Fetches in BUILDPD3.
  BUILDPDB 14.185  VM Print sent to JES2 is now merged in PDB.JOBS.
  BUILDPDB 14.210  SORTEDBY= asserted for PDB.JOBS/STEPS/PRINT/SMFINTRV
  BUILDPDB 14.245  Duplicate data protection for additional datasets.
  CICINTRV 14.188  Old CICINTRV replaced CICINTRZ, fixed for CICS 4.1.
  CICINTRV 14.211  CICS 4.1+ variable A02TTA missing in CICEODRV.
  CICINTRV 14.352  Revised "CICINTRZ" logic now replaced CICINTRV.
  DIFFDB2  14.167  DB2 4.1 DB2STATS interval missing due to QWHSISEQ.
  DIFFDB2  14.194  Extra obs in DB2STATB/DB2STATR, negative SEQCHECK.
  DIFFDB2  14.231  SEQCHECK logic in Change 14.267 was incorrect.
  FORMATS  14.255  Petabytes now formatted. (1000 Terabytes=1 Petabyte).
  IHDRDCOL 14.027  First of new "IHDRyyyy" - "INFILE header" exits.
  IMAC6ESS 14.036  Decoding of SMF type 6 ESS segment is added.
  IMACEXCL 14.024  CICS Excluded Field support enhanced for multiples.
  IMACICOC 14.123  Omegamon for CICS OMSUPRTM/OMDCOMTM incorrect.
  IMACICOC 14.272  SAP Umbrella Trans Program/Tranname in OMUMBUSR/BPTC.
  JCLADHOC 14.140  New example for ad hoc job to select specific data.
  JCLTMON  14.012  Example JCL for Landmark's The Monitor for CICS.
  JCLall   14.147  All MXG JCL examples now specify REGION=0M.
  MONTHBLD 14.010  NOTSORTED error with ASUMCICS in monthly logic.
  MXGSAS   14.140  Revised MXGSAS JCL procedure adds TAILORNG= parm.
  MXGSAS   14.239  The TAILORNG= JCL parameter causes JCL error.
  MXGSAS   14.304  TAILORNG symbolic finally corrected in MXGSAS JCL.
  PROCSRCE 14.332  New member PROCSRCE is "Proc Source" for ASCII SAS.
  TRNDTALO 14.130  INVALID DO LOOP error if ALOCSTRT=. or ALOCEND=.;
  TRNDTALO 14.176  Redesign of TRNDTALO to "SPIN" active allocations.
  TYPE102  14.047  DB2 Trace T102S096 vars QW0096SN,SC,SK corrected.
  TYPE102  14.138  New datasets with all SQL text added for DB2 trace.
  TYPE102  14.206  Dataset T102S231 corrected.
  TYPE102  14.311  MXG now converts DB2 GMT time stamps to local.
  TYPE110  14.089  Support for PN69653 (YYYY digit year in COLLTIME).
  TYPE110  14.106  Variables MCTMNTAD/SMFPSRVR added to CICSEXCE.
  TYPE110  14.184  CICSTRAN variable TRANTYPE increased to two bytes.
  TYPE110  14.209  Support for CICS/ESA 5.1.0 (INCOMPATIBLE).
  TYPE110  14.212  CICS 4.1+ incorrect MCTMNTAD GMT offset circumvented.
  TYPE116  14.087  Variable QWHCATYP was INCOMPATIBLY renamed QWHCXTYP.
  TYPE16   14.150  Support for DFSORT Release 13 APAR PN71337.
  TYPE21   14.256  Support for APAR OW22209, bytes read/written.
  TYPE26J2 14.303  INREASON wrong for LnnnnJRm syntax for JES2 INDEVICE.
  TYPE28   14.023  Some NPM VVR (VTAM Virtual Route) variables trashed.
  TYPE28   14.065  NPM APARs OW08565 and OW10584 for 3746/900 supported.
  TYPE28   14.335  Support for NPM APAR OW17875 added new subtype 2Ax.
  TYPE30   14.099  Auto Restart section INPUTs were incorrect.
  TYPE30   14.172  Variable EXECTM in TYPE30_V wrong if only subtype 3.
  TYPE37   14.213  Support for NETVIEW 3.1 type 37 changes.
  TYPE42   14.063  DASDMPL 1000 times too large in TYPE42DS.
  TYPE42   14.131  Support for APAR PN78083 required no change to MXG.
  TYPE42   14.309  Support for type 42 new subtype 19 + enhancements.
  TYPE6    14.009  Truncated PSF type 6 record INPUT STATEMENT EXCEEDED
  TYPE6156 14.242  Truncated catalog cell=04 caused STOPOVER.
  TYPE64   14.004  INPUT STATEMENT EXCEEDED, CF Cache Structure segment.
  TYPE7072 14.051  ELAPSTM added to TYPE72GO, and RMFINTRV for WLM.
  TYPE7072 14.059  TYPE72GO variable VALDSAMP and delay PCTs wrong.
  TYPE7072 14.180  Variable PERFINDX now created in TYPE72GO.
  TYPE71   14.058  Support for Shared Page Groups added.
  TYPE71   14.302  New Shared Paging variables were still wrong.
  TYPE72   14.085  MVS/ESA 5.2.2 variables overlooked in TYPE72GO.
  TYPE72   14.254  TYPE72GO vars R723CSCR,CSPA,CSPE were still wrong.
  TYPE73   14.164  APAR OW15406 for RMF adds support for Year 2000.
  TYPE74   14.085  MVS/ESA 5.2.2 variables overlooked in TYPE74OM.
  TYPE74   14.152  Support for type 74 subtype 5 Cache RMF Reporter.
  TYPE74   14.236  Support for RMF type 74 subtype 100 IRLM long locks.
  TYPE74   14.291  Coupling Facility Structure Data PTF UW90312.
  TYPE74   14.328  R744SSIZ is in 4000, not 4096 units.
  TYPE78   14.121  Variable PCTALLBY, LCUIORT added to TYPE78CU dataset.
  TYPE78   14.166  ARRAY statement changed to _TEMPORARY_ to save CPU.
  TYPE80   14.070  Support for IBM APAR OW19251 (RACF year 2000).
  TYPE80   14.114  Support for RACF 1.10 (toleration).
  TYPE80A  14.170  More RACF Reports for Command Events decoded.
  TYPE80A  14.252  Invalid RACFTYPE=03 segment caused STOPOVER.
  TYPE88   14.066  INPUT STATEMENT EXCEEDED corrected.
  TYPE89   14.158  Support for Subtype 2 (Measured Usage Product Sumry).
  TYPE89   14.233  TYPE89 variable MULCURD wrong for Batch Pipes.
  TYPE99   14.069  TYPE99_2 now has obs for each period vice just first.
  TYPEAPAF 14.307  Support for APAF Millennium subtypes 31 and 32.
  TYPEAPAF 14.330  Amdahl APAF Version 3.0 records have been validated.
  TYPEBETA 14.050  INVALID DATA FOR BETASTRT and BETAEND with 1.6.5.
  TYPEBETA 14.084  INPUT STATEMENT EXCEEDED for SUBTYPE=41.
  TYPECACH 14.093  Support for IBM's Cache RMF Reporter CRR 1.7
  TYPECIMS 14.312  IMF flags in DBD section were not reset.
  TYPECMF  14.033  MXG now recognizes 3990 model 6 in CMF user SMF.
  TYPEDALO 14.215  Beta Version of MXG DASD Allocation Monitor
  TYPEDB2  14.011  DB2 4.1 type 101 subtype 1 INPUT STATEMENT EXCEEDED.
  TYPEDB2  14.044  Protection for truncated DB2 record.
  TYPEDB2  14.071  Dataset DB2STATB now always has observations.
  TYPEDB2  14.105  QWSDLR length 8, QWSCIID corruption corrected.
  TYPEDB2  14.174  VMACDB2 ERROR ... QWHSIID=230 UNEXPECTED fixed.
  TYPEDB2  14.195  DB2STATR, DB2 remote counts, corrected.
  TYPEDB2  14.208  Datasets DB2GBPST and DB2GBPAT all BP now output.
  TYPEDB2  14.217  DB2ACCT variables QTGA, QBGA trashed.
  TYPEDB2  14.226  DB2 Group Buffer Pool DB2GBPST repeats first segment.
  TYPEDB2  14.310  DB2GBPST dataset now deaccumulated and usable.
  TYPEDB2  14.311  MXG now converts DB2 GMT time stamps to local.
  TYPEDMON 14.125  Support for ASTEX 2.1 (INCOMPATIBLE).
  TYPEEDGS 14.029  DFSMS/rmm type "O" INPUT STATEMENT EXCEEDED RECORD.
  TYPEEDGS 14.289  DF/SMS Rmm records type V caused error.
  TYPEEDGS 14.297  Variables MVxxxx now input from type "V" record.
  TYPEEREP 14.021  INPUT STATEMENT EXCEEDED with EREP CLASRC='40'X.
  TYPEF127 14.032  Support for FACOM MSPE/EX PTF 93061 for ID=127 SMF.
  TYPEFTP  14.054  Support for FTP subtype 51x SMF record.
  TYPEHARB 14.229  Support for Interlink's Harbor 4.1 SMF record
  TYPEHIPR 14.015  Hipercache VSAM buffer field wrong in MXG 13.13.
  TYPEHMF  14.316  HMF subtype 5 with 1 segment INPUT EXCEEDED error.
  TYPEHSM  14.052  Short HSM ABARS FSRTYPE=15 INPUT STATEMENT EXCEEDED.
  TYPEHSM  14.232  FRSTVOLS CAN CONTAIN ONLY 30 BYTES written in error.
  TYPEHURN 14.230  No obs in HURN47 if no external segments.
  TYPEIDMS 14.238  Archaic IDMS 10.2.1 caused STOPOVER.
  TYPEIMS  14.030  Early testing IMS log records for IMS 5.1
  TYPEIMSA 14.017  VARIABLE SYSTEM IS UNINITIALIZED with ASMIMSLG.
  TYPEIMSA 14.244  SAP variables SAPTIMTR, SAPCPUT, SAPELTI wrong.
  TYPEIPAC 14.240  INVALID ARGUMENT TO FUNCTION MDY, dates not MMDDYY.
  TYPEM204 14.171  Support for MODEL204 Release 3.2.1 (INCOMPATIBLE).
  TYPEMOVT 14.168  Support for Omegmaon/VTAM V200 (INCOMPATIBLE).
  TYPEMWAI 14.249  Support for HP's Measureware for AIX.
  TYPEMWUX 14.134  Support for HP MeasureWare for HP-UX platform.
  TYPENDM  14.034  NDM or Connect Direct timestamps missing, data wrong.
  TYPENDM  14.116  Support for NDM 1.4 (compatible) adds variables.
  TYPENOAM 14.057  Support for STK's NearOAM user SMF record.
  TYPENSPY 14.005  INPUT STATEMENT EXCEEDED, NSPY 4.6, type A, invalid.
  TYPENSPY 14.053  LUNETID PCSESSID VILUNAME in dataset NSPYLU trashed.
  TYPENSPY 14.111  Support for NETSPY Release 4.7 (compatible).
  TYPENTSM 14.293  Support for Windows NT measurement with NTSMF.
  TYPENTSM 14.299  Support for Windows NT measurement with NTSMF.
  TYPEOMSM 14.219  Support for Candle's Omegamon for SMS V150 (no chg!).
  TYPEOPC  14.077  INVALID MTD SUBTYPE, observations not output.
  TYPEORAC 14.103  Accounting data input incorrectly for ORACLE.
  TYPEORAC 14.247  Support for Oracle Release 7.2.3 SMF record.
  TYPEQAPM 14.098  Support for AS/400,OS/400 Release 3.6 (INCOMPATIBLE)
  TYPEQAPM 14.271  Support for AS/400,OS/400 Release 3.7 (INCOMPATIBLE)
  TYPERACF 14.243  Support for RACF 2.1 IRRDBU00 unload utility.
  TYPERMDS 14.092  Support for IBM's RMDS Version 2.2 (no change)
  TYPERMDS 14.300  RMDSARN/ARI missing in RMDS 1.3/1.4.
  TYPESAMS 14.013  INVALID DATA FOR HH,MM,SS with SAMS SMF record.
  TYPESFTA 14.179  Support for SoftAudit Version 5.1 (INCOMPATIBLE).
  TYPESNIF 14.186  Network General's Sniffer Network Monitor data.
  TYPESTC  14.001  INPUT STATEMENT EXCEED for HSC subtype 8 record.
  TYPESTC  14.055  STK's HSC Subtype 08 now in two lengths, 38 and 40!
  TYPESTRS 14.349  Support for Demand Technology's Stress Test 3.3.6.
  TYPESUIN 14.248  Support for Applied Software's SUPER IND$FILE SMF.
  TYPESYNC 14.115  Syncsort variables SORTBEGN/END midnight spanning.
  TYPETAND 14.223  INFILE statements for TANDCTLR/TANDLINE need LRECL.
  TYPETCP  14.276  FTPLOCAL,FTPREMOT not decoded after Change 14.040.
  TYPETLMS 14.014  TLMS year 2000 dates were not decoded correctly.
  TYPETMDB 14.197  Support for TMON/DB2 Version 3 (INCOMPATIBLE).
  TYPETMON 14.042  INVALID DATA for TIGETMCT or TIFREMCT corrected.
  TYPETMON 14.336  Support for Landmark The Monitor for CICS 1.5, COMPAT
  TYPETMS5 14.018  TMS datasets TMSRECS,DSNBRECS now deleted from WORK.
  TYPETMVS 14.135  Support for Landmark TMON/MVS spanned records.
  TYPETPM  14.113  Support for Thruput Manager #V041238 (INCOMPATIBLE).
  TYPETRSN 14.218  Support for Desktalk's TRENDSNMP SNMP IFENTRY data.
  TYPETSOM 14.334  Segmented TSO/MON records with only DRU STRTTIME=.;
  TYPEVM   14.008  INVALID DATA FOR PWCOUNT in VMID=06 VM Accounting.
  TYPEVSME 14.278  Support for VTAM Session Management Exit SMF record.
  TYPEWSF  14.143  Support for RDS's EOS Enterprise Output Solution
  TYPEWSF  14.228  Support for RSD's EOS Product SMF record.
  TYPEX37  14.091  STOPX37 SMF records changed by Boole, useless now.
  TYPEXSTR 14.144  Support for Anacomp, Inc's XSTAR product SMF record.
  TYPPROS  14.207  Support for Boole & Babbage's PRO/SMS.
  UCICSCNT 14.060  Enhanced CICS diagnostic tool for EXCLUDE/INCLUDE.
  UDB2GTF  14.154  Support for DB2 records written to GTF.
  UDEBLOCK 14.155  Utility to create valid RECFM=U on MVS from PC data.
  UTILCONT 14.216  Utility contents of SAS library, sizes in Megabytes.
  UTILGETM 14.018  Type 110 Subtype 2818 recognized and counted.
  VMXGHSM  14.235  SMS-related Class fields in both MCC and MCD added.
  VMXGSUM  14.177  If DESCENDING was used with KEEPALL=NO, it was lost.
  VMXGTAPE 14.153  Utility macro to determine if lib/dsn is on tape.
  WEEKBLDT 14.010  NOTSORTED error with ASUMCICS in weekly logic.
  YEAR2000 14.100  Use of Date literal '01JAN00' changed to '01JAN1900'
  YEAR2000 14.305  Format of year 2000 status revised with vendor fixes.

Inverse chronological list of all Changes:

NEXTCHANGE: Version 14

===Changes thru 14.352 were included in MXG 14.14 dated Feb 21, 1997===

Change 14.352  Member CICINTRV is now the enhanced logic that was first
CICINTRV       tested as "CICINTRZ".  The new logic creates only the
Feb 20, 1997   PDB.CICINTRV data set with CICS interval statistics.
               The other four old datasets, CICEODRV,CICREQRV,CICRRTRV
               and CICUSSRV should have been deleted, as they are now
               meaningless, but they are still created (but now with no
               observations) to prevent unnecessary failure if any of
               your other jobs reference those datasets (in your weekly
               or monthly, for example, if they were copied).  Take the
               time to remove any references to those now defunct data
               sets to avoid future errors when they are deleted.

Change 14.351  ML 12 of the MXG Tape Mount and Tape Allocation Monitor
ASMTAPES       MUST be installed for MVS/ESA 5.2.2 or OS/390 to avoid
ZSMTAPES       possible UCB errors (due to relocated UCBE in MVS).  Not
ZZMTAPES       only does this revision solve that problem, it builds on
Feb 20, 1997   ML 11 (which replaced SRB with Cross Memory Services) and
               Good News:
              -Creates new TMNTTYPE=5 "Interval Allocation" record that
               is written at the end of each (default=hour) interval for
               each drive that was allocated.  This will allow us in the
               analysis programs to accurately count tape drives without
               having to wait (days or weeks?) until the tape drive was
               deallocated.
              -Supports the workload manager, with new data elements
               for Service class, workload name, resource group, and
               resource class.
               Bad News:
               MXG 14.14 VMACTMNT processing code does not decode the
               new fields, nor the subtype 5 record; that enhancement
               should be available in early April.
               Other News:
              -Has new assembly time operating system parameter that you
               must supply.  The values are ESA or ESA5.  ESA5 supports
               MVS/ESA Version 5 and OS/390 and must be specified so the
               correct IBM macros are used.
              -Supports the new access to the UCB common extension.
              -Changed SRB error fields to AR mode error fields.
              -Corrected MODESET errors in AR mode.
              -Changed initial tape UCBSCAN into subroutines.
              -Support for above the line UCB's.
               For archive, ML 9 is now in ZZMTAPES, and ML 11 is in
               ZSMTAPES member.

Change 14.350  Dataset TYPE74CA was not created in the WEEKly PDB if
WEEKBLDT       you used WEEKBLDT (but was with WEEKBLD).  Now it is
Feb 20, 1997   created with either weekly job.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

Change 14.349  Support for Stress Test Release 3.3.6 Enhancements.
VMACSTRS       Both the original and the enhanced SMF record is now
Feb 20, 1997   supported transparently.  This release adds new data
               to the SMF record that will soon allow control cards
               for Stress Test parameters to be created to match your
               existing DASD rates (by using TYPE74 and TYPE74CA SMF
               data to measure your system).  That analysis/generator
               should be available in April.
   Thanks to Chuck Hopf, MBNA, USA.


Change 14.348  Variable JOBCLASS was increased to LENGTH $8 (from $1)
VMAC30         in VMAC30 and VMAC26J3 because JES3 needs all eight
VMAC26J3       bytes for JES3 Main Class.  Only one byte is input in
Feb 19, 1997   VMAC26J3, but by increasing the length in TYPE26J3 will
May 21, 1997   cause the kept size in BUILDPD3 to be eight bytes.  What
               is really slick is that the length of JOBCLASS in the
               JES2 PDB.JOBS and PDB.STEPS datasets will still be only
               one byte, so there is no increase in the size of the JES2
               PDB as a result of this change to type 30.  However, the
               TYPE30_x datasets will have JOBCLASS with length 8 to
               support either JES2 or JES3 job class names.
   Thanks to Jack Mintz, Hudson Williams, USA.

Change 14.347  Continued enhancements to the RMF-like reporting.
ANALRMFR      -ANALRMFR now detects and reads PDB on tape or disk.
Feb 19, 1997     -Workload Activity Report-Compatability Mode,
                  REPORT=WKLD, RPTOPT parameter is now the way
                  to make report selections. If none are selected
                  no reports are created.
                    RPTOUT=PERIOD  Performance group period
                                   within performance group.
                           GROUP   Summarizes data for all performance
                                   group periods within the
                                   performance group.
                           DOMAIN  Summarizes data by domain for the
                                   entire system.
                           STM     Summarizes data for the entire
                                   system.
                 -Workload Activity Report-Goal Mode, REPORT=WLMGL
                  RPTOPT=WGPER:
                    Update Sevice Policy Page column Resource Groups
                    allowing for all service classes to be output.
                 -Workload Activity Report-Goal Mode, REPORT=WLMGL
                  RPTOPT=RCLASS, report classes defined in a service
                  policy, is added.
                 -Workload Activity Report-Goal Mode, REPORT=WLMGL
                  RPTOPT=SCLASS, summary of data for all service class
                  periods defined for a service class, is added.
                  There was no data to confirm values.
                 -Coupling Facility Activity, REPORT=CF
                  Reports created "Coupling Facility Usage Summary"/
                  "Structure Summary"/"Storage Summary"/"Processor
                  Summary" and "Coupling Facility Structure Activity"
                  Unconfirmed values a ouput on the report as "??".
                 -LCU summary does not include the first device.
                  Remove LCUIORAT=0 ....... from FIRST.DATE OR
                  FIRST.TIME OR FIRST.DEVCLASS.
                  Move LCUIORAT=SUM(LCUIORAT,IORATE)
                        .
                  To after FIRST.LCU THEN DO;
   Thanks to David Childress, Lowe, USA.
   Thanks to Alan M. Sherkow, Management Strategies LTD.

Change 14.346  Variables NRBINDS and NRLIMITS should have been spellec
VMACTPM        NBINDS and NLIMITS, and variable JCTJOBID was added to
Feb 17, 1997   the KEEP= list for dataset TYPETPMF.
   Thanks to Brian Sanga, Eagle Star Group Services Ltd, ENGLAND.

Change 14.345  The FMXGUCBL function (to allocate dynamically all DASD
FMXGUCBL       devices for the archaic VMACVTOC) did not support four
Feb 17, 1997   digit UCBs, but now does, thanks to this contribution.
   Thanks to Sue Yarker, Midland Bank, ENGLAND.

Change 14.344  "IHDR" exit for Boole and Babbage IMF records was added,
IHDRCIMS       after newsletter text was sent to the printer.  See text
VMACCIMS       of Change 14.342.
Feb 17, 1997

===Changes thru 14.343 were printed in MXG Newsletter THIRTY-ONE=======

Change 14.343  New ASUMUOW summarizes CICSTRAN and DB2ACCT by "Unit of
IMACUOW        Work UOW" to create PDB.ASUMUOW with total CICS and DB2
ASUMUOW        resources in a single observation, keeping the original
Feb 19, 1997   TRANNAME and USERID of the real UOW.  Member IMACUOW will
May  4, 1997   enable "SPINing" of incomplete CICS transactions (e.g.,
               long running LU 6.2 events) to ensure completeness.  This
               member is a replacement/enhancement of ANALDB2C that is
               renamed to an ASUMxxxx because it is now designed to be
               executed as a data-set-builder (PDB.ASUMUOW) rather than
               an ANALysis example (and UOW makes more sense than DB2C)!

               The main assumption is that the earliest transaction for
               any UOW must be the first transaction; during the merge,
               if the TRANNAME of the first transaction is CSMI (i.e.,
               an MRO mirror) or is blank (DB2), that transaction is
               not complete, and the current records are SPUN (written
               to the SPIN library to be held until the next run, if you
               updated macro _SPINUOW in member IMACUOW to non-zero).

               The ASUMUOW dataset contains the same CICS variables as
               are needed to create the ASUMCICS interval summary from
               detail CICS transactions (plus the DB2 variables for CICS
               transactions calling DB2), so the ASUMUOW dataset could
               be used as input to ASUMCICS (you would probably want to
               make your own enhanced copy that also keeps the DB2
               variables) so as to create interval UOW statistics.  In a
               test of 2.6 million tran obs in CICSTRAN, ASUMUOW had
               only 1 million obs.  ASUMUOW can be used even if only
               CICSTRAN data exists, as it will combine all MRO events
               into one observation per UOW.
               Text revised May, and November, 1997.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.342  "IHDR" exits (taken after the header of raw records have
IHDRTMON       been read in) are added for Landmark's Monitor for
IHDRTMDB       CICS/ESA and for Landmark's Monitor for DB2.  These
IMACMONI       "IHDR" exits are similar to the "IMACFILE" exit for SMF
IMACTMDB       (which should be named IHDRSMF by my new naming
TYPETMON       convention).
VMACTMDB
Feb 15, 1997

Change 14.341  Using EXTMSTMS and macro _KTMSTMS in IMACTMS5 to create
TYPETMS5       new variables did not work as expected.  The new
Feb 15, 1997   variables were added to the initial TMSTMS dataset, but
               post processing in TYPETMS5 did not include the _KTMSTMS
               macro reference, so the new variable was lost.  The
               _KTMSTMS and _KTMSDSN references were added.
   Thanks to Andy Chandler, Eagle Star, ENGLAND.

Change 14.340  DB2 Reporting Enhancements for DB2-PM like reports from
ANALDB2R       DB2 4.1.  Individual Buffer Pool and Individual Package
ASUMDB2A       Execution data is now reported (See DB2 Technical Note in
ASUMDB2P       Newsletter THIRTY-ONE).  The Account Detail and Long
TRNDDB2A       Trace reports now use the detail buffer and package data
TRNDDB2P       (DB2ACCTB and DB2ACCTP) if they exeist.  The default
Feb 15, 1997   assumption is that all of your DB2 datasets are in the
               PDB libref, but if you have used IMACDB2 to send them
               to different librefs, you can tell ANALDB2R where to find
               them with the new DB2ACCT=, DB2ACCTB=, and DB2ACCTP=
               arguments in your ANALDB2R invocation.

               This change is incompatible with prior versions of the
               ANALDB2R report in that only a single PDB will be used
               to generate the report.  (Previously, you could specify
               PDB=PDB1 PDB2 PDB3, and the libraries would have been
               "concatenated".  This restructure lost that capability
               but you can easily combine multiple PDB datasets first
               and then invoke ANALDB2R.)

               Most, but not all, of the DB2 4.1 fields have been
               added; in particular, the individual buffer and package
               sections are complete.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.339  User enhancements to the ASMIMSLG/ASMIMSL5 programs for
ASMIMSLG       IMS log processing protect for a short error message,
ASMIMSL5       and in case of MSC transactions, since the ARRVTIME may
Feb 14, 1997   be wrong (out of sync), now, the MSC timestamp is used
               for ARRVTIME with good results.
   Thanks to Harry Olschewski, dvg Hannover, GERMANY.

Change 14.338  Variable HIUICAV (TYPE71) was added to RMFINTRV dataset
RMFINTRV       (the maximum of the individual values is kept) and it is
TRNDRMFI       added to TRNDRMFI dataset (the average of the maximum is
Feb 15, 1997   kept).
   Thanks to Manfred Thomas, BHF-Bank, GERMANY.

Change 14.337  Candle's EPILOG for MVS decoding was enhanced.  The IO
ANALEPMV       and ENQ data is now rolled into the EPMVEP dataset.  The
VMACEPMV       derivation of results to match Epilog screen reports that
Feb 14, 1997   doing straight-forward arithmetic with sample counts did
               not resemble their (proprietary) calculations but
               diligent work by Simon is now available in the ANALEPMV
               member to do those calculations for reports.  mon P.
   Thanks to SiMundy, Telstra, AUSTRALIA.

Change 14.336  Support for Landmark's The Monitor for CICS/ESA 1.5 is
TYPETMON       already in MXG, as the only change in the records is the
Feb 14, 1997   version (LMRKVREL) contains 0Fx rather than 0Ax.  Their
               Version 2 product is due out this year, but that will
               require changes to MXG to support.  Stay tuned.

Change 14.335  Support for NPM APAR OW17875 added new NPMSUBTY=2Ax that
VMAC28         is now decoded and output in the existing NPMSUMRY data
Feb 14, 1997   set.  Subtype 2Ax allows the collection and reporting of
               session data summarized by LU Group; the value of
               SCDSPLUG (LU Group summarized) is stored in existing MXG
               variable SCDSPNAM, rather than creating a new variable.

Change 14.334  Segmented TSO/MON records containing only DRU segments
VMACTSOM       have missing STRTTIME in TSOMDRU dataset because MXG did
Feb 13, 1997   not protect for DRU-only TSO/MON records, but now does.
   Thanks to Rick Ireland, Imperial Oil Limited, CANADA.

Change 14.333  NTSMF datasets ICMP, TCP, and UDP have been validated
ADOCNTSM       with data records and the table in ADOCNTSM updated.
Feb 13, 1997
   Thanks to Richard Clary, ENTERGY, USA.

Change 14.332  New member PROCSRCE is "Proc Source" for ASCII SAS.  It
PROCSRCE       creates a single IEBUPDTE-format file from individual
Feb 13, 1997   files, so that only a single file upload or download is
               required to move MXG Source library between ASCII and
               OS/390 platforms.  See instructions in member PROCSRCE.
               The basic technique is to pipe the DIR command's output
                   DIR *.SAS >> NAMEFILE.MXG /B /ON
               to create a list of file names in NAMEFILE.MXG, then
               start SAS and submit %INCLUDE SOURCLIB(PROCSRCE); which
               reads NAMEFILE and copies each file into IEBUPDTE.MXG,
               inserting the  ./       ADD   NAME=xxxxxxxx statements.

               Ain't elegant, but it is how I build the IEBUPDTE.MXG
               master file that is copied to 3480 distribution tapes.

               The actual file on 3480 tape is about 75MB (because each
               record is exactly 80 bytes long) but on ASCII takes only
               about 40MB (variable length records with trailing blanks
               removed), and it PKZIPs to less than 9MB.  To upload MXG
               for OS/390 validation, the 9MB IEBUPDTE.ZIP is sent via
               IND$FILE across SDLC at 19.2KB, and on MVS is unzipped by
               PKZIP for MVS (from ASI, 513-885-2031).  With PKZIPing,
               transmission takes 90 minutes.  Unzipped, transmission
               takes 7 hours!

               The existing MXG member IEBUPDTE is the inverse of the
               PROCSRCE program, as it reads PROCSRCE's output file to
               create each member as a separate *.SAS file.

Change 14.331  NETSPY record 'N' might cause INPUT STATEMENT EXCEEDED;
VMACNSPY       the +15 and +29 after the INPUT of NSPSTAFL should be
Feb 13, 1997   +16.  No error was directly reported, but this might be
               why one European site claimed they had to change the DO
               interation's maximum value (reduced by one) to avoid an
               ABEND (but I never got a record dump for diagnosis!).
   Thanks to Carl Downing, BlueCross BlueShield of Minnesota, USA.

Change 14.330  Amdahl APAF Version 3.0 records have been validated with
VMACAPAF       data records.  Changed test for SUBTYPE=31 or =32 to be
Feb 13, 1997   =49 or =50 (Amdahl listed subtypes in hex not decimal!),
               and corrected algorithm for counting bits on in a field
               (see SAS Technical Note in Newsletter THIRTY-ONE).
   Thanks to Bob Gauthier, American Stores Company, USA.

Change 14.329  SYNCSORT's product COBOL Advantage populates one byte in
VMACSYNC       the SYNCSORT user SMF record.  New variable SOOPCAT in
Feb 11, 1997   dataset TYPESYNC contains that byte, formatted in hex.
   Thanks to Jim Ray, Branch Banking & Trust, USA.

Change 14.328  TYPE74CF (Coupling Facility) QSIZnn variables are the
VMAC74         structure size as specified in the CFRM in units of 4096
Feb 10, 1997   bytes per unit, while TYPE74ST (Structures) R744SSIZ
               (and SMAS/SMIS) variables are actual allocated size of
               the structure, in units of 4000 bytes per unit, but IBM
               did not document the use of 4000 vice 4096.  To properly
               size the allocations, MXG now multiplies SSIZ/SMAS/SMIS
               by 4000 instead of 4096 (and SSIZ will then be smaller
               than QSIZ values).
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 14.327  Variable I was incorrectly used as the index variable
VMAC102        for two nested loops, which caused VMAC102 to loop.
Feb  7, 1997   There are two places, in the QWHSIID=21 and QWHSIID=44
               processing that contain DO I= 1 TO 19 BY 3;  In that
               line, in the two following lines (...PUT(SUBSTR...
               and in the line IF I=19 AND J=7 THEN J=20, change the
               "I" to "L" to correct the error.
   Thanks to Paul Hill, Midland Bank, ENGLAND.

Change 14.326  MXG 14.11 only.  Data set TYPE42S2 had incorrect values
VMAC42         because "NEW" before SMF42FB2/SMF42FB3 was not removed.
Feb  6, 1997   Labels for variables SMFJOD01-SMFJOD16 were corrected.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

Change 14.325  MXG 14.11 only.  Array CFNUM should only have sixteen
VMAC74         elements CFNUM01-CFNUM16 but was accidentally changed to
Feb  6, 1997   CFNUM01-CFNUM64.  Had no actual impact.
   Thanks to Bruce Widlund, Merrill Consultants, USA.

===Changes thru 14.324 were included in MXG 14.11 dated Feb  4, 1997===

Change 14.324  INVALID RECORD OBJECT=NETWORK INTERFACE error message
VMACNTSM       because the test ... OFFDATA NE 20 ... should be NE 21
Feb  4, 1997   (this test is right after the test for
                IF UPCASE(OBJECT)='NETWORK INTERFACE' THEN DO;
   Thanks to Richard Clary, ENTERGY, USA.

Change 14.323  MXG 14.11 dated Feb 3, 1997 only. Type 102 subtype 100
VMAC102        ERROR: NO MATCHING IF-THEN CLAUSE because the two lines
Feb  4, 1997      QW0100SB=QW0100SB+GMTOFFDB;
                  QW0100SA=QW0100SA+GMTOFFDB;
               were mis-located.  They must be immediately before the
                  OUTPUT T102S100;
               statement.
               Fortunately, the 100 subtype is not used in ANALDB2R or
               any other MXG program, so only specific use of T102S100
               exposed the error (my QA caught it but I overlooked it).
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

===Changes thru 14.322 were included in MXG 14.11 dated Feb  3, 1997===

Change 14.322  This is ML11 of the Tape Mount/Allocation monitor.
ASMTAPES       This revision eliminates the use of an SRB to capture
ZSMTAPES       job-related info, and instead does all of the cross
Feb  3, 1997   memory data collection in AR (access register) mode.
               Running in AR mode will cause more recorded CPU time in
               the TMNT address space, but what is really happening is
               that all of our collection overhead is now captured in
               the (calling) TMNT address space, whereas previously some
               of the CPU time of the SRB's execution was recorded in
               the SMF records of the allocating (monitored) address
               space.  The previous revision ML9 is in member ZSMTAPES.

               ML12 will contain 3 improvements : workload manager
               support, UCB common extension access changes, and
               configuration change detection using ENF, and will be
               available later this year.

Change 14.321  Don Deese's continued research into measurement of the CF
VMAC74         caused me to create new variables R744QSIZ and R744QFLG
Feb  3, 1997   from the QO segment into the SO per-structure segment
               so QSIZ/QFLG are added to TYPE74ST (while we investigate
               why QSIZ is often very difference thatn R744SSIZ!).
               The structures names in QO and SO are not in the same
               order, so MXG scans across the QO entries to find the
               matching SO entry.
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 14.320  As will be discussed in the next newsletter, this is the
many           first MXG Version (14.11) to be built at our office on
Jan 31, 1997   my new Overland 3480/3480IDRC/3490/3490E tape drive.
               The EBCDIC to ASCII translation with IND$FILE is not the
               same as the Overland default, and the Overland default is
               also wrong (especially trashing the long-vertical-bar and
               the not-sign), so I had to build my own translate table
               to create EBCDIC tapes from my ASCII master file:
                              MXG  IND$FILE MXG   WRONG     MXG OUTPUT
                              ON    OUTPUT  ON    ON        EBCDIC W/
                              MVS  ON ASCII ASCII OVERLAND  My Table
                 cent-sign     4A     5B    same  AD      l. Sq. Bracket
                 not-sign      5F     5E     AA           caret
                 long vertial  4F     5D     B3   BD      r. sq. bracket
                 split vert    6A     7C    same  4F      split vert bar

               (Note that in NEWSLETTER THIRTY-ONE 'A9'x was erroneously
                typed for a not-sign on ASCII, but it is really 'AA'x).

               I found I also had to change Overland's (DataTools for
               Windows) default ASCII-to-EBCDIC table three errors
                  5D-->4F and not BD      5B-->4A and not AD
                  7C-->6A and not 4F
               plus my two additions
                  AA-->5F                 B3-->4F

               To correct symbols on your ASCII platform after you use
               IND$FILE to download, change all '5D'x to 'B3'x and all
               '5E'x to 'AA'x and your comments with vertical bars
               and non-signs will look correct.  Of course, before you
               could upload that ASCII MXG to EBCDIC with IND$FILE, you
               must reverse that change on ASCII before the upload.

               I took this opportunity to rid "not-signs" from all MXG
               code, using NE or NOT instead, and replaced all of the
               remaining instances of double long-vertical-bars (for
               concatenation) with double exclamation points, to
               minimize any future exposure if MXG source is moved from
               ASCII to EBCDIC, and removed all of the '4A'x extraneous
               characters in text members.

               However, there were some uses of single long vertical
               bars that were inside comments and too pretty to lose,
               and a few instances of "not sign" (suggesting not to use
               it) that were left. These members were revised:
                  ACHAP08  ACHAP09  ACHAP12  ACHAP13  ACHAP16  ACHAP16
                  ACHAP17  ACHAP18  ACHAP19  ACHAP19  ACHAP21  ACHAP22
                  ACHAP23  ACHAP26  ACHAP30  ACHAP32  ACHAP33  ACHAP34
                  ACHAP37  ACHAP38  ACHAP39  ADOCEREP ADOCVMXA ADOC1415
                  ADOC7072 ANALCACH ANALCTLD ANALIPAC ANALRACF ANALRRTM
                  ANALSNAP ANALVARY ANALVMOS ANALVVDS IDMSBLT  IDMSJANL
                  IDMSJRNL JCLCRAYC LOADINFO REXXCOPY REXXEMAC REXXPDB
                  REXXTEST SYSLOGJE TTXPDS   TYPEIMS  UTILFMTX UTILPRNL
                  UTILSPAC UTILXRF1 VMACIPAC VMACRRTM VMAC102  VMXGHSM
                  XIBMFDP  XLOGREC  XNALCACH XNPMSESS XTYPEVS1 ZNALDB2R
                  ZRBIPSJ

               MXG is now distributed as an unnumbered data set; columns
               73 thru 80 are blank in all records on the MXG tape.
               I have not used line numbers for references for several
               years, and eliminating line numbers makes the source
               library much smaller on ASCII.

Change 14.319  LPAR data now contains flag variable LPnCAP to indicate
ASUM70PR       which partitions are Capped, and variable LPnSHARE which
Jan 31, 1997   contains the partitions percentage of the sum of the LP
               share values (i.e., if the partition is Capped, then
               LPnSHARE is the capping percentage).
   Thanks to Ian Porter, Nissan European Data Center, SCOTLAND.

Change 14.318  Support for OS/390 Release 3 (Compatible) adds major new
VMAC7072       measures to the TYPE72 and TYPE72GO datasets; the first
Jan 30, 1997   five variables were added to both (i.e., COMPATIBILITY
               MODE in TYPE72 and WORKLOAD MANAGER in TYPE72GO):
                  R723CICT='NON-PAGING*DASD I/O/CONNECT*TIME'
                  R723CIDT='NON-PAGING*DASD*DISCONNECT*TIME'
                  R723CIWT='NON-PAGING*DASD I/O*WAIT*TIME'
                  R732CIRC='NON-PAGING*DASD I/O*SSCH COUNT'
                  R723VELI='EXECUTION*VELOCITY*INCLUDES*I/O DELAY?'
               and only in WORKLOAD MANAGER do we find:
                  PCTDLIOD='DASD*DELAY*SAMPLES'
                  PCTDLNDI='NON-DASD*I/O USIN/DELAY*SAMPLES'
                  PCTDLQ  ='QUEUE*DELAY*SAMPLES*WAIT FOR*SERVER'
                  PCTDLSHS='SERVER*HIPERSPACE*PAGING*DELAY'
                  PCTDLSMP='SERVER*MPL*DELAY*SAMPLES'
                  PCTDLSPV='SERVER*PRIVATE AREA*PAGING DELAY'
                  PCTDLSSW='SERVER*SWAP-IN*DELAY*SAMPLES'
                  PCTDLSVI='SERVER*SPACE VIO*PAGING*DELAY'
                  PCTUSIOU='TOTAL*USING I/O*SAMPLES'
                  PCTUSTOU='TOTAL*USING*SAMPLES'
               The calculation of VELOCITY is also changed in Release 3,
               as PCTUSTOU (R723CTOU) replaces PCTUSCUS (R723CCUS) in
               the numerator and variable R723VELI='Y to indicate that
               the exection velocity now includes I/O delays.

Change 14.317  Dataset DB2ACCTP (Package Accounting) has new variables
VMACDB2        QWACBSC and QWACESC (start/stop of plan) added to KEEP=
Jan 30, 1997   list because they appear on DB2PM reports, and because
Oct 13, 2003   variable QPACSCB (start of package) cannot be used, as
               it is null in the 2nd and subsequent segments of the
               type 101 subtype 0 (accounting record, holds first ten
               package statistics), and QPACSCB is nulls in ALL of the
               type 101 subtype 1 (package only) records, and finally
               because the subtype 1 record is written first (so I can
               not retain from the subtype 0!).
                 Update: October 13, 2003:  QPACSCB and QPACSCE appear
                 to always exist, now, in DB2ACCTP observations, both
                 from Subtype=0 (first 10 packages), and from Subtype=1
                 (more than 10 packages).
                 However, QWACBSC and QWACESC will always have missing
                 value in DB2ACCTP observations from subtype=1 because
                 that record does not contain the QWAC segment!
                 This 2003 note is only for documentation.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.316  Subtype 5 HMF record with only 1 segment caused INPUT
VMACHMF        STATEMENT EXCEEDED error.  Although undocumented, this
Jan 29, 1997   record had only the bus segment; there was no memory
               segment present.  To correct, insert after the  @; that
               is after the INPUT of HMF5BUS:
                 IF HMF5SEGS EQ 2 THEN DO;
               and after the following IF SKIP GT 0 THEN INPUT +SKIP @;
               insert    END;
               (so that only the bus stats are read when HMFSEGS=1).
   Thanks to Ann Knapik, ISSC Akron, USA.

Change 14.315  DB2 utility programs set QWHCATYP=41 as their attachment
FORMATS        type value, an undocumented value that IBM does not set.
Jan 28, 1997   The site is pursuing IBM for a better answer.
   Thanks to Roman Jost, Gjensidigo, NORWAY.

Change 14.314  Dataset MEMOACCT new variables ENTRCALE/ENTRFORM are now
EXTYMEMO       INPUT from previously reserved fields.  In addition, the
VMACMEMO       MEMOACCT dataset contains variable CURRMODE with values
Jan 28, 1997   of T - terminate session  or C - continuation, the latter
               having accumulated values, so in most cases you only want
               the type T, so in member EXTYMEMO I have added an example
               of the code  IF CURRMODE='T' THEN OUTPUT _LTYMEMO;   that
               would cause only type T obs to be output, but that sample
               code in EXTYMEMO is commented out by default, so MXG will
               create both C and T observations until you change it.
   Thanks to Roman Jost, Gjensidigo, NORWAY.

Change 14.313  Invalid type 80 RACF record caused INPUT STATEMENT EXCEED
VMAC80A        error.  The record, an RACFEVNT=21:RDEFINE has pairs of
Jan 28, 1997   (SMF80DTP,SMF80DLN) (data type, data length, in decimal)
               of (6,151),(12,12),(81,08),(0,21),(6,8), then 543 (24,12)
               segments, a (49,20) and a (53,80).  The first DTP=6 is
               the expected 151 bytes, but there is a later DTP=6 with
               unexpected length of 8. The DTP=12 is 12 bytes instead of
               the documented multiple of 9.  There are no DTP= 0 or 81
               values documented by IBM.  And inside the DTP=12 data
               segment, the characters do not conform with the expected
               format, so this record was partially hosed, but still by
               adding protection for these (invalid) unexpected lengths
               in the DTP= 6 & 12, and for the unexpected DTP= 0 & 81,
               the rest of the type 80 records can be read while IBM is
               contacted to find a fix to prevent the bad record.
   Thanks to Silva Viviani. Fondo Commune D.C. Rurali Trentine, ITALY.

Change 14.312  IMF flag variables in the DBD section were not reset for
VMACCIMS       the next DBD segment, and thus were incorrectly carried
Jan 28, 1997   forward.  ELSE  variable=' '; clauses were added for the
               variables: DBTOVFLW DBTMSCNT DBTTYDDN DBTTYOTH DBTTYSEC
               DBTVSAM and DBTOSSB
   Thanks to Sieghart Seith, FICUCIA, GERMANY.

Change 14.311  MXG now converts GMT timestamps in DB2 records to local
EXDB2ACC       time automatically, but this change is INCOMPATIBLE for:
VMACDB2          sites that already use member EXDB2ACC to change GMT to
VMACDB2H         local for variables QWHCBSC and QWHCESC (which was the
VMAC102          MXG recommendation prior to this change!).  For those
Jan 27, 1997     sites, you must remove your conversion code and let MXG
                 convert those and all DB2 timestamps for you.
               The revised algorithm detects not only the hours of delta
               time between SMFTIME (local) and THISSTCK (GMT), but also
               now detects the seconds of delta time (values of 20
               seconds were seen, which is about the current number of
               leap seconds that is included in the STCK value in
               SYSPLEX environments, but leap seconds are not included
               in SMFTIME values).  The value of the GMT Offset,
               GMTOFFDB, may not be exact hours.  We found a THISSTCK
               value of 16:00:20 and SMFTIME was 10:00:00 so GMTOFFDB
               was -06:00:20!  Without those extra 20 seconds in the
               GMT offset, the converted local times would be off by 20
               seconds, so don't disbelieve a GMT offset that is not
               exact hours.  I arbitrarily set any difference less
               than 10 seconds to zero, even though current measurements
               show a maximum real fuzziness of less than 0.12 seconds,
               because I expect delta seconds to be due to leap seconds
               and the value of 10 might cover pathological cases when
               SMFTIME was delayed.  The new algorithm to calculate the
               GMT offset, GMTOFFDB, which is used in VMACDB2 & VMAC102
               members, is contained in VMACDB2H:
                  DELTASMF=SMFTIME-THISSTCK;
                  GMTOFFHR=(100*FLOOR((DELTASMF+30)/100))/3600;
                  GMTOFFSC=DELTASMF-3600*GMTOFFHR;
                  IF ABS(GMTOFFSC) GT 10 THEN
                             GMTOFFDB=3600*GMTOFFHR+GMTOFFSC;
                  ELSE       GMTOFFDB=3600*GMTOFFHR;
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.310 -Dataset PDB.DB2GBPST (Global Buffer Pool Interval Stats)
DIFFDB2        contained accumulated (and hence useless) values, but it
VMACDB2        is now deaccumulated to contain valid interval data by
Jan 27, 1997   its support in member DIFFDB2.
              -Dataset PDB.DB2STAT1 and PDB.DB2STATS variable QBGLGN
               should never have been kept; it is the Group Buffer Pool
               ID in each of the segments, and is kept only in the
               detail PDB.DB2GBPST dataset.
   Thanks to Ermanno Bertolotti, Banca Commerciale Italiana
   Thansk to Daniela Busani, Banca Commerciale Italiana

Change 14.309  Support for additional variables in type 42 subtypes 15,
EXTY42X1       16, 17, 18, and new subtype 19 creates new MXG dataset:
VMAC42           TYPE42X1 - VSAM RLS Local Buffer Manager counters.
Jan 25, 1997   See notes in member ADOC42 for details.
   Thanks to Michael E. Friske, Fidelity Systems, USA.

Change 14.308  Support for NTSMF Beta added new records, support for NT
VMACNTSM       3.51, and graceful detection of new record types.  Have
Jan 25, 1997   tested 34 record types, of the 56 known records.  See the
               status and complete technical discussion in ADOCNTSM.

Change 14.307  Support for APAF v3.0 added new Millennium subtype 31 and
EXAPAFCB       32 records which create three new APAF datasets:
EXAPAFLP         Dataset  Subtype  Description
EXAPAFSY         APAFSYSD   31     Global system data
IMACAPAF         APAFLPAR   32     LPAR and Physical CPU data
VMACAPAF         APAFCHN    32     Channel data
Jan 25, 1997   Member IMACAPAF was incompatibly changed (because of the
Jan 30, 1997   creation of new datasets) and must be refreshed in your
               USERID.SOURCLIB tailoring library.
               The new subtype 31 contains only the "Physical" partition
               times, while the subtype 32 contains the Total Dispatch
               and Effective Dispatch, from which LPAR Management Time
               is calculated for the Millennium processors.
   Thanks to Bob Gauthier, American Stores Company, USA.

Change 14.306  Variable QBACHRF was added to the SUM= list of variables
ASUMDB2B       to be summarized in creation of ASUMDB2B.
Jan 21, 1996

Change 14.305  Year 2000 status was updated.  Revised format now shows
YEAR2000       ongoing list of vendor fixes which are required for those
Jan 17, 1996   products that did not support 2000 but now do.

Change 14.304  MXG 14.05-MXG 14.10 only, using the supplied MXGSAS JCL.
MXGSAS         Error 180-322, right after the NOTE: THE INITIALIZATION
Jan 17, 1996   PHASE USED 0.13 CPU SECONDS AND 2233K results because the
               default value for the TAILORNG symbolic parameter in the
               MXGSAS JCL Procedure was still wrong in MXG 14.10.  The
               error was supposedly fixed by Change 14.239, but that fix
               was not implemented in the MXGSAS member until now.  The
               default TAILORNG symbolic in MXGSAS must be:
                  TAILORNG='*.NULLPDS,VOL=REF=*.NULLPDS',
   Thanks to Ram V. Ramamurthy, Associates Corporation, USA.
   Thanks to Walter ?, ???, USA.

Change 14.303  NJE devices with INDEVICE or DEVNAME of LnnnnJRm instead
VMAC26J2       of the (old) expected style of Lnnn.JRm caused INREASON
Jan 17, 1997   to be blank (instead of SR/JR/JT), so these NJE purge
Jan 21, 1997   records were not recognized and were kept as real purge
               records in BUILDPDB, causing some fields (like JENDTIME)
               to be taken from the wrong purge record.  The MXG logic
               to create INREASON was revised to recognize the old and
               new style of INDEVICE and DEVNAME:
     DOTLOC=INDEX(INDEVICE,'.');/*CHECK INDEVICE, 'JR' OR 'SR'*/
     IF DOTLOC NE 0 THEN DO;
       DOTLOC=DOTLOC+1;
       INREASON=SUBSTR(INDEVICE,DOTLOC,2);
       IF (INREASON='JR' OR INREASON='SR') AND ORIGNODE GT ' ' THEN
           SOURCE=ORIGNODE;
       ELSE INREASON=' ';
     END;
     ELSE IF INDEVICE=:'L' AND '0001' LE SUBSTR(INDEVICE,2,4) LE '9999'
       THEN DO;  /* FORMAT LnnnnSRm DOES NOT CONTAIN A DOT */
       INREASON=SUBSTR(INDEVICE,6,2);
       IF (INREASON='JR' OR INREASON='SR') AND ORIGNODE GT ' ' THEN
           SOURCE=ORIGNODE;
       ELSE INREASON=' ';
     END;
     IF INREASON='  ' THEN DO;/*IF STILL BLANK, THEN CHECK DEVNAME*/
       DOTLOC=INDEX(DEVNAME,'.');  /* 'JT' */
       IF DOTLOC NE 0 THEN DO;
         DOTLOC=DOTLOC+1;
         INREASON=SUBSTR(INDEVICE,DOTLOC,2);
         IF INREASON='JT' AND ORIGNODE GT ' ' THEN SOURCE=ORIGNODE;
         ELSE INREASON=' ';
       END;
       ELSE IF DEVNAME=:'L' AND '0001' LE SUBSTR(DEVNAME,2,4) LE '9999'
         THEN DO;  /* FORMAT LnnnnSRm DOES NOT CONTAIN A DOT */
         INREASON=SUBSTR(DEVNAME,6,2);
         IF INREASON='JT' AND ORIGNODE GT ' ' THEN SOURCE=ORIGNODE;
         ELSE INREASON=' ';
       END;
     END;
   Thanks to Silvio Orsini, Banca D'Italia, ITALY.

Change 14.302  The 22 new Shared Paging variables in TYPE71 starting
VMAC71         with SHPBINAU and thru SHPGLOAV need to be INPUT as
Jan 17, 1997   &RB.8. instead of &RB.4.  This corrects Change 14.257.
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 14.301  MXG 14.07-MXG 14.10 only, JES3 only, and only if you use
BUIL3005       BUIL3xxx members instead of BUILDPD3.  Error 22-7 UNKNOWN
JCLUXRE6       OPTION because SORTEDBY= was misspelled as SORTECBY=, and
Jan 15, 1997   because BUIL3005 was not in my QA stream (but now is)!
   Thanks to Chris Weston, SAS Institute Cary, USA.

Change 14.300  RMDS Versions 1.3 and 1.4 records have an undocumented
VMACRMDS       section (or one added by APAR) with Originating Job and
Jan 14, 1997   Originating JOBID that was not previously INPUT by MXG.
               To add these variables, insert after the  @; that is
               immediately after the INPUT of RMDSUDAT:
                 IF RMDSORG='A' AND RMDSACT='C' AND RECKEY='8080'X
                    AND LENGTH-COL+1 GE 16 THEN
                    INPUT
                         RMDSARN   $EBCDIC8.
                         RMDSARI   $EBCDIC8.
                    @;
               (These two variables are already INPUT in the code for
               later RMDS versions, and so they are in the KEEP= and
               LABEL statements already!).
   Thanks to Steve Colio, CIGNA Corporation, USA.

===Changes thru 14.299 were included in MXG 14.10 dated Jan 10, 1997===
   (although top of CHANGES said only thru 14.298, 299 was there!)

Change 14.299  Support for NTSMF (Windows NT) measurement is now ready
ADOCNTSM       for beta testing, and is very well documented.  ADOCNTSM
NTINTRV        now documents all 54 NTSMF datasets, and the new NTINTRV
VMACNTSM       dataset is created (like RMFINTRV). See NTSMF Technical
Jan  8, 1997   Notes.

Change 14.298  PRO/SMS dataset PROSMS does not contain DSN nor DDNAME,
EXPROSMS       but new sample code in this exit member (commented out,
Jan  2, 1997   as it may be installation dependent) shows how one site
               was able to parse the text to identify which dataset and
               DDNAME was altered by PRO/SMS.
   Thanks to Warren Hayward, TJX Companies, USA.

Spent an actual Christmas vacation with family, and nothing broke!

Change 14.297  Variables MVUOBMDN,MVUSBIN,MVUSBMDN,MVUSOBIN,MVRETDAT are
VMACEDGS       now INPUT from the type 'V' DF/SMSrmm record and are kept
Dec 19, 1996   in dataset EDGSVREC.
               Also, the CDS records can be read directly with TYPEEDGS,
               so using IBM's utility to dump the data is not required!
   Thanks to Richard Fortenberry, Mitsubishi, USA.

Change 14.296  H-P Measureware variable SOFTWARE was kept as a 200-byte
VMACMWAI       variable because it was not in the LENGTH statement; now
VMACMWSU       it is set LENGTH $30. (and variable AMPM is now $2) to
VMACMWUX       reduce the size of the datasets.
Dec 18, 1996
   Thanks to Al Holtz, Medco Data Corporation, USA.

===Changes thru 14.295 were included in MXG 14.09 dated Dec 17, 1996===

Change 14.295  If you create type 74 records for devices other than just
RMFINTRV       TAPE and DASD, the DEV..... SIO74CNT and AVGRSPTM values
Dec 17, 1996   include those other devices (eg, CTC) counts.  Since it
               is the intention to have only DASD counts in those fields
               by inserting ELSE DELETE; before LENGTH SIO74TAP 4; those
               other device records will not be included in RMFINTRV.
   Thanks to W. Rathfelder, Taylorix AG, GERMANY.

Change 14.294  For multi-volume non-HSM-backup tape datasets, only the
DAILYDSN       last volume's size was included in variable SPACE5, the
Dec 17, 1996   megabytes on non-HSM tape. Replace SPACE5=BLKSIZE*BLKCNT;
               with SPACE5=TAPEBYTE;
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.293  Support for Windows NT measurement with NTSMF records
ADOCNTSM       created by Demand Technology's product.  This support is
EXNTxxxx       for the beta testers of NTSMF.  The fifty-four new MXG
IHDRNTSM       datasets (one per "object") are described in ADOCNTSM
IMACNTSM       member, and a more extensive discussion of NTSMF records
TYPENTSM       will be in the NT Technical Notes section of the next MXG
VMACNTSM       Version.  Status of testing is also in ADOCNTSM.
Dec 17, 1996

Change 14.292  The very last IMS log record was not processed, because
VMACIMSA       the ELSE IF LCODE=07X THEN DO; statement should have been
Dec 17, 1996       IF      LCODE=07X THEN DO;
   Thanks to Juerg Frei, SAS Switzerland, SWITZERLAND.

Change 14.291  Coupling Facility data added by PTF UW90312 was on a per
VMAC74         structure basis, not per-CF basis, so variable names were
Dec 14, 1996   R744CCOC thru R744CXRL were moved from TYPE74CF to the
               TYPE74ST dataset, and MXG input logic was revised.
                 IBM's "CF Reporting Enhancements to RMF 5.1", WSC Flash
                 9609 has an excellent discussion of how to use these
                 important fields for determining if your Coupling Fac.
                 becomes the bottleneck in your sysplex.  The flash also
                 lists APARs OW11789, OW12415, OW13418, and OW13536 as
                 required and it lists the additional hardware ECs that
                 you want to have installed for accurate CF measures.
              -R742MSTF was formated $HEX2, input $CHAR1.
              -Variables R744FTIM, R744FSQU, R744FCTM, R744FCSQ are
               input with PIB8 instead of the (IBM-documented!) RB8.6
               informat, and variables R744CDEC,R744CDAC,R744CTCC, and
               R744CDTA are input as PIB4 vice RB4.
   Thanks to Steve Dodge, Amdahl Corporation, USA.

Attended CMG 96 in San Diego, and Bernie Davidovich's wedding in NY.

Change 14.290  If your SAP Accounting Exit was miscoded, invalid length
IMACICSA       type 110 records can be created, causing INPUT STATEMENT
Dec  3, 1996   EXCEEDED error.  This change, inserted after STCLEN has
               been INPUT, verifies the real data length agrees with the
               STCLEN value, eliminating the exposure.
   Thanks to Helgund Linck, BASF Compuer Services, GERMANY.

Change 14.289  DF/SMS Rmm EDGS records type V can cause INPUT STATEMENT
VMACEDGS       EXCEEDED error because variable length fields & variable
Dec  3, 1996   number of fields at the end of the record were not input
Dec 17, 1996   correctly.  Conditional INPUT of the variables MVDSN1,
               MVDSNL, MVACCINF and MVDESC with $VARYINGnn. INFORMATS
               with associated length variable, and INPUT of variables
               MVAUTID1-MVAUTIDC based on MVACCLST was necessary.
               Dec 17: Input of MVVOLSEQ must be &PIB.2. vice &PIB.1.
   Thanks to Richard Fortenberry, Mitsubishi, USA.

Change 14.288  Negative tape allocation duration can result when system
ASUMTALO       clocks are out of synchronization, if the clock delta is
TRNDTALO       greater than the duration of the allocation, because only
Dec  3, 1996   the start time of allocation had been adjusted.  Now both
               the front-end and back-end timestamps are adjusted, and a
               note is printed on the log that we are adjusting times
               (and by how much).
   Thanks to Ruth Whitney, CITICORP, USA.

Change 14.287  The number of DB2 Plans executed is no longer equal to
ANALDB2R       the number of observations in DB2ACCT, if DB2 Parallelism
ASUMDB2A       is used.  Variable DB2PARTY (Parallel Type) identifies a
Dec  3, 1996   "real" plan execution (DB2PARTY='S' or DB2PARTY='O'), but
Dec 19, 1996   observations with DB2PARTY='P' are additional records for
               parallel tasks within a plan execution and must not be
               counted.  In ANALDB2R and ASUMDB2R, NUMPLANS is now
               calculated as:
                 IF QWHSRELN GT 4.0 AND DB2PARTY='P' THEN NUMPLANS=0;
                 ELSE NUMPLANS=1;
               and then NUMPLANS is summed to get total count.
               Without this change, you will see very, very large counts
               of plans executed and per-plan measures will be very
               small, if your DB2 application exploits parallelism.
               Dec 19: The original test QWHSRELN GE 4.1 was changed to
               QWHSRELN GT 4.0 (because 4.1's value is 4.0999994278!).
               Also, this change removed the parallelized transactions
               from being counted as NUMPLANS, but sequential parts or
               parallelized transactions are still counted in NUMPLANS.
               I have to count the DB2PARTY='S' transactions, because
               for a non-parallelized transaction, that's all there is!
               I hope to review this counting and see if there is a safe
               way to only count 'S' obs for non-parallelized trans.
   Thanks to Glenn Bowman, Wakefern Food Corporation, USA.

Change 14.286  DB2 Buffer Statistics in the Accounting Detail Report did
ANALDB2R       not include buffer pools 1 and 2, so they did not cross-
Dec  3, 1996   foot to the "Total Total" field.  Additional corrections
               were made and fields on HPOOL/VPOOL usage were added.
   Thanks to Terry Dehart, First of America Services, USA.

Change 14.285  Change 14.251 circumvented the error in decoding COLLECT
VMAC102        in DB2 Trace IFCIDs 21 and 44, but the real fix is:
Dec  3, 1996     Change both occurrences of  IF I=19 AND J=13 THEN J=20;
                 to                          IF I=19 AND J= 7 THEN J=20;
                 and change the LENGTH of COLLECT back to $ 26.
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
   Thanks to Hartmut Beckmann, Karstadt AG, Germany

Change 14.284  Support for Demand Technology's Stress Test SMF record.
EXTYSTRS       This support decodes records into new dataset TYPESTRS,
IMACSTRS       but enhancements under development will use your current
TYPESTRS       TYPE74 and TYPE74CA statistics to create control cards
VMACSTRS       that will drive Stress Test to simulate that current I/O
Dec  3, 1996   configuration.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.283  The HP MeasureWare dataset HPUXGLOB for HP-UX operating
VMACMWUX       system had incorrect values for some variables, because
Dec  2, 1996  -the variable PEAKTM should not have been INPUT, and it
               must be removed (i.e., the line INPUTing PEAKTM was
               deleted by this change, as was the line LABELing PEAKTM
               and it was removed from the KEEP= list for HPUXGLOB), and
              -the variable NTPACKRT should have been INPUT, between the
               INPUT of variables NTOUPKTS and NTCOLPCT (and it was
               LABELed as NET*TOTAL*PACKET*RATE, and added to the KEEP=
               list for HPUXGLOB).
   Thanks to Al Holtz, Medco Data Corporation, USA.

Change 14.282  The archaic ASMVTOC program (which should be replaced by
ASMVTOC        using DCOLLECT and TYPEDCOL) is also a pig!  For a system
Dec  2, 1996   with 2496 DASD devices, ASMVTOC took 3.25 CPU minutes,
               10 million EXCPs and 2.5 elapsed hours, while DCOLLECT
               took 2.72 CPU minutes, 86 thousand EXCPs and 23 elapsed
               minutes (and got VVDSs, Migration, and Backup data too!).
               Note that the MXG 13.13 version of ASMVTOC either failed
               during assembly, or assembled but then produced no output
               records when executed, so if you still use ASMVTOC, you
               will need 14.01 or later (to get Change 14.003).
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.281  The T102S221 trace dataset did not keep the low and high
VMAC102        ranges (page range in QW0221PL,PH, index range in KL-KX,
Nov 23, 1996   and KH-KY), which are needed if you wish to verify that
               the I/O parallelism partitioning was even, and obs were
               only output for the record, not for each segment.  The
               segment variables were added to the KEEP= list, and the
               OUTPUT T102S221; statement was moved to immediatley be
               after the @; after the INPUT of QW0221KY.
   Thanks to Ted Blank, IBM, USA.

Change 14.280  The BETA93 1.6.5 subtype=3 record is written twice, once
VMACBETA       at the start of print, and once at the end of print.  As
Nov 23, 1996   there are no resources in the start record, that record
               is now deleted.  In the SUBTYPE=3 logic, between BETAATTR
               and BETABPGE, insert:
                @; IF BETAATTR NE 'C5'X THEN DELETE; INPUT
   Thanks to Paolo Carloni, AGIP PETROLI S.p.A., ITALY

Change 14.279  HP MeasureWare for AIX variable PROGRAM was added to the
VMACMWAI       LENGTH statement for $16 (default of $8 was not enough,
Nov 23, 1996   causing trunctation but no error), and variable SWAPMEM
               was added to the KEEP= list for dataset HPAICONF.
   Thanks to Lorenzo Wright, NCCI, USA.

Change 14.278  Support for VTAM Session Management Exit SMF record that
EXTYVSME       is described in Appendix K of IBM ITSC Red Book "Network
IMACVSME       Security Using the VTAM Session Management Exit, pub nr
TYPEVSME       GG24-3544-00).
VMACVSME
Nov 23, 1996
   Thanks to Kwok Wong, Commonwealth Bank of Australia, AUSTRALIA.

Change 14.277  IMAC6ESS is a user exit that permits decoding of the ESS
IMAC6ESS       segment in the type 6 SMF record, and variable ROOM was
VMAC6          used in that commented-out code, but variable ROOM also
Nov 23, 1996   exists in TYPE26J2, so to prevent a possible conflict, I
               renamed the ROOM in IMAC6ESS/VMAC6 to ROOM6.  This should
               cause no compatibility issue, since ROOM was not kept in
               TYPE6 unless you tailored IMAC6ESS, and ROOM from TYPE26
               was not kept in PDB.JOBS unless you tailored IMACPDB.
   Thanks to Helgund Linck, BASF Computer Services GmbH, GERMANY.

Change 14.276  Change 14.040 inadvertently relocated the code to decode
VMACTCP        FTPLOCAL and FTPREMOT in the TYPETCPF dataset, causing
Nov 23, 1996   those two varibles to be missing in TYPETCPF.  To correct
               copy the 16 lines beginning with FTPLOCAL=PUT... ending
               with FTPREMOT=COMPRESS... so they are immediately before
               the %%INCLUDE SOURCLIB(EXTYTCPF) statement.
   Thanks to Helgund Linck, BASF Computer Services GmbH, GERMANY.

===Changes thru 14.275 were included in MXG 14.08A dated Nov 18, 1996===

Change 14.275  Cosmetic changes.  Duplicate variable names were removed
IMACAAAA       from KEEP= list in VMACHARB and VMACMWAI,  IMACAAAA was
VMACHARB       updated with new member names that were overlooked, and
VMACMWAI       the AS/400 support for Release 3.7 was listed under 14.08
Nov 18, 1996   in the list of Significant changes in 14.08.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

Change 14.274  SuperIND$FILE SMF record had some character fields off by
VMACSUIN       one byte, because the  +1  between XFERMODE and INBUFFSZ
Nov 18, 1996   does not belong and was deleted.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.273  MXG 14.05-08 only. INVALID DATA FOR R744FCTM and FCSQ.
VMAC74         Added by Change 14.165, conditionally INPUT by Change
Nov 15, 1996   14.196, the fields were still wrong in MXG 14.07 because
               the DSECT shows BL8, like the two preceding fields so
               I expected &RB.8.6 fields, but actual data values show
               the two fields must be INPUT as &PIB.8.6 instead!
   Thanks to Diane Eppestine, Southwestern Bell, USA.
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
   Thanks to Hartmut Beckmann, Karstadt AG, Germany

Change 14.272  SAP Umbrella Transaction's Program and Tranname are kept
IMACICOC       in variables OMUMBUSR and OMUMBPTC, while the variables
Nov 14, 1996   PROGRAM and TRANNAME contain the name of the SAP Primary
               Program and Transaction.  If you want your SAP reports to
               show the Umbrella names rather than Primary names, you
               can insert these lines in your reporting programs:
                 IF OMUMBUSR GT ' ' THEN PROGRAM=OMUMBUSR;
                 IF OMUMBPTC GT ' ' THEN TRANNAME=OMUMBPTC;
               You could insert these lines in member IMACICOC to store
               the Umbrella names into PROGRAM and TRANNAME in CICSTRAN,
               but then you could not go back to determine the Primary
               names, if they were ever needed.  Thus there was no code
               changed in MXG by this Documentation Note Change.
   Thanks to Joan Nielsen, PKS Information Services, Inc., USA.

====Changes thru 14.271 were included in MXG 14.08 dated Nov 13, 1996===

Change 14.271  Support for AS/400-OS/400 Release 3.7.0 added many new
VMACQAPM       variables to datasets QAPMBUS,QAPMCONF,QAPMJOBS,QAPMMIOP,
Nov 12, 1996   and QAPMRESP.  Support for all fields added by 3.6.0 are
               also now supported.  All 3.7.0 changes were compatible,
               except for the QAPMETH dataset, which had ETLFRT expanded
               from three to six bytes (and I had misspelled it!). The
               3.6.0 partial changes in CHANGE 14.098 were INCOMPATIBLE.
   Thanks to Clark Jennings, Reynolds Metals Company, USA.

Change 14.270  Cosmetic.  All of the LABEL, FORMAT, INFORMAT, and LENGTH
VMAC110        statements in the Statistics code (Subtype=2) were moved
Nov 12, 1996   together into single statements with alphabetic lists.

Change 14.269  Execution of MXG Software under Unix requires each PDS
IEBUPDTE       member become an individual file with suffix "sas", AND
Nov 12, 1996   the filename must be in lower case!  The IEBUPDTE.SAS
               program creats the individual files, but their names are
               in upper case, causing execution under UNIX to fail!
               This change inserts MEMBER=LOWCASE(MEMBER); after the
               MEMBER=TRIM.... statement to create the members in lower
               case.  Make sure the output directory is empty before
               running the IEBUPDTE.SAS program, as it appears that if
               the output file name already exists as an upper case name
               that the data is copied but the name is not re-cased!
   Thanks to Mike Orlando, Nalco Chemical Company, USA.

Change 14.268  Protection was added to eliminate DIVISION BY ZERO error
VMAC7072       if IOCCOEFF was zero.  I had assumed IOCCOEFF would never
Nov 12, 1996   be zero, but if it was, the divide error occurred.
RMFINTRV       Also, PGPIOTM is now forced missing for MVS/ESA 5.2 or
Mar 10, 1997   higher.  When IO units could be based on either EXCP or
               IOTM, both PGPEXCP and PGPIOTM (raw IO EXCP count or raw
               IO Connect time) were calculated (even though only one
               was ever valid), because IBM did not flag whether you had
               specified EXCP or IOTM for your IO Service Units).  But
               with MVS/ESA 5.2+, IO Service Units can only be based on
               EXCP count, so PGPIOTM has no meaning.
               Mar 10, 1997:  Because PGPIOTM in TYPE72 is missing, the
               variables BATIOTM, CICSIOTM, IMSIOTM, TSOIOTM, OTHRIOTM
               in dataset RMFINTRV will also be missing.

Change 14.267  This report showed zeros for channel busy in LPAR mode.
ANALPATH       Change  PNCHANBY=MIN(PNCHANBY,PCHANBY);
Nov 12, 1996   to read PNCHANBY=MAX(PNCHANBY,PCHANBY);
Nov 18, 1996   (Nov 12 text had PCHANBY on left, corrected Nov 18.)
   Thanks to Jim Ray, Branch Banking and Trust, USA.

Change 14.266  MXG 14.04-MXG 14.07.  The word "NEW" must be deleted from
VMACITRF       line 245 to prevent INPUT STATEMENT EXCEEDED ERROR.  This
Nov  4, 1996   was introduced by Change 14.128 and incomplete testing.
   Thanks to Siegfried Trantes, IDG Informationsvararbeitung, GERMANY.

Change 14.265  Support for HP's MeasureWare for SUN operating system.
EXHPSUTT       The same datasets that were created by HP's PCS for SUN
IMACMWUS       are created, with one new dataset:
TYPEMWSU         Dataset  Description
VMACMWSU         HPSUTRAN Transaction Tracker Record
Nov  1, 1996
   Thanks to Gary Alexander, BMC, USA.

Change 14.264  Support for CA's ENDEVOR SMF record creates two datasets
EXENDVAC         Dataset   Description
EXENDVSE         ENDEAVAC  Action Record
FORMATS          ENDEAVSE  Security Record
IMACENDV       The Action record has been validated with actual data,
TYPEENDV       but no security records had been created (there were no
VMACENDV       security violations!) so that code is untested.
Nov  1, 1996
   Thanks to Grace Pergament, Amdahl Corporation, USA.
   Thanks to Susan Walters, Michelin Tire Corporation, USA.

Change 14.263  Dataset DCOLAG (Aggregate Group Definitions) has several
VMACDCOL       fields incorrect, because the @208 preceding DAGEXPYR
Nov  1, 1996   should have been @209.
   Thanks to Gary Miner, Fidelity Investments, USA.
   Thanks to Lawrence Jermyn, Fidelity Investments, USA.

Change 14.262  Calculation of DOMDSPCH and ADJTARG must be changed to:
VMACAPAF         IF ACTIVE GT 0 THEN DO;
Nov  1, 1996       DOMDSPCH=INTERVAL*DOMDSPCH/ACTIVE;
                   ADJTARG =INTERVAL*ADJTARG /ACTIVE;
                 END;
               (The variables are divided by INTERVAL earlier in code.)
   Thanks to Stephen H. Lothes, Flexlogic, Inc., USA.

Change 14.261  Using the new High Level Assembler PGM=ASMA90 instead of
ASMIMSLG       its predecessor Assembler PGM=IEV90, a syntax error that
Nov  1, 1996   was overlooked by IEV90 was encountered.  The statement
               STATS=SKIP following WRITEMSG IMSM101I needs a comma
               (STATS=SKIP,) for the continuation.
   Thanks to ???, BBK, SPAIN.

Change 14.261  The statement MONICASP=MONACISP; must be changed to
TYPEMON8                     MONICASP=MONACASP;  to pick up the correct
Nov  1, 1996   temporary value.
   Thanks to Alfred Brunner, COMLAB Gmbh, GERMANY.

Change 14.260  DFSMS/RMM SMF records caused INPUT STATEMENT EXCEEDED.
VMACEDGS       In the EDGATYPE='O' code, the test IF MOCFLG EQ '08'X ...
Nov  1, 1996   must be replaced with  IF MORTYPE EQ '000000000000'X ...
               and  IF MOVOLNO GT 0 AND MOCFLG NE '08'X THEN DO ...
               must be replaced with only IF MOVOLNO GT 0 THEN DO ...
               In the EDGATYPE='P' logic, the statement
                IF MOVOLNO GT 0 THEN DO _I_=1 TO MOVOLNO; must be
                IF MPVOLNO GT 0 THEN DO _I_=1 TO MPVOLNO; must be
   Thanks to Siegfried Trantes, IDG Informationsvararbeitung, GERMANY.

Change 14.259  Support for Omegamon for VTAM V200 was not complete; an
VMACOMVT       extra four bytes added to IRNUM=13 segment was overlooked
Oct 30, 1996   in Change 14.268.  After input of OM13GT, insert:
                   OM13DT  &PIB.4.  /*NCP*INTERVAL*DELTA*TIME*/
               and add OM13DT to KEEP= list.
   Thanks to Neil McMenemy, Royal Bank of Scotland, SCOTLAND.

Change 14.258  Goal Mode variable RPTCLASS was added to PDB.JOBS. The
IMACPDB        variable name was added to the _PDB30_4 macro, and to
Oct 30, 1996   the ID statement in macro _PDBSUMS (just like SRVCLASS).
   Thanks to Steve Colio, CIGNA, USA.

Change 14.257  The 22 new Shared Paging variables in TYPE71 starting
VMAC71         with SHPBINAU and thru SHPGLOAV need to be INPUT as
Oct 25, 1996   &RB.4. instead of &PIB.4.
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 14.256  Support for APAR OW22209 which (compatibly) adds fourbyte
VMAC21         counters for bytes read and bytes written, replacing the
Oct 24, 1996   two byte counters that could overflow! Also OW25262.

Change 14.255  Formats MGBYTES and MGBYTRT now format Petabytes, because
FORMATS        I finally found (in an IEEE Computer Society article)
Oct 24, 1996   that 1000 Tera is 1 Peta!

Change 14.254  TYPE72GO variables R723CSRS, R723CSPA, R723CSPE are still
VMAC7072       wrong!  Their informats are &RB.8.6, &RB.8., and &RB.8.
Oct 24, 1996   respectively.
   Thanks to Bruce Widlund, Merrill Consultants, USA.

Change 14.253  The JCL example showed //SYSID instead of //SYSIN.
ANALDB2C       While minor, its still worth fixing, since a non-expert
Oct 23, 1996   with JCL might not recognize the misspelling.
   Thanks to David Middlebrook, National Exchange of Police, AUSTRALIA.

Change 14.252  An invalid RACF segment for RACFTYPE=03 caused STOPOVER.
VMAC80A        Although IBM documents a single length of 1 byte, the
Oct 23, 1996   segment had 151 bytes!  To protect, insert:
                  SKIP=RACFDLN-1;
                  IF SKIP GT 0 THEN INPUT +SKIP @;
               just before the END; that ends the WHEN (3) DO; clause.
   Thanks to Silva Viviani. Fondo Commune D.C. Rurali Trentine, ITALY.

Change 14.251  INVALID SECOND ARGUMENT TO FUNCTION SUBSTR in DB2 102 due
VMAC102        to incorrect length statement for variable COLLECT, which
Oct 23, 1996   must be $28 instead of $26.
   Thanks to Dr. Alexander Raeder, Karstadt, AG, Germany
   Thanks to Hartmut Beckmann, Karstadt, AG, Germany

Change 14.250  Cosmetic.  TMON for CICS variables CPUTCBTM, UNKNCPTM and
TYPETMON       CPUTM were not formatted as TIME12.2, but now are.
Oct 19, 1996
   Thanks to Chris Weston, SAS Institute Cary, USA.

Change 14.249  Support for HP's Measureware for AIX has been written and
IMACMWAI       tested.  The same datasets that were created by HP's PCS
TYPEMWAI       for AIX are created, although some variables were deleted
VMACMWAI       and some new variables are created.
Oct 17, 1996
   Thanks to Lorenzo Wright, NCCI, USA.

Change 14.248  Support for Applied Software's SUPER IND$FILE product's
VMACSUIN       SMF record, which creates dataset SUPERIND with stats on
Oct 17, 1996   file trasnfer with that utility program under TSO.
   Thanks to George Briscoe, MBNA, USA.

Change 14.247  Support for Oracle 7.0.16 and 7.2.3 is in MXG 14.02 and
VMACORAC       later, as there was no change in the format of the SMF
Oct 17, 1996   record created by those releases.
   Thanks to Paul Hassett, U.S. Department of Transporation, USA.

Change 14.246  AS/400 variable GDES4 (storage size) was increased by IBM
VMACQAPM       causing truncation of the size of installed storage.  The
Oct 16, 1996   &NUM.7. after GDES4 was changed to &NUM.10. to correct.
   Thanks to Ed Shigo, Nabisco, USA.

Change 14.245  Testing with intentionally duplicated SMF data uncovered
BUILDPDB       cases where the PROC SORT NODUP did not remove duplicate
BUILDPD3       observations, because the BY list was underspecified.
BUILD002       For TYPE30MU, add PRODOWNR PRODNAME PRODQUAL PRODVERS to
BUILD003       its BY list.
MONTHBLD       For TYPE74CA, add DEVN SMFTIME to its BY list.
WEEKBLD        For TYPE74CF, add R744FNAM SMFTIME to its BY list.
Oct 16, 1996   For TYPE74ST, add R744SNAM SMFTIME to its BY list.
               For TYPE77, add QNAME RNAME SMFTIME to its BY list.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.244  Change 12.179 was not applied to VMACIMSA, used by the
VMACIMSA       ASMIMSLG processing, causing SAP variables SAPTIMTR,
Oct 15, 1996   SAPCPUT, and SAPELTI to be incorrect.
   Thanks to Markus Joos, SAS Germany, GERMANY.

Change 14.243  Support for RACF 2.1 IRRDBU00 unload utility has now been
VMACRACF       verified for most records.  The only change was that the
Oct 11, 1996   variable TIMEOUT in RACF0230 should be INPUT as TIME5.,
               instead of the previous ZDB5. input.
   Thanks to Peter Cannone, The Great Atlantic & Pacific Tea Co., USA.

Change 14.242  A truncated catalog cell=04 record caused INPUT STATEMENT
VMAC6156       EXCEEDED RECORD LENGTH.  The cell has VOLHYKLN=2, but
Oct 10, 1996   that is at the end of the record, and there was no high
               key following the key length.  Protection added so that
               MXG checks to see there is still data in the record prior
               to INPUT of VOLHIKY.
   Thanks to Raff X. Rushton, Great Western, USA.

Change 14.241  Support for RACFEVNT=27 (GENERAL AUDIT) creates the new
EXTY8027       TYPE8027 dataset. RACFTYPE=36 is now decoded in SETROPS
IMAC80A        (RACFEVNT=24) records.
VMAC80A
Oct 10, 1996
   Thanks to Robert Miles Standish, Dean Witter Trust Company, USA.

Change 14.240  IPAC SMF records cause INVALID ARGUMENT TO FUNCTION MDY
VMACIPAC       (and print hex dump with "RDS " in bytes 15-18) because
Oct  9, 1996   the SDATE and EDATE are julian dates, not MMDDYY as the
               vendor documented.
   Thanks to Shaheen Pervais, Trans Union, USA.

Change 14.239  The TAILORNG= JCL parameter added by Change 14.140 is bad
MXGSAS         and in the sample MXGSAS JCL Procedureit must be:
Oct  7, 1996     TAILORNG='*.NULLPDS,VOL=REF=*.NULLPDS',
               (like the LOAD= and SASAUTO= symbolic parameters).
               With the delivered TAILORNG=NULLFILE, a JCL error occurs
               (because NULLFILE is a sequential file, not a PDS).
   Thanks to Mr. Harnischmacher, TEZ Test und Entwicklungszentrum, GER.

Change 14.238  Archaic IDMS 10.2.1 SMF records caused STOPOVER because
VMACIDMS       the subtype 2 record is 4 bytes shorter, and the subtype
Oct  1, 1996   6 is one byte shorter than the code expected.
Oct  8, 1996   At the end of the INPUT for PMHRTYPE=2, change the +12 to
Oct 16, 1996   +8, and change SKIP=SKIP-108; to SKIP=SKIP-104;
               I suspect a CA PTF changed the record, because I am sure
               this code ran against 10.2.1 records in past years, but
               the fix protects both 10.2.1 and 12.01 records.
              -In the PMHRTYPE=6 code, replace the line with  +1
               after the line inputting JRLFILE with:
                 @; IF SMFHVER GE '1201' THEN DO;
                      INPUT +1 @;  SKIP=SKIP-1;
                 END;
               and change SKIP=SKIP-105; to SKIP=SKIP-104;
              -In the PMHRTYPE=18 code, change code now reading:
                        DBKPGGRP    &PIB.2.
                                        +2
                        DBKKYFMT    &PIB.4.
                        DBKLTYPE    &PIB.4.
                  @;
                  SKIP=SKIP-14;
                  IF DBKOWNER='80'X THEN DO;
               to instead look like this:
                        DBKPGGRP    &PIB.2.
                  @;
                  SKIP=SKIP-4;
                  IF SMFHVER GE '1201' THEN DO;
                    INPUT               +2
                    @;
                    SKIP=SKIP-2;
                  END;
                  INPUT DBKKYFMT    &PIB.4.
                        DBKLTYPE    &PIB.4.
                  @;
                  SKIP=SKIP-8;
                  IF DBKOWNER='80'X THEN DO;
   Thanks to Paul Hasset, U.S. Department of Transportation, USA.

Change 14.237  Candle's EPILOG for MVS records with SM180SUB='RCCH' are
VMACEPMV       not the expected record and are deleted.  The test for
Sep 30, 1996   'RSRC' was expanded to OR SM180SUB='RCCH' THEN DELETE;
               Also, the following INPUT statement is now conditionally
               executed as IF LENGTH-COL+1 GE 152 THEN INPUT ....
   Thanks to Dan Almagro, Automobile Club of Southern California, USA.

Change 14.236  Support for new RMF type 74 subtype 100 record, called
EXTY74LK       the IRLM 'long lock' package, added by APAR OW20579 and
IMAC74         others, that measures held time for IRLM Structure locks
VMAC74         in the Coupling Facility.  This APAR has been in FIXTEST
Sep 28, 1996   for quite a while but has been distributed to some
               customers, and there is an RMF User report that displays
               locks held/waited.  New dataset TYPE74LK contains one
               observation for each IRLM lock structure name.  This code
               has not been data-tested as yet.

Change 14.235  Support for several new fields (mostly SMS-related, like
VMXGHSM        Data, Storage, and Management Classes) added to the HSM
Sep 28, 1996   MCC record.  Additionally the SC,DC, and MC class names
Oct  9, 1996   in both MCC and MCD records are now input only if their
               length is non-zero; some zero-length records had hex
               zeroes instead of blanks for these name fields. Also, the
               INFILE statements needed LENGTH=LENGTH COL=COL added.
   Thanks to Terry Duchow, U.S. Postal Service, USA.

Change 14.234  PRO/SMS support in Change 14.207 was incorrect; test data
EXPROSRE       for subtype 1 has now been verified, but subtype 2 record
IMACPROS       documentation disagrees with actual content of test data.
VMACPROS       There are now two datasets created:
Sep 28, 1996       Dataset    Subtype     Description
Oct 16, 1996       PROSMS       1         Message
Nov  1, 1996       PRORECOV     2         Recovery Performed
               Both datasets have been tested with actual data.
   Thanks to Warren Hayward, TJX Companies, USA.

Change 14.233  TYPE89 usage data variable MULCURD, for Batch Pipes, was
VMAC89         incorrectly input.  The input format of MULCURD is set by
Sep 26, 1996   the value of MULTCURT, but MXG had reversed the INPUT for
               MULTCURT 2 and 3.  The correct statements should be:
                 IF      MULCURT EQ 1 THEN INPUT MULCURD  &RB.8.2 @;
                 ELSE IF MULCURT EQ 2 THEN INPUT MULCURD &PIB.8.  @;
                 ELSE IF MULCURT EQ 3 THEN INPUT MULCURD  &RB.8.  @;
               The choice of format for MULCURD is set by the product's
               FUNCTIONDATA request in its macro IFAUSAGE; previous data
               records contained MULCURT=1, which correctly read MULCURD
               but BatchPipes sets MULCURT=3, exposing the error.
   Thanks to Michael Oujesky, MBNA, USA.

Change 14.232  HSM warning "FSRTVOLS CAN CONTAIN ONLY 30 BYTES" is writ
VMACHSM        in error.  The two lines preceding the PUT of that
Sep 25, 1996   message, now reading   IF LENGTH(FSRTVOLS) GT 23 THEN ...
               must be changed to:    IF LENGTH(FSRTVOLS) GT 30 THEN ...
   Thanks to Robert Miles Standish, Dean Witter Trust Company, USA.

Change 14.231  Change 14.167 was implemented and printed incorrectly.
DIFFDB2        The four lines after that change that start with:
Sep 25, 1996     IF QWHSISEQ GE 1 AND PREVSSID .... must be changed to:
                 IF SEQCHECK GE 1 AND PREVSSID ....
               One source of the skipped sequence numbers (QWHSISEQ) is
               CA's INSIGHT monitor for DB2.  When INSIGHT is started at
               DB2 startup, several ISEQs are skipped, and several ISEQs
               are skipped at shutdown.  CA is investigating.
   Thanks to Tom Parker, Hogan Systems, USA.

Change 14.230  Huron dataset HURN47 had zero observations if there were
VMACHURN       no external resource segments at the end of the record.
Sep 23, 1996   After the END; statement that ends DO I=1 TO HU47XSNO;
               insert:
                 IF HU47XSNO EQ 0 THEN DO;
                   %%INCLUDE SOURCLIB(EXHRN47);
                 END;
   Thanks to Mark Totleben, Farm Bureau Insurance, USA.

Change 14.229 Support for Interlink's Harbor 4.1 SMF record creates
EXHARARC      nine datasets for that backup product:
EXHARBKP       Subtype  Dataset    Description
EXHARCON         01     HARBBKUP   Harbor Backup Request Info
EXHARDIS         02     HARBREST   Harbor Restore Request Info
EXHARFIL         03     HARBARCH   Harbor Archive Request Info
EXHARMIG         04     HARBRETR   Harbor Retrieve Request Info
EXHARREC         05     HARBDIST   Harbor Distribution Info
EXHARRES         06     HARBMIGR   Harbor Migration Info
EXHARRET         07     HARBRECA   Harbor Recall Info
FORMATS          08     HARBCONS   Harbor Consolidation Info
IMACHARB         09     HARBFILE   Harbor File Pickup st
TYPEHARB      The first two subtypes have been validated with test data.
VMACHARB
   Thanks to Paul Hassett, U.S. Department of Transportation, USA.

Change 14.228 Support for EOS (Change 14.143) was not correct; the Audit
FORMATS       records were INCOMPATIBLY changed, causing MXG to trash
VMACWSF       the WSFAUDIT dataset (but there was no execution error,
Sep 22, 1996  and the other datasets were validly created).  There were
              additional compatible changes made to EOS (aka WSF2):
              New values for format MGWSFAC
              New Audit variables in dataset WSFAUDIT:
               AUDCFO  - Form Used to Create
               AUDCUSR - Report Owned By
               AUDCTIM - Report Capture Datetimestamp.
              New event variables in dataset WSFEVTSC:
               ACCIPAD - IP address
               ACCLUTY2 - LU Type (VTAM or TCP/IP)
               ACCRESP5 - Responses LE 30 seconds
               ACCRESP6 - Responses LE  2 minutes
               ACCRESP7 - Responses LE  5 minutes
               ACCRESP8 - Responses GT  5 minutes
   Thanks to Judy Arroyo, Summit Bank, USA.

Change 14.227  Variable R742PSTA in dataset TYPE74PA is now decoded to
FORMATS        describe path status, based on APAR OW22735, with new MXG
VMAC74         format $MG074ST.
Sep 20, 1996
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 14.226  DB2 Group Buffer Pool dataset DB2GBPST repeats the first
VMACDB2        buffer pool's data because the pointer was not moved.
Sep 18, 1996   Insert  @OFFQBGL @; before the  DO _I_=1 TO NRQBGL;
               statement, and then remove the @OFFQBGL from the INPUT
               statement after that DO statement.
   Thanks to Bertolotti Emmanno, Banca Commerciale Italiano, ITALY
   Thanks to Burani Daniela, Banca Commerciale Italiano, ITALY

Change 14.225  CICS/ESA 3.3, with optional ONC RPC feature creates a 5th
VMAC110        TCB in SMF 110 Statistics STID=57 records that was not
Sep 18, 1996   expected in MXG, causing MXG to print "UNEXPECTED (NEW)
Oct  9, 1996   DATA WAS FOUND" message on the SAS log.  The APAR that
               made the change was PN63215, closed in 1994, so it seems
               that few sites have the ONC RPC feature on CICS 3.3.
               MXG supports the 5th TCB for CICS 4.1 (and the 6th for
               CICS 5.1), so only the 3.3 logic had to be corrected.
               Oct 9: DSGNTCB is supposed to be the number of TCBs, but
               in some CICS 3.3 records, it is zero, so the logic was
               revised.
   Thanks to Siegfried Trantes, IDG, GERMANY.

Change 14.224  Labels for CONTROL-T variables DENSITY, RECFM, TRTCH, and
VMACCTLT       VDENSITY were corrected.
Sep 16, 1996
   Thanks to Paul Hassett, U.S. Department of Transportation, USA.

Change 14.223  The INFILE statements for TANDCTLR and TANDLINE must be
VMACTAND       LRECL=86 and LRECL=128 respectively.  While comments had
Sep 12, 1996   correct values, both INFILE statements had LRECL=342.
   Thanks to Alan Phelan, Allied Irish Bank, IRELAND.

Change 14.222  ASM fails; last minute changes were not tested.  Find
ASMDALO        Find 'R12,R11' and remove the blank after MXGDALO
Sep 12, 1996   Exclude ALL, Find 71,71 'X' ALL  and in those four lines
               move the X in column 71 to column 72 (so the Assembler
               will recognize them as continuations).
   Thanks to Chuck Hopf, MBNA, USA.

====Changes thru 14.221 were included in MXG 14.07 dated Sep 11, 1996===

Change 14.221  Support for IMS 5.1 Fast Path records using TYPEIMS7 to
VMACIMS        read IMSLOG was added.  The ASMIMSLG processing member
Sep 10, 1996   VMACIMSA already supported the Fast Path changes; this is
               the same code, moved into the VMAC used by TYPEIMS7.
   Thanks to MH, Allied Irish Bank, IRELAND.

Change 14.220  CICS Exclude logic for CICS 4.1 had a missing semicolon
IMACEXCL       (the line BASETIME=...) and the IF SMFPSRVR GE 41.1 THEN
Sep 10, 1996   must be IF 33.0 LT SMFPSRVR LE 41.0 THEN ...
   Thanks to Pat Quinnette, Principal Mutual Life Insurance, USA.

Change 14.218  Support for SNMP IFENTRY tables from TRENDSNMP product
EXTRSIFE       from Desktalk, which polls SNMP agents and builds SYBASE
IMACTRSN       tables, either under UNIX or WINDOWS-NT.  MXG can execute
TYPETRSN       either on an ASCII platform that connects to the SYBASE
VMACTRSN       system and uses PROC ACCESS to directly convert the data
Sep 10, 1996   into SAS datasets, or instead, you can use the SYBASE BCP
               utility to create an ASCII flat file that MXG can read on
               the PC/Workstation, or that ASCII file can be shipped to
               MVS and processed there.  Macro _SIFEN uses PROC ACCESS,
               Macro _TIFEN uses INFILE/INPUT to read BCP data.  This is
               the preliminary implementation and has been tested, and
               will read either the Rate table or the History Table.
               This code does no date/time selection; you get all of the
               data in the SYBASE table, so you will need to select the
               desired data.  Future enhancements to provide selection
               of "just yesterday's" data are planned, as are support
               for additional SNMP tables and RMON data.  Benchmarks on
               my 64MB 166MHz Pentium with Windows NT 3.51 reading 20MB
               SYBASE table that contained 6 days hourly data from 1000
               devices (66,816 rows):
                  PROC ACCESS convert SYBASE to SAS:   265 seconds
                  or
                  BCP dump SYBASE to ASCII file        471 seconds
                  INFILE/INPUT read BCP dump            21 seconds
   Thanks to Bernie Davidovich, Predictive Systems, USA.

Change 14.217  DB2 4.1 variables QTGA and QBGA were trashed, because the
VMACDB2        offsets were input from the wrong location.  After test
Sep 10, 1996    IF QWHSNSDA GE 11 THEN ... the INPUTs with @81,85,87,89,
               93, and 95, should be 97,101,103,105,109,111.
   Thanks to Bertolotti Emmanno, Banca Commerciale Italiano, ITALY
   Thanks to Burani Daniela, Banca Commerciale Italiano, ITALY

Change 14.216  Three new utilities are now available for Beta testing:
UTILCONT         UTILCONT produces a PROC CONTENTS-like output with the
UTILFATD                  size (MegaBytes and observations) of each data
UTILSIZE                  set in the library pointed to by the PDB DDna.
Sep 10, 1996     UTILFATD reads the directory of all of your FAT disks
                          connected to this PC and calculates how much
                          space the data would take on hard disks of
                          varying cluster size (512 to 32K).
                 UTILSIZE reads an MVS PDS to calculate how much space
                          is needed to put that PDB library on a FAT
                          disk on your PC for all valid Cluster Sizes.
                          Large Cluster sizes may waste large amounts of
                          space when you have many little files.  This
                          is useful to predict how much free space you
                          will need on your PC to store the MXG source
                          library.

   Thanks to Chuck Hopf, MBNA, USA.

Change 14.215  This is the Beta Version of the new MXG DASD Allocation
ASMDALO        Monitor, which creates an SMF record for each of these
EXDALOAL       DADSM events:
EXDALOEX            DALOALOC   ALLOCATE
EXDALOPA            DALOSCRA   SCRATCH
EXDALOPP            DALORENA   RENAME
EXDALORE            DALOEXTN   EXTEND
EXDALOSC            DALOPART   PARTIAL RELEASE
EXDALOVS            DALOPPRL   PARTREL PARTIAL RELEASE
IMACDALO            DALOVSAM   VSAM EXTEND WITHOUT A DEB
TYPEDALO       and MXGDALO can be enabled for selected devices and/or
VMACDALO       selected datasets.  This monitor can be used to identify
Sep  9, 1996   jobs that are living on DASD extents (so you can increase
               their primary allocation to avoid exposure to B37/E37
               ABENDS.  This monitor can be used to track (and charge?)
               usage of temporary DASD space.  Other uses are expected.
               Read the comments in ASMDALO before you proceed.

Change 14.214  Variable SERVUNIT (total service units) was stored in 4
BUILDPDB       bytes, whick keeps only 7 significant digits;  a large
BUILDPD3       value in SERVUNIT (714 million units) was truncated by
BUIL3005       1000 units because 5 bytes storage is required to exactly
BUILD005       represent a numeric field that was input from four binary
VMAC30         bytes.  SERVUNIT is now stored in 5 bytes.  But the real
VMAC434        error here was the site's MSOCOEFF=3.0, way too large.
VMACTSOM       An MSOCOEFF=.0001 is MXG's recommendation, so that the
Sep 10, 1996   MSO units do NOT contribute to SERVUNIT - only CPU time
Mar 10, 2003   and I/O operations are real computer work - and then the
               value of SERVUNIT can be used to measure capacity.  The
               CPU+I/O service was 31 million units, showing the large
               MSOCOEFF made the SERVUNIT field meaningless!
               Mar 10, 2003:  Original text has .000001 but .0001 is the
               minimum value, other than zero.
               Feb 21, 2005:  See MXG Technical Note in Newsletter 47;
               IBM Discovered that the smallest value is actually .0122.
               Any value less than that value will be reported in the
               MSOCOEFF in TYPE72GO, but only 0.0122 will be used!

Change 14.213  Support for NETVIEW 3.1 compatible changes to type 37
VMAC37         record added two fields, BRFEDCP1 and BRFPCCP1 to the
Sep  8, 1996   generic event report.  While these fields were added
               compatibly, MXG Version 13.13 failed with NETVIEW 3.1
               because of MXG logic error that was fixed by MXG 14.090.
   Thanks to Herb G. Strozinsky, Burlington Northern Sante Fe, USA.

Change 14.212  CICS/ESA 4.1+ GMT offset MCTMNTAD is not exact hours from
VMAC110        GMT (examples were off by 3.15, 0.9, and 0.6 seconds).
Sep  6, 1996   IBM lists APARs OW02410,OW10435,OW14651,OW14350,OW15036
               and (most likely) OW15111 as the corrections, but the IBM
               error is now circumvented by using the equation:
                   MCTMNTAD=3600*FLOOR((MCTMNTAD+900)/3600);
               to exactly set the GMT offset to the nearest hour.
               With CICS 4.1 and later, MXG uses MCTMNTAD to convert the
               CICSTRAN variables STRTTIME and ENDTIME to local time,
               so the overall impact was minimal, unless you tried to
               compare CICS transaction start/stop times with TPX logon
               times; the CICS error had transactions starting before
               the terminal had logged on to CICS!
   Thanks to Pat Quinnette, Principal Mutual Life Insurance, USA.
   Thanks to Wolfgang Vierling, Vereinte Versicherungen, GERMANY.

Change 14.211  CICS/ESA 4.1+ does not create obs in STID=4 statistics
CICINTRV       dataset CICTSR, causing variable A02TTA in CICEODRV and
Sep  6, 1996   CICINTRV to be missing.  However, the transaction counts
               are in variable XMRAC in CICXMR, which was previously not
               summarized in CICINTRV, but with this change now is, and
               if A02TTA is missing, the value of XMRAC will be stored
               into A02TTA so your old reports will be protected.  Both
               A02TTA and XMRAC are kept in CICINTRV/CICEODRV.
   Thanks to Tracy Blackstone, Kaiser Permanente, USA.

Change 14.210  Datasets PDB.RMFINTRV, PDB.JOBS, PDB.STEPS, PDB.PRINT
BUILDPDB       PDB.SMFINTRV, PDB.SPUNJOBS and (JES2 only) PDB.NJEPURGE
BUILDPD3       are built in sort order, but because they are built in a
BUILD002       DATA step (rather than directly by PROC SORT, as are most
BUILD003       other PDB datasets), SAS does not know they are sorted.
BUILD004       By specifying the dataset option SORTEDBY= on the DATA
BUILD005       statement, SAS now knows the sort order, so that it can
BUIL3005       bypass unnecessary sorting.  In making this change, I
IMACPDB        also finally removed the archaic _PROTECT token from all
RMFINTRV       of the BUILDPDB members; defined in IMACPDB, PROTECT was
SPUNJOBS       a SAS version 5 facility that is no longer needed, (see
Sep  5, 1996   comments in member IMACPDB), that defaults to null with
               SAS version 6, and to have preserved it and to have added
               SORTEDBY= would have required an INCOMPATIBLE change in
               member IMACPDB.  While the references to _PROTECT in the
               BUILxxxx members was removed, the macro itself is still
               defined in member IMACPDB to avoid a different
               INCOMPATIBILITY (in case you have actually modified
               BUILDPDB itself), but the comments in IMACPDB were
               revised to clarify its non-use!
   Thanks to Carl Sommer, SAS Institute Cary, USA.

====Changes thru 14.209 were printed in MXG Newsletter THIRTY==========
====and were in the early MXG 14.07 tapes dates September 10, 1996=====

Change 14.209  Support for CICS/ESA 5.1.0, now known as CICS Transaction
EXCICLGR       Server for OS/390 Release 1, which INCOMPATIBLY inserted
EXCICLGS       19 new fields in the CICSTRAN Transaction Accounting data
EXCICNQG       (had the fields been appended instead of inserted, this
EXCICRMG       would be compatible!), added 2 new fields to CICSEXCE,
EXCICTQR       added new fields in 8 existing Statistic Datasets, and
FORMATS        five new Statistics datasets are created from new STIDs.
IMACCICS       STATUS: IBM documentation of STID=82 (MNR) record is
IMACEXCL       wrong; that STID is skipped without message in this code.
VMAC110        This version has been tested with real data records!
Sep 10, 1996   This change also supports the YYYY versus YY value in the
               Statistics subtype's header, and the expanded TRANTYPE
               (two bytes, more meanings decoded).
               New variables added to CICSTRAN (transaction) dataset:
                 FCTYNAME='TRANSACTION*FACILITY*NAME'
                 LOGWRTCT='CICS*LOG STREAM*WRITE REQUESTS'
                 PERRECNT='PER RECORDS*WRITTEN*FOR TASK'
                 RMUOWID ='RECOVERY*UNIT OF WORK*ID'
                 RPTCLASS='REPORT*CLASS*NAME'
                 SC24FSHR='SHARED BYTES*FREEMAINED*BELOW 16MB'
                 SC24GSHR='SHARED BYTES*GETMAINED*BELOW 16MB'
                 SC24SGCT='SHARED*GETMAINS*BELOW 16MB'
                 SC31FSHR='SHARED BYTES*FREEMAINED*ABOVE 16MB'
                 SC31GSHR='SHARED BYTES*GETMAINED*ABOVE 16MB'
                 SC31SGCT='SHARED*GETMAINS*ABOVE 16MB'
                 SRVCLASS='SERVICE*CLASS*NAME'
                 TERMCNNM='TERMINAL*SESSION*CONNECTION*NAME'
                 TERMINFO='TERMINAL*OR SESSION*INFO FLAGS'
                 TRANFLAG='TRANSACTION*FLAGS'
                 WTRLIOCM='RLS*IO WAITS'
                 WTRLIOTM='RLS*IO WAIT*DURATION'
                 WTSYIOCN='SYNCPOINT*IO WAITS'
                 WTSYIOTM='SYNCPOINT*IO WAIT*DURATION'
               New variables added to CICSEXCE (exception) dataset:
                 EXCMNTCN='TRANSACTION*CLASS*NAME'
                 EXCMNSRV='SERVICE*CLASS*NAME'
                 EXCMNRPT='REPORT*CLASS*NAME'
               New variables added to CICDS (Dispatcher, by TCB Stats)
               for ONC/RPC Mode (5th) TCB and File Owing Mode (6th) TCB
               (STID=56):
                 DSnACT   DSnPERCT DSnSCT   DSnSTART DSnSWT   DSnSYSW
                 DSnTCBF1 DSnTCBF2 DSnTCBF3 DSnTCBF4 DSnTCBNM DSnTCT
                 DSnTDT   DSnTWT DSnLSTRT
               New variables added to CICXMR (Transaction Manager):
               (STID=11):
                 XMRAMISM='ACTION*MISMATCHES'
                 XMRFAIT ='FORCED*ACTION*INDOUBT*TIMEOUT'
                 XMRFANW ='FORCED*ACTION*NO WAIT ABILITY'
                 XMRFAOP ='FORCED*ACTION*OPERATOR'
                 XMRFAOT ='FORCED*ACTION*OTHER'
                 XMRFATXN='FORCED*ACTION*TRANDEF'
                 XMRIACTN='INDOUBT*ACTION*COMMIT OR*BACKOUT?'
                 XMRITOV ='INDOUBT*TIMEOUT*VALUE*MINUTES'
                 XMRIWAIT='INDOUBT*WAITS'
                 XMRIWTOP='INDOUBT*WAIT*OPTION?'
               New variables added to CICCONSR (ISC/IRC stats):
               (STID=52):
                 A14ACCM ='ACCESS*METHOD'
                 A14AICT ='LOCAL*CONNECTION*CREATE*TIME'
                 A14AIDT ='LOCAL*CONNECTION*DELETE*TIME'
                 A14EFLGS='PROTOCOL'
                 A14EPRMN='RECEIVE*SESSION*COUNT'
                 A14ESECN='SEND*SESSION*COUNT'
                 A14ESID ='CONNECTION*NETNAME'
                 A14E1RY ='PRIMARIES*CURRENTLY*USED'
                 A14E2RY ='SECONDARIES*CURRENTLY*USED'
                 A14GACT ='GMT*CONNECTION*CREATE*TIME'
                 A14GADT ='GMT*CONNECTION*DELETE*TIME'
               New variables added to CICCONMR (ISC/IRC stats)
               (STID=76):
                 A20ECONL='CURRENT*CNOS*CONTENTION*LOSERS'
                 A20ECONW='CURRENT*CNOS*CONTENTION*WINNERS'
                 A20ELMAX='MAX*SESSION*COUNT'
                 A20EMAXS='CURRENT*MAX*SESSION*COUNT'
                 A20EMCON='MAX*CONTENTION*WINNERS*ACCEPTABLE'
                 A20E1RY ='PRIMARIES*CURRENTLY*USED'
                 A20E2RY ='SECONDARIES*CURRENTLY*USED'
               New variables added to CICFCR (File Control Statistics)
               (STID=67):
                 A17DSBRU='BROWSE*FOR*UPDATES'
                 A17RLSWT='RLS*REQUEST*WAIT*TIMEOUTS'
               New variables added to CICTCR (Term Control Statistics)
               (STID=34):
                 A06GOFTM='AUTOINSTALL*LOGOFF*GMT*TIME'
                 A06GONTM='AUTOINSTALL*LOGON*GMT*TIME'
                 A06OFFTM='AUTOINSTALL*LOGOFF*LOCAL*TIME'
                 A06ONTM ='AUTOINSTALL*LOGON*LOCAL*TIME'
                 A06SYSID='OWNING*SYSID OF*TERMINAL*OR SESSION'
               New variables added to CICDQG (TDQUQUE Global Stats)
               (STID=45):
                 A11ACNAL='CURRENT*CONCURRENT*BUFFER*ACCESS'
                 A11ACNWT='CURRENT*BUFFER*WAITS'
                 A11ACNIU='CURRENT*BUFFERS*CONTAINING*DATA'
                 A11SCNAL='CURRENT*CONCURRENT*STRING*ACCESS'
                 A11SCNWT='CURRENT*STRING*WAITS'
                 A11ACTCI='CONTROL*INTERVALS*IN*USE'
               New variables added to CICTSQ (TSQUQUE Global Stats)
               (STID=48):
                 A12SHPDF='SHARED*POOLS*DEFINED'
                 A12SHPCN='SHARED*POOLS*CONNECTED TO'
                 A12SHRDS='SHARED*READ*REQUESTS'
                 A12SHWTS='SHARED*WRITE*REQUESTS'
               New dataset CICRMG (Recovery Manger Global) (STID=99):
                 RMGCSHIN='CURRENT UOWS*SHUNTED FOR*INDOUBT'
                 RMGCSHRO='CURRENT UOWS*SHUNTED FOR*RO COMMIT'
                 RMGCSHTI='CURRENT DURATION*SHUNTED FOR*INDOUBT'
                 RMGCSHTR='CURRENT DURATION*SHUNTED FOR*RO COMMIT'
                 RMGIAFNW='TOTAL FORCED*INDOUBT*ACTIONS*NOWAIT'
                 RMGIAFOP='TOTAL FORCED*INDOUBT*ACTIONS*OPERATOR'
                 RMGIAFOT='TOTAL FORCED*INDOUBT*ACTIONS*OTHER'
                 RMGIAFTI='TOTAL FORCED*INDOUBT*ACTIONS*TIMEOUT'
                 RMGIAFTR='TOTAL FORCED*INDOUBT*ACTIONS*TRANDEF'
                 RMGIAMIS='TOTAL*INDOUBT*ACTION*MISMATCHES'
                 RMGNWMRO='TOTAL*FORCED*NO WAITING*IN MRO'
                 RMGNWOTH='TOTAL*FORCED*NO WAITING*IN OTHER'
                 RMGNWRMI='TOTAL*FORCED*NO WAITING*IN RMI'
                 RMGNWTD ='TOTAL*FORCED*NO WAITING*IN TD'
                 RMGNW61 ='TOTAL*FORCED*NO WAITING*IN LU61'
                 RMGRESYN='RESYNCH*RONISATIONS'
                 RMGSYBWD='SYNCPOINTS*BACKWARD'
                 RMGSYFWD='SYNCPOINTS*FORWARD'
                 RMGTSHIN='TOTAL UOWS*SHUNTED FOR*INDOUBT'
                 RMGTSHRO='TOTAL UOWS*SHUNTED FOR*RO COMMIT FAIL'
                 RMGTSHTI='TOTAL DURATION*SHUNTED FOR*INDOUBT'
                 RMGTSHTR='TOT DURATM*SHUNTED FOR*RO COMMIT FAIL'
               New dataset CICLGR (Log Manager Journal Stat) (STID=93)
                 LGRBFLSH='BUFFER*FLUSH*REQUESTS'
                 LGRBYTES='BYTES*WRITTEN'
                 LGRJNLNM='JOURNAL*NAME'
                 LGRJTYPE='JOURNAL*TYPE'
                 LGRSTREM='LOG*STREAM*NAME'
                 LGRWRITS='JOURNAL*WRITES'
               New dataset CICNQG (Enque Manager Global) (STID=96)
                 NQGCNQRT='CURR DUR*ENQUEUES*RETAINED'
                 NQGCNQSR='CURRENT*ENQUEUES*RETAINED'
                 NQGCNQSW='CURRENT*ENQUEUES*WAITING'
                 NQGCNQWT='CURR DUR*ENQUEUES*WAITING TIME'
                 NQGPOOL ='ENQ*POOL*ID'
                 NQGTIRJB='IMMEDIATE*REJECTED*ENQBUSY'
                 NQGTIRJR='IMMEDIATE*REJECTED*ENQ RETAINED'
                 NQGTNQRT='TOT DUR*ENQUEUES*RETAINED*WAITED'
                 NQGTNQSI='TOTAL*ENQUEUES*ISSUED'
                 NQGTNQSR='TOTAL*ENQUEUES*THAT WERE*RETAINED'
                 NQGTNQSW='TOTAL*ENQUEUES*WAITED'
                 NQGTNQWT='TOT DUR*ENQUEUES*WAITED'
                 NQGTWPOP='WAITING*ENQS*PURGED BY*OPERATOR'
                 NQGTWPTO='WAITING*ENQS*PURGED BY*TIMEOUT'
                 NQGTWRJR='WAITING*ENQS*REJECTED*RETAINED'
               New dataset CICLGS (Log Manager Logstream) (STID=94)
                 LGSBRWRD='LOG*BROWSE*READS'
                 LGSBRWST='LOG*BROWSE*STARTS'
                 LGSBUFAP='BUFFER*APPEND*REQUESTS'
                 LGSBUFWT='WAITS*DUE TO*BUFFER*FULL'
                 LGSBYTES='BYTES*WRITTEN'
                 LGSCUFWT='CURRENT*FORCE*WAITERS'
                 LGSDELET='LOG*DELETES'
                 LGSPKFWT='PEAK*FORCE*WAITERS'
                 LGSRTRYE='RETRYABLE*ERRORS'
                 LGSSTREM='LOG*STREAM*NAME'
                 LGSTFCWT='TOTAL*FORCE*WAITS'
                 LGSWRITS='LOG*WRITES'

Change 14.208  DB2 datasets DB2GBPST and DB2GBPAT contained repeated obs
VMACDB2        for Global Buffer Pool zero, with no others output; the
Aug 29, 1996   offset was not incremented.  After the %INCLUDE of member
               EXDB2PST, insert : OFFQBGL=OFFQBGL+LENQBGL;  After the
               %INCLUDE of EXDB2PAT insert OFFQBGB=OFFQBGB+LENQBGB;
   Thanks to Bertolotti Emmanno, Banca Commerciale Italiano, ITALY
   Thanks to Burani Daniela, Banca Commerciale Italiano, ITALY

Change 14.207  Support for Boole & Babbage's PRO/SMS replacement for
EXPROSMS       STOPX37 SMF record, a complete rewrite but with almost
IMACPROS       all of the same variables in dataset TYPEPROS instead
TYPEPROS       of TYPEX37.
VMACPROS
Aug 27, 1996
   Thanks to Katrina Le, First Virginia Services, Inc., USA.

Change 14.206  Logic for IFCID=231 was wrong.  Replace the statements
VMAC102         LENTRY=(QW0231NM-4)/QW0231RN; DO _I_=1 TO QW0231RN;
Aug 27, 1996   with LENTRY=52;NENTRY=(QW0231NM-4)/LENTRY;DO...TO NENTRY;
               Caused INVALID DATA messages, and trashed T102S231 data.
   Thanks to Ted Blank, IBM, USA.

Change 14.205  The RMF report REPORT=CHAN was always a summary report;
ANALRMFR       with this change, a detail report is produced when an
Aug 27, 1996   INTERVAL= is specified, a summary if not.

Change 14.204  The deaccumulattion of DB2STAT0, DB2STAT1 and creation of
DIFFDB2        DB2STATS was move to the end of member DIFFDB2, and the
Aug 27, 1996   code rearranged so that the %INCLUDE of (EXDB2STS) is the
               last physical statement in that data step.  In this way,
               a sophisticated user can add code in EXDB2STS to do their
               own summary of DB2 data, after all of the DB2 statistics
               datasets have been deaccumulated.  In Pierre's case, he
               wanted to extract fields from DB2STATR and DB2STATS and
               merge with DB2STATS; now he can do that within EXDB2STS.
   Thanks to Pierre Liu, Deere and Company, USA.

Change 14.203  Cosmetic.  Duplicate variables in KEEP= list were removed
several        in members TYPETMON, VMAC110, VMAC7072, VMAC79, VMAC80A
Aug 27, 1996   VMACCOMP, VMACCTLG, VMACCTLT, VMACMWUX, VMACNOAM,
               VMACNSPY, VMACQAPM, and VMACTPX.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

Change 14.202  Cosmetic.  Duplicate labels in VMACACHE were deleted.
VMACACHE
Aug 27, 1996
   Thanks to Wolfgang Vierling, Vereinte Versicherungen, GERMANY.

Change 14.201  Change 14.152 revised IMF processing to allow for use of
IMACCIMS       tape for large IMS files, but the _KIMFTRN reference in
TYPECIMS       TYPECIMS must be deleted, as changes to CIMSTRAN are now
Aug 27, 1996   controlled by _KIMFTRX, not _KIMFTRN, which is no longer
               defined.  Comments in IMACCIMS clarify their usage.
   Thanks to Wolfgang Vierling, Vereinte Versicherungen, GERMANY.

Change 14.200  The label for TYPE71 variables SHPxxxAV='MAXIMUM should
VMAC71         be SHPxxxAV='AVERAGE for these new shared page group
Aug 27, 1996   counters.
   Thanks to Tim Vanderhook, Fidelity Systems, USA.

Change 14.199  READDB2 required a ddname of PDB (and worked fine as long
READDB2        as one was present), because the _LDB2STR macro was not
Aug 26, 1996   redefined in READDB2.  Find the two _LDB2STB macro defs,
               replicate each, and change STB to STR, STATB to STATR.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.198  Variable AVGMEMSZ was not kept in TYPE72GO dataset.  This
VMAC7072       metric, MSOUNITS based, is a poor indicator of memory,
Aug 26, 1996   but it was not my intention to drop it.  It is kept now.
   Thanks to Clark Jennings, Reynolds Metals Company, USA.

Change 14.197  Support for Landmark's TMON/DB2 Version 3 (INCOMPATIBLE).
EXTMDDF        The Statistics Interval data TMDBDA1 has 33 new variables
EXTMDDF        inserted, and 50 new variables were inserted into TMDBDAB
IMACTMDB       dataset.  The Accounting data TMDBDB2 has 36 variables
VMACTMDB       inserted, 9 new variables in TMDBDBB, 1 new in TMDBDBF,
Aug 26, 1996   6 new in TMDBDBK, and a new dataset, TMDBDF, is created
               for the 'DF' record type.  Only the 'DA' and 'DB' records
               have been validated with Version 3 data.  Test data is on
               hand for the 'DC','DD','DF','BB','BH', and 'BI' records,
               but DSECTs were provided only for DA and DB records.  If
               there is a need, additional record types will be decoded.

Change 14.196  MXG 14.05-08 only. INVALID DATA FOR R744FCTM and FCSQ
VMAC74         because those two fields, added by Change 14.165, are not
Aug 23, 1996   always there.  After INPUT of R744FSQU, insert
                 @;  IF SMF744FL GE 100 THEN INPUT
               so they are only INPUT when present in the record!
               See Change 14.273.

Change 14.195  Dataset DB2STATR outputs the first QWHSLOCN segment
VMACDB2        NRQLST times, because the OFFQLST pointer was not
Aug 23, 1996   incremented.  Insert:   OFFQLST=OFFQLST+LENQLST;
               immediately before the line reading:
                END; /* END TRACE SECTION FOR TYPE 100 SUBTYPE 0 */
               But then DIFFDB2 deleted all but the first obs, so the
               number of observations was way off too!  This error also
               caused remote counts to be wrong in ANALDB2R.
   Thanks to Pierre Li, Deere & Company, USA.
   Thanks to Carl Stotmeister, Deere & Company, USA.
   Thanks to Ralph Baechle, Deere & Company, USA.

Change 14.194  MXG 14.05-14.06. DB2STATB dataset will have extra obs
DIFFDB2        that should not have been OUTPUT.  Change 14.167 added
Aug 23, 1996   protection for IBMs skipping QWHSISEQ, but four lines
                 IF SEQCHECK NE 1 ... must be  IF SEQCHECK GE 1 ...
               to protect for change in Buffer Pool ID, which creates a
               negative value in variable SEQCHECK and should not have
               been output.  A more robust algorithm, testing for change
               in QBSTPID was added, and dataset DB2STATR had the same
               exposure and was revised to protect for change in
               QLSTLOCN in the deaccumulation logic.
   Thanks to Tom Parker, Hogan Systems, USA.

Change 14.193  The second occurrences of IOERTMPC and IOERPRMC should be
VMACCTLT       spelled IOEWTMPC and IOEWPRMC, in both the Label
Aug 20, 1996   statement and in the INPUT statement.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

Change 14.192  MXG 14.06 test stream only.  In JCLTEST6 and JCLUXRE6,
JCLTEST6       step TESTOTHR, DD DUMMY for //TANDCTRL and //TANDLINE
JCLUXRE6       were missing, and in JCLUXRE6, //XPMODS was misspelled
Aug 20, 1996   as //XPUMODS.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

====Changes thru 14.191 were included in MXG 14.06 dated Aug 20, 1996===

Change 14.191  MXG 14.05 only. ERROR 228-185 INFORMAT $PIB IS UNKNOWN in
VMAC74         BUILDPDB, if you have tailored BUILDPDB to process the
Aug 19, 1996   CRR Cache RMF Reporter SMF records (VMACACHE).  Change
               14.152 to VMAC74 incorrectly INPUT  RTRNCODE  $CHAR2.
               but that line must be changed to    RTRNCODE  &PIB.2.
               to be consistent with VMACACHE.
   Thanks to Damian Stevenson, PMSA, AUSTRALIA.
   Thanks to Johnny Allen, Yellow Freight, USA.

Change 14.190  Minor. The count of reports requested was too high by
ANALCISH       one.
Aug 17, 1996

Change 14.189  Enhancements to ANALRMFR for IBM-like RMF reports.
ANALRMFR      -Shared Device Activity Report is complete ( SDEVC ).
Aug 17, 1996   This report will not contain any Devices that were
               OFFLINE or have zero values at time of the interval, as
               they are not kept in the MXG PDB.TYPE74 data set.
              -Channel Activity Report, updates for MVS/ESA 5.1, the
               addition of SMF73CPD adds new channel path descriptions.
               Workload Activity Report-Goal Mode, REPORT=WLMGL is
              -installed along with a new parameter RPTOPT=WGPER, which
               will allow for report selection level.  See comments
               within ANALRMFR for more details.  This report will not
               contain any Policies that have all values of zero at end
               of interval, as they are not kept in the MXG PDB.TYPE72GO
               data set.

Change 14.188  CICINTRV is now restored to the pre-MXG 14.04 logic.  In
CICINTRV       MXG 14.04 the new "CICINTRZ" logic replaced CICINTRV, but
Aug 16, 1996   CICINTRZ was prematurely released (it creates incorrect
               data in some situations, and it stopped creating the
               PDB.CICEODRV dataset which is needed for CICS Shutdown
               reports).  However, the old CICINTRV logic was also wrong
               for CICS 4.1 data (because multiple CICLDG observations
               were being kept, which caused multiple observations in
               datasets it created), so this CICINTRV member was fixed
               to keep only the first CICLDG observation, which solved
               it error.  CICINTRZ ultimately will replace CICINTRV, as
               it will create true interval data from the multiplicity
               of statistics events (INT,REQ,USS,RVR,EOD) in CICINTRV
               and the End of Day in CICEODRV, but until it is fully
               validated, it is safer to return to the simpler logic.
               So this change negates change 14.132.  Additionally
               Change 13.154 was removed from this CICINTRV.  It added
               an INCLUDE of IMACCICS inside CICINTRV (so you did not
               have to include IMACCICS before you invoked CICINTRV),
               but that change prevented ANALCISH from re-defining the
               IMACCICS macros, which is required, so the cosmetic move
               to make it easier lost out, and you will have to include
               IMACCICS before you invoke CICINTRV if you ever get that
               deep in creating your own MXG job for CICS processing.

Change 14.187  Support for Tandem Controller Data and Line Data creates
EXTANCTL       two new datasets:
EXTANLIN          Dataset   INFILE    Description
IMACTAND          TANDCTRL  TANDCTRL  Controller statistics
TYPETAND          TANDLINE  TANDLINE  Line statistics.
VMACTAND       You will need to add DD statements for TANDCTLR/TANDLINE
Aug 15, 1996   (at least with DD DUMMY) if you do not wish to process
               these data, as MXGs TYPETAND will try to read all five
               Tandem data sources that are now supported.
   Thanks to MH, Allied Irish Bank, IRELAND
   Thanks to Joe Fleischmann, U.S. Bancorp, USA.

Change 14.186  Steve Franklin's code to read Network General Sniffer's
ADOCSNIF       data records!  Sniffer is a hardware monitor attached to
IMACSNIF       your network that sees every frame and can be programmed
TYPESNIF       to filter, decode and create data records.  This code
VMACSNIF       reads the Sniffer data, as documented in Steve's article
Aug 15, 1996   "Deriving response time of Client/Server applications",
               in "Capacity Management Review", Volume 24, No 7, July
               1996, published by Demand Technology (subscribe or buy
               the back issue by calling 941 261 8945).

               One Sniffer monitor on a LAN/WAN segment sees all of the
               frames on that segment, capturing source and destination
               addresses plus datastream sequence and acknowledgement
               numbers plus the response times and traffic volume, plus
               information from the data stream itself, so you can
               recognize transactions and decompose their response time.
               Several techniques for transaction identification are
               discussed.  Data from multiple Sniffers is combined to
               measure each of the response components across multiple
               segments; three Sniffers measured a PC client talking via
               two WAN segments to an Oracle database in the case study.

               This code is functional, but does not (yet?)  have the
               normal MXG embellishments (Labels, MXG-names, etc.)
               Should there be enough interest, I will doll it up later.
               If you have a Sniffer monitor, and you must measure and
               understand the transaction response components in your
               C/S transactions, this may well be your salvation, but
               the analysis is neither canned nor straightforward.  You
               will need to read the paper and SAS code to understand
               how to tailor these sample programs for your environment,
               and you best have some good knowledge of the applications
               you are measuring!  If you also use a script (or modify
               the application?) to issue calls that define the start
               and end of a logical business transaction, those events
               are capturable so you can get true business transaction
               response time.  You can also capture SQL statements that
               are used in Client/Server applications and parse them to
               identify TABLE names and WHERE conditions so that network
               response time can be decomposed according to specific SQL
               statements or RPCs (Remote Procedure Calls); that might
               be sufficient for recognition of a business transaction
               if it always begins with a unique call and thus avoid the
               application modifications or script wraps.  There is lots
               of opportunity here; this is pretty powerful stuff!
   Thanks to Steve Franklin, RGI, Inc., USA.

Change 14.185  VM Print sent to JES2 is now merged in PDB.JOBS with the
BUILDPDB       Purge record for these "Print-only" JES2 jobs.  Before,
BUILD005       MXG sent the type 26 data to PDB.NJEPURGE, and the type 6
Aug 15, 1996   record(s) were spun (awaiting for the non-existent purge
               record) for SPINCNT days, and then later the type 6 data
               was output in PDB.PRINT (but with no accounting fields)
               and a sparce observation in PDB.JOBS was created.  This
               change makes the PDB.JOBS data complete and timely for
               print-only jobs.  The change itself was quite simple:
               In the logic to build PDB.NJEPURGE, remove the test for
               INREASON='SR' (so those records are output to TYPE26J2),
               and in the logic to build PDB.JOBS, change the test to:
                IF SUBSTR(INBITS,5,1)='P' AND INREASON NE 'SR' THENDO;
               (so that ABEND values of JCL or CRSH are not set for
               these print jobs, since they do have no JSTRTIME/JENDTIME
               values, because they did not execute on MVS).  Note that
               these print-only jobs can be identified in PDB.JOBS by
               variable INREASON='SR', and that the values of all of the
               variables from the type 30 records will be missing.
               Peter also pointed out that new options on the VM TAG
               command (used to send print to MVS) now allow you to
               cause the VM USERID to be sent to MVS and VM USERID will
               be the JOB name, rather than the old RSCSnnnn JOB name.
   Thanks to Peter J. Jansen, Bank for International Settlements, SWITZ.

Change 14.184  Variable TRANTYPE was increased to two bytes in CICS 4.1.
VMAC110        Change 13.296 changed FORMATS, but the VMAC110 change was
Aug 15, 1996   not migrated into the real MXG library (IBM confidential
               requires that I keep dual source libraries until GA, and
               I forgot to make the update in both places!).
               For CICSTRAN, move TRANTYPE from $1 line to $2 line in
               the LENGTH statement, and in the SMFPSRVR GE 41.0 INPUT,
               change  +3 TRANTYPE $CHAR1.  to TRANTYPE $CHAR2. +2.
               For CICSEXCE, conditional logic was added.
   Thanks to Ove Dall-Hansen, CODAN Insurance A/S, DENMARK.

Change 14.183  TYPE7204 (Goal Mode RMF Monitor III) variable TRANS was
VMAC7072       too small causing AVGELPTM to be way too large because
Aug 13, 1996   variable TRANS should be INPUT as &RB.8. and not &RB.8.6.
               This is a continuation of Change 14.122.
   Thanks to Tom Parker, CSC, USA.

Change 14.182  Support for New Dimension Software's CONTROL-T Tape
EXCTLTDS       Management records creates two datasets:
EXCTLTVL         CTLTDSN - Data Set Record
IMACCTLT         CTLTVOL - Volume Record
TYPECTLT       A number of formats are created to decode fields in the
VMACCTLT       data.  The volume record has a repeating vault section,
Aug 13, 1996   but test data had only one (of a maximum of three), so
               currently only the first vault segment is output.
   Thanks to Paul Hassett, Department of Transportation, USA.

Change 14.181  TANDEM variables were misspelled in two places.
VMACTAND       Change C2WMISS=C2RMISS/DURATM; to C2RMISS=....  and
Aug 12, 1996   Change C3WMISS=C3RMISS/DURATM; to C3RMISS=....
   Thanks to Steve Smith, BGS, USA.

Change 14.180  TYPE72GO Goal Mode dataset did not contain PERFINDX, the
VMAC7072       performance index.  Logic was inserted to calculate this
Aug 12, 1996   index, to label it, and to keep it in TYPE72GO.
   Thanks to Kevin Carpenter, First of America, USA
   Thanks to Don Deese, Computer Management Services, USA.

Change 14.179  Support for SoftAudit Version 5.1 (INCOMPATIBLE, but only
EXSFTAL        because MXG now requires   //XPMODS DD statement; if you
IMACSFTA       do not have Version 5.1 installed, then use DD DUMMY).
VMACSFTA       The //XPMODS flat file (Created by SoftAudit's extract
Aug 12, 1996   program) is now read to create the new MXG dataset
               SOFTMODS to describe the Installed Load Module File.

Change 14.178  The SMF Simulator now tests a CISIZE of 18432, which may
ANALSMF        be better than 16K on 3390s, as 3 blocks fit per track.
Aug 12, 1996

Change 14.177  In VMXGSUM invocations, if DESCENDING was used in the
VMXGSUM        SUMBY=LIST and KEEPALL=NO was used (default), the parse
Aug 12, 1996   logic did not recognize the DESCENDING attribute, which
               could cause NOT SORTED conditions.  Now the parser does.

Change 14.176  TRNDTALO has been redesigned to "SPIN" allocations that
TRNDTALO       are active at the time SMF data is dumped.  Comments in
Aug 12, 1996   the member describe the new algorithm designed to fix the
               end effects.  This still is a circumvention for the basic
               problem, that allocation records are only written at the
               end of allocation; a redesign of the ASMTAPES monitor to
               create interval allocation records will ultimately solve
               the problem of counting tape drives for good, but as the
               comments describe, only a very small number of jobs are
               encountered with hanging allocations, so the new logic is
               definitely an improvement.
   Thanks to David Childress, Lowe's Companies, Inc., USA.

Change 14.175  Using ANALCNCR, if you did specify an output dataset and
ANALCNCR       you also requested reports, you received a DATASET NOT
Aug 12, 1996   FOUND and may get two prints of the Summarized output.
   Thanks to Tom Elbert, John Alden, USA.

Change 14.174  DB2 message "VMACDB2 ERROR ... QWHSIID=230 UNEXPECTED"
VMACDB2        due to MXG error.  Find IF QWHSIID=230 THEN SUBTYPE=3;
Aug 12, 1996   and add "AND SUBTYPE NE 3" to the next IF statement.
               The impact of this error message was that DB2 statistics
               observations were not output in DB2GBPAT.
   Thanks to John Rosser, Springs Industries, USA.

Change 14.173  Reserved Change Number.
Aug 10, 1996

Change 14.172  Variable EXECTM in TYPE30_V and PDB.SMFINTRV datasets was
VMAC30         wrong for steps that created only a subtype 3 (i.e., they
Aug 10, 1996   did not run long enough to create a subtype 2 interval).
               Change the equation  EXECTM=INTETIME-INTBTIME to read:
                 IF SUBTYPE=3 AND INTBTIME LT LOADTIME THEN
                   EXECTM=INTETIME-LOADTIME;
                 ELSE EXECTM=INTETIME-INTBTIME;
   Thanks to Jean Quinkert, Inland Steel, USA.

Change 14.171  Support for MODEL204 Release 3.2.1 (INCOMPATIBLE) inserts
IMACM204       new fields in the Logoff and the Since-Next records.
VMACM204       This support is based on CCS's Early Warning 006 but has
Aug  9, 1996   not yet been tested with real 3.2.1 data. The new default
               for _M204VER in IMAC204 is now 3.2 instead of 3.0.
               Aug 16: Variable M24DKAR was inadvertently deleted from
               the INPUT statement for LOG records in early code.
   Thanks to Allan Rollason, SAS Europe, GERMANY.

Change 14.170  More RACF Reports for Command Events can be produced from
EXTY8008       nine new TYPE80nn datasets from member TYPE80A:
EXTY8012          Dataset   EVENT   Command
EXTY8015          TYPE8008   08     ADDSD
EXTY8016          TYPE8012   12     ALTGROUP
EXTY8017          TYPE8015   15     DELDSD
EXTY8018          TYPE8016   16     DELGROUP
EXTY8020          TYPE8017   17     DELUSER
EXTY8021          TYPE8018   18     PASSWORD
EXTY8024          TYPE8020   20     RALTER
IMAC80A           TYPE8021   21     RDEFINE
VMAC80A           TYPE8024   24     SETROPTS
Aug  8, 1996  Because IBM documentation of RACF records is not complete
              (undocumented fields, conditional fields), I can only code
              if I have data records.  If the dataset TYPE80CM contains
              any observations, it means you have events I have not seen
              before.  If you will PROC PRINT DATA=TYPE80CM, you can see
              which events exist, and that dataset contains the RECNUM
              in your SMF data; use this program to print a hex dump of
              those records:  DATA;INFILE SMF;INPUT;IF _N_= recnum;LIST;
              and send that output with the PROC PRINT for enhancement.
   Thanks to V.J. Picotte, Key Services, USA.

Change 14.169  JES3 MDS (Main Device Setup) tape fetch and mount counts
IMACPDB        are now captured in variables TAPFETCH and TAPEMNTS in
BUILDPD3       PDB.JOBS dataset created by the BUILDPD3 JES3 PDB.  These
BUIL3005       counts have been available in dataset PDB.TYPE25, but now
BUILDPDB       the BUILDPD3/BUIL3005 logic sums the TYPE25 counts into
BUILD005       PDB.JOBS.  A new dataset SPIN.SPIN25 is also created in
Aug  7, 1996   the SPIN library (and copied into the PDB for backup).
               For JES3-sites, if you have tailored your IMACPDB member
               in your "USERID.SOURCLIB" for your BUILDPD3 job, this
               change is INCOMPATIBLE in that you must re-tailor those
               IMACPDB changes, starting with this IMACPDB member; if
               you miss this instruction, you will get errors on the log
               that variables READTIME JOB JESNR are not in WORK.TYPE25!
                  This enhancement was not straightforward, because IBM
                  does not include JESNR in the type 25 record, so it
                  matches type 25's with type 30_1 initiation records to
                  add JESNR to TYPE25 before the MERGE.  In IMACPDB the
                  macro _PDB25 contains JESNR in the list, even though
                  JESNR does not exist in the SMF record, because that
                  macro is used again later in BUILDPD3 when there has
                  been created a JESNR in TYPE25.
               This change did not add variables TAPFETCH and TAPEMNTS
               to PDB.SPUNJOBS dataset (but I will later, if required).

               Unrelatedly, the creation of PDB.SMFINTRV was enhanced;
               by changing IF ININTRV THEN OUTPUT; to IF ININTRV; and
               relocating the statement after the SET statement, code is
               bypassed when there are no TYPE30_V observations.  This
               change was also propagated into JES2 BUILDPDB/BUILD005.
               And Change 13.241, which added the %INCLUDE of IMACSPCK
               had been overlooked in BUIL3005, but is now added.
   Thanks to Alan McBain, National Westminister Bank, ENGLAND.

Change 14.168  Support for Omegamon/VTAM V200 (INCOMPATIBLE, four bytes
EXOMVLU        were inserted and eight new trend subtypes are created.)
EXOMVMPG       MXG creates these new datasets:
EXOMVMPS          IRNUM  DATASET   Description
EXOMVNCC            7    OMVTMPCG  MPC Group
EXOMVNTL            8    OMVTMPCS  MPC Subchannel
EXOMVNTP            9    OMVTNCPC  NCP CCU
EXOMVPU            10    OMVTSDLC  SDLC/BSC Line
EXOMVDSL           11    OMVTPU    PU/Cluster
FORMATS            12    OMVTLU    LU/Terminal
VMACOMVT           13    OMVTNTRP  NTRI Physical Link
Aug  6, 1996       14    OMVTNTRL  NTRI Logical Link

               but only subtypes 9 and 10 have been validated with data,
               (and ON09CU and ON09CF look suspicious in OMVTNCPC).
               Forty new exception conditions were added that are now
               recognized and decoded by new values for $MGOMVEX format
               that is used in dataset exception dataset OMVTEXCE.
   Thanks to Harry Olschewski, dvg Hannover, GERMANY.
   Thanks to ???             , Sparkassen-Rechenzentrum, GERMANY.

Change 14.167  Some intervals may be missing in DB2STATS, DB2STAT0 and
DIFFDB2        DB2STAT1 in DB2 4.1, because IBM changed QWHSISEQ without
Aug  3, 1996   notice.  Statistics interval records contain accumulated
               counters, so MXG's DIFFDB2 code must sort records and
               then subtract counters in adjacent records to create the
               interval statistics.  To make sure only adjacent records
               are output, the IFCID Sequence Number, QWHSISEQ, is used
               to validate that records are adjacent.  However, DB2 4.1
               now writes records for adjacent intervals with skipped
               values of QWHSISEQ (109,110,111,113,115,116), which made
               MXG's validation logic to not output those observations.
               In addition to adjacency validation, the MXG QWHSISEQ
               logic also deleted the first record from each subsystem
               (the first record found cannot be output, unless it is
               also the startup, QWHSISEQ=1, because there is no prior
               record for deaccumulation), so the new logic now protects
               for first record found.  Change the four occurrences of:
                 SEQCHECK=DIF(QWHSISEQ); DROP SEQCHECK;
                 IF QWHSISEQ GE 1 AND SEQCHECK EQ 1 THEN DO;
                   DIFFDBxx=1;
                   %INCLUDE SOURCLIB(EXDB2ST0);
                 END;
               to read (change DIFFDBxx=1 in each of the four sets):
                 LENGTH PREVSSID $4;
                 SEQCHECK=DIF(QWHSISEQ);
                 IF SEQCHECK GE 1 AND PREVSSID EQ QWHSSSID THEN DO;
                   DIFFDBxx=1;
                   %INCLUDE SOURCLIB(EXDB2ST0);
                 END;
                 ELSE DO;
                   PREVSSID=QWHSSSID;
                   RETAIN PREVSSID;
                 END;

                  Note inserted Sep 25: the previous code was printed
                  and implemented incorrectly until Change 14.230.  The
                  code stub above has been corrected to the way it
                  should have been.

               While this change prevents deletion of good intervals,
               it opens a new exposure if DB2 records are not written
               for an interval (if SMF is blocked DB2 does not retry).
               Because SEQCHECK can't be used, MXG will deaccumulate
               several interval's data into one interval, causing high
               values (though not necessarily high rates) in that obs.
               To help isolate data problems, the variable SEQCHECK is
               now kept in the DB2STATx datasets.  SEQCHECK is one if
               QWHSISEQ is adjacent, and otherwise is more than one.
               I intend to open a problem with IBM to see if this was
               an intentional change or an inadvertent error, so this
               change may be revised if IBM admits to an error, but with
               DB2 4.1 now skipping QWHSISEQ values, this change is
               required until IBM guarantees adjacency of QWHSISEQ.
   Thanks to Pierre Li, Deere and Company, USA.

Change 14.166  Use of permanent versus temporary ARRAY statements costs
VMAC78         big!  Changing the ARRAY statements added by 14.121 from
Jul 27, 1996      ARRAY PCTALLBZ {4096} 4 PCTA0001-PCTA4096;
                  ARRAY LCUIORAT {4096} 4 LCUI0001-LCUI4096;
               to read:
                  ARRAY PCTALLBZ {4096} 4 _TEMPORARY_;
                  ARRAY LCUIORAT {4096} 4 _TEMPORARY_;
               eliminated the significant increase in CPU time BUILDPDB
               and TYPE78 seen in MXG 14.04 and MXG 14.05.  See the SAS
               Technical Note in Newsletter THIRTY on Permanent Arrays.

Change 14.165  APAR OW13536 adds new fields for the Coupling Facility
VMAC74         (RMF type 74 subtype 4 record, MXG dataset TYPE74CF)
Jul 27, 1996   that are extensively discussed in WSC FLASH 9609.
               The Coupling Facility continues to be a potential serious
               bottleneck if its capacity (CPU and memory) is not well
               managed.  IBM has added new instrumentation for that
               purpose with this APAR, which was implemented compatibly.

Change 14.164  APAR OW15406 for RMF adds support for Year 2000.
VMAC73         IBM has documented that all packed decimals will contain
VMAC74         0cyydddF format, and added an expanded IODF creation date
VMAC75         (with YYYY format vice YY) field (compatibly!) to the end
Jul 25, 1996   end of the Type 73 Channel Path Control section, the Type
               74 Device Control Data Section, and the Type 78 Subtype 3
               Control Section for ES/9000 CPUs.  MXG detects existence
               and uses the YYYY format when it is present.  With this
               APAR and MXG change, RMF fully supports the year 2000,
               and member YEAR2000 has been updated to so indicate.

Change 14.163  APAR OW21583 announces that TCP/IP will write SMF type 6
VMAC6          record with SUBSYS=9, but no more information (APAR is
Jul 25, 1996   still open).  Test for SUBSYS=9 was added, but still

               await IBM documentation.  This change is still open.

Change 14.162  ANALMPT invokes ANALCNCR and caused FILE WORK.SPLIT.DATA
ANALCNCR       DOES NOT EXIST error (if OUTSUMRY= is not specified).  To
Jul 12, 1996   correct, find the second occurrence of the statement:
                 PROC PRINT DATA=&OUTSUMRY SPLIT='*';
               and delete that line (the second occurrence, but do not
               delete the line containing DATA=OUTSUMRY, without paren).
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
   Thanks to Hartmut Beckmann, Karstadt, AG, Germany

Change 14.161  Cosmetic.  Two titles with CPU TIM were corrected to read
ANALPROG       CPU TIME.
Jul 12, 1996
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
   Thanks to Hartmut Beckmann, Karstadt, AG, Germany

====Changes thru 14.160 were included in MXG 14.05 dated Jul 15, 1996===

Change 14.160  TSO/MON distribution bucket values TSMPDIS1-TSMPDIS8 were
VMACTSOM       not converted to seconds (divide by 38400) nor were they
Jul 12, 1996   kept, but now they are.
   Thanks to Manfred Thomas, BHF-Bank, GERMANY.

Change 14.159  Documentation of the datasets created by BUILDPDB and the
ADOCPDB        sort order of those datasets (from the MXG Supplement)
Jul 12, 1996   was not moved into SOURCLIB.  While slightly out of date,
               at least it's finally here!
   Thanks to Jean Quinkert, Inland Steel, USA.

Change 14.158  Support for OS/390 Version 1 Release 2 (COMPATIBLE).
EXTY72GO       MXG 13.13 and later tolerates OS/390 Release 2, but to
EXTY892        capture the several new variables and new subtypes of
IMAC892        type 74 and 89 records, MXG 14.05 is needed.
VMAC4789      -UCBNAME is now $4 in TYPE4789 (but this was not new with
VMAC7072       OS/390 - I had not noticed the new field until now).
VMAC79        -Variables SMF72SPA,SMF72SPE,SMF72SRS (shared page stats)
VMAC89         are added to TYPE72 (again, had been overlooked in 5.2).
VMAC99        -Variables R722GPI,R722TSV,R722VIN,R722VLC (shared pages)
Jul 11, 1996   are added to TYPE72MN (also overlooked in 5.2).
              -Variables R724GPI,R724TSV,R724VIN,R724VLC (shared pages)
               are added to TYPE7204 (also overlooked in 5.2).
              -Variables R791CMNI,R791EXCT,R791SPI,R791PNV,R791PVIO (the
               ASID's pages in common, VIO/Non-VIO, shared pagins) are
               added to TYPE79. (also overlooked in 5.2).
              -New dataset TYPE892 contains interval usage data summary
               for each registered product.
              -The test R723TYPE IN(1,2,4,5) in EXTY72GO was changed to
               R723TYPE IN('1','2','4','5') to eliminate character
               conversion (and associated SAS note).
              -Variables were added to TYPE99TT and TYPE99U1 datasets.

Change 14.157  For user-written VMXGSUM invocations with INDATA= that
VMXGSUM        did not have a blank between the dataset name and the
Jul 11, 1996   parenthesis, i.e., INDATA=MYDATA(IN=MYVAR), the parsing
               logic failed.  Use INDATA=MYDATA (IN=MYVAR), and the code
               works!  This change enhances the parser to accept the
               dataset options in the INDATA= with or without the blank.
   Thanks to Alfred Mak, Asia Pacific Technologies, SINGAPORE.

Change 14.156  Change 14.112 was revised (see text) and additional IDMS
VMACIDMS       changes are necessary.
Jul 11, 1996  -In the Journal Wait segment, insert a +1 after JRLFILE is
               INPUT and change the SKIP calculation to SKIP=SKIP-105;
               vice 104.
              -In the DBKEY Wait segment, insert +2 after DBKPGGRP and
               change the SKIP calculation to SKIP=SKIP-14; vice 12.
   Thanks to Martin Wieland, Neckermann B.V., THE NETHERLANDS

Change 14.155  Utility to reconstruct mainframe data from PC file.  When
UDEBLOCK       you download an MVS file that was VB or VBS, you had to
Jul 11, 1996   make a RECFM=U copy on MVS, then download that data to a
               PC, creating a contiguous file of bytes.  But you cannot
               upload that PC file (perhaps to a different MVS system)
               and use it, because there are no record delimiters.  But
               now you can upload the PC file , putting it into an MVS
               file with RECFM=U, BLKSIZE=32756, and then use this new
               UDEBLOCK utility to read that file and create from it a
               true copy of the original VB/VBS file.  The output file
               of UDEBLOCK will have RECFM=U,BLKSIZE=32756, but you will
               specify RECFM=VB or RECFM=VBS on the DD statement when
               you read that data, and all will be well.  You may not
               need this utility, but I needed it to be able to move
               a VB GTF file from SAS's MVS system thru my PC to my MVS
               system.  Check it out!

Change 14.154  Support for DB2 records written to GTF.  The earlier user
REXXDB2        written utility (REXXDB2) did not always create valid DB2
UDB2GTF        events from the multiplicity of 280-byte spanned segments
VMACDB2        in which DB2 data is chunked when sent to GTF.
VMACSMF           That's the reason why DB2 trace data should be written
Jul 11, 1996      to SMF rather than to GTF. When you write to GTF, DB2
                  must stop and do a physical write to GTF for each 280
                  bytes of trace data!  When trace data is sent to SMF,
                  it is in chunks of 32756 bytes and is done at CPU
                  speed with a Move Character Long from DB2's ASID to
                  SMF's ASID without any physical write delay for DB2.
               The new MXG utility, UDB2GTF is written in SAS, not REXX,
               and correctly reads the raw GTF trace data written by DB2
               to reconstruct the spanned segments into valid events,
               but its output is still in GTF format, so you must use
               TYPEDB2G instead of TYPEDB2, or TYPE102G instead of
               TYPE102, or you must specify INFILE=GTF with %READDB2, or
               with %ANALDB2R you must specify PDB=GTF to read the data.
               But not only was REXXDB2 wrong; the MXG members VMACSMF
               and VMACDB2 had to be corrected as well.

               REXXDB2 did reconstruct many DB2 GTF events, but it did
               not handle all records correctly, and it created invalid
               records for incomplete DB2 events (when the last segment
               was not written because trace was restarted).
   Thanks to G. Bockting, KLM Royal Dutch Airlines, THE NETHERLANDS.

Change 14.153  Major (but compatible) internal enhancement of IMF
EXIMFTRX       support for large IMS transaction volumes creates new
IMACCIMS       macros _LIMFTRX, _LIMFSRT and _LIMFCHA which can be set
TYPECIMS       in member IMACCIMS to write temporary copies of IMS data
VMXGTAPE       to tape during the "CHAINED" part of TYPECIMS logic.  In
Jul  7, 1996   addition, exit EXIMFTRN was relocated to the final phase
               of TYPECIMS logic, so you have complete control of the
               contents of the final CIMSTRAN dataset.  (New exit
               EXIMFTRX for new temporary CIMSTEMP, built in first phase
               from IMS log, added, but not likely needed.)  Comments in
               IMACCIMS describe how to use temporary tape datasets.
               Lots of work under the cover in this enhancement.  New
               VMXGTAPE macro created to determine if a dataset name or
               a libname is on tape.  For DASD temporary space, PROC
               DELETEs must be used to minimize the space required, but
               PROC DELETEs added for DASD will fail (with ERROR!) when
               DD points to tape, as SAS does not support Deletion of a
               tape dataset.  This required %MACROs be created and used
               to decide if the DD name you chose in IMACCIMS points to
               tape or DASD, and then to conditionally execute PROC
               DELETE only if DASD.  Not too hard, but sure cluttered
               the code in TYPECIMS!

               For TAPE temporary spaces, we want to reuse the tape to
               minimize the number of tape drives to three, but then the
               dataset name used for the reuse MUST be the same as the
               first dataset on that tape (if not, SAS would read past
               that first dataset on tape and only begin writing the
               reuse dataset after the first dataset, which could cause
               multi-volume tape when not required.
   Thanks to Wolfgang Vierling, Vereinte Versicherung, GERMANY.

Change 14.152  Support for RMF Type 74 Subtype 5 Cache RMF Reporter CRR
BUILDPDB       record.  This new subtype 5 record replaces the user SMF
BUILDPD3       record created by IBM's CRR product.  MXG created the
BUILD003       CACHE90 dataset from the user SMF record; this support
EXTY74CA       creates new dataset TYPE74CA, but the variables in that
FORMATS        new dataset are identical to the old CACHE90 dataset, so
IMAC74         you will need only to change references to CACHE90 to
VMAC74         TYPE74CA in your CRR report programs.
Jul  2, 1996   The subtype 5 record is standard in OS/390 Release 2 and
               is retrofit in MVS/ESA 5.2.2 by APAR OW18886, in 5.1 by
               APAR OW19337, and in 4.3 by APAR OW19938.
               Dataset TYPE74CA is automatically created in your PDB
               library by MXG's BUILDPDB/BUILDPD3 programs.
                  I considered using CACHE90 as the dataset name in this
                  new support, but any site that had already added
                  CACHE90 to their BUILDPDB would ABEND with this new
                  MXG version, as there would then be two instances of
                  CACHE90, one from VMACACHE and one from VMAC74.  'Tis
                  better for BUILDPDB to run and only have to change
                  your reports than vice versa!  Additionally, you may
                  have CRR running on some systems, while you only have
                  the TYPE74CA on some systems, so by using a different
                  name you can process both records.  And, there are a
                  few new variables created in TYPE74CA.
   Thanks to Brian Currah, Performance Associates, USA.

Change 14.151  TYPE74SY variables R742SDIR and R742SSTF are flag fields
VMAC74         and should have been formatted $HEX2.
Jul  2, 1996
   Thanks to Mr. Leineweber, Huels AG, GERMANY

Change 14.150  Support for DFSORT Release 13 APAR PN71337 (Compatibly)
VMAC16         added new variable ICEDSA (Size of DSA in effect) using
Jun 29, 1996   an existing reserved field.  This APAR also increases the
               maximum number of SORTWORKs from 32 to 100, but that has
               no impact on the MXG support.

Change 14.149  In verifying the MXG supported JES2 job numbers GT 32767,
VMAC57         I discovered that variable NJENJJID had been added to the
Jun 29, 1996   JES3 type 57 record; that variable is now created.

Change 14.148  An 878 ABEND can occur because the SLOTS table was below
ASMIMSLG       the 16MB line; increasing the SLOTS after the //CONTROL
ASMIMSL5       DD statement avoided expansion, but still abended.  The
Jun 27, 1996   solution is to move the SLOTS table above the 16MB line
               (so the GETMAIN is not constrained by your private area).
               Before the MXGIMSLG CSECT statement, insert (starting in
               column one):
               MXGIMSLG AMODE 31
               MXGIMSLG RMODE 24
               In the GETMAIN statement located 25 lines after the label
               GETQUEUE, change LOC=RES to LOC=ANY.
   Thanks to Grant Thomson, Elf Enterprise, ENGLAND.

Change 14.147  All MXG JCL examples now specify REGION=0M to allow SAS
JCLall         to use all virtual storage it needs.  See SAS Technical
Jun 27, 1996   Note VI.4 in Newsletter THIRTY for discussion.
   Thanks to Jeff Balch, General Electric Capital Corporation, USA.

Change 14.146  All packed decimal fields in IBM's DFSMSrmm records are
VMACEDGS       now protected with the ?? modifier (to supress error msg
Jun 26, 1996   when the record contains nulls for PD fields), and all
               timestamps set with DHMS() function are now set missing
               (instead of zero) when they don't exist.  The logic for
               the security record was incorrect and was revised.
               This change is still open while investigating further
               recommendations from this "codeshark".
   Thanks to Mr. Weinberger, IDG Informationsvararbeitung, USA.

Change 14.145  Almost cosmetic; several hundred lines were printed on
VMXGSUM        the SAS log when VMXGSUM's KEEPALL=NO default option does
Jun 26, 1996   its thing (see MXG Technical Notes in Newsletter 30).
               This change inserted OPTIONS NONOTES; and then OPTIONS
               NOTES before and after the parsing logic to prevent the
               printing of these notes on your SAS log.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.144  Support for Anacomp, Inc.'s XSTAR product's SMF record.
EXXSTARB       Two datasets are created:
EXXSTARO         XSTARBAT - Batch Session Printing
IMACXSTR         XSTARDSN - Batch Session sent to a dataset
TYPEXSTR         XSTARONL - Online Session
VMACXSTR
Jun 26, 1996

Change 14.143  Support for EOS - Enterprise Output Solution for MVS is
VMACWSF        already contained in MXG under its old acrynym, WSF.  The
Jun 26, 1996   vendor is RSD - Roger Software Development, Geneva.
   Thanks to Tim Crocker, ALLTEL Information Services, USA.

Change 14.142  CICS Statistics datasets did not contain SMFPSRVR (CICS
VMAC110        Version) nor MCTMNTAD (GMT offset), although both were
Jun 26, 1996   added to CICSTRAN and CICSEXCE in MXG 13.13.  Now, both
               variables were added to the _CISTCMN macro so that they
               will now exist in all CICS datasets.
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 14.141  The _LHSMxxx macros (which can be used to change the data
DIFFHSM        Library in which HSM datasets are stored) were not used
Jun 26, 1996   in the data steps after the PROC SORTs, so you could not
               use the IMACHSM to set the location of HSM datasets.
               The syntax now uses _LHSMxxx macro names throughout.
   Thanks to Trevor Holland, Bank of Melbourne, AUSTRALIA.

Change 14.140  MXGSAS, the JCL Procedure to execute MXG jobs, has been
JCLADHOC       enhanced with the new TAILORNG= symbolic parameter that
MXGSAS         allows you to use your own PDS as the first dataset in
Jun 25, 1996   the //SOURCLIB concatenation.  This new parameter is
               then used in the new JCLADHOC example, which shows how
               you can use IEBPUDTE to put your SAS tailoring statements
               into a temporary PDS (so you don't have to EDIT a real
               PDS tailoring library) for an ad hoc analysis.  Also, you
               end up with the JCL and SAS code in one single member so
               you can go back and remember what you did in one place!
   Thanks to Debbie Gould, Acxiom, USA.

Change 14.139  Divide by zero message (but no failure) in calculation of
VMAC76         INTRVAVG in TYPE76 dataset.  The second equation now is:
Jun 24, 1996     IF NRSETS*SAMP_SET GT 0 THEN INTRVAVG=INTRVSUM/(...);
   Thanks to Bruce Widlund, Merrill Consultants, USA.

Change 14.138  DB2 Trace records containing SQL text were inconsistent.
VMAC102        IFCID 63 created all of the text in multiple observations
Jun 26, 1996   with 200-byte variable (which is unprintable because SAS
               PROC PRINT truncates instead of wrapping), and IFCIDS 124
               140, 141, 142, 145, and 168 kept only the first 200 bytes
               of SQL statements. Since SQL text has no limit (after
               all, it is a "program"), I decided to change the length
               of T102S063's existing 200-byte variable to 100 bytes per
               observation, and have created six new datasets for the
               other IFCIDS that contain the SQL text in 100-byte chunks
               (and the common variables).   New datasets T102T124,
               T102T140, T102T141, T102T142, T102T145 and T102T168 are
               created, with the 2nd "T" in the dataset name being the
               indicator that this dataset is for the SQL text.  The
               segment number is in SEGSQLTX and the actual bytes of
               text in the 100-byte character variable is in the
               variable LENSQLTX.
               The first 100 bytes of text are still output in T102Snnn
               for compatibility.
               A later change to ANALDB2R will be required to be print
               all of the SQL text in the Audit Reports, but with this
               change at least you can PROC PRINT to get all of the SQL
               statements.
   Thanks to Mike Majors, Residential Services Corp of America, USA.

Change 14.137  Code which was never executed was deleted.  The DO group
VMAC116        IF QWHCTOKN EQ '0000 ... 00'X was never executed, as the
VMACDB2H       length of QWHCTOKN is 22, but the hex string was only 16,
Jun 24, 1996   and even if it had been executed, it only stored hex zero
               where hex zero had already been initialized, so that DO
               group was deleted and the subsequent ELSE DO;  and  END;
               statements were deleted around NETSNAME creation.
   Thanks to Herb Strazinski, Burlington Northern Railroad Co., USA

Change 14.136  Variable ZDATE is inadvertently changed to a character
TYPEIMSA       variable with value 'ZEE OBS...' because the semi-colon
Jun 21, 1996   after  TRANCLAS='TRANSACTION*CLASS';  must be removed.
   Thanks to Mr. Lucca, Wiener Staedtische Versicherung, GERMANY

Change 14.135  Landmark TMON/MVS spanned records are now valid and can
FORMATS        be read with MXG.  Prior to TMVS 1.3, the spanned records
VMACTMVS       were invalid, and MXG had no choice but to skip over them
Jun 20, 1996   (and print a note on the log that records were skipped).
               As promised, TMVS 1.3 now writes legitimate records that
               can be read with TYPETMVS.  The only change required is
               to delete the entire 18 lines of the DO group:
                 IF LMRKFLG1 NE '..00....'B THEN DO; /*SPANNED .... */
                    --- 16 lines ---
                 END;
               Also, format $MGTMVGF now decodes additional bit values
               (that deal with record structure, and probably no one but
               me ever need to know!).  I also discovered that it and
               several other formats had been overlooked when the syntax
               of OTHER=(! $HEX2.  !) was changed to OTHER=?< $HEX2. ?>
               by Change 13.319.  Now, all OTHER= are consistent.
   Thanks to Wim Desmecht, DOLMEN Computer Applications MV/SA, BELGIUM.

Change 14.134  Support for HP MeasureWare for HP-UX platform.  HP's MWA
ADOCMWUX       replaces the HP PCS product.  The MXG support for MWA
ASUMMWUX       is contained in new members with the MWUX suffix instead
IMACMWUX       of HPUX, so you will have to change to use TYPEMWUX vice
TYPEMWUX       TYPEHPUX, but the MXG datasets created by MWA are named
VMACMWUX       the same as their PCS counterparts, and variable names
EXHPUXTT       were preserved (except for dropped variables), so your
Jun 17, 1996   existing PCS report programs should function without
               error against the MWA-built MXG datasets.
               The data records read by MXG are completely controlled by
               the syntax of the HP REPORT command that extracted the
               data.  You must compare the REPORT command syntax in the
               ADOCMWUX member with your REPORT command (or use the one
               in ADOCMWUX to generate your data!).  If your data was
               extracted with a different REPORT syntax, then you must
               change member VMACMWUX as described in ADOCMWUX.  The
               delimiter between HP fields is set in member IMACMWUX.
               One new dataset, HPUXTRAN, transaction tracker metrics,
               is created by MWA that did not exist in PCS, hence the
               new EXHPUXTT exit.  Note that the same exit members are
               used for both PCS and MWA to output the same MXG dataset
               names!  Support for SUN and AIX platforms will be coded
               when there is a user in need of that support.
   Thanks to Alfred Holtz, Medco Data Corporation, USA.
   Thanks to Thierry Van Moer, Procter & Gamble, BELGIUM.

Change 14.133  Documentation.  The MVS Technical Note on differences in
ADOC30         CPUTM between interval and step records was also put in
Jun 15, 1996   ADOC30, and related variables descriptions were revised.
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
   Thanks to Hartmut Beckmann, Karstadt, AG, Germany

====Changes thru 14.132 were included in MXG 14.04 dated Jun 13, 1996===

Change 14.132  As promised, the prior member CICINTRZ is now CICINTRV;
CICINTRV       i.e., the enhancements described in Change 13.281 are now
CICINTRZ       the MXG default (and the old CICINTRV is now CICINTRZ).
Jun 13, 1996   With this change, only the CICINTRV dataset is built; the
               CICEODRV CICREQRV CICRRTRV & CICUSSRV datasets are no
               longer created.  The new logic does not impact execution
               resources:  CPU only went up 20 seconds (with a total
               CPU time of 11min 39sec for both TYPE110 and CICINTRV
               with 2132MB of SMF data) and WORK disk space only went up
               by 13 Cylinders (10MB).  The increase in virtual storage
               was only 600K, up to 15204K, but this is still much less
               than BUILDPDB requires, so this new CICINTRV won't cause
               your BUILDPDB to die with an 80A ABEND!).
               A CICS Technical note on the CICINTRV enhancements will
               soon be written. See Change 14.188 which reverses this.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.131  Support for APAR PN78083 required no change to MXG.  The
VMAC42         APAR redefine's PRODLVL's 2 bytes as two 1 byte fields
Jun 12, 1996   Product Level, Product Sublevel), but PRODLVL is not even
               a kept variable, and if it is ever needed in the future,
               its two bytes can always be individually tested.

Change 14.130  INVALID DO LOOP error because Change 13.044 was not made
TRNDTALO       to this member to protect when ALOCSTRT or ALOCEND are
Jun 11, 1996   missing.  The IF statement in the first data step needs:
                 OR ALOCSTRT=. OR ALOCEND=.
               to be added, i.e., make TRNDTALO look like ASUMTALO.
   Thanks to David Childress, Lowe's Companies, Inc.

Change 14.129  Support for IMS 5.1 APAR PN76410 extended prefix segment.
ASMIMSL5       With this APAR, LOGONID variable in IMSTRAN is missing.
Jun  9, 1996   To correct, change ASMIMSL5 after label P001000M to make
               the code look like this:

      P001000M DS    0H                                             old
               CLI   2(R4),X'84'        IS THIS THE LU6 SEGMENT     old
               BNE   P001000N           BRANCH IF NOT  (was BNE DROPMAP)
               LA    R4,MSGLU6ND(R4)    BUMP PAST THE SEGMENT       old
               B     P001000K           BRANCH TO TEST FOR RACF     old
      P001000N DS    0H                 SUPPORT FOR PN76410         new
               CLI   2(R4),X'86'        IS THIS THE EXT PFX SEGMENT new
               BNE   DROPMAP            BRANCH IF NOT               new
               USING MSGEPHDR,R4                                    new
               TM    MSGEPFL1,MSGESEC   IMBEDDED SECURITY SEGMENT?  new
               BZ    DROPMAP            BRANCH IF NOT               new
               LH    R2,MSGEPTL         LNGTH OF ALL EMBEDDED SEGS  new
               AR    R2,R4              END OF EXTENDED SEGMENT     new
      P001000P LH    R1,0(R4)           LENGTH OF THIS SEGMENT      new
               AR    R4,R1              NEXT SEGMENT                new
               CR    R4,R2              HAVE WE REACHED END ?       new
               BNL   DROPMAP            BRANCH IF YES               new
               CLI   2(R4),X'88'        SECURITY SEGMENT?           new
               BNE   P001000P           BRANCH IF NOT               new
               DROP  R4                                             new
               USING MSGSEC,R4                                      new
               MVC   LOGONID,MSGRACUS   MOVE IN THE LOGONID         new
               MVC   ORGENT(8),MSGSAFNM MOVE IN ORGENT/INCONT       new
               DROP  R4                                             new
               B     DROPMAP                                        new
               EJECT                                                old
   Thanks to Grant Thomson, Elf Enterprise Caledonia Limited, SCOTLAND.

Change 14.128  Support for ITRF V300 (compatible) added variables UNIQUE
VMACITRF       (unique sort key) to all ITRF datasets, and SAPTRN (SAP
Jun  9, 1996   internal transaction code) to ITRFMSG dataset.  See IMS
               Technical Notes for additional ITRF experience.

Change 14.127  Two datasets in ZRBPDB but not in WORK were not found
ZRBBATCH       because they did not have the &LIBNAME.. reference in the
ZRBRPT1-3      ZRBBATCH program.  ZRBRPT1-3 had JCL removed and &LIBNAME
Jun  9, 1996   added so as to be consistent with other ZRB members.
   Thanks to Jay Beeler, Key Services, USA.

Change 14.126  ANALDB2R Statistics Trace now incorporates Change 14.068
ANALDB2R       for each Remote Destination, removing references to the
Jun  9, 1996   QLSTLOCN variable in DB2STATS, now using DB2STATR.

Change 14.125  Support for ASTEX 2.1 (INCOMPATIBLE) replaced four bytes
VMACDMON       with eight bytes in the VOL record segment, and created
Jun  9, 1996   new variables:
                   Dataset            Variable  Label
                  DMONVOL            RVLVG
                  DMONVOL,DSN,JOB    RCDTME CACHE*TIME*SAVINGS
                  DMONVOL,DSN,JOB    RMLDMOBJ DSN's*DEMOTION*TIME*OBJTV
                  DMONVOL,DSN,JOB    RSCLSFLG SMS*CLASS*FLAG
                  DMONVOL,DSN,JOB    LOGICAL*VOLUME*GROUP*NAME
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.124  Change 12.099 was not correct in leap years (like 1996!),
VMACDCOL       but the impact was minimal. Three EXPDT variables (HSM's
VMXGHSM        MCDEXPDT and DCOLLECT's DCDEXPDT and UMEXPDT) were set
Jun  9, 1996   to MXG "infinite" year of 2099 for a valid leap year date
Jun 18, 1996   of 96366 instead of the correct date.  MXG uses this
               "infinite" date for EXPDTs that are not valid Julian
               dates (like 99999, 99366, and also for the special date
               of 99365) that are used by tape management systems, but
               Change 12.099 incorrectly set any xx366 date as infinite.
               Change the occurrences in VMACDCOL and in VMXGHSM from
                  OR DAYEXPDT GE 366    to    OR DAYEXPDT GT 366.
               Additionally, the default date in VMACDCOL was changed to
               '31DEC2099'D (from '01JAN2099'D) just to be consistent.
               This text was revised when I discovered that 2000 is
               indeed a leap year, but the code change supports all leap
               years, including 2000.
   Thanks to Marc Vanden Bergh, Gemeentekrediet, Belgium.

Change 14.123  Omegamon for CICS variables OMSUPRTM and OMDCOMTM (wait
IMACICOC       time for SUPRA and DATACOM) were off by a factor of 16.
Jun  9, 1996   Insert  OMSUPRTM=16*OMSUPRTM;  OMDCOMTM=16*OMDCOMTM;
               after the existing statement OMADABTM=16*OMADABTM;
   Thanks to Michel Antoons, 3M, BELGIUM.

Change 14.122  Variable SSQELAP in TYPE72GO was input as &RB.8.6 but it
VMAC7072       should have been input as &RB.8. (causing RESPSTD to be
Jun  7, 1996   wrong).  Variable AVGELPTM in TYPE7204 dataset was also
               INPUT as &RB.8.6, but is now INPUT as &RB.8. and then
               converted with *1024/(1E6) like the other elapsed times.
               That these errors have been undetected for so long shows
               how infrequently they are needed.
   Thanks to Bruce Widlund, Merrill Consultants, USA.

Change 14.121  Variable PCTALLBY was not calculated for TYPE78CU dataset
ANALRMFR       but now is, and new variable LCUIORT in TYPE78CU contains
VMAC78         the aggregate I/O rate for all CHPIDs in that LCU.
Jun  5, 1996   In validating this change, I discovered that TYPE78CF
Jun  7, 1996   variables OFFLINE and ONLINE are interpreted by IBM as:
                   OFFLINE  ONLINE   IBM Report Explanation
                      Y       Y      PATH OFFLINE
                      Y              OFFLINE
                                     OFFLINE
                              Y      ONLINE
               ANALRMFR REPORT=CHAN report now prints LCUIORT, which is
               not printed by the equivalent IBM report but is useful!
   Thanks to Alan Sherkow, IS Management Strategies LTD, USA.

Change 14.120  Change 13.301 accidentally corrected the DEVNR for MSS
VMACUCB        devices, but commenting out IF DEVNR='1......  'B ...,
Jun  5, 1996   but the subsequent line should be changed from ELSE IF
               to IF (DEVNR=0FFFx AND NOT ....
   Thanks to Peter Durant, National Australia Bank, AUSTRALIA.

Change 14.119  This archaic member for CICS 2.1 and SAP journal segments
VMAC110S       had two typos:  variable JCTUTRID should be JCRUTRID and
Jun  5, 1996   SAPTEST='SA'     /*$$$*SAP*/  needed a semicolon.
   Thanks to Santamaria Antonio, Agip Petroli, ITALY.
   Thanks to Mark Cohen, SAS Institute, ITALY.

Change 14.118  Decoding Type 37 DETT section only kept 200 bytes of the
VMAC37         text string BRFDATTX, but some operators type up to the
Jun  1, 1996   maximum of 275 bytes, so the logic of the decoding of the
               SELD sections's text into BRFTEXT and BRFTEXTA was used
               in the DETT section to create BRFDATTX and new BRFDATTA.
               Replace the 7 lines in the DETT section starting with
                SKIP200=BRFDATLN-200;
               with the 14 lines from the SELD section starting with
                IF LENSELD GE 275 THEN INPUT BRFTEXT  $EBCDIC200.
               and then change SELD to DETT (4 occurrences) and change
               BRFTEXTA to BRFDATTA (6) and then BRFTEXT to BRFDATTX (7)
               in those 14 lines in the DETT section.  Finally, add new
               variable BRFDATTA to the KEEP= and LABEL statements.
   Thanks to Tony Sandora, CIGNA, USA.

Change 14.117  MSOUNITS was increased from 4 to 5 bytes by Change 14.076
BUILDPDB       only in VMAC30, but datasets JOBS SPUNJOBS STEPS TRND72 &
BUILD005       TYPE434 still were stored in only 4 bytes.  The impact is
BUIL3005       mathematically minimal,  with at most a loss of 255 units
TRND72         with 10-digit values of MSOUNITS
VMAC434           and values that large strongly suggest you should fix
May 31, 1996      your MSOCOEFF value (in IPS) to make it a very small
Mar 10, 2003      value - perhaps .001 to .0001 - so that MSOUNITS are
                  insignificant (less than .1 percent?) in the total
                  service units calculated by the SRM.  You can use a
                  PROC MEANS DATA=PDB.TYPE72 SUM; to get the percent of
                  SERVICE that is recorded in MSOUNITS and change your
                  MSOCOEFF, because MSOUNITS are not a measure of work,
                  and should not be included in the SRM's measurement of
                  work/service.  Work is CPU and I/O only.  Memory is
                  like air conditioning and floor space (you have to
                  have enough, and it only comes in big chunks) but
                  memory occupancy, floor space occupancy, and cooling
                  occupancy are not measures of computer work; they are
                  the fixed costs that makes computing possible!
               Why then make this minor change? Because Freddie's QA
               stream saw the minor difference in values between 13.13
               and 14.03 and so for the sake of perfection (rather than
               real impact), the change was extended to these members.
               Mar 10, 2003:  Original text had .000001 but .0001 is the
               minimum permitted value, other than zero.
               Feb 21, 2005:  See MXG Technical Note in Newsletter 47;
               IBM Discovered that the smallest value is actually .0122.
               Any value less than that value will be reported in the
               MSOCOEFF in TYPE72GO, but only 0.0122 will be used!
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

Change 14.116  Connect-Direct (originally NDM) V 1 R 4 Mod 1 uses two
FORMATS        existing reserved fields to compatibly add variables
VMACNDM        NDMLUOTH (Other*node LUNAME) and NDMNETYP (Network Type).
May 31, 1996   New MXG format $MGNDMTY was created to decode NDMNETYP.
   Thanks to Steve Beaver, Texas Commerce Bank, USA.

Change 14.115  The date part of SYNCSORT variables SORTBEGN and SORTEND
VMACSYNC       are off by one day for sorts that spanned midnight.  The
May 30, 1996   statement
May 31, 1996     IF SORTBEGN GT SORTEND THEN
                     SORTBEGN=SORTBEGN-DHMS(1,0,0,0);
               should have been
                 IF SORTBEGN GT SORTEND THEN
                     SORTEND=SORTEND+DHMS(1,0,0,0);
               Also, the +32 reserved bytes INPUT after HPUSED are now
               replaced with +22  TSTSYNCS &PIB.8. +2
               and IF TSTSYNCS GT 0 THEN CHARACTS=TSTSYNCS; was added
               after the @; to support the (as yet undocumented) 8-byte
               value so more than 2.4GB of characters can be counted.
   Thanks to Linda Berkley, Amdahl, USA.

====Changes thru 14.114 were included in MXG 14.03 dated May 27, 1996===

Change 14.114  Support for RACF 1.10 records (compatible).  MXG version
VMAC80         14.03 and later tolerate RACF 1.10 records (i.e., will
VMAC80A        not fail), but the new "extended length relocate sections
May 26, 1996   are not yet decoded, as I need test data records to
               understand how they can be useful.  When test data has
               been received and the new section is decoded, this note
               will be revised.

Change 14.113  Support for Thruput Manager #V041238 "Job Extract"
IMACTPM        extension (INCOMPATIBLE) restructured the fixed segment
VMACTPM        and creates these new variables in TYPETPMF dataset:
May 26, 1996     CPUTMINT='CPU USED*BY INTER*AND JOB ANAL'
                 CPUTMJAT='TOTCPU USED BY JOB ANALYZER'
                 JCTJOBID='JES*JOB*IDENTIFIER'
                 TPMTMCTA='CATALOGS*ALLOCATED*IN JOB ANAL'
                 TPMTMLCA='CATALOG*LOCATES*VIA*CAT LOOKASIDE'
                 TPMTMLCM='CATALOG*LOCATES*VIA*CAT MANAGEMENT'
                 TPMTMLRQ='CATALOG*LOCATES*REQUIRED'
               The default in MXG is for the new record; if you still
               process the base record you must set macro _TPMVERS to 0
               in member IMACTPM.
               In addition, the processing of the extract segments was
               redesigned.  Previously, an observation in TYPETPMV was
               created for each 16 bytes of the TPM data value in each
               TPMFIELD segment.  Now, there will be one observation for
               each TPMFIELD segment, with TPMVALUE now containing the
               first 64 bytes of the data value.  $ACCT segments have
               been found with 161 bytes, but all other data lengths are
               less than 64, so the new design should decrease the size
               and number of observations in TYPETMMV dataset.
   Thanks to Andy Chandler, Eagle Star, ENGLAND.

Change 14.112  IDMS Performance Monitor dataset IDMSBUFF was incorrectly
VMACIDMS       decoded.  CA uses ALIGN in their assembly, causing bytes
May 26, 1996   to be inserted in the SMF record that do not exist in the
Jul 11, 1996   DSECT, and two fields were increased from 2 to 4 bytes.
              -Insert after INPUT BUFNAME $EBCDIC18.   +2   to skip the
               undocumented bytes, and change the SKIP=SKIP-18; to -20;
              -May 26 change said: Change INPUT of BUFNDEFN and BUFNINUS
               from &PIB.2. to &PIB.4., and 28 lines later change the
               SKIP=SKIP-104 to -108.  However, Jul 11, change puts two
               fields back as &PIB.2., and instead inserts +2 after each
               of those halfwords. The SKIP change of May 26 is coorect.
   Thanks to Terry Heim, Ecolab Inc. USA.
   Thanks to Martin Wieland, Neckermann B.V., THE NETHERLANDS

Change 14.111  Support for NETSPY Release 4.7 compatibly added variables
VMACNSPY       to several datasets:
May 25, 1996   Dataset   Variables added
               NSPYNCPY  CBPIDTID,CBPCBFLG
               NSPYTIC3  NSPNTMBR NSPNTMBS NSPVTMFR NSPVTMFS
               NSPYVIRT  VRBPIINB VRBBYINB

Change 14.110  Variables BADTAP EDMTAP and DYNAM were created but not
VMACTMS5       kept in dataset TMSREC; they have now been added to the
TYPETMS5       KEEP= lists in both VMACTMS5 and TYPETMS5.
May 24, 1996
   Thanks to Terry Duchow, U.S. Postal Service, USA.

Change 14.109  Type 110 SMF record with subtype=2818 ('B02'X) is written
UTILGETM       by Boole and Babbage's CICS Manager, but UTILGETM has but
May 24, 1996   255 buckets to count subtypes.  Now, UTILGETM recognizes
               this record, counts it as a subtype 2 record, and the
               UTILGETM FOUND A RECORD WITH SUBTYPE GREATER THAN 255
               message is not printed for this statistics record.
   Thanks to Trevor Ede, Bank of New Zealand, NEW ZEALAND.

Change 14.108  MXG 14.02 only.  BY VARIABLES ARE NOT PROPERLY SORTED.
DIFFDB2        The PROC SORT for DATA = _LDB2STR for new PDB.DB2STATR
May 23, 1996   dataset should have BY SYSTEM QWHSSSID QLSTLOCN QWHSSTCK;
               (QLSTLOCN was missing from that BY statement).
   Thanks to Tony Sandora, CIGNA, USA.

Change 14.107  MXG 14.02 only.  INPUT STATEMENT EXCEEDED with type 37
VMAC37         because BRFLOCAL and BRFRMT are not separate new fields.
May 23, 1996   (The type 37 documentation moved from the NetView Admin
               Guide into the Application Programming Guide in NetView
               2.4, but I then misread Table 33 and thought there were
               two new 30-byte fields (BRFLOCAL, BRFRMT), but they are
               actually only redefinitions of table 34 whose fields are
               already decoded by MXG, so there truly was NO CHANGE in
               the Netview 2.4 type SMF record, and the text of 14.090
               has been revised.)  This change removed the DO group
               (IF BRFREVLT GE 2.4 THEN DO; ... END;) that had been
               incorrectly added by 14.090.  The other correction in
               14.090 was valid.
   Thanks to Tony Sandora, Cigna, USA.

Change 14.106  Variable A14EQPCT (MAXQTIME Purge Count) was not kept in
VMAC110        dataset CICCONSR (ISC/IRC data), but now is. Also, the
May 23, 1996   variables MCTMNTAD and SMFPSRVR were not kept in dataset
               CICSEXCE, but now have also been added to the KEEP= list.
   Thanks to Don Deese, Computer Management Sciences, USA.
   Thanks to Dawn Medwid, Aetna, USA.

Change 14.105  Variable QWSDLR (High used RBA address of log) was added
VMACDB2        to the LENGTH statement as length 8, and formatted HEX12.
May 23, 1996   as it is an address, not a number; this was supposedly
               fixed by Change 13.129 but was not actually made til now.
               Also, the input of QWSCIID after IF NRQWSC GT 15 THEN DO;
               was changed to XXXCIID, so that the real value of QWCSIID
               is not corrupted when there are more than 15 segments.
   Thanks to Tom Parker, Hogan Systems, USA.

Change 14.104  Variables BEGTIME and ENDTIME were not created in the DB2
DIFFDB2        interval datasets DB2STATB (buffer pool) and DB2STATR
May 23, 1996   (remotes), but now they are!
   Thanks to Susan Marshall, SAS Institute Cary, USA.

Change 14.103  Variables ACTLNGH, NETLNGH, and USELNGH should be INPUT
VMACORAC       as &PIB.2. instead of &PIB.4., so that accounting data
May 23, 1996   is correctly input.
   Thanks to Dave Harris, TVA, USA.

Change 14.102  MXG 14.02 only. INPUT STATEMENT EXCEEDED RECORD LENGTH
VMAC7072       with MVS/ESA 5.2 type 72 record because of MXG coding
May 22, 1996   errors (and insufficient testing of Change 14.085).
              -Find the statement    IF LENSCS GE 316 THEN DO;
               Change the following INPUT statement for variable
               R723CSRS from &PIB.4.6 to &PIB.8.6, and for variables  .
               R723CSPA and R723CSPE from &PIB.4. to &PIB.8.
              -Find the statement SKIP=LENSCS-292; (which was 11 lines
               after the IF LENSCS GE 316 THEN DO; statement), and move
               it immediately before the IF LENSCS GE 316 THEN DO;
              -After R723CSRS=1024*R723CSRS; statement, insert new line
               SKIP=SKIP-24;
   Thanks to Tony Sandora, CIGNA, USA.

Change 14.101  The error message "JOB WAS NOT EXECUTED ON THE FIRST DAY'
MONTHBLD       was made more readable, and now points to MXG Newsletter
May 22, 1996   TWENTY-FIVE for instructions for "Running the MONTHBLD
               program on a day other than the 1st day of the month".
   Thanks to Bernie Levy, CUC International, USA.

Change 14.100  In fifteen members, the datetime literal value of
IMACEXCL       '01JAN00:00:00:00'DT was used to initialize variables to
TYPEMOND       IBM's epoch datetime value, but that 00 year value can be
TYPEMONI       interpreted as 1900 or 2000, depending on the value of
TYPEMONX       your SAS option YEARCUTOFF, so MXG was changed to use
TYPEMON8       '01JAN1900:00:00:00'DT to always set the correct value.
TYPETMON       MXG uses this value only when decoding raw records into
VMACCIMS       SAS datasets, so it is highly unlikely that you would
VMACHURN       have this literal value in your own SAS programs;
VMACOMCI       nevertheless, it would certainly be wise to search you
VMACVMON       SAS source libraries for '01JAN00's existence and change
VMAC110        to the 1900 value to thereby support the year 2000.
VMAC110M
VMAC110S
VMAC116
VMACDB2H
YEAR2000
   Thanks to Graeme Yeandle, British Telecom, ENGLAND.

Change 14.099  The @137,141,143,145 for the input of OFFARMS,LENARMS,
VMAC30         NRARMS and EXTRARMS should have been 149,153,155 and 157
May 22, 1996   for the Auto Restart section.  I still do not have a dump
               of a real type 30 record with Auto Restart section, but
               I just happened to notice this error.

Change 14.098  Support for AS/400, OS/400 Release 3.6 INCOMPATIBLY added
VMACQAPM       fields to the QAPMDISK, deleted fields in QAPMCONF,
May  1, 1996   increased the size of one field in QAPMSYS, and added and
               deleted fields from QAPMJOBS.
               Added to QAPMDISK:
                  DMDRN   ='MIRRORED*DEVICE*RESOURCE*NAME'
                  DMIRN   ='MIRRORED*IOP*RESOURCE*NAME'
                  DSCCFW  ='CONTROLLER*CACHE*FAST*WRITES'
                  DSCCRH  ='CONTROLLER*CACHE*READ*HITS'
                  DSCCWH  ='CONTROLER*CACHE*WRITE*HITS'
                  DSDRN   ='DEVICE*RESOURCE*NAME'
                  DSPCPH  ='CONTROLLER*CACHE*PARTIAL*READ HITS'
                  IOPRN   ='IOP*RESOURCE*NAME'
                  and deleted variables DS/DMARMP DS/DMIOPA DS/DMIOPB
                  and DS/DMPORT
               Added to QAPMJOBS:
                  JBDRN   ='DEVICE*RESOURCE*NAME'
                  JBIRN   ='IOP*RESOURCE*NAME'
                  JBSJNB  ='SUBMITTORS*JOB*NUMBER'
                  JBSJNM  ='SUBMITTORS*JOB*NAME'
                  JBSJUS  ='SUBMITTORS*JOB*USER'
                  JBTTYE  ='TASK*TYPE*EXTENDER'
                  JBTTYP  ='TASK*TYPE'
               Only these four structures have been enhanced for 3.6.0
               as of this date.  Further updates may be expected.
   Thanks to Clark Jennings, Reynolds Metal, USA.

Change 14.097  MXG 14.02 only.  Zero obs in dataset NSPYLU due to typo.
VMACNSPY       In line number 15610061 which read:
May  1, 1996     INPUT   LRSPHOST  &PIB.4.6   /*
               that extraneous "/*" must be removed from that line.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

====Changes thru 14.096 were included in MXG 14.02 dated Apr 25, 1996===

Change 14.096  Duplicate INPUT of the same variable in the same INPUT
VMACNSPY       statement did not cause errors, but to avoid confusion,
Apr 26, 1996   those INPUT statements were cleaned up in these members:
                  VMACIMSA     SYNCUOWC    Duplicate line deleted
                  VMACLMS      OPTION1     Duplicate renamed OPTIONLM
                  VMACNSPY     CBPPOOL     New variable CBPPOOLU created
                  VMACNSPY     NSPBEXPN    New variable NSPBEXTN created
                  VMACQAPM     xxIOPA,B    Input @20, @21 removed
                  VMACRMFV     SSHCPUX     Duplicate renamed SSHCPUX
                  VMACX37      VOLSER      Duplicate renamed VOLSERX
                  VMACXAM      DASDCACH    Duplicate renamed DASDCACX
                  VMACXCOM     UNDOC04     Duplicate renumbered.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

Change 14.095  NETSPY type S record from R4.4 caused STOPOVER; the MXG
VMACNSPY       tests for NSPYENTL=108 and NSPYENTL=160 must be changed
Apr 26, 1996   to NSPYENTL=112 and NSPYENTL=164 respectively.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.

Change 14.094  Variable SYNCTIME was not kept in TYPE30_0 dataset, but
VMAC30         now it is.
Apr 26, 1996
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
   Thanks to Hartmut Beckmann, Karstadt, AG, Germany

Change 14.093  Support for IBM's Cache RMF Reporter (CRR) 1.7 adds new
VMACACHE       variables and a new CACMODEL='02'X, for Emulated 3990s
Apr 25, 1996   (such as the RAMAC Array Subsystem).  The IBM changes are
               compatibly made, but there will be no observations in
               dataset CACHE90 for the new Emulated 3990s records until
               you install this change.  New variables in CACHE90 are:
                  CACMODEL='CACHING*SUBSYS*MODEL'
                  CWCC    ='CONCURRENT*COPY*CONTAM*WRITES'
                  DCTC    ='DEVICE CACHE TRACKS CONFIGURED'
                  DCTR    ='DEVICE CACHE TRACKS REMOVED'
                  DVRD    ='DEVICE READS*BY*CONTROL UNIT'
                  DVRH    ='DEVICE READ HITS*BY*CONTROL UNIT'
                  DVWH    ='DEVICE WRITE HITS*BY*CONTROL UNIT'
                  DVWR    ='DEVICE WRITES*BY*CONTROL UNIT'
                  PPRC    ='PPRC*WRITE*COUNT'
                  RSV     ='LOWER*INTERACE*IO*(MILLISEC)'
                  SFRD    ='TRACKS*READ*FROM SIDEFILE'
                  TSRR    ='TRACKS*STAGED*FOR RAID RECONSTRUCION'
                  CSCSDFM0='CACHE 0*DISABLED*FOR*MAINTENANCE?'
                  CSCSDFM1='CACHE 1*DISABLED*FOR*MAINTENANCE?'
                  CSCSTAT0='CACHE 0*STATUS'
                  CSCSTAT1='CACHE 1*STATUS'
                  CSNSBAT0='NVS 0*BATTERY*IS*DEFECTIVE?'
                  CSNSBAT1='NVS 1*BATTERY*IS*DEFECTIVE?'
                  CSNSDFM0='NVS 0*DISABLED*FOR*MAINTENANCE?'
                  CSNSDFM1='NVS 1*DISABLED*FOR*MAINTENANCE?'
                  CSNSPND0='NVS 0*PENDING*DUE TO*ERROR?'
                  CSNSPND1='NVS 1*PENDING*DUE TO*ERROR?'
                  CSNSTAT0='NVS 0*STATUS'
                  CSNSTAT1='NVS 1*STATUS'
               Note that variables CSCSDFM, CSCSTAT, CSNSBAT, CSNSDFM,
               CSNSPND and CSNSTAT were replaced by the above pairs.

Change 14.092  IBM's RMDS Version 2.2 is supported by MXG, as there was
VMACRMDS       no change in the contents of their SMF record.
Apr 25, 1996

Change 14.091  Boole's STOPX37's replacement version records are trash.
VMACX37        The version 3.5 SMF record was replqced by a record with
Apr 25, 1996   only text fields.  Many users complained to Boole, and
               Boole was finally persuaded to create the SMF record that
               should not have been replaced in their next version.  As
               yet I have no documentation by which to update MXG.
               Update: See Change 14.207 for PRO/SMS replacement.

Change 14.090  The original text of this change said that the NETVIEW
VMAC37         2.4 type 37 SMF record was INCOMPATIBLY changed, but that
Apr 25, 1996   is false - see Change 14.107 - there was no change.
May 23, 1996   However, 14.090 did correct MXG's logic error that had
               caused INPUT STATEMENT EXCEEDED errors due to incorrect
               detection of the existence/insertion of OFFETHD:
               The line IF OFFPROD-3-COL GE 16 THEN DO; was changed to
                        IF OFFPROD-3-COL EQ 16 THEN DO;  and the line
                        IF OFFPROD-3-COL GE 24 THEN DO; was changed to
                   ELSE IF OFFPROD-3-COL GE 24 THEN DO;
   Thanks to Joe Schwartz, CIGNA, USA.

Change 14.089  Support for APAR PN69653, which changes COLLTIME in IBM
VMAC110        type 110 record from YY to YYYY for year 2000 compliance.
YEAR2000       Member YEAR2000 updated.
Apr 25, 1996

Change 14.088  BLKSIZE=23364 values of Change 12.248 were implemented in
JCLIMSLG       the sample JCL in member ASMIMSLG, but only now have the
Apr 25, 1996   DCB parameters been corrected in member JCLIMSLG.
   Thanks to Waldemar Schneider, SAS Institute Cary, USA.

Change 14.087  Variable QWHCATYP exists both in DB2 datasets and in MQM
FORMATS        dataset TYPE116, but with different values for Attachment
VMAC116        Type, so the variable QWHCATYP in TYPE116 dataset is now
Apr 25, 1996   renamed QWHCXTYP which is formated with MG116TY to decode
               the MQM attachment types. This is an INCOMPATIBLE change,
               if any of your reports used variable QWHCATYP from the
               dataset TYPE116.  Sorry for the inconvenience!
   Thanks to Rick Apel, Square-D Company, USA.

Change 14.086  ASMTAPES MAINTLEV 9 supresses the stoppage of writing the
ASMTAPES       Allocation subtype after TMNT013E error message.  See the
Apr 25, 1996   MXG Technical Note in CHANGES in MXG 14.02 (to be printed
               in Newsletter 30 this summer) for further discussion.
               Find the TMNT013E message WTO and change that code to
               look like this: (change text of WTO, comment NI and MVC):
         WTO   'TMNT013I A LOCK OBTAIN LOOP HAS EXCEEDED MAXIMUM TIME AX
               LLOWED - POSSIBLE SYSTEM STALL'
*        NI    OPTIONS,255-DOALLOC    TURN OFF ALLOCATION BIT
*        MVC   PARSSAL,=CL3'NO '      UPDATE STATUS MESSAGE
         B     MONITOR                AND LEAVE
LOCKED   EQU   *
   Thanks to Mike ONeill, Dun and Bradstreet, USA.

Change 14.085  Variables added by IBM in MVS/ESA 5.2.0 but overlooked:
VMAC7072       Dataset TYPE72GO (Goal Mode Service/Report Class data):
VMAC74           R723CSRS='SHARED*PAGE*RESIDENCY*TIME'
Apr 23, 1996     R723CSPA='SHARED*PAGEINS*FROM*AUXSTORE'
                 R723CSPE='SHARED*PAGEINS*FROM*ESTORE'
               Dataset TYPE74OM: (Open Edition MVS):
                 OMVSCAMN='MIN*MEM MAP STORAGE PAGES*PER CYCLE'
                 OMVSCAMX='MAX*MEM MAP STORAGE PAGES*PER CYCLE'
                 OMVSCGMN='MIN*SHARED MEM PAGES*PER CYCLE'
                 OMVSCGMX='MAX*SHARED MEM PAGES*PER CYCLE'
                 OMVSCHMN='MIN*SHARED MEM IDS*PER CYCLE'
                 OMVSCHMX='MAX*SHARED MEM IDS*PER CYCLE'
                 OMVSCMAP='AVG*MEM MAP STORAGE PAGES*PER CYCLE'
                 OMVSCMMN='MIN*MSG QUEUE IDS*PER CYCLE'
                 OMVSCMMX='MAX*MSG QUEUE IDS*PER CYCLE'
                 OMVSCMSG='AVG*MSG QUEUE IDS*PER CYCLE'
                 OMVSCPAG='AVG*SHARED STORAGE PAGES*PER CYCLE'
                 OMVSCSEM='AVG*SEMAPHORE IDS*PER CYCLE'
                 OMVSCSHM='AVG*SHARED MEM IDS*PER CYCLE'
                 OMVSCSMN='MIN*SEMAPHORE IDS*PER CYCLE'
                 OMVSCSMX='MAX*SEMAPHORE IDS*PER CYCLE'
                 OMVSCSPG='AVG*SHARED MEM PAGES*PER CYCLE'
                 OMVSCXMN='MIN*SHARED STORAGE PAGES*PER CYCLE'
                 OMVSCXMX='MAX*SHARED STORAGE PAGES*PER CYCLE'
                 OMVSMMAP='MAX*MEM MAP PAGES*PER CYCLE'
                 OMVSMMSG='MAXIMUM*MESSAGE*QUEUE*IDS'
                 OMVSMPAG='MAX*SHARED STORAGE PAGES*CONSTANT'
                 OMVSMSEM='MAXIMUM*SEMAPHORE*IDS'
                 OMVSMSHM='MAXIMUM*SHARED*MEMORY*IDS'
                 OMVSMSPG='MAXIMUM*SHARED*MEMORY*PAGES'
                 OMVSOAMN='MIN*EXCEED MEM MAP PAGES*PER CYCLE'
                 OMVSOAMX='MAX*EXCEED MEM MAP PAGES*PER CYCLE'
                 OMVSOGMN='MIN*EXCEED MAX SHR PAGES*PER CYCLE'
                 OMVSOGMX='MAX*EXCEED MAX SHR PAGES*PER CYCLE'
                 OMVSOHMN='MIN*EXCEED MAX SHRMEM IDS*PER CYCLE'
                 OMVSOHMX='MAX*EXCEED MAX SHRMEM IDSPER CYCLE'
                 OMVSOMAP='AVG*EXCEED MEM MAP PAGES*PER CYCLE'
                 OMVSOMMN='MIN*EXCEED MAX MSGS*PER CYCLE'
                 OMVSOMMX='MAX*EXCEED MAX MSGS*PER CYCLE'
                 OMVSOMSG='AVG*EXCEED MAX MSGS*PER CYCLE'
                 OMVSOPAG='AVG*EXCEED STORAGE PAGES*PER CYCLE'
                 OMVSOSEM='AVG*EXCEED MAX SEMA IDS*PER CYCLE'
                 OMVSOSHM='AVG*EXCEED MAX SHRMEM IDS*PER CYCLE'
                 OMVSOSMN='MIN*EXCEED MAX SEMA IDS*PER CYCLE'
                 OMVSOSMX='MAX*EXCEED MAX SEMA IDS*PER CYCLE'
                 OMVSOSPG='AVG*EXCEED MAX SHR PAGES*PER CYCLE'
                 OMVSOXMN='MIN*EXCEED STORAGE PAGES*PER CYCLE'
                 OMVSOXMX='MAX*EXCEED STORAGE PAGES*PER CYCLE'
                 OMVSCYCT='CYCLE*TIME*VALUE'

Change 14.084  INPUT STATEMENT EXCEEDED for SUBTYPE=41. The line with
VMACBETA         DATE   &PD.4   must be   DATE  &PD.4.  (i.e., the final
Apr 22, 1996   period was missing).  Originally, this text also said
May 26, 1996   "there are other changes in the subtype=41 record that
               are not documented", but that was not true; there were no
               other changes to that subtype of the BETA93 SMF record.
   Thanks to Mr. Bronner, Versandhaus Wenz, GERMANY

Change 14.083  Variables QW0045SR and QW0045XR added to T102S045 dataset
VMAC102        by DB2 4.1, with "Suspend Reason" and "Extent of Global
Apr 22, 1996   Contention" flags.
   Thanks to Dan Kaberon, Hewitt Associates, USA.

Change 14.082  Labels for QBGxxx variables were changed from "SES ..."
VMACDB2        to "CF ...".  These variables report Coupling Facility
Apr 16, 1996   contentions and false contentions.  What was originally
               called Shared Expanded Storage (SES) is now known as the
               Coupling Facility (CF).

Change 14.081  The OPTIONS MAUTOSOURCE SASAUTOS=SOURCLIB; statement in
TYPEIMSA       TYPEIMSA was removed.  Those options have been set by the
Apr 16, 1996   CONFIG option for many versions, and so this statement is
               redundant; it also caused SAS/CPE problems in the way
               they modify MXG code on the fly.
   Thanks to Carl Sommer, SAS Institute Cary, USA.

Change 14.080  VM/370 (archaic!) monitor records with RELEASVM='01' were
VMACVMON       not recognized in the Device (6.02) section.  Before the
Apr 16, 1996   line reading    ELSE       LENDV2=1;    insert this line:
               ELSE IF RELEASVM EQ '01' THEN LENDV2=2;
               to correct the error.
   Thanks to Jim Cheesman, NWNL Corporation, USA.

Change 14.079  Date variables which are zero printed as 01JAN1960, which
VMACTLMS       is the SAS date value epoch, but this caused confusion on
Apr 16, 1996   reports (which previously printed only a 0).  All of the
               statements  ... THEN variable='01JAN1960'D; were replaced
               with THEN variable =.; (to set zero dates to missing).
   Thanks to Rey Marquez, General Accident, USA.

Change 14.078  Reserved Change Number.
Apr 12, 1996

Change 14.077  OPC Release 3.0 and 3.1 may cause INVALID MTD SUBTYPE
EXOPC24Y       messages to fill the SAS log, and observations were not
IMACOPC        output.  New fields that were not in the 3.0 manual are
VMACOPC        now in the 3.1 manual, but also now show up in records
Apr 11, 1996   created by OPC Release 3.0!  Since I can't get straight
Apr 16, 1996   answers from IBM as to whether the fields were really
               there in 3.0 and I missed them, or whether PTFs created
               the new fields, I have added support for the new data but
               you will have to update macro _OPCVER in member IMACOPC
               to a value of 3.1 for MXG to read in the new fields.  In
               otherwords, try processing OPC 3.0 with _OPCVER 3, and if
               that fails, change _OPCVER to 3.1 and try again!
               Dataset OPC24D_B has new variables MTDRESE and MTDRESQ.
               Dataset OPC24_25 formerly contained subtypes 2,3,4 and 5
               (MT0TYPE) of the Type 24 record, but this change creates
               new dataset OPC24_2 for the subtype 2, and now OPC24_25
               contains only subtypes 3,4, and 5.  The new OPC24_2
               dataset exit name is EXOPC24Y because EXOPC242 is already
               in use.
   Thanks to Randy Shumate, LEXIS-NEXIS, USA.

Change 14.076  Variable MSOUNITS is now stored as 5 bytes instead of 4,
VMAC30         because a value such as 2,804,486,170 is truncated to
Apr 11, 1996   only 2,814,486,016 when stored in 4 bytes.
   Thanks to Aldo Valenti, SAS Italy, ITALY.

Change 14.075  If KEEPALL=YES was specified, and some of the parameters
VMXGSUM        were not used in your %VMXGSUM invocation, the logic to
Apr 10, 1996   reconstruct the strings failed since it should never have
               been executed.  This change makes KEEPALL=YES work as it
               was intended, and provides improved error checking.
   Thanks to Tom Elbert, John Alden Insurance, USA.

Change 14.074  If TRNDLPAR has less than one week's data (i.e., first
GRAFLPAR       time it's being used), strange graphs occurred because
Apr 10, 1996   MXG assumed more than one week's data.  This change uses
               the "best fit" algorithm of GRAFTRND so that all points
               represent a monday or a start of the week.

Change 14.073  ERROR: VARIABLE QWHSIID NOT FOUND with DB2 I/O reports
ANALDB2R       (a holdover from before ANALDBTR existed to pair the DB2
Apr 10, 1996   I/O trace records) is corrected by this change.
   Thanks to Roland Nieuwenhuizen, SAS Netherlands, THE NETHERLANDS.
   Thanks to Paul Ritzen, KLM, THE NETHERLANDS.

Change 14.072  Variable CLASRC was added to EREPOBR dataset (to identify
ADOCEREP       which record created the observation), and ADOCEREP was
VMACEREP       updated to describe datasets EREPOBL and EREPHDR.
Apr 10, 1996

Change 14.071  Dataset DB2STATB previously had zero observations unless
EXDB2STB       you tailored exit member EXDB2STB, because I thought the
Apr 10, 1996   dataset could be large.  In fact, there is only one obs
               for each buffer pool for each interval, and thus I have
               removed the comment block around the OUTPUT _LDB2STB;
               statement, so observations will now always exist.
   Thanks to Chuck Hopf, MBNA, USA.

Change 14.070  IBM APAR OW19251 addresses RACF and the year 2000; since
VMAC80A        the RACF database only has three bytes for date, IBM has
Apr 10, 1996   declared that RACF dates with YY of 71 or higher will be
               interpreted as year 19YY and dates with YY of 70 or less
               will be interpreted as year 20YY.  Further information is
               to be in APAR OW19683.  In examining VMAC80A, two dates
               were not converted from Julian to SAS.  After the INPUT
               of variables REVOKDTE and RESUMDTE (two separate places),
               insert:
                 IF REVOKDTE GT 0 THEN REVOKDTE=DATEJUL(REVOKDTE);
                 IF RESUMDTE GT 0 THEN RESUMDTE=DATEJUL(RESUMDTE);

Change 14.069  TYPE99_2 now contains one observation for each period in
VMAC99         each service class that had activity; previously only the
Apr 10, 1996   first period's data was output.
               Before the INPUT @SM992CPO insert DO _I_=1 TO SM992CPN;
               After the %%INCLUDE SOURCLIB(EXTY99U2); insert
                 SM992CPO=SM992CPO+SM992CPL;  END;
               I discovered that the SRVCLASS variable that I INPUT
               from the Period Data Section must instead be INPUT from
               the Class Data Section (i.e., where SM992NAM was input),
               and I now INPUT new variable SM99PCNM where SRVCLASS was
               INPUT, labeled SM99PCNM='INTERNAL*SERVICE*CLASS*NAME' and
               is kept instead of SM992NAM.  The Internal Service Class
               Name only appears in type 99 records, with names like
               $SRMDInn for discretionary periods, or $SRMBEST, $SRMGOOD
               and $SRMDUMP names.
   Thanks to Sridhar Gopalaswami, Barnett Technologies, USA.

Change 14.068  MXG only output the first QLST segment in DB2STATS, but
DIFFDB2        there is one segment for each Remote Destination used in
EXDB2STR       each interval.  Now, the QLSTxxxx variables in DB2STATS
IMACDB2        will contain the sum of all remote activity to all remote
VMACDB2        locations during the interval, while new dataset DB2STATR
Apr  9, 1996   contains one observation for each Remote Location during
               each interval with the detail QLSTxxxx counts.  Member
               DIFFDB2 was altered to also deaccumulate DB2STATR.
   Thanks to Peter Li, John Deere, USA.
   Thanks to Ralph Baechle, John Deere, USA.

Change 14.067  Variable QBSTHBE in DB2STATB and variables QBnTVPL,
DIFFDB2        QBnTHPL, and QBnTHBE for n=0,1,2,3 in DB2STATS are not
Apr  2, 1996   not accumulated values but are endpoint values, so their
               DIF() statements were removed from DIFFDB2.  (QBSTHPL and
               QBSTVPL were removed from DB2STATB by Change 13.269).
   Thanks to Peter Li, John Deere, USA.

Change 14.066  Validation of TYPE88 with data corrected INPUT STATEMENT
VMAC88         EXCEEDED RECORD LENGTH errors  Input of SMF88SDL should
Apr  2, 1996   have been &PIB.4. vice &PIB.2., and the +2 after SMF88SAB
               must be +4, SMF88RVN is now input as &NUM.2 vice &PIB.2.,
               and SMF88LIT is input TODSTAMP8 and formatted, and new
               field SMF88EFS (undocumented in SMF manual) is input.
   Thanks to Lee Borgman, Boeing Information Services, USA.

Change 14.065  APARS OW08565 and OW10584 adds SYNCTIME and statistics
VMAC28         (CPU utilization, Fast Program Storage Utilization, and
Apr  1, 1996   Buffer Storage Utilization) for each of the (up to 18!)
               processors in the 3746/900 in the NAC segment, and adds
               TIC utilization per frame and per byte sent and received
               in the CSL segment.
   Thanks to John Astle, National Australia Bank, AUSTRALIA.
   Thanks to Sandro Aiello, National Australian Bank, AUSTRALIA.

Change 14.064  Using Tape instead of DASD for ANALDSET fails; the step
ANALDSET       added in MXG 13.02 reused the same DDNAME.  The lines
Apr  1, 1996    DATA SORTSTEP.SORTSTEP; SET SORTSTEP.SORTSTEP must be
                DATA TYPE30.TYPE30_4; SET SORTSTEP.SORTSTEP; and a new
               data step was added after that step with
               DATA SORTSTEP.SORTSTEP; SET TYPE30.TYPE30_4;
   Thanks to Bill Bechtloff, Acxion, USA.

Change 14.063  DASDMPL value 1000 times too large in dataset TYPE42DS.
VMAC42         RESPTIME is in millisec, not sec, so equation must be:
Apr  1, 1996      DASDMPL=RESPTIME*DASDRATE/1000;
   Thanks to Xiaobo Zhang, Insurance Services Office, USA.

Change 14.062  Just before the "DATA PDB.ASUMAPAF;" statement, insert:
ASUMAPAF         PROC SORT DATA=TEMPAPA2;
Apr  1, 1996      BY SYSTEM STARTIME LPARNUM LPARNAME;
               to protect sort order if you increase the number of
               MDF domains.
   Thanks to Scott Snyder, Card Establishment Services, USA.

Change 14.061  Variables MVUCDATE and MVUCTIME need  ??  modifier (just
VMACEDGS       like change 13.124) to prevent INVALID DATA messages when
Apr  1, 1996   there was no last user change date.  In addition, dataset
               EDGSOREC and EDGSOVOL were not correct.  After the +7,
               insert @; IF MOCFLG EQ '08'X THEN INPUT before MOOWNSUR,
               replace  IF LENGTH-COL+1 GE 4 THEN INPUT with ELSE INPUT
               and change IF MOVOLNO GT 0 THEN DO to  IF MOVOLNO GT 0
               AND MOCFLG NE '08'X THEN DO....
   Thanks to Emmanuel Chenay, Toyota Motor Europe, BELGIUM.

Change 14.060  UCICSCNT CICS diagnostic tool was enhanced to count the
IMACEXCL       different record sizes found in your CICS transaction
VMAC110        (type 110 subtype 1) data that you can verify if all of
UCICSCNT       your regions have the same EXCLUDE/INCLUDE definitions.
Apr  1, 1996   Comments in IMACEXCL were improved for multi-line INPUT
               statements for the same CICS field number, and debugging
               logic in VMAC110 was strengthened.

Change 14.059  TYPE72GO variable VALDSAMP was incorrect, which caused
VMAC7072       the PCTDLxxx variables to sometimes be wrong. The correct
Mar 29, 1996   equation should have five terms:
                VALDSAMP=PCTUSCUS+PCTDLTOT+PCTDLUNK+PCTDLIDL+PCTDLPQU;
               In addition, VALDSAMP is added to the KEEP= list for the
               TYPE72GO dataset.
   Thanks to Bruce Widlund, Merrill Consultants, USA
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 14.058  TYPE71 statistics for Shared Page Groups added in ESA 5.1
VMAC71         by IBM but missed by MXG until now.  New variables are:
Mar 29, 1996     SHPG-IN/OU-AU/EX - Page in/out from AUX and ESTORE
                 SHPGSYxx - Shared Page Groups in the system
                 SHPGCSxx - Shared Page Groups in CSTORE
                 SHPGESxx - Shared Page Groups in ESTORE
                 SHPGAUxx - Shared Page Groups in AUX STORE
                 SHPGFXxx - Shared Page Groups Fixed
                 SHPGLOxx - Shared Page Groups Fixed below 16MB
                  where xx = AV,MN,MX for average, min and maximum.
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 14.057  Support for STK's NearOAM (formarly NearImage) user SMF
EXTYNOAM       record creates dataset TYPENOAM with one observation for
IMACNOAM       each individual request to retrieve an object.  Their SMF
TYPENOAM       record can contain up to 100 requests from a single tape;
VMACNOAM       MXG creates one observation per request, with the start
Mar 28, 1996   and end times and duration of each request, and the name
               of the tape dataset being processed.
   Thanks to Fiona Crane, Sun Alliance Insurance Group, ENGLAND.

Change 14.056  Cosmetic.  Test macro _TESTINTX defined in VMACVMXA is
JCLTEST6       too long and is renamed _TESTINX to conform with 8-byte
VMACVMXA       limit of SAS.  There was no change to JCLTEST6, but that
Mar 27, 1996   MXG job encountered this error in VMACVMXA.
   Thanks to Philip Sills, IFF International Flavors & Fragrance, USA.

Change 14.055  STK's HSC Subtype 08 record comes in two (incompatible)
VMACSTC        lengths of 38 or 40 bytes, but MXG Change 14.001 knew of
Mar 27, 1996   only the 38 byte record.  STK expanded a one byte thrice
               defined field into three separate fields.  Either length
               record caused INPUT STATEMENT EXCEEDED error message.
               To fix, conditionally execute the INPUT statement by
               inserting    IF LENGTH-COL+1 EQ 18 THEN before input,
               then block replicate the input, change the condition to
                       ELSE IF LENGTH-COL+1 GE 20 THEN
               and then remove the +M1 before fields STC08CID, STC08MAG
               in the GE 20 input.
   Thanks to Herb G. Strozinsky, Burlington Northern Santa Fe RR, USA.
   Thanks to Sudie Wulfert-Schickedanz General American Life Ins, USA.

Change 14.054  Support for Netview FTP (File Transfer Protocol) subtype
FORMATS        51x, written when the Server Finished Request Processing
VMACFTP        creates FTP25X dataset with bytes transferred, CPU time,
Mar 27, 1996   begin and end, as well as compression factor.
               APAR PN82953 corrects documentation.
   Thanks to Herb G. Strozinsky, Burlington Northern Santa Fe RR, USA.

Change 14.053  Variables LUNETID PCSESSID VILUNAME in NSPYLU dataset are
VMACNSPY       trashed, because two new fields, LUATTCHS and LUUSRSPS
Mar 27, 1996   were not input by MXG.  After the line that INPUTs
Mar 28, 1996   variable LUNRSPSS, and before the @; that ends that
               INPUT statement, insert
                  LUATTCHS  &PIB.2. /*ATTACHES*INITIATED*ONLY LU 6.2*/
                  LUUSRSPS  &PIB.2. /*USER*RESPONSES*(BOTH6.2+NON-6.2)*/
               then add the two variable names at the end of the NSPYLU
               KEEP= list, just before the _KNSPYLU macro reference.
               Additionally, variable NSPYNETW was trashed, as six bytes
               were inserted in July 95 that were not in the March 95
               documentation for Netspy 4.6.  To circumvent, after the
               line that INPUTs SGTRGT4, insert a line with   +6   to
               skip six bytes.  The actual change creates new variable
               NSPYDBKY, Database Key from the Netspy Header, but does
               not keep the new variable (until someone tells me what
               use it is in which Netspy datasets!).
   Thanks to Dennis Longnecker, State of Washington OAC, USA.

Change 14.052  HSM ABARS short FSRTYPE=15 record caused INPUT STATEMENT
VMACHSM        EXCEEDED RECORD error.  While I am still investigating
Mar 15, 1996   what changed, to circumvent the error and skip the bad
               record, insert   IF LENGTH-COL+1 LT 274 THEN RETURN;
               in two places, immediately preceding both occurrences  of
                    INPUT @15+OFFSMF
                          WFSRJOB   $EBCDIC8. /*REQUESTING*JOB*...
   Thanks to Robert A. Burns, The Travelers, USA.

Change 14.051  Variable ELAPSTM was not created in dataset TYPE72GO Goal
VMAC7072       Mode, causing RMFINTRV to have missing values for all of
RMFINTRV       the response (TSORESP,BATRESP) when you migrate to WLM
Mar 15, 1996   Goal Mode, because ELAPSTM is the numerator of response.
               Just adding ELAPSTM to KEEP list for TYPE72GO won't work.
   Thanks to Waldemar Schneider, SAS Institute Cary, USA.
   Thanks to Kevin Carpenter, First of America Services, USA.

Change 14.050  INVALID DATA FOR BETASTRT and BETAEND with BETA 1.6.5 for
VMACBETA       subtype=21 because MXG failed to skip over three reserved
Mar 13, 1996   bytes.  Find the statement  ELSE IF SUBTYPE=21 THEN DO;
               Then find the statement about 21 lines later reading:
                       BETASTRT  SMFSTAMP8. /*S20TRES1*RESERVED*/
               Change the line to read
                 +3    BETASTRT  SMFSTAMP8. /*S20TRES1*RESERVED*/
   Thanks to Mr. Hasselmann, Braun AG, GERMANY.

Change 14.049  Changes to keep DATETIME in Change 14.028 should also be
BUILDPD3       made in BUILDPD3 and BUIL3005 (for JES3) to be consistent
BUILD3005      with BUILDPDB and BUILD005 (for JES2).  Variable DATETIME
Mar 13, 1996   is kept and labelled in PDB.JOBS, PDB.STEPS and PDB.PRINT
               and LENGTH statements were also made consistent.
   Thanks to Chris Weston, SAS Institute Cary, USA.

Change 14.048  Variable ULOGADAE should have been INPUT as &PIB.4.3 vice
VMACCOMP       &PIB.4.2.
Mar 13, 1996
   Thanks to Jens Schlatter, Independent Consultant, GERMANY.

Change 14.047  DB2 Trace dataset T102S096 variable QW0096SN should have
VMAC102        been INPUT as &PIB.4. vice &PIB.2.; variables QW0096SC
Mar 13, 1996   and QW0096SK should be &PIB.2. vice $EBCDIC1.
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
   Thanks to Hartmut Beckmann, Karstadt, AG, Germany

====Changes thru 14.046 were included in MXG 14.01 dated Mar  7, 1996===

Change 14.046  Validation of TMON for UNIX at a real site with real data
VMACTUX        uncovered these corrections.
Mar  7, 1996  -Variable INTERVAL added to KEEP= for TUXCPU and TUXDISK.
              -Variables UTIME, STIME, UTIMETOT, STIMETOT are divided
               by 100.
              -For data from AIX, memorymgmt fields swapins, swapouts,
               filefault, swapfault, and faultiorate do not exist, and
               system fields swapin_rate and swapout_rate do not exist,
               and must be commented out in your input statement (until
               I find a permanent solution!).
              -Comparing the sum of utime and stime from process records
               was typically 70%-80% of the usertm from cpu records for
               HP G50, but with AIX, stime+utime is always greater than
               the usertm, usually about 150%, and utime by itself with
               AIX is 75-80% of usertm.
              -Nowhere is TMON/UNIX is CPU model/speed/size or memory
               size kept.
   Thanks to Dan Sidorik, SmithKlein Beecham, USA.

Change 14.045  The //LKED.SYSLMOD DD statement must be moved to the end
ASMRMFV        of the member for the assembly and link edit to execute
Mar  6, 1996   without error.
   Thanks to Jay Beeler, Key Services, USA.

Change 14.044  A truncated DB2 3.1 type 101 SMF record caused INPUT
VMACDB2        STATEMENT EXCEEDED because MXG validation of the triplet
Mar  6, 1996   (offset, length, number) was not as robust as it is now.
               Change the test now reading:
                IF 0 LT OFFPROD LT LENGTH AND NRPROD GT 0 THEN DO;
               to read
                IF 0 LT OFFPROD LT LENGTH AND NRPROD GT 0
                  AND OFFPROD+LENPROD-1 LE LENGTH THEN DO;
               The record may have been truncated during copying after
               creation, or DB2 might have created the bad record; the
               site is still investigating, and this note will be
               updated when more is known.  Now, MXG will detect this
               class of bad records, tell you they are there while
               avoiding the STOPOVER error, and keep on truckin'.
               The actual change was made to all forty statements of the
               preceding form, one for each record segment type.
                  The bad record had a product section length (in the
                  triplet) of 152 bytes, but there were only 114 bytes
                  left in the record from the start of the PROD data
                  section.  The PROD data section contained a valid
                  76-byte header 1 subsection, and the beginning of a
                  header 2 section with expected length of 76 bytes, but
                  only 38 bytes exist.
   Thanks to Dan Null, Caterpiller Inc, USA.

Change 14.043  DCOLLECT dataset DCOLSG (Storage Group definitions) has
VMACDCOL       variable DSGGBKUF too large, because MXG was off by one
Mar  6, 1996   byte.  After the  IF DCOLRTYP='DC' THEN DO; statement,
               insert new statement  M8=-8;   Then change the line that
               inputs DSGGBKUP so that it reads:
                   +M8  DSGGBKUP   $EBCDIC1.  +7    /* label ... */
               (DSGGBKUP is a redefinition of DSGCNFRM).
   Thanks to Mike Moss, Royal Bank of Scotland, SCOTLAND.

Change 14.042 -INVALID DATA for TIGETMCT or TIFREMCT because the fields
TYPETMON       are documented as XL8 and I assumed they were floating
Mar  6, 1996   point (like all the other Landmark XL8 fields) and input
               them as &RB.8.  Since all of my test data had zero values
               I could not tell.  Well, it turns out they are fixed and
               not float, and their input must be changed from &RB.8. to
               &PIB.8., and the two lines after the @; that multiply by
               1000000 must be deleted.
              -INVALID DATA FOR TIAPREQ TIAPWAT and/or TIAPEXMT result
               when your CICS guy uses new TMON TCE 1.3 programs
               TMONCNVT or $DBUTIL to convert old TMON TCM 8.3 records;
               trashed records of the wrong length (2276) are created by
               the Landmark program when you cross versions.  Although I
               think the Landmark program should have recognized their
               inconsistency and ABEND their convert, they don't, so MXG
               will now test for wrong length and warn you on the log
               that bad records have been found and deleted.
   Thanks to Rudra Rishy Maharaj, Stelco Inc., CANADA.

Change 14.041 -Variables CPUTYPE and CPUVERSN are now added to TYPE72GO
EXTY72GO       observations.  Retained from the last type 70 record, the
VMAC7072       variables were kept in TYPE72 PERFGRP data, so it makes
Mar  5, 1996   sense to keep them also in the TYPE72GO SRVCLASS data, so
Mar 27, 1996   that old reports can be used for WLM reporting.
Apr 23, 1996  -Variable R723RTYP was added to TYPE72GO KEEP= list.
              -Change 13.228 was not actually implemented in MXG 13.13,
               but its logic (in EXTY72GO to OUTPUT TYPE72GO only if the
               service class or report class had activity during the
               interval) was finally added in MXG 14.01.  Subsequently,
               its test for R723TYPE IN(1,2,4) was changed in MXG 14.02
               to test for R723TYPE IN(1,2,4,5), because report classes
               were being output with all zeroes for report classes
               whose associated service classes were never initiated
               (e.g., CICS report classes defined on a CICS backup).
              -Because R723CRCA is frequently blank even when resources
               are recorded for a Service Class, and because it is used
               to set R723RTYP values 4 or 5, the logic to set the value
               of R723CRCA was changed to now read:
                IF R723CADF='1.......'B OR SERVICE+ACTIVETM GT 0 THEN
                   R723CRCA='Y';
   Thanks to Brenda Rabinowitz, Prudential-Bache Securities, USA.

Change 14.040  TCP/IP release 2.2.1 prior to APAR PN40511 was a user SMF
VMACTCP        record with ID greater than 128, but if you used ID=118
Mar  5, 1996   for this old release, you caused MXG to print UNEXPECTED
               TCP/IP DATA message notifying you that MXG had deleted a
               record.  However, if the bad record happened to have "S"
               in column 69, MXG failed with INPUT STATEMENT EXCEEDED.
               Correcting the SMF ID eliminates the error (and with that
               APAR and later releases of TCP/IP, you no longer can set
               the ID, it is fixed at 118), but I added protection to
               avoid the STOPOVER condition.
   Thanks to Jim Majors, Barnett Technologies, USA.

Change 14.039  Altai & CA job schedulers can't restart a multi-step SAS
MXGSAS         job due to the DISP=(MOD,PASS) on the //NULLPDS DD
Mar  4, 1996   statement in the JCL procedure to execute SAS, because
               you cannot restart a step that needs passed datasets.
               However, if you could change PASS to DELETE, the step
               would be restartable, and since NULLPDS exists only to
               satisfy JCL syntax for the LOAD and SASAUTO symbolic
               parameters, and since NULLPDS is never actually opened,
               it would be safe to change the PASS to DELETE.  However,
               when PASS was changed to DELETE, now a second execution
               of the PROC fails with ABEND 213-04, and the matter is
               still under investigation. Stay tuned.
   Thanks to Neil Ervin, Huntington Services, USA.

Change 14.038  Consistency clean-up.  Datasets DCOLAI and DCOLCN did not
VMACDCOL       have variable ZDATE in their KEEP= list, but now they do.
Mar  3, 1996

Change 14.037  MAINTLEV 8 of the MXG Tape Mount and Allocation Monitor.
ASMTAPES       Two principal changes: Use of the CVT to load the return
ZASMTAPE       address of the SRB routine, so we will no longer be
Mar  3, 1996   dependent on the SRB DSECT to properly exit the SRB, and
               far more stringent use of the lockword; the SRB will now
               exit immediately if it is unable to obtain the lockword,
               whereas prior versions assumed we were serialized and
               continued to process.  MAINTLEV 7 has failed only once at
               only one site (but it was in its SRB routine, while in
               FRR), and it may have caused another ASID to fail!  Dumps
               of that failure did show the exposure in our SRB routine
               that are now corrected.
   Thanks to Paul Hill, Midland Bank, ENGLAND.

Change 14.036  Support for type 6 ESS segment decoding is added and is
IMAC6ESS       externalized in new IMAC6ESS.  By default, no fields in
Mar  3, 1996   the ESS segments will be decoded until you remove the
               comment block in this member.  You will also want to set
               the desired LENGTH of the new variables to be kept, and
               if you want the ESS variables in your PDB.PRINT, you will
               also need to update _PDB_6 macro in IMACPDB.
   Thanks to Martin Wieland, Neckermann B.V., THE NETHERLANDS.

Change 14.035  Format MGD145S (for DB2 trace IFCIDS 124, 145, and 183)
FORMATS        should map binary, not hex values, so the X's on both
Mar  3, 1996   sides of the equal sign were removed.
   Thanks to Joseph Faska, Depository Trust, USA.

Change 14.034  NDM subtypes 'SI' and 'ST' were not correct.  In the 'SI'
VMACNDM        section, insert  +4  between  INPUT  and NDMUNODE, and
Mar  2, 1996   change $EBCDIC8. after NDMUID to $EBCDIC64.   In the 'ST'
               section, change $EBCDIC8. after NDMUID to $EBCDIC64.
               Worse, I discovered NDMTIME and most other NDM datetime
               variables were missing.  Thirteen lines that now read
                   IF DATEYYYY GT 80000 THEN ....
               must be changed to read
                   IF DATEYYYY GT 0 THEN ....
               This error was "fixed" by Change 13.178, but that change
               was not actually made in my source library until now!
   Thanks to H. van den Bergh, Rabofacet, THE NETHERLANDS.

Change 14.033  CMF user SMF record subtype 27 (Cache Controller) did not
VMACCMF        recognize 3990-6 control unit records.  Change the test
Mar  2, 1996   IF CMF27MDL = '93' ... to IF CMF27MDL IN ('93','96') ....
   Thanks to Gavin Ring, Alcatel, AUSTRALIA.

Change 14.032  Support for FACOM MSPE/EX PTF 93061 for the ID=127 SMF
VMACF127       record has been updated by this user contribution.
Mar  2, 1996
   Thanks to Ian Heaney, Toyota, AUSTRALIA.

Change 14.031  Specifying %ANALDB2R(PDB=SMF); unexpectedly requires a
ANALDB2R         //PDB  DD UNIT=SYSDA,SPACE=(CYL,(1,1))
READDB2        because three new-in-DB2-4.1-datasets default to PDB in
Mar  1, 1996   IMACDB2, and ANALDB2R did not intercept and override that
Mar  6, 1996   default for those datasets when it called READDB2, which
               was the real culprit, and which was fixed by this change.
               This change eliminates the need for //PDB when PDB=SMF
               is specified.
   Thanks to David Klein, City of New York DOITT, USA.

Change 14.030  Support for IMS log record processing for IMS 5.1.
ASMIMSL5
IMACIMS        Note: MXG Strongly recommends you use a monitor, such as
IMACIMS7       Boole & Babbage's IMF (MXG support in TYPECIMS) or Candle
TYPEIMS7       ITRF (MXG support in TYPEITRF).See "IMS Technical Notes"
TYPEIMSA       in MXG Newsletter TWENTY-FIVE before proceeding.
VMACIMS
VMACIMSA       This is the revised ASMIMSL5 (use it instead of ASMIMSLG
Mar  5, 1996   for IMS 5.1), VMACIMSA and TYPEIMSA for the JCLIMSLG
Feb 15, 1997   algorithms.
               I have also created a new member, TYPEIMS7, which reads
               IMS 5.1 and earlier releases (you must set _IMSVERS in
               member IMACIMS) to process only the 07 and 08 IMS log
               records into new dataset IMS0708 which may be all that
               you need for IMS log analysis if you need only the counts
               of transactions and resources (i.e., no response time
               nor LTERM identification).  Dataset IMS0708 will have one
               one observation for each IMS Program Schedule, with all
               all resources (CPU, DL/I calls) for that schedule, and
               variable NMSGPROC in IMS0708 is the count of transactions
               that were processed during by that program.  TYPEIMS7
               does not depend on the ASMIMSLx architecture, and thus it
               will be supported for all IMS releases in the future for
               IMS accounting and resource capture.
  Thanks to G. Cossio, Quercia Software S.P.A., ITALY.
  Thanks to Sig. Moreschini, Quercia Software S.P.A., ITALY.

Change 14.029  DFSMS/rmm type "O" INPUT STATEMENT EXCEEDED RECORD LENGTH
VMACEDGS       because ther are three different kinds of "O" records:
Feb 29, 1996
                 MORTYPE= nulls  - owner details
                        = ones   - end of volume/owner
                        = VOLSER - volume/owner information
               and there is now owner details in the "ones" record.
               The correction in MXG is to make VMACEDGS look like this:
                          +7  /*RESERVED*/                  original
                  @;                                        inserted
                  IF MORTYPE NE 'FFFFFFFFFFFF'X THEN        inserted
                    INPUT                                   inserted
                        MOOWNSUR $EBCDIC20.                 original
                        ........ nine other lines " original
                        MOOWNVOL    &PIB.4.                 original
                  @;                                        inserted
                  IF LENGTH-COL+1 GE 4 THEN INPUT           inserted
                        MOVOLNO     &PIB.2.                 original
                                        +2                  original
                  @;                                        original
   Thanks to Chris Taylor, VF Information Technology Services, USA.

Change 14.028  A collection of discoveries and SAS/CPE product needs:
VMACDCOL      -VMACDCOL.  Variables UBRECOR and UMRECOR were removed
VMACEREP       from the $HEX2 format and $NOTRAN informat, as they are
SPUNJOBS       printable characters; ...THEN DAGFNCPY=1; was misspelled
VMACTPM        and is changed now to ...THEN DAGFNCPU=1;
Feb 29, 1996  -VMACEREP.  Data sets EREPDDR and EREPIOS did not contain
               variable INCDTIME in their KEEP= list; now they do.  In
               EREPSLH dataset, variables SLHRSMAD, SLHRSMRC, SLHERRTP,
               and SLHRSMST were not in their KEEP= list, but now are.
              -SPUNJOBS.  The DROP DATETIME; statement was replaced with
               LABEL DATETIME='DATETIME*OF SHIFT*CALCULATION'; so that
               DATETIME will now exist in PDB.SPUNJOBS (as it does in
               PDB.JOBS already).
              -VMACTPM.   Variable SYSTEM was added to the KEEP= list
               for dataset TYPETPMV.
   Thanks to Chris Weston, SAS Institute Cary, USA.

Change 14.027  New "IHDRyyyy" members are "INFILE header" exits which
IHDRDCOL       are invoked after the header of a raw data record has
IHDRSMF        been INPUT, so that you can filter or select which raw
Feb 29, 1996   data records are processed, or write out selected raw
Mar 13, 1996   data records to an external file, etc.  The existing MXG
               member IMACFILE is the "INFILE header" exit for SMF data
               records, and examples in IMACFILE show how you to use an
               "INFILE header" exit.  The "IHDRyyyy" naming convention
               created by this change has prefix "IHDR" for its purpose,
               and the yyyy suffix identifies the name of the INFILE.
               So IHDRDCOL is the "INFILE header" for raw records read
               from the INFILE name of DCOLLECT.  And so existing member
               IMACFILE should have been renamed to IHDRSMF with the new
               convention, but instead I have left IMACFILE as is (so no
               incompatibility) and created dummy member IHDRSMF to say
               that member IMACFILE should be used for SMF records.
               Comments in each IHDRyyyy member document what variables
               exist when the exit is invoked.
               Mar 13: Discovered while IHDRDCOL exists, I had failed to
               insert the %%INCLUDE SOURCLIB(IHDRDCOL) in VMACDCOL!  It
               goes immediately after the INCLUDE of (IMACZDAT).
   Thanks to Chris Weston, SAS Institute Cary, USA.

Change 14.026  New values for Channel Path Description were added to MXG
FORMATS        format $MG073CD in member FORMATS:
VMAC73           '12X:OPEN SYSTEM ADAPTER CHANNEL'
Feb 27, 1996     '13X:INTEGRATED SYSTEM DEVICE'
               and an undocumented '04'x value found in data is under
               investigation.  Comments in VMAC73 were revised but no
               code changes were made.
   Thanks to Sandro Aiello, National Australian Bank, AUSTRALIA.

Change 14.025  Variable DASDMPL in datasets TYPE42DS and TYPE42SR is too
VMAC42         large; the equation must be  DASDMPL=RESPTIME*DASDRATE;
Feb 27, 1996   instead of DASDMPL=RESPTIME*IOCOUNT;  in two separate
Apr 10, 1996   segments of code.  Note the equation has to be moved into
               the DO; group after DASDRATE is calculated, and an
               DASDMPL=.; must be inserted in the ELSE DO; if DURATM is
               zero.  (Dividing the old DASDMPL by DURATM will give you
               correct DASDMPL in your pre-existing TYPE42xx datasets.)
               Also, SMF42SSF was added to TYPE42VL so that SMF42DB2 can
               be interpreted, as per APAR OW16039, on Apr 10, 1996.
   Thanks to Phil Schwartz, Pershing, USA.

Change 14.024  MXG Support for CICS Excluded Fields is enhanced so that
IMACEXCL       version-dependent-exclude-lists are supported.  The three
Feb 27, 1996   user macros _CICXCU2 (V2 NON-ESA), _CICXCUS (V3 ESA) and
               _CICXCU4 (V4 ESA) can now be used together so if you have
               a different exclude list for V2 and for V3, you would
               then use this statement:
                  MACRO _CICXCTR  _CICXCU2 _CICXCUS  %
               and MXG will apply the appropriate exclude logic to the
               appropriate SMF record (assuming, of course, that you
               have used UTILCICS output as input to tailor IMACEXCL in
               both _CICXCU2 and _CICXCUS (for this example).
               The actual change which makes this possible is to insert
                 IF 33.0 LE SMFPSRVR LE 33.3 after MACRO _CICXCUS
               and to insert  END;  before the single percent sign that
               ends the MACRO _CICXCUS definition, and to insert
                 IF SMFPSRVR LE 3 after MACRO _CICXCU2
               and to insert  END;  before the single percent sign that
               ends the MACRO _CICXCU2 definition, and to then find the
               last END; statement in MACRO _CICXCU4 definiton and move
               it to just before the single percent sign that ends the
               MACRO _CICXCU4 definition.
               Also, GMT conversion of STRTTIME, ENDTIME for CICS 4.1
               was added to IMACEXCL using MCTMNTAD as in VMAC110.
   Thanks to Peter Weaver, Canadian Tire Acceptance Corporation, CANADA.

Change 14.023  NPM SMF type 28 record VVR (VTAM Virtual Route) segment,
VMAC28         variable VVRPSWMX and the 9 following VVRxxxxx variables
Feb 26, 1996   were trashed because of wrong input lengths.
                  Variable   Was Input as   Must be Input as
                  VVRPWSMX     &PIB.4.          &PIB.2.
                    ...         ...              ...
                  VVRWAIT      &PIB.2.          &PIB.4.
                  VVRSND       &PIB.2.          &PIB.4.
                  VVRRCV       &PIB.2.          &PIB.4.
   Thanks to David Faught, Woolworth Corporation, USA.

Change 14.022  For DB2 report PMAUD03, but only if your PDB is on tape,
ANALDB2R       syntax error on dataset T102S169 because of a misplaced
Feb 26, 1996   semi-colon.  Find  %MACRO PMAUD03;  then find t102s145;
               Move that semi-colon that follows t102s145 to instead
               follow the T102s169 on the next line (i.e., the select
               statement ends after T102s169, not after t102s145).
   Thanks to Joe Richard, MBNA, USA.

Change 14.021  INPUT STATEMENT EXCEEDED with EREP CLASRC='40'X record
VMACEREP       due to a missing @!  Find the LAST occurrence of LENLEFT,
Feb 26, 1996   and change the semi-colon to an at-sign semi-colon:
                INPUT SDWAVRA1 $VARYING55. LENLEFT @;
   Thanks to Victor Chacon , NYNEX Mobile Communications Company, USA.


Change 14.020  SMS has caused I/O errors when it does the allocation of
JCLINSTL       SAS data libraries and sets default DSORG other than
Feb 23, 1996   DSORG=PS, so I have added DSORG=PS to the DCB= parameter
               in member JCLINSTL, just in case!
   Thanks to Andre Micheaux, Michigan National Corporation, USA.

Change 14.019  Support for OS/390 Release 1.0 is already in MXG 13.13!
none           Well, at least according to IBM's early documentation,
Feb 22, 1996   there appear to be no impacting changes on MXG Software.
               The value of MVSLEVEL in TYPE70 and PDB.RMFINTRV may be
               SP5.3.0 or T010101, as IBM changed CVT field values, but
               that has no impact on MXG's build programs.  This note
               will be updated if real data records do impact!

Change 14.018  Documentation of possible INCOMPATIBILITY, if your report
TYPETMS5       programs used the archaic TMSRECS or DSNBRECS datasets.
Feb 22, 1996   These very old data set names did contain most of the
               important fields, but since version 9.9 when TYPETMS5
               replaced TYPETMS, the MXG dataset names for the TMS data
               have been TMS.TMS and TMS.DSNBRECD.  If you missed that
               change, your report program still ran, because datasets
               TMSREC and DSNBREC were still in the //WORK file.  But
               last summer, to clean up the //WORK file, I added code to
               delete the TMSREC TMSRECS DSNBREC DSNBRECS and DSNBRECD
               datasets, so now your old program fails because it is
               still looking for these nonexistent data sets!  The fix
               is to use the TMS.TMS for TMSRECx and TMS.DSNBRECD for
               DSNBRECx in your report programs, but I apologize for
               failing to alert you to this incompatibility!
   Thanks to Guy Sayers, Fleet Services Corporation, USA.

Change 14.017  VARIABLE SYSTEM IS UNINITIALIZED message with ASMIMSLG
TYPEIMSA       processing member TYPEIMSA is cosmetic because the SYSTEM
Feb 21, 1996   variable only exists if specified in a SYSPARM() on the
               // EXEC statement, and SYSTEM is created separately in a
               later phase of TYPEIMSA, but the error was introduced by
               Change 13.237 (which added IMACZDAT logic).  The block in
               MXG 13.13 that reads:           should have been:
                 IF _N_=1 THEN DO;             IF _N_=1 THEN DO;
                   ZDATE=TODAY();                SYSTEM=SYSPARM();
                 END;                          END;
   Thanks to Chris Metzie, University of Wisconsin, USA.

Change 14.016  Variable CSCS should not be used, as it is decoded into
VMACACHE       separate variables CSHT, CSIS, CSPA, CSDS, CSIM, CSDC.
Feb 20, 1996   The MGCACST format on CSCS is also incorrect.  Because
               there are two reserved bits in CSCS, it is still kept (in
               case IBM uses those bits) and is now formatted HEX2.
               (Between 12.12 & 13.13, the CSCS=FLOOR(CSCS/32) statement
               was removed, as it too was incorrect.)
   Thanks to John Larry, W. H. Smiths, ENGLAND.

Change 14.015  Hipercache records for VSAM datasets were wrong; a field
EXHIPRBU       had been missed, but moreover the MXG design was wrong.
IMACHIPR       Dataset VMACHIPR was redesigned to now create new dataset
VMACHIPR       HIPRVSBU containing detail buffer statistics from each of
Feb 16, 1996   the buffer segments
Mar  4, 1996     HIPBFS HIPBFT HIPBUFFS HIPFFH HIPFR HIPFTH HIPHFR
Mar 15, 1996     HIPHFW HIPHSB HIPHSR   HIPHSW HIPIO HIPLK  HIPMFH
                 HIPMTH HIPWR
               and the new variables are then summed across each record
               and output in HIPRVSAM dataset (replacing the twelve sets
               of fourteen variables named SMFnnXXX that are no longer
               created).  With real data records, the better design was
               obvious.  Common variables allow joins between the two
               datasets, should the need arise, and space is saved.
               Mar 15: PRIMARY or SECNDRY added to labels for variables.
   Thanks to Chuck Hopf, MNBA, USA.

Change 14.014  TLMS year 2000 dates were not decoded correctly after
VMACTLMS       Change 13.186.  A raw date value of '0102037F'x (century
Feb 15, 1996   bit, year 2, day 37, for Feb 6, 2002) should have printed
Feb 22, 1996   as 2002037 but instead printed 104037.  In correcting my
               error, I also decided to make the TLMS dates to be real
               SAS dates instead of numbers.
                  The original TLMS code used numbers and since I
                  thought TLMS sites would get a free conversion to TMS,
                  I left the old format in place, but since I have to
                  correct this error, it made sense to go ahead and
                  convert the numbers into SAS dates.  However, if you
                  are using any of the twelve date fields in tests in
                  your report programs (instead of just printing them),
                  you will need to change your report logic. The numeric
                  value of 2002037 becomes the SAS date value of 15377
                  (days since Jan 1, 1960) when DATEJUL() is used, so
                  it will print as 02Feb2002 when formatted DATE9.
               However, TLMS uses two special values for the raw date
               field; zero if the fx. retention period has expired,
               and 9999999 if the tape is registered as 'permanent'.
               I chose to force the zero value to a date of '01JAN1960'd
               and the 9999999 value to a date of '31DEC2099'd (similar
               to the way I handled strange dates in TMS records!).
               To correct the MXG error AND convert to SAS dates, each
               of the twelve lines for variables BAPURCH thru BAIDATE
               must be changed from one line:
                 var=FLOOR(var/100000)+100+var+1900;
               to these six lines:
                 IF 0 LT var LT 9999999 THEN DO;
                   var=1000*(FLOOR(var/1E5)*100+1900)+MOD(var,1E5);
                   var=DATEJUL(var);
                 END;
                 ELSE IF var EQ 0 THEN var='01JAN1960'D;
                 ELSE IF var EQ 9999999 THEN var='31DEC2099';
               and those twelve variables are now formatted DATE9.
   Thanks to Jorge Fong, City of New York, USA.
   Thanks to Alex Torben Nielsen, TeleDanmark EDB, DENMARK.

Change 14.013  INVALID DATA FOR HH,MM,SS messages with SAMS record. The
VMACSAMS       three lines inputting HH MM SS with &NUM.2 need to be
Feb 15, 1996   changed to &NUM.2. (i.e., the final period was missing).
               Fortunately, only variable SAMSTIME was incorrect.
   Thanks to Shaheen Pervaiz, Acxiom, USA.

Change 14.012  Example JCL for reading Landmark's The Monitor for CICS
JCLTMON        shows what is needed to process TMON/CICS data daily.
Feb 14, 1996
   Thanks to Charles Brown, Fruit of the Loom, USA.

Change 14.011  DB2 4.1 type 101 subtype 1 (written only if more than 10
VMACDB2        Packages are called by a Plan) INPUT STATEMENT EXCEEDED
Feb 13, 1996   because of a mis-located line of code (and no previous
May 22, 1996   test data!).  Find the second occurrence of statement
               SKIP=LENQPAC-240;.  Move the next line (IF SKIP GT 0 THEN
               INPUT +SKIP @;) down (about 30 lines) so that it
               immediately precedes the statement
                %%INCLUDE SOURCLIB(EXDB2ACP);
               May 22: original text of this change had -140 vice -240.
   Thanks to Mick Glasson, Health Insurance Commission WA, AUSTRALIA.

Change 14.010  NOTSORTED error with WEEKBLD, WEEKBLDT, or MONTHBLD. The
MONTHBLD       variable USER was added by Change 13.268 to ASUMCICS, but
WEEKBLD        was not added in the _BYLIST macro for the _DSET CICS.
WEEKBLDT       In all three members, change the bylist to read:
Feb 12, 1996       APPLID OPERATOR USER TERMINAL STRTTIME TRANNAME
   Thanks to Scott Snyder, Card Establishment Services, USA.

Change 14.009  A truncated PSF type 6 SMF record caused INPUT STMT EXCED
VMAC6          error; the record had LN4=116 but there were only 82 byte
Feb  9, 1996   left in the physical record.  While IBM is investigating,
               to circumvent, change  IF SMF6LN4 GT 84 THEN DO; to read
                IF SMF6LN4 GT 84 AND LENGTH-COL+1 GE 32 THEN DO;
   Thanks to Leonard Issacs, Motorists Mutual Insurance COmpany, USA.

Change 14.008  INVALID DATA FOR PWCOUNT in VMID=06 with PWCOUNT=0Ax. The
TYPEVM         logic for decoding these invalid values in VMID=04 should
Feb  8, 1996   be copied into the VMID=06 processing to correct the bad
               value for PWCOUNT (which is EBCDIC for 0-9, but then is
               binary for larger values!).
   Thanks to Bruce Widlund, Merrill Consultants, USA.

Change 14.007  Variable SMF73CPD has stored length of 39; the variable
VMAC73         must be added to the LENGTH statement with SMF73CPD $1
Feb  8, 1996   to correct the stored length.  (SAS sets character length
               from the first occurrence of the variable, and without
               the LENGTH statement, SAS saw the FORMAT statement, and
               set the length of the variable to the length of the
               longest format value!).  I know I must always add the
               variable to the LENGTH statement - this one I missed!
   Thanks to S. Lemaire, Comparex Information Systems, Belgium.

Change 14.006  SAS 5.18 only.  Formats $MGERPDS/PHD/PMC/PRC/PSE and PSF
FORMATS        were longer than 40 characters, causing errors.  Formats
Feb  8, 1996   were re-worded to fit in 40 characters, to be consistent
               with all formats, even though SAS version 6 has no error.
   Thanks to Walter P. Kraslawsky, Library of Congress, USA.

Change 14.005  Invalid NETSPY type A record caused INPUT STATEMENT ERROR
VMACNSPY       because NSPYENTL=108 in the record, but should be 340,
Feb  8, 1996   and with a minimum of 145 bytes.  CA had no report of the
               bad record, which only occurred sporadically.  To avoid
               the error until CA fixes it, in the block of code for
               IF NSPYREC='A' THEN DO;
               immediately before the statement
                   DO OFFNSPY=NSPYOFF TO ENDREC BY NSPYENTL;
               insert
                   IF NSPYENTL GE 145 THEN
               so the INPUT is only executed for valid records.
               This note will be updated when more is heard from CA.
   Thanks to George Janvrin, ITT Hartford, USA.

Change 14.004  INPUT STATEMENT EXCEEDED RECORD LENGTH for Type 64 if the
VMAC64         CF Cache Structure Statistics segment exists.  The input
Feb  6, 1996   of three variables, SMF64BMH, SMF64CFH, and SMF64RIO must
               be &PIB.4. instead of &PIB.8. in all three lines.
               One sites also saw this when they brought up ESA 5.2.2.
   Thanks to Diane Eppestine, Southwestern Bell, USA.

Change 14.003  Change 13.331 to support four-digit UCBs in this archaic
VMXGVTOF       DASD grazer were wrong, producing RC=256 error messages.
ASMVTOC        (Member ZASMVTOC is the prior iteration of ASMVTOC, so
Feb  9, 1996   you could revert.)  This new ASMVTOC has been tested and
Feb 26, 1996   now appears to execute correctly, and with the second
               iteration on Feb 26, the program has been verified with
               actual four-digit UCBs.  (ASMVTOC is archaic in that the
               DCOLLECT utility and TYPEDCOL are the recommended method
               for grazing your DASD VTOCs and VVDSs.)
   Thanks to Astrid Fridtun, Statens DataSentral a.s., NORWAY.

Change 14.002  APPARENT SYMBOLIC MXGDEBUG error occurs if CONFIG06 is
VMXGINI6       used instead of CONFIG, because VMXGINI6 (pointed to by
Feb  2, 1996   the archaic CONFIG06) did not include MXGDEBUG in its
               list of macro names in the %GLOBAL statement.
   Thanks to Will Evans, Consolidated Freight, USA.

Change 14.001  INPUT STATEMENT EXCEEDED RECORD LENGTH for STC subtype 8
VMACSTC        record; support added in October finally read a real SMF
Jan 23, 1996   record and failed, because fields were re-defined in the
Feb 22, 1996   DSECT, but I missed the redefinition.  After the line
               ELSE IF SUBTYPE='....1000'B THEN DO;  insert
                 M1=-1;                              before the line
                 INPUT @21+OFFSMF
               Then, on each of the five lines inputting the variables
               STC08CID, STC08MAG, STC08LS2, STC08XPT and STC08SLT,
               put   +M1   on each line, to the left of the variable
                 i.e.,  the input for STC08CID would then look like:
                 +M1  STC08CID  $CHAR1.  /*CAP*ID*/
               so these redefined variables are input from the same
               byte as their predecessors.
               (Feb 20 correction added STC08CID and STC08MAG).
   Thanks to Mike Hildman, Target Stores, USA.
   Thanks to Chuck Hopf, MBNA, USA.

LASTCHANGE: Version 14