This is MXG Version 13.13, dated Jan 20, 1996, thru Change 13.332.      
      MXG Version 13.13   is dated Jan 20, 1996, thru Change 13.332     
      Newsletter TWENTY-NINE,  dtd Jan 20, 1995, thru Change 13.323     
      MXG Version 13.09  was dated Jan 10, 1996, thru Change 13.313     
      MXG Version 13.08  was dated Dec 15, 1995, thru Change 13.290     
      MXG Version 13.07  was dated Oct 30, 1995, thru Change 13.253     
      MXG Version 13.06  was dated Oct 10, 1995, thru Change 13.225     
      MXG Version 13.05  was dated Aug 21, 1995, thru Change 13.172     
Early MXG Version 13.05  was dated Aug 11, 1995, thru Change 13.162     
      Newsletter TWENTY-EIGHT, dtd Aug 21, 1995, thru Change 13.162     
      MXG Version 13.04  was dated Jul 31, 1995, thru Change 13.149     
      MXG Version 13.03  was dated Jul 19, 1995, thru Change 13.120     
      MXG Version 13.02B was dated Jul  6, 1995, thru Change 13.111     
      MXG Version 13.02A was dated Jun 28, 1995, thru Change 13.101     
Initl MXG Version 13.02  was dated Jun 19, 1995, thru Change 13.095     
Real  MXG Version 13.01  was dated May  3, 1995, thru Change 13.055     
PreRe MXG Version 13.01  was dated Apr 26, 1995, thru Change 13.046     
Early MXG Version 13.01  was dated Apr  1, 1995, thru Change 13.011     
      MXG Version 12.12A was dated Mar 20, 1995, thru Change 12.328     
      MXG Version 12.12  was dated Mar  1, 1995, thru Change 12.314     
      MXG Newsletter TWENTY-SEVEN, Mar  1, 1995, thru Change 12.306     
Contents of member CHANGES:                                             
  I.  MXG Software Version Status.                                      
 II.  MXG Technical Notes                                               
III.  MVS Technical Notes                                               
 IV.  DB2 Technical Notes                                               
  V.  IMS Technical Notes                                               
  VI. SAS Technical Notes                                               
 VII. CICS Technical Notes                                              
VIII. Incompatibilities and Installation of MXG 13.13.                  
  IX. Online Documentation of MXG Software.                             
   X. Changes Log                                                       
I. MXG Software Version Status.                                         
 1. MXG Software Version 13.13, dated January 20, 1996, was shipped     
    with newsletter, NEWSLETTER TWENTY-NINE.                            
   Major enhancements added in MXG 13.13 dated Jan 20, 1996:            
    Added after Newsletter 29 was sent to the printer:                  
    Support for 4-digit UCBs in DCOLLECT, ASMVTOC and ASMVVDS.          
    Support for DOS/VSE POWER 5.2 Accounting Records                    
    Support for MVS Catalog records (Exported with IDCAMS)              
    Included in Newsletter 29 list of enhancements in MXG 13.13:        
    Support for BETA 93 Release 1.06.50 (INCOMPATIBLE)                  
    MXGVERSN variable added to TYPE70 and RMFINTRV.                     
    Support for Frye Systems measurement of Netware LANS                
    Support for Blue Line Software 4.03 and 4.04 (INCOMPAT) and 4.10.   
    Sample conversion of DBaseIII files into SAS datasets.              
    Workaround for SAP and IBM CICS 2.1 interleaved records.            
    ASCII execution of BUILDPDB and PROC FORMATS now transparent.       
    TESTMWX for improved CPU capture in User records.                   
   Major enhancements added in MXG 13.09 dated Jan 10, 1996:            
    Support for DFSMS/MVS 1.3 DCOLLECT records (compatible).            
    Support for DFSMS/MVS 1.3 VSAM RLS fields in type 64 (compatible).  
    Support for DFSMS/MVS 1.3 VSAM RLS fields in type 42 (compatible).  
    Support for MVS/ESA 5.2.2 Open Edition OMVS type 92 (INCOMPATIBLE). 
    Support for MVS/ESA 5.2.2 Open Edition OMVS type 30 (compatible).   
    Sample HSM reports and analysis suggestions                         
    TYPE6 INPUT STATEMENT EXCEEDED for PSF type 6 with OW10067.         
    CICS/ESA 4.1 corrections (TRANTYPE, ELAPSTM, ENDTIME, IRESPTM)      
    CICS/ESA 3.3 UNEXPECTED STATISTICS with STILEN=0 protection.        
    MEASUREWARE (old HP-PCS) CPU time error in HPxxGLOB,HPxxAPPL.       
    Landmark TMON for UNIX enhancements, corrections and errors.        
   Major enhancements added in MXG 13.08 dated Dec 15, 1995:            
    Support for MVS Solution's MVS Thruput Manager SMF record.          
    Support for VM/ESA SQL/DS Remote User Accounting Record (INCOMPAT)  
    Support for Landmark's TMON for UNIX.                               
    Support for TANDEM D20 and D30 and D40 releases.                    
    Support for DB2 4.1 IFCIDs 221, 222, and 231.                       
    Support for IDMS 12.01 (INCOMPATIBLE) was not correct until 13.08.  
    Support for TOPSECRET 4.4 and 5.0 (INCOMPATIBLE) added.             
    Support for HSM ABARS ABACKUP/ARECOVER FSR segment validated.       
    Support for SAP 5.0 INCOMPATIBLE changes to type 110 journal data.  
    MAINTLEV 7 of MXG Tape Mount and Allocation Monitor.                
    Replacement for CICINTRV available for testing.                     
    "XMXGSUM" architecture now replaces VMXGSUM.                        
    SYSNAME and SYSPLEX added to PDB.JOBS/STEPS/PRINT.                  
    Default ASUMCICS summarization now includes USER.                   
    JESNR may show only four digits in TYPE26; IBM lied in ESA 5.2      
    DEVPLX (duplex volume) address wrong, IBM worrying.                 
   Major enhancements added in MXG 13.07 dated Oct 30, 1995:            
    Support for DB2 4.1.0 type 100 and 101 SMF records.                 
    Support for STK SILO HSC VIEW Command Subtype 8 SMF record.         
    Support for MODEL204 Release 3.0                                    
    CICS/ESA 4.1 CICSTRAN variables STRTTIME/ENDTIME now GMT-corrected. 
    New IMACSPCK exit for SPIN decision override.                       
    New IMACZDAT localizes creation of ZDATE, for ease in reruns.       
    Corrections for Landmark Version 2 TMDB support.                    
   Major enhancements added in MXG 13.06 dated Oct 10, 1995:            
    ASMTAPES revision MAINTLEV 6 is now included, resolves errors.      
    TYPETMON (TMON CICS 1.3) must now use RECFM=VB instead of RECFM=U.  
    Support for Landmark TMON for DB2 Version 2.                        
    Support for Tandem D20 MEASURE CPU, Disk, and Process data records. 
    Support for COM-PLETE Version 4.6 SMF record.                       
    Support for ISOGON Soft Audit Version 4.1.                          
    Support for HSM ABARS ABACKUP/ARECOVER FSR segment.                 
    Support for APAR OW14717 and APAR OW16039 for SMF type 42.          
    Support for Omegamon for MVS/ESA V400 adds variables.               
    Support for 3590 tape drives now complete.                          
    Support for APAR OW11142 adds new fields to TYPE64.                 
    Support for Software Engineering of America's TRMS SMF record.      
    MXG 13.01-MXG 13.05, IMACJBCK caused deletion of RACF, ACF2 and DB2 
     observations with job name of nulls.  See Change 13.183.           
    ANALDB2R may still get FORMAT NOT FOUND, assorted minor DB2 fixes.  
   Major enhancements added in MXG 13.05 dated Aug 21, 1995:            
   Added after Newsletter TWENTY-EIGHT was printed:                     
    Support for MVS/ESA 5.2.2.                                          
    Support for Candle Omegamon 300 SMF record (incompatible).          
    Support for Landmark's TMON/MVS 1.2/1.3 additional subtypes.        
    Preliminary support for 3590 tape drives.                           
    Correction for VM/ESA INVALID CONTROL RECORD error.                 
   Announced in Newsletter TWENTY-EIGHT:                                
    Support for the year 2000 (see MXG Technical note in NEWSLTRS, NL28)
    Support for OpenMVS File System I/O type 92 SMF record.             
    Support for MVS/ESA 5.2 System Logger Data type 88 SMF record       
    Support for EREP (SYS1.LOGREC) records.                             
    Deaccumulation of HMF records.                                      
    Final (?) Correction to ANALDB2R Statistics and Audit Reports.      
     If you use either the DB2 Statistics reports or DB2 Audit Reports, 
     you must request MXG 13.05 for the ANALDB2R corrections to errors  
     introduced in MXG 12.12 (Statistics) or MXG 13.01 (Audit) that were
     not fixed until now (I apologize for the careless coding and lack  
     of validation of report output that took seven iterations to fix). 
     The Audit errors were actually corrected in 13.03, but Statistics  
     still had four values that were not corrected until MXG 13.05.     
     The more-commonly-used DB2 Accounting Reports had no errors.       
    MAINTLEV 6 of ASMTAPES was listed in Newsletter 28, but is not on   
     the MXG 13.05 tape; see text of Change 13.163.                     
   Major enhancements added in MXG 13.04 dated Jul 31, 1995:            
    Support for NetCompress SMF records.                                
    Support for Packet/Main SMF records.                                
    Support for Kodak AXCIS Optical Disk SMF records.                   
   Major enhancements added in MXG 13.03 dated Jul 19, 1995:            
    More fixes for DB2 Statistics Reports, a fix for DB2 Audit Reports. 
    TYPE116 (MQM) validation and correction.                            
   Major enhancements added in MXG 13.02B dated Jul  6, 1995:           
    Correction to DB2 Statistics Summary and Audit Reports              
    MXG Position Paper on Support for Year2000 in member YEAR2000.      
   Major enhancements added in MXG 13.02A dated Jun 28, 1995:           
    Correction to DB2 PMSSTA01/02 Statistics Summary Reports.           
    Final (?) revisions to XMXGSUM.                                     
   Major enhancements added in MXG 13.02 dated Jun 19, 1995:            
    Support for MVS/ESA 5.2 (compatible) changes 24, 30, and 42 records.
    Support for OPC Release 3.0 (INCOMPATIBLE).                         
    Support for DFSORT Release 13.0 (INCOMPATIBLE).                     
    Support for TMS (CA-1) Release 5.1 (compatible).                    
    Support for Antares' HURON ObjectStar SMF record.                   
    Support for TYPE32 APARS OW10393 (causes error) and OW12856 (none). 
    Support for SAP Release 5.0 CICS accounting in type 110.            
    Support for ACS Wylbur Accounting SMF record                        
    Support for Sterling SAMS Storage Automation SMF record.            
    Support for LEGENT's AUTOMATE SMF record.                           
    DB2 Audit SQL text corrections.                                     
    Support for APAR OW08641 for NPM Version 2.2                        
   Major enhancements added in MXG 13.01 dated May  3, 1995:            
    Support for NETSPY Release 4.6 (compatible), divide by zero fixes.  
    Support for HP PCS current version on HPUX, AIX, and SUN unix.      
    Support for OS/400 Version 3.1.0 (was wrong in MXG 12.12/12.12A).   
    Support for TCP/IP APAR PN69321-PN69322.                            
    Support for Sterling SOLVE NCL CPU-time accounting user SMF.        
    Support for HMF SMF record subtypes 4 and 5.                        
    Support for APAR OW04653 added variables to TYPE74ST dataset.       
    Support for IBM's IRRDBU00 RACF Database Unload.                    
    ASMRMFV 0C4 correction and enhancements for RMF VSAM processing.    
    ANALCNCR enhancements and validation.                               
    XMXGSUM  enhancements and validation.                               
    TYPE116 (MQM) validation and correction.                            
   Major enhancements added in MXG 12.12A dated Mar 20, 1995:           
    Twelve MXG 12.12 members had errors that are now fixed:             
    Support for Memorex/Telex LMS Version 3.1 (INCOMPATIBLE).           
  All of these enhancements are described in the Change Log, below.     
    Table of availability dates for the IBM products and MXG version:   
                                       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        
      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 4.2                     when G.A.           ??.??        
      CRR 1.6                          Jun 24, 1994.       12.02        
      DB2 2.2.0                                1990         8.8         
      DB2 2.3.0                        Oct 28, 1991.       10.01        
      DB2 3.1.0                        Dec 17, 1993.       13.02A       
      DB2 4.1.0                        Nov  7, 1995        13.07        
      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        
      NPM 2.0                          Dec 17, 1993.       12.03        
      NPM 2.2                          Aug 29, 1994.       12.05        
      VM/ESA  1.1.1                    Dec 27, 1991.       10.01        
      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        
    Table MXG support for non-IBM products:                             
                                       Availability     MXG Version     
      Product Name                     Date              Required       
       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        
       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 MVS - last MXG change 1992             12.12        
       Omegamon for DB2 Version 2.1/2.2                    13.05        
       Omegamon for VTAM V160                              12.04A       
       Omegamon for SMS V100/V110                          12.03        
      Boole & Babbage                                                   
       IMF 3.1 (for IMS 5.1)                               12.12        
       LMS 3.1                                             12.12A       
II.   MXG Technical Notes.                                              
III.  MVS Technical Notes after Newsletter TWENTY-NINE.                 
IV.   DB2 Technical Notes.                                              
V.    IMS Technical Notes.                                              
VI.   SAS Technical Notes.                                              
VII.  CICS Technical Notes.                                             
VIII. Incompatibilities and Installation of MXG 13.13.                  
 1. Incompatibilities introduced in MXG 13.13 (since MXG 12.12):        
  a- IMACs that were changed (if they exist in your USERID.SOURCLIB, you
     must refit your tailoring, starting with the new IMAC member):     
     IMACPDB  (Change 13.198)                                           
     IMACJBCK (Change 13.183)                                           
  b- Other incompatibility changes:                                     
     Member FORMATS cannot be executed as-is under SAS Version 5.18,    
     but can be tailored if you are still running that archaic version. 
     See Change 13.127                                                  
     User-written invocations of VMXGSUM with OUTCODE= to recalculate   
     the DATETIME= variable may be wrong.  See Change 13.152.           
  c- These products were incompatibly changed by their vendor, and they 
     require MXG 13.xx as indicated:                                    
     Memorex/Telex LMS 3.1     (Change 12.326, MXG 12.12A)              
     OPC Release 3.0           (Change 13.092, MXG 13.02)               
     DFSORT Release 13         (Change 13.092, MXG 13.02)               
     Hipercache 4.1.x          (Change 13.120, MXG 13.03)               
     BETA 93 Release 1.06.50   (Change 13.304, MXG 13.09)               
     OMEGAMON/MVS Version 300  (Change 13.170, MXG 13.05)               
     IDMS 12.01 Maint 9506     (Change 13.223, MXG 13.06)               
     TMON/CICS 1.3             (Change 13.204, MXG 13.06)               
     SAP 5.0 type 110 journal  (Change 13.261, MXG 13.08)               
     TOPSECRET 4.4/5.0         (Change 13.254, MXG 13.08)               
     OPEN EDITION MVS 5.2.2    (Change 13.313, MXG 13.13)               
     VM/ESA SQL/DS Accounting  (Change, MXG 13.yy)               
     IMS 5.1                   (Change 13.265, MXG 13.xx)               
     Model204 Release 3.0      (Change 13.249, MXG 13.xx)               
     TMON/DB2 Version 2        (Change 13.224, MXG 13.xx)               
     TYPE42 APAR OW14717       (Change 13.217, MXG 13.xx)               
 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:    
     a. Install member MXGSAS as JCL Procedure MXGSAS in your PROCLIB.  
     b. Allocate a 105-cyl PDS: MXG.V1313.MXG.SOURCLIB, and use IEBUPDTE
        to read the MXG tape to create the 2937+ member Source Library. 
     c. Allocate a 1-cyl PDS:  MXG.V1313.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 V1313.USERID.SOURCLIB.                      
     d. Allocate a 1-cyl SAS Data Library:  MXG.V1313.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.V1313.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.V1313.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.V1313.USERID.SOURCLIB, then you must reinstall your site's  
        tailoring for that IMAC, starting with the IMAC member from the 
        MXG 13.13 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 13.13 in its own set of libraries. When 
     parallel testing is complete and are ready to implement MXG 13.13  
     in production, rename your three current MXG Production Libraries  
     and rename the MXG.V1313.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 " 
"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.   
IX.   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.                                        
X.    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 after MXG 12.12:                 
  Member   Change    Description                                        
  Many     13.190  Format of UOWTIME changed to DATETIME25.6 everywhere.
  Many     13.198  Support for 3590 tape drives.                        
  ADOCFRYE 13.317  Sample conversion of DBaseIII files into SAS datasets
  ANALALL  13.076  Print of All SMF records from a job was enhanced.    
  ANALAPAF 13.014  Semicolon missing in report program.                 
  ANALCISH 13.046  Report enhancements for CICS Shutdown reports.       
  ANALCISH 13.113  CICS Shutdown may cause NOTSORTED error.             
  ANALCISH 13.274  Lots of page ejects corrected.                       
  ANALCNCR 13.036  Validation closed several exposures.                 
  ANALCNCR 13.047  ANALCNCR failed when invoked by ANALTAPE or ANALMTP. 
  ANALCNCR 13.280  Correction of Dataset Not Found condition.           
  ANALDB2C 12.318  NO MATCHING IF error because colon vice semicolon.   
  ANALDB2R 12.328  Syntax errors with PMACC01 or PMACC02 report.        
  ANALDB2R 13.042  DBID/OBID mapping enhanced to include timestamp.     
  ANALDB2R 13.079  DB2 Statistics Summary PMSTA01, Audit report fixes.  
  ANALDB2R 13.106  Statistics Report correction, FORMAT NOT FOUND.      
  ANALDB2R 13.118  Final (?) corrections to Statistics and Audit Reports
  ANALDB2R 13.159  More Statistics Report errors, but at field level.   
  ANALDB2R 13.191  $DB2DBID FORMAT NOT FOUND may still occur in 13.05.  
  ANALDB2R 13.278  Enhancements only!  No errors reported!              
  ANALHSM  13.307  Analysis of HSM SMF record HSMFSRST data.            
  ANALPATH 12.325  Cross-System DASD Reports cols ran together.         
  ANALPATH 13.207  INVALID ARGUMENT error in report program.            
  ANALPGNS 13.003  Failed if you changed RMFINTRV duration in IMACRMFI. 
  ANALRMFR 13.134  Data/time selection crossing midnight failed.        
  ANALTALO 12.327  VARIABLE NOT FOUND error.                            
  ANALTALO 13.006  Variable SYSTEM NOT FOUND in MXG 12.12A.             
  ANALTAPE 13.037  All-systems report was missing.                      
  ANALTAPE 13.286  ERROR:KEYWORD PARAMETER in MXG 13.06-13.07 only.     
  ASMIMSLG 13.265  IMS 5.1 changes, untested.                           
  ASMRMFV  13.027  0C4 ABEND if no enqueue table, additional records.   
  ASMTAPES 13.135  MAINTLEV 4 of MXG Tape Mount and Allocation Monitor  
  ASMTAPES 13.163  MAINTLEV 5 of MXG Tape Mount and Allocation Monitor  
  ASMTAPES 13.187  MAINTLEV 6 of MXG Tape Mount and Allocation Monitor  
  ASMTAPES 13.282  MAINTLEV 7 of MXG Tape Mount and Allocation Monitor. 
  ASMVTOC  13.331  Support for 4-digit UCBs.                            
  ASMVVDS  13.330  Support for 4-digit UCBs.                            
  ASUMCICS 13.268  Default summarization now includes USER.             
  BUILDPDB 13.320  CODEPASS=2 now set only for MVS execution.           
  CICINTRZ 13.281  Replacement for CICINTRV available for testing.      
  DIFFDB2  13.212  Removed DB2STAT2 from DIFFDB2 create of DB2STATS.    
  DIFFDB2  13.269  Variables QBSTHPL/QBSTVPL removed from DIF().        
  FORMATS  13.061  All MXG formats for hex values use OTHER= syntax.    
  FORMATS  13.127  MXG FORMATS member incompatible with SAS Version 5.  
  FORMATS  13.319  OTHER= syntax now works under MVS or ASCII.          
  GRAFLPAR 13.060  MXG 13.01 only.  NAME uninitialized error.           
  IMACFILE 13.109  Select CICS records by APPLID/SUBTYPE example.       
  IMACICSA 12.324  SAP Journal data times formatted correctly.          
  IMACICSA 13.077  CICS SAP variable STCTIMTR may be wrong.             
  IMACICSA 13.199  SAP variable STICODE changed from Numeric to Char.   
  IMACSPCK 13.241  New BUILDPDB/BUILDPD3 exit for SPIN override.        
  IMACZDAT 13.237  ZDATE creation now localized, for ease in reruns.    
  JCLDAYDS 12.316  DCOLLECT output LRECL=644 instead of LRECL=264.      
  JCLPDB6  13.018  Member ASUMDB2S does not exist error.                
  MONTHBLD 13.015  SORT error building monthly TYPE72, wrong BY list.   
  REXXDB2  13.284  REXX program to convert DB2 GTF records corrected.   
  RMFINTRV 13.213  TSOxxxxx response variables FORMAT now 7.3.          
  SASAFIX1 13.239  S370FRBn informat replacement .DLL for ASCII SAS.    
  TRNDDB2S 13.031  Variables QTPUBD and QTXAIRL incorrect spellings.    
  TRNDTALO 12.327  Syntax error due to missing comma.                   
  TYPEACF2 13.112  ACF2 subtype "L" logic (ACF2JR dataset) redesigned.  
  TYPEACHE 13.005  CRR 1.6 with 3990-6 in Basic Move, values wrong.     
  TYPEAUTO 13.091  Support for LEGENT's AUTOMATE SMF record.            
  TYPEAUTO 13.102  Corrections to initial support for AUTOMATE.         
  TYPEAXC  13.149  Support for Kodak AXCIS Optical Disk SMF records.    
  TYPEBETA 13.322  Support for BETA 93 Release 1.06.50 INCOMPATIBLE.    
  TYPECACH 13.103  Support for 4-digit UCB in Cache RMF Reporter data.  
  TYPECACH 13.262  DEVPLX (duplex volume) address wrong, IBM worrying.  
  TYPECOMP 13.222  Support for COM-PLETE Version 4.6 SMF record.        
  TYPECTLG 13.325  Support for MVS Catalog Records exported by IDCAMS.  
  TYPEDB2  13.212  Dataset DB2STAT2 was incomplete.                     
  TYPEDB2  13.244  Support for DB2 4.1.0 type 100 and 101 records.      
  TYPEDCOL 13.295  Support for DFSMS/MVS 1.3 DCOLLECT records (COMPAT). 
  TYPEDCOL 13.332  Support for 4-digit UCBs.                            
  TYPEDOS  13.328  Support for DOS/VSE POWER 5.2 Accounting Records.    
  TYPEEPMV 13.170  Support for OMEGAMON/MVS Version 300 (INCOMPAT).     
  TYPEEPMV 13.201  Support for Omegamon for MVS/ESA V400 adds variables.
  TYPEEREP 13.164  Support for EREP/SYS1.LOGREC records.                
  TYPEEREP 13.208  EREP gets INVALID DATA FOR DTL, additional support.  
  TYPEEREP 13.270  INPUT STATEMENT EXCEEDED error corrected.            
  TYPEFRYE 13.317  Support for Frye Systems LAN measures for Netware.   
  TYPEHIPR 13.120  Support for Boole & Babbage HiperCache V1.4.3.       
  TYPEHMF  13.038  Support for HMF subtypes 4 and 5.                    
  TYPEHMF  13.165  Deaccumulation of HMF records.                       
  TYPEHPAI 13.010  Support for HP-PCS data from AI UNIX.                
  TYPEHPSU 13.010  Support for HP-PCS data from SUN UNIX.               
  TYPEHPUX 13.010  Support for HP-PCS data from HPUX UNIX.              
  TYPEHSM  13.131  Corrections to HSM FSR segment in SMF record.        
  TYPEHSM  13.218  Support for HSM ABARS ABACKUP/ARECOVER FSR segment.  
  TYPEHSM  13.259  HSM ABARS record now validated.                      
  TYPEHURN 13.085  Support for Antares' HURON ObjectStar SMF record.    
  TYPEHURN 13.243  Zero obs in HURN49 dataset.                          
  TYPEICE  13.026  ICEBERG subtype 5 extents and TOIOTIME wrong.        
  TYPEIDMS 13.223  Support for IDMS 12.01 Maint 9506 (INCOMPATIBLE).    
  TYPEIDMS 13.267  Support for IDMS 12.01 INVALID DATA FOR PMHSDATE.    
  TYPEILKA 13.130  Internet addresses were not converted to num-point.  
  TYPEIMSA 13.013  IMS DEDB and MSDB counts from fastpath type 59.      
  TYPELMS  12.326  Support for Memorex/Telex LMS Version 3.1 (INCOMPAT).
  TYPEMON8 12.315  NO MATCHING DO/SELECT error, 'TD' record support.    
  TYPENAF  13.094  NAFLOGOF dataset variables incorrect.                
  TYPENAF  13.133  Candle's Supersession Release 147 PTF QLV1372        
  TYPENDM  13.070  Variable NDMDSDSN (Source DSN) added to NDMCT.       
  TYPENDM  13.146  Connect Direct (formerly NDM) minor corrections.     
  TYPENSPY 13.021  NETSPY Type N subtype 06/07 support incorrect.       
  TYPENSPY 13.022  Support for NETSPY Release 4.6 (compatible).         
  TYPENTCP 13.144  Support for NetCompress SMF records.                 
  TYPEOPC  13.092  Support for OPC Release 3.0 (INCOMPATIBLE).          
  TYPEPKMN 13.145  Support for Packet/Main SMF records.                 
  TYPEQAPM 13.051  Support for OS/400 Version 3.1.0 wrong in MXG 12.12. 
  TYPEQAPM 13.071  OS/400 Version 3.1, DSARM/DSTYPE reversed.           
  TYPERACF 13.030  Support for IBM's IRRDBU00 RACF Database Unload.     
  TYPERMDS 13.260  INVALID ARGUMENT TO MDY in RMDS 1.4 records.         
  TYPESAMS 13.080  Support for Sterling SAMS Storage Automation SMF.    
  TYPESAVR 13.252  New fields added, ZAP required to populate.          
  TYPESFTA 13.219  Support for ISOGON Soft Audit Version 4.1.           
  TYPESOLV 13.028  Support for Sterling SOLVE NCL CPU-time accounting.  
  TYPETAND 13.283  Support for TANDEM D20 D30 and D40 releases.         
  TYPETCP  13.008  Support for TCP/IP APAR PN69321-PN69322.             
  TYPETMDB 13.223  Support for Landmark TMON for DB2 Version 2.         
  TYPETMNT 13.135  PROGRAM=IEFIIC records are again deleted by TYPETMNT.
  TYPETMON 12.320  Landmark Version 1.3 variables were not INPUT.       
  TYPETMS5 13.083  Support for TMS (CA-1) Release 5.1 (compatible).     
  TYPETMS5 13.123  New variables from 5.1 added to final datasets.      
  TYPETMS5 13.308  BUFNO=220 on //TMC DD reduces 15 minute run to 4!    
  TYPETMVS 13.170  Support for new TMON/MVS subtypes.                   
  TYPETSOM 13.143  TSO/MON 6.1 only, TRIVTM,NTRIVTM,LONGTM too small.   
  TYPETUX  13.288  Support for Landmark TMON for UNIX.                  
  TYPETUX  13.302  Corrections and Enhancements for Landmark TMON/UNIX. 
  TYPEVM   13.287  Support for VM/ESA SQL/DS Remote User Account Record.
  TYPEVMXA 13.126  Sterling's VM/Monitor MONWRITE records cause error.  
  TYPEVMXA 13.137  Support for MICS VM Data Transmission Program output.
  TYPEVMXA 13.168  Correction to Change 13.126, applies to IBM too.     
  TYPEVMXA 13.318  Alternative VXBYUSER using VXUSELOF vice VXUSEINT.   
  TYPEWYLA 13.075  Support for ACS Wylbur Accounting SMF record.        
  TYPE102  13.009  T102S145 QWn145OB values wrong.                      
  TYPE102  13.192  IFCID 21 or 44 INVALID SECOND ARGUMENT error message.
  TYPE110  12.321  CICS Statistics CICDS and CICEODRV datasets wrong.   
  TYPE110  13.057  CICSLSRR variables A08BKCTD/A08BKDTD incorrect.      
  TYPE110  13.261  Support for SAP 5.0 INCOMPATIBLE type 110 journal.   
  TYPE110  13.291  CICSTRAN (MXG 13.07-13.08 only) ENDTIME/ELAPSTM bad. 
  TYPE110  13.296  CICS/ESA 4.1 TRANTYPE was moved by IBM, now correct. 
  TYPE116  13.049  Zero observations in dataset TYPE116.                
  TYPE1415 13.002  DSNAME='UNKNOWN...' set incorrectly for multi-vol.   
  TYPE1415 13.064  Multi-UCB type 1415 SMS fields wrong.                
  TYPE16   13.093  Support for DFSORT Release 13 (INCOMPATIBLE).        
  TYPE24   13.066  Fields added by MVS/ESA 5.2                          
  TYPE26J2 13.263  JESNR may show only four digits; IBM lied in ESA 5.2 
  TYPE28   13.072  Support for NPM Version 2.2 APAR OW08641.            
  TYPE30   13.065  Negative value for EXECTM due to IBM leapseconds.    
  TYPE30   13.066  Fields added by MVS/ESA 5.2                          
  TYPE30   13.073  ABEND value may be wrong in TYPE30_5.                
  TYPE32   13.084  Support for APARs OW10393 and OW12856.               
  TYPE42   13.066  Fields added by MVS/ESA 5.2                          
  TYPE42   13.217  Support for APAR OW14717 and OW16039 SMF type 42.    
  TYPE42   13.311  Support for DFSMS/MVS 1.3 VSAM RLS new subtypes.     
  TYPE50   13.188  Variable WRBUFUSE added to dataset TYPE50.           
  TYPE6    13.056  4-Digit remote support incomplete.                   
  TYPE6    13.309  INPUT STATEMENT EXCEEDED for PSF type 6 with BINS.   
  TYPE64   13.312  Support for DFSMS/MVS 1.3 VSAM RLS new variables.    
  TYPE72GO 13.236  Delay percentages calculation was incorrect.         
  TYPE74   13.004  MVS/ESAs 5.1 TYPE74ST dataset had duplicate/missing. 
  TYPE74   13.035  Support for APAR OW04653 added to TYPE74ST dataset.  
  TYPE80A  12.323  Invalid SUBSTR function, STOPOVER error corrected.   
  TYPE80A  13.254  Support for TOPSECRET 4.4/5.0 (INCOMPATIBLE) records.
  TYPE91   13.189  INVALID DATA FOR AFSTTIME in SMF type 91 fixed.      
  TYPE92   13.155  Support for OpenMVS File System I/O SMF type 92.     
  TYPE92   13.313  Support for MVS/ESA 5.2.2 Open Edition INCOMPATIBLE. 
  VMACEXC2 13.329  Supression of excess INVALID DEVICE messages         
  VMAC102  13.273  Support for DB2 4.1 IFCIDs 221, 222, and 231.        
  VMAC110S 13.323  CICS 2.1 and SAP journal segments intermixed fix.    
  VMXGDUR  13.305  Rename internal variables DATE HOUR DAY DAYM etc.    
  VMXGHSM  13.108  Dataset DGN corrected for multiple dump copies.      
  VMXGINIT 13.033  New macro variable, &MXGDEBUG is now GLOBALed.       
  VMXGSUM  13.152  VMXGSUM incompatible for user-written invocations.   
  VMXGSUM  13.276  "XMXGSUM" architecture now replaces VMXGSUM.         
  XMXGSUM  13.097  Final validation enhancements.                       
  YEAR2000 13.110  MXG Position Paper on support for the Year2000.      
  YEAR2000 13.158  Phase one support for the Year2000.                  
Inverse chronological list of all Changes:                              
NEXTCHANGE: Version 13                                                  
==========MXG 13.13 dated Jan 20, 1996, thru Change 13.332============  
Change 13.332  Support for 4-digit UCB's in DCOLLECT required only that 
VMACDCOL       the format for variable DCVDVNUM be changed from HEX3 to 
Jan 19, 1996   HEX4.                                                    
   Thanks to Astrid Fridtun, Statens datasentral, NORWAY.               
Change 13.331  Although DCOLLECT should be used instead of this old MXG 
ASMVTOC        Assembly routine, the program has been enhanced to handle
VMXGVTOC       4-digit UCB addresses, and VMXGVTOC has been modified to 
Jan 18, 1996   look for the 4-digit address at the end of the record    
               created by ASMVTOC.                                      
   Thanks to Astrid Fridtun, Statens datasentral, NORWAY.               
Change 13.330  Although DCOLLECT should be used instead of this old MXG 
ASMVVDS        Assembly routine, the program has been enhanced to handle
Jan 18, 1996   4-digit UCB addresses.  The TYPEVVDS program was already 
               written to support 4-digit addresses, so it was okay!    
   Thanks to Astrid Fridtun, Statens datasentral, NORWAY.               
Change 13.329  ERROR VMACEXC2.2 INVALID DEVICE DATA is printed for each 
VMACEXC2       DD segment with non-zero EXCPCNT that has DEVCLASS=00,   
Jan 18, 1996   DEVTYPE=00, and DEVNR=00, because MXG does not know what 
               to do with EXCPCNT in a DD segment which has no device!  
               However, the message is printed for EACH DD, filling the 
               SAS log with these messages from an MVS 3.1.3 system.  No
               other site has encountered the problem, and the site is  
               investigating to determine what is unique there, but to  
               prevent filling the log, the PUT statement is now limited
               to the first ten occurrences.   The existing EXC2ERR1=1; 
               statement was changed to EXC2ERR1+1; to make it a counter
               and a new line inserted between that statement and the   
               PUT statement reading  IF EXC2ERR1 LE 10 THEN  so that   
               the message is supressed after ten occurrences.          
   Thanks to Warick Smith, Sun Alliance & Royal Insurance, AUSTRALIA.   
Change 13.328  Support for DOS/VSE POWER 5.2 Accounting Records.  IBM   
IMACDOS        again changed the records INCOMPATIBLY, so you must EDIT 
TYPEDOS        member IMACDOS to specify OFFSET=0 and INPUT @43 RECID.  
Jan 17, 1996   to process POWER 5.2 records.                            
              -Additionally, the choice between "American" MMDDYY dates 
               and "European" DDMMYY dates was externalized into member 
               IMACDOS (previously, you had to actually change the code 
               in member TYPEDOS for European formats.).  If you have a 
               member IMACDOS in your USERID.SOURCLIB, you must replace 
               your existing IMACDOS with IMACDOS from MXG 13.13, or    
               you will get a VARIABLE _MMDDYY IS UNINITIALIZED message.
               Fortunately, even with that message, if your dates are in
               American format, MXG 13.13 will still work correctly with
               your old IMACDOS.  If your dates are in European format  
               and you use the old IMACDOS, you will also get messages  
               INVALID ARGUMENT TO FUNCTION MDY and your date values    
               will be missing until you replace your old IMACDOS with  
               the IMACDOS from MXG 13.13 (and tailor it for European). 
              -Finally, MXG code was corrected for the Reader record and
               variable FROUSRID $EBCDIC8.  is now INPUT after LOCLNODE 
               is read in.  Without this correction, an INPUT STATEMENT 
               EXCEEDED RECORD LENGTH error occurred if a reader record 
               did not contain a Network Account Number.                
   Thanks to ???, Alenia, ITALY.                                        
Change 13.327  The statement %INCLUDE SOURCLIB(IMACZDAT); must be       
TYPEMON8                    %%INCLUDE SOURCLIB(IMACZDAT); because it is 
TESTUSER       inside an old-style macro definition (and TYPEMON8 was   
Jan 17, 1996   inadvertently removed from TESTUSER, so I missed this!)  
               MXG 13.07 thru MXG 13.09 only.                           
   Thanks to Andrew Scales, Nissan UK, ENGLAND.                         
Change 13.326  IDMS Severity Code, TASMSSEV no longer exists in IDMS 12,
VMACIDMS       and variable TASABMSG was miscalculated.  The statement  
Jan 16, 1996   TASMSSEV=MOD(TASABMSG,10); was replaced with TASMSSEV=0; 
               and the statement TASABMSG=INT(TASABMSG/10); was deleted.
               Also, variables DBKKYFMT and DBKLTYPE are now formatted  
               as HEX8 and DBKOWNER as $HEX2 so as to be recognized by  
               IDMS-literate database administrators in their tongue!   
   Thanks to Martin Wieland, Neckermann B.V., THE NETHERLANDS.          
Change 13.325  Support for Catalog Records (Exported with IDCAMS).  A   
EXCTLGC1       separate dataset for each of the 13 Catalog Segments is  
EXCTLGC2       created for complete decoding of all possible segments   
EXCTLGC3       (and variable CATRECNR can be used to collect all of the 
EXCTLGC4       segments from a specific catalog record).  In addition,  
EXCTLGC7       two datasets are created from specific records:          
EXCTLGC8         CTLGDSN - Non-VSAM Data Set record (sequence of catalog
EXCTLGC9                   segments C1/01/04/04/...).  The first five   
EXCTLGDS                   VOLSERs are kept in CTLGDSN.                 
EXCTLGD9        CTLGVSAM - VSAM Cluster record record (sequence of      
EXCTLGE3                   C3/01/C4/01/04/.../C9/01/04/04...). The      
EXCTLGVS       first Data VOLSER and the first Index VOLSER             
EXCTLG01       are kept in CTLGVSAM.                                    
EXCTLG02       This preliminary support code detects and deletes a few  
EXCTLG03       "strange" records (always at the beginning of the Export 
EXCTLG04       file), printing messages on the log.  After MXG 13.13 is 
EXCTLG05       built and early users have played with this new support, 
EXCTLG06       I intend to examine the strange records further.  I also 
IMACCTLG       need feedback as to intended use of the catalog records  
TYPECTLG       to enhance contents of the record-level datasets CTLGDSN 
VMACCTLG       and CTLGVSAM (and may need to add a CTLGGDG dataset!).   
Jan 16, 1996 See documentation in the member on usage.                  
   Thanks to Dale Houg, Kraft Foods, USA.                               
=======NEWSLETTER TWENTY-NINE Printed Changes THRU Change 13.324======= 
Change 13.324  If PDBOUT=WORK was specified for READDB2, the datasets   
READDB2        were written to //WORK, but then inadvertently deleted!  
Jan 13, 1996   Now, they will remain in the //WORK file as requested.   
Change 13.323  For CICS 2.1 and SAP, SAP journal segments (which should 
VMAC110S       be in a subtype=0 type 110 record) are intermixed with   
Jan 13, 1996   IBM performance records in records with subtype=1, and no
               one at SAP AG can tell why! (See text of Change 13.261). 
               This problem has only been seen with CICS 2.1 (which is  
               already off IBM support) at one site, and they were smart
               enough to create logic to deal with that aberration and  
               share it with me, so I have created new member VMAC110S  
               by adding their workaround to the MXG 13.13 VMAC110 code.
               I do not have test data records but have a hex dump of an
               example bad record and have validated their logic in that
               manner.  If you still have CICS 2.1 and have SAP writing 
               data to the type 110, you should test this new member    
               and compare the number of observations output in all of  
               the CICxxxxx datasets; if they are the same, you need not
               use VMAC110S, but if you have the defective records, the 
               normal VMAC110 will throwaway records and you will have  
               fewer observations output (or SAS may loop!).            
               To use the VMAC110S member instead of the normal VMAC110,
               copy member VMAC110S into your USERID.SOURCLIB library   
               and rename it to VMAC110.                                
   Thanks to Paolo Carloni, Agip petroli SPA, ITALY.                    
Change 13.322  Hex dumps of BETA93 release 01.06.50 records have now    
VMACBETA       been reviewed (See Change 13.304) and they show new time 
Jan 13, 1996   values are misdocumented by the vendor.  Some binary are 
               actually HH MM SS in PK1. fields, some HHMMSS are        
               SMFSTAMP8, and one SMFSTAMP8. field is reversed (date    
               first, time 2nd!).  This change should complete support  
               for the new release.                                     
Change 13.321  Duplicate LABELs were removed from members ASUM70PR,     
DOC            ZMACTMVS, and VMAC members 110, 110M, 30, 33, 42, 60, 74,
Jan 13, 1996   80A, 84, BETA, CMF, DCOL, HPAI, HPCS, LMS, MEMO, NDM,    
               NSPY, RRTM, SAMS, and TPX.                               
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.320  The SAS option CODEPASS=2 is now set only for execution  
BUILDPDB       under MVS, because CODEPASS is an MVS-only option, but   
BUILD001       it causes an ERROR 2-12 INVALID OPTION NAME under ASCII  
Jan 13, 1996   SAS.  (In actuality, CODEPASS=2 is an MVS compiler option
               that has no measurable effect on BUILDPDB, but if the    
               default CODEPASS=1 is in effect, SAS prints a note on    
               the log suggesting that CODEPASS=2 might reduce run time 
               so I specify CODEPASS=2 mostly to suppress the message,  
               rather than for any performance improvement.)            
Change 13.319  The syntax OTHER="left bracket" $HEX2. "right bracket"   
FORMATS        or OTHER=("vertical bar" $HEX2. "vertical bar") cannot   
Jan 12, 1996   be used on both EBCDIC and ASCII platforms.  The left    
               and right brackets do not exist on MVS, and the vertical 
               bar ('4F on MVS) becomes '5D'x on ASCII, which must be   
               changed to '7C'x to work under ASCII.  Fortunately, the  
               CHARCODE system option allows a pair of characters to    
               replace right and left brackets, so the syntax of        
                  OTHER= ?< $HEX2. ?>   can be used, as long as the     
               code is preceded by OPTIONS CHARCODE;, which has now     
               been added in the FORMATS member to allow this part of   
               MXG to execute transparently under either ASCII or MVS.  
   Thanks to Terry Poole, SAS Institute Cary, USA.                      
Change 13.318  Comparing the CPU times in VM/ESA MONWRITE data, PFXUTIME
VMACVMXA       was significantly higher than VMDTTIME, because the data 
Jan 11, 1996   for the time from end of last interval to logoff was not 
               captured.  Initially, Ian's rework of the VXBYUSR code   
               was to use the USEINT data, but he is now convinced that 
               that data is not complete, and he has suggested to IBM to
               include that CPU time (the time from logon to the first  
               interval) in the USELOF data.  Now, however, his rework  
               produces more VMDTTIME from the combined USEACT & USEINT 
               datasets than the sum of PFXUTIME and PFXTMSYS derived   
               from the SYTPRP records!  I have implemented Ian's design
               in new macro _TESTMWX, which you can use in place of the 
               normal TESTMW macro, to see how the CPU times captured in
               the user records (VMDTTIME) compares at your site. Please
               let me know your results; this note will be updated based
               on your feedback of his algorithm.                       
               2016: No feedback was ever received, use _DBYUSR/_DELTALL
   Thanks to Ian Davis, Worker's Compensation Board of Alberta, CANADA. 
Change 13.317  Support for FRYE Systems LAN monitor for NETWARE.        
ADOCFRYE       Their monitor stores data into five DbaseIII files.  This
ASUMFRYE       support uses PROC DBF (a part of PROC ACCESS) to convert 
GRAFFRYA       DbaseIII into SAS files, and produces some very nice SAS 
GRAFFRYT       plots from the resultant file.  This code can only be    
IMACFRYE       executed on a SAS ASCII platform, as the DBase files can 
TRNDFRYE       not be uploaded to a mainframe, and PROC DBF only exists 
TYPEFRYE       on ASCII systems.   The member ADOCTYPE provides early   
VMACFRYE       documentation of the Netware data captured, and also has 
Jan 11, 1996   three examples of converting DbaseIII into SAS (PROC DBF,
               PROC ACCESS, and a DATA step).                           
   Thanks to Chuck Hopf, MBNA, USA.                                     
FORMATS        HITPCT and CIOPCT in datasets TYPE42SR and TYPE42DS and  
VMAC42         the twelve S42AMxxx variables in TYPE42DS were not set to
Jan 11, 1996   a missing value when they could not be calculated or when
               the fields did not exist, so values from a prior segment 
               in the same record were carried forward incorrectly.  An 
               ELSE clause now sets these variables missing when needed.
               The TYPE42DS records variable INTVCLOS indicates whether 
               the record is for an Interval or Close event, and I had  
               thought the Close record contained total counts for the  
               entire open; however, the Close event actually contains  
               only the counts between the end of the last interval and 
               the Close, so I have changed the INTVCLOS format values  
               from 0:CLOSE TO 0:FINAL INTERVAL.                        
   Thanks to Peter Lauper, Bank of America, USA.                        
Change 13.315  Blue Line Software's Release 4.03 and 4.04 cause INPUT   
VMAC28         STATEMENT EXCEEDED RECORD LENGTH with type 28 subtype D6x
Jan 10, 1996   D7x or D9x SMF records.  Their fixes are 4030030/4030031 
               for 4.03 and 4040035 for 4.04.  All are reported fixed in
               their release 4.10, currently in beta testing.  I have   
               added traps in MXG to recognize their short records and  
               prevent the ABEND.                                       
   Thanks to Kevin Batten, Roses Stores, Inc, USA.                      
Change 13.314  Variables MVCRTIME,MVLCTIME and MVUCTIME in EDGSVREC     
VMACEDGS       dataset should have been LENGTH 8 with DATETIME21.2      
TYPETMS5       format, and variable DSAUTIME in dataset DSNBRECD should 
Jan 10, 1996   have been LENGTH 8 with DATETIME18.; now all are!        
   Thanks to Freddie Arie, Lone Star Gas, TEXAS                         
==========MXG 13.09 dated Jan 10, 1996, thru Change 13.313============  
Change 13.313  Support for MVS/ESA 5.2.2 Open Edition MVS (OMVS) adds   
VMAC92         new flag variable SMF92MFG to TYPE9201 and SMF92UFG to   
Jan  9, 1996   TYPE9205 to identify the mounter/unmounter of the file   
               system, and new subtype 6 (for File System Remount) will 
               now be output in TYPE9205 dataset (and variable SMF92STP 
               was added to identify Unmount or Remount).               
               Unfortunately, the new flag fields were inserted in the  
               subtype 1 and 5 records, incompatibly altering format.   
Change 13.312  Support for DFSMS/MVS 1.3 (compatibly) added several new 
VMAC64         variables for VSAM Record Level Sharing (RLS), including 
Jan  9, 1996   separate counts of I/O requests satisfied from LSR, DASD,
               or the CF (Coupling Facility) Cache Structure (variables 
               SMF64BMH,SMF64RIO, and SMF64CFH, respectively), and flag 
               variables to identify if RLS is in effect, if RLS is in  
               effect but measurement has been turned off, or if this is
               an extended addressable dataset.  When VSAM RLS is in use
               existing Hiperbatch fields and buffer counts are zeroed, 
               and EXCP count variables ACCEXCPS and EXCPs count buffer 
               manager request rather than SSCHs.                       
Change 13.311  Support for DFSMS/MVS 1.3 (compatibly) added four new    
EXTY42D1       subtypes for VSAM Record Level Sharing (RLS) activity,   
EXTY42D2       with excellent measurement of RLS's usage of CF structure
EXTY42L1       (counts and durations and response).  MXG creates eight  
EXTY42L2       new datasets from these four new subtypes:               
EXTY42P1        From new Subtype 15:                                    
EXTY42P2         TYPE42S1 - Storage Class Sysplex-wide statistics       
EXTY42S1         TYPE42S2 - Storage Class By-System statistics          
EXTY42S2           These two datasets provide six sets of 17 variables: 
IMAC42                DASD Summary  (variables SMF42FCx and SMF42FIx)   
VMAC42                DASD REDO     (variables SMF42FDx and SMF42FJx)   
Jan  9, 1996          SEQ  Summary  (variables SMF42FEx and SMF42FKx)   
                      SEQ  REDO     (variables SMF42FFx and SMF42FLx)   
                      SEQ READAHEAD (variables SMF42FGx and SMF42FMx)   
                      SEQ PREFORMAT (variables SMF42FHx and SMF42FNx)   
                From new Subtype 16:                                    
                 TYPE42D1 - Data Set Sysplex-wide statistics            
                 TYPE42D2 - Data Set By-System statistics               
                   These two datasets provide six sets of 17 variables: 
                      DASD Summary  (variables SMF42GCx and SMF42GIx)   
                      DASD REDO     (variables SMF42GDx and SMF42GJx)   
                      SEQ  Summary  (variables SMF42GEx and SMF42GKx)   
                      SEQ  REDO     (variables SMF42GFx and SMF42GLx)   
                      SEQ READAHEAD (variables SMF42GGx and SMF42GMx)   
                      SEQ PREFORMAT (variables SMF42GHx and SMF42GNx)   
                From new Subtype 17:                                    
                 TYPE42L1 - Lock Structure Sysplex-wide statistics      
                 TYPE42L2 - Lock Structure By-System statistics         
                   These two datasets provide 9/10 variables.           
                From new Subtype 18:                                    
                 TYPE42P1 - CF Cache Partition Sysplex-wide statistics  
                 TYPE42P2 - CF Cache Partition By-System statistics     
                   These two datasets provide 33/34 variables.          
Change 13.310  Support for MVS/ESA 5.2.2 (compatibly) added new fields: 
VMAC30        -TYPE30OM dataset has new variables SMF30OMS,SMF30OMR, and
Jan  9, 1996   SMF30OSY for message queue bytes and sync() functions for
               Open Edition/MVS.                                        
Change 13.309  INPUT STATEMENT EXCEEDED INPUT for PSF type 6 SMF record,
VMAC6          because IBM added 32 undocumented bytes to the APA       
Jan  8, 1996   section.  The change was made by APAR OW10067 and PTF    
               UW18264, but the description and location of the change  
               to the type 6 record was not contained in the APAR text! 
               (nor is the change documented in the 5.2.2 SMF manual).  
               Change VMAC6 to read:                                    
                        SMF6PTDV  $EBCDIC8.  /* ... */         existing 
                   @;                                          existing 
                   IF SMF6LN4 GT 84 THEN DO;                     insert 
                     INPUT                                       insert 
                        SMF6OCNM $EBCDIC20. /*OUTPUT*COM*NAME*/  insert 
                                       +12  /*RESERVED*/         insert 
                     @;                                          insert 
                     SKIP=SMFLN4-116;                            insert 
                     IF SKIP GT 0 THEN INPUT +SKIP @;            insert 
                   END;                                          insert 
                   IF SMF6BNOF GT 0 THEN DO;                   existing 
               This error only occurs if the Multi-Bins header and      
               counter sections exist in the type 6 record.             
   Thanks to Veronique Planes, SAS Institute, FRANCE.                   
Change 13.308  Setting BUFNO=220 on the //TMC DD statement can make a   
TYPETMS5       dramatic reduction in elapsed time.  A fifteen-minute run
Jan  8, 1996   ran in under 4 minutes with increased buffers.           
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.307  Some very simple HSM reports and a preliminary technical 
ANALHSM        note on how to measure HSM, and what's important in the  
ADOCHSM        HSM SMF records has been added in these members.         
Jan  7, 1996                                                            
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.306  Cosmetic changes in MXG 13.08 only.  The invoked message 
VMXGSUM        still had "XMXGSUM" and "13.01" hardcoded, now corrected,
Jan  7, 1996   and the output dataset label was double quotes instead of
               blank if no dataset label was provided in the outcode.   
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.305  Internal, temporary variables named DATE, HOUR, DAY, DAYM
VMXGDUR        QTRHOUR HALFHOUR and MINUTE were created and dropped     
Jan  7, 1996   inside VMXGDUR macro, which is called by VMXGSUM when    
               INTERVAL= is specified.  If you wanted to keep one of    
               those variable names, the internal DROP statement        
               prevented you from doing so (and it was most definitely  
               not obvious why your VMXGSUM did not work!).  Now, the   
               temporary variables names start with DUR to prevent the  
               inadvertent loss.                                        
   Thanks to Neil Ervin, Huntington Services Company, USA.              
Change 13.304  Support for BETA93 Release 1.06.50 (INCOMPATIBLE) inserts
VMACBETA       fields in existing records, and adds five new subtypes   
Jan  7, 1996   which create five new datasets:                          
                 BETA20 - Browse or Print of List or Report             
                 BETA21 - Browse Selection Action                       
                 BETA40 - Archive of a List                             
                 BETA41 - Reload of a List                              
                 BETA42 - Deletion of an Archive Generation Record      
               Existing variable names were based on the DSECT names,   
               but this caused the same entity (eg., pages or lines) to 
               have a different variable name in each of the existing   
               seven datasets; for consistency and ease in reporting I  
               have renamed some of these variables, knowing full well  
               that my changes may cause your existing reports to fail  
               with VARIABLE NOT FOUND errors, for which I apologize!   
               Labels were also made consistent and more descriptive.   
               The changes have been tested with prior release data,    
               but not yet with records from 1.06.50. See Change 13.322.
Change 13.303  New variable MXGVERSN is kept in TYPE70 and PDB.RMFINTRV 
RMFINTRV       datasets so you can tell which version of MXG created the
VMAC7072       dataset from SMF.  I did not think it necessary to add   
Jan  6, 1996   the 6-byte version name ('13.13 ') in each MXG dataset.  
               Should you need to create MXGVERSN in other datasets,    
               you can use this logic (as macro variable MXGVERS is a   
               Global macro, set at SAS initialization by VMXGINIT):    
               and then add MXGVERSN to the _K macro defined in the     
               IMACxxxx member for the product - See Change 10.175.     
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 13.302  Landmark's TMON for UNIX dataset TUXCPU is now created,  
EXTUXCPU       all datasets have now been tested with data, and formats 
VMACTUX        for rates and percentages are now consistent.  However,  
Jan  6, 1996   there are still unfixed problems that won't be fixed at  
               least until their ML 3.3 release:                        
              -Datasets TUXCONEC (connections), TUXPROG (program) and   
               TUXPROC (process) have occasional short records (i.e, one
               or more fields and their delimiters do not exist in the  
               data record!), causing INPUT STATEMENT EXCEEDED LENGTH   
               errors. Landmark Activity 49861 still open.              
              -Two undefined fields are in the data record that are not 
               in the header in TUXNFSCL (nfsclient), TUXSOCK (sockets) 
               and TUXUSERI (userio), causing variables WRITBLOK,       
               READPART, WRITPART, READFAIL, and WRITFAIL to be trashed 
               in those three datasets.  Ref. 47164.                    
              -Of more concern, monitor intervals are not synchronized  
               and timestamp values are very suspect.                   
               I expected one minute interval data to be written each   
               minute, but the one set of TUXINFO (info) records had    
               event timestamps starting at 17 seconds after the minute,
               drifting to 55 seconds after the minute in only a few    
               minutes: 17,15,26,28,26,26,...26,36,37,39,44,49,55       
               New test data for the cpu table (TUXCPU) permits better  
               analysis, because both EVENTIME (log_time) and the true  
               HRDWTIME (BOOTTIME plus UPTIME) can be compared.         
               Both clock shows that interval durations are not only not
               synchronized but also are quite erratic, and each record 
               shows a different interval depending on which clock value
               you examine!  Comparing durations in the same record:    
                 from hardware clock:  59,99,151,41,60,126,146,113      
                 from log_time clock:  60,97,116,61,60,122,142,118      
               Comparing the hardware timestamp with the log_time in the
               same record shows that the logtime sometimes is only 1-2 
               seconds later than the hardware timestamp (with a 5-hour 
               difference between GMT in hardware and EST in local), but
               other intervals have a log_time several minutes later    
               than the hardware time, and a few records are really bad,
               with the hour-part difference only two instead of five!  
               This is clearly a serious problem, and Landmark is now   
               aware of these discrepancies in their monitor.  This text
               will be updated when Landmark responds.                  
   Thanks to Dan Sidorick, SmithKline Beecham, USA.                     
Change 13.301  Decoding DEVCLASS and DEVTYPE in VMACUCB still tested the
VMACUCB        first bit of DEVNR and set DEVICE='MSS' if on, but this  
Jan  5, 1996   is incorrect now, as four-digit device numbers exist, and
               MSS devices do not, so that test is now disabled!        
Change 13.300  New variable HIGHRBA is now created in TYPE64 with the   
ANAL4GB        allocated size (in bytes) of the VSAM file (using logic  
VMAC64         from GC26-4574-2 to calculate CI's per track for 3380s   
Jan  5, 1996   and 3390s).  Member ANAL4GB then identifies those VSAM   
               files that are over 80% of the IBM hard limit maximum of 
               4GB for VSAM files, so you can forewarn their owners!    
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.299  H-P's MEASUREWARE (formerly HP-PCS) does not record true 
IMACHPAI       CPU seconds in the HPxxGLOB and HPxxAPPL datasets, but   
IMACHPSU       instead records only the Average CPU time per CPU Engine,
IMACHPUX       and then does NOT record how many Engines there are, so  
VMACHPAI       so you get correct total CPU time from the data records. 
VMACHPSU       While I regard this as an ERROR, HP considered it only an
VMACHPUX       enhancement request!  The NRCPUS field is in the CONFIG  
Jan  6, 1996   records, but unfortunatly the HP Extract program is hard-
Jan 18, 1996   coded to put the CONFIG records at the end of its output 
               file.  HP was persuaded to provide a workaround Script   
               that was to sort the Extract output and interleave the   
               CONFIG records to appear first (and simultaneously, that 
               interleave would have supported dynamic changes in the   
               number of engines, if "VARY CPU OFFLINE" ever becomes a  
               UNIX option!), so MXG logic was reordered to look for the
               CONFIG records first, and retain NRCPUS into the needed  
               datasets.  Unfortunately, the first Script did not work  
               as expected, so HP is back working on the problem as this
               Newsletter goes to press.  As an interim MXG workaround, 
               I have added a user-specified macro in IMACHPAI, IMACHPSU
               and IMACHPUX which defaults to one CPU, but allows you to
               tell MXG if you have more than one Engine.  That logic   
               will be revised when HP provides a solution to the basic 
               problem, and this text will be revised to point to a     
               later change when there is a solution.                   
               MEASUREWARE records are NOT supported in MXG 13.13; as I 
               stated in this text in Newsletter TWENTY-NINE, I had just
               received test data as that newsletter went to print, and 
               now my fears are confirmed:  HP made INCOMPATIBLE changes
               between PCS records and MEASUREWARE records that will    
               require significant changes in MXG support.  If you are  
               replacing HP-PCS with MEASUREWARE, please fax me for the 
               status of those changes (and identify the system, HP, AIX
               or SUN, that you need supported, as each is different!). 
   Thanks to Thierry Van Moer, Procter & Gamble, BELGIUM.               
Change 13.298  Format MGTANDS now decodes device type =38 (38:2GB) disk 
FORMATS        device, and variables LDEV and CTRL are now input as     
VMACTAND       $CHAR2. with a $OCTAL6. format, so device and control    
Jan  4, 1996   unit are printed as TANDEM sysprogs expect.              
                  This was my first use of the $OCTAL format, and Steve 
                  Smith discovered what happens when I underspecified   
                  the output width.  Forgetting that a two-byte field   
                  requires six print positions for its value in octal, I
                  initially assigned $OCTAL4 to a two-byte character    
                  variable, but when a two-byte field containing '0056'o
                  (octal), or '002E'x (hex) was input, the value 0000   
                  was printed, because SAS truncates character variables
                  on the right.  Steve changed $CHAR2 to PIB2 and       
                  $OCTAL4 to OCTAL4, and the correct value 0056 was     
                  printed, because SAS truncates numeric variables on   
                  the left!  Of course, specifying the correct width of 
                  $OCTAL6 or OCTAL6 prints 000056 and eliminates the    
                  exposure to truncation differences!                   
   Thanks to Steve Smith, BGS Systems, USA.                             
Change 13.297  Spelling corrections in labels, consistent comments after
EXVMxxx        output statements, and removal of duplicate names in KEEP
VMACIDMS       lists were made in members VMACAXC, VMACDB2, VMACDCOL,   
               VMACIDMS now includes IMACZDAT (needed only if TYPEIDMS  
               was executed standalone).                                
               EXVMxxx members now have their "_LVMxxxx" macro names    
               instead of hard-coded dataset names for VM Accounting.   
               All of these changes were precipitated by Freddie's      
               excellent "MXG SOURCE CODE ANALYZER" program.            
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.296  Variable TRANTYPE in dataset CICSTRAN with CICS/ESA 4.1  
FORMATS        was changed by IBM.  Previously IBM used the fourth byte 
VMAC110        of a four-byte field; now they use the first two bytes of
Dec 29, 1995   a four-byte field, so the length of TRANTYPE is increased
               to two bytes, the INPUT for 4.1 records was reordered and
               the MG110TT format was changed to decode both the old    
               one-byte value and the new one-and-two-byte values!      
   Thanks to ????, Banco Santander, SPAIN.                              
Change 13.295  Support for DFSMS/MVS 1.3 DCOLLECT records COMPATIBLY    
EXDCODAI       added a number of new variables to these datasets:       
VMACDCOL       and two new datasets are now created:                    
Dec 29, 1995    DCOLCN -  Cache Names (Cache Set name and 8-SES Caches) 
                DCOLAI -  Accounting Information (audit of definitions  
                          of data class, management class, storage class
                          and storage group - who/when updated, which   
               In addition, enhancements to the existing DCOLLECT code  
               for the construct datasets were made.  Variables with hex
               flag values are now INPUT as $CHAR instead of $EBCDIC and
               are formatted HEX or $HEX, new MGDCOxx formats now decode
               variables, especially in DCOLMC and DCOLSG datasets, and 
               new multi-valued flag variables were created and decoded.
   Thanks to Mike Moos, British Rail, ENGLAND, for construct changes.   
Change 13.294  Variable DEVICE in TYPE64 was truncated to two bytes, if 
VMAC64         TYPE64 member was executed by itself.  The statement     
TRNDCICS       DEVICE='  '; must be changed to DEVICE='       '; to get 
Dec 28, 1995   all seven positions of DEVICE type name.                 
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.293  Change 13.268 (adding USER to the SUMBY list for building
ASUMCICS       PDB.CICS from CICSTRAN) was not applied to ASUMCICS nor  
TRNDCICS       to TRNDCICS, but now both members have been changed.     
Dec 18, 1995                                                            
   Thanks to Richard S. Ralston, Whirlpool, USA.                        
Change 13.292  IBM creates invalid CICS Statistics records with CICS 3.3
Dec 18, 1995   which caused MXG to fill the //WORK file.  While IBM is  
               trying to find their error, MXG has added logic to detect
               the STILEN=0 condition and prevent the error.            
               To circumvent the error, in member VMAC110, find the     
               INPUT statement that inputs STILEN, STID, and STIVERS,   
               and after the @; that ends that INPUT statement, insert  
                  IF STILEN=0 THEN DELETE;                              
               which will cause MXG to stop processing that 110 record. 
   Thanks to David Callahan, Caterpiller Inc, USA.                      
Change 13.291  CICS/ESA 4.1 only, MXG 13.07-MXG 13.08 only. The CICSTRAN
VMAC110        variables ENDTIME, ELAPSTM and IRESPTM are wrong.  Change
Dec 18, 1995   13.247 (GMT support) was incorrectly typed in VMAC110.   
               The two lines reading:    ENDTIME =ENDTIME =MCTMNTAD;    
               must both be changed to:  ENDTIME =ENDTIME +MCTMNTAD;    
               (Since ASUMCICS and TRNDCICS use STRTTIME rather than    
               ENDTIME to classify a transaction, the ENDTIME error is  
               noticed only if you look at a specific transaction, but  
               because IRESPTM is used for the response time buckets,   
               those data for your CICS/ESA 4.1 systems is wrong.)      
               ENDTIME is also wrong in dataset CICSEXCE.               
   Thanks to Neil Ervin, Huntington Service Company, USA.               
==========MXG 13.08 dated Dec 15, 1995, thru Change 13.290============  
Change 13.290  Cleanup of dead members and dead references;  Freddie has
IMACNPM        built a SAS program that reads my SAS programs to find   
TYPEZRB        members-not-referenced, comments-misspelled, etc.  This  
Dec 12, 1995   sweep removed references to VMAC43PC,VMAC47PC,VMAC48PC,  
               and VMAC49PC in member VMACTEST (a private test program),
               and deleted members IMACNPM and VMACZRB0 (both archaic   
               and no longer needed nor referenced)                     
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.289  Support for MVS Solutions's Thruput Manager SMF record   
EXTYTPMF       creates two data sets from the single SMF record:        
EXTYTPMV        TYPETPMF - Thruput Manager Job Analysis                 
IMACTPM         TYPETPMV - Thruput Manager Variable Fields              
Dec 12, 1995                                                            
   Thanks to Dan Kaberon, Hewitt Associates, USA.                       
Change 13.288  Support for Landmark's TMON for UNIX creates 34 datasets:
EXTUXCLI       MXG Data  INFILE   Landmark                              
EXTUXCON       Set Name   name    Table name           status           
EXTUXDIS       TUXBLOCK  TUXBLO   blockdevice          TESTED           
EXTUXDSK       TUXCLIEN  TUXCLI   clientdetail         TESTED           
EXTUXFIB       TUXCONEC  TUXCON   connections          See Note 1, below
EXTUXFIH       TUXCURDI  TUXCUR   currentdir           TESTED           
EXTUXFRE       TUXDISK   TUXDIS   disk                 TESTED           
EXTUXINF       TUXDSKPR  TUXDSK   diskprocess          TESTED           
EXTUXINT       TUXFILEB  TUXFIB   filebalance          TESTED           
EXTUXLIM       TUXFILEH  TUXFIH   filehistory          TESTED           
EXTUXMEM       TUXFREE   TUXFRE   freespace            TESTED           
EXTUXNFS       TUXINFO   TUXINF   info                 TESTED           
EXTUXNFR       TUXINTER  TUXINT   interface            TESTED           
EXTUXOPN       TUXLIMIT  TUXLIM   limits               TESTED           
EXTUXPRD       TUXMEMRY  TUXMEM   memorymgmt           TESTED           
EXTUXPRC       TUXNFSCL  TUXNFS   nfsclient            See Note 2, below
EXTUXPRO       TUXNFSRV  TUXNFR   nfsservice           TESTED           
EXTUXPRF       TUXOPENF  TUXOPN   openfiles            TESTED           
EXTUXPRS       TUXPRODI  TUXPRD   processdisk          TESTED           
EXTUXPGM       TUXPROC   TUXPRC   process              TESTED           
EXTUXPCL       TUXPROCO  TUXPRO   processor            TESTED           
EXTUXQUO       TUXPROFI  TUXPRF   processfiles         TESTED           
EXTUXRSP       TUXPRODS  TUXPRS   processdisposition   TESTED           
EXTUXSRV       TUXPROG   TUXPGM   program              TESTED           
EXTUXSOC       TUXPROTO  TUXPCL   protocol             TESTED           
EXTUXSTO       TUXQUOTA  TUXQUO   quotas               no test data yet 
EXTUXSYS       TUXRESP   TUXRSP   response             TESTED           
EXTUXTAB       TUXSOCK   TUXSRV   server               See Note 2, below
EXTUXTRM       TUXSTOR   TUXSOC   sockets              TESTED           
EXTUXUSR       TUXSYSTM  TUXSTO   storage              TESTED           
EXTUXUSI       TUXTABLE  TUXSYS   system               TESTED           
EXTUXWAI       TUXTERM   TUXTAB   tables               TESTED           
IMACTUX        TUXUSER   TUXTRM   terminal             TESTED           
TYPETUX        TUXUSER   TUXUSR   user                 TESTED           
VMACTUX        TUXUSERI  TUXUSI   userio               See Note 2, below
Dec 12, 1995   TUXWAITS  TUXWAI   waits                TESTED           
               The Landmark EXPORT command that is used to create the   
               data files that are read by MXG has these known errors   
               December.  Landmark expects to have a revised EXPORT     
               command module by January to correct these errors:       
               1) The connections table, MXG data set TUXCONEC, has some
                  data records with fields missing, causing an INPUT    
                  STATEMENT EXCEEDED RECORD LENGTH error with that file.
               2) The TUXNFSCL (nfsclient) TUXSOCK (server) and TUXUSERI
                  (userio) tables have numbers instead of names for some
                  fields in the header, so those data sets are not yet  
                  completely valid until Landmark corrects their data.  
               Member JCLTUX gives an example of the JCL required that  
               will read all 34 files created by TMON for UNIX's export 
Change 13.287  Support for the VM/ESA SQL/DS Remote User Record in the  
EXVMSQLR       VM Account file.  The new record INCOMPATIBLY alters the 
TYPEVM         VMSQLUSR record (SQLCPUTM in hundreds of hours), because 
Dec 12, 1995   it the MXG logic unknowingly output the new record there!
               This change recognizes the new record and outputs it into
               new dataset VMSQLRMT instead.                            
   Thanks to Norbert Korsche, OMV AG, AUSTRIA.                          
Change 13.286  MXG 13.06-13.07. ERROR: THE KEYWORD PARAMETER ALOC3590   
ANALTAPE       WAS NOT DEFINED.  Two line reading ALOC3490=TAPE3490;,   
Dec 12, 1995   must have the comma at the end of the line removed, and  
               twos line reading  ALOC3490='3490 ALLOCATIONS WAITING';, 
               must have both the semi-colon and the comma at the end   
               of the line removed.  Four lines needed correction.      
   Thanks to Jon Caldwell, U.S. Department of Veterans Affairs, USA.    
   Thanks to Mike Hampton, First Nationwide Bank, USA.                  
Change 13.285  Cosmetic documentation change. References to ANALDB2 were
ADOCDB2        changed to DIFFDB2, the "four datasets" note was changed 
DIFFDB2        to "three datasets", and change 12.033 is referenced     
Dec 12, 1995   instead of change 12.034.                                
   Thanks to Nico Lenaerts, SAS BELGIUM, BELGIUM.                       
Change 13.284  REXX program to convert GTF trace records from DB2 into a
REXXDB2        legitimate (un-segmented) records had typographic errors.
Dec 12, 1995  -All C2K should have been C2X instead.                    
              -The  NE should have been <> instead.                     
              -The statement I=REC must be changed to F=REC.            
              -The concatenation symbol '6A'x needs to be '4F'x for MVS.
               That character is mis-translated between EBCDIC/ASCII by 
               many upload/download packages, so the actual change was  
               to replace     F=F||G   with    F=(F)(G)so that the      
               REXX program is impervious to upload/download.           
   Thanks to Eric Thornton, D&B, USA.                                   
   Thanks to Chuck Hopf, MBNA, USA.                                     
======= Attended CMG 95 Conference in Nashville, Tennessee ============ 
Change 13.283  Support for TANDEM D20, D30, and D40 releases is added   
VMACTAND       compatibly.  However, I found I cannot trust the TANDEM  
Dec  2, 1995   MEASURE documentation; its DLLs show changes where there 
Dec 12, 1995   were none!  (Fortunately, CMG came to the rescue as there
Jan  3, 1996   I met a TANDEM employee who put me in touch with the real
               programmer who wrote the code!). Two variables were added
               compatibly by D30 (BEGTRANS,ABRTRANS) by using reserved  
               space in the PROCESS record. Several measurement fields  
               (lock-pages-qtime/count and UCL-lock-qtime/count in the  
               PROCESS record, and the four pairs of START/END variables
               for UDS-LOCK, SDS-LOCK,UCL- LOCK, and SCL-LOCK in the    
               DISC record) were made reserved fields in D40 (because   
               they were too expensive to capture!). The DDL for D40 are
               wrong, as they show BEGTRANS/ABRTRANS in the wrong place,
               and the now-reserved fields were deleted from the DDL,   
               but they were not deleted from the physical record.      
   Thanks to Joe Fleischmann, US Bancorp, USA.                          
   Thanks to Todd Tomita, US Bancorp, USA.                              
   Thanks to Steve Smith, BGS Systems, USA.                             
Change 13.282  MAINTLEV 7 of the MXG Tape Mount and Allocation Monitor  
ASMTAPES       corrects the JSCB access problem, the CA-11 restart case,
Nov 30, 1995   and supresses the SRB dump messages (unless we ask you to
               enable DEBUGGING!).  This iteration has been running in  
               two sites for several weeks with no failure. The previous
               monitor code was copied into ZSMTAPES for backup.        
Change 13.281  This replacement for member CICINTRV is temporarily put  
CICINTRZ       in this member for extensive testing, but it will become 
Nov 30, 1995   CICINTRV in the near future.  The present CICINTRV logic 
               is incorrect, and this new logic correctly creates the   
               CICS interval datasets from the statistics datasets.     
               This version first summarizes the individual datasets at 
               the lowest level, and performs deaccumulation with DIF() 
               function for the REQ and USS records so that all four    
               types of CICS stat records are correctly summarized into 
               the CICINTRV dataset.  Note that this can be resource    
               intensive if you have lots of CICS activity, but you can 
               construct the CICS activity from these statistics records
               even if you have turned off CICSTRAN creation!           
               Revised Jun 13, 1996: Resources are not a problem; see   
               resource measurements in text of Change 14.132, which    
               implemented these enhancements starting with MXG 14.04.  
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.280  Correction.  If no summary dataset was created, but      
ANALCNCR       summary reports were requested, the summary reports were 
Nov 30, 1995   not produced.                                            
Change 13.279  New parameters SMFBEGIN and SMFEND were added to allow   
READDB2        selection while the raw SMF records are read.  These new 
Nov 30, 1995   parameters are now used by ANALDB2R (Change 13.278).     
Change 13.278  Several enhancements to DB2 reporting.                   
ANALDB2R      -Reports can now be produced from MNTHxxxx datasets, if   
Nov 30, 1995   you have used the MNTHxxxx members to trend monthly.     
              -When reading SMF, the BEGTIME and ENDTIME values are now 
               passed to READDB2 (as SMFBEGIN/SMFEND) so that selection 
               applies to the raw data as it is read, which will reduce 
               DASD space and run time, especially with big traces.     
Change 13.277  This utility (used only in JCLTEST6, to select ten SMF   
VMXGGETM       records of each type) has new INCODE= operand added to   
Nov 30, 1995   enhance selection criteria, for those of you who have    
               found this utility useful!  You could now code           
                 INCODE=IF (ID=30 AND 4 LE SUBTYPE LE 5) OR ID=72; ,    
               to select only those records and subtypes.               
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.276  The revised VMXGSUM logic has been moved from XMXGSUM to 
VMXGSUM        VMXGSUM, and member XMXGSUM has been deleted.  (Just in  
XMXGSUM        case, the old VMXGSUM was copied into ZMXGSUM for backup,
ZMXGSUM        but that member too will go away in time).  The new logic
Nov 30, 1995   in VMXGSUM will significantly reduce the DASD space, CPU 
               time and run time, as it keeps only the variables that   
               are actually needed by the summarization, and (unlike the
               old VMXGSUM), it does not create dummy variables in      
               the output dataset.  It also supports variable lists with
               hyphenated syntax.  Many sites with large data volumes   
               have been using the XMXGSUM logic, so I believe it is now
               safe to make the MXG default to be the new logic.        
Change 13.275  New parameters INTERVAL and MYTIME are defined for report
ANALRMFR       summarization, but they are only implemented in MXGCHAN  
Nov 30, 1995   report at this time.                                     
Change 13.274  CICS shutdown reports CICCONSR or CICCONMR can cause many
ANALCISH       blank pages with only the heading and no content; several
Nov 30, 1995   line changes were required, too complicated to show here.
               Also, END; statement was missing after IF INOBS EQ CXMC. 
   Thanks to Richard S. Ralston, Whirlpool. USA.                        
Change 13.273  Support for DB2 4.1 type 102 trace records has tested the
VMAC102        new IFCIDs 221, 222, and 231 for  parallel group tracing,
Nov 30, 1995   and adds new fields in existing trace datasets for IFCIDs
               8, 10, 20, 21, 22, and 28.  There are still other fields 
               added to other IFCIDs by 4.1 that are not yet decoded by 
               MXG due to absence of test data records; those will be   
               added when user demand and test data arrive together.    
   Thanks to Ted Blank, IBM, USA.                                       
Change 13.272  Corrections to several variables in HP PCS records:      
VMACHPAI      -VMACHPUX, comment now has HPUX as correct INFILE name.   
VMACHPSU      -VMACHPUX, PIN variable removed from LENGTH statement so  
VMACHPUX       that it will be numeric rather than character (as it was 
Nov 29, 1995   in HPAI and HPSU members, like all other PINs).          
              -INTEREST now input as INTEREST $CHAR12. (instead of with 
               no INFORMAT) as the file may contain leading blanks.     
               First test for INTEREST that sets IMPWTHI was deleted.   
               Last four tests for INTEREST must test for lower case    
               letters c,d,m,i rather than upper case values.           
   Thanks to Thierry Van Moer, Procter & Gamble Europe, Belgium.        
Change 13.271  Variables SYSNAME and SYSPLEX were not kept in BUILDPDB  
IMACPDB        datasets PDB.JOBS, PDB.STEPS, and PDB.PRINT, but they are
Nov 29, 1995   now added to _PDB30_1, _PDB30_4, and _PDB30_5 macros in  
               member IMACPDB so they will be kept in the PDB datasets. 
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.                
   Thanks to Harmuth Beckmann, Karstadt, AG, Germany                    
Change 13.270  IBM writes truncated EREP records, but MXG did not catch 
VMACEREP       the truncation, causing INPUT STATEMENT EXCEEDED RECORD  
Nov 29, 1995   for a hardware detected VLF software record.  Protection 
               was added for dataset EREPSDW.  Additionally, the ERRORID
               field at the end of the SDW record was not input from the
               correct location, and variable CLASRC is now kept in the 
               EREPSDW, EREPEOD, EREPMDR, and EREPOBL datasets.         
   Thanks to Solomon Baker, The Prudential Service Company, USA.        
Change 13.269  Variables QBSTHPL and QBSTVPL were removed from DIF()'ing
DIFFDB2        because they are not accumulated values, but rather are  
Nov 28, 1995   the number of hiperspace and virtual pool buffers.       
   Thanks to Alan Fendler, Pershing Info Management Services, USA.      
Change 13.268  Variable USER was added to the default summarization of  
ASUMCICS       CICSTRAN dataset into PDB.CICS, because OPERATOR is now  
Nov 28, 1995   usually blank, while USER contains the wanted user-id.   
Dec 18, 1995   The summarization default is now by                      
               APPLID OPERATOR USER TERMINAL TRANSACT (for each hour).  
   Thanks to Clark Jennings, Reynolds Metal, USA.                       
Change 13.267  Another IDMS 12.01 error, INVALID DATA FOR PMHSDATE  for 
VMACIDMS       the PMHRTYPE=6 (Journal Wait) subtype.  The statement    
Nov 20, 1995   SKIP=SKIP-108; that is two lines prior to the statement  
               %%INCLUDE SOURCLIB(EXIDMJRL);  should been               
               SKIP=SKIP-104;.  (My test data stream did not have any   
               journal wait data, but this was an MXG coding error.)    
   Thanks to Dan Gilbert, Bergen Brunswig Corporation, USA.             
Change 13.266  Variable STARTIME was missing TSOMCMND if the TSO/MON    
VMACTSOM       SMF record was written in segments (because there were   
Nov 20, 1995   more logged on users that would fit in one SMF record).  
               STARTIME was added by Change 13.089 for consistency, but 
               the pre-existing, same value variable STRTTIME was never 
               wrong!  Immediately following STRTTIME=TSOMSTAR; insert  
   Thanks to Neil Ervin, Huntington Services Co, USA.                   
Change 13.265  Support for IMS 5.1 records (INCOMPATIBLE) was reported  
ASMIMSLG       with these changes.                                      
VMACIMS       -ASMIMSLG - Replace these three non-contiguous lines      
Nov 17, 1995       TM MSGCFLG1,MSGC1RAC          TM MSGCFLG1,MSG3RACF   
                      ---17 lines ----                                  
                   USING MSGRACF,R4              USING MSGSEC,R4        
                      --- 8 lines ----                                  
                   MVC ORGENT(8),MSGRACGP        MVC ORGENT(8),MSGSAFNM 
               (with this change to ASMIMSLG, it can ONLY process 5.1   
               records, so you will need to maintain two separate load  
               libraries and separate job streams).                     
               18 new 4-byte fields were inserted in the 07 log record  
               between MSGGCMD and PDATE.                               
               This is a documentation only change at this time, as I am
               still awaiting data and documentation so that I can      
               validate this report and then change the MXG coding.     
               Now, see Change 14.030.                                  
   Thanks to Mr. Hellmann, Sudwestdeutsch Landesbank, GERMANY.          
Change 13.264  TANDEM disk type format MGTANDS values are decimal, not  
VMACTAND       hex, so the "X"'s were removed, and the 35:3GB value has 
Nov 16, 1995   replaced the 35:MGB spelling.                            
   Thanks to Steve Smith, BGS Systems, USA.                             
Change 13.263  IBM lied, and JESNR may show only four digits in TYPE26J2
VMAC26J2       dataset (and if BUILDPDB finds only a purge record for a 
Nov 13, 1995   job, its PDB.JOBS observation will have JESNR=1179 where 
Feb 26, 1996   it should be JESNR=11179.  IBM documentation of SMF26JNM 
               (the old, 4-position EBCDIC JESNR) says it will be zero  
               if the job number is 10,000 or greater, causing MXG to   
               get JESNR from SMF26JID, and this was true until now, but
               it appears MVS/ESA 5.2 with JES x.y are now putting the  
               truncated JESNR back into SMF26JNM!  While I chase after 
               the IBM INCOMPATIBLE change to type 26 record, I can fix 
               the MXG logic to work no matter what IBM does.  Change:  
                 ELSE DO;                                               
                   IF JESNR GT 0 THEN                                   
                   INPUT @57+OFFSMF TYPETASK  $EBCDIC3.                 
                   INPUT @57+OFFSMF TYPETASK  $EBCDIC3.                 
                         @60+OFFSMF JESNR       &NUM.5.                 
               to read:                                                 
                 ELSE DO;                                               
                   INPUT @57+OFFSMF TYPETASK  $EBCDIC3.                 
                         @60+OFFSMF JESNR       &NUM.5.                 
               Feb 26, 1996 update: IBM APAR OW18822 acknowledges the   
               error and should correct the non-zero value back to zero,
               but the MXG correction in MXG 13.13 fixes it anyhow!     
   Thanks to Tim Terbieten, Newell Company, USA.                        
Change 13.262  Variable DEVPLX, the device address of the duplex volume,
VMACACHE       is an offset from the first device instead of the real   
Nov  8, 1995   device number; now, DEVPLX will contain the true device  
Dec  2, 1995   number by inserting these lines:                         
                IF NDVCNT=1 THEN BASDEVN=DEVN;                          
                IF DEVS1='....1...'B THEN DEVPLX=BASDEVN+MOD(DEVS2,64); 
               before the %%INCLUDE SOURCLIB(EXCAC90); statement.       
               I note that the Cache record does not contain a segment  
               for the duplex device; DEVPLX=05x, BASDEVN=2C0x, so the  
               duplex device address is now DEVPLX=2C5x, but there will 
               be no observation in CACHE90 with DEVN=2C5x.             
               The above correction worked until MVS/ESA 5.2, which has 
               caused an unexpected (at least by the CRR-folks) change  
               in the CRR record.  The BASE device number used to be the
               first device segment returned by the 3990 controller, and
               that address is copied into the statistics segment.  But 
               in 5.2, the order in which devices are varied online at  
               IPL is different, and the 3990 returns devices in order  
               they came online, so the base device is no longer going  
               to be in the first segment.  IBM CRR Level II has this;  
               when they decide what they are going to do, so will I!   
   Thanks to Kurt Koch, West Publishing Corporation, USA.               
Change 13.261  SAP Journal segments in type 110 records caused error    
Nov  8, 1995   not read in all segments in the SMF record, because MXG  
Jan 13, 1996   did not anticipate that SAP would create journal segments
               with only a header,                                      
                  (found for the YISA APPC host-to-host connection      
                  application, with JCSPTRAN='YISA', JCRLL=30, so there 
                  is no data - these segments may be output into a new  
                  dataset if there is usefulness, and this fix still    
                  leaves them available in the EXCICJRN exit),          
               or with JCRUTRID not containing 'SA',                    
                  (found for a most strange segment between other 'SA's,
                  containing a Global Performance Interval segment with 
                  MCTSSDID=2 which belongs in a subtype =1 record and   
                  is normally output into CICSYSTM from that subtype!;  
               UPDATED Jan 13.  SAP Technical Support has not responded,
               but the second problem is circumvented in Change 13.323. 
               Header only segments are skipped over with these changes:
              -Delete the line  ... INPUT +6 SAPTEST $EBCDIC2 @LOC @;   
              -Change IF SUBTYPE=0 OR SAPTEST='SA' THEN DO UNTIL ...    
                   to IF SUBTYPE=0 THEN DO UNTIL ...                    
              -Change IF JCRUTRID='SA' THEN DO;                         
                   to IF JCRUTRID='SA' AND JCRLL GE 250 THEN DO;        
               Unrelated to the above errors, variable APPLID was added 
               to the KEEP= list for the CICSSAP dataset so CICSSAP can 
               be analyzed for each CICS region.                        
   Thanks to Jens Schlatter, EDP Consulting Schlatter, GERMANY.         
   Thanks to Norbert Korsche, OMV, AUSTRIA.                             
   Thanks to Paolo Carloni, Agip petroli SPA, ITALY.                    
   Thanks to ????, Deutsche Post AG, GERMANY.                           
Change 13.260  RMDS 1.4 records may cause INVALID ARGUMENT TO MDY AT ...
VMACRMDS       because only some MDY() functions were protected for the 
Nov  8, 1995   'strange' values MO=99 and DD=99.                        
Feb 26, 1996  -Now, all uses of MDY() are protected with logic of the   
                 IF YY GT 0 AND (YY NE 99 AND MO NE 99 AND DD NE 99)    
                   THEN xxxxDATE=MDY(MO,DD,YY);                         
              -In addition, INVALID DATA FOR MM can occur, because only 
               some INPUTs of HH MM and SS were protected with the  ??  
               modifier.  Now, all fields input with &NUM are preceded  
               by the double-question-mark modifier.                    
              -Finally, all HMS() functions are now protected with      
                 IF 0 LE HH LE 24 and 0 LE MM LE 60 and 0 LE SS LE 60   
               logic to prevent invalid arguments to HMS() function.    
              -The error does not occur with current RMDS 2.1 or later. 
              Note added Feb 26, 1996:  The support for RMDS 1.3/1.4    
              also deleted the two tests:                               
               IF RMDSACT='D' and RMDSORG NE 'A' THEN RMDSACT='T';      
               IF RMDSACT='U' AND RMDSORG EQ 'V' THEN RMDSACT='S';      
              because the activity codes of 'T' and 'S' do not exist    
              in RMDS version 2.1.                                      
   Thanks to Ambat Ravi Nair, Trident Infotech Pte Ltd, SINGAPORE.      
Change 13.259  MXG 13.06-13.07 only.  ABARS enhancement validation:     
IMACHSM        reading ELSE IF DSRVSR='VRS' THEN ... should have been   
VMACHSM                ELSE IF DSRVSR='VSR' THEN ....                   
Nov 15, 1995   because the four fields WFSRML0U,WFSRML1U,WFSRML2U, and  
               WFSRTOTU at the end of both ABARS segments are now INPUT 
               as $EBCDIC1. instead of &PIB.4.  MXG now decodes the unit
               of space value (blank, K, M, etc.) and converts the space
               used during ABACKUP variables WFSRML0S,L1S,L2S,TOTS into 
               bytes, and are formatted with MGBYTES to print pretty.   
              -Variable WFSRABCC is now input as $EBCDIC4. vice &PIB.4. 
              -IBM clarified several issues.  Space units of K,M,G,T are
               1024 (as expected, but since IBM used 1000 for hardware  
               "K", and since the ABARs documentation did not say, we   
               had to ask!).  Also, ABACKUP VERIFY does cut a shorter   
               record that does not contain the space information fields
               while ARECOVER creates a longer record, but zeroes out   
               the space information fields.                            
              -New HSM dataset HSMWWVOL is created, but with zero obs   
               until you remove the comment block in member EXHSMWWV.   
               (This dataset will contain one obs for each volser that  
               was used by ABARS for backup, and I perceive little need 
               for that information; the useful ABARS information is in 
               the HSMWWFSR dataset, one obs per ABARS event.)          
   Thanks to Michael E. Friske, Fidelity Savings, USA.                  
Change 13.258  Very obscure, and only for the early users of XMXGSUM.   
XMXGSUM        Change the second occurrence of NUMPOS= from &HYPHEN1 to 
Nov  6, 1995   &HYPHEN2.  Would have caused an OUT OF MEMORY error.     
Change 13.257  Variable AVGQUETM should not have been in the keep list  
VMAC7072       for dataset TYPE72GO, as that field is from the subtype 2
Nov  6, 1995   (RMF Monitor III) record, and is output only in TYPE72MN.
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 13.256  Variable QBGAGN should be kept only in DB2ACCTG, and not 
VMACDB2        in DB2ACCT, and it should not have been summed during the
Nov  6, 1995   creation of DB2ACCTG.  It is the pool ID, not a counter! 
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.255  Tandem variables CnMISSES was repeated in INPUT; the two 
FORMATS        instances are now named CnRMISS and CnWMISS for Read or  
VMACTAND       Write misses.  C1BLKS is no longer divided by DURATM, as 
Nov  6, 1995   it is blocks allocated, not blocks moved in interval.    
               Format MGTANDS was updated with device 1Fx and will now  
               print un-coded values in hex rather than decimal.        
   Thanks to Steve Smith, BGS Systems, USA.                             
Change 13.254  Support for TOPSECRET Release 4.4 and 5.0, INCOMPATIBLE, 
VMAC80A        new release sets a value of 44X or 50X for RACFVRSN, but 
Oct 31, 1995   MXG does not know in advance what value TOPSECRET will   
               use!  Add  OR RACFVRSN=44X OR RACFVRSN=50X   to the test 
               for TOPSECRET in both members.  (44X exists in 4.4 data; 
               5.0 is not out yet, so I am gambling in advance that they
               will use 50X for that version when it's released!).      
   Thanks to Mark Paulson, Maurices Incorporated, USA.                  
   Thanks to Sarah Gartner, Hudson's Bay Company, CANADA.               
==========MXG Version 13.07, dated Oct 30, 1995, thru 13.253==========  
Change 13.253  SAP 5.0.E creates invalid journal segments, which caused 
VMAC110        INVALID DATA FOR HH and a hex dump of the record, but MXG
Oct 27, 1995   successfully skipped over the invalid segments and output
               the valid ones.  SAP had no one in tech support on Friday
               to discuss their error before MXG 13.07 was built, but I 
               will pursue this with them later and update this note.   
               To eliminate the hex dump and message, insert  ?? after  
               HH and MM following the INPUT of JCSPTASK.               
               Update: See Change 13.323.                               
   Thanks to Paolo Carloni, Agip petroli SPA, ITALY.                    
Change 13.252  $AVERS SMF record variables SAVPAGES,SAVBLKS,SAVTBLKS are
VMACSAVR       now created; these fields existed at the end of the SMF  
Oct 27, 1995   record, but were not populated until this user went to   
               use them!  The vendor, Software Engineering of America,  
               will fix the error in SAVRS V4.0A.33, and interim fix    
               number S40AF166 (a ZAP) is available from them now that  
               will populate these fields.                              
   Thanks to Bill Hamilton, Scottish Widows, SCOTLAND.                  
Change 13.251  Support for STK's SILO SMF HSC View Subtype 8 record now 
EXSTCHSV       creates dataset STCHSV for every successful VIEW command 
IMACSTC        initiated by HSC.                                        
Oct 26, 1995                                                            
   Thanks to Cheryl Howard, Wachovia Corporation, USA.                  
   Thanks to Rodney L. Reisch, Wachovia Corporation, USA.               
Change 13.250  DURATM was added to TSO/MON datasets by Change 13.089,   
VMACTSOM       but it was often missing!  After the second statement    
Oct 26, 1995    INTRVTM=TSOMDUR;  insert  DURATM=INTRVTM;               
   Thanks to Dan Squillace, SAS Institute Cary, USA.                    
Change 13.249  Support for MODEL204 Release 3.0 INCOMPATIBLY added five 
IMACM204       fields to the SINCE record.  Since there is no release   
VMACM204       number in their record, you MUST update member IMACM204  
Oct 25, 1995   in your USERID.SOURCLIB to use this new IMACM204, as it  
               now also defines macro _M204VER which tells MXG to read  
               Release 2 or Release 3 records (default is for Rel 3).   
   Thanks to Mark Wessel, Population Census & Surveys Office, ENGLAND.  
Change 13.248  Summarization of IDMSTAS dataset from IDMS Perfmon   into
ASUMIDMS       PDB.ASUMIDS is provided by this user contribution, which 
Oct 25, 1995   mimic's ASUMCICS algorithms to create response time and  
               resources by CV_NUM DC_USER DC_LTERM TASKCODE ADSODLGN.  
   Thanks to Richard S. Ralston, Whirlpool, USA.                        
Change 13.247  CICS/ESA 4.1 or later now contains the GMT offset, so MXG
VMAC110        can finally convert the STRTTIME/ENDTIME in CICSTRAN to  
Oct 25, 1995   your local time of day.  The INPUT of MCTMNTAD is changed
               from &PIB.4. to &IB.4., and this line inserted:          
               to convert from CICS timer units to seconds.  Then, in   
               the CICS/ESA 4.1 section for CICSTRAN and CICSEXCE, the  
               logic   IF MCTMNTAD GT . THEN DO;                        
                         ENDTIME =ENDTIME +MCTMNTAD;      END;          
               was inserted to add the (negative in USA) GMT offset.    
               NOTE: IF YOU HAVE TAILORED member EXCICTRN to convert the
               CICSTRAN timestamps (as was described in Newsletter 27), 
               YOU MUST REMOVE OR REVISE YOUR conversion logic so that  
               it only converts non-4.1 records.  For example, you could
               use this logic for USA East Cost time zone in EXCICTRN:  
                  IF MCTMNTAD=. THEN MCTMNTAD=.;                        
                  IF MCTMNTAD=. THEN DO;                                
                    ENDTIME =ENDTIME -HMS(5,0,0);                       
               to force the 5-hour conversion for non-4.1 regions.  The 
               first statement setting MCTMNTAD missing if it is missing
               if the "compiler faker" statement which eliminates the   
               "uninitialized variable" message, so you could install   
               this logic in EXCICTRN even before you install MXG 13.07!
               Variable MCTMNTAD was added to CICSTRAN by this change.  
   Thanks to Glenn Yee, Health & Welfare State of California, USA.      
Change 13.246  Variable SETUP was added to _PDB26J2 macro so that that  
IMACPDB        variable will be kept in the PDB.JOBS dataset.  It turns 
Oct 25, 1995   out that the existence of a /*SETUP card causes JES2 to  
               put the job in logical hold until the operator releases  
               the job, but TYPRUN=HOLD is not set for these jobs.  Now,
               for observations with SETUP='Y' in PDB.JOBS, you can     
               identify these jobs that are delayed due to /*SETUP card.
   Thanks to Andy Vick, Allied Dunbar Assurance, ENGLAND.               
Change 13.245  In revision 4 of the type 6 SMF record, IBM truncated two
VMAC6          bytes of SMF6TU field, but in revision 5 data, the value 
Oct 25, 1995   in SMF6TUL matches the length of SMF6TU, so the line that
               was added by Change 13.162 is now changed to read:       
                 IF REVISION EQ 04X THEN SMF6TUL=SMF6TUL-2;             
               I have not found IBM documentation of their change yet!  
   Thanks to Michael Moyer, Wyeth-Ayerst Labs, USA.                     
Change 13.244  Support for DB2 4.1.0 (COMPATIBLE) adds new fields to the
ANALDB2P       statistics and accounting records, new subtypes and new  
EXDB2ACG       segments create three new datasets:                      
EXDB2PST        DB2ACCTG - Accounting - Group Buffer Pool usage         
VMACDB2         DB2GBPAT - Global Buffer Pool Attributes                
VMACDB2H        DB2GBPST - Global Buffer Pool Interval Statistics       
Oct 22, 1995                                                            
               The major change is the support for DB2 Parallelism, with
               multiple observations now created in DB2ACCT whenever    
               DB2 event (like a QUERY) is actually parallelized.  The  
               degree of parallelism for a CPU bound task is constrained
               by the number of CPU engines, while it is the structure  
               of your DB2 data (number of partitions, etc.)  which     
               limits the degree of parallelism for an I/O bound task.  
               New member ASUMDB2P can be used to summarize these child 
               and parent pairs (and the sequential, or non-parallelized
               DB2 events) so that there is only one observation for    
               each event, with variables PAIRNR (a created sequence    
               number token that was used to create ASUMDB2P from       
               DB2PARTY), NRCHILD (number of children records for this  
               event), and TOTELAPS (sum of elapsed time of all records 
               for this event, because ELAPSTM is the true elapsed wall 
               time of the parallel execution).  Beware, sorting DB2ACCT
               is required to create both the DB2PARTY detail dataset   
               and the output ASUMDB2P dataset, and DB2ACCT can be big! 
               The parent record has a non-zero QXMAXDEG, the maximum   
               number of parallel tasks, but there can be many more than
               QXMAXDEG children records written, because tasks can be  
               parallelized in groups of different degrees.  MXG creates
               formatted variable DB2TSKTY to describe each observation 
               in DB2ACCT:                                              
                  DB2TSKTY   Description                                
                     C         Child                                    
                     P         Parent                                   
                     S         Sequential (i.e., non-parallelized)      
               Complex queries in test data shows an event of three     
               groups, with 9, 10, and 8 children respectively, so 28   
               observations in DB2ACCT were created for that            
               parallelized query event.  Almost all of the resources   
               (CPU, I/O) are recorded in the child record, but the     
               parent record contains important counts as well.         
               Extensive testing of DB2ACCT data was done in creation of
               member ANALDB2P for parallel analysis, but the test data 
               thus far has not used Global Buffer Pools, so those new  
               datasets have not been data-tested.  I have only casually
               validated the DB2STATS with 4.1 data for reasonableness, 
               and VMAC102 has not yet been enhanced (I still await 4.1 
               trace test data).  This note will be revised as testing  
Change 13.243  MXG did not output observations to HURN49 if HU49XSNO is 
VMACHURN       zero (user logs on to Huron server, but did not access   
Oct 20, 1995   another database before logging out).  After the END;    
               after the DO I=1 TO HU49XSNO; insert:                    
   Thanks to Colin Bowen, Old Mutual, SOUTH AFRICA.                     
Change 13.242  Correcting TYPE42DS STARTIME/ENDTIME from GMT to local in
VMAC42DS       exit EXTY42DS using  STARTIME=STARTIME-HMS(5,0,0) (to    
EXTY42DS       subtract 5 hours, for EST or CDT time zone) will not work
Oct 19, 1995   because the EXTY42DS member will be invoked once for each
               dataset in a concatenation, causing STARTIME to be fine  
               in the 1st dataset, but then off by 5 hours in the 2nd,  
               off by 10 hours in the 3rd, etc.  Instead, you must use  
                 STARTIME=SMF42PTS-HMS(5,0,0); and                      
                 ENDTIME= SMF42PTE-HMS(5,0,0);                          
               to force the correct GMT value.  When you have installed 
               MXG 13.07 or later, you can revise your exit logic to use
                 IF S42JDGMO=. THEN DO;                                 
                   ENDTIME= SMF42PTE-HMS(5,0,0);                        
               because MXG 13.07 adds support for APAR OW16125 that adds
               the actual GMT offset in S42JDGMO; with this revised code
               your forcing code will only be executed prior to install 
               of that APAR. This is a documentation-only change; no    
               MXG code was actually changed.                           
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 13.241  New BUILDPDB exit IMACSPCK allows you to override the MXG
IMACSPCK       decision "TO SPIN OR NOT TO SPIN" for specific cases.    
BUILDPDB       For example, VM Print Jobs, run on MVS, will create only 
BUILDPD3       a type 6 print record.  If you have tailored IMACSPIN so 
BUILD005       that SPINCNT is greater than zero (as recommended), those
Oct 19, 1995   VM jobs will spin for SPINCNT days before finally being  
               output into the PDB.  If you know that all VM Print jobs 
               have job names starting with RSCS, you can use this new  
               IMACSPCK member, by coding therein:                      
                  IF JOB=:'RSCS' THEN OKFLAG=1;                         
               which will sent all RSCS jobs directly to the PDB instead
               of waiting around in the SPIN library for SPINCNT days!  
               The default exit contains only comments.                 
   Thanks to Norbert Korsche, OMV, AUSTRIA.                             
Change 13.240  Dataset ASUMDB2B was not created in the weekly PDB from  
WEEKBLD        the daily PDB's, but now it is.                          
Oct 17, 1995                                                            
   Thanks to Merlin Beeching, Generale de Banque SA, BELGIUM.           
Change 13.239  S370FRBn informat fails under ASCII SAS if the floating  
SASAFIX1       point value is unnormalized.  See MXG Technical Note in  
Oct 15, 1995   Newsletter TWENTY-NINE for discussion.  This member is an
Nov  8, 1995   interim fix for MXG users executing under ASCII platforms
               and currently contains two SAS programs that will create 
               the UWIS370F.DLL file for OS/2 SAS 6.10 or 6.11.         
              -Nov 8.  The OCT 15 fix returned a large negative value if
               the field was all hex zero, but that is now corrected,   
               and SASAFIX1 now provides fixes for SAS for OS/2 for both
               6.10 and 6.11 and for SAS for Windows for 6.10.          
   Thanks to Ian Gibson, Queensland Transport, AUSTRALIA.               
Change 13.238  MXG 13.06 only.  Variable DELTATM is always missing.  The
DIFFHMF        semicolon is missing from each of the 6 LABEL statements,
Oct 14, 1995   also causing UNINITIALIZED warning message.              
Change 13.237  Variable ZDATE is now created in one place, IMACZDAT, so 
IMACZDAT       that you can easily force ZDATE to a specific date for a 
DOC            rerun of a build job.  Previously, you had to change the 
Oct 14, 1995   value of ZDATE in a separate place for each infile that  
               you had to rerun.  All of the associated statements to   
               describe ZDATE (LENGTH, LABEL, FORMAT) were moved into   
               the IMACZDAT member, and each statement ZDATE=TODAY();   
               or IF ZDATE=. THEN DO; do group were replaced with the   
               %INCLUDE or %%INCLUDE syntax for member IMACZDAT.  There 
               were 113 members changed in response to this suggestion, 
               which will surly make someone very happy some day!       
   Thanks to Bruce Hewson, Alcoa, AUSTRALIA.                            
Change 13.236  The execution delay percentage variables in TYPE72GO used
VMAC7072       the workload manager sample count (VALDSAMP=R723MTVN;) as
Oct 14, 1995   denominator, but that statement is now replaced with:    
               because the workload manager counts both address spaces  
               and dispatchable units in the numerator (eg., an ASID may
               have an SRB executing and a TCB waiting).  This discovery
               by Don was non-trivial and has been IBM-confirmed!       
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 13.235  Utility UDOCHECK (rarely needed, used to scan SAS source 
UDOCHECK       statements to locate DO ... END pairs when you have one  
Oct 13, 1995   of those painful "MISSING END STATEMENT" syntax errors,  
               often caused in my experience because a comment swallowed
               the END; statement) did not support DO WHILE / DO UNTILs.
   Thanks to Wayne Bell, National General Insurance Company, USA.       
Change 13.234  Variable NLDMSUBT should have been added to TYPE39_8 but 
VMAC39         it wasn't until now.                                     
Oct 13, 1995                                                            
   Thanks to Wayne Bell, National General Insurance Company, USA.       
Change 13.233  MXG 13.06.  Support for Landmark for DB2 V 2 has now been
VMACTMDB       tested with data which found undocumented alignment bytes
Oct 27, 1995   and changed header, causing STOPOVER.  In addition, many 
               variables were not formatted that are now.               
   Thanks to Ken Updegraff, Hershey Chocolate, USA.                     
Change 13.232  The values of LPMINCnn, LPTARCnn, and LPMAXCnn variables 
VMACAPAF       are 10000 times too small.  Change their informat from   
Oct 17, 1995   &PIB.4.6 to &PIB.4.2 to correct.  Additionally, variables
               LPMINPnn, LPTARPnn, and LPMAXPnn are now created with the
               Percentage allocation for each logical processor.        
   Thanks to John Suters, Telecom Australia, AUSTRALIA.                 
Change 13.231  The calculation of ARSPNET was sometimes incorrect.  The 
Oct 12, 1995                  THEN ARSPNET=CRSPNET/TRANSNO;             
               should be ...  THEN ARSPNET=CRSPNET/NETRSPNO;            
   Thanks to Alan Keebel, British Steel, ENGLAND.                       
Change 13.230  MXG 13.06 only. Change 13.181 caused INPUT STATEMENT     
VMAC64         EXCEEDED RECORD error.  The five lines at the end:       
Oct 11, 1995       INPUT BEGCCHHX PIB4.                                 
                         ENDCCHHX PIB4.                                 
               must be replaced by this single corrected line:          
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.229  Change 12.195 was never made to WEEKBLDT, causing SORT   
WEEKBLDT       ORDER error.  The correct _BYLIST for TAPEMNTS is:       
   Thanks to Neil Ervin, Huntington Services Company, USA.              
Change 13.228  MVS/ESA V5 in Goal Mode only.  Pre-Goal Mode, MXG only   
EXTY72GO       output TYPE72 when the PERFGRP had activity (to save DASD
FORMATS        space, because IBM created segments for idle perfgroups),
VMAC7072       and so in Goal Mode, MXG only output TYPE72GO when the   
Oct 10, 1995   SRVCLASS consumed resources (by testing, in EXTY72GO, for
               non-zero CPUUNIT,SRBUNIT,IOUNIT,MSOUNIT or TRANS).       
               However, that test should only have been applied against 
               service classes for address spaces (as only ASIDs contain
               resources).  The result was that observations for trans  
               service classes that had no completions during the       
               interval were not output.                                
               The test should have been qualified by R723TYPE, as it   
               describes which type of record we have.  However, then I 
               discovered that R723TYPE was missing in some MVS/ESA 5.2 
               data, because the resource flag, R723CRCA, was not set,  
               and that had previously been a legitimate identifier that
               an observation was an address space.  As a result of this
               discovery, I had to redefine the way R723TYPE is created:
               IF RPRTCLAS EQ 'Y' THEN DO;                              
                IF R723CRCA EQ 'Y' THEN R723TYPE='4';/*REPORT, ASID */  
                ELSE                    R723TYPE='5';/*REPORT, TRAN */  
               ELSE IF R723CWMN GT 0 THEN R723TYPE='3';/*TRANSACTION*/  
               ELSE DO;                                                 
                IF R723CRTX GT 0 THEN R723TYPE='1';/*ASID SC WITH RESP*/
                ELSE                  R723TYPE='2';/*ASID SC NO RESP*/  
              -Now, with the correct definition and setting R723TYPE    
               values, the logic in EXTY72GO could be changed so that   
               only observations that could contain resources are tested
               to see if they should be output, using:                  
                 IF R723TYPE IN(1,2,4) THEN DO;                         
                     GT 0 THEN OUTPUT _LTY72GO ;                        
                 ELSE OUTPUT _LTY72GO;                                  
               With these changes, R723TYPE will be valid for all obs,  
               and only those resource-containing observations written  
               for Address Space Service Classes or Report Classes will 
               be output by the exit.                                   
              -Also discovered, the format names in member FORMATS for  
               $MGRMFTY and $MGRMFRT were reversed.  $MGRMFTY describes 
               the type of record, while $MGRMFRT describes responses.  
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 13.227  The VAX Accounting Support was designed for execution on 
VAXPDS         ASCII platforms, which caused errors when executed under 
Oct 10, 1995   MVS.  The RECFM=N for ASCII must be RECFM=VB for MVS, so 
               I now have added a macro %%VMXGLRF in place of RECFM=N on
               each INFILE statement, and defined VMXGLRF to set the    
               correct RECFM depending on where MXG is being executed.  
               Also, the broken vertical bar character ('6A'x onMVS)    
               used for concatenation was replaced with the exclamation 
               points ('5A'x on MVS), because the '6A'x character is not
               correctly translated between ASCII and MVS systems.      
   Thanks to Frank d'Hoine, Nationale Bank van Belgie, BELGIUM          
Change 13.226  Support for APAR OW16125 which adds GMT offset to type 42
VMAC42         subtype 6 (TYPE42DS dataset) observations.  If the APAR  
Oct 10, 1995   has been installed, new variable S42JDGMO will be non    
               missing, and MXG will have converted STARTIME and ENDTIME
               from GMT to local time of day.  If S42JDGMO is still     
               missing, the APAR is not installed, and STARTIME/ENDTIME 
               will still be on the GMT clock.                          
==========MXG Version 13.06, dated Oct 10, 1995, thru 13.225==========  
Change 13.225  Change 13.065 can cause variables INTBTIME,INTETIME to   
VMAC30         be really far from the truth, because the line inserted: 
Oct  9, 1995   by that change:                                          
                 GMTOFF30=GMTOFF30+SMF30IST-INTBTIME; /*GET LEAP SEC*/  
               must be deleted.  In attempting to correct IBM's error, I
               made the problem worse, by adding that heuristic that    
               worked with my test data, but failed badly with different
               data.  Removal of this line may still cause the problems 
               that were discussed in 13.065, but it is the safest      
               approach for "normal" sites.                             
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 13.224  Support for Landmark TMON for DB2 Version 2 INCOMPATIBLY 
EXTMDxxx       changed their records, so MACRO _TMDVER is now defined in
IMACTMDB       member IMACTMDB to tell MXG to process version 2 records.
VMACTMDB       (The default in IMACTMDB expects Version 1 data records, 
Oct  8, 1995   so you MUST tailor IMACTMDB to process Version 2.        
               The previous support created only TMDBDA,TMDBDB,TMDBDE,  
               and TMDBDR datasets.  For version 2, datasets TMDBDA2,   
               TMDBDB2, and TMDBDE2 will have observations while their  
               un-suffixed counterparts will only have observations with
               version 2, and TMDBDR no longer exists with version 2.   
               These new version 2 data sets are now created and will   
               have observations if their subtypes are found:           
                TMDBDBR, TMDBDW , TMDBDC.                               
               In addition, these new datasets are defined and will have
               observations, but only the record header is decoded for  
               these subtypes at this time:                             
                TMDBBB , TMDBBC , TMDBBD , TMDBBE , TMDBBF , TMDBBG     
                TMDBBH , TMDBBI , TMDBBJ , TMDBBK , TMDBBL , TMDBBM     
                TMDBBT , TMDBDD                                         
               This combined support for both versions has not been     
               tested with data records, but the original code and the  
               Version 2 code contributed by Peter were separately      
               tested before I restructured and merged the code into    
               the single VMACTMDB member, and no error have surfaced.  
   Thanks to Peter Proppe, Bremer Lagerhaus Gesellschaft(BLG), GERMANY. 
   Thanks to Ken Updegraff, Jr., Hershey Chocolate, USA.                
Change 13.223  Support for IDMS 12.01 Maintenance Level 9506 and later. 
VMACIDMS       CA INCOMPATIBLY changed their PERFMON SMF record.  MXG   
Oct  8, 1995   should have detected their change and deleted the changed
Nov 14, 1995   record and print a NOTE on the log, but their change     
               exposed an MXG logic error in detecting IDMS changes, and
               (In my defense, even CA IDMS Tech Support did not know   
               THAT there was a change, nor WHAT fields were changed    
               until I read this text to them!)  Originally I thought   
               the change was introduced in IDMS 12.01, but it is their 
               maintenance level 9506 that contains the new data fields.
              -Delete the final  IF SKIP GT 0 THEN INPUT +SKIP (the one 
               after the END; /* END SUBTYPE 18 */ statement).  This    
               will eliminate the STOPOVER condition with 12.01 data,   
               However, datasets IDMSARA, IDMSBUF, IDMSDBK and IDMSJRL  
               will still be wrong because field lengths were changed.  
              -To process ONLY 12.01 data, you could make these changes:
                 After PMHRTYPE=1, change INPUTs of                     
                   ARANAME  $EBCDIC16. to ARANAME $EBCDIC27.            
                   ARAFILE  $EBCDIC16. to ARAFILE $EBCDIC27.            
                   ARABUFR  $EBCDIC16. to ARABUFR $EBCDIC18.            
                   INPUT ARAFPERA    &PIB.2. /* #FILES FOR AREA*/       
                 and change  SKIP=SKIP-184  to SKIP=SKIP-208;           
                 After PMHRTYPE=2, change INPUTs of                     
                   BUFNAME  $EBCDIC16. to BUFNAME $EBCDIC18.            
                 and change  SKIP=SKIP-120  to SKIP=SKIP-122;           
                 After PMHRTYPE=6, change INPUTs of                     
                   JRLNAME  $EBCDIC16. to JRLNAME $EBCDIC27.            
                 and change  SKIP=SKIP-120  to SKIP=SKIP-131;           
                 After PMHRTYPE=18, change INPUTs of                    
                   DBKAREA  $EBCDIC16. to DBKAREA $EBCDIC27.            
                   DBKFILE  $EBCDIC16. to DBKAREA $EBCDIC27.            
                 and change  SKIP=SKIP-120  to SKIP=SKIP-142;           
              -The actual change processes 12.01 and earlier data.      
   Thanks to Don Snively, E-Systems, USA.                               
Change 13.222  Support for COM-PLETE Version 4.6 has no change in their 
VMACCOMP       record format, but two errors in MXG were uncovered: if  
Oct  7, 1995   you use a single SMF TYPE for your COM-PLETE record, MXG 
               failed to output the COMPULOF and COMPUCKP datasets.  The
               line with _IDCOMOF  should test ULOGRTYP=3 (was 1), the  
               line with _IDCOMCK  should test ULOGRTYP=2 (was also 1). 
               These two changes are required for either 4.5 or 4.6, but
               only if you use a single SMF record type in the _IDCOMP  
               macro definition in IMACCOMP.                            
   Thanks to Wayne Bell, National General Insurance, USA.               
Change 13.221  Support for Tandem MEASURE processes their Process, CPU, 
ADOCTAND       and Disk data files.  See member ADOCTAND for discussion 
EXTANCPU       of how to create, process, and use the three datasets:   
EXTANDIS         TANDCPU  - Interval CPU activity statistics            
EXTANPRO         TANDDISK - Interval DISK activity statistics           
IMACTAND         TANDPROC - Interval PROCESS activity statistics        
TYPETAND       The Tandem data files contain ASCII character data with  
VMACTAND       standard mainframe binary values; this support has been  
Oct  6, 1995   executed both under MVS and under OS/2 (and I discovered 
Dec  2, 1995   that the FB data records must have RECFM=F on the INFILE 
               statement under ASCII versions of SAS, but must have     
               RECFM=FB under EBCDIC versions, necessitating creation of
               the VMXGLRF macro to provide transparent support).       
               NOTE: MXG will process the "native" ASCII TANDEM data on 
               an ASCII platform (UNIX, OS/2, WINDOWS) as is.  However, 
               if you want to process the TANDEM data on with an EBCDIC 
               platform (MVS, CMS, VSE), you must NOT translate the     
               TANDEM data from ASCII to EBCDIC - send the TANDEM data  
               to MVS as a BINARY file with no conversion and NOCRLF.   
               If your character variables are filled with @@@@@, you   
               are reading data that was converted from ASCII to EBCDIC,
               and it is not just characters that are corrupted!        
   Thanks to Barry Pieper, Norwest, USA.                                
Change 13.220  Length of MXGCHAN variable CHTYPE increased to $4, and   
ANALRMFR       ELSE clauses removed, and a RETAIN statement deleted in  
Oct  3, 1995   report enhancements.                                     
Change 13.219  ISOGON Soft Audit Version 4.1 compatibly changed record  
VMACSFTA       format from FB to VB format (for better maintenance in   
Oct  3, 1995   future versions), and added several new variables to     
               both the Program and the Module datasets, including the  
               Accounting Fields from the JOB card in the Program data. 
Change 13.218  Support for the ABARS ABACKUP/ARECOVER FSR segment in the
EXHSMWWF       HSM user SMF record creates new dataset HSMWWFSR with new
IMACHSM        statistics (counts, timestamps/durations, space used).   
VMACHSM        The new segment is now put in the DFSMShsm smfid record  
Oct  2, 1995   (which previously contained only the DSR and VSR         
               segments), but DFSMS 1.3 or APAR OW11391 will relocate   
               the new segment to the smfid+1 record (which contains    
               FSRs).  MXG is coded to create it from either of the two 
               HSM records.  The HSMWWFSR dataset is an event record,   
               written at the end of ABACKUP or ARECOVER, and thus there
               should be no accumulated fields across SMF records, so   
               there is no reference to  HSMWWFSR in member DIFFHSM.    
   Thanks to Michael E. Friske, Fidelity Savings, USA.                  
Change 13.217  APAR OW14717 for SMF type 42 subtype 2 INCOMPATIBLY      
VMAC42         changes the value of SMF42CSS,SMF42SSA,SMF42SAP,SMF42SSU,
Oct  2, 1995   SMF42NSZ, and SMF42SPR (cache controller and non-volatile
               storage sizes), but OW14717 should not be installed, as  
               IBM is replacing it with a better solution.  A new APAR  
               number OW16039 will be issued to fix the same problem but
               it sets a flag bit that MXG can use to determine whether 
               or not the APAR is installed.  These APARs affect only   
               the 3990-6 in Enhanced Mode, and they change the value in
               the record to contain kilo-bytes instead of bytes, so    
               the MXG change conditionally multiplies the six fields by
               1024 if the new flag bit is on.  Thus with this change   
               installed in MXG, MXG will be correct with or without the
               APAR being installed.                                    
Change 13.216  The value of MAXTIME printed in the Title of reports is  
ANALPRTR       wrong; the statement IF MAXTIME LT LATEST THEN DO; should
Sep 29, 1995   be IF MAXTIME GT LATEST THEN DO:                         
   Thanks to Jim Ray, Branch Banking and Trust Company, USA.            
Change 13.215  CA's IDMS Version 12.01 records cause INPUT STATEMENT    
VMACIDMS       EXCEEDED RECORD, but that failure should have been caught
Sep 28, 1995   by MXG; the circumvention is to delete the line          
                 IF SKIP GT 0 THEN INPUT +SKIP @;                       
               that is located at the end of member VMACIDMS, after the 
                  END; /* END SUBTYPE 18 */ statement and before the    
                END;  /* END DO _I_ TO SMFHNREC */ statement.           
               This correction will allow MXG to tolerate 12.01 records.
               An update to this change will be made when the DSECTS for
               the new version have been received and the MXG code      
               enhanced to pick up the new variables.                   
   Thanks to Don Snivley, E-Systems, USA.                               
Change 13.214  The BGS I/O Monitor SMF record produces invalid records  
VMACBGSI       with MVS/ESA 5.2.  MXG does not fail, but prints INVALID 
Sep 28, 1995   TRIPLET messages on the log and deletes the records.  BGS
               alerted me and is investigating their error.             
RMFINTRV       PDB.RMFINTRV are now FORMAT 7.3 (instead of 5.1), because
Sep 28, 1995   average trivial response is now often measured in tens of
               milliseconds, which disappear when printed with the      
               shorter format.                                          
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.212  DB2 stats dataset DB2STAT2 should never have been used in
DIFFDB2        building DB2STATS, as it contains only threshold values  
VMACDB2        instead of interval resources used, so all references to 
Sep 27, 1995   DB2STAT2 were removed in the building of DB2STATS in     
               member DIFFDB2.  Now, DIFFDB2 creates DB2STATS from only 
               DB2STAT0 and DB2STAT1 data sets (as MXG did in 11.11!).  
               Fortunately, the inclusion of DB2STAT2 did not affect the
               validity of DB2STATS dataset for its other variables.    
              -Tom also discovered that only the first buffer pool's    
               threshold's values were being OUTPUT to DB2STAT2 in its  
               creation in member VMACDB2.  This correction was to move 
               the statement DIFFDB22=0 and the %INCLUDE of EXDB2ST2 to 
               be inside the DO group, and to insert statement          
               OFFQDBP=OFFQDBP+LENQDBP; after that %INCLUDE.            
   Thanks to Tom Parker, Hogan Systems, USA.                            
Change 13.211  MXG 13.02-MXG 13.05 only.  IMF processing will cause an  
TYPECIMS       error 80-322 and 201-322 occur if you use member IMACCIMS
Sep 27, 1995   to define MACRO _LIMFTRN CIMSTRAN.CIMSTRAN %, because MXG
               Change 13.089 incorrectly added _LIMFTRN to the DELETE   
               statement.  Change  DELETE _LIMFTRN CHAINED ; to read    
               DELETE CHAINED;                                          
   Thanks to Jim Wertenberger, Blue Cross Blue Shield of Ohio, USA.     
Change 13.210  Labels for variables were clarified in TYPE70:           
Sep 27, 1995     PARTNCPU='TOTAL*NUMBER OF CPUS*IN THE CEC'             
               and in TYPE70PR:                                         
                 LPARCPUS='NUMBER OF*CPUS IN*THIS LPAR'                 
   Thanks to Angela Mulcahey, United Jersey Bank, USA.                  
Change 13.209  Comments describing use were enhanced, pointing out that 
IMACFILE       all SMF-processing programs use IMACFILE; if you want to 
Sep 25, 1995   tailor IMACFILE for only one job (eg., BUILDPDB), then   
               you should put the tailored IMACFILE member in a special 
               PDS source library in the //SOURCLIB concatenation for   
               that one job, instead of putting it in the USERID.SOURCLI
               tailoring library.                                       
   Thanks to Mr. Jan Beukeletrs, ANHYP NV, Belgium.                     
Change 13.208  INVALID DATA FOR DTL results if there is no value for the
VMACEREP       last activity time.  Insert  ??  between  DTL and &PD.4. 
Sep 25, 1995   to suppress the invalid data message.  This revision also
Oct  3, 1995   adds Machine Check Handler (MCH) record processing.      
   Thanks to Mr. Geiger, KKH, GERMANY.                                  
Change 13.207  INVALID ARGUMENT error if there are more than 10 LCUIDs  
ANALPATH       associated with one CHPID, so the ARRAY was increased to 
Sep 25, 1995   16, but the source of the error was that ANALPATH applied
Oct  2, 1995   IF &PRMTM; prime-time-only selection only to the TYPE74  
               dataset, while TYPE73 and TYPE78CF (from whence the error
               came) had no shift selection (and the data that cause the
               large number was across several IPLs with different I/O  
               configurations).  Thus IF &PRMTM; was added logically to 
               the subsetting of TYPE73 and TYPE78CF datasets as well as
               increasing the size of the ARRAY.                        
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 13.206  Variables ACTDLYTM, DSPDLYTM, and RESDLYTM are now added 
VMAC30         to the TIME12.2 format, to print consistently with other 
Sep 25, 1995   duration variables.                                      
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.205  Variable HMF5BS29 was always zero, because it should not 
DIFFHMF        have been DIF()ed.  Remove both lines in DIFFDB2 than    
Sep 25, 1995   contain HMF5BS29.                                        
   Thanks to Shaheen Pervaiz, Acxion CDC, Inc, USA.                     
Change 13.204  MXG coding for Landmark TMON/CICS 1.3 was INCOMPATIBLY   
TYPETMON       changed so that TMON data could be processed under ASCII 
Sep 25, 1995   and EBCDIC versions of SAS.  You MUST change your JCL for
               the DDname of MONICICS from RECFM=U BLKSIZE=32760 to be  
               RECFM=VB LRECL=32756 BLKSIZE=32760 with this change.     
               (I regret the inconvenience, but this was the only way to
               support LANDMARK data processing under OS2/UNIX/WINDOWS  
               and is the way TYPETMON should have been coded.  Since VB
               processing is faster than U processing, you may actually 
               see a faster run time!  And even if you don't read this  
               notice, the error message that you now get will tell you 
               that you have either used RECFM=U in place of RECFM=VB,  
               or that you are trying to read compressed data without   
               having installed the EXITMON6 decompression exit!).      
               The code changes were to delete the two lines that INPUT 
               LENMONI1 and LENMONI2, to change all occurrences of      
               LENMONI1 to MONILEN, and to replace the INPUT of ENDDATE 
               as YYMMDD6. with YY &NUM.2. MO &NUM.2. DD &NUM.2. and    
               then use IF YY GT 0 THEN ENDDATE=MDY(MO,DD,YY);          
               Note that for processing TMON 1.3 data under ASCII SAS,  
               you must use                                             
                 FILENAME MONICICS 'C:\...'                             
                   RECFM=S370VB LRECL=32752 BLKSIZE=32756;              
   Thanks to Ian Gibson, Queensland Transport Department, AUSTRALIA.    
Change 13.203  MXG execution under ASCII only.  Landmark 8.1 format MXG 
TYPEMON8       code was not updated for ASCII execution, causing wrong  
Sep 25, 1995   values and notes on the log.  Change all occurrences of  
               "RB8." to "&RB.8.", and replace ENDDATE as described in  
               Change 13.203.  There is no error under MVS execution.   
   Thanks to Ian Gibson, Queensland Transport Department, AUSTRALIA.    
Change 13.202  Variable DURATM was created, equal to INTERVAL, to be    
VMAC23         consistent with SAS/CPE desires.                         
Sep 22, 1995                                                            
   Thanks to Mitch McKenna, Independent Consultant, Australia.          
Change 13.201  Support for Omegamon for MVS/ESA V400 adds these new     
VMACEPMV       twenty-three variables:                                  
Sep 22, 1995    SM180APS SM180ARC SM180ASC SM180CFR SM180CSS SM180EFR   
                SM180HSP SM180IOC SM180OLS SM180OM1 SM180OM2 SM180QUI   
                SM180RGN SM180RGP SM180SCN SM180SCP SM180SCX SM180SPS   
                SM180SVF SM180VIO SM180WKS SM180WLN SM180XME            
   Thanks to Frank Altrichter, Bell Atlantic, USA.                      
Change 13.200  Variables SYSNAME and SYSPLEX were not in PDB.RMFINTRV,  
RMFINTRV       although Change 13.172 supposedly made the addition; the 
Sep 22, 1995   variables must be added to the ID statement that precedes
               OUTPUT OUT=RMF70D1 ....  MXG processing currently assumes
               that each of your SYSTEM ids are unique within a SYSPLEX;
               if that is not true, I may have to change the sort order 
               of all of the RMF datasets from SYSTEM STARTIME to       
               SYSPLEX SYSNAME SYSTEM STARTIME, but I will defer that   
               change until truly required (and I have test data!).     
   Thanks to Norbert Korsche, OMV AG, AUSTRIA.                          
Change 13.199  SAP variable STICODE in CICS journal records should be   
IMACICSA       INPUT as $EBCDIC4. (it was &PIB.4.), as it is a transact 
Sep 22, 1995   code (similar to STCTCODE).                              
   Thanks to Norbert Korsche, OMV AG, AUSTRIA.                          
Change 13.198  Support for 3590 tape drives was incomplete, as variable 
ANALTAPE       TAPE3590 was not added to PDB.JOBS & PDB.STEPS datasets. 
BUILDPDB      -IMACPDB must be updated.  Variable TAPE3590 must be added
BUILDPD3       to macro _PDB30_4 and to macro _MAXSTP, and then the PROC
BUILD005       MEANS OUTPUT statement required the X9 to be changed to  
ChangeSS       X10, and the SUM= statement required the addition of X10 
IMACPDB        after the X9.  Note that if IMACPDB exists in your       
VMAC30         USERID.SOURCLIB, you must retrofit your tailoring in that
Sep 22, 1995   member, starting with this new IMACPDB member.           
              -Although not required, the TAPExxxx variables in LENGTH  
               statements in BUILDPDB, BUILDPD3 and BUILD005 were taken 
               out, as the _MAXSTP macro reference already contains the 
               TAPExxxx variables, and their removal avoids confusion.  
              -It was also noted that none of the EXCPxxxx or IOTMxxxx  
               variables were kept in TYPE30_6, so member VMAC30 was    
               updated to add _IO30IO to the KEEP list for TYPE30_6 to  
               be consistent with other type 30 datasets.               
              -ANALTAPE was updated to report 3590 tapes separately     
              -Finally, my notes on what I have to do for a new tape    
               device (text of Change 9.152 in CHANGESS) were revised   
               so I do it right the first time the next time!           
   Thanks to Norbert Korsche. OMV AG, AUSTRIA.                          
Change 13.197  By changing all occurrences of SORTDSNS to DSNAMES, the  
VMXGVTOF       PROC SORT DATA=DSNAMES .... that precedes the %DO group  
Sep 22, 1995   can be eliminated, saving an extra pass of the data.     
   Thanks to Graeme Yeandle, British Telecom, ENGLAND.                  
Change 13.196  Protection for future version changes was not correct for
VMACHMF        subtype 4, 5, 8, and 9, as the subtractor should be 26,  
Sep 22, 1995   16, 54, and 64 respectively.  (The segment lengths do not
               include their own length.)  However, there was no error  
               with the current version's records.                      
   Thanks to Shaheen Pervaiz, Acxiom CDC, Inc, USA.                     
VMACTLMS       were not in the KEEP list, nor were they in the LABEL    
Sep 22, 1995   statement, but now they are.                             
   Thanks to Alex Torben Nielsen, TeleDanmark EDB, DENMARK.             
Change 13.194  Variables IMSID (IMS System ID) was added to the KEEP    
VMACCIMS       list for datasets CIMSDBDS and CIMSDB2 to ease in reports
Sep 22, 1995   by system.                                               
VMACDB2        were added by Change 13.139 but those names were already 
DIFFDB2        in use, and where they were DIF()ed in DIFFDB2, wrong    
Sep 21, 1995   counts were created.  Fortunately, these variables record
               generally unimportant counts of activity by IFC, and they
               were added only to eliminate a nuisance message from MXG,
               but now they were renamed to QWSYxxxx to avoid conflict. 
               This change could not be made with a global change, so if
               this is really of concern, you will need the new version.
   Thanks to Tom Parker, Hogan Systems, USA.                            
VMAC102        processing of DB2 Trace IFCIDs 21 or 44.  The following  
Sep 21, 1995   changes must be made twice; once after MACRO _C102021 and
               once after MACRO _C102044.                               
               Find the following code:                                 
                 DO I= 1 TO 27 BY 3;                                    
                   IF I LT 27 THEN ....                                 
                   ELSE ....                                            
                     IF I=27 AND J=7 THEN J=20;                         
               Change it to read:                                       
                 DO I= 1 TO 19 BY 3;                                    
                   IF I LT 19 THEN ....                                 
                   ELSE ....                                            
                     IF I=19 AND J=13 THEN J=20;                        
   Thanks to Mitch McKenna, SAS Europe, GERMANY                         
   Thanks to Mealin Beecking, Generale de Banque NV/SA, BELGIUM.        
Change 13.191  Building the $DB2DBID and $DB2OBID formats may still fail
ANALDB2R       when there are zero obs in T102S105 or T102S107, due to  
Sep 21, 1995   insufficiently robust logic.                             
               Find IF FIRST.DBID THEN DO; .  Replicate this DO group.  
               In the first DO group, change the IF FIRST.DBID THEN DO; 
               to IF FIRST.DBID AND LAST.DBID THEN DO; .  In the second 
               DO group, change the IF FIRST.DBID THEN DO; to           
               ELSE IF FIRST.DBID THEN DO; .  In the first DO group,    
               insert   OUTPUT;  after LASTNAME=DBNAME;                 
               Find IF FIRST.OBID THEN DO; .  Replicate this DO group.  
               In the first DO group, change the IF FIRST.OBID THEN DO; 
               to IF FIRST.OBID AND LAST.OBID THEN DO; .  In the second 
               DO group, change the IF FIRST.OBID THEN DO; to           
               ELSE IF FIRST.OBID THEN DO; .  In the first DO group,    
               insert OUTPUT; after LASTOAME=OBNAME;                    
   Thanks to ????, Union Bank of Switzerland, SWITZERLAND.              
   Thanks to Werner Schellenbert, SAS Switzerland, SWITZERLAND.         
Change 13.190  The format of variable UOWTIME in all datasets is changed
ANALDB2C       to DATETIME25.6, because the previous DATETIME21.2 format
TYPEMOND       caused the PROC MEANS in ANALDB2C to collapse what were  
TYPEMON8       separate events into one output observation (because the 
TYPETMON       variable UOWTIME is in the BY list, and PROC MEANS, like 
VMACCIMS       most other procedures, uses the formatted value to build 
VMACDB2        its output observation).                                 
VMACDB2H       The ANALDB2C error could be corrected with the addition  
VMACOMCI       of   "INCODE=FORMAT UOWTIME DATETIME25.6;,"   to both    
VMAC116        of the %VMXGSUM invocations and by changing the FORMAT   
VMAC123        statement, which would let ANALDB2C use date that was    
Sep 21, 1995   created prior to this change, but that circumvention will
               cause an extra pass of CICS and DB2 data by ANALDB2C.    
               So the permanent correction was to change the format in  
               all of the members that create variable UOWTIME, and only
               the existing FORMAT statement was changed in ANALDB2C.   
   Thanks to H. Thomas Lowin, ICG Informationssysteme, GERMANY.         
Change 13.189  INVALID DATA FOR AFSTTIME in type 91 BatchPipes/MVS SMF  
VMAC91         record because of a reserved field.  After the INPUT of  
Sep 21, 1995   SMF91IWB  &PIB.4.  and the INPUT of SMF91OWB &PIB.4.,    
               insert  +4   (to skip over the reserved field).          
   Thanks to Siegfried Trantes, IDG Gmbh, GERMANY.                      
Change 13.188  Variable WRBUFUSE (write buffers used) was added to KEEP 
VMAC50         list for dataset TYPE50, and is now input by changing the
Sep 20, 1995   @39+OFFSMF +4  to read @39+OFFSMF WRBUF &PIB.4. (for the 
               subtype 01 (channel-to-channel) record).                 
   Thanks to Earl Berg, Bank of America, USA.                           
Change 13.187  ASMTAPES revision MAINTLEV 6 now replaces prior version. 
ASMTAPES       MXG 13.05 ASMTAPES may stop writing allocation records,  
Sep 29, 1995   although mount records continue to be written.  The SRB  
               that we schedule fails if the job in allocation (or in   
               allocation pending) is swapped out.  We continue to retry
               the SRB, but if an internal maximum count is exceeded, we
               (erroneously, I now realize!) shut down the allocation   
               monitor and stop writing records.  This section of the   
               monitor has been redesigned, now that we realize why the 
               SRB routine times out.  In addition, this revision       
              -Adds 'DEBUG' mode, which can be invoked via Operator     
               Modify Command "F MXGTMNT,DEBUG=YES" (default at startup 
               is DEBUG=NO, so that debugging messages TMNT009I/011I    
               will not be written by default).                         
              -Corrects incorrect job and step information due to       
               allocation recovery and step changes                     
              -Enhanced code to get DDNAME when a device is initially   
               found in allocation recovery, but later sampled during   
               execution.  The DDNAME is unavailable during allocation  
               recovery, and so records written only for allocation     
               recovery will not have a DDNAME; once the job goes from  
               allocation recovery to execution, a subsequent monitor   
               sample will now pick up the DDNAME.                      
Change 13.186  Support for year 2000 for TLMS records was added.  Twelve
VMACTLMS       fields that contain dates with century value will now be 
YEAR2000       converted to four digit values (eg., the 0100001 value of
Sep 20, 1995   01Jan2000 will now be converted to 2000001).  The logic  
               is  X=FLOOR(X/100000)*100+1900+X;  for each of these X:  
               TLMS was not previously recognized as needing conversion,
               because these twelve variables are simply numbers and are
               not converted to SAS date values (and my research in the 
               YEAR2000 member only addressed MXG variables that are    
               date values).                                            
   Thanks to Rey Marquez, General Accident Insurance, USA.              
VMAC92         because the INPUT of SMF92PPL should have been &PIB.2.   
Sep 20, 1995   instead of the &PIB.4. that was coded.                   
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 13.184  Variable SMF22SNV should be labeled SUBSYSTEM*NVS*STATUS.
VMAC22         New variable SMF22PNV should be created by inserting     
Sep 20, 1995      SMF22PNV  $CHAR1.    immediately after the INPUT of   
               SMF22SNV, and SMF22PNV must be added to the KEEP= list,  
               the $HEX2. list, and the $NOTRAN. list, after SMF22SNV.  
   Thanks to Dean Brown, Pacific Bell, USA.                             
Change 13.183  MXG 13.01-MXG 13.05 only. RACF type 80, ACF2 user SMF and
IMACJBCK       DB2 type 101 observations were not output if job name was
VMAC80         hex zeroes.                                              
VMAC80A        For consistency, Change 13.076 added IMACJBCK to all SMF 
VMACDB2        processing members (IMACJBCK allows selection of records 
VMACACF2       by job name), but it contained a default test of         
Sep  1, 1995     IF JOB GE '        ';   but if the variable JOB has    
Sep 20, 1995   nulls, this addition causes the record to be deleted!    
Nov 30, 1995   It now turns out that RACF can write records with nulls  
               for job name - "For RACINIT records for batch jobs,      
               SMF80JBN can be zero", and those records were deleted.   
               Also, DB2 records for Distributed Threads for non-DB2    
               requestors contain nulls for JOB, causing observations in
               DB2ACCT and DB2ACCTP datasets to be deleted.             
               The change was to eliminate that default test in IMACJBCK
               so it only contains comments about how it can be used!   
               There was no change to VMAC80, VMAC80A, nor VMACDB2, but 
               they are listed here for the alert of the problem.       
   Thanks to Joseph J. Faska, Depository Trust, USA.                    
   Thanks to Tom Parker, Hogan Systems, USA.                            
Change 13.182  SNS/TCPaccess Version 2.1.0 added on new variable F20AERR
VMACILKA       to dataset ILKAST20 compatibly.                          
Sep  1, 1995                                                            
   Thanks to Joe Schwartz, CIGNA, USA.                                  
Change 13.181  APAR OW11142 adds new variables with compression stats:  
Sep  1, 1995    SMF64SDS SMF64TRK                                       
               In addition, variable ALLOCCYL is now calculated to give 
               the allocated size of the VSAM component.                
   Thanks to Siegfried Trantes, IDG Informationsvararbeitung, GERMANY.  
Change 13.180  TYPE42DS and TYPE42SR variable RESPTIME was found to be  
VMAC42         greater than the sum of connect, pend, disconnect and CU 
Sep  1, 1995   queue; IBM development confirmed that the IOS queue time 
               is included in RESPTIME but not separately recorded, so  
               was inserted after AVGCUQMS=128*AVGCUQMS; in two places, 
               AVGQIOMS was added to the KEEP= for both datasets.       
               In addition, these "millisecond" variables RESPTIME      
               multiplied by 1000 so their values are actually in       
               milliseconds.  I know this will affect those of you that 
               have started to use the TYPE42DS data, but consistency   
               with their labels and with counterpart variables in the  
               TYPE74 dataset justify this annoyance to those pioneers  
               who have already found this valuable data source.        
   Thanks to Bruce Sloss, PNC Bank, USA.                                
Change 13.179  RACFTYPE=34 caused "SKIPPED SEGMENT" message on the log, 
VMAC80A        but had no impact on created datasets.  To eliminate the 
Aug 30, 1995   diagnostic, copy the WHEN (55) DO;  block to after the   
               WHEN (33) block, and then change the 55 to 34.           
   Thanks to Joseph J. Faska, Depository Trust, USA.                    
Change 13.178  MXG 13.05 only.  Variable NDMTIME is missing because the 
VMACNDM        test IF DATEYYYY GT 80000 AND .. should have been changed
Aug 30, 1995   to IF DATEYYYY GT 0 AND ....  (the 80000 test was for a  
               julian date after 1980, but DATEYYYY was change to a SAS 
               date by Change 13.158, and current value is only 13,000).
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.177  Variable VELOCITY is added to TYPE72 & TYPE72GO datasets 
VMAC7072       (for both Compatibility and Goal Mode measurement). The  
Aug 30, 1995   equation is VELOCITY=CPUUSESM/SUM(CPUUSESM,TOTDLYSM);    
               for dataset TYPE72 and the equation is                   
               VELOCITY=PCTUSCUS/SUM(PCTUSCUS,PCTDLTOT); for goal mode. 
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
   Thanks to Dave Crandall, Farmers Insurance, USA.                     
Change 13.176  Support for Software Engineering of America's TRMS (Total
EXTRMS01       Report Management Solution) user SMF record adds datasets
EXTRMS02         TRMS01 - Report Accumulation                           
EXTRMS03         TRMS02 - Report Deletion                               
EXTRMS04         TRMS03 - Distribution Bundle                           
IMACTRMS         TRMS04 - Distribution Print (Demand)                   
TYPETRMS       with the identity of the print-causing job, duration, and
VMACTRMS       counts of lines, pages, etc.                             
Aug 30, 1995                                                            
   Thanks to John Rivera, PKS Information Services, Inc, USA.           
Change 13.175  If you build your weekly PDB on tape, running the TREND  
WEEKBLDT       code can cause lots of tape mounts.  It may be wiser to  
Aug 28, 1995   build the entire PDB on tape first, then use PROC COPY   
               with a SELECT statement to create a pseudo-PDB on DASD   
               with only the datasets needed for Trending.              
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.174  MXG 13.05 only.  Assembly of ASMTAPES fails because you  
ASMTAPES       cannot continue ASM comments with X in column 72.  Find  
Aug 28, 1995   MAINTLEV, remove X's from column 72, put asterisk in col 
               1 (except for the final MAINTLEV  EQU 5, which was ok.)  
               This was a stupid error; I changed the comments and then 
               failed to reassemble the program.                        
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.173  OMEGAMON CICS V300 SMF Subtype 200 subsubtype 4 caused   
Aug 24, 1995   Insert between EEDRMFS and EEDTSIO these lines:          
                        EEDRMFS     &PIB.1.                             
                      IF SUBTYPE=200 THEN INPUT +3 @;                   
                        EEDTSIO     &PIB.4.                             
               and change the subsequent  IF SUBTYPE=200 THEN LOC=LOC+1;
               to read                    IF SUBTYPE=200 THEN LOC=LOC+4;
   Thanks to F. Pulles, Compuzorg B.V., THE NETHERLANDS.                
==========MXG Version 13.05, dated Aug 21, 1995, thru 13.172==========  
Change 13.172  Variables SYSPLEX and SYSNAME were added to all of the   
RMFINTRV       RMF/CMF datasets built from type 70-79 records (they had 
VMAC7072       been inconsistently kept) and were added to RMFINTRV data
VMAC71         set as well, so as to fully analyze sysplex data from    
VMAC73         multiple sysplexes.                                      
Aug 23, 1995                                                            
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 13.171  Support for MVS/ESA 5.2.2 was thought to be contained in 
none           MXG 13.02, as there appeared to be no new record changes 
Aug 22, 1995   in 5.2.2.  However, that was not true, and once IBM got  
Jan 11, 1996   the new SMF manual to me, there were noted several new   
               data.  Fortunatly, the 5.2.2 changes were compatible so  
               that none of your existing datasets failed with MXG 13.02
               and 5.2.2 records (except for Open Edition/MVS type 92   
               data).  Change 13.156 added the support for type 88 data,
               Change 13.162 fixed an MXG error in type 6 record that   
               occurred at a 5.2 site (though the error was due to PSF  
               and has happened with earlier MVS), Change 13.310 added  
               fields to type 30, and Change 3.311 dealt with the type  
               92 so to completely capture all of the new 5.2.2 fields  
               from all records, MXG 13.13 is required.                 
Change 13.170  Support for additional subtypes from Landmark TMON/MVS:  
EXTMVMLG       subtypes CS, IX, ML, and XI are now decoded and these new
EXTMVMLL       datasets are created from ML and XI records:             
EXTMVMLP         Dataset   Description                                  
EXTMVMLV         TMVSMLG   PR/SM Global Segment                         
EXTMVXIM         TMVSMLL   PR/SM Logical Partition                      
EXTMVXIP         TMVSMLP   PR/SM Product Segment                        
EXTMVXIS         TMVSMLV   PR/SM Virtual Processor                      
FORMATS          TMVSXIM   XCF Member                                   
IMACTMVS         TMVSXIP   XCF Path                                     
TYPETMVS         TMVSXIS   XCF System                                   
VMACTMVS       while existing datasets TMVSCS and TMVSIX are now        
Aug 21, 1995   populated with variables.                                
              -Additional decoding of several existing segments:        
               Subtype CI, variables CIJFM and CIJGM are not listed in  
               either the online documentation (Ver 1.3, Mod 9405):     
                   A: ADVANCED FUNCTIONS                                
                      4: DICTIONARY RECORD DIRECTORY                    
               nor in the 'Report Writer' 8: Data Elements document,    
               but are in member TMVDSECT (with the same OFFSET=54).    
               Both variables are generally marked as comments.         
              -The TRANSLATE function was inserted after each input     
               for some variables in the subtypes 'NQ' and 'PS'.        
   Thanks to Peter Proppe, Bremer Lagerhaus Gesellschaft(BLG), GERMANY. 
   Thanks to Rod Fernandes, Albert Heijn B.V., NETHERLANDS.             
Change 13.169  Support for OMEGAMON/MVS Version 300 incompatibly changed
Aug 21, 1995   The new I/O section logic now looks like this:           
                  IF SM180VRS GE '03' THEN DO;  /* OMEGAMAON 300+ */    
                    INPUT @SM180OIO                                     
                          SM180DVT   $EBCDIC1.                          
                          SM180DNR     $CHAR3.                          
                          SM180DEV   $EBCDIC4.                          
                          SM180ACT     &PIB.4.                          
                          SM180QCT     &PIB.4.                          
                          SM180VOL   $EBCDIC6.                          
                    FORMAT SM180DNR $HEX6. ;                            
                  ELSE DO; ... original code ... END;                   
               and variables SM180DNR SMF180DVT were added to KEEP= list
               for dataset EPMVEPIO.                                    
   Thanks to Frank Altrichter, Bell Atlantic, USA.                      
VMACVMXA       encountered with IPARMLF1=873Fx and IPARMSG1=MSG2=03Fx,  
Aug 22, 1995   causing me to reopen and revise Change 13.126 after it   
               was printed in Newsletter 28.  However, the site's data  
               is invalid (for example, the 1.14 record had domain 3Fx, 
               but there are only 10 domains, and the record length of  
               the 1.14 record is 34, but there are only 28 bytes until 
               the next 1.14 record).  The VM data was sent to MVS with 
               FTP using MODE S (Stream) with no TYPE E (EBCDIC) instead
               of MODE B (Block) TYPE E, and this caused data values to 
               to be changed in transmission ('09'x was changed to 'F3'x
               and '1C'x was changed to '22'x by TCP/IP!).  Now that I  
               know the cause of the bad values, I might not have made  
               the revisions in Change 13.126, but they make the support
               more robust and are thus worthwhile to keep.             
   Thanks to Connie Mak, Avon, USA.                                     
Change 13.167  This work is incomplete.  MVS/ESA 5.2 added several new  
ASMRMFV        tables that need to be added to ASMRMFV and then decoded 
VMACRMFV       in VMACRMFV, but I have no test data for validation.  As 
Aug 21, 1995   test data is provided, the support will be coded and     
               tested.  Nothing was changed in ASMRMFV in this change;  
               VMACRMFV was updated with new code blocks and new 5.2    
               variables were added to existing datasets, but more work 
               is required for the new segments.                        
Change 13.166  Support for 3590 Tape device adds variables EXCP3590 and 
FORMATS        IOTM3590 and TAPE3590 to TYPE434, TYPE30_V, TYPE30_4,    
IMAC30IO       TYPE30_5, TYPE30_6, TYPE40, PDB.JOBS, and PDB.STEPS data 
VMAC434        sets.  The DEVCLASS/DEVTYPE value for this new device is 
VMAC30         '8083'x; in member FORMATS, only the formats MGCMFDD and 
VMAC40         $MGDEVTY use those IBM values; the formats MGERPDV (EREP)
VMACEXC2       and MGZAREN/MGZARTQ (ZARA) have their own device type    
VMACUCB        value and I have guessed that the value '43'x will be the
Aug 19, 1995   3590 value, but I will confirm with IBM and Altai.       
  Changes 13.165 thru 13.001 (and 12.328 thru 12.307) were printed in   
  MXG Newsletter TWENTY-EIGHT (and are contained in member CHANGESS).   
Change 13.165  Deaccumulation of HMF datasets TYPEHMF4, TYPEHMF5,       
DIFFHMF        TYPEHMF6, TYPEHMF7, TYPEHMF8, and TYPEHMF9 is required.  
TYPEHMF        Member DIFFHMF is automatically invoked now in member    
VMACHMF        TYPEHMF, but if you add HMF record processing to your PDB
Aug 11, 1995   you must also add  %INCLUDE SOURCLIB(DIFFHMF); in the    
Aug 20, 1995   member EXPDBOUT to accomplish the deaccumulation.        
               Some $EBCDIC variables were changed to $CHAR with $HEX   
               format.  Test data has determined what should/should not 
               be deaccumulated because it is not noted in the vendor's 
               documentation, but some fields were always zero and thus 
               you should verify with your own data.  The vendor states 
               that variables HMF8CS06 thru HMF8CS12 in TYPEHMF8 data   
               set are invalid and should not be used; the problem has  
               been open for over a year and is not resolved yet.       
   Thanks to Shaheen Pervaiz, Acxiom CDC Inc, USA.                      
Change 13.164  Support for EREP (SYS1.LOGREC) records adds 19 datasets: 
EXERPCRW         EREPCRW - Channel Report Word                          
EXERPDDR         EREPDDR - Dynamic Device Reconfiguration               
EXERPEOD         EREPEOD - System Ending /EOD/Normal/Abnormal           
EXERPETR         EREPETR - External Timer Reference Record              
EXERPHDR         EREPHDR - LOGREC Header Record                         
EXERPIOS         EREPIOS - Input/Output Supervisor Recovery             
EXERPIPL         EREPIPL - System IPL                                   
EXERPLMI         EREPLMI - Link Maintenance Information                 
EXERPLRS         EREPLRS - Lost Record Summary                          
EXERPMCH         EREPMCH - Machine Check Handler                        
EXERPMDR         EREPMDR - Miscellaneous Data Record                    
EXERPMIH         EREPMIH - Missing Interrupt Handler                    
EXERPOBL         EREPOBL - Outboard Long Records                        
EXERPOBR         EREPOBR - Outboard Short Records                       
EXERPSDW         EREPSDW - Software System Diagnostic Area              
EXERPSIM         EREPSIM - DASD Service Information Message             
EXERPSLH         EREPSLH - Subchannel Logout Handler                    
EXERPSYM         EREPSYM - Symptom Programming Failure                  
EXERPTIM         EREPTIM - Logrec Time Stamp Record                     
IMACEREP       Either SYS1.LOGREC or EREP records can be processed with 
JCLEREP        this support, even though the data records are not quite 
TYPEEREP       identical.  All records have been tested except for the  
VMACEREP       ETR, SIM, IOS, and MCH events, which did not occur in my 
Aug 20, 1995   test data.                                               
   Thanks to K.U. Geiger, KKH, GERMANY.                                 
Change 13.163  MAINTLEV 6 does not yet exist, although it was listed in 
ASMTAPES       this change text in the printed MXG Newsletter 28.  It is
VMACTMNT       still in development testing.  The ASMTAPES on this 13.05
Aug 12, 1995   is MAINTLEV 5, which seems to solve the stall problem    
Aug 19, 1995   (the monitor would simply stop, using no CPU and writing 
               no records) by better handling the SRB.  You may see some
               "TMNT" messages printed on the job log of the MXGTMNT job
               (TMNT009I SRB Timeout PURGEDQ attempts, TMNT011I SRB was 
               PURGED) that are really diagnostics to indicate how often
               the SRB we scheduled in the tape job's address space did 
               not respond.  Previously we sometimes scheduled a second 
               SRB before the first ended; now if the first is not back 
               we first purge it and then start another SRB.  We almost 
               always eventually get the information back from the SRB  
               routine, so that the data in the SMF record is usually   
               good even when SRBs are purged.  However, the READTIME   
               and other timestamp variables may be invalid if the job  
               ended before we got the SRB response, so I have added ?? 
               modifiers to the SMFSTAMP fields in VMACTMNT so as to    
               avoid printing of a hex dump if you should by chance get 
               an invalid READTIME in a record.  The "TMNT" messages so 
               far occur mostly right on or after the hour, and then for
               hours there are none, and we are using these diagnostics 
               to continue to enhance what will be MAINTLEV 6.  In that 
               iteration, the printing of those "TMNT" messages will be 
               optional, and the default will be not to print them.     
               The problem that is still in development testing occurs  
               very infrequently, but we still occasionally find the    
               PROGRAM=IEFIIC or the incorrect job name will be put in  
               the SMF record.  This seems to be isolated to jobs that  
               had some tapes allocated, went into allocation recovery  
               for additional drives, received WAIT,NOHOLD response, had
               its drives stolen away, and later was reallocated to the 
               same device.  This fix may require additional records to 
               be created and additional logic in VMACTMNT to completely
               resolve these rare instances.  Statistically, the records
               created by MXGTMNT still are quite valid.                
               Please contact Merrill Consultants (or your overseas SAS 
               office) if you would like to be shipped MAINTLEV 6 when  
               it is ready (probably not before October, 1995).         
               A note about CA/LEGENT's MIM product and NOHOLD.         
               The sites which have had problems with the open problem  
               above have been MIM sites, and their MIM administrator   
               had specified that MIM should reply NOHOLD.  In the MIM  
               manual, there is a statement that NOHOLD is required by  
               MVS 4.3, but the MIM Product Manager has confirmed that  
               that statement is false; either HOLD or NOHOLD can be    
               used with any version of MVS.  It is true that MIM does  
               strongly recommend that you use NOHOLD instead of HOLD,  
               because MIM favors throughput over job importance.       
               In a MIM environment, when a job gets WAIT,HOLD response,
               that job will block any other allocations by any other   
               job on any other system from getting any tape drive in   
               that tape group, until it completes its allocation.  Thus
               HOLD response favors the completion of the job that has  
               already been initiated ahead of any other job.           
               By specifying WAIT,NOHOLD, those drives that have already
               been allocated are freed, and the job goes to the bottom 
               of allocation queue, so that maybe another job on this or
               another system could now run. This favors other jobs.    
               I think I would rather finish what I have started first  
               (especially if I have a smart job scheduling system that 
               is based on service objectives - I can presume there that
               the job that was started was more important than the not 
               started job), but you must understand the difference and 
               make your own decision as to which senario is appropriate
               for your site's job scheduling system, and not just      
               arbitrarily accept MIM's NOHOLD recommendation.          
======Early MXG Version 13.05, dated Aug 14, 1995, thru 13.162======    
Change 13.162  PSF 4.0 type 6 SMF record INPUT STATEMENT EXCEEDED RECORD
VMAC6          LENGTH error because IBM did not document that SMF6TUL   
Aug 11, 1995   includes its own two bytes, causing MXG to try to read 2 
               more bytes than are in the record.  After the @; after   
               the INPUT of SMF6TUL, insert this line:                  
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 13.161  Variable MQMSSSID was added to all MQM datasets; it had  
VMAC115        been input separately as SM115SSI or SM116SSI, but it was
VMAC116        not kept.  Labelled MQMSSSID='MQM*SUBSYSTEM*ID', it is   
Aug  9, 1995   needed to associate MQM records.                         
   Thanks to Pat Quinnette, Principal Mutual Life Insurance Co., USA.   
Change 13.160  RMF Reports show MVS/XA for MVS/ESA version 3 because two
ANALRMFR       tests  GE "4" should have been GE "3".  The adjacent MVS 
Aug  8, 1995   release number (3.1.3) was printed correctly.            
   Thanks to Victor Chacon, NYNEX, USA.                                 
Change 13.159  DB2 Statistics Detail report, page 6 had 4 values wrong  
ANALDB2R       and four labels were clarified, and the SHIFT= parameter 
DIFFDB2        did not work quite right.                                
Aug  8, 1995   Buffers Allocated (VPOOL or HPOOL) were negative because 
               their variables, QBxTVPL and QBxTHPL, were wrongly built 
               in data set DB2STATS; those variables were DIF()ed in    
               member DIFFDB2, but they are endpoint values, instead of 
               accumulated, a fact not documented by IBM; only non-zero 
               data can validate whether to DIF() or not to DIF()!      
               Delete all lines in DIFFDB2 with TVPL or THPL suffix.    
              -The values for GET/PAGE SYNC READ RANDOM was incorrectly 
               Replace RANDOM with RANDOMP for the random page calcs,   
               replace RANDOM with RANDOMR for the random read calcs,   
               and recalculate RATIO=RANDOMP/RANDOMR.                   
              -The value for D PRF PAGES READ was wrong because the     
               variable RANDOM was printed instead of RATIO.            
              -Labels for the four rations now read:                    
              -If you used SHIFT=P in report PMSTA01, you would not just
               get a report for all Prime time in DB2STATS, but got     
               multiple reports, one short and before prime, and one    
               that covered almost all of the requested shift (and that 
               report was accurate for the timeframe it reported).  The 
               error was in using ENDTIME instead of STRTTIME in the    
               recalculation of SHIFT.  After %MACRO PMSTA01, move the  
               STRTTIME=ENDTIME-DURATM; statement to immediately before 
               the %IF %LENGTH(&SHIFT) GT 0 %THEN %DO; statement, then  
               three lines later, change DATETIME = ENDTIME to read     
   Thanks to Neil Ervin, Huntington Service Company, USA.               
   Thanks to Cal Cooke, Huntington Service Company, USA.                
   Thanks to Clark Jennings, Reynolds Metal, USA.                       
Change 13.158  Support for the Year2000, phase one:                     
DOC           -All variables with DATETIME or DATE formats were changed 
Aug  7, 1995   to expand the printed width to display the year in four  
               print positions:                                         
                  Was            Now Is         So it will print as     
                 DATE7.         DATE9.         08Aug1995                
                 DATETIME16.    DATETIME18.    08Aug1995:20:58:20       
                 DATETIME19.2   DATETIME21.2   08Aug1995:20:58:20.99    
                 DATETIME20.3   DATETIME22.3   08Aug1995:20:58:20.999   
                 DATETIME23.6   DATETIME25.6   08Aug1995:20:58:20.999999
               Note that only the printed value is changed; all MXG date
               variables are stored in 4 bytes, and all of the datetime 
               variables are stored in 8, so MXG has always internally  
               supported the year 2000.  Those variables that had an    
               undefined length (DATE. or DATETIME. format) were changed
               to one of the above formats.  Over 10,000 instances of   
               these formats were changed in several hundred members.   
              -The preliminary list of products that do not support the 
               year 2000 was expanded in member YEAR2000; the earlier   
               list overlooked some products whose dates were created   
               using the MDY(MO,DA,YY) function.  I believe the list of 
               products now is very close to complete.                  
              -Those instances of MDY(MO,DA,YY) wherein the actual FIELD
               that was input was a PD4 containing 'CYYMMDDF'x are now  
               converted, using this logic:                             
               for these types of data values:                          
                        Hex           Date                              
                      0991231F      12/31/1999                          
                      1000101F      01/01/2000                          
                      1001231F      12/31/2000                          
                      1010101F      01/01/2001                          
               The use of YYYY instead of YY signifies that MXG has put 
               the code in place to support the century bit; of course, 
               this will be 2000 in 2000 only if the vendor sets that   
               century bit; otherwise it will look to be the year 1900! 
              -Those instances of MDY(MO,DA,YY) wherein the YY variable 
               was input as PIB2. can support either the Century bit or 
               a four digit year:                                       
                   Field   Decimal    Hex       Year                    
                      YY      99     0063x      1999                    
                     CYY     100     0064x      2000                    
                     CYY     142     0216x      2042                    
                    YYYY    1999     05CFx      1999                    
                    YYYY    2042     07FAx      2042                    
               For these fields, this new logic is now used, as it will 
               correctly resolve the year whether the vendor sets the   
               century bit or sets a four digit year:                   
                 IF 0 LE YY LT 1960 THEN YYYY=1900+YY;                  
                 ELSE                    YYYY=YY;                       
               Again, the YYYY confirms the MXG four digit year support.
               Note that the MDY() function fails if the YY argument is 
               100, so this new logic was required.                     
               About 20 members were protected by this additional code. 
              -All instances of DATEJUL() function, which does not yet  
               support the century bit, must be revised.  Values input  
               with PD4 format could contain a century bit (0cyydddF0,  
               or they could contain a four digit year:                 
                        Hex           Date                              
                      0099365F      12/31/1999                          
                      1999365F      12/31/1999                          
                      0100001F      01/01/2000                          
                      2000001F      01/01/2000                          
                      0100365F      12/31/2000                          
                      2000365F      12/31/2000                          
                      0101001F      01/01/2001                          
                      2001001F      01/01/2001                          
               Fortunately, the following logic can be used for these   
               PD4 DATEJUL fields, as it will protect for either the    
               century bit or a four digit year:                        
               INPUT PD4FIELD ?? PD4. @;                                
               IF 0 LT DDD LE 366 THEN DO;                              
                IF 0 LE CC LE  2 THEN YYYYDDD=DDD+1000*(CC*100+YY+1900);
                ELSE IF CC GE 19 THEN YYYYDDD=DDD+1000*(CC*100+YY);     
                ELSE YYYYDDD=.;                                         
               ELSE YYYYDDD=.;                                          
               ELSE DATEYYYY=.;                                         
               Here, the YYYYDDD confirms the MXG support for year 2000.
               Eighty-two members contained 340 uses of DATEJUL() that  
               were modified by the addition of the above logic.        
               Note: the PD4 logic printed in Newsletter TWENTY-EIGHT   
               was incomplete; the above code is the tested code that is
               now implemented in MXG 13.05.                            
Change 13.157  Cosmetic cleanup.  Members EXECDALY, EXECEMAC, EXECPDB,  
EXECDALY       and EXECTEST were deleted; they had been replaced by the 
EXECEMAC       REXXxxxx members of the same suffixes in 1989, were kept 
EXECPDB        only for transition, and now are no longer needed (and   
EXECTEST       the EX prefix is now used only for dataset exit names).  
Aug  7, 1995                                                            
Change 13.156  Support for MVS/ESA 5.2 System Logger Data SMF type 88   
EXTY88         creates this new dataset:                                
IMAC88            TYPE88   - System Logger Data                         
TYPE88         These interval records record system logger activity and 
VMAC88         system wide logger exceptions.  IBM comments that if the 
Aug  5, 1995   variable SMF88SIB (bytes deleted before the data was     
               migrated to DASD) is high, and variable SMF88SAB (bytes  
               deleted after data migration to DASD) is low, then the   
               system logger is successfully using the coupling facility
               structure to avoid DASD input/output.  MXG creates the   
               variable SMF88RAT as SMF88SIB divided by SMF88SAB.       
               This code has not been tested with data records.  When I 
               have data records, I intend to produce reports similar to
               IBM's sample program IXGRPT1 (in SAMPLIB).               
Change 13.155  Support for OpenMVS File System Activity SMF type 92 adds
EXTY9201       six datasets:                                            
EXTY9202          TYPE9201 - OMVS File System Mount                     
EXTY9204          TYPE9202 - OMVS File System Quiesce/Suspend           
EXTY9205          TYPE9204 - OMVS File System UnQuiesce/Resume          
EXTY9210          TYPE9205 - OMVS File System UnMount                   
EXTY9211          TYPE9210 - OMVS File System Open                      
IMAC92            TYPE9211 - OMVS File System Close                     
TYPE92         The only change in VMAC30 was to make labels consistent. 
VMAC92         I used the pre-existing MXG variable names from the type 
Aug  5, 1995   30 record where appropriate.  This table shows what is   
               and what is not consistent between 30s and 92s:          
                  MXG    Type 30   Type 92   Description                
                Variable  field     field                               
                OMVSAPG   n/a      SMF92APG  Parent Process Group ID    
                OMVSASG   n/a      SMF92ASG  Parent Session ID          
                OMVSOPG  SMF30OPG  SMF92PGD  Process Group ID           
                OMVSOPI  SMF30OPI  SMF92PID  Process ID                 
                OMVSOPP  SMF30OPP  SMF92API  Parent Process ID          
                OMVSOSI  SMF30OSI  SMF92SSD  Process Session ID         
                OMVSOUG  SMF30OUG  SMF92GID  Process User Group ID      
                OMVSOUI  SMF30OUI  SMF92UID  Process User ID            
                JOB      SMF30JBN  SMF92JBN  Job name                   
                READTIME SMF30RST  SMF92RST  Read-In/Logon Datetime     
                STEPNAME SMF30STM  SMF92STM  Step Name                  
                STEPNR   SMF30STN     n/a    Step Number                
                SUBSTEP  SMF30SSN     n/a    Sub Step Number            
               The SMF Manual (GC28-1457-01) has a good introduction to 
               OMVS accounting records in Chapter 8 (but the schematic  
               does not show when the 92s are written).  This new type  
               92 record looks very useful in measuring Unix-under-MVS  
               I/O activity, something not available in other Unix!     
               This code has not been tested with data; I hope to get   
               test data with both OMVS 30s and 92s for testing and     
               intend to write a technical note on OMVS at that time.   
   Thanks to Lee Borgman, Boeing, USA.                                  
Change 13.154  If CICINTRV was executed outside of BUILDPDB, it failed  
CICINTRV       because the macros defined in IMACCICS were not included.
Aug  4, 1995   (BUILDPDB includes IMACCICS before invoking CICINTRV.)   
               Add %INCLUDE SOURCLIB(IMACCICS); at beginning of code.   
               See Change 14.188.                                       
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.153  NPM 1.5 creates subtype 18x record with invalid data for 
VMAC28         variables LNADDCTD and/or LNADDCTT, causing INVALID      
Aug  3, 1995   ARGUMENT TO FUNCTION INPUT message and a hex record dump 
               is printed on the SAS log.  Those fields did not exist in
               release 1.5, but when they are non-zero, they cause the  
               error, because MXG expected if the LENAOF=136, it was    
               because the two new fields were in your record.  There   
               is no impact on the MXG datasets, but the message and the
               printed dump can be avoided by changing the test:        
                 IF LENAOF GE 136 THEN DO;                    to read:  
                 IF LENAOF GE 136 AND NPMPVN GE 15X THEN DO;            
   Thanks to ???, ???, Hong Kong.                                       
Change 13.152  User-written invocations of VMXGSUM must be examined, due
VMXGSUM        to a just-discovered incompatibility introduced in Change
Aug  3, 1995   12.084 (MXG 12.02 and later).  Even though you used the  
               MXG examples, if your %VMXGSUM uses an OUTCODE= parameter
               to re-calculate the DATETIME= variable-name, your results
               may be seriously wrong.  If your code looks like this:   
                   SUMBY   =APPLID DATETIME TRANNAME,                   
                   OUTCODE =STRTTIME=DATETIME; DROP DATETIME; ,         
               it must be replaced with this:                           
                   SUMBY   =APPLID DATETIME TRANNAME,                   
                   ID      =STRTTIME,                                   
               Prior to 12.084, the DATETIME= variable-name was forced  
               to LENGTH 8, but when the new ID=variable-name parameter 
               was added to replace the recalculation in the OUTCODE=   
               parameter, the automatic forcing of LENGTH 8 was dropped.
               All MXG invocations of %VMXGSUM were changed, but I did  
               not realize nor document this exposure if you did not    
               make the change.                                         
               (Eliminating OUTCODE= eliminates a data step; also, since
               12.084+ keeps only the needed variables, the variable    
               might not even exist to have its length changed.)        
               When a datetimestamp value is stored in length 4, it can 
               be truncated by up to 255 seconds, which can cause the   
               summarization value to be on the prior day, week, or     
               No code was changed by this documentation-only change.   
   Thanks to Ahn Ngo, Crowley Maritime Corporation, USA.                
Change 13.151 -HP PCS variables NONEW NOKILL and NOSHORT are characters,
VMACHPAI       not numerics.  Add all three variable names to the $8    
VMACHPSU       FORMAT statement in VMACHPUX, and add NONEW and NOKILL to
VMACHPUX       the $8 FORMAT statement in VMACHPAI and VMACHPUX to fix. 
VMACHPUX      -Comparing CPU time in the HPUXGLOB and HPUXAPPL datasets 
Aug  2, 1995   shows expected comparison (HPUXAPPL records over 90% of  
               the global CPU time.  However, HPUXPROC shows more CPU   
               time than was recorded in the HPUXGLOB, probably because 
               the CPU time IN HPUXPROC is in seconds (rather than tenth
               of seconds), and it appears that fractional CPU seconds  
               are written as 1 second.  The site has "Short Lived On", 
               causing records for tasks running less than one second,  
               which may contribute to the discrepancy.  HP is being    
               contacted concerning the CPU time resolution in HPUXPROC.
   Thanks to Dan Sidorick, Smith Klein Beecham, USA.                    
Change 13.150  MXG 13.04 tape only. Deleted line will cause ABEND.      
ASMTAPES       After label TIMRPOST, following the WTO statement and    
Jul 31, 1995   before the PURGEDQ statement, insert:                    
                  L    R8,PRGERMTR                                      
               MAINTLEV was changed from 4 to 5 to reflect this change. 
========MXG Version 13.04, dated Jul 31, 1995, thru 13.149======        
Change 13.149  Support for Kodak's ACXIS software for Kodak Optical Disk
ADOCAXC        (by Data/Ware Development), Version 2.1.0, thanks to this
EXAXC01X       significant user contribution creates ten new datasets.  
EXAXC02X         AXC01X   -  AXCIS DATA CREATION SUBTYPE 01X'           
EXAXC06X         AXC05X   -  AXCIS ARCHIVAL SUBTYPE 05X'                
Jul 30, 1995                                                            
   Thanks to Stephen Bell, Westfalisch Lippischen Sparkassen, GERMANY.  
Change 13.148  I have never actually published standards for MXG code.  
VMACXXXX       Many users have contributed code that works, but I often 
Jul 30, 1995   have to spend some time revising their code to my format,
               because I have never formalized exactly how to write MXG 
               code.  Member VMACXXXX and the other ....XXXX members are
               good examples of the basic code structure, but I will now
               begin to include specific coding standards that I try to 
               us, some cosmetic, some functional, for now in VMACXXXX, 
               but likely to be moved to a different-named member in a  
               subsequent iteration.                                    
Change 13.147  Support for LEGENT's HyperBuf SMF Record adds new dataset
FORMATS        TYPEHBUF, thanks to this user contribution.  The original
EXTYHBUF       code was tested with Beta Release 4.02 of HyperBuf,      
IMACHBUF       although I changed some of the code (see change 13.148)  
TYPEHBUF       and only syntax checked afterwards, as the test data file
VMACHBUF       had not yet arrived for validation.                      
Jul 30, 1995                                                            
   Thanks to Joseph G. Ogurchak, Westfield Companies, USA.              
Change 13.146  Five variables in NDM Connect Direct NDMMC dataset       
               were wrong because NDMUID was expanded from 8 to 64 bytes
               in these records.  The MXG test:                         
                (NDMRTYPE='MC' AND LENGTH=168) must be changed to read  
                (NDMRTYPE='MC' AND (LENGTH=168 OR LENGTH=214)) to fix.  
               In addition, the actual change now inputs and keeps new  
               variable NDMWODAT, the undocumented text string at the   
               end of the WO record.  (I suspect my DSECTS are old!).   
   Thanks to ???, Alcatel, FRANCE.                                      
Change 13.145  Support for Packet/Main SMF record creates 11 datasets   
EXPKMNBI       thanks to this significant user contribution:            
EXPKMNBL          PKMNCONN - Connect to TIC                             
EXPKMNCO          PKMNDISC - Disconnect from Packet Network             
EXPKMNDI          PKMNBIND - Bind Completed                             
EXPKMNER          PKMNUNBN - Unbind processed for user                  
EXPKMNFE          PKMNERR  - Error Events                               
EXPKMNFL          PKMNSTUP - Startup of PKTMN Program                   
EXPKMNFS          PKMNSHUT - Shutdown of PKTMN Program                  
EXPKMNSH          PKMNBLOG - Bind Image Log (for Session Data Logging)  
EXPKMNST          PKMNFLOG - Outbound FMD Logical Message (for ")       
EXPKMNUN          PKMNFTST - File Transfer Start                        
IMACPKMN          PKMNFTEN - File Transfer End                          
TYPEPKMN       The first five datasets have been validated with data.   
Jul 29, 1995                                                            
   Thanks to Mr. Loewenthal, Zonussi Elettrodomestici, ITALY.           
Change 13.144  Support for NetCompress SMF record creates six datasets, 
DIFFNTCP       thanks to this significant user contribution:            
EXNTCPAP        NTCPINAP - Application Interval - type 03               
EXNTCPOP        NTCPINSY - System Interval      - type 02               
EXNTCPRT        NTCPSESS - Device Session Start - type 05               
EXNTCPSE        NTCPSESE - Device Session End   - type 06               
EXNTCPSS        NTCPSTRT - System Startup       - type 01               
EXNTCPSY        NTCPSTOP - System Stop          - type 04               
EXNTCPOP       Since the NTCPINSY dataset contains accumulated fields,  
IMACNTCP       member DIFFNTCP is automatically included in TYPENTCP,   
TYPENTCP       Note if you tailor BUILDPDB to add NTCP processing, you  
Jul 29, 1995   However, since the documentation does not describe which 
               fields are in fact accumulated versus end point values,  
               I had to deduce from the test data which fields to DIF(),
               so please validate closely that I got them all!          
   Thanks to Mr. Loewenthal, Zonussi Elettrodomestici, ITALY.           
Change 13.143  TSO/MON 6.1 only, variables TRIVTM NTRIVTM and LONGTM are
VMACTSOM       were 38400 times too small; replace the three  TU4.  with
Jul 29, 1995   &PIB.4. and the values will be correct. (When I validated
               the 6.1 changes last fall with test data, I only looked  
               the counts of transactions, and failed to perform a      
               reasonableness check on the response time values.)       
   Thanks to Yingha Mui, Canada Life, CANADA.                           
Change 13.142  Variables LCSLCBR and LETHCBR were misspelled as the 2nd 
VMAC28         occurrence of LSCLCBS and LETHCBS, and the second label  
Jul 28, 1995   for LCSLXBYT was deleted.                                
Change 13.141  Cosmetic changes.  Duplicate variable names occurred in  
VMACHPUX       KEEP= statements, causing no error, but as they really   
VMACIAM        serve only to confuse, the duplications were removed.    
VMACOMCI       The MEMBER(VARIABLE) that were changed in each member:   
Jul 27, 1995   (Freddie's diagnostic program, which reads MXG source to 
               look for inconsistencies, found these duplications.)     
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.140  DFSORT Release 13 only.  Variable ICEINPDS was repeated  
VMAC16         four times in the KEEP=, the LABEL, and the INPUT        
Jul 27, 1995   statements.  The 2nd thru 4th occurrences of ICEINPDS    
               should have been ICEINNDS, ICEOUTDS and ICEOFLDS.        
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.139  Almost cosmetic; MXG previously kept only the first 9    
DIFFDB2        IFCs and Destinations in DB2STAT0, and printed a message 
VMACDB2        ("This is not usually important") if additional segments 
Jul 27, 1995   were found in your record.  Since this caused a few calls
               I elected to increase the kept IFCs and Destinations to  
               14, since that appears to be the default count.  These   
               counts of activity by IFC and Destination are rarely     
               needed, but now they exist.  See Change 12.279.          
Change 13.138  Using TYPEMON8 to process Landmark TMON/CICS Version 1.3 
Jul 26, 1995   message about decompression exit.  That text now reminds 
               you that TYPETMON is required for Version 1.3 records.   
   Thanks to Jerry Boggess, County of Sacramento, USA.                  
Change 13.137  The MICS VM Data Transmission Program's VB output file is
VMACVMXA       already supported in MXG VM/ESA member VMACVMXA, by using
Jul 26, 1995   the _VMINPUT macro instead of the _MWINPUT macro.        
               Only comments were changed by this Change.               
   Thanks to Ian Davies, Workers' Compensation Board of Alberta, CANADA.
Change 13.136  Variables HMF5BUS and HMF5TIME were not in the KEEP= list
VMACHMF        for dataset TYPEHMF5, and they were also left out of the 
Jul 26, 1995   LABEL statement in change 13.038.                        
   Thanks to Shaheen Pervaiz, Acxiom CDC Inc, USA.                      
Change 13.135  This revision to the MXG Tape Mount and Tape Allocation  
ASMTAPES       monitor provides SRB reliability enhancements and adds   
VMACTMNT       new diagnostics.  This is MAINTLEV 4 of the monitor and  
Jul 25, 1995   should resolve several erratic problems with the SRB     
Jul 29, 1995   routine (including, possibly, the occasional stall where 
               the monitor stops writing SMF records).  This revision   
               creates a separate mount record for PROGRAM=IEFIIC, which
               is now known to be the program name seen when a job step 
               is delayed in allocation recovery, and I intend to see if
               there is any way to match up this IEFIIC record to its   
               related job, but I have to get the monitor into test site
               hands to create the test data to examine first!  Because 
               these PROGRAM=IEFIIC records represent allocation rather 
               than mount delays, I chose to delete them in VMACTMNT so 
               your statistics will not be affected.  Sites wishing to  
               examine these records can remove that test from VMACTMNT.
   Thanks to Tom Parker, Hogan Systems, USA.                            
   Thanks to Jim Purdie, BancOne, USA.                                  
   Thanks to David Childers, Lowe's, USA.                               
   Thanks to Shaheen Pervaiz, TransUnion, USA.                          
   Thanks to Tracy Blackstone, Kaiser Permanente, USA.                  
Change 13.134  Date/time selection failed, especially crossing midnight.
ANALRMFR       Find and delete each of the 44 lines containing either   
   Thanks to Norbert Korsche, OMV AG, AUSTRIA.                          
Change 13.133  Candle's Supersession Release 147 causes MXG message that
VMACNAF        "More account fields were encountered ..." is corrected  
Jul 24, 1995   by Candle PTF QLV1372.                                   
   Thanks to Mr. Schott, Rehau AGu. Co., GERMANY.                       
Change 13.132  Variable DURATM was neither calculated nor kept in the   
VMAC28         NPMVSVGB data set; it was added to the KEEP= list and    
Jul 24, 1995   created in the 'VGB' segment processing.                 
   Thanks to Carl Sommer, SAS Institute Cary, USA.                      
Change 13.131  Several corrections to HSM FSR SMF record processing:    
VMACHSM       -Variable FSRTBYTW was mis-calculated.  It should be:     
Jul 24, 1995    FSRTBYTW=SUM(FSRTBYBK,FSRTBYTW);                        
              -The DO I=1 to FSRNENT1 loop should have included all of  
               the SUM functions and the FSRTVOLS logic, with the       
               %INCLUDE SOURCLIB(EXHSMFST) and END relocated to just    
               before the DO on FSRNENT2.  Before this change, MXG only 
               output the counts for the last tape when this FSR had    
               multiple tapes, and always had TPTYPE='INPUT'.           
              -Variable FSRTVOLS was added to LENGTH statement as $30.  
   Thanks to Wanda Prather, Johns Hopkins University APL, USA.          
Change 13.130  Internet addresses FTPCLHST FTPCRHST F20LHST and F20RHST 
VMACILKA       were numeric variables in hex; with this change they are 
Jul 24, 1995   character variables of length 15 with numbers and decimal
               points between them.  Inputting each of the four bytes as
               individually using PIB1. and then concatenate the PUT    
               function of each byte, using:                            
               Note added Aug 1996: Data from before and after this     
               change cannot be combined, as these four variables are   
               numeric before and character after.  If you must combine 
               (i.e., year to date), then you must convert these four   
               variables in your existing accumulation from numeric to  
               character, using this logic:                             
                MACRO _CONVERT                                          
                 DATA NEWACCUM; SET OLDACCUM;                           
                  DROP FTPCLHST FTPCRHST F20LHST F20RHST;               
                  X=FTPCLHST; _CONVERT;  XTPCLHST=ADDR;                 
                  X=FTPCRHST; _CONVERT;  XTPCRHST=ADDR;                 
                  X=F20LHST;  _CONVERT;  X20LHST =ADDR;                 
                  X=F20RHST;  _CONVERT;  X20RHST =ADDR;                 
                 DATA OLDACCUM; SET NEWACCUM;                           
                  DROP XTPCLHST XTPCRHST X20LHST X20RHST;               
                  F20LHST =X20LHST ;                                    
                  F20RHST =X20RHST ;                                    
   Thanks to Mohammad Mourad, AT&T, USA.                                
Change 13.129  DB2 Statistics Report again, but only individual fields! 
ANALDB2R      -PMSTA01/PMSTA02 labels for Buffer Pools BP0 and BP1 for  
DIFFDB2        GENERAL and READ ACTIVITY were printed as BP1 and BP2.   
VMACDB2        In ANALDB2R find GENERAL and make the following change,  
Jul 24, 1995   and then find READ ACTIVITY and make the same change:    
Jul 25, 1995       %IF &B EQ 1 %OR &B EQ 2 %THEN %DO;                   
Jul 26, 1995         @1 "BP&B GENERAL       "                           
Jul 27, 1995       %END;                                                
                  must be replaced with:                                
                   %IF &B EQ 1 %THEN %DO;                               
                     @1 "BP0 GENERAL       "                            
                   %ELSE %IF &B EQ 2 %THEN %DO;                         
                     @1 "BP1 GENERAL       "                            
              -The LOG RBA field is printed as a decimal when it is a   
               hex address, and must be stored as length 8.             
               In ANALDB2R, find this line with QWSDLR and add HEX12.:  
                 +2 'LOG RBA     :' QWSDLR HEX12. ;                     
               In VMACDB2 add variable QWSDLR to the LENGTH statement   
               to make it length 8 instead of the default length of 4,  
               and add a line   QWSDLR  HEX12.  to the FORMAT statement.
               (I chose HEX12 for an 8-byte field because RBA is a 24bit
               address, and because HEX16 produces wrong values - see   
               SAS Technical Note).                                     
               In DIFFDB2, remove the line QWSDLR=DIF(QWSDLR);          
              -The second of the two lines with this label is wrong:    
                DBD REQUESTS NOT IN EDM                                 
               Change that 2nd label to   DBD REQUESTS/DBD NOT IN EDM   
               The original calculation was always correct.             
              -The value for REQUESTS FOR PT SECTIONS in the Statistics 
               summary is incorrect.  Find the line reading             
                 +3 'REQUESTS FOR PT SECTIONS '                         
               and change the next line to QISEKTG instead of QISEKT.   
               Now, find the previous SUM= statement and add QISEKTG.   
              -Statistics Detail report, page 4, right half of page     
               The /MINUTE /THREAD /COMMIT columns contain wrong values 
               (the left hand COL1xxxx variables are printed instead of 
               the right hand COL2xxxx variables).  You must find each  
               of the report labels for the right hand column, and for  
               those that are followed by lines with COL1PMIN COL1PTHD. 
               and COL1PCOM, change the COL1xxxx to COL2xxxx. Twenty-one
               sets of three lines were changed.                        
              -Statistics Detail report, page 6, right half of page,    
               (GET PAGES thru RANDOM GET PAGE RESULTS), same error as  
               page 4 - file labels and change COL1xxxx to COL2xxxx.    
   Thanks to Neil Ervin, Huntington Service Company, USA.               
   Thanks to Cal Cooke, Huntington Service Company, USA.                
   Thanks to Dean Berry, Farmland Industries, Inc, USA.                 
Change 13.128  Support for APAR OW13246 (PSF/MVS Release 2.2.0) adds new
VMAC6          variables SMF6BYTE (bytes transmitted) & SMF6TARG (target
Jul 23, 1995   address) to dataset TYPE6, for sites exploiting the new  
               PSF/MVS Download feature.  Note that these new variables 
               are not automatically carried into the PDB.PRINT dataset 
               with BUILDPDB, but you can tailor IMACPDB easily to add  
               them if you need them.                                   
Change 13.127  This change is for documentation of an incompatibility   
FORMATS        with SAS Version 5; there was no actual change. Beginning
Jul 23, 1995   with MXG 13.01, member FORMATS cannot be executed under  
               SAS version 5 or SAS version 6.06, nor can it be executed
               if the output LIBRARY is a version 5 format library. The 
               syntax OTHER=(| $HEX2. |) added by Change 13.061 did not 
               exist in those archaic versions of SAS.  However, if you 
               delete all of the lines in member FORMATS with that      
               OTHER= syntax, the formats program will execute without  
               error, even on those old versions.                       
Change 13.126  This change was revised after Newsletter 28 was printed. 
VMACVMXA       VM/ESA MONWRITE records written both by Sterling's       
Jul 23, 1995   VM/Monitor and by IBMs MONWRITE have changed in VM/ESA   
Jul 24, 1995   2.2.  MXG calculated the number of control records using 
Aug 22, 1995   NRCRRECS=(IPRMMSG2-IPRMMSG2+1)/12; (even though there is 
               only one control record per block), and verified that the
               record was a control record by testing IPARMLF1=8709x,   
               but the IPARML control block has changed. Sterling writes
               records with IPRMMSG1=IPRMMSG2=028x that have MWTCAREA of
               all zeroes (so this is not a valid control record, altho 
               028x is the correct offset to where MWTCAREA should be!),
               and IBM writes records with MSG1=MSG2=3Fx that do contain
               a valid MWTCAREA, but 3Fx is the wrong offset to it!     
               (These heuristics were needed in early VM/XA records, but
               now that the IPARML has changed, they can and must be    
               removed with these changes:                              
              -The block  IF MOD(IPARMLF1,10000X) NE 8709 ... to END;   
               was deleted.                                             
              -The calculation NRCRRECS=(IPRMMSG2-IPRMMSG1+1)/12;  and  
               the following INPUT @IPRMMSG1+1 @; was replaced with:    
                 INPUT @41 @;                                           
               (the code added by the July change, between these two    
               lines was also deleted by this August change).           
              -After the @; after CAEND is input, insert this code:     
                 IF CASTR=0 AND CAEND=0 THEN DO;                        
               With these changes, MXG now skips over the MWTEXTBF area 
               that contains the IPARML control block, and instead reads
               the MWTCAREA directly to determine how much data (if any)
               follows this control record.                             
   Thanks to Ian Davies, Workers' Compensation Board of Alberta, CANADA.
   Thanks to Connie Mak, Avon, USA.                                     
Change 13.125  Landmark TMON for MVS corrections.  The line reading:    
Jul 23, 1995   was deleted.  That debugging code for a bad record (over 
Aug 21, 1995   10,000 TCBs in real memory) caused the MXG job to stop   
               before the end of the input file, and there was no error 
               message nor condition code set by MXG; the only clue was 
               a single record hex dump printed on the SAS log.         
               Variables STARTIME and DURATM were removed from the KEEP=
               list for dataset TMVSCC (which is an event record, not an
               interval), and  SYSTEM=CCCSMFID; was inserted before the 
                 %%INCLUDE SOURCLIB(EXTMVCC);                           
               to correct the blank value for SYSTEM in that dataset.   
               Also, variable CFIUTYPE was changed from numeric to      
               character and formatted $HEX8, to be consistent with the 
               other occurrences of unit type in other TMVS records. I  
               recognize this may cause a problem if you combine TMVSCF 
               data sets built before and after this change.            
   Thanks to Rod Fernandes, Albert Heijn B.B., BELGIUM.                 
VMACEDGS       if there had been no user change because the PD4 fields  
Jul 21, 1995   were nulls.  Insert  ??  between the variable name and   
               the &PDB.4. format name in the two lines which input the 
               variables MDUCDATE and MDUCTIME.                         
   Thanks to Bob Newbury, University College System of Nevada, USA.     
Change 13.123  Variables B1DIS B1INT CPGM LPGM ROBID ROBTY and SMSMC are
TYPETMS5       added to the output datasets created by TYPETMS5; these  
Jul 21, 1995   variables (new in TMS Release 5.1) were added to VMACTMS 
               by Change 13.083, but were not carried into the datasets 
               created by the TYPETMS5 processing.                      
   Thanks to Norbert Korsche, OMV AG, AUSTRIA.                          
Change 13.122  Variable RACFUSER from type 30 was added to the DSETOPEN 
ANALDSET       and DSETSUMS datasets created from 14/15/64 records so   
Jul 21, 1995   that Auditors can know the submittor of the job that did 
               the access to the file.                                  
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.121  Reading your 3990 Mod 11 Fat DASD with SAS INFILE CVAF   
VMXGVTOC       option will fail, because the DSCB 5 2-byte addresses are
Jul 19, 1995   3-bytes for those devices.  Removing the CVAF option will
               circumvent the SAS error, because MXG does not need the  
               DSCB 5 records to constuct the VTOC datasets.  However,  
               far better than using this old VMXGVTOC technology, the  
               ASMVTOC/VMGXVTOF pair have been the recommended VTOC tool
               in MXG for years.  If you now have DFSMS, using their    
               DCOLLECT is even better, since it includes the VSAM and  
               VVDS data that previously required you to also run the   
               ASMVVDS/TYPEVVDS pair.  I have removed the CVAF option   
               from the INFILE statement to prevent this error, should  
               anyone still be using VMXGVTOC and not read this note.   
                 April 20, 2006 Notes:                                  
                   1. Member JCLDAYDS and DAILYDSN are the members to   
                      use to capture/bill-for disk space and tapes.     
                   2. SAS Note SN-015522 for SAS Version 9.1.3 does     
                      now recommend specifying the CVAF option in the   
                      INFILE statement to circumvent an 0C4 ABEND in    
                      module UNKNOWN function VXVTC at offset 00082C.   
   Thanks to Terry Poole, SAS Institute Cary, USA.                      
========MXG Version 13.03, dated Jul 19, 1995, thru 13.120======        
Change 13.120  Support for Boole & Babbage's HiperCache 4.1.1 and 4.1.3,
VMACHIPR       (INCOMPATIBLE, because data was inserted into the fixed  
Jul 18, 1995   portion of the record and LSR segments were expanded).   
               The JCTJOBID,INITTIME and READTIME were added to the VSAM
               record, and LSR subpool information added new variables  
               SMFnnHSB,HSR,HSW,HFR,HFW,MFH,MTH,FFH, and FTH for buffers
               in hiperspace, and successful/failing reads/writes       
               and move-pages to/from hiperspace.                       
   Thanks to Dave Myers, Time Warner Cable, USA.                        
Change 13.119  XMXGSUM update. This new enhanced replacement for VMXGSUM
XMXGSUM        was ready to go, until I ran TESTANAL and discovered that
Jul 18, 1995   repetitive invocations of the new logic caused strange   
               errors  (Unable to Load IMAGE SASQUIL, Unable to Open    
               File) due to memory problems.  Increasing the REGION= to 
               48M eliminated the errors, but until I examine why there 
               is an increase, it is not safe to replace VMXGSUM yet.   
               But because you are wise enough to read this text, and   
               can be prepared to increase region size to save lots of  
               CPU, time, and DASD space, I strongly recommend you use  
               the new XMXGSUM (see comments therein) for summary of the
               large datasets (CICSTRAN, DB2ACCT in particular).        
Change 13.118 -DB2 Statistics Detail and Long Trace reports had EDM pool
ANALDB2R       variables that were non-zero for never-happened, and some
ADOCDB2        totals were printed instead of averages.  One logic error
Jul 18, 1995   (repeated variables in SUM= list) was not caught because 
               the test suite uses the new XMXGSUM replacement for      
               VMXGSUM, and one of the many enhancements in the XMXGSUM 
               replacement is that it weeds out any duplicates!  Using  
               XMXGSUM will correct some of the report values, but not  
               all, so you will still need to install the new ANALDB2R. 
              -Audit reports show FORMAT $DB2OBID NOT FOUND, even though
               the log shows they were created.  I think the error is an
               out of memory condition while loading this very large    
               format, but there is no clue on the log!                 
               But the real culprit is the creation of the TEMPDBID and 
               TEMPOBID datasets that are used as CNTLIN= for PROC      
               FORMAT.  The early logic to map DBID/OBIDs output one    
               value for each T102S105/T102S107 obs, (open), but a new  
               value is needed only if the mapping changed, so the logic
               now outputs one value for each unique mapping.  The      
               500,000 obs in TEMDBDID dropped to 2,000 and the memory  
               problem disappeared.                                     
                  Increasing MEMSIZE and REGION may circumvent, but 72MB
                  was not enough with 500,000 obs in TEMPOBID dataset   
                  that is used as CNTLIN= for PROC FORMAT.              
              -ADOCDB2 was updated with an IBM note on why SRB CPU time 
               in DB2ACCT is invalid for CICS attachment and for DDF.   
              -PMSQL01 trace was rewritten as a series of sorts and one 
               monster data step using SET and a BY statement to save   
               DASD space.  Major reduction in DASD space with this     
               revisions (200 cyl now, 3000 cyl not enough before!).    
               Time selection is only at the report level for SQL01;    
               all data still must be read and processed (hence put on  
               temporary DASD).  We are reviewing alternatives for the  
               next version, but this change makes SQL trace feasible   
               even with 500,000 trace events in only 200 cylinders of  
               WORK space (previous version failed to complete with an  
               entire 3000 cyl volume!).   You can always use IMACFILE  
               to select SMFTIME of interest with PDB=SMF execution     
               until we have time to address this enhancement to SQL01. 
   Thanks to Phil Schwartz, Pershing, USA.                              
   Thanks to Dean Berry, Farmland Industries, USA.                      
   Thanks to ???, Schweizerische Bankgesellshaft, SWITZERLAND.          
   Thanks to Clark Jennings, Reynolds Metals Company, USA.              
Change 13.117  Variables were not kept because they were misspelled in  
VMACCADM       the KEEP= list. Variables STFKUS18 STIVSR10 STIVSR16     
Jul 15, 1995   STIVSR22 STIVSR28 and STIVSR34 replace their misspelling.
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.116  Landmark converted History Records with invalid data for 
Jul 15, 1995   The record is defective, and Landmark is investigating   
               their error, but MXG, by default, DELETEs the record so  
               there is no observation output.  To circumvent, insert   
                MROCOL=0; MRONUM=0;  after MROCOUNT=0; so that the MRO  
               logic will not be executed.  This will cause zero obs in 
               the dataset MONIMRO, and variables MROTIME,MROCOUNT will 
               always be zero in dataset MONITASK, but dataset MONITASK 
               will contain valid observations.  This circumvention will
               NOT be installed in MXG software; it is printed here only
               for user modification until Landmark fixes their error.  
   Thanks to Warren Tanaka, Farmers Insurance Group, USA.               
   Thanks to Bill Padilla, Farmers Insurance Group, USA.                
Change 13.115  TYPE42 variables AVGCONMS AVGDISMS AVGPNDMS had format   
ADOC74         TIME13.3, but those MS PER SSCH variables should be 5.1  
VMAC42         (so that 12.1 milliseconds prints as 12.1 instead of     
VMAC74         0:00:12.100!).  If BUILDPDB includes type 42 records,    
VMACVMXA       the TYPE74 variables will also have wrong format.  The   
Jul 12, 1995  -VMAC42. Move AVGCONMS AVGDISMS AVGPNDMS from TIME13.3 to 
               5.1 format in VMAC42, labels were made consistent.       
              -VMAC74. Labels were made consistent.                     
              -ADOC74. Variable AVGENQMS noted as always missing in XA. 
              -VMACVMXA. Labels were made consistent.                   
              -VMAC74. Also, variables AVGPNDIR PCTPNCHA PCTPNDIR were  
               added to 5.1 format.                                     
   Thanks to Tim Carne, Nottinghamshire County Council, ENGLAND.        
Change 13.114  Variable TPXSNAME (Session Name) was always blank. Change
VMACTPX        IF SKIP GT 8 THEN DO;  to  IF SKIP GE 8 THEN DO;         
Jul 12, 1995   TPXSNAME only exists in dataset TPXAPLON.                
   Thanks to Jim Tintle, Mack Trucks, Inc, USA.                         
Change 13.113  MXG 13.01-13.02B only.  CICS Shutdown report may cause   
ANALCISH       NOTSORTED error.                                         
Jul 12, 1995  -Move %REPORTS statement to before  %IF &REQ_REP GT 0 ....
              -Find the %VMXGSUM invocation with INDATA=CICTM.  Change  
               NOSORT=YES to NOSORT=NO in that invocation.  Remove the  
               statements  PROC SORT DATA=&MXGDS OUT=&MXGDS  %VMXGFOR;  
                           BY &BYLIST;   %LET BYLIST=SYSTEM APPLID;     
               that immediately precedeed that %VMXGSUM invocation.     
   Thanks to Chris Weston, SAS Institute, ENGLAND.                      
Change 13.112  ACF2 subtype "L" (dataset ACF2JR) logic was redesigned.  
VMACACF2       The old logic created one before ARE obs and two after   
Jul 12, 1995   ARE obs, even when there were multiple ARE segments, and 
               the LID was decoded but not output.  The redesign creates
               new dataset ACF2JRL to contain the LID fields (and the   
               identity of the changer), one obs in ACF2JRL for each "L"
               record, and dataset ACF2JR now has one obs for each ARE  
               entry (either before or after) with the ARE field name   
               and field value and the identity of the changer.         
                  While I expected a Before and an After ARE for each   
                  field that was changed, that's not exactly what ACF2  
                  writes out.  For fields that are bit switches, those  
                  fields only show up in an ARE when their value is 1.  
                  Turning a bit switch on has no Before ARE but has an  
                  After ARE. Switching a bit switch off has a Before ARE
                  with no After ARE entry, so Before/After AREs cannot  
                  be paired, but ACF2JR dataset has all the information.
   Thanks to Normand Poitras, Banque Nationale du Canada, CANADA.       
========MXG Version 13.02B, dated Jul  6, 1995, thru 13.111======       
Change 13.111  Several variables were not kept due to spelling errors,  
IMACHURN       macro _KHRN527 was misspelled in IMACHURN, and datetime  
VMACHURN       variables were not stored as LENGTH 8.                   
Jul  6, 1995                                                            
Change 13.110  MXG Position Paper on support for the Year2000.  MXG now 
YEAR2000       supports dates after 1999, but many data records from    
Jul  6, 1995   many products do not.  This paper identifies which fields
               in which record from which vendor do not have field width
               to support Year2000, and which fields must be validated  
               by vendors that, while wide enough, do in fact support   
               the Year2000.  This member will be updated as vendors    
               make changes and verify their date formats.              
Change 13.109  Only comments were changed, but a new example of how to  
IMACFILE       select CICS type 110 records by APPLID or SUBTYPE was    
Jul  6, 1995   coded and added as a comment block.                      
Change 13.108  HSM dataset DGN only processed first dump copy when more 
VMXGHSM        than one copies were created at the same time; copies    
Jul  6, 1995   will have same start date/time and source volume in the  
               base, but dump copies will have different dump class name
               and tape volser, and may have different output units and 
               device types.  Additionally, this correction adds vars   
               hh0 mm0 ss0 and tt0 to the keep= list (so that the MCDS  
               key can be reconstructed).                               
   Thanks to Wanda Prather, Johns Hopkins Applied Physics Lab, USA.     
Change 13.107  Temporary datasets used in these members were kept when  
ANALCNCR       they should have been deleted at the end of processing.  
ANALINIT       This is mostly cosmetic (some of these datasets ended up 
ANALTAPE       being documented in member DOCVER!) but it is MXG's      
TRNDTALO       intention to not leave datasets in the //WORK library.   
Jul  5, 1995                                                            
Change 13.106  DB2 Reporting was still wrong in 13.02A.  The Statistics 
ANALDB2R       Reports produced replicated pages and wrong totals, due  
Jul  5, 1995   to a mislocated block of code (introduced in MXG 12.12). 
               Also, MXG 13.01 introduced a FORMAT NOT FOUND error for  
               DB2DBID or DB2OBID format in Audit Reports if there were 
               no IFCID=105/107 observations found; the Audit report was
               enhanced to print the tablespace name instead of the hex 
               OBID/DBID value, but the Audit report logic did not tell 
               you that you needed the 105/107s to create the format!   
               Now, we will use 105/107s if found, but will not fail if 
               they do not exist.  (However, our Format building logic  
               may require REGION=48M and MEMSIZE=48M in your CONFIG    
               member in this version, due to duplicate entries - we    
               know how to fix but not in time for MXG 13.02B.)         
               Finally, the SQL trace report can take a lot of DASD     
               space, and we are re-designing that report for better    
               execution performance in the next version, and we will   
               update the instructions in comments in ANALDB2R for the  
               IFCIDs needed/used in various reports.                   
   Thanks to Dean Berry, Farmland Industries, USA                       
   Thanks to Neil Ervin, Huntington Service Company, USA.               
Change 13.105  DCOLLECT with SMS 1.2 fails with INPUT STATEMENT EXCEEDED
VMACDCOL       error, and prints a hex dump of a 260-byte record, if you
Jul  5, 1995   still have LRECL=264 specified in the JCL for DCOLLECT.  
               With SMS 1.2, the LRECL=644 must be specified for the    
               output of DCOLLECT (see Change 12.316, only in 12.12A),  
               but I did not cross-reference that change to this error. 
Change 13.104  Variable GMTOFFTM was missing if LENPROD=60 (but this had
VMAC7072       no effect, as GMTOFFTM is not actually used in MXG, it is
Jun 29, 1995   only a kept variable in TYPE70).  GMTOFFTM=GMTOFF70; was 
               inserted after GMTOFF70=GMTOFF70/4096;                   
   Thanks to Don Friezen, B.C. Systems, CANADA.                         
Change 13.103  Support for 4-digit UCB addresses in Cache RMF Reporter. 
VMACACHE       Variables DEVN and DEVPLX need to be formatted  HEX4..   
Jun 29, 1995   Originally, I changed the input of @9 UNITADDR $EBCDIC3. 
Jul 12, 1995   to @8 UNITADDR $EBCDIC4., hoping that IBM had the wisdom 
               to use that extra preceding byte for the UNITADDR, but   
               no joy, the byte @8 is still a reserved, hex 00 byte.    
               So UNITADDR in CACHE90 dataset is only 3 characters, and 
               you must use DEVN variable for the device number (the new
               name for unit address).  This note revised Jul 12, 1995. 
   Thanks to Rick Balint, Seattle First, USA.                           
Change 13.102  Support for AUTOMATE had some incorrect field lengths in 
VMACAUTO       the initial coding.  Input of SMFA_SSN was changed from  
Jun 29, 1995   $EBCDIC3. to $EBCDIC4., and SMFA_NAM from $EBCDIC3. to   
               $EBCDIC8.  Also, SMFA_ST was added to DATETIME21.2 format
               and SMFA_SSN was added to the KEEP= for all datasets.    
   Thanks to Rik van Roy, Procter & Gamble ETC, BELGIUM.                
========MXG Version 13.02A, dated Jun 28, 1995, thru 13.101======       
Change 13.101  VM CPU ID values of 'A01234'X were not supported by the  
TYPEVM         &PK.3. informat used in MXG, so the input was changed to 
Jun 26, 1995   &PIB.3., and formatted  HEX6. to support all hex valued  
               in the CPU ID field.                                     
   Thanks to Mr. Koeller, Sparkassen-Datendienst AG & Co. KG, GERMANY.  
Change 13.100  MXG inputs DOS dates using MMDDYY8. format, because that 
TYPEDOS        is the way IBM writes them in the US.  However, if your  
Jun 26, 1995   site uses European format dates under your DOS, you will 
               have to change the three MMDDYY8's to DDMMYY8 because    
               there is no way to detect from the record.               
   Thanks to Mr. Koeller, Sparkassen-Datendienst AG & Co. KG, GERMANY.  
Change 13.099  All nine occurrences of  DATE  &PD.4.  were changed to   
VMACFTP        DATE  ??  &PD.4.  to suppress error message and hex dump 
Jun 26, 1995   if invalid (or null) dates are found in the record.      
   Thanks to Mr. Koeller, Sparkassen-Datendienst AG & Co. KG, GERMANY.  
Change 13.098  DB2 Accounting fields with repeated commas create SMF 101
VMACDB2        records with repeated 'FF'x values, causing MXG parsing  
Jun 26, 1995   logic to fail, generating error messages on the log.     
               Replace all nine occurrences of   IF LOC=0 THEN ...      
               with IF LOC LE 1 THEN ...                                
   Thanks to Stephen Bell, Westfalisch Lippischen Sparkassen, GERMANY.  
Change 13.097  Macro code which stripped blanks out of INDATA operand   
XMXGSUM        was removed; it was no longer needed (the XMXGSUM logic  
Jun 26, 1995   now parses individual words of the INDATA string) and it 
               was found to consume significant CPU time.               
   Thanks to Mitch McKenna, SAS Institute Europe, GERMANY.              
Change 13.096  DB2 Statistics Reports were corrupted in MXG 12.12 when  
ANALDB2R       support for DB2 3.1 was added (a block of code was mis-  
Jun 26, 1995   located).  See Change 13.106.                            
   Thanks to Mitch McKenna, SAS Institute Europe, GERMANY.              
=======Spoke at Greater Boston CMG meeting in Waltham, MA, 21Jun95======
Change 13.095  TYPE72 variable DOMAIN (SMF72CDN) has a value of '5c5c'x 
VMAC7072       for Report Performance Group observations, because there 
Jun 19, 1995   is no domain for RPGN's - it is the Control Performance  
               Group that measures resource consumption by Domain.      
               (My transaction in RPGN=99 could span several Domains as 
               work changes Periods in its Control Performance Group)   
   Thanks to Maurice Clark, ISSC Australia, AUSTRALIA.                  
   Thanks to Chris Nibbs, ISSC Australia, AUSTRALIA.                    
========Initial MXG Version 13.02, dated Jun 19, 1995, thru 13.095======
Change 13.095A Variable DEVNR in type 42 datasets was not formatted,    
VMAC42         causing device 0181x to print as 385!  Add to FORMAT:    
Jun 19, 1995      DEVNR   HEX4.                                         
   Thanks to Mark Robbins, W. H. Smiths Limited, ENGLAND.               
Change 13.094  Variable LUNAME was skipped in the 'E3'x record causing  
VMACNAF        other variables in dataset NAFLOGOF to be trashed.  After
Jun 19, 1995   RTYPE='E3'X test, after  NAFRLN  $CHAR4.  insert         
               LUNAME  $EBCDIC8.  (and add to the KEEP= list for dataset
   Thanks to Mark Hayden, General Accident, SCOTLAND.                   
Change 13.093  Support for DFSORT Release 13 (INCOMPATIBLE) added many  
EXTY16IN       new variables to TYPE16, and three new datasets are now  
EXTY16SO       created with details on each file used:                  
EXTY16OU        TYPE16IN - Input Data Sets (including concatenations)   
IMAC16          TYPE16SO - SORTOUT Data Sets                            
VMAC16          TYPE16OU - OUTFIL Data Sets.                            
Jun 17, 1995   Note that DFSORT Release 13 comes with a boost that is   
Nov 15, 1995   specifically designed to improve sorting of SAS datasets 
               (and at no additional cost!) - see the IBM announcement! 
Change 13.092  Support for OPC Release 3.0 (INCOMPATIBLE). IBM added 12 
IMACOPC        new bytes for TRLLENGT in the header, inserted 16 bytes  
VMACOPC        for new field MT0CAL for dataset OPC24_1, and added new  
Jun 17, 1995   MTDTYPE=15 for Step Restart (new MXG dataset OPC24D_J).  
               To process Release 3 records, you can make these changes 
               until you get the new MXG version:                       
              -Insert after the @; that is after the INPUT of TRLFILL:  
                  IF _OPCVER GE 3 THEN DO;                              
                    INPUT +12 @;                                        
              -Insert after the @; that is after the INPUT of MT0OTX:   
                  IF _OPCVER GE 3 THEN INPUT +16 @;                     
              -Update your IMACOPC to set macro _OPCVER to 3. I chose to
               leave the default Release in IMACOPC unchanged at 2.     
               This code has been tested against only some OPC records; 
               there may be additional changes if other subtypes were   
               changed, and this text will change if necessary.         
   Thanks to Mr. Riccardi, AGIP Petroleum S.p.A., ITALY                 
Change 13.091  Support for Legent's AUTOMATE User SMF record creates 11 
EXAUTOxx       new datasets.  Of course, now that the work is done, I   
IMACAUTO       discover it is Legent's intention to stabilize AUTOMATE  
TYPEAUTO       and replace it with OPS-MVS!  In any event, there is a   
VMACAUTO       what looks to be useful information in these eleven data 
Jun 16, 1995   datasets:                                                
                  AUTOCICS  CICS Statistics                             
                  AUTOCMDS  CMD Statistics                              
                  AUTOIMS   IMS Statistics                              
                  AUTOMISC  Miscellaneous Statistics                    
                  AUTOMSGS  MSG Statistics                              
                  AUTOOPNG  OPEN Interface General Statistics           
                  AUTOOPNS  OPEN Interface Session Statistics           
                  AUTOPORT  Port Session Statistics                     
                  AUTORULE  Rule Statistics                             
                  AUTOSQL   SQL Statistics                              
                  AUTOVARS  Subpool Statistics                          
   Thanks to Rik van Roy, Procter & Gamble ETC, BELGIUM.                
Change 13.090  A new exit, EXPDBSPU, taken upon entry to member SPUNJOBS
EXPDBSPU       was added for the SAS/CPE product, which needs to rename 
SPUNJOBS       work datasets prior to SPUNJOBS invocation.  I doubt that
Jun 16, 1995   anyone else will need to use this exit.                  
Change 13.089  All MXG datasets should contain variables SYSTEM, SMFTIME
TYPECIMS       and for interval datasets DURATM and STARTIME, and have  
VMACOMVT       a dataset LABEL.  These members revised for consistency: 
VMACEPMV      -TYPECIMS - LABEL added; dataset was labeled in VMACCIMS, 
VMACORAC       but I just learned that SAS does not propagate dataset   
VMACTSOM       LABELs when the dataset name is reused!  DELETE of the   
VMACMDF        temporary datasets TRANSACT and CHAINED was also added.  
Jun 16, 1995  -VMACOMVT - Variable DURATM added to datasets OMVTTBUF,   
               as DURATM=ENDTIME-BEGNTIME.                              
              -VMACEPMV - Variable SYSTEM added to all datasets.        
              -VMACORAC - Variables SMFTIME, SYSTEM added.              
              -VMACTSOM - DURATM added to TSOMCMND, DURATM STRTTIME and 
               SYSTEM added to TSOMDRU, SMFTIME added to TSOMDSNS.      
              -VMACMDF - DURATM added (note archaic MDFTRACK became the 
               APAF product, supported by TYPEAPAF), calculated as      
              -VMAC78  - DURATM added to KEEP= for TYPE78PA & TYPE78SP. 
   Thanks to Carl E. Sommer, SAS Institute Cary, USA.                   
Change 13.088  Datasets TYPETALO, TYPE72SC, and TYPE78 were overlooked  
BUILDPDB       and were left in the //WORK file after their last use,   
BUILDPD3       but are now deleted in the PROC DATASETS, like all of the
BUILD002       PDB work datasets, to minimize the work space required.  
Jun 15, 1995                                                            
   Thanks to Tracy Blackstone, Kaiser Permanente, USA.                  
Change 13.087  Continued enhancement to IBM-format RMF reports has added
ANALRMFR       the Coupling Facility Usage Summary and Coupling Facility
Jun 15, 1995   Structure Activity; PDBOUT logic now builds all of       
               RMF type 7x datasets;  Change 12.310 was added for a     
               non-partitioned machine.                                 
Change 13.086  CICS Shutdown report failed if compressed datasets were  
ANALCISH       used, because POINT= cannot be used with compressed data.
Jun 15, 1995   We used POINT= only because NOBS= used to require POINT=,
               but since SAS version 6, POINT is no longer required.    
               Unfortunately, though, without the POINT= operand, if the
               SAS dataset is on tape or in tape format, NOBS=NOBS must 
               read the entire dataset to find NOBS.  In this change, we
               only needed to know if there were any observations, not  
               how many, so the problem was circumvented with different 
               logic, and compressed or uncompressed data worked fine.  
               7Nov02 update:  Above text revised.  See member VMXGOBS  
                               to get the number of observations from   
                               disk datasets.                           
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.085  Support for Antares' HURON SMF record creates 44 new data
FORMATS        sets from the 20 subtypes of this extensive product.  The
EXHRNnnn       support exists now thanks to the significant contribution
IMACHURN       of Glenn Bowman, who wrote the bulk of this support.  I  
TYPEHURN       reviewed the code and made some cosmetic revisions (new  
VMACHURN       formats to decode bit strings,  PIBx changed to &PIB.x,  
Jun 15, 1995   sorted Labels), and validated with SMF data from a second
               site (which uncovered an optional data segment in subtype
               26), so I am quite comfortable with this code.  Huron, to
               be renamed ObjectStar, is a complex product with complex 
               instrumentation, but the "Huron Guide to Performance     
               Monitoring" documents much of the data quite well, and   
               two "Focus on Huron Performance" documents, subtitled    
               "Tuning Guidelines for Huron for MVS", and "Resource     
               Monitoring and Usage" give excellent discussions of how  
               best to analyze Huron data.                              
   Thanks to Glenn Bowman, Wakefern Food Corporation, USA.              
   Thanks to Christa Neven, Geoep Boerenbond, BELGIUM                   
Change 13.084 -Support for APAR OW10393 which added a four byte field,  
VMAC32         trashing the values in dataset TYPE32.  The old MXG code 
Jun 15, 1995   in this member did not protect for compatible changes by 
               IBM!  The circumvention is to insert:                    
                  IF LENTSO GE 44 THEN INPUT +4 @;                      
               after the block that inputs IOTMTOTL.                    
               The actual change created new flag variable SMF32TCF='Y' 
               if variable SRMTRANS was set to zero by IBM because the  
               OUCB control block was not valid.  When set, SRMTRANS    
               remains no longer valid for the duration of the session. 
              -Support for APAR OW12856, which adds one field (SMF32COS,
               number of sections in subsequent records) to the header, 
               and raises the number of TSO command names that can      
               be monitored from 812 to 32767 by now creating more than 
               one type 32 record if necessary.  This had no impact on  
               MXG logic, since MXG creates one observation for each    
               session segment in each record.                          
   Thanks to Luc Mattheus, GEMEENTEKREDIET VAN BELGIE, BELGIUM.         
Change 13.083  Support for TMS (CA-1) Release 5.1 (compatibly) adds     
EXTMSDSN       new variables to both TMS.TMS and TMS.DSNBREC.  Both now 
EXTMSTMS       have CPGM (Creating Program Name) and SMSMC (SMS Mgmt    
IMACTMS5       Class Name).  Dataset TMS.TMS has new variables LPGM     
VMACTMS5       (Last Used Program Name), ROBTY/ROBID Robotic flags,and  
Jun 13, 1995   B1INT/B1DIS (B1 Security Integrity/Disclosure labels).   
               In addition, this revision added the "_L, _K" tailoring  
               macros in member IMACTMS5 (See Change 10.175), and the   
               EXTMSxxx Exit Members so TMS is now consistent with other
               MXG processing members.  These additions should be       
               transparent, and are needed only if you want to tailor   
               the contents of the TMS datasets.                        
   Thanks to Lonnie Melamed, SHL, CANADA.                               
Change 13.082  DB2 3.1 only. No Statistics Reports, DB2STATS has zero   
DIFFDB2        observations.  The MXG logic demanded there be data in   
Jun 13, 1995   DB2STAT0,DB2STAT1, and DB2STAT2 to OUTPUT to DB2STATS,   
               but DB2STAT2 only has observations if your DB2 uses the  
               new Hiperpools!  The logic was changed from:             
                   IF (QWHSRELN LT 2.9 AND IN0 AND IN1)                 
                   OR (IN0 AND IN1 AND IN2);                            
                   IF IN0 AND IN1;                                      
               so that DB2STATS is created whether or not there are obs 
               in DB2STAT2.                                             
               I'm awaiting doc of a case where non-zero obs in DB2STATS
               becomes zero obs in DB2TEMP2.                            
   Thanks to Siegfried Trantes, IDG Informationsvararbeitung, GERMANY.  
Change 13.081  ANALBLSR uses the EXCPDASD variable created by ANALDSET, 
ANALDSET       but ANALDSET did not sum the MULTIDD='Y' observations in 
Jun 13, 1995   the STEPS dataset, so some calculations in ANALBLSR were 
               greater than 100%!  A new data step was added to ANALDSET
               to sum EXCPDASD, and also to output only one observation 
               per step.  Insert after PROC SORT DATA=TYPE30.TYPE30_4...
                     DATA SORTSTEP.SORTSTEP;                            
                      SET SORTSTEP.SORTSTEP;                            
                      BY SYSTEM READTIME JOB SORTTIME;                  
                      DROP TOT_EXCP;                                    
                      IF FIRST.JOB THEN TOT_EXCP=0;                     
                      IF LAST.SORTTIME THEN DO;                         
               A future MXG enhancement will provide a separate optional
               routine that can be invoked during BUILDPDB or TYPE30    
               processing to sum all variables in the MULTIDD='Y'       
               observations into a single observation (applies to the   
               TYPE30_V, TYPE30_4, TYPE30_5, and TYPE30_6 datasets).    
   Thanks to Jerry Layne, Virginia Power, USA.                          
Change 13.080  Support for Sterling SAMS Storage Automation & Reporting 
EXSAMSES       System's user SMF record creates three new data sets:    
EXSAMSTO         SAMSTOT  - Total pools, volumes, space avail and used  
EXSAMSVO         SAMSVOL  - Per volume space stats, pool(s) of volume   
IMACSAMS         SAMSESOT - Per pool space statistics.                  
TYPESAMS       SAMS Version 3.2.0 documentation/data was validated.     
Jun 12, 1995                                                            
   Thanks to Shaheen Pervaiz, Acxiom, USA.                              
Change 13.079 -DB2 Statistics Summary PMSTA01 was wrong or not printed, 
ANALDB2R       especially if INTERVAL=SHIFT was specified; this error is
Jun 12, 1995   fixable as described below.                              
              -Only the first 60 bytes of the SQL text was printed in   
               the Audit reports; too many lines were changed to print  
               the change here.                                         
              -The PMSTA01 error can be corrected with:                 
               Find the %VMXGSUM(INVOKEBY=PMSTA01 - ANALDB2R)  segment. 
                - Change the argument KEEPIN=MINTIME MAXTIME,           
                  to read KEEPIN=MINTIME MAXTIME STRTTIME,              
                - After the argument SUMBY=      change                 
                    OR &PMSTA01  NE YES  %THEN BEGTIME;     to read     
                    OR &PMSTA01  NE YES  %THEN STRTTIME;                
              -Find the first COMMITS = SUM(Q3STCOMM, ....              
                then change the previous   DURATM=ENDTIME-BEGTIME;      
                to read                    DURATM=ENDTIME-STRTTIME;     
   Thanks to Joe Richard, MBNA, USA.                                    
   Thanks to Chuck Hopf, MBNA, USA.                                     
   Thanks to Mitch McKenna, SAS Institute Europe, GERMANY.              
   Thanks to Victor Chacon, NYNEX Mobile Communications Co., USA.       
Change 13.078  Disregard this change. It was reported that Change       
VMAC110        12.324 causes SAP 5.0.c to get INVALID DATA FOR HH MM,   
Jun 12, 1995   but &PK fields can't have invalid values!  The problem   
               turned out to be a user problem, and there was no change.
Change 13.077  SAP Variable STCTIMTR bad. Because of MXG Change 12.324, 
IMACICSA       MXG 12.12A and MXG 13.01 and later expect SAP 5.0 data,  
Jun 12, 1995   while MXG 12.12 and earlier expect pre SAP 4.3F records. 
               (SAP 4.3F changed STCTIMTR, 4.3J split STCFLAG/STCTASK.) 
               You will have to EDIT IMACICSA and verify (or change) the
               INPUT of STCTIMTR (Start time) to match your SAP release:
                 pre-4.3F:         STCTIMTR  PDTIME4.                   
                 4.3F,4.3J,5.0:    STCTIMTR   &PIB.4.3                  
               MXG Change 12.324 changed the INPUT of STCTIMTR from     
               PDTIME4 to PIB4.3 in member IMACICSA, thinking it was an 
               error, but it was a change between SAP 4.3J and SAP 5.0. 
               Unfortunately, it does not appear there is any way to    
               detect which version of SAP wrote the record, so you must
               manually update MXG to tell me what you have!            
   Thanks to Norbert Korsche, OMV, AUSTRIA.                             
   Thanks to Ralf Menz, COMLAB, GERMANY.                                
   Thanks to Jens Schlatter, EDP Consulting Schlatter, GERMANY.         
Change 13.076  ANALALL selects and prints all SMF records from a job,   
ANALALL        but had not been recently updated for new job-related SMF
VMAC24         records.  Member IMACJBCK, the "job checking" exit that  
VMAC33         is used to select by JOB name, should have been included 
VMAC36         by every job-related record processing, but had not been.
VMAC42         Several VMACs create multiple datasets from different    
VMAC59         subtypes, but only some subtypes are job-related, so the 
VMAC60         ANALALL logic now prevents creation of those unneeded    
VMAC78         datasets.  These SMF records processing VMACs were hit:  
VMAC80            24,33,36,42,59,60,78,80,91,101.                       
Jun 12, 1995                                                            
Change 13.075  Support for WYLBUR Accounting from ACS Wylbur.  This SMF 
EXTYWYLA       record is similar to TYPEWYLB (WYLBUR Accounting from OBS
IMACWYLA       Wylbur), but five variables are added, and fields are in 
TYPEWYLA       different locations, hence the need for these new members
VMACWYLA       to create new dataset WYLBURA.                           
Jun 12, 1995                                                            
   Thanks to Matt Anderson, Texas Tech University, USA.                 
Change 13.074  Further performance improvement.  LENGTH DEFAULT=4; is   
XMXGSUM        now set in first DATA step, saving //WORK space.More     
Jun 11, 1995   diagnostics added internally.                            
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 13.073  PDB.JOBS variables ABEND and CONDCODE cannot be used for 
VMAC30         ABEND analysis; instead, PDB.STEPS must be used, because 
Jun  9, 1995   a) programs abend, not jobs, and using PDB.STEPS lets you
                  identify which program was involved, so you can       
                  separate inhouse-written programs from externally     
                  acquired programs.  Furthermore, counting ABENDs by   
                  program will identify a trend that might be lost if   
                  the same program abends many times in different jobs; 
                  there may be only one ABEND per JOB so the program    
                  would be overlooked if you counted by jobs.           
               b) multiple abends can occur in a job - which one do you 
                  want in PDB.JOBS - the first, last, or which?, and    
               c) the type 30 subtype 5 record values are inconsistent: 
                   variable CONDCODE is the value from the final step,  
                   not the last step which failed, and                  
                   variable ABEND relates to the entire job, not a      
                   specific step, based on bits in TERMIND1.            
              -However, an MXG logic error can cause type 30 subtype 5  
               to have ABEND='SYSTEM' for a job which had ABEND='USER'. 
               The correction is to replace                             
                  IF COMPCODE>=32768 THEN DO;                           
               with these five lines:                                   
                    IF TERMIND1='1.......'B THEN DO;                    
                    ELSE IF COMPCODE>=32768 THEN DO;                    
   Thanks to ???, Benetton, ITALY.                                      
Change 13.072  APAR OW08641 for NPM Version 2.2 discusses support for   
FORMATS        LU 6.2 sessions acting in half-duplex flip-flop mode, and
VMAC28         adds new APPC values for Session Type in LSCDSTYP, so the
Jun  9, 1995   variable is now formatted by new format $MG028ST.        
               Note added Mar 27, 1998:  The format $MG028ST was created
               by this change, but the variable LSCDSTYP was not given  
               the $MG028ST format until Change 16.037!                 
Change 13.071  OS/400 Version 3.1 only, the DSARM and DSTYPE variables  
VMACQAPM       are reversed.  The IBM documentation shows the order was 
Jun  8, 1995   changed, so I coded to agree with the documentation, but 
               now real data proves that the documentation was wrong,   
               so now the code agrees with the data!  Change the last   
               pair of INPUT's of DSARM and DSTYPE so that the order is 
               DSARM, then DSTYPE.  There are three pairs of INPUTs, and
               now, all will have DSARM before DSTYPE.                  
               Also, two references to variable SPRES2 were removed.    
   Thanks to Clark Jennings, Reynolds Metal, USA.                       
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.070  Dataset NDMCT variable NDMDSDSN (Source Dataset Name)    
VMACNDM        was added to the KEEP= list, the second occurrence of    
Jun  8, 1995   NDMDODSN in the LABEL statement was changed to NDMDSDSN, 
               and the first INPUT of NDMDODSN was changed to NDMDSDSN. 
   Thanks to Sue Yarker, Midland Bank PLC, ENGLAND.                     
   Thanks to Natasja van Gavel, Alcatel, BELGIUM.                       
   Thanks to Bryant Osborn, NationsBank Technology Services, USA.       
Change 13.069  Cosmetic changes.  Label for DB2END should be "LAST*DB2" 
ANALDB2C       (it was "LAST*CICS..."), and incomplete comments were    
Jun  8, 1995   completed and clarified.                                 
   Thanks to Geert De Gand, Nationale Bank Van Belgie, BELGIUM.         
Change 13.068  Change 12.196, when implemented, did not contain the     
VMACNSPY         ELSE    ARSPNET=.;   statement, but that line has been 
Jun  8, 1995   added so the code agrees with the change.                
   Thanks to Alan Keeble, British Steel, UK.                            
Change 13.067  Backlevel SAS (TS404 for sure) causes error VFONF DOES   
ANALRMFR       NOT FOLLOW VFON0 (because syntax of A-F for variable name
Jun  8, 1995   suffix didn't work right in TS404).  Install current SAS,
               or you could RENAME each of the A-F variables to 10-16,  
               and change the ARRAYs to VFON0-VFON16.                   
   Thanks to David Childers, Lowe's Companies, Inc, USA.                
Change 13.066  Support for MVS/ESA 5.2 (compatible) SMF record changes. 
VMAC24        -Type 24 SMF record variables SMF24LN4,SMF24SAN,SMF24SAC  
VMAC30         were added to TYPE24, listing system affinity names; I   
VMAC42         keep only the first 8 system names in SMF24SAC.          
IMAC42        -Type 30 SMF record added new CPU measures CPUASRTM (the  
EXTY42XR       Preemptable SRBs and Client SRBs CPU time) and CPUENCTM  
Jun  5, 1995   (the Enclave CPU time); note that these two new CPU times
               are already included in CPUTCBTM.  New variables ENCLACTM
               ENCLCPSU and ENCLTRAN provide Enclave transaction active 
               time, CPU Service units, and transaction counts.  Also,  
               variables IARVPSEC,IARVAPIN,IARVEPIN record page seconds 
               memory residency for IARVSERV shared CSTORE, and page ins
               from Aux Store and Expanded Store.  Those variables were 
               added to TYPE30_V,TYPE30_4,TYPE30_5 & TYPE30_6 datasets  
               but were not propagated into BUILDPDB/BUILDPD3 as yet.   
               Finally, Automatic Restart Management Section provides   
               the element name, type, restart group, and the timestamps
               the ARMS variables were only added to TYPE30_5 until more
               is understood about their usage.                         
              -Type 42 SMF new subtype 11 for XRC Extended Remote Copy  
               creates new dataset TYPE42XR with the logical session    
               name, and per-SSID activity counts (data mover reads,    
               with/without data, format/update writes, etc.).          
               The new segments have been coded, but not all have been  
               tested with data records that have populated those data  
               segments, so verify your results.                        
Change 13.065  MVS/ESA 5.1 TYPE30_V (PDB.SMFINTRV) SET CLOCK causes bad 
VMAC30         INTBTIME/INTETIME (interval begin/end time of day) value.
Jun  4, 1995   This note revised Jul 12, 1995 - prior belief that error 
Jul 12, 1995   was leapseconds value in sysplex timer is not correct.   
               Fields SMF30IST/SMF30ISS should be identical, with IST on
               local clock and ISS on GMT clock (so that we can measure 
               the GMT-to-local delta), but one site had deltas between 
               IST and ISS of 36 seconds for days, then 80 seconds, etc.
               After chasing through IBM SMF level 2 for weeks with no  
               answer, the site's IBMer found an IBM note describing the
               culprit:  the use of SET CLOCK command:                  
                  When a system is IPLed, the GMT is exactly in sync    
                  with the local time, but when a SET CLOCK command is  
                  issued to change the local time to be out of sync with
                  the GMT (and this also causes the "SMF midnight" to be
                  recalculated), now jobs run show an IST-ISS delta     
                  exactly equal to the GMT-local delta of the SET CLOCK 
                  command!  And the note says that IBM plans only to    
                  document to clarify that changing the local time may  
                  get the local time out of sync with the correct offset
                  from GMT!  Note "Relationship between SMF30ISS and    
                  SMF30IST" by David, document number (?) ADB0627.      
               MXG variable EXECTM in TYPE30_V becomes negative, and    
               variables INTBTIME/INTETIME/SYNCTIME are earlier than    
               all other timestamps in the interval record.             
                  Existing TYPE30_V datasets can have the negative      
                  EXECTM corrected by this recalculation:               
               Since IBM plans no change, I have revised my logic to now
               expect this difference and to use it:                    
                1. After using the FLOOR(IST-ISS) to calculate the GMT  
                   offset in hours, I now also calculate any delta in   
                   seconds and add that back into the GMT offset so that
                   ISS and IET values will be brought up to the IST     
                   clock.  After the line:                              
                   Insert this line:                                    
                   This logic will work when the error is fixed, too!   
                2. The calculation of EXECTM in the interval record does
                   not use LOADTIME anymore:                            
                   First, find the line:                                
                    IF MULTIDD NE 'Y' THEN DO;                          
                   and then find the subsequent line reading:           
                   and change it to read:                               
                   (The actual change restructured the logic.)          
   Thanks to Wolfgang Vierling, Vereinte Versicherungen, GERMANY.       
Change 13.064  Multi-UCB type 14/15 records were not properly processed 
VMAC1415       due to MXG logic error.  The actual order of segments is 
Jun  2, 1995   basic, (open date), UCB-segments, (hiperbatch), (ISAM),  
               (extended segment), and there are two possible extended  
               segments: compressed statistics or SMS classes.  Support 
               required relocating MXG code so that the hiperbatch, ISAM
               and extended segment data are read in before processing  
               the UCB segments.  Since MXG OUTPUTs one observation for 
               each UCB segment, the hiperbatch and compressed file     
               statistics appear only once per record, not once per UCB 
               segment.  For multi-ucb records, then, the counts for the
               hiperbatch and compressed file statistics will be kept in
               the first observation from each record and will be set to
               missing in the 2nd and subsequent observations created by
               the additional UCB segments.  Variable UCBSEGNR was also 
               added to identify whether observations in TYPE1415 are   
               created by the first or subsequent ucb segments.         
               Multi-ucb records are created for concatenated BPAM files
               for multi-volume files, and for striped files.           
               Real data records clarified IBM documentation of the real
               order of these segments.                                 
               The major impact without this fix was that multi-ucb obs 
               had SMS storage, data, and management class blank in all 
               but the last observation for that SMF record (and the    
               compression statistics could have been incorrect).       
   Thanks to Paul Dzielak, Smith Barney, USA.                           
Change 13.063  Variables TTOCPREL,TTOCSUCL have value of  *NONE*  unless
VMXGHSM        the volser started with H; a local tailoring mod was left
Jun  2, 1995   in the code that should have been removed.  Delete the   
               two lines that contain  '*NONE*'.                        
   Thanks to Wanda Prather, Johns Hopkins Applied Physics Lab, USA.     
Change 13.062  MXG 13.01 only.                                          
VMACNSPY      -Remove "$HEX16." from line 124700, as those variables are
Jun  2, 1995   should be $HEX.2.  Fortunately no harm was done, but the 
               variables were stored as 8 bytes instead of 1 byte!      
              -Labels for VRBMAXWD,VRBMINWD are now SIZE vice COUNT.    
              -Insert STARTIME=ENDTIME-DURATM; immediately before the   
                %INCLUDE SOURCLIB(EXNSPYVT);  to create STARTIME.       
              -Variable APPLID was removed from the KEEP= list for the  
               datasets NSPYVTAM and NSPYVIRT as it does not apply.     
              -INPUT of variable NSPBPOOL was changed to $EBCDIC4. (it  
               was &PIB.4.) and it is now labelled 'BUFFER*POOL*NAME'.  
   Thanks to Rod Fernandes, Albert Heijn B.V., NETHERLANDS.             
Change 13.061  All MXG-built formats for hexadecimal values now have    
FORMATS            OTHER=(| $HEXn. |) - for character variables         
Jun  1, 1995       OTHER=(|  HEXn. |) - for numeric variables           
               added in their creation so that undefined values are     
               displayed in hex.  This syntax is only available in      
               SAS Version 6.07 and later, so if you still must try to  
               run MXG under archaic SAS 6.06 or more archaic SAS 5.18, 
               you will have to remove all of those lines from member   
               FORMATS before you build your archaic format library.    
   Thanks to Shantha Baran, British Steel, ENGLAND.                     
Change 13.060  MXG 13.01 only.  Change 13.055 was not spelled right.    
GRAFLPAR       The test  IF NAME GT ' ' THEN DO; added by 13.055 should 
Jun  1, 1995   be  IF LP&ID.NAME GT ' ' THEN DO;                        
   Thanks to Norbert Korsche, OMV AG, AUSTRIA.                          
Change 13.059 -Label corrections. Variable NSPBOEXP "buffers" misspelled
VMACNSPY       and variable CBPFLAG was changed to "TABLE*FLAG".        
Jun  1, 1995  -Format correction. Variable NSPXRESO was removed from the
               $HEX16 format, as it is a character, not hex, variable.  
              -MXG 13.01 only, new support for record type X caused     
               "INPUT STATEMENT EXCEEDED RECORD LENGTH" error. The line 
               M4=-4; must be changed to M8=-8;  and the subsequent     
               reference to +M4 must be changed to +M8.                 
   Thanks to Norbert Korsche, OMV AG, AUSTRIA.                          
ANALDB2R       SET WORK.DB2DUMRY" resulted from bad MXG logic.  Find    
May 30, 1995   "%MACRO PMSTA01", and change the next two occurrences of 
               " BEGTIME" to " STRTTIME" (note, don't change &BEGTIMEs):
                 First:  OR &PMSTA01  NE YES  %THEN BEGTIME;            
                 Second: DURATM=ENDTIME-BEGTIME;                        
   Thanks to David Klein, City of New York, USA.                        
=====Taught in London and Heidelberg, paper at Konigswinter CMG-CE======
Change 13.057  CICS Statistics dataset CICLSRR variables A08BKCTD and   
VMAC110        A08BKDTD were incorrectly INPUT as RMFDUR4.  Their input 
May  4, 1995   lines (two pairs) must each be replaced with:            
                   HH &PK.1. MM &PK.1. SS &PK.1. TH ?? &PD.1. @;        
                   IF TH GE 0 THEN A08BKCTD=HMS(HH,MM,(SS+TH));         
                   ELSE            A08BKCTD=.;                          
   Thanks to Steve Harris, TVA, USA.                                    
Change 13.056  Change 13.017 (TYPE6 OUTDEVCE for 4-digit Remote) was not
VMAC6          correct.  The "5,2" in the SUBSTR should be "6,2".  The  
May  4, 1995   text of 13.017 has also been changed to be correct.      
   Thanks to Norbert Korsche, OMV, AUSTRIA.                             
==Changes thru 13.055 were included in MXG 13.01 dated May 3, 1995===   
Change 13.055  Intermittent LPARs (test LPARs) caused strange graphs;   
GRAFLPAR       The statement    IF LP&ID.UPDTM GT 0 THEN DO;            
May  3, 1995       should be    IF NAME GT ' ' THEN DO;                 
               so the LPAR numbers don't change from hour to hour!      
   Thanks to Tom Kelman, SunTrust Service Corporation, USA.             
Change 13.054  Variable NRSAMPLE was added to the TYPE74CF KEEP= list.  
VMAC74         Several calculations on the Coupling Facility require the
May  3, 1995   number of samples.                                       
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
Change 13.053  If you used TEMP01 or TEMP02 parameters to segregate the 
XMXGSUM        work files, variables were missing because dataset VARS  
May  3, 1995   was not in the DELETE list.  In addition, the logic has  
               been significantly simplified by using SUM(A B C)=A B C  
               (instead of the archaic SUM= list with X1-Xnn placeholder
               dummy variables).  This might be the last iteration as   
               XMXGSUM has now been tested with just about all feasible 
               combinations, but I will wait until MXG 13.02 before I   
               actually replace VMXGSUM with this XMXGSUM.  I strongly  
               suggest that you install XMXGSUM in place of VMXGSUM as  
               described in the comments in XMXGSUM - XMXGSUM is much   
               more efficient, especially for CICS and DB2 data.        
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 13.052  When ASUMTALO was revised (Change xx.yyy), corresponding 
GRAFTALO       changes to GRAFTALO should have been made.  SYSTEM was   
May  2, 1995   removed, ALOCTIME changed to TIMESTMP and the average    
               tape drives allocated is TAPEDRVS=TAPEDRVS/DURATM;.      
   Thanks to Tom Elbert, John Alden Life Ins., USA.                     
Change 13.051  AS/400 3.1 dataset QAPMSYS duration variables SITRNT,    
VMACQAPM       S6TRNT and SPRES1 are INPUT as &PD.8.3 instead of &PD.8. 
May  2, 1995   V 3.1 increased the field width from 6 to 8 bytes but the
               change in units to milliseconds was not documented!  In  
               addition, SPRES1 and SPRES2 were renamed SPTRNT and      
               SPTRNS and added to the KEEP= list for QAPMSYS dataset.  
               (The "Passthru" SICPU/SITRNT/SITRNS and the "inter"      
               SPCPU/SPTRNT/SPTRNS variables are both needed to track   
               total interactive work.)  See also Change 13.011.        
   Thanks to Lynn Marchant, Coca Cola, USA.                             
Change 13.050  TYPE42DS I/O Statistics Subsection does not always exist,
VMAC42         but MXG input the variables nevertheless, causing really 
May  2, 1995   large values for I/O durations and cache statistics.     
                 Insert   IF OFFDSIO GT 0 THEN DO;                      
                 before     OFFDSIO=OFFDSIO-3+OFFSMF;                   
                 Before     OFFDSAM=OFFDSAM-3+OFFSMF;                   
                 insert   END;                                          
               So the fields will be missing instead of wrong.  I am    
               still investigating why OFFDSIO (S42DSIOO) is zero.      
   Thanks to Ted Blank, IBM, USA.                                       
Change 13.049  TYPE116 dataset has zero observations.  Change both      
VMAC116        IF SUBTYPE=1 THEN ... to IF SUBTYPE=0 THEN ....  Insert  
May  2, 1995   OFFQMAC=OFFQMAC-3+OFFSMF;  before INPUT @OFFQMAC         
   Thanks to E.U.C. Hettinga, Centrum Voor Informatie.., NETHERLANDS.   
Change 13.048  XMXGSUM in MXG 13.01 still failed, if the TEMPDD argument
XMXGSUM        was used, due to mislocated code when Change 13.032 was  
Apr 26, 1995   made.  Also, repeated executions of XMXGSUM could fail   
               because temporary dataset VARS was not deleted at the    
               end of XMXGSUM.                                          
Change 13.047  ANALTAPE in MXG 13.01 still failed, because Change 13.044
ANALCNCR       to ANALCNCR created an error when there was no SUMBY used
Apr 26, 1995   in the %ANALCNCR invocation.  (Only ANALTAPE had the     
               exposure).  (See also Change 12.327).                    
               One instance caused A NUMBER HAS BECOME TOO LARGE error. 
==Changes thru 13.046 were contained in MXG 13.01 dated Apr 27, 1995==  
Change 13.046  Report enhancements to the CICS Shutdown reports, titles 
ANALCISH       for detail reports, and other cosmetics were added by    
Apr 26, 1995   this extensive user contribution.                        
   Thanks to Willi Weinberger, IDG, Germany.                            
Change 13.045  LENGTH statement was moved to before FORMAT statement so 
IMACICSA       character variables' length is correct. See SAS Technical
Apr 25, 1995   Note (above, or in MXG Newsletter TWENTY-EIGHT).         
   Thanks to Stefaan Lemaire, COMPAREX Information Systems, BELGIUM.    
Change 13.044  Missing value for timestamp was not protected, causing   
ANALCNCR       invalid DO loop control variable.  ASUMTALO now throws   
ASUMTALO       away invalid records, and ANALCNCR is now protected for  
Apr 25, 1995   missing value in DO loop control variables.              
Change 13.043  These members were revised to work with XMXGSUM. They had
ASUMVMON       exploited a loophole in VMXGSUM (the right side of the   
TRNDVMON       NORM= list was an expression instead of a variable name) 
Apr 25, 1995   that does not exist in XMXGSUM.                          
Change 13.042 -The mapping of DB2 DBID/OBID hex values to the table name
ANALDB2R       uses the IFCID 105 and 107 records to dynamically create 
Apr 25, 1995   a look up table, the $DB2DBID and $DB2OBID formats.  The 
               logic assumed a one-to-one mapping, but it turns out the 
               values get reused (DELETE and then CREATE a tablespace)  
               so the logic for creating these formats was redesigned to
               append the timestamp of the 105/107 to create the range  
               of datetimes when that DBID/OBID pair was in effect.     
              -ANALDB2R now will execute under OS2 - the logic to detect
               if the PDB pointed to an MVS tape failed on a non-MVS    
               platform.  Also, OPTIONS LINESIZE=132 is now specified so
               proper print width is used for these reports.            
   Thanks to ???, ???, USA.                                             
Change 13.041  TYPE72MN variables WSETFIX/WSETASM were incorrect.       
VMAC7072       They are now created using:                              
Apr 25, 1995    WSETFIX=FRAMEFIX/AVGUSER;                               
   Thanks to Jim Gill, St. Johns River Power Park, USA.                 
Change 13.040  Dataset DB2ACCT variable QBACSWS and QBnCSWS were always 
VMACDB2        zero; statement   (QBACPID QBACGET QBACRSVD QBACSWS  ... 
Apr 25, 1995   should have been  (QBACPID QBACGET QBACSWS  QBACRSVD ... 
   Thanks to Jason Lau, CSC, AUSTRALIA.                                 
Change 13.039 -The SAS/CPE product expects a "system" variable in each  
DIFFTMDB       dataset built by MXG, and their cross-check uncovered    
TYPEMON8       these datasets which did not have a "system" variable:   
TYPETMON         MONIDSA  - SYSTEM (retained from "TI" record)          
VMACCIMS         TYPECTLD - SYSTEM (was missing from KEEP= list)        
VMACCTLD         TMDBDE   - SYSTEM (retained from "TA" record)          
VMACDCOL      -Dataset labels were missing in CIMSxxxx (IMF) datasets.  
VMACOMSM      -Variable DCDRECFM has been created in dataset DCOLDSET   
VMAC7072      -SAS/CPE also expects a "duration" variable in interval   
VMAC89         datasets; most MXG interval datasets contain STARTIME,   
Apr 25, 1995   ENDTIME, and DURATM, but there were some omissions that  
VMAC28         have now been corrected for consistency; you should now  
May  2, 1995   expect those three variables in all interval datasets.   
                 TMDBDA   - No duration in record, required new member  
                            DIFFTMDB to be invoked by TYPETMDB to SORT  
                            and then create DURATM=DIF(ENDTIME);        
                 OMSMSJOB - DURATM=OMFS2ETM-OMFS2STM;                   
                 TYPE7204 - DURATM should have been in KEEP= list.      
                 TYPE7204 - DURATM should have been in KEEP= list.      
                 TYPE89   - DURATM=SMF89IET-SMF89IST;                   
                 NPMxxxxx - DURATM=ENDTIME-STARTIME added to datasets   
                            NPMIN25P NPMINNVC NPMINFRP NPMLANIN         
   Thanks to Carl Sommer, SAS Institute Cary, USA.                      
Change 13.038  Support for subtypes 4 and 5 of HMF SMF record was added 
EXTYHMFR       to decode both subtypes; the subtype 4 creates a new data
IMACHMF        set, TYPEHMFR, with path/route detail, while TYPEHMF4 has
VMACHMF        the node statistics data.  Subtype 4 has been data-tested
Apr 25, 1995   but there were no subtype 5s in the test data file.      
   Thanks to Shaheen Pervaiz, Acxiom, USA.                              
Change 13.037  Reports showing union of all systems were missing from   
ANALTAPE       the revision introduced in MXG 12.12.                    
Apr 21, 1995                                                            
   Thanks to ???, ????, USA.                                            
Change 13.036  Continued validation of ANALCNCR closed these exposures: 
ANALCNCR      -GOPTIONS HTITLE=1 HTEXT=.75 added to reduce the size of  
Apr 21, 1995   text and titles to readable proportions.                 
              -Plot of summary had MAX axis value slightly lower than   
               the max value plotted, and DEVICE= specification was     
              -Plots failed with 0 observations in datasets.            
              -Invalid DO loop range when no SUMBY= was specified and   
               intervals were being synchronized.                       
   Thanks to Tom Parker, Hogan Systems, USA.                            
Change 13.035  Support for APAR OW04653 which adds several variables to 
VMAC74         TYPE74ST (Coupling Facility Structures) which appear to  
Apr 20, 1995   be quite important in tracking capacity of the Coupling  
                R744SCUF R744SDEC R744SDEL R744SMAE R744SMAS R744SMIS   
                R744SNLH R744SSIZ                                       
               These changes and the MXG corrections in Change 13.004   
               are important enough for users of MVS/ESA 5.1 in Goal    
               Mode (Workload Manager) that MXG 13.01 is required.      
               Users with MVS/ESA 5.1 still in compatibility mode still 
               require only MXG 12.12, but installing 13.01 is still    
   Thanks to Scott Coryell, First Bank System, USA.                     
Change 13.034  Protection for RACFTYPE=55 to prevent "SKIPPED SEGMENT"  
VMAC80A        message, and variable RACFEVNT= was added to the SKIPPED 
Apr 19, 1995   SEGMENT message to identify which event contained that   
               segment, in case it is necessary to decode and add any   
               new variables.                                           
   Thanks to Henrik Tonnisen, Jyske Bank Data A/S, DENMARK.             
Change 13.033  A new global macro variable, MXGDEBUG, is now defined in 
VMXGINIT       VMXGINIT, to facilitate internal debugging %MACRO code.  
Apr 18, 1995   Globaling this macro name allows debugging to be enabled 
               without source code changes; however, I expect that this 
               option will typically be used only by MXG Tech Support in
               problem resolution, or during developmental testing.     
               It is currently implemented only in member XMXGSUM, with 
               these initial arguments defined:                         
                 1= Display normally non-printed messages about which   
                    variables are being dropped because they were not   
                    found in the input datasets - VMXGSUM specific.     
                 2= Turn on MPRINT                                      
                 3= Turn on MPRINT SYMBOLGEN                            
                 4= Turn on MPRINT SYMBOLGEN MLOGIC                     
               You would use  %LET MXGDEBUG=x;   to enable this debug.  
Change 13.032  More validation of this soon-to-be-replacement for the   
XMXGSUM        VMXGSUM member.  If a variable appeared twice in one of  
Apr 21, 1995   the lists or is not found in the input dataset, the      
               wrong number of 'Xn' variables to skip over in the       
               PROC MEANS was calculated, causing output variables to   
               contain incorrect values.  The logic to calculate how    
               many variables are to be skipped was corrected.          
              -Ranges of variables BKT1-BKT8 were supported, but parsing
               BKT1-BKT18 missed variables 9-18; that is now corrected. 
              -If all variables are missing for a NORM parameter, a note
               is printed and the parameter is ignored.                 
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
   Thanks to Tom Elbert, John Alden, USA.                               
Change 13.031  Variables QTPUBDD and QTXAIRLM were incorrectly spelled  
TRNDDB2S       as QTPUBD and QTXAIRL respectively in MXG 12.12/12.12A.  
Apr 18, 1995   Although documented as having been made in April, this   
Sep 20, 1995   change was not actually made in TRNDDB2S until September.
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 13.030  Support for IBM's IRRDBU00 - RACF Database Unload Utility
EXRAC...       is provided by this significant user contribution from   
IMACRACF       Peter Proppe.  The utility creates a sequential file from
TYPERACF       a restructured RACF database, so your RACF administrator 
VMACRACF       can ask complex queries and create reports about the RACF
Apr 18, 1995   security definitions (like who has access to what, etc.!)
               There are 39 MXG datasets created by this enhancement.   
               See comments in member VMACRACF for documentation, and   
               the IBM documentation is in RACF Macros and Interfaces.  
   Thanks to Peter Proppe, Bremer Lagerhaus Gesellschaft, GERMANY.      
Change 13.029  Landmark MONIDSA build was copied from TYPETMON in Change
TYPEMON8       12.315, but the LABELs and FORMATs for the variables were
Apr 18, 1995   not copied until now.  In addition, this "interval" data 
               record contains neither a DURATM nor STARTIME nor SYSTEM 
               fields that describe the interval.  Am awaiting Landmark.
   Thanks to Carl Sommer, SAS Institute Cary, USA.                      
Change 13.028  Support for Sterling's SOLVE NCL CPU-time accounting user
EXTYSOLV       SMF record creates new dataset TYPESOLV allowing you to  
IMACSOLV       collect NCL CPU usage at the user level.  These records  
TYPESOLV       are interval records, but records are only created if the
VMACSOLV       CPU time used by the user exceeds the threshold specified
Apr 14, 1995   in the SOLVE USERACCT command.                           
   Thanks to Arzina Merali, Alberta Public Works, CANADA.               
Change 13.027  0C4 ABEND in this assembly program occurred because IBM  
ASMRMFV        loaded an offset address for enqueue table, but there was
Apr 14, 1995   no enqueue table.  To correct, find the line reading     
                    L     R8,ENTENTMX(,R9)                              
               and insert these two new lines:                          
                    LTR   R8,R8                                         
                    BZ    ENDENT                                        
               Then find the label (in column 1)  MVEENT, and then find 
               the statement  BNE   MVEENT several lines later.  Insert 
               (in column 1)   ENDENT   DS    0H   after that BNE.      
               The actual change in this version of the RMF Monitor III 
               decompress program was more extensive - now statistics   
               of records read/written are printed on the job log, and  
               you can now select which classes of records are written. 
   Thanks to Leon Berthou, Dan Computer Management, DENMARK.            
Change 13.026  ICEBERG SMF record subtype 5 (deleted data space release)
VMACICE        did not use ESTOSET to locate the data segment, causing  
Apr 13, 1995   incorrect values for the extent addresses and TOIOTIME.  
Jun  3, 1995   After the line now reading:    EXTOSET=EXTOSET-3;        
               insert a new line reading:     INPUT @EXTOSET @;         
               Text added 3Jun95:                                       
               And delete the line   +4  /* UNDOCUMENTED*/              
               It turns out there have been two different lengths of    
               ICEBERG (or IXFP) subtype 5 records, one with that 4-byte
               undocumented field (and RDW=148), now without that field 
               (and RDW=144, which means the SAS LENGTH=140).  An INPUT 
               STATEMENT EXCEEDED RECORD LENGTH error occurred when the 
               140-byte record was read with the 144-byte-expecting MXG 
               12.12!  The above change using EXTOSET and deletion  of  
               the +4 protects for either length of IXFP record.        
   Thanks to Tom Kelman, SunTrust Service Corporation, USA.             
   Thanks to Rich Morris, Progressive, USA.                             
   Thanks to Brian Crow, British Telecom, WALES.                        
Change 13.025  Dataset TYPE72GO variable PGPEXCP is now kept for goal   
VMAC7072       mode.  Note that PGPIOTM is no longer calculatable for   
Apr 12, 1995   Goal Mode, because the IBM developers eliminated the     
               option to use IOTM instead of EXCP for RMF I/O units in  
               MVS/ESA 5.1 Goal Mode.                                   
   Thanks to Al Keeble, British Steel, ENGLAND.                         
Change 13.024  The +1 reserved field after the INPUT of CHIRECNT should 
VMACTMVS       be +4 instead.  This error trashed values in the TMVSCH  
Apr 12, 1995   (Channel Path I/O) dataset.                              
   Thanks to Nico Lenaerts, SAS Belgium, BELGIUM.                       
   Thanks to Wim Desmecht, DOLMEN Computer Applications NV/SA, BELGIUM. 
Change 13.023  Dataset CICFCR variable A17DSTYP was mislabeled, input as
FORMATS        numeric instead of character, and was not decoded.  Now, 
VMAC110        it is input as character, and new format $MGCICDT decodes
Apr 12, 1995   the Dataset Type as BSAM, ESDS, KSDS, RRDS, or PATH.     
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 13.022  Support for NETSPY Release 4.6 added, thanks to advance  
EXNSPYAL       documentation from LEGENT (that release won't ship until 
EXNSPYVT       summer).  Their changes were compatibly made.            
FORMATS       -Variable NSPYNETW (Network ID) was added to the header so
IMACNSPY       it is now kept in every MXG NSPYxxxx dataset.            
VMACNSPY      -Dataset NSPYAPPL.  New variable NSPNETAP (Network ID of  
Apr 12, 1995   the Application) was added.  Also, labels for variables  
Apr 14, 1995   APOTLN62 and APOTNN62 were corrected; these variables    
               measure bytes sent outbound on sessions where response   
               time is or is not monitored.                             
              -Dataset NSPYLU. New variables LUNETID, PCSESSID, VILUNAME
               were added, containing Network ID of this LU, Procedure  
               Correlation ID, and Virtual LU Name respectively.        
              -Dataset NSPYETHR. New variable NSPEDISD, Discarded       
               Datagrams was added.                                     
              -Additional changes were made that were not 4.6 related:  
              -New datasets NSPYALRT and NSPYVTAM are now created from  
               type X and B records; these records are not new with     
               Release 4.6, but had not been decoded previously. The    
               type X record has been tested with data, but there are   
               data values for NSPXRTYP and NSPXVART which are not shown
               in NETSPY documentation.  NSPYVTAM has not been data-ed! 
              -Corrections found during early code validation:          
                Test for LMI Station should have been OR instead of AND 
                  i.e., (NSPNSUBE='20'X OR NSPNSUBE='10'X) THEN DO;     
                Test for FRSE Station should have been OR vice AND:     
                  i.e., (NSPNSUBE='20'X OR NSPNSUBE='80'X) THEN DO;     
                Second input of REBYTCT with /*XRBY*/ was deleted.      
                Second REBYTCT in KEEP list for NSPYTIC3 was deleted.   
   Thanks to Rod Fernandes, Albert Heijn B.V., HOLLAND.                 
Change 13.021  NETSPY type N records subtypes 07 (TIC3) and 08 (Trans   
EXNSPYTP       Priority) were not correctly processed, causing Divide by
EXNSPYT3       zero with subtype 07 variable CYCLSPD.  The circumvention
IMACNSPY       is to change the line                                    
Apr 10, 1995       NCPELTYP=80X THEN DO;                                
               to read                                                  
                IF NSPNRECI='02' OR NCPELTYP=80X THEN DO;               
               The actual change was more extensive, creating two new   
               datasets, NSPYTIC3 and NSPYTPRI from the 07/08 subtypes. 
   Thanks to Rod Fernandes, Albert Heijn B.V., HOLLAND.                 
Change 13.020 -XMXGSUM failed if one of the input datasets did not exist
XMXGSUM        (as in the first time a TRND members is run) AND any of  
Apr 10, 1995   variables in the datasets did not exist. (VMXGSUM did not
               fail because it protected by creating missing variables  
               using the IF X=. THEN X=.; "compiler faker" statement.)  
               Logic corrected, and switches were added to help in the  
               debugging of XMXGSUM.                                    
              -KEEPIN macro needed to be UPCASE'dED.                    
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 13.019  The example SAS program has a "EXPECTING VARIABLE" error.
ACHAP35       -Insert                                                   
Apr  3, 1995     TODAY=TODAY();FORMAT TODAY DATE9.; DROP TODAY;         
               after the statement                                      
                 IF LASTDATE NE TODAY()-1 THEN DO;                      
              -Change LASTDATE's FORMAT from MMDDYY8. to DATE9. (to     
               be consistent with MXG's DATE conventions).              
              -Change "5X" to "+5".                                     
   Thanks to Bruce Hewson, Alcoa, AUSTRALIA.                            
Change 13.018  The %INCLUDE SOURCLIB(ASUMDB2S); should be deleted from  
JCLPDB6        the JCLPDB6 example, as there is no member ASUMDB2S.     
Apr  3, 1995   (There is a TRNDDB2S, but it uses the DB2STATS dataset   
               as its input, and DB2STATS is already an interval dataset
               so there is no need for an ASUMDB2S. All ASUMxxxx members
               create interval data from detail data.)                  
   Thanks to Bruce Hewson, Alcoa, AUSTRALIA.                            
Change 13.017  TYPE6 OUTDEVCE for a 4-digit Remote Number is R2030PR1,  
VMAC6          instead of the old Rnnn.PRm format. MXG parsed variable  
BUILDPDB       OUTDEVCE to set DEVICE=PRINTER or PUNCH, expecting the   
BUILDPD3       period delimiter, but the new format causes DEVICE to be 
BUILD005       blank, which causes lines that were formerly counted in  
Apr  3, 1995   variable PRINTLNE or PUNCHCRD to be counted in variable  
               EXTWTRLN instead, in both the TYPE6 dataset and in the   
               PDB.PRINT and PDB.JOBS datasets.                         
               In VMAC6, replace these four lines:                      
                IF PR=:'PR' THEN DEVICE='PRINTER';                      
                IF PR=:'PU' THEN DEVICE='PUNCH  ';                      
               with these six lines:                                    
                IF PR=:'PR' OR                                          
                (SUBSTR(OUTDEVCE,1,1)='R' AND SUBSTR(OUTDEVCE,6,2)='PR')
                THEN DEVICE='PRINTER';                                  
                ELSE IF PR=:'PU' OR                                     
                (SUBSTR(OUTDEVCE,1,1)='R' AND SUBSTR(OUTDEVCE,6,2)='PU')
                THEN DEVICE='PUNCH  ';                                  
                  Note: above text corrected on May 3, from 5,2 to 6,2. 
              -Variable TOTLINES, the sum of PRINTLNE,PUNCHCRD,EXTWTRLN,
               in the PDB.PRINT dataset was always correct.  However, I 
               now realize that TOTLINES should also be created in the  
               PDB.JOBS dataset, so the BUILDxxx members were changed to
               create and label variable TOTLINES into PDB.JOBS.        
   Thanks to Norbert Korsche, OMV, AUSTRIA.                             
Change 13.016  MXG 12.12 inadvertently changed some variables' FORMAT   
VMAC7072       from 5.1 to 5.0.  Line 102100 in VMAC7072 should be 5.1  
Apr  3, 1995   instead of 5. so that one decimal place of precision     
               will be printed.                                         
   Thanks to Joanne Turpie, Department of Labour, NEW ZEALAND.          
Change 13.015  MXG 12.12 and MXG 12.12A.  MONTHBLD sort error; the BY   
MONTHBLD       list for TYPE72 should be exchanged with the by list for 
Apr  3, 1995   TYPE72DL, and in the TYPE72DL sort list, replace PERFGRP 
               with SRVCLASS.  (Make MONTHBLD look like WEEKBLD!).      
   Thanks to John Mattson, National Medical Enterprises, USA.           
Change 13.014  Semicolon is missing at the end of SET PDB.APAFDOMA and  
ANALAPAF       the colon after PROC PRINTTO DATA=... should be a semi   
Mar 30, 1995   colon, and a PROC PRINTTO; was added as the last line to 
Apr 25, 1995   reset the print destination back to the log.             
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
Change 13.013  Tracking IMS DEDB (Data Entry Data Base) and MSDB (Main  
VMACIMSA       Storage Data Base) activity is accomplished with the IMS 
Mar 30, 1995   fastpath type 59x subcode 37x log record, but MXG only   
               output when SYNCRTYP='01'X.  In IMS 4.1 at least, most of
               the 59x37x records contain either 10x or 20x.  Since I   
               don't normally delete observations, and because the 4.1  
               documentation suggests the meaning of this field has been
               changed, I have changed the logic so all subcode 37 log  
               records will be output in IMS5937 dataset.               
   Thanks to Don Cleveland, Blue Cross Blue Shield of California, USA.  
Change 13.012  MXG now detects that fields have been EXCLUDED from your 
VMAC110        SMF type 110 CICS/ESA records, and prints error message  
Mar 30, 1995   telling you to run UTILCICS and use its output to update 
               member IMACEXCL for MXG to support records with EXCLUDE. 
   Thanks to George Scott, Rockwell International Corporation, USA.     
=====Changes thru 13.011 were in Early MXG 13.01 dated Apr  1, 1995=====
Change 13.011  Support for OS/400 Version 3.1.0 has INVALID DATA FOR ...
VMACQAPM       because I had no test data for validation until now!     
Mar 29, 1995  -Value of ASLEVEL starts with an unwanted blank.  Use the 
               COMPRESS() function to eliminate that blank, by changing:
               to read                                                  
               (because ASLEVEL is set from AS400VRN).                  
              -All tests of  IF ASLEVEL ... for value of '3' must be    
               changed to '3.1.0' and the one test for LE '2' must be   
               changed to LT '3.1.0'.                                   
              -Variables SWRES1,SPRES1,SMRES1,S6TRNT,SERES1,SARES1,     
               SBRES1,SXRES1, and SIRES1 input must be &PD.8 vice &PD.6.
              -Variables SIRES1 and SIRES2 are now SITRNT and SITRNS.   
              -Calculation of PCTIOPBY needs to be copied into the 3.1.0
              -Replace ELSE IF LENGTH=2364 OR LENGTH GE 2374 THEN DO;   
               with    ELSE IF ASLEVEL LE '2.2.0' THEN DO;              
              -Replace ELSE IF LENGTH=3090 THEN DO;                     
               with    ELSE IF ASLEVEL GE '3.1.0' THEN DO;              
              -Reverse DSTYPE and DSARM in the 3.1.0 input for QAPMDISK.
   Thanks to Len Marchant, Coca-Cola Enterprises, USA.                  
Change 13.010  Complete revision of support for HP's PCS for UNIX. There
EXHPAI..       are now separate members for the AIX, SUN, and HPUX UNIX 
EXHPSU..       systems, because not all metrics exist on all three UNIX,
EXHPUX..       and the HPPCS record formats are different on each:      
IMACHPSU         Suffix   For   Members                         Infile  
VMACHPAI       These datasets are created from HPPCS records:           
Mar 29, 1995            HPAIPROC                                        
               This change replaces the support in TYPEHPCS.            
               The HPAI and HPUX support has now been validated in real 
               production sites.  I am still trying to understand the   
               HP UX Disk data (HPUXDISK and HPUXDSK are similar but not
               the same, and have repeated Disk addresses in interval   
               data) and SUMMARY=5 caused a problem with the AIX data,  
               but both sites are happy and productivly measuring UNIX! 
   Thanks to Richard Clary, Entergy Services, Inc.                      
   Thanks to Lorenzo Wright, NCCI, USA.                                 
Change 13.009  DB2 dataset T102S145 variables QW1145OB-QWF145OB have the
VMAC102        DB value instead of the OB value.  Find all occurrences  
Mar 27, 1995   of QWX145DB, and change the DB to OB in the fifteen lines
               with QWn145OB on the left of the equality.               
   Thanks to Peter Durrant, National Australia Bank, AUSTRALIA.         
Change 13.008  Support for TCP/IP SMF record APAR PN69321-PN69322, which
VMACTCP        adds the API user's job name, APIJOBNM, to the API INIT  
Mar 27, 1995   and API TERM event records.  This support was coded based
               on the APAR description, but has not been data-tested.   
Change 13.007  NetSPY dataset NSPYNCP variables FBQ_PCT, FBH_PCT, and   
VMACNSPY       FBL_PCT can cause zero-divide error because MXG did not  
Mar 24, 1995   understand the new data added by LEGENT.                 
               The block of code that read:                             
                   FBQ_PCT =100*FREEBUFQ/MAXFREEB;                      
                   FBH_PCT =100*FREEBUFH/MAXFREEB;                      
                   FBL_PCT =100*FREEBUFL/MAXFREEB;                      
                   BUF_UTIL=100 - FBL_PCT;                              
               now reads:                                               
                   IF TFQBANCP GT 0 THEN DO;                            
                     FBQ_PCT =100*CFBQUELN/TFQBANCP;                    
                     FBH_PCT =100*FBQLNHWM/TFQBANCP;                    
                     FBL_PCT =100*FBQLNLWM/TFQBANCP;                    
                   ELSE IF MAXFREEB GT 0 THEN DO;                       
                     FBQ_PCT =100*FREEBUFQ/MAXFREEB;                    
                     FBH_PCT =100*FREEBUFH/MAXFREEB;                    
                     FBL_PCT =100*FREEBUFL/MAXFREEB;                    
                   BUF_UTIL=100 - FBL_PCT;                              
               See further corrections in Change 13.021.                
   Thanks to Roger Zimmerman, Kemper Service Company, USA.              
   Thanks to Mr. Dechamps, R & V Versicherung, GERMANY.                 
Change 13.006  Error: Variable SYSTEM not Found, because all occurrences
ANALTALO       of SYSTEM should be removed from ANALTALO - the analysis 
Mar 24, 1995   of tape allocation is across all systems, and variable   
               SYSTEM is not kept in either ASUMTALO or TRNDTALO.       
               This error was only in the MXG 12.12A revision.          
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 13.005  For 3990-6 in Basic Mode, variables CSCONF,CSAVAIL,      
VMACACHE       CSPINNED,CSOFFL,CNCONF,and CNPINNED were 1024 times too  
Mar 23, 1995   large; MXG converted K-bytes to bytes, but the conversion
               only applies of the controller is in Enhanced Mode.  Put 
               a DO group around the six lines containing "1024*":      
                 IF CSSTAT='....1111'B THEN DO;   ....   END;           
               to convert only for Enhanced Mode.                       
   Thanks to Jim Ritter, Blue Cross and Blue Shield of Oregon, USA.     
Change 13.004  MVS/ESA 5.1 TYPE74ST Structures dataset "INVALID DATA FOR
VMAC74         R744SATM ..." error message, plus missing observations.  
Mar 23, 1995  -The first structure was reread each time, and the 2nd-nth
text revised   structures were not output, because the second occurrence
May  3, 1995   of "INPUT @SMF744SO " should have been just "INPUT "     
               (note, this is the INPUT statement just after the        
                  DO _I_=1 TO SMF744SN; statement).                     
               Note that this change will increase the count of obs that
               are created in dataset TYPE74ST.                         
              -Variables R744SATM,R744SASQ,R744SSTM,R744SSSQ,R744SQTM,  
               R744SQSQ,R744SDTM, and R744SDSQ were documented by IBM as
               floating point, but they are actually binary numbers; the
               eight INPUT statements for these variables with          
                &RB.8.6 must be changed to &PIB.8.6                     
   Thanks to Scott Coryell, FBS Business Technology Center, USA.        
   Thanks to Steve Smith, BGS Systems, USA.                             
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.                
   Thanks to Harmuth Beckmann, Karstadt, AG, Germany                    
Change 13.003  If you changed the duration of RMFINTRV (by tailoring the
ANALPGNS       _DURSET macro defined in member IMACRMFI) this report did
Mar 23, 1995   not work, because it merges TYPE72 and RMFINTRV.  Now,   
               ANALPGNS uses _DURSET to force the STARTIME of the TYPE72
               data to match the STARTIME of RMFINTRV before the merge. 
               To make the correction, replace the line reading:        
                 PROC MEANS NOPRINT DATA=PDB.TYPE72;                    
               with these six lines:                                    
                 %INCLUDE SOURCLIB(IMACRMFI);                           
                 DATA TYPE72;                                           
                 SET PDB.TYPE72;                                        
                 DROP DATE HOUR MINUTE;                                 
                 PROC SORT DATA=TYPE72 %VMXGFOR ;                       
                 BY SYSTEM STARTIME PERFGRP;                            
                 PROC MEANS NOPRINT DATA=TYPE72;                        
   Thanks to Carol King-Baer, Vanderbuilt University Medical Ctr, USA.  
Change 13.002  DSNAME='UNKNOWN - CONCATENATED BPAM' was set by MXG for  
VMAC1415       all striped, multi-volume, and IAM datasets, when it was 
Mar 23, 1995   supposed to be set only for PDS datasets.  The correction
               is to change the ELSE DO; immediately preceding the      
                DSNAME='UNKNOWN...' statement to read:                  
               ELSE IF DSORG='PO' THEN DO;                              
   Thanks to Jim Zwier, Smith Barney, USA.                              
Change 13.001  Cosmetic changes.  In ANALINIT there was no TITLE3 for   
ANALINIT       REPORT2.  In UCICSCNT, variable BYTES is now formatted   
UCICSCNT       with MGBYTES (so 2.793E8 prints ast "266MB").            
Mar 19, 1995                                                            
   Thanks to Norbert Korsche, OMV, AUSTRIA.                             
===Changes thru 12.328 were included in MXG 12.12A dated Mar 20, 1995== 
   (but were not printed in MXG Newsletter TWENTY-SEVEN)                
LASTCHANGE: Version 13