I.  This is the Production Version MXG 8.9, dated May 1, 1991.          
 All Changes listed in this member have been installed in MXG 8.9.      
 MXG 8.9 is a replacement for MXG 8.8 (which had been shipped April 8). 
 The few minor errors that had been found in 8.8 were corrected, and the
 support for Fujitsu's FACOM PDL data was enhanced.                     
 This MXG 8.9 library contains 1370 members, 309,959  lines of code,    
  and builds 903 datasets with 31,868 variables documented in DOCVER!   
 Member NEWSLTRS contains all newsletters, including NINETEEN which     
  contains the Installation and Compatibility notes for MXG Version 8.  
 Changes thru 8.078 were printed in NEWSLETTER SEVENTEEN, Jul 10, 1990. 
 Changes thru 8.087 were contained in MXG PreRelease 8.2, Jul 20, 1990. 
 Changes thru 8.119 were contained in MXG PreRelease 8.3, Aug 26, 1990. 
 Changes thru 8.157 were contained in MXG PreRelease 8.4, Oct  9, 1990. 
 Changes thru 8.168 were contained in MXG PreRelease 8.5, Oct 27, 1990. 
 Changes thru 8.169 were contained in MXG PreRelease 8.6, Oct 27, 1990. 
 Changes thru 8.186 were printed in NEWSLETTER EIGHTEEN,  Dec  3, 1990. 
 Changes thru 8.203 were contained in MXG PreRelease 8.7, Dec 18, 1990. 
 Changes thru 8.283 were printed in NEWSLETTER NINETEEN,  Apr  8, 1991. 
 Changes thru 8.285 were contained in MXG Production 8.8, Apr  8, 1991. 
 Changes thru 8.305 were contained in MXG Production 8.9, May  1, 1991. 
 Critical Notes:                                                        
  MXG Compatibility Exposures in MXG Version 8 for Existing Users:      
   a.  The SAS options required by MXG for execution have changed.      
   b.  Execution under SAS 6.06 is different than under SAS 5.18.       
   c.  To create your PDB directly on tape, IMACCICS must be changed.   
   d.  If you have added additional SMF record processing to BUILDPDB,  
       and you still execute MXG under SAS 5.18, you may encounter a    
       SAS Version 5.18 Compiler Limit "344" error. BUILDPDB is larger. 
       See Change 7.038 in member CHANGE07 for 344 error circumvention. 
  Please note the new MANDATORY options for SAS 5.18 and 6.06 in the    
   SAS Notes in Newsletter NINETEEN. Member SASOPTV5 or CONFIG in this  
   library can be used to specify these options, but if you do not pay  
   attention to ALWAYS include the appropriate member, you will be      
   very frustrated by unresolved macro reference or 180 syntax errors!  
MXG Newsletter NINETEEN contains Installation Instructions that MUST be 
  complied with. (Contained in member NEWSLTRS).                        
SAS 6.06 is repaired, and with the March 1991 or later SAS Usage Notes  
 tape, it is now MXG's recommendation that you begin your migration     
 to SAS 6.06.  The March tape contains 100% pre-applied SAS ZAPs for    
 all SAS products, in IEBCOPY format, making SAS maintainance a snap!   
    Z6062141 is a critical ZAP that MUST be installed if you do not     
    have the March SAS tape installed.                                  
IV. Documentation MXG Software.                                         
Member CHANGES always contains the version number of MXG Software, and  
it lists changes that were installed in that version.  Several members  
named CHANGEnn are the contents of changes when that "nn" MXG version   
was created.  Details on enhancements will be found in the text of the  
Change description that made the enhancement (in those CHANGES and      
CHANGEnn members).  The CHANGE  members can also be scanned online (with
SPF BROWSE) to search for specific product name references (CICS,       
MVS/ESA, etc.).  The text of each Change identifies the member(s) that  
were altered or added by that change, and documentation (especially for 
new product support) is often found in comments at the beginning of     
those named members.                                                    
Member NEWSLTRS contains the text of all newsletters (up through the    
newsletter that accompanied that MXG release). You can search NEWSLTRS  
for product name or acronym to find the technical notes, APARs, etc.    
from all MXG newsletters.  (The Change Log of each Newsletter is not    
replicated in member NEWSLTRS, since that text will be in CHANGES).     
Member DOCVERnn is the "delta-documentation" (in abbreviated Chapter    
FORTY style) of only those variables and datasets that were changed     
between successive MXG Versions. There is a DOCVERnn "delta" member in  
the MXG library for each version.                                       
Penultimately, member DOCVER contains abbreviated Chapter FORTY format  
that documents all of the 31,868 variables from the 903 MXG data sets   
that can be created by that MXG Software Version (alphabetically by data
set name and variable name).                                            
Finally, MXG is a source distributed system, so you can often find your 
answer by BROWSE/EDIT of the source member, especially the VMAC...'s    
that actually create the data set, or ANAL....'s that analyze the MXG   
datasets. In many instance, the MXG Variable is the IBM or Vendor's     
documented field name. In other cases, the IBM field name is carried as 
a comment beside the MXG variable that contains that information.  In   
all cases, you should also have the Vendor's documentation of the       
particular data record you are using for analysis.                      
I.   MXG SOFTWARE Version status.                                       
  1. Production MXG Version is now MXG 8.8, dated April 8, 1991.        
 MXG Version 8.8 is shipped with NEWSLETTER NINETEEN to all sites, and  
 should be installed as soon as possible.  MXG 8.8 is mandatory for MXG 
 execution under SAS 6.06 or later, has MANY major enhancements, and has
 been testing at over 500 MXG sites.  MXG 8.8 WILL SAVE YOU TIME LATER, 
        Support for Amdahl MDF Performance Tool "MPT" SMF record.       
        Support for Amdahl MDFTRACK record.                             
        Support for Amdahl SPMS Cache DASD Controller SMF record.       
        Support for Boole IMF 2.6 (for IMS 3.1).                        
        Support for Cray COS 1.16 Operating System Data.                
        Support for DASD Space management with fast VTOC read program.  
        Support for DASD VTOCs and VVDSs for SMS variables.             
        Support for Hitachi processors MLPF.                            
        Support for IBM CICS/ESA 3.1.1 Monitor and Statistics Data.     
        Support for IBM DCOLLECT data records.                          
        Support for IBM DCOLLECT data records.                          
        Support for IBM HSM user SMF records, including deaccumulation. 
        Support for IBM Hiperbatch statistics in SMF type 14, 15, & 64. 
        Support for IBM IMS/ESA 3.1.                                    
        Support for IBM MVS/ESA 4.1.                                    
        Support for IBM MVS/ESA 4.2.                                    
        Support for IBM NETVIEW/NPM 1.4                                 
        Support for IBM RMF 4.1.2 (APAR OY29112, PTF UY90666).          
        Support for IBM RMF 4.2.0                                       
        Support for IBM RMF 4.2.1                                       
        Support for IBM SMS records (HSM, VVR, VVDS, SMS/DFP) enhanced. 
        Support for IBM VLF subtype 3 in SMF type 41.                   
        Support for IBM VM/ESA Version 1 Release 1.0 (ESA Feature).     
        Support for Landmark's Monitor for CICS Version 8.              
        Support for Landmark's TMON/MVS Version 1.1 and spanned records.
        Support for Oracle SMF record.                                  
        Support for RSD WSF2 version 3.3.4.                             
        Support for Tangram Arbiter Version 2.1.1.                      
        SPIN library fills due to JES2 maintenance circumvented.        
        CICS Shutdown Statistics no longer printed, only in SMF or MXG. 
        Documentation of Trend Data Base processing.                    
        Documentation of DB2 analysis.                                  
        Documentation of IMAC.... installation tailoring members.       
        Corrections in IMS Log measurement of INPQUETM/RESPNSTM.        
        NPM records from VM can be processed.                           
        Testing of MXG Version 8.8 under SAS 6.06 Version 6.06.         
        DB2 trace SQL reporting.                                        
        DB2 trace Transit Time reporting.                               
        BUILDPDB/3 Enhancements.                                        
        - SPIN library copied into PDB for backup and recovery          
        - ACCOUNTn and SACCTn added to SMFINTRV.                        
        - TYPE25 processing added for JES3.                             
        - PDB.SPUNJOBS allows reporting on jobs still in SPIN library.  
  MXG Software next-release agenda (subject to change):                 
        Validation of EXPLORE/VM, EPILOG/CICS, and restructure of the   
          AS400 support was not complete as this was written.           
        DB2 2.3 will be supported when available, late this year.       
        CICS 3.2 will be supported when available, later this year.     
        Landmark CICS Version 9 will be developed later this year.      
        Cray UNICOS is a future consideraton.                           
        VAX/VMS Account/SPM is a future consideration.                  
        JES3 Tape Mount Merge with TYPETMNT is a future consideration.  
  2. Recent IBM Announcements and their MXG support.                    
 IBM has made many major announcements relating to the System/390, the  
 ES/9000 family, and ESCON capabilities.  The following table identifies
 announced availability dates for the IBM product, and the corresponding
 Version/PreRelease of MXG required to support that IBM product.        
   Product Name                     Availability     MXG Version        
                                    Date              Required          
   VM/ESA  1.1.0 (370 Feature)      Oct 26, 1990.        7.7            
   RMF 4.1.2 (for MVS/ESA 3.1.3)    Sep  7, 1990.        8.8            
   RMF 4.2   (for MVS/ESA 4.1)      Oct 26, 1990.        8.8            
   MVS/ESA 4.1                      Oct 26, 1990.        8.8            
   MVS/ESA 4.2                      Mar 29, 1991.        8.8            
   RMF 4.2.1 (for MVS/ESA 4.2)      Mar 29, 1991.        8.8            
   VM/ESA  1.1.0 (ESA Feature)      Mar 29, 1991.        8.8            
   VM/ESA  1.1.1                    Dec 27, 1991.        ???            
IV.  SAS Notes.                                                         
  1. SAS 6.06 has been repaired, and can be safely used.                
   SAS 6.06 has finished its shakedown cruise, and shipyard repairs have
   been made, and the SAS Usage Note tape for March (or later) can now  
   be safely and easily installed.  (Starting in February, SAS now ships
   a load library on that tape which contains 100% pre-applied SAS ZAPs 
   for all SAS products. A SAS 6.07 will likely exist by year end, but  
   THERE IS NO LONGER ANY REASON TO WAIT.  ALL MXG-critical problems are
   fixed by the March tape.  Furthermore, SAS 5.18 sites that have made 
   extensions to BUILDPDB may find that their program is now too large  
   for the SAS 5.18 compiler (Error 344) which can only be eliminated   
   by execution under SAS 6.06 or later.                                
   See Change 7.038 in member CHANGE07 for 344 error circumvention.     
  2. SAS 6.06 and 5.18 options now REQUIRED by MXG 8.8.                 
     Please read this section carefully.  MXG execution will fail if you
     do not pay attention to these (potentially incompatible) changes:  
     MANDATORY OPTIONS with either SAS Version 5.18 or 6.06:            
     MANDATORY OPTIONS with SAS Version 5.18 that do not exist in 6.06: 
        MWORK=28000 GEN=0                                               
     MANDATORY OPTION with SAS Version 6.06 that does not exist in 5.18:
     RECOMMENDED Options with either SAS Version 5.18 or 6.06:          
        FIRSTOBS=1 OBS=MAX                                              
 SAS Version 5.18 requires the MACRO and MWORK=28000 options to be on   
 the EXEC statement, but all other mandatory/recommended options can be 
 specified in a SAS OPTIONS statement before your %INCLUDE statements:  
    a.)   //stepname EXEC SAS,OPTIONS='MACRO MWORK=28000'               
          //SYSIN     DD *                                              
              NOIMPLMAC MAUTOSOURCE SASAUTOS=SOURCLIB                   
              DQUOTE ERRORABEND                                         
              FIRSTOBS=1 OBS=MAX                                        
 However, so you (and I) don't have to type all those options each time 
 we run an MXG 8.8 program under SAS 5.18, member SASOPTV5 was built and
 it MUST be %INCLUDEd each time you execute under SAS 5.18:             
    b.)   //stepname EXEC SAS,OPTIONS='MACRO MWORK=28000'               
          //SYSIN     DD *                                              
            %INCLUDE SOURCLIB(SASOPTV5);                                
             ... the rest of your program ...                           
 For SAS Version 6.06+, options are supplied via an OPTIONS statement,  
 via the CONFIG DDname, or (as is now MXG's recommendation), via the    
 CONFIG= JCL parameter on the EXEC statement.  MXG 8.8 member CONFIG    
 contains the MXG-required options (CONFIG is a changed copy of BATCHXA 
 config member on the SAS distribution tape).  In previous Newsletters  
 and sample JCL, MXG had used the CONFIG DDname, but because different  
 sites have their JCL procedure DD statements in different sequences,   
 and since overrides have to be EXACTLY in the right order, it is now   
 clear that specifying CONFIG='MXG.SOURCLIB(CONFIG)' on your EXEC       
 statement is far safer to ensure the correct options are in effect:    
     // EXEC SAS606,TIME=10,                                            
     //             CONFIG='MXG.SOURCLIB(CONFIG)'                       
 These are the required options added to BATCHXA to create CONFIG:      
   FULLSTATS STIMER                                                     
 The MEMSIZE=12M parameter only works with MVS/XA and MVS/ESA. In almost
 all of my tests, 12M was sufficient.  The exceptions were when BUILDPDB
 was "tailored" and many additional SMF records were added to BUILDPDB  
 using the EXPDB... exit facility.  One large site with heavy user SMF  
 record additions to BUILDPDB reported they needed 24MB.  Since this is 
 all virtual storage, and above the line, and only during the "build"   
 phase in MXG processing, it should not cause a problem.  If you really 
 are limited in virtual storage (or are trying to execute MXG 8.8 with  
 SAS 6.06 under MVS/370) you can significantly reduce the virtual memory
 requirement by specifying BLKSIZE=4096 or even 1024. Small blocks will 
 reduce the virtual memory size, but can significantly increase the real
 CPU time, run time, I/O interrupts, and the amount of real memory used.
 See the paper on blocksize in Chapter 42 of the MXG Guide.             
  3. Format library differences between MVS SAS 6.06-5.18.              
   The MXG-built "SASLIB" formats are built by the first step of either 
   JCLTEST (for SAS 5.18) or JCLTEST6 (for SAS 6.06).                   
   Under SAS Version 5.18, formats are members of a PDS load library    
   which must be allocated as SPACE=(CYL,(3,1,99)).                     
   SAS 5.18 formats are always referenced using the DDname of SASLIB.   
   Under SAS Version 6.06, formats are members of a SAS data library,   
   which must be allocated as SPACE=(CYL,(1,1)). Note there is NOT      
   a third parameter in SPACE (for PDS directory blocks) because data   
   libraries in SAS 6.06 are physical sequential files.                 
   SAS 6.06 formats are always referenced using the DDname of LIBRARY.  
   In either version of SAS, the blocksize is set by the PROC FORMAT.   
   MXG always requires the appropriate DDname (SASLIB or LIBRARY).      
   You will fail with SAS 170 FORMAT NOT FOUND errors if you do not     
   have the correct format library pointed to by the correct DDname.    
  4. CMS-MXG Installation and Execution Considerations.                 
   a. CMS Format libraries are different.                               
   MXG Formats are created under SAS 6.06 by executing member FORMATS,  
   which creates a SAS Catalog that is named 0FORMATS LIBRARY (yes, the 
   first character is a numeric zero and the third an alphabetic "oh"). 
   Since this catalog contains all of the MXG Formats, the installation 
   instructions on page 120 of the MXG Supplement ("iv. Optionally copy 
   TEXT into TXTLIB") no longer apply. Also the SASLIB SASLIB option in 
   the example is not used to access SAS 6.06 Formats (although SASLIB  
   SASLIB is still valid in SAS 6.06 to access SAS 5.18-built formats). 
   As long as the 0FORMATS LIBRARY file built by member FORMATS is on   
   your first disk, SAS 6.06 will automatically find MXG formats there. 
   b. Virtual Storage requirement for MXG and SAS 6.06 with VM/370.     
   Executing under VM/370, MXG 8.8 needed a 10MB machine for BUILDPDB.  
   It is necessary to use the NOSSEG option to disable the "SAS Saved   
   Segment" to use addresses above 7MB, because the SAS Saved segment   
   begins at address 7MB!  The NOSSEG only applies to this machine,     
   and is needed only for the big virtual memory programs that build    
   lots of MXG datasets simultaneously (like VMACVMXA, VMACVMON, etc.). 
   The rest of MXG needs only a 4MB machine under VM/360.               
   The BLKSIZE is set small in the REXXTES6 exec, so that the virtual   
   storage required for the biggest MXG programs (BUILDPDB) would fit in
   the 10 meg I could get under VM/370, but you should experiment to use
   the largest BLKSIZE you can (and still compile the data step!). Small
   block size reduces only the virtual storage size; a large block size 
   will reduce CPU time, elapsed time, I/O interrupts, and will actually
   reduce the real memory required (always true for sequential access,  
   and building SAS datasets with MXG is a sequential process)!         
   Executing under VM/XA, MXG 8.8 was tested in a 16MB machine.         
   c. CMS SAS 6.06 ZAPs required.                                       
   SAS ZAPS Z6062068 (add) and Z6060508 (remove) appear to solve the    
   only serious CMS SAS 6.06 problem. Without the zap, CMS MACLIB       
   CONCAT concatenation fails, and you cannot read members from the     
   second concatenation.                                                
   d. CMS Testing Notes.                                                
   The REXX exec that was used for MXG testing with CMS SAS was printed 
   in MXG Newsleter EIGHTEEN and is contained in member REXXTST6.       
   Before the exec is invoked, you must first issue the DEFINE STOR 10M 
   command, followed by the IPL CMS command.  All datasets are sent to  
   your "T" disk, a temporary disk (199 cylinders in the exec) that will
   go away at logoff, unless you use the USER= SAS option, or PROC COPY.
   One Irritating problem in my testing of MXG with CMS is IBM's fault: 
   There is no CMS equivalent for "DD DUMMY" or NULLFILE.  Under MVS,   
   NULLFILE lets me syntax check all MXG code by dummying input files.  
   Under CMS I had to create pseudo records (but with RECFM=VB, instead 
   of RECFM=VBS) because of Another Irritating IBM feature:             
     CMS only partially supports the VBS record format:                 
        CMS only reads, and can not create/write/copy VBS files, and    
        CMS ABENDs if it gets an SMF record with LRECL=32760.           
   All this, to verify that ALL of MXG executes under SAS/CMS, for those
   sites who have only a SAS/CMS license and use MXG to process both the
   VM and SMF data under CMS.                                           
V.  Documentation of MXG Software.                                      
Member CHANGES always contains the version number of MXG Software, and  
it lists changes that were installed in that version.  Several members  
named CHANGEnn are the contents of changes when that "nn" MXG version   
was created.  Details on enhancements will be found in the text of the  
Change description that made the enhancement (in those CHANGES and      
CHANGEnn members).  The CHANGE  members can also be scanned online (with
SPF BROWSE) to search for specific product name references (CICS,       
MVS/ESA, etc.).  The text of each Change identifies the member(s) that  
were altered or added by that change, and documentation (especially for 
new product support) is often found in comments at the beginning of     
those named members.                                                    
Member NEWSLTRS contains the text of all newsletters (up through the    
newsletter that accompanied that MXG release). You can search NEWSLTRS  
for product name or acronym to find the technical notes, APARs, etc.    
from all MXG newsletters.  (The Change Log of each Newsletter is not    
replicated in member NEWSLTRS, since that text will be in CHANGES).     
Member DOCVERnn is the "delta-documentation" (in abbreviated Chapter    
FORTY style) of only those variables and datasets that were changed     
between successive MXG Versions. There is a DOCVERnn "delta" member in  
the MXG library for each version.                                       
Penultimately, member DOCVER contains abbreviated Chapter FORTY format  
that documents all of the 26,355 variables from the 791 MXG data sets   
that can be created by that MXG Software Version (alphabetically by data
set name and variable name).                                            
Finally, MXG is a source distributed system, so you can often find your 
answer by BROWSE/EDIT of the source member, especially the VMAC...'s    
that actually create the data set, or ANAL....'s that analyze the MXG   
datasets. In many instance, the MXG Variable is the IBM or Vendor's     
documented field name. In other cases, the IBM field name is carried as 
a comment beside the MXG variable that contains that information.  In   
all cases, you should also have the Vendor's documentation of the       
particular data record you are using for analysis.                      
VI.  MXG Version 8.8 Installation, Space, Compatibility, etc.           
   MXG Compatibility Exposures in MXG Version 8 for Existing Users:     
   a.  The SAS options required by MXG for execution have changed.      
   b.  Execution under SAS 6.06 is different than under SAS 5.18.       
   c.  To create your PDB directly on tape, IMACCICS must be changed.   
   d.  If you have added additional SMF record processing to BUILDPDB,  
       and you still execute MXG under SAS 5.18, you may encounter a    
       SAS Version 5.18 Compiler Limit "344" error. BUILDPDB is larger. 
       See Change 7.038 in member CHANGE07 for 344 error circumvention. 
Always read comments in the CHANGES member for compatibility issues, as 
well as for any last minute changes added after Newsletter composition. 
 1. Installation, re-installation,  and Space Requirements.             
The MXG Installation instructions were found in Chapter 32 of the MXG   
Supplement for both new installation and for version replacement, and   
those instructions, plus this discussion, is still usable. MXG SOURCLIB 
member INSTALL will be a complete rewrite of Installation Instructions  
for MXG, consolidating both Chapter 32s and these notes.  After you have
unloaded MXG 8.8 SOURCLIB and read these notes, read member INSTALL.    
This MXG tape is distributed as a Non-Labelled (NL) tape with a single  
file, DCB=RECFM=FB,LRECL=80,BLKSIZE=6160, that is actually an unloaded  
Partitioned Data Set containing 1370 members (and about 309,959 source  
lines) in IEBUPDTE format.                                              
Under MVS use the IEBUPDTE utility to build MXG.SOURCLIB PDS library.   
Under CMS use the TAPPDS   command to build SOURCLIB MACLIB library.    
Under MVS, MXG Version 8.8 MXG.SOURCLIB requires SPACE=(CYL,(40,1,299)) 
and DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440) on DASD.                      
Under CMS, approximately the same space (40 cylinders) will eventually  
required by the MXG SOURCLIB MACLIB, but during the CMS installation    
process you should have at least 100 free cylinders on your minidisk.   
MXG is tailored and extended by "Installation Macro" members (begin with
IMAC) and the "MXG Exit Facility" members (begin with EX) that are put  
in the installation's "USERID.SOURCLIB", the "MXG Tailoring" library,   
that is concatenated ahead of MXG.SOURCLIB in your SOURCLIB DDname:     
  //SOURCLIB DD DSN=USERID.SOURCLIB,DISP=SHR --> site tailoring (yours) 
  //         DD DSN=MXG.SOURCLIB,DISP=SHR    --> never changed  (mine)  
If this is an MXG re-install, there should already be a USERID.SOURCLIB.
If not, then allocate one using the same attributes as the MXG.SOURCLIB,
with SPACE=(CYL,(1,1,99)); for CMS create an equivalent MACLIB.         
Changes are made by copying the member from my library to your library. 
IMACXXXX members are self-documenting. IMACAAAA indexes all IMACs.      
You should create a member CHANGES in your USERID.SOURCLIB and record   
therein chronologically the MXG tailoring and installation history,     
just like the member CHANGES in MXG.SOURCLIB tracks MXG itself.         
You must now browse the members in USERID.SOURCLIB. If there are VMACs  
members, they will override the new MXG code, and should be removed now.
However, the real purpose of USERID.SOURCLIB is for normal tailoring of 
MXG for your site.  It is completely normal to have some members there: 
   If you have installed printed changes from an MXG Newsletter, you    
   would have copied member(s) from MXG.SOURCLIB into your site's       
   USERID.SOURCLIB and then made the changes therein, or alternatively, 
   you would have made a new PDS (we suggested the name MXG.CHANGLIB)   
   into which you put those in-between-version changes, concatenating   
   it between USERID.SOURCLIB and MXG.SOURCLIB until you receive this   
   new MXG Release.  In either case, if you made temporary changes,     
   now is the time to remove them.  Delete the changed VMACs members    
   from your USERID.SOURCLIB,  or remove the MXG.CHANGLIB from your     
   SOURCLIB concatenation.                                              
   If you have tailored IMAC.... members in your USERID.SOURCLIB, and   
   that member was changed by the new MXG Version, you must compare your
   member with the new MXG member, and retrofit your tailoring on the   
   new member.  These IMACs are of particular importance, if they exist:
   IMACPDB (options for BUILDPDB) has changed and must be retrofit.     
   IMACKEEP can cause syntax errors when MXG creates a new dataset from 
            an existing record. MXG 8.8 support for CICS/ESA adds new   
            CIC.... datasets in TYPE110/VMAC110 processing.  If IMACKEEP
            had been used to tailor the variables kept in CICSTRAN by   
            redefining the  _VAR110 macro (an appropriate use of this   
            tailoring exit), the new dataset will cause "Dataset not in 
            DATA statement" SAS error condition), unless you retrofit   
            your _VAR110 changes starting with MXG 8.8.                 
Whenever you install changes or test a new version of MXG (or even your 
own reports), be extra careful to look on the SAS log for any real error
conditions. Search for all occurrences of "ERROR:" and  "ERROR :"  and  
"UNINITIALIZED" and "NOT CATLGD", as they may indicate a serious error. 
A PROC PRINT and a PROC MEANS of each new MXG-built SAS dataset can help
you to understand their contents, and should be used to examine any     
unusually large, negative, or suspicious values.  Print all variables in
the data set, and read the variable's descriptions in Chapter FORTY.    
 Summary of critical actions to be taken in installing new version:     
     a. All VMAC.... members in your USERID.SOURCLIB must be examined   
        and, in general, must be deleted.                               
     b. All IMAC.... members in your USERID.SOURCLIB must be compared   
        with the new IMAC.... members, and if there is a difference,    
        you MUST start with this version's IMAC and retrofit your       
        installation's tailoring.                                       
     c. It is always wisest to PROC PRINT the first 50 observations of  
        important datasets, especially PDB.JOBS, which can be affected  
        by user tailoring in IMACPDB. A visual scan of that PROC PRINT  
        serves as an excellent validation of correct installation, and  
        will almost always detect any serious problems BEFORE you begin 
        your production MXG runs!  See the MXG utility UTILPRAL.        
VII. Change Log                                                         
==========================Changes Log=================================  
 You MUST read each Change description below to determine if a Change   
 will impact your installation.  All of these changes have been made    
 to this MXG Source Library.                                            
 Member CHANGES of the MXG SOURCLIB will always be more accurate than   
 the printed changes in a Newsletter, because the software is created   
 after the newsletter is sent to the printer!                           
 Member CHANGES always identifies the actual version and release of     
 MXG Software that is contained in that library.                        
 The actual code implementation of some changes in MXG SOURCLIB may be  
 different that described in the printed NEWSLETTER (which might have   
 printed only the easily installed, critical part of the correction).   
 Always read the comments at the beginning of each source member named  
 under the Change Number for impacting changes.                         
 Documentation of new datasets and variables, validation status, notes, 
 etc., are usually in comments in the source members.                   
Alphabetic INDEX of the most significant changes in MXG 8.8.            
  Member    Change   Description                                        
  ANALDB2R  8.030  DB2 Reporting from GTF data failed.                  
  ANALDB2R  8.031  DB2 Report PMLOK03 fails with 170 format error.      
  ANALDB2R  8.067  Report selection by time frame incorrect, minor.     
  ANALDB2R  8.084  DB2 Trace reporting with PDB=SMF avoids IMAC102.     
  ANALDB2R  8.121  PMAUD02/PMAUD03 request caused SAS 145/170 error.    
  ANALDB2R  8.280  Transit time and SQL reports added.                  
  ANALDBTR  8.249  DB2 Trace record pairing (SnnnSnnn) datasets built.  
  ANALDSET  8.077  ACCESS variable was not created, report failed.      
  ANALDSET  8.223  EXCP count deaccumulation from SMF 14/15 corrected.  
  ANALPRTR  8.146  New printer capacity analysis system.                
  AS400PDS  8.278  AS400 Records processing.                            
  ASMTMNT   8.070  MXG Tape Mount Monitor on 7.7 does support MVS/ESA.  
  ASMVTOC   8.117  Assembly program for Fast reading of DASD VTOCs.     
  ASUMCICS  8.023  Variable LENGTHs caused trunction.                   
  ASUMJOBS  8.230  Duplicate-Job-Name-Hold delay time estimated.        
  CICINTRV  8.182  New CICINTRV (CICS/ESA Interval Statistics) dataset. 
  CICINTRV  8.251  New CICEODRV (CICS/ESA Shutdown Statistics) dataset. 
  CONFIG    8.068  SAS 6.06 options member added to MXG library.        
  DIFFHSM   8.260  HSM User SMF Record de-accumulation.                 
  DOCDB2PM  8.112  Documentation of DB2PM-like reports in ANALDB2R.     
  DOCGRAF   8.274  SAS/GRAPH device support and MXG standards.          
  DOCTREND  8.113  Incompatible changes in MXG Trending implemented.    
  EXACFJR   8.047  ACF2 dataset ACF2JR may have deleted observations.   
  EXIDMTAS  8.105  IDMS Batch ACCOUNT1-3 fields decoded.                
  FMXGUCBL  8.009  Returns wrong value under SAS 5.18.                  
  GRAFDB2   8.275  SAS/GRAPH analysis of DB2 data.                      
  GRAFWORK  8.140  New graphic report of RMFINTRV workloads by hour.    
  IMACAAAA  8.281  Install aid describing which tailoring IMACs do what.
  IMACACCT  8.133  Safer/Easier user tailoring of kept Account fields.  
  IMACICDB  8.177  CICS/ESA 3.1 Transaction DBCTL counters/clocks.      
  JCLDASD   8.264  MXG DASD (VTOC,VVDS) Space Management example.       
  JCLTEST   8.001  Options MACRO DQUOTE MWORK=28K required by MXG 7.7.  
  JCLTEST   8.025  WORK.DIRMACR REQUIRES MORE SPACE error condition.    
  JCLTREND  8.058  PROC SORT added to avoid not-sorted condition.       
  MONTHBLD  8.095  Syntax error under SAS 6.06 circumvented.            
  MVS 4.1   8.167  Support for MVS/ESA SP Version 4.1 and RMF 4.2.      
  MVS 4.2   8.224  Support for MVS/ESA SP Version 4.2 and RMF 4.2.1     
  NPM       8.038  NPM records from VM can be processed.                
  PRODUCTS  8.282  Documents MXG support by "product name/acronym"      
  RMFINTRV  8.216  SIO counts in RMFINTRV missing.                      
  SAS 6.06  8.283  "Dataset is not sorted" SAS Error fixed by Z6062141. 
  SPIN      8.158  SPIN library fills when MVS/ESA replaces MVS/XA.     
  SPIN      8.172  SPIN library fills when MVS/ESA replaces MVS/XA.     
  SPUNJOBS  8.258  New PDB.SPUNJOBS dataset for SPIN reporting.         
  TRND72    8.143  Critical error, but only in PreRelease 8.3           
  TRNDDB2A  8.276  TRENDing for DB2ACCT into MXG Trend database.        
  TRNDDB2S  8.279  TRENDing for DB2STAT0 and DB2STAT1.                  
  TRNDRMFI  8.143  Critical error, but only in PreRelease 8.3.          
  UTILGETM  8.206  %MACRO on FILE statement CPU loop in SAS 6.06.       
  VMAC110   8.065  Support for new CICS 3.1.1 major changes.            
  VMAC1415  8.017  New hiperbatch counts added to SMF type 1415.        
  VMAC1415  8.137  Hiperbatch values non-zero when they should be zero. 
  VMAC23    8.208  SMF writer memory usage added (OY27449).             
  VMAC28    8.111  INPUT function error in NPM subtype 82.              
  VMAC28    8.148  Support for NPM Release 4 (NPM 1.4), SMF Type 28.    
  VMAC30    8.081  Support for APAR adding DDCONS() option.             
  VMAC30    8.082  Support for APAR adding PROCSTEP to type 30s.        
  VMAC30    8.208  NOT CATLG 2 or 7 now added (APAR OY24857) to 30s.    
  VMAC37    8.022  Variable KEEP, FORMATs.                              
  VMAC39    8.022  TYPE39EL conditionally created. ZDATE kept.          
  VMAC39    8.245  Support for NETMASTER V2.1.0 subtype 255.            
  VMAC41    8.015  New VLF counts in new subtype 3 SMF type 41.         
  VMAC42    8.136  STOPOVER on subtype 3 due to IBM error.              
  VMAC57    8.184  STOPOVER on type 57 (MVS 4.1 and MXG 8.5 only).      
  VMAC6     8.057  STOPOVER due to invalid external writer record.      
  VMAC60    8.128  STOPOVER on SMS NVR segment in type 60.              
  VMAC6156  8.027  STOPOVER error with ICF catalog record section.      
  VMAC6156  8.039  TYPE6156 VOLSER may be wrong for GDGs.               
  VMAC6156  8.214  "Invalid Third Argument to Function SUBSTR."         
  VMAC64    8.134  ACBMACRF fields individually decoded into variables. 
  VMAC64    8.219  TYPE64 hiperbatch variables missing.                 
  VMAC64    8.234A VSAM Hiperbatch counters corrected.                  
  VMAC7072  8.066  Support for new "SRCL" field in RMF Product section. 
  VMAC7072  8.187  Support for new Hitachi processors with MLPF.        
  VMAC7072  8.233  "Invalid data for MSOCOEFF..." correction.           
  VMAC7072  8.250  Support for PR/SM "overhead" measure APAR OY36668.   
  VMAC76    8.254  Support for OPPSI in SYSPLEX is traceable.           
  VMAC78    8.049  TYPE78CF only output if CHPID is online.             
  VMAC78    8.132  STOPOVER on type 78 subtype 3 with ES/9000 CPUs.     
  VMAC79    8.012  STOPOVER correction, support validation.             
  VMAC79    8.055  Formats and units corrections.                       
  VMACACF2  8.002  ACF2 SMF record caused STOPOVER.                     
  VMACACF2  8.090  Further validation of ACF2 SMF record.               
  VMACARB   8.190A Support for Arbiter Version 2.1.1 SMF records.       
  VMACCIMS  8.064  Support for IMF 2.6 (for IMS 3.1).                   
  VMACCMF   8.247  Support for Boole & Babbage CMF SMF record 240.      
  VMACCRAY  8.044  Support for CRAY COS operating system                
  VMACDB2   8.102  Distributed DB2 header added to DB2ACCT.             
  VMACDB2   8.225  Support for Landmark's The Monitor for DB2.          
  VMACDCOL  8.130  DCOLLECT enhancement for all seven records.          
  VMACDCOL  8.210  DCOLLECT migration/backup tape dates correction.     
  VMACDCOL  8.252  Support for DCOLLECT APAR OY37378.                   
  VMACDCOL  8.074  Support for SMS DCOLLECT data records.               
  VMACDMON  8.003  Uninitialized variable in ANALDMON caused.           
  VMACDMON  8.236  Support for LEGENT ASTEX replacement for DASDMON.    
  VMACEPMV  8.217  Support for Candle's EPILOG for MVS SMF Type 180.    
  VMACHSM   8.138  Preliminary support for HSM User SMF records.        
  VMACIDMS  8.005  IDMS SMF record variables format incorrect.          
  VMACIMS   8.006  IMS crashes required duplicate DTOKEN protection.    
  VMACIMS   8.098  Support for IMS/ESA 3.1 log records.                 
  VMACIMS   8.118  IMS Cold start support and logic changes.            
  VMACIMS   8.119  Correction of IMS Input Queue time.                  
  VMACIMS   8.176  IMS 3.1 DBCTL Thread Transactions Deleted.           
  VMACIMS   8.256  Support for IMS Wait-for-Input from IMS log.         
  VMACMDF   8.091  Amdahl's MDFTRACH SMF records corrected.             
  VMACMEMO  8.227  Support for MEMO European Electronic Mail SMF record.
  VMACMON8  8.161  Support for Landmark's Monitor for CICS Version 8.0  
  VMACMONI  8.036  CREATIME in MONITASK may have wrong date.            
  VMACMPT   8.173  Support for Amdahl's MDF Performance Tool            
  VMACNSPY  8.010  NETSPY 3.2 support was incomplete.                   
  VMACNSPY  8.043  Netspy 3.1 STOPOVER.                                 
  VMACNSPY  8.265  Support for NETSPY Release 4.0.                      
  VMACORAC  8.080  Support for Oracle SMF record.                       
  VMACROSC  8.028  ROSCOAUD contained zero observations always.         
  VMACSASU  8.157  SAS User Record changed under SAS 6.06.              
  VMACSESA  8.228  Support for Volvo's SESAME VTAM Monitor.             
  VMACSMF   8.013  DB2 read from GTF. Minor.                            
  VMACSPMS  8.149  Support for Amdahl's SPMS SMF (Cache DASD CU).       
  VMACSTC   8.092  STC 4400 Silo SMF record new subtype.                
  VMACSTC   8.194  STC 4400 Silo SMF record new subtype STOPOVER!       
  VMACSYNC  8.020  Invalid CPUTCBTM value detected.                     
  VMACSYNC  8.056  SIRECFM,SORECFM contain invalid data value.          
  VMACSYNC  8.123  Error (only in PreRelease 8.2) in TYPESYNC data.     
  VMACSYNC  8.211  SYNCSORT EW2903 detects SAS invoked Sort.            
  VMACSYNC  8.253  Support for SYNCSORT SCZ 33038 (Hiperspace stats).   
  VMACTMNT  8.033  Minor. Formats for DEVFROM/DEVTO.                    
  VMACTMVS  8.173  Protection for TMON/MVS Spanned Records              
  VMACTPNS  8.269  Support for TPNS log.                                
  VMACTPX   8.016  No observations in TPXINTRV.                         
  VMACTSOM  8.007  Missing STRTTIME in TSOMCMND.                        
  VMACTSOM  8.104  Invalid READTIME due to CA7 in TSO/MON record.       
  VMACTSOM  8.262  Support for LEGENT TSO/MON Release 5.3.0.            
  VMACVMON  8.037  Divide by zero.                                      
  VMACVMON  8.045  24APR90 became 02OCT89 when 202 day clock wrapped.   
  VMACVMON  8.106  VM Start Time off by 43 minutes on Aug 4, 1990.      
  VMACVMXA  8.004  OMEGAMON/VM creates invalid VM/XA VB records.        
  VMACVMXA  8.099  Many VM/XA PTFs altered Monitor records.             
  VMACVMXP  8.041  Minor EXPLORE/VM processing changes.                 
  VMACVPD   8.234  Support for NETVIEW's VPD aka NAM type 37 SMF data.  
  VMACVVDS  8.073  Validation of VVDS record created by ASMVVDS.        
  VMACWSF   8.100  Support for WSF archive product SMF.                 
  VMACX37   8.024  STOPX37, minor.                                      
  VMACZRB   8.054  RMF 4.1.1 caused STOPOVER.                           
  VMACZRB   8.079  Further validation of RMF III VSAM data.             
  VMACZRB   8.156  Further validation and reports.                      
  VMXGDOWN  8.273  Download to PC all datasets in a SAS library.        
  VMXGSUM   8.021  Missing variable initialization protection.          
  VMXGVTOC  8.018  OFFSET4E and SMS variables added.                    
  VMXGVTOC  8.032  Minor. RECFM should be $4.                           
  VMXGVTOC  8.075  Did not capture free space at beginning of volume.   
  VMXGVTOF  8.193  Build VMXGVTOC datasets from ASMVTOC records.        
  VMXGVTOR  8.009  Incorrect on 7.7, changes not propagated.            
  XMAC7072  8.014  ZDATE not kept in TYPE70PR and TYPE72MN              
  ZZZZZZZZ  8.011  Final member of MXG Library is named.                
Inverse chronological list of all Changes:                              
NEXTCHANGE: Version  8                                                72
--- Changes 8.305 thru 8.286 were added after MXG 8.8 was shipped ---   
Change 08.305  About 90 of the 32,000+ MXG variables had no labels, some
DOC            obsecure datetime variables were not formatted, and some 
Apr 30, 1991   variables were length 8 when they should have been only  
               4 bytes long, as discovered in the MXG QA jobstreams. All
               of these that could be corrected easily were!            
Change 08.304  Type 79 support (RMF Monitor II) has now been extended   
VMAC79         backwards to include RMF 3.5.1, and code was cleaned up  
Apr 29, 1991   with this significant user contribution.                 
   Thanks to Gordon Keehn, Fidelity Mutual Life Insurance Company, USA. 
Change 08.303  IMS Log processing temporary variable OENQTO should have 
TYPEIMS        been spelled OENQO in line 107900.                       
Apr 28, 1991                                                            
Change 08.302  VM/ESA variable CHANBYTM was stored 8 bytes, but can be  
VMACVMXA       stored in only 4 bytes.  Add CHANBYTM before DURATM in   
Apr 28, 1991   the LENGTH statement at the end of line 060650.          
Change 08.301  The New DB2 Trending members run fine the first week, but
TRNDDB2S       in subsequent runs, the three shifts in prior weeks data 
Apr 28, 1991   are summarized into a single observation for the entire  
               week (and SHIFT appears as Weekend).  The recalculation  
               of SHIFT in trending should have only been applied to the
               new PDB data, but bad logic caused the corruption.       
               This correction is for the DB2 Statistics trending member
               TRNDDB2S.  See Change 8.300 for DB2 Account trending.    
       1. The INCODE= argument at 005200:                               
       INCODE  =                                                  005200
         IF INWEEK THEN NUMINTVL = 1;                             005300
         OUTPUT MXGSUM1;                                          005500
         DATA MXGSUM1                                             005600
           TIMES                                                  005700
         SET MXGSUM1;                                             005900
         IF DURATM GT 0 THEN MINTIME=QWHSSTCK-DURATM;             006000
         ELSE MINTIME=.;                                          006100
         MAXTIME=QWHSSTCK;                                        006200
         QWHSSTCK=DATETIME;                                       006400
         OUTPUT MXGSUM1;                                          006500
         OUTPUT TIMES;,                                           006600
       Must be changed to read                                          
       INCODE  =                                                  005200
         IF INWEEK THEN DO;                                       005300
           NUMINTVL = 1;                                          005310
           IF DURATM GT 0 THEN MINTIME=QWHSSTCK-DURATM;           005320
           ELSE MINTIME=.;                                        005330
           MAXTIME=QWHSSTCK;                                      005340
           QWHSSTCK=DATETIME;                                     005360
         END;                                                     005370
         OUTPUT MXGSUM1;                                          005500
         DATA MXGSUM1                                             005600
           TIMES                                                  005700
         SET MXGSUM1;                                             005900
         QWHSSTCK=DATETIME;                                       006000
         OUTPUT MXGSUM1;                                          006500
         OUTPUT TIMES;,                                           006600
       2. The INCODE= argument at 012300:                               
      INCODE  =                                                   012300
        IF INWEEK THEN DO;                                        012400
          IF QXMSMIAP=. THEN QXMSMIAP=.;                          012500
          IF QXNSMIAP=. THEN QXNSMIAP=.;                          012600
        END;                                                      012800
        OUTPUT MXGSUM1;                                           012900
        DATA MXGSUM1                                              013000
          TIMES                                                   013100
        SET MXGSUM1;                                              013300
        IF DURATM GT 0 THEN MINTIME=QWHSSTCK-DURATM;              013400
        ELSE MINTIME=.;                                           013500
        MAXTIME=QWHSSTCK;                                         013600
        QWHSSTCK=DATETIME;                                        013800
        OUTPUT MXGSUM1;                                           013900
        OUTPUT TIMES;,                                            014000
       Must be changed to read                                          
      INCODE  =                                                   012300
        IF INWEEK THEN DO;                                        012400
          IF QXMSMIAP=. THEN QXMSMIAP=.;                          012500
          IF QXNSMIAP=. THEN QXNSMIAP=.;                          012600
          IF DURATM GT 0 THEN MINTIME=QWHSSTCK-DURATM;            012710
          ELSE MINTIME=.;                                         012720
          MAXTIME=QWHSSTCK;                                       012730
          QWHSSTCK=DATETIME;                                      012750
        END;                                                      012800
        OUTPUT MXGSUM1;                                           012900
        DATA MXGSUM1                                              013000
          TIMES                                                   013100
        SET MXGSUM1;                                              013300
        DATETIME=QWHSSTCK;                                        013800
        OUTPUT MXGSUM1;                                           013900
        OUTPUT TIMES;,                                            014000
Change 08.300  The New DB2 Account Trending has the same problem cited  
TRNDDB2A       for the DB2 Statistics Trending discussed above in the   
Apr 28, 1991   Change 8.301.                                            
               This correction involves also requires two parts:        
       1. The two lines, 012900-013000, now reading:                    
          MINTIME=QWACBSC;                                     012900   
          MAXTIME=QWACESC;                                     013000   
          Must be MOVEd to after 004900 (MOVE, not COPY!).              
       2. Then, the two lines, 019800-019000, now reading:              
          QWACESC=DATETIME;                                    019900   
          Must be MOVEd to after the lines just moved above.            
          The end result of these two moves will be:                    
        IF INWEEK THEN DO;                                     004900   
          MINTIME=QWACBSC;                                     004910   
          MAXTIME=QWACESC;                                     004920   
          QWACESC=DATETIME;                                    004940   
          IF QXMSMIAP = . THEN QXMSMIAP = .;                   005000   
Change 08.299  A "Variable Not Found" condition occurs with ANALDB2R if 
ANALDB2R       the Accounting Trace Long report was requested by itself.
Apr 28, 1991   (If any other report was also requested, this error does 
               not occur). Line 021820, which now reads:                
                    TIMES (KEEP=&SORT1 &SORT2 &SORT3 MINTIME MAXTIME);  
               was replaced by these 6 lines:                           
                  %IF &PMACC02 EQ YES %THEN %DO;                        
                    TIMES (KEEP=&SORT1 &SORT2 &SORT3 MINTIME MAXTIME);  
                  %ELSE %DO;                                            
                    TIMES (KEEP=DB2 MINTIME MAXTIME);                   
   Thanks to Ron Roberts, The Equitable Life Assurance Society, USA.    
Change 08.298  Fujitsu's AIM database manager (CICS-like) SMF records   
VMACAIM2       were in error.  The FILLER $CHAR2. in VMACAIM2 line 117  
VMACAIM3       was deleted. In VMACAIM3, NUMSCHMA is PIB2, not PIB4,    
Apr 28, 1991   and the DO loop in line 65 should be 1 to NUMSCHMA. These
               changes were received long ago and should have been in   
               earlier versions.  Thanks for the contributor; Bill has  
               provided them locally to Fujitsu sites down under!       
   Thanks to Bill Gibson, SAS Institute, AUSTRALIA.                     
Change 08.297  Support for Fujitsu's FACOM operating system now includes
TYPEPDL        both MSP and FSP data from PDL reports from PDA records. 
TESTFACO       Former "X-rated" member XPDLPDA is now renamed TYPEPDL,  
JCLTEST        and first-time-logic added for history datasets. The MXG 
JCLTEST6       test and cross reference jobstreams now separately test  
JCLUXREF       all FACOM support in step TESTFACO, so that all 25 of the
JCLUXRE6       RTYPExx datasets and histor datasets created by TYPEPDL  
Apr 19, 1991   are documented in DOCVER.  The coding changes that added 
               FSP support were a significant user contribution, and    
               also added decoding of several additional PDL reports.   
   Thanks to Ian Heaney, M.L.C., AUSTRALIA.                             
Change 08.296  VM/XA processing requires more work space that it should 
VMACVMXA       because the PROC DATASETS to delete VXUSEINT and VXACTINT
Apr 19, 1991   was commented out during testing.  Remove the comments in
               line 798400. Also, variable RDEVOFFL was not kept because
               it was misspelled as RDEFOFFL in the KEEP= list.         
   Thanks to Jay Cicardo, Southwestern Bell, USA.                       
Change 08.295  SAS datasets will be destroyed/corrupted by CASORT 6.6   
CASORT 6.6     if its ATTRLS Option (system wide, set when CASORT was   
Apr 18, 1991   installed) was specified ATTRLS=YES. Instead, you MUST   
               have ATTRLS=NO. With ATTRLS=YES, CASORT will RLSE sort   
               work space after each invoked SORT, which somehow causes 
               SAS to think all records were deleted by NODUP, and the  
               output dataset built by the PROC SORT contains either    
               zero or one observation!  If there is one observation,   
               all of its numeric variables are zero or missing, which  
               happened with RMFINTRV, and the garbaged dates/times     
               put messages on the SAS log, but then caused the TREND   
               database to be overwritten with only one observation!    
               CA says the problem is known to affect ANY invoked sort, 
               not just SAS invoked sorts. SAS tracking 180027 is open, 
               to determine why SAS built the corrupted 1-observation   
               data set, and I will investigate how I can make the trend
               logic more robust, but you MUST specify ATTRLS=NO to fix 
               the real problem with CASORT 6.6.                        
   Thanks to Arnold Ruterbories, Standard Insurance Company, USA.       
Change 08.294  Additional SAS 6.06 error conditions have been reported. 
SAS 6.06     a.VMXGVTOC will fail "VARIABLE VOLSER NOT FOUND", if you   
Apr 18, 1991   installed SAS ZAPs Z6061834 or Z6062315, due to an error 
               introduced by those zaps (the "autovariable" VOLSER was  
               lost when those zaps were installed). SAS ZAP Z6062674   
               now exists to correct their error and is required. It is 
               not on the April SAS Notes tape, but can be downloaded.  
             b.SAS will ABEND with an 0C4 in SMS sites, if the datasets 
               in the CONFIG DD concatenation are SMS-managed datasets, 
               if the CONFIG= JCL parameter is used.  (If you used the  
               prior MXG technique of actually overriding the CONFIG DD,
               this abend does not occur, but then you must be careful  
               to order the JCL override, thus the CONFIG= parameter was
               recommended instead of overriding the CONFIG DD!) The SAS
               error is fixed by ZAP Z6062264, which is required if your
               site has SMS-managed datasets for SAS and or MXG.        
Change 08.293 -IBM's Cache DASD RMF Reporter "CRR" Product's SMF records
ANALCACH       status bits were changed (don't know when!) and count of 
FORMATS        sequential-detected sequential read requests was added.  
VMACACHE       Variables have been dropped from CACHE90. Flag variables 
               CSSD,CSFC,CSPP) are replaced by format-decoded variables,
               and the caching/fastwrite/pinning/etc. status variables  
               from the CSVOL segment (which apply only to that CSVOL,  
               and not to the VOLUME being reported) are not kept. IBM's
               3990 Storage Control Reference, GA32-0099-3, pp 171-177, 
               Chapter 4, Command Descriptions, describes the statistics
               captured much better than the CRR manual (SH20-6295-4).  
               CACHE90 variable FWDC, the count of DASD fast write ops  
               that were forced to access DASD directly (because the    
               nonvolatile storage was insufficient), may be important  
               in recognizing this performance degredation.             
              -The Cache analysis program ANALCACH was revised to now   
               CACHE90 (instead of the CACHETY data from 3880's) along  
               with RMF TYPE74 data for sample reports.                 
   Thanks to Victor Heiner, Northwest Airlines, USA.                    
   Thanks to Alfred Holtz, Dun and Bradstreet, USA.                     
Change 08.292  Boole & Babbage CICS Manager product causes MXG messages 
VMAC110        "Unexpected Statistics Subtype" with STID=200 to 210, due
Apr 16, 1991   to that product's pseudo type 110 statistics records. The
               additional records will be supported in the future.      
   Thanks to Paul Dean, IBM Hursley, ENGLAND.                           
Change 08.291  Variables EXCPTOTL and IOTMTOTL should have been in the  
ASUMJOBS       KEEP= list for dataset BATCHJOB (added by Change 8.230   
Apr 16, 1991   for detect duplicate job hold enhancement).              
   Thanks to Elliot Weitzman, Oryx Energy Company, USA.                 
Change 08.290  MVS Account Fields with length=0 create MXG error message
Apr 16, 1991   account fields after the zero length field are skipped.  
               If the "n" in the message is greater than the number of  
               Account Fields you are KEEPing, there is no impact on the
               datasets built by MXG.  The enhancement in Change 8.267  
               (to prevent STOPOVER if account length were wrong) failed
               to allow for a zero length field.  The nine lines that   
               now read "ELSE DO;" must be change to read:              
                                                      (line number)     
                  ELSE IF LENACCT1 GT 0 THEN DO;          012300        
                  ELSE IF LENACCT2 GT 0 THEN DO;          014000        
                  ELSE IF LENACCT3 GT 0 THEN DO;          015700        
                  ELSE IF LENACCT4 GT 0 THEN DO;          017400        
                  ELSE IF LENACCT5 GT 0 THEN DO;          019100        
                  ELSE IF LENACCT6 GT 0 THEN DO;          020800        
                  ELSE IF LENACCT7 GT 0 THEN DO;          022500        
                  ELSE IF LENACCT8 GT 0 THEN DO;          024200        
                  ELSE IF LENACCT9 GT 0 THEN DO;          025900        
               This error occurs ONLY if your IMACACCT was tailored from
               MXG version 8.8.                                         
   Thanks to Mike Hoevenaars, Toyota Canada, CANADA.                    
Change 08.289  ACF2 Release 5.2 added four variables (ACPMFCPM,ACPMFCJN,
VMACACF2       ACPMFCJI, and ACPMFCLI to the ACF2PR dataset & variables 
Apr 16, 1991   ACVMFLRT, ACFMFTRT, and ACVMFTRS to ACF2VR dataset.      
   Thanks to Dave Greene, Kwasha Lipton, USA.                           
Change 08.288  Format MGSYNDB for SYNCSORT value 2 should have formatted
FORMATS        to 2:3390 instead of the (now nonexistent) 2:3330 device,
Apr 16, 1991   and values 16 and 24 were added to ACF2 formats MGACFDA  
               and MGACFDB respectively.                                
   Thanks to Dave Greene, Kwasha Lipton, USA.                           
Change 08.287  Member VMACEPIL on the original MXG 8.8 tape was wrong.  
TESTOTHR       Instead of the complete revision of support for Candle's 
VMACEPIL       EPILOG/CICS, VMACEPIL contained a copy of member CHANGES!
Apr 16, 1991   This error also caused JCLTEST step TESTOTHR to fail.    
               This change simply puts back VMACEPIL in VMACEPIL!       
   Thanks to Rex Pommier, St. Lukes Hospital Fargo, USA.                
Change 08.286  IEBUPDTE unload of MXG 8.8 ends with condition code four,
V88-tape       prints "IEB823I SYSIN HAS NO RECORDS for AS400PDS", and  
Apr 11, 1991   MXG.SOURCLIB contains 1394 members instead of the stated 
               1367 members, but this warning has no real impact on the 
               MXG.SOURCLIB data set.  The warning occurs because member
               AS400PDS itself was an IEBUPDTE input for a 28-member PDS
               with preliminary support for AS400 data.  Your unload saw
               those "./" statements and created the 28 members starting
               with @@@....., AS400..., ICEGENER, and QAPM.... directly 
               in your MXG.SOURCLIB, and then there were no lines in the
               member AS400PDS, causing the warning!  I had intended to 
               change the "./" to "xy" in AS400PDS to avoid this warning
               but failed to do so. Sorry for all those phone calls and 
               faxes that would have been avoided by better testing.    
   Thanks to Ken Thomas, Maryland Casualty Company, USA.                
--Changes thru 8.285 are included in MXG Version 8.8 dated Apr 8, 1991- 
Change 08.285  A surprising discovery by looking at DCOLLECT data. DASD 
VMACDCOL       capacity stated by IBM (eg, 630MB for a 3380 volume) is  
Apr  4, 1991   NOT 630 Megabytes, but instead is 630 "Million bytes"!   
               A 3380 (47476*15*885 = 630,243,900 bytes) actually stores
               only 601MB (megabytes)!  So much for IBM consistency in  
               use of "MB".  Because VMACDCOL assumed MB was megabytes, 
               it multiplied by 1024 to convert to bytes for MGBYTES, so
               this change replaced all occurrences of 1024 with 1000.  
               The unknown UK user also noted that the test that set the
               values of DCVEVLCP, DCVEBYTK, and DCVELSPC should have   
               tested DCVERROR instead of DCVFLAG1.                     
   Thanks to Derek Cespedes, Florida Power and Light, USA.              
   Thanks to ???, ???, ENGLAND.                                         
Change 08.284  Major revision of support for EPILOG/CICS was finished   
EXEPCIJC       after Newsletter NINETEEN went to the printer. The change
EXEPCISF       is INCOMPATIBLE with previous MXG EPILOG/CICS support, as
EXEPCISI       the TYPEEPIL dataset no longer is created. Instead, these
               five new MXG datasets are created by TYPEEPIL execution: 
EXEPCISU          EPILCITR  - Transaction data - most important.        
EXEPCITR          EPILCISU  - Startup.                                  
TESTOTHR          EPILCISF  - Suffix.                                   
VMACEPIL          EPILCIJC  - JCL Parameters                            
Apr  4, 1991      EPILCISI  - SIT Parameters                            
               Each dataset keeps only the appropriate variables.       
               VMACEPIL code was restructured, with a separate section  
               for Releases 450-451, which is different from 440 format.
               Only EPILCITR records were available for testing from 450
               but there is no change in the format when you install 451
               so I anticipate no problems. While the (archaic) 440 code
               might need work, Candle solves 440 problems by sending a 
               copy of 451!                                             
   Thanks to Richard Evans, Mervyn's, USA.                              
==Changes thru 8.283 were printed in MXG Newsletter NINETEEN==========  
Change 08.283  SAS 6.06 errors like "Data set is not sorted" that were  
SAS 6.06       discussed under Usage Note 1000 were finally resolved on 
Mar 29, 1991   the March SAS Usage Notes Tape by the inclusion of SAS's 
               ZAP Z6062141.  If you do not have the March SAS 6.06 tape
               installed (it's now a 100% pre-applied ZAPed loadlib in  
               IEBCOPY format), you MUST at least download and install  
Change 08.282  This new member documents all of the "Products" that MXG 
PRODUCTS       supports. PRODUCTS identifies which product versions are 
Mar 29, 1991   supported by which version of MXG and the member name of 
               the MXG member(s) that processes that product's records. 
               Use your online editor to search for the product name to 
               find the entry for a specific product, which will contain
               the names of MXG datasets created, their exit names, etc.
               Suggestions for enhancement are most welcome.            
Change 08.281  This new member documents the IMAC.... exit members which
IMACAAAA       tailor MXG for your site.  Some IMACs (IMACSHFT,IMACWORK)
Mar 29, 1991   should always be tailored, but most IMACs are not needed 
               to be changed by most sites.  This new member groups the 
               different purpose IMACs together to make it easier for an
               installer to know which IMACs affect their site. The IMAC
               itself contains self-documenting comments for its use.   
Change 08.280  Transit time reports from DB2 trace are now in ANALDB2R. 
ANALDB2R       Selection criteria is more robust and is uniform across  
Mar 29, 1991   all reports, and can include SHIFT or DB2 Trace Number.  
               ANALDB2R reports can be produced from either the PDB or  
               the new TRNDDB2x data (See Changes 8.276 and 8.279) for  
               Accounting and Statistics reports. Data from the TREND   
               databases can be input along with data from your daily   
               PDB to compare history with current with PDB=PDB TREND   
               syntax to cause ANALDB2R to combine both data sources.   
               Transit time and SQL trace activity analysis were added  
               by ANALDBTR (Change 2.249) which creates the trace-pair  
               data sets needed.  ANALDB2R now will use those data for  
               these new reports, and for the I/O Activity Summary, and 
               eventually all DB2 trace reports will be restructured to 
               use the ANALDBTR trace-pairs.                            
Change 08.279  Summarization of DB2STAT0 and DB2STAT1 statistics data   
TRNDDB2S       into the TREND database uses PDB.DB2STAT0 and DB2STAT1   
Mar 29, 1991   as input to create TREND.TRNDDB20 and TREND.TRNDDB21.    
               Summarization is by WEEK by SHIFT within SYSTEM, and DB2 
               Sub-System ID, QWHSSSID. Note that Version 8.8 ANALDB2R  
               can use these new TREND datasets as input for reports.   
               See DOCTREND for the structure of MXG trending.          
Change 08.278  This significant user contribution for AS400 Records will
AS400PDS       eventually be a fully supported part of MXG, but time ran
Mar 28, 1991   out for development and testing.  This member is actually
               a 27-member unloaded PDS, and is provided so that leading
               edge sites who would otherwise have had to start from the
               beginning, may find this a starting point for AS400 data.
               It should be regarded as preliminary, unverified, and is 
               certain to change in structure. Your input is welcome.   
   Thanks to Carolyn Barnett, Sentara Health System, USA.               
Change 08.277  Variables INAVG and READYAVG were added to the RMFINTRV  
RMFINTRV       dataset. I had actually planned to do further revisions  
Mar 28, 1991   to RMFINTRV for MVS/ESA, but ran out of time!            
   Thanks to ???, ???, EUROPE.                                          
Change 08.276  Summarization of DB2ACCT dataset into the Trend Database.
TRNDDB2A       Input is weekly PDB.DB2ACCT into TREND.TRNDDB2A. The time
Mar 28, 1991   summarization is for each shift for each week within the 
               SYSTEM SHIFT QWHSSSID QWHCPLAN QWHCCN values.            
               Both ANALDB2R and/or GRAFDB2 will produce Accounting     
               Detail and Summary reports and graphs from TRNDDB2A.     
               See documentation in the member itself.                  
Change 08.275  Graphical analysis of DB2 data from MXG PDB or TREND     
GRAFDB2        data libraries (three sets of graphs) can be produced    
Mar 28, 1991   and a graphic catalog (default DDname of PDB) is built.  
               See comments in member for documentation.                
Change 08.274  Documentation of the techniques implemented in MXG use   
DOCGRAF        of SAS/GRAPH, and briefly describes the MXG GRAF....     
Mar 28, 1991   members and the graphic catalog they produce.            
Change 08.273  New style macro generates the code needed to download    
VMXGDOWN       all of the datasets contained in a single SAS data       
Mar 28, 1991   library. This utility is the logical equivalent of:      
                  PROC DOWNLOAD DATA=PDB._ALL_ OUT=PCPDB;               
               which does not exist.                                    
   Thanks to Chuck Hopf, Hopf Consulting, USA.                          
Change 08.272  The MXG utility UTILPRAL will print all datasets in a    
UTILPRAL       SAS data library. This change simplifies that process    
VMXGPRAL       by executing as a single step with no external DD.       
Mar 28, 1991                                                            
   Thanks to Chuck Hopf, Hopf Consulting, USA.                          
Change 08.271  Graphics table added samples for IBM3825 and IBM3827     
VMXGGOPT       devices (but only in portrait mode; rotating requires the
Mar 28, 1991   use of templates, and is non-trivial). See SAS Technical 
               A SAS note xxxx that discusses rotation. Also, standard  
               PATTERN/SYMBOL statements were added for consistency so  
               they can (eventually) be used in all GRAF.... members.   
Change 08.270  Printer analysis logic for NPRO was corrected and support
ANALPRTR       for XEROX XPAF CPU calculation (based on testing of early
ASUMPRTR       releases of XPAF) was added. The default value for NPRO  
IMACPRTR       is now zero, since only the (dead?) 3800-3 used NPRO.    
Mar 28, 1991   For sheet printers, PAGECNT is equal to the number of    
               physical sheets that went through the printer; SHEETPRN  
               is the number of sides printed.  For the printer THRUPUT 
               calculations, SHEETPRN is now used instead of PAGECNT if 
               SHEETPRN is non-zero (using PAGECNT, duplexing made the  
               printer's thruput half-speed)!                           
   Thanks to Chuck Hopf, Hopf Consulting, USA.                          
Change 08.269  Preliminary support for log produced by IBM's TPNS. Its  
TYPETPNS       pretty simple, but there is not a whole lot of data.     
Mar 27, 1991                                                            
Change 08.268  Because it was not always clear on the log when %VMXGSUMs
VMXGSUM        invocation actually began, a RUN; statement was inserted 
Mar 27, 1991   after line 019500.                                       
Change 08.267  Protection for invalid accounting field lengths has been 
IMACACCT       enhanced. The total length of accounting data was always 
Mar 27, 1991   compared with record length, but individual account field
               lengths were not verified, until now. A site with a badly
               corrupted type 30 record (due to an error in their SMF   
               exit code) ABEMDED with a STOPOVER. With this change, the
               unnecessary STOPOVER is avoided, the bad record detected,
               and an MXG message is now printed on the log. The site   
               chooses to remain unknown!                               
Change 08.266  Thanks for IBM's excellent vendor support in the CICS/ESA
Mar 27, 1991   Early Test Program, we can confirm that not only will    
               MXG Version 8.8 correctly process CICS/ESA 3.1 SMF data, 
               but also that it will not fail with CICS/ESA 3.2 records!
Change 08.265  Support for NETSPY Release 4.0 was added by this change. 
EXNSPYAC       Four new variables were added to the NSPYAPPL dataset,   
VMACNSPY       eight new variables were added to the NSPYVIRT dataset,  
Mar 26, 1991   and the new NSPYACCT data set with 68 variables for the  
               Network Accounting type 'C' NETSPY record is created.    
   Thanks to Richard Warren, Solomon, Inc, USA.                         
Change 08.264  This change summarizes and documents the MXG DASD space  
ANALVVDS       management facilities that have been enhanced in 8.8.    
ASMVVDS        Member JCLDASD/JCLDASD6 contains the sample JCL that is  
FMXGUCBL       suggested to allow you to process your VTOCs and VVDS.   
IMACVVDS       Comments in the MXG members elaborate on each of the     
JCLDASD        programs discussed. Note that "ASM" members are written  
TYPEVVDS       in IBM Assembler and must be assembled and link edited   
VMXGVTOC       before they can be used.  Sites which have installed     
VMXGVTOF       DFP 3.2 or later should first look at IBM's DCOLLECT     
VMXGVTOR       utility (supported by MXG's TYPEDCOL member) to measure  
Mar 26, 1991   their DASD farm, as it may be adequate for most sites.   
               The VTOC/VVDS processing described below gives more data 
               that is presently provided by IBM's DCOLLECT.            
             1. VTOC Processing                                         
               Original VTOC processing in MXG consisted of these three 
               members, which in concert would dynamically allocate all 
               DASD volumes that were online, read each VTOC, and build 
               three data sets describing VTOCs, Datasets, and extents  
               in your DASD farm:                                       
                  FMXGUCBL - a function for dynamic allocation, used by 
                  VMXGVTOR - a %macro that interated the execution of   
                  VMXGVTOC - a SAS program that read a single VTOC      
               Execution of this sequence created the three MXG datasets
               to be used for DASD space management, chargeback, etc:   
                  VTOCINFO - One obs per VTOC, describes the volume     
                  VTOCLIST - One obs per dataset, describes each dataset
                  VTOCMAP  - One obs per extent, for pack analysis.     
               Large sites (over 500 volumes) found that VTOC reading   
               with SAS itself, while functional, took scores of seconds
               per VTOC.  Philip Morris wrote their own ASM program and 
               graciously contributed it to MXG, and cut the VTOC read  
               time to seconds per VTOC!  You need only to assemble and 
               link edit the ASM program:                               
                   ASMVTOC  - "Fast" VTOC reading assembly program      
               and then execute PGM=ASMVTOC to read all VTOCs and write 
               a single flat file to the VTOCDUMP DDname, which is then 
               read by the MXG SAS %macro program %VMXGVTOF in member   
                   VMXGVTOF - Reads VTOCDUMP file created by ASMVTOC and
                              create three VTOC.... data sets.          
                 (The example JCL in JCLDASD/JCLDASD6 then copies the   
                  three VTOC.... datasets to the SAS data library that  
                  is pointed to by the MXGDASD DDname.)                 
               This is the recommended method for reading all VTOCs.    
             2. VVDS Processing.                                        
               Originally VVDS described only VSAM dataspace on a volume
               but with SMS, the VVDS contains an entry for both VSAM   
               (in a VVR in the VVDS), and for non-VSAM (in a NVR in the
               VVDS).  Keeping track of VSAM data spaces on a volume was
               the primary reason that the MXG Assembly program         
                   ASMVVDS - read all VVDS and create a user SMF record 
               which was then processed by MXG members                  
                   IMACVVDS - identifies the SMF record number you chose
                   TYPEVVDS - to read the SMF VVDS records and create   
                              the MXG dataset of of the same name with  
                              an obs for each entry in the VVDS.        
               Additional idiosyncrasies in VVDS entries were found and 
               corrected in analysis which is now inclued in member     
                   ANALVVDS - executes IMACVVDS/TYPEVVDS, and adds logic
                              to "clean-up" the VVDSf data.             
               Member ANALVVDS creates these two MXG datasets for VVDS: 
                   TYPEVVDS - One obs per VVR, cleaned up               
                   VSAM     - One obs per VSAM data set.                
               The two datasets are written to the DDname of MXGVVDS.   
Change 08.263  Three variables added by DB2 2.2 were not deaccumulated. 
DIFFDB2        Variable Q3STRDON in DB2STAT0 and variables QTAUCCH and  
Mar 26, 1991   QXMIAP in DB2STAT1 are now DIF()'d in DIFFDB2.           
   Thanks to Siegfried Trantes, Gothaer Versicherungsbank VVAG, GERMANY.
Change 08.262  Support for TSO/MON Release 5.3.0 has been added and has 
EXTSODRU       been tested, due to excellent support from LEGENT; not   
VMACTSOM       only did this vendor provide documentation in advance of 
Mar 25, 1991   the general availability of the product, but also sample 
               SMF records were provided for testing!  The major change 
               is the new TSOMDRU Dynamic Resource Utilization dataset, 
               which allows you to identify the most resource intensive 
               commands so that you can then enable detail recording for
               those commands.  Minor changes included new fields in the
               TSOMSYST and TSOMCALL datasets containing Hiperspace page
               in and page out counts.                                  
Change 08.261  TSO/MON system records are restricted to 4089 bytes. When
VMACTSOM       more users are logged on than fit in 4089 bytes, TSO/MON 
Mar 25, 1991   writes multiple records, which MXG recognized, but the   
               INTRVTM value was incorrect in these "split" records.    
               Additionally, the test for INTRVTM=0 as criteria for the 
               first of a split record was changed to TSMSSEGN=1.       
   Thanks to Richard Morris, Progressive Companies, USA.                
Change 08.260  Many variables in the HSM user SMF record accumulate from
DIFFHSM        record to record.  The new DIFFHSM provides the logic to 
TYPEHSM        de-accumulate these ascending values with the SAS DIF()  
VMACHSM        function.  For the first occurrence of a "BY Group" value
Mar 25, 1991   or if values between adjacent observations decrease, MXG 
               sets the DIF()'ed variable to a missing value.  This new 
               algorithm has been tested, but only with a few sets of   
               HSM SMF data records. If you have added HSM SMF record   
               processing to BUILDPDB, you must also %INCLUDE the new   
               member DIFFHSM in the EXPDBOUT member.  If instead you   
               use member TYPEHSM to process HSM, the DIFFHSM member is 
               now already included for you.  VMACHSM was also changed. 
               Variables DSRFUNCT,FSRFUNCT,VSRFUNCT were redundant with 
               DSRTYPE,FSRTYPE,VSRTYPE (which also take less space and  
               are decoded by an MXG format) so the ...FUNCT variables  
               were removed from VMACHSM datasets. Several PD4. variable
               input statements were protected for hex nulls, and indent
               of code was standardized.  Some inconsistent data values 
               were found in IBM records - for example, several of the  
               fields which contain "number of tracks" contain hex      
               FFFFFFnn values, which is 4,294,000,000+ in decimal!     
               Use with caution, and let me know if you find IBM APARs  
               are needed to correct their data errors!                 
Change 08.259  TYPE6156 variables VOLSER1-VOLSER5 can be wrong if there 
VMAC6156       are more than five volumes, because these variables were 
Mar 24, 1991   not initialized.  Line 020700 was change to a DO group:  
               IF NR6XVOLS=1 THEN DO; VOLSER1=VOLSER; VOLSER2='      '; 
               VOLSER3='      ';VOLSER4='      ';VOLSER5='      ';END;  
   Thanks to Kenneth D. Jones, Maritime Telegraph and Telephone, CANADA.
Change 08.258  New dataset PDB.SPUNJOBS is created automatically in your
SPUNJOBS       MVS PDB by the new SPUNJOBS program, which reads today's 
Mar 15, 1991   SPIN datasets and combines those SPINning job's records, 
               giving you PDB.JOBS variable names and a single dataset, 
               PDB.SPUNJOBS, describing jobs still spinning. Of course, 
               many variables in PDB.SPUNJOBS will have missing values, 
               because only fields from records that were found will be 
               non-missing for a particular job. Variable INBITS shows  
               which records were found, and in section "PDB" of Chapter
               40 of the MXG Supplement is described which variables in 
               PDB.JOBS and PDB.SPUNJOBS come from which record.        
Change 08.257  Goal Systems Explore/VM records for VM/370 were supported
VMACVMXP       by MXG's VMACVMXP, but the VM/XA extensions were not in  
XMACVMXP       that data.  This change stores the original member in the
Mar 15, 1991  XMACVMXP member (for backup, but will eventually go away) 
               and replaces the contents of VMACVMXP with new code that 
               was contributed, but only syntax checked.  Use with the  
               appropriate caution.                                     
Change 08.256  IMS Log Processing has been once again been significantly
TYPEIMS        re-engineered, and now supports WFI (Wait-for-Input) and 
VMACIMS        multi-transactions per program schedule correctly, and it
Mar 14, 1991   also eliminates those occasional negative values in the  
               input and output queue times.  The new design uses MXG's 
               BUILDPDB logic to merge the PRG and INOUT3 (message) data
               and puts non-matches in UNMATCHD, but also creates a new 
               dataset MSGMISSD if the log does not contain all messages
               for a program sked, (if WFI runs from 8am to 8pm, but if 
               the IMS log starts at noon, messages executed before noon
               will be counted in the 07 record when the WFI terminates,
               but would not have their 01-03-31-35-36 records in this  
               IMS log dataset). The CPU and DL/I calls for those missed
               messages will be lumped into one observation in MSGMISSD 
               (variable NMSGMISS counts the missed message executions) 
               and all IMS resources are captured in IMSTRAN + MSGMISSD,
               but only IMSTRAN captures transaction response times too.
               The re-design eliminated the need to 'explode" IMS07 obs.
               This redesign answers all reported problems with IMS log 
               processing for non-fastpath transactions, but at best the
               IMS log is a poor source of IMS measurement data. The IMS
               log was designed ONLY for backup/recovery, and IBM does  
               not care enough for IMS users to enhance the log to put  
               a transaction identifier in each record, making heuristic
               algorithms based on found-data-patterns of MSGDRRN and   
               DEST necessary to reconstruct a transaction response from
               its log records).  Even when reconstructed, the IMS log  
               contains only a single measure of CPU time used which not
               only includes the Control Region and Message Region times
               but also includes the CPU time used when IMS transactions
               access DB2!  Large IMS sites deserve better quality from 
               IBM.  Nevertheless, we will continue to do our best to   
               extract whatever can be captured from IMS log records.   
Change 08.255  IMACJBCK allows SMF record selection by jobname, and this
IMACJBCK       is a documentation note rather than a change. Only jobs  
Mar 13, 1991   with blank or higher jobname are kept by MXG's default.  
               Type 30 records with nulls are created by IBM errors (see
               MXG Technical Notes in Newsletter NINETEEN), and these   
               "bad" records were deleted by MXG because of the IMACJBCK
               default.  The default was needed to protect the PDB from 
               a runaway software monitor that created scores of records
               with invalid job names, and the default could probably be
               changed (to pass any or all values of jobname) without   
               any significant impact, but since that can't be proven in
               advance, it seemed better to leave the default alone, but
               remind you of this MXG default here and in comments in   
               the IMACJBCK member.                                     
   Thanks to Mike Revelette, Defense CEETA, USA.                        
Change 08.254  Support for OPPSI Operator Single System Image in SYSPLEX
VMAC76         environment added six new traceable variables to TYPE76: 
Mar  6, 1991                                                            
                 OMDGWTOI - Lines of messages, WTOs, issued per millisec
                 OMDGCMDI - Commands issued per millisecond.            
                 OMDGWTLI - WTLs (write to logs) per millisecond.       
                 OMDGWQEB - Max WQEs (WTO Queue Elements) on queue.     
                 OMDGOREB - Max OREs (Operator Reply Entries on queue.  
                 OMDGAMRE - MAX messages on AMRF (Action Msg. Retention)
               You must first enable RMF trace for these fields, and use
               a PRINT of TYPE76 dataset to examine their values.       
Change 08.253  SYNCSORT SCZ 33038 for SYNCSORT 3.3 or 3.4 adds two new  
VMACSYNC       counters with the number of frames of Hiperspace/Data    
Mar  5, 1991  Space allocated (HPALLOC) and used (HPUSED).  The two new 
               fields occupy formerly reserved fields, so prior versions
               of MXG will not fail when this SCZ is installed.         
   Thanks to Sam Sheinfeld, Kraft General Foods, USA.                   
Change 08.252  Talk about great response from IBM for this vendor!!!    
VMACDCOL       At SHARE 76 last week, IBM mentioned that a future APAR, 
Mar  5, 1991  OY37378, would add many new fields to the HSM DCOLLECT    
               record.  Starting with the HSM Hotline telephone number  
               (listed in Pat Kearney's GC38-7014), it took only three  
               short telephone calls and less than three elapsed hours  
               before my fax machine coughed out the DSECT of the new   
               HSM record produced by DCOLLECT!  Due to this great      
               response from IBM, APAR OY37378 is supported in this MXG 
               version (transparently), and you won't need to install a 
               new version later this spring!  The new variables are:   
                 UMALLSP ='ORIGINAL*ALLOCATE*SPACE'                     
                 UMBKLNG ='BLOCK*LENGTH'                                
                 UMCREDT ='CREATION*DATE'                               
                 UMEXPDT ='EXPIRATION*DATE'                             
                 UMFLAG2 ='INFORMATION*FLAG*#2'                         
                 UMGDS   ='GDG?'                                        
                 UMLBKDT ='LAST*BACKUP*DATE'                            
                 UMLRFDT ='LAST*REFERENCED*DATE'                        
                 UMNMIG  ='NUMBER OF*TIMES*MIGRATED'                    
                 UMPDSE  ='PDSE?'                                       
                 UMRACFD ='RACF*INDICATED?'                             
                 UMRECOR ='VSAM*RECORD*ORGANIZATION'                    
                 UMRECOR ='VSAM*RECORD*ORGANIZATION'                    
                 UMRECRD ='RECORD*FORMAT*BYTE'                          
                 UMRECSP ='RECALL*SPACE*ESTIMATE'                       
                 UMRELBK ='RELBLK?'                                     
                 UMSMSM  ='SMS*MANAGED?'                                
                 UMUSESP ='ORIGINAL*SPACE*USED'                         
                 UMCHIND ='CHANGED*SINCE LAST*BACKUP?'                  
                 UMDSORG ='DATASET*DSORG*ORGANIZATION'                  
               These variables will exist, but will have missing values 
               or blanks until the PTF for the APAR is installed. See   
               also the discussion in Change 8.130 for DCOLLECT info.   
               The PTF for OY37378 requires additional prerequisites.   
               APARs OY41039 and OY41256 must be installed before 37378.
Change 08.251  This is a revision of and enhancement to Change 8.182.   
BUILDPDB       The CICS 3.1+ Statistics records are combined to create  
BUILDPD3       four interval data sets CICINTRV, CICEODRV, CICINTRV, &  
CICINTRV       CICUSSRV. CICS Stats records are created at an INTerval, 
Mar  5, 1991   (CICINTRV), at EOD (End of Day, or Shutdown), at REQuest 
               (CICREQRV), or at USS (CICUSSRV). The CICINTRV dataset   
               replaces and enhances the old CICSYSTM dataset that has  
               zero observations under CICS 3.1+.  The CICEODRV dataset 
               is brand new and provides Shutdown & EOD statistics. In  
               fact, CICS 3.1 no longer prints ANY of the shutdown stats
               on the Job's listing. IBM provides the DFHSTUP utility to
               extract Shutdown stats from SMF data.  MXG has CICEODRV! 
               Printing the CICEODRV data set wil give your CICS folks a
               report for each shutdown/end of day evolution. There are 
               the nineteen CICS datasets that are currently used to    
               create the four (INT/EOD/REQ/USS) interval datasets:     
                  CICAUTO  CICDMG   CICDQG   CICDQT   CICDS    CICDTB   
                  CICFCT   CICLDG   CICM     CICSDG   CICSMDSA CICST    
                  CICTC    CICTCT   CICTDG   CICTM    CICTSQ   CICTST   
               Note that there are a few other CICS Statistics datasets 
               that are not currently included in these four interval   
               MXG data sets.  As we learn more about CICS/ESA, these   
               four datasets built by CICINTRV member may be enhanced.  
               These four CIC...RV interval datasets are automatically  
               created in the PDB library by BUILDPDB/BUILDPD3 if you   
               do nothing; member IMACCICS defaults the destination DD  
               name to "PDB".  The sort order of these four datasets is:
Change 08.250  PR/SM "overhead" is explicitly captured when APAR OY36668
VMAC7072       (and associated microcode) is installed in ES/9000 or S/J
Mar  4, 1991   models of the 3090 (this APAR is not available on earlier
               hardware platforms).  The APAR captures the "Effective   
               Dispatch" duration, LCPUEDTM, for each partition. The    
               difference between LCPUPDTM, the existing LPAR Dispatch  
               time, and this new LCPUEDTM "Effective" LPAR Dispatch, is
               the time that this LPAR was dispatched for management of 
               this partition.  In addition to capturing the partition  
               LPAR management time, there will be a new observation in 
               TYPE70PR with a partition name of PHYSICAL that will have
               only a value for LCPUPDTM.  This "pseudo" partition does 
               not actually exist, but is the capture mechanism for the 
               total additional time that LPAR was dispatched but could 
               not be charged to a specific partition. See the technical
               discussion and schematic in Newsletter NINETEEN.         
               Note that with this APAR installed, all of the IBM RMF   
               reports will now use the "Effective" dispatch time as    
               their 100% CPU busy denominator.                         
               Although unrelated to the primary purpose of this APAR,  
               two new fields (LCPUCAP and LCPUCAPC) identify if each   
               partition had Capping in effect, or if Capping status    
               changed during the interval.                             
Change 08.249  DB2 trace records are now "paired" (event start and end  
ANALDBTR       are merged) in this new analysis routine for serious DB2 
Feb 28, 1991   questions. (Note that most sites with DB2 do not need the
               detail of SMF 102 tracing; member ANALDB2R seems to meet 
               the reporting needs of the vast majority of MXG sites).  
               But if you need to trace SQL calls, I/Os, etc., this     
               routine will sort and match the pairs and builds the many
               data sets from your DB2 trace.  The instructions for its 
               use and the datasets created are documented in the member
Change 08.248  DB2ACCT variable QWHDUNIQ is now formatted $HEX12. Three 
VMACDB2        variables, QLACCPUL, QLACCPUR, QLACDBAT, added for DB2   
Feb 28, 1991   distributed data durations, are not in 8-byte Timer Units
               used every where else in DB2, but are microseconds stored
               in an 8-byte floating point number!  Change lines 189800 
               thru 190000 to use RB8.6 instead of MSEC8.!              
   Thanks to Bob Otis, Rockwell International, USA.                     
Change 08.247  Support for Boole and Babbage's CMF Monitor's "Type 240" 
ANALCM27       SMF record is added by this MAJOR user contribution! The 
ANALCM29       subtypes 0, 1, 19, and 23 are processed by the standard  
EXCMFASM       architecture MXG members TYPECMF/VMACCMF into 16 datasets
EXCMFCPS          CMFCACHE  CMFDOM    CMFIPS    CMFPRIOS                
EXCMFDEV          CMFCPUQ   CMFEXTCC  CMFOBJ    CMFSRMC                 
EXCMFDOM          CMFCPUS   CMFEXTPG  CMFPG     CMFTRACE                
EXCMFIPS       In addition, two specific processing/reporting members   
EXCMFOBJ       for the subtype 27 (cache sampler) and subtype 29 (the   
EXCMFPG        CS monitor) are provided in ANALCM27 and ANALCM29.       
EXCMFPG0       The actual SMF record ID is set in member IMACCMF.       
EXCMFSRM       The implementation includes a CALLed function, that is   
EXCMFTCC       yet to be added in MXG.  Also, actual testing with the   
EXCMFTPG       BUILDPDB has not been performed yet.                     
Feb 21, 1991                                                            
   Thanks to Richard L. Gimarc, Boole and Babbage Austin, USA.          
Change 08.246  SAS 6.06 Compatibility.  LENGTH DEFAULT=4 is positional. 
VMACSMF        Variables ID and SUBTYPE in TYPE30_V and TYPE1718 were   
Feb 21, 1991   stored in 8-bytes instead of 4-bytes because they precede
               the LENGTH DEFAULT=4 statement. The LENGTH statement in  
               VMACSMF now includes LENGTH DEFAULT=4 preceding INPUT.   
   Thanks to Siegfried Trantes, Gothaer Versicherungsbank VVAG, GERMANY.
Change 08.245  Support for NETMASTER V2.1.0 has been added.  The type 39
EXTY39         records written by NETMASTER are generally identical to  
FORMATS        IBM type 39 records. Two TOD variables exist at the end  
VMAC39         of the SCS secion, SMFNCSTM/SMFNCETM, but their values   
Feb 20, 1991   are identical to ACTSTIME/ACTETIME in the ACCT section,  
               and are not kept. The subtype 255 creates a new dataset, 
               TYPE39FF that is unique to NETMASETR and contains:       
                  SMFNRCLN='RESOURCE*LINK NAME'                         
                  SMFNRCPU='RESOURCE*PU NAME'                           
                  SMFNRCR ='CONFIG DATA REVISION LEVEL'                 
                  SMFNRCSP='RESOURCE*SUBAREA PU NAME'                   
                  SMFNRCSS='RESOURCE*OWNING/ADJACENT SSCP'              
                  SMFNRCST='END OF*NETMASTER*INTERVAL'                  
               This change has been bench validated with printed dumps  
               of several NETMASTER records.                            
   Thanks to Gerry Binas, DCSD, Manila Electric Company, PHILIPPINES.   
Change 08.244  VM/XA and VM/ESA MONWRITE records can cause an erroneous 
VMACVMXA       MXG message "Probable Data Loss Due to MONWRITE Failure".
Feb 20, 1991   MXG detection of internally spanned MONWRITE records was 
               imperfect.  Line 005970 was IF (COL-4+MRHDRLEN) GT LENGTH
               but should have been (COL-3+MRHDRLEN) and line 006000 was
               SKIPTHIS=LENGTH-COL-1 but should have been LENGTH-COL+1. 
   Thanks to Bob Small, Grumman Data Systems, USA.                      
   Thanks to Mike Masella, G.T.E. Services Corp, USA.                   
Change 08.243  The test  IF X NE 0  may not produce the expected result.
SAS coding     If variable X can be missing, the test wil be TRUE. This 
Feb 15, 1991   suggests that a (generally) safer algorithm, which does  
               ensure that X is both non-zero AND non-missing, is to use
               the test  IF X GT 0  for this purpose.  The example below
               tested X (an offset to a data field) to ensure that the  
               FIELD was present in the record:                         
       wrong:      IF X NE 0 THEN INPUT @X FIELD $CHAR1.;               
       right:      IF X GT 0 THEN INPUT @X FIELD $CHAR1.;               
               Because X was in a conditional INPUT statement that had  
               not been executed, the value of X was missing, but the   
               NE 0 test (instead of GT 0) executed the INPUT statement 
               with @X where X was missing! What did SAS do with missing
               pointer?  For either a zero or missing pointer value in  
               an INPUT  statement, SAS moves the pointer to byte 1 of  
               the record and beings normal INPUT.  There is no problem 
               with using X GE 0 if you can guarantee that X will be non
               missing, and in all instances of its use in MXG it does  
               have adequate protection. Fields unconditionally input as
               PIBn (full binary) can never be missing, but variables   
               input as PDn and other packed formats can be missing.    
               Now that I realize GT 0 is safer than NE 0, I will cease 
               using NE 0. I'll bet this already written up somewhere.  
Change 08.242  An MRO CICS transaction in an AOR that is waiting for a  
VMAC110        TOR user to type enter will find the AOR transaction's   
Feb 14, 1991   IRESPTM=(ELAPSED-WTTCIOTM) will include all of the time  
               that the AOR was waiting on the (user) TOR, and the time 
               waiting is captured in the WTIRIOTM, the time that the   
               AOR was waiting on inter-region communications.  As long 
               as this AOR has no FOR, then all of the WTIRIOTM can be  
               recognized as "user think time" and should be subtracted 
               from IRESPTM to capture the "real" internal response time
               for this type of AOR transaction.  However, if the AOR   
               waits for any other inter-region communications, such as 
               and FOR, then the WTIRIOTM would contain ambiguous delay 
               time.  The IRESPTM=IRESPTM-WTIRIOTM; statement could be  
               added in your EXCICTRN exit; it cannot be added to MXG   
               code because it might not apply to all CICS installations
               and it might not even apply to all CICS regions at an    
   Thanks to John Nursey, Commercial Union Assurance.                   
Change 08.241  Unused.                                                  
Change 08.240  Variable R79GTOD was added to all TYPE79xx datasets, as  
VMAC79         that timestamp may be needed in analysis.                
Feb 14, 1991                                                            
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 08.239  If CICS variables are EXCLUDEd (i.e, the CICS MCT has the
VMAC110        EXCLUDE=(DFHaaaa,DFHbbbb) or INCLUDE=(DFHaaaa,DFHbbbb),  
Feb 12, 1991   MXG member VMAC110 can be edited and the excluded fields 
               can be commented out as described in instructions in this
               member (FIND occurrence of EXCLUDE and read comments).   
               The comments suggested using the UTILCICS program in the 
               MXG library, but you can just as easily look directly at 
               the EXCLUDE/INCLUDE statements in your MCT to know which 
               fields to comment out in VMAC110.  This change takes note
               of that user suggestion, and protected BMSTOTCN & TDTOTCN
               variables against "Un-Initialized Variable" messages.    
   Thanks to Joe Naussbaum, Morgan Stanley, USA.                        
Change 08.238  Validation of CICS 3.1 statistics records uncovered some 
VMAC110        incorrect input formats. In CICFCR, variables A17OPENT   
Feb 12, 1991   and A17CLOST were incorrect.  Instead of PD4. format, the
               four bytes must be read HH PK1. MM PK1. SS PK1. TH PD1.1 
               and then SS=SS+TH; and A17OPENT=HMS(HH,MM,SS); and this  
               is repeated for A17CLOST. In CICSLDG, variables LDRFT,   
               LDGLLT, and LDGTTW were incorrectly input as TU4., when  
               they are actually CICS internal clock values and must    
               be INPUT as PIB4.6 and then multiplied by 16 to convert  
               to seconds.  See Technical Discussion in Newsletter 19   
               for a table of time formats and how to read them.        
Change 08.237  A short SMF record can be created by STC's 4400 Silo when
VMACSTC        a silo is varied on/off line. STC ZAP L1H00o8 (yes, that 
Feb 12, 1991   is two zeros and an alphabetic o) corrects the bad record
               that caused MXG to ABEND (INPUT STATEMENT EXCEEDED ...). 
               The following circumvention fix has been added to MXG so 
               that it will not fail even with the short record. Lines  
               022700 thru 023000 now read:                             
                    INPUT @21+OFFSMF SMLSFLAG $CHAR1. @;                
                    IF LENGTH GT 26 THEN                                
                    INPUT +3 SMLSATID PIB2. @;                          
   Thanks to Raymond Zieverink, Belk Stores Services, USA.              
Change 08.236  Support for Legent's ASTEX ("Automated Storage Expert"   
VMACDMON       replacement for DASDMON SMF records. A number of new data
Feb  6, 1991   variables have been added to all three datasets. Some of 
               the variables that were common in all records now exist  
               only in the DMONDSN and DMONJOB datasets under ASX, but  
               since MXG now supports either old DASDMON or new ASX SMF 
               records, these variables are still kept in both places   
               for compatibility; the ones moved will exist but have    
               missing values with ASTEX.  The following are changed:   
               New in all three (DMONVOL,DMONDSN,DMONJOB) datasets:     
                  ASXFLAG ='SPANNING FLAG'                              
                  RALBSY  -'TOTAL*CON/DISC*OUTBOARD TIME'               
                  RBYCNT  ='TOTAL IO-S FOR BYPASSES'                    
                  RCCCNT  ='TOTAL IO-S FOR CACHE CANDIDATES'            
                  RCFCNT  ='TOTAL IO-S FOR CFW'                         
                  RDFCNT  ='TOTAL IO-S FOR DFW'                         
                  RDLCNT  ='TOTAL*DFW*LOAD COUNT'                       
                  RHTDFW  ='TOTAL DASD FAST WRITE HITS'                 
                  RHTRD   ='TOTAL*READ*HITS'                            
                  RHTRDS  ='TOTAL READ SEQUENTIAL HITS'                 
                  RLDCNT  ='TOTAL*LOAD*COUNT'                           
                  RNRCYLS ='NR OF CYLINDERS ON THE DEVICE'              
                  RNWCNT  ='IO-S THAT WERE NORM WRITES'                 
                  ROICNT  ='OPTIMIZER INHIBIT IO-S'                     
                  RSTCFW  ='TOTAL CACHE FAST WRITE HITS'                
                  RTICNT  ='TOTAL IOS INHIBIT IO-S'                     
                  RXSCNT  ='CROSS*SYSTEM*SEEK COUNT'                    
               New in DMONVOL dataset:                                  
                  RVCFLAG2='CACHE*FLAG2 '                               
                  RVDMTOBJ='DEMOTION*TIME (SECS)*OBJECTIVE '            
                  RVDSNRBA='RBA OF DSN RECORDS'                         
                  RVDSNBKS='NUMBER PHYS. BLOCKS FOR DSN RECS'           
                  RVDSNOFF='OFFSET INTO RBA TO 1ST DSN REC'             
                  RVJOBBKS='NUMBER OF PHYS. BLOCKS FOR JOB RECS'        
                  RVJOBOFF='OFFSET INTO BLOCK TO 1ST JOB REC'           
                  RVJOBRBA='RBA OF JOB RECORDS'                         
                  RVMXNBR ='DSNRBA'                                     
                  RVSIIX  ='VSAM IMBEDDED*INDEX I-O*COUNT'              
               New in DMONDSN and DMONJOB dataset:                      
                  RPRGMNM ='PROGRAM NAME*ASSOCIATED*WITH DSN'           
                  RTRATME ='TOTAL*INTRA-DSN*SEEK TIME '                 
               Variables removed from all three DMON.... datasets.      
                  RCHCNT  ='TOTAL*CACHE*HITS'                           
                  RSQRSP  ='SUM*RESP*SQUARED'                           
               Variables removed from DMONVOL dataset                   
                  RVMXNBR ='LONGEST*NON-BUSY*RESERVE'                   
               Now missing values (ASX only) in DMONVOL dataset:        
                  RFTCNT  ='TOTAL*FETCH*IO-S'                           
                  RLRCNT  ='TOTAL*LONG*RESERVES'                        
                  RSEEKTM ='TOTAL*SEEK*TIME'                            
                  RSRCNT  ='TOTAL*BLDL-FIND*IO-S'                       
   Thanks to Joseph J. Faska, Depository Trust, USA.                    
Change 08.235  The support to read HSM data sets needed correction for  
VMACHSM        HSM 2.4 and 2.5.  Two occurrences of 177 for offset P2   
Feb  6, 1991   changed to 185, and the two occurrences of 297 for P3 are
               changes to 405.                                          
   Thanks to Milt Weinberger, Information Services International, USA.  
Change 08.234  The Hiperbatch counters for VSAM added to the type 64 SMF
VMAC64         record were wrong, because MXG failed to skip over the 3 
Feb  5, 1991   undocumented bytes in the record. Change the test for 193
               to 196, and insert +3 between INPUT and SMF64SIO.        
   Thanks to Bob Brosnan, Goldman Sachs, USA.                           
Change 08.234A Preliminary support for VPD, "Vital Products Data" aka   
ADOCVPD        NAM, "Network Asset Management" NETVIEW "hardware monitor
EXTYVPDE       records" written to SMF (usually) as type 37 containing  
EXTYVPDF       "VPD" as SUBSYS and SUBTYPE=22.  Member IMACVPD sets the 
EXTYVPDM       record ID MXG expects, and defaults to 37. (If VP writes 
EXTYVPDP       the record, I would not be surprised to see the value 0!)
EXTYVPDS       Seven internal record subtypes, E,F,M,P,S,T and W create 
EXTYVPDT       seven VPD..... datasets documented in DOCVPD. An extra   
EXTYVPDW       part of this user contribution is the INFOLOAD member,   
IMACVPD        which shows how an MXG SAS data set (in this example, the
LOADINFO       PDB.VPDPUHAR) can be "loaded" into an INFO/SYS database! 
TYPEVPD        All seven subtypes have been coded and syntax checked,   
VMACVPD        but only "P", VPDPUHAR PU Hardware subrecords have been  
VMAC37         tested with data records.  Member VMAC37 was updated to  
Feb  4, 1991   NOT process type 37 records with SUBSYS='VPD'.           
   Thanks to Bill Border, Apollo Computer Inc, USA.                     
Change 08.233  "Invalid data for MSOCOEFF in line ..." error and a hex  
VMAC7072       dump is printed with MVS/ESA 4.1 type 72 records, but the
XMAC7072       data sets built by MXG are NOT in error. IBM increased   
Feb  1, 1991   the width of the MSOCOEFF field from 4 to 8 bytes in     
               MVS/ESA 4.1 (because sites wanted to set a small value   
               and the 4-byte EBCDIC value was limited to .001 for the  
               memory service coefficient) by adding a new 8-byte field 
               to the end of the record, and putting a zero in the old  
               4-byte field. Unfortunately, I expected an EBCDIC zero,  
               but IBM changed the format to binary zeros, causing the  
               invalid data message.  Since MXG went on to then input a 
               value from the new 8-byte field, MSOCOEFF was correct in 
               the TYPE72 data set, in spite of the note on the log!    
               The correction is simple. Change the line now reading:   
                              @OFFWRKC+34 MSOCOEFF         4.           
               to read:                                                 
                              @OFFWRKC+34 MSOCOEFF   ??    4.           
               (the ?? added suppresses the error message and the dump  
               and sets the variable to missing value on invalid data). 
   Thanks to Ann Slaughter, Airline Tariff, USA.                        
Change 08.232  The CICS Dictionary utility had misleading titles and was
UTILCICS       accidentally altered when CICS 3.1 support was added. The
Feb  1, 1991   report was valid, however.                               
   Thanks to Phil Shelley, Jewish Hospital HealthCare Services, USA.    
Change 08.231  VM/ESA testing found an unprotected divide by zero that  
VMACVMXA       is now corrected in de-accumulation of the user records. 
Feb  1, 1991   (It had no impact on the MXG-build data sets, because the
               observation causing zero-divide was the first for a user,
               and the first record is always deleted).  Additionally,  
               variable VMDELIST is now formatted $HEX2.                
Change 08.230  Duplicate Job Name Hold delay time for batch scheduling  
ASUMJOBS       is now detected and eliminated in this summarization part
Jan 31, 1991   of the MXG Trend Data base that builds the PDB.JOBSKED   
               data set and calculates IWT (Initiation Wait Time) by    
               job class.  See the MVS Technical Note in Newsletter 19. 
   Thanks to Freddie Arie, Lone Star Gas, TEXAS.                        
Change 08.229  SAS 6.06 Compatibility?  SAS 5.18 handled "PIB2 ." in    
VMXGHSM        line 370300, but SAS 6.06 requires the    "PIB2." syntax 
Jan 31, 1991   (i.e., no blank between PIB2 and its period)!            
   Thanks to Andrew Davies, TAB of W.A., AUSTRALIA.                     
Change 08.228  Support for SESAME, a Volvo (Europe) VTAM Monitor, which 
EXTYSESA       creates an SMF record.  This is preliminary support, that
IMACSESA       has only been syntax checked after editing this user     
TYPESESA       contribution to MXG Software.  Formats are defined in    
VMACSESA       FORMATS but are not yet associated with their variables. 
Jan 30, 1991                                                            
   Thanks to Olli Rautajuuri, SAS Institute Oy, FINLAND.                
Change 08.227  Support for MEMO, a European Electronic Mailsystem which 
EXTYMEMO       creates an SMF "accounting" record. This is preliminary  
IMACMEMO       support, that has only been syntax checked after editing 
TYPEMEMO       this user contribution to MXG Software. Formats are      
VMACMEMO       defined in FORMATS but are not yet associated with their 
Jan 30, 1991   variables.                                               
   Thanks to Pertti Russcanen, Carelcomp Oy, FINLAND.                   
Change 08.226  Variable PMHTSKID should not have been KEEPed in these   
VMACIDMS       non-task-related MXG datasets: IDMSARA,BUF,CPM,INS,INT,  
Jan 29, 1991   JRL,LNE,PGM,RUS,STG,YPE. Only caused confusion.          
   Thanks to Bob Rutledge, Sherwin Williams Paint, USA.                 
Change 08.225  Support for Landmark's The Monitor for DB2 type 100 & 101
TYPEDB2        records requires a fix from Landmark.  ZAP U900266 exists
Jan 29, 1991   now, and that fix will be included in Landmark's planned 
               maintenance release level ML911, due out this Spring. The
               DB2ACCT data is good without that fix, but DB2STAT0/1 are
               wrong until the fix is installed.  (The statistics record
               sequence number was not updated by Landmark, and MXG uses
               it to validate the de-accumulation of interval records,  
               and to detect skipped intervals and multiple startups).  
               Landmark does not yet write type 102 SMF records.        
Change 08.224  Support for MVS/ESA 4.2 (RMF 4.2.1).                     
EXTY22IO     1.New dataset TYPE22IO reports I/O configuration changes as
EXTY33U1       a result of the ACTIVATE funcation (add, delete, modify) 
IMACPDB        with these 33 new variables from the new subtype of the  
TYPE33         type 22 SMF record:                                      
VMAC6             FORCEOPT='ACTIVATE*FORCE*OPTION?'                     
VMAC22            SMF22CCH='CHANNEL*PATH*ID'                            
VMAC26J2          SMF22CFI='OPSYS*CONFIGURATION*ID'                     
VMAC30            SMF22DCM='MASK OF*CHPIDS*ADDED OR DELETED'            
VMAC4345          SMF22DVN='DEVICE*NUMBER'                              
VMAC7072          SMF22EDT='ID OF*NEW*EDT'                              
VMAC71            SMF22EFL='ENTRY*FLAGS'                                
VMAC73            SMF22EHD='ENTRY*HEADER'                               
VMAC74            SMF22ELN='LENGTH OF EACH ENTRY'                       
VMAC78            SMF22ER ='ENTRY*TYPE*(MXG FORMATTED)'                 
Dec  6, 1990      SMF22ERQ='ENTRY*REQUEST'                              
Jan 28, 1991      SMF22ETY='ENTRY*TYPE'                                 
                  SMF22IDN='DSNAME OF IODF*WITH NEW*I/O CONFIGURA'      
                  SMF22NE ='NUMBER OF ENTRIES IN THIS RECORD'           
                  SMF22NUA='NUMBER OF*UCBS ADDED*FOR THIS CHANGE'       
                  SMF22OFF='OFFSET TO FIRST ENTRY'                      
                  SMF22PCH='ARRAY OF*CHPIDS*ADDED OR DELETED'           
                  SMF22PCM='MASK OF*CHANNEL PATH IDS*ADD-DELETED'       
                  SMF22PCN='PHYSICAL*CONTROL UNIT*NUMBER'               
                  SMF22PUA='RANGE OF UNIT ADDRESSES*ADD-DELETED'        
                  SMF22PUC='COUNT*OF UNIT*ADDRESSES'                    
                  SMF22RNR='RECORD NUMBER OF THIS RECORD'               
                  SMF22TR ='TOTAL RECORD NUMBERS FOR THIS CHANGE'       
                  SOFTOPT ='ACTIVATE*SOFT*OPTION?'                      
             2.New variables have been added to the TYPE30_V, TYPE30_4, 
               TYPE30_5, and TYPE30_6 datasets built from type 30 SMF   
               records, and to datasets PDB.SMFINTRV, PDB.STEPS and     
               PDB.JOBS built by BUILDPDB/BUILDPD3. The BUILDPDB change 
               required modification to member IMACPDB, so that MXG     
               users with a modified IMACPDB will need to retrofit its  
               changes onto the new IMACPDB member.                     
               a. Ten new variables describe pages and blocks moved to  
                  and from Auxiliary and Expanded storage for this job  
                  due to the new Blocked Paging enhancements. Variables 
                  in upper case are actual data fields, while lower case
                  variables are calculated from actual data fields:     
                            Blocks     Blocked    Unblocked  Total      
                                       Pages      Pages      Pages      
         In from AUX        BLKSAUIN   PGBKAUIN                         
         In total           BLKSTOIN   PGBKTOIN                         
         Out to  AUX        BLKSAUOU   PGBKAUOU                         
         Out to  ESTORE     BLKSESOU   PGBKESOU   PGUNESOU              
         Out total          BLKSTOOU   PGBKTOOU                         
  Type 71 variables:        Blocks     Blocked    Unblocked  Total      
                                       Pages      Pages      Pages      
         In total           BLKSTOIN   PGBKTOIN                         
  Type 72 variables:        Blocks     Blocked    Unblocked  Total      
                                       Pages      Pages      Pages      
         In from AUX        BLKSAUIN   pgbkauin                         
         In from ESTORE     BLKSESIN   PGBKESIN   pgunesin   PGTOESIN   
         In total           blkstoin   PGBKTOIN                         
               c. Eight new variables describing APPC activity by this  
                  address space were added (but the APPC resources are  
                  not currently contained in the subtype 2 & 3 interval 
                  records, so these variables are not kept in TYPE30_V  
                  nor the PDB.SMFINTRV data set):                       
                      APPCATR ='TRANSACTIONS*SCHEDULED*BY ASCH'         
                      APPCDAR ='BYTES OF DATA*RECEIVED*BY THE TP'       
                      APPCDAT ='BYTES OF DATA*SENT*BY THE TP'           
                      APPCREC ='RECEIVE CALLS*ISSUED*BY TP'             
                      APPCSEN ='SEND CALLS*ISSUED*BY TP'                
                      APPCTAC ='NUMBER OF*ACTIVE*CONVERSATIONS'         
               d. The JCTJOBID field from which TYPETASK and JESNR are  
                  extracted has changed with APPC.  Instead of three    
                  characters JOB/STC/TSU follwed by the five digit JESNR
                  the JCTJOBID will contain an "A" and a seven digit    
                  number, which MXG stores in TYPETASK and JESNR, but   
                  the maximum JESNR is 999,999 because the first of the 
                  seven digits is always a zero.  You should check if   
                  any reporting programs use TYPETASK for selection, and
                  to ensure they are coded robustly so they will not    
                  fail if TYPETASK='A' is encountered.  The JCTJOBID    
                  change was not compatibly implemented and changed     
                  VMAC6,VMAC30,VMAC32,VMAC26J2, and VMAC26J3.  SMF      
                  records use the fieldname SMFnnJNM for the eight byte 
                  JCTJOBID field.  This IBM change in that field could  
                  also affect "banner page" printing code in your SMF   
             3.New dataset TYPE33_1 records APPC Transaction Program,   
               "TP" resources, for each TP work scheduled by ASCH. Each 
               type 33 is an APPC event, with the same APPC counts that 
               are totaled in the type 30, above. In addition, times of 
               receipt, scheduling, and execution of the TP are recorded
               as is the CPU times, I/O connect time and EXCP counts for
               APPC TPs.  This new data is the resource record for APPC,
               and will be used instead of the type30s for APPC resource
               accounting, performance measurement, etc. The variables  
               in this data set from the type 33 subtype 1 record are:  
                     ACCOUNTn='ACCOUNT*FIELD* n'                        
                     APPCDARS='BYTES*RECEIVED*BY THIS TP '              
                     APPCDATS='BYTES*SENT BY*THIS TP '                  
                     APPCRECV='RECEIVES*ISSUED*BY THIS TP'              
                     APPCSEND='SENDS*ISSUED*BY THIS TP '                
                     ELAPSTM ='ELAPSED*DURATION'                        
                     EXCPTOTL='EXCPS*FOR*THIS TP'                       
                     IOTMTOTL='DEVICE*CONNECT*DURATION '                
                     LENACCTn='LENGTH OF*ACCOUNT FIELD* n '             
                     LOCLLUNM='LOCAL*LU NAME*FOR THE TP'                
                     PARTLUNM='NODENAME*LUNAME*OF PARTNER'              
                     QUEUETM ='SCHEDULER*QUEUE*DURATION'                
                     REQDTIME='REQUEST*RECOGNIZED*BY FMH-5'             
                     SMFTIME ='TIMESTAMP*WHEN RECORD*WAS WRITTEN'       
                     SYSTEM  ='SMF*SYSTEM*ID'                           
                     TPCLASS ='TP*CLASS'                                
                     TPNAME  ='TP*NAME'                                 
                     TPUSECNT='USES OF*THIS TP*BY THIS USER'            
                     ZDATE   ='ZEE DATE*ZEE OBS*WAS CREATED'            
               The following time sequence is unvalidated but is thought
               to describe the events for a standard TP scheduled event:
                          INPREQTM      QUEUETM         ELAPSTM         
                          Waiting on    Waiting on      Executing       
                          Scheduler     TP queue                        
                       |             |               |            |     
                    REQDTIME      SKEDTIME       TPSTTIME      TPENTIME 
                    Request       Placed on      Execution     Execution
                    Received      TP's queue     Started       Ended    
             4.New variables were added to TYPE4345 for JES2 start      
                 CONSOPT ='CONSOLE*OPTION*SPECIFIED?'                   
                 LOGOPTN ='LOG*OPTIONS*SPECIFIED?'                      
                 QUIKSTRT='JES2 DID*QUICK*START??                       
             5.New TYPE70 variables APPCMIN,APPCMAX,APPCAVG for the min,
               max,avg number of APPC address spaces active, and twelve 
               distribution buckets APPC00 thru APPC11 count the percent
               of time when 0, 1-3, ... over 36 APPC address spaces were
               active, paralleling the similar set of fifteen variables 
               for the existing other three types of address spaces for 
               BATCH, TSO, and STC addresses.                           
             6.New TYPE71 variables count blocked pages in or out, the  
               PWSS (Primary working set) pages migrated, and the number
               of ESTORE frames that were freed without migration:      
                 ESPGFRNO='ESTORE FRAMES FREED W/O MIGRATION'           
                 PGBKtoin='BLOCKED*PAGES*PAGED IN'                      
                 PGBKtoou='BLOCKED*PAGES*PAGED OUT'                     
                 PWSSMIIN='PWSS PAGES*MIGRATED*FROM ESTORE'             
             7.Old TYPE72 variable WKLOAD no longer exists.             
               Eleven new variables, including the long needed new      
               ESA CPU times, and the ESTORE residency time (which      
               can be compared with the existing variable ACTFRMTM,     
               previously discussed in NEWSLTRS member) to estimate     
               usage of ESTORE frames.                                  
                 BLKSAUIN='BLOCKS*PAGED IN*FROM AUX'                    
                 BLKSESIN='BLOCKS*PAGED IN*FROM ESTORE'                 
                 CPUHPTTM='HIPERSPACE*CPU TIME'                         
                 CPUIIPTM='I/O*PROCESSING*CPU TIME'                     
                 CPURCTTM='REGION*CONTROL*CPU TIME'                     
                 PGBKESIN='BLOCKED PAGES*PAGED IN*FROM ES'              
                 PGBKTOIN='BLOCKED PAGES*PAGED IN'                      
                 PGTOESIN='PAGES*PAGED IN*FROM ESTORE'                  
             8.New TYPE73 variables describe IODF name and creation:    
             9.Type 74 record contains the same fields added to the type
               73 listed above, but the variables are NOT kept in TYPE74
               because I don't think the 44 bytes of IODF name needs to 
               be kept in each device segment of MXG's TYPE74 dataset.  
               If they really turn out to be needed, I will create a new
               data set, one per type 74 record, instead of one for each
               device.  The code is in place, so the variables do exist 
               and are available in EXTY74, if needed.                  
  _______ _______ ________                                              
 |Offset |Offset |Offset  | SMF Type 33 APPC/MVS TP Accounting          
 |to POF |to IOF |to UOF  |                                             
           Product Section:                                             
          |                            |                                
    POF:  |  "ASCH", MVSLEVEL          |                                
           TP Identification Section:                                   
          |Offset |                                                 |   
    IOF:  |to TPO |TP Class, Standard/Multi-Trans, TP Profile Name  |   
                  \            TP Program Name Section:                 
                   \ _______ _______________________________            
                    |       |                               |           
               TPO: | Len   |TP Name (up to 64 characters)  |           
                                 /                      \               
           TP Usage Section:    /                        \              
           _______________ _______ _________ _______      \             
          |               |Offset |         |Offset |     /             
    UOF:  |RACFUSER,GROUP |to AOF |Usecount |to TDO |    /              
          |_______________|_______|_________|_______|   /               
                                            /          /                
                                           /          /                 
                                          /          /                  
                                         /          /                   
                       _________________/          /                    
                      /                           /                     
                     /                     TP Usage Accounting Section: 
                    /                       ______ __________________   
                   /                       |      |Accounting fields |  
                  /                   AOF: | Len  |(up to 175 char)  |  
                 /                         |______|__________________|  
           TP Usage Detail Section                                      
           _______ ___________________________________________          
          |Offset |                                           |         
    TDO:  |to TSO | Sends,received,data,conversations,TCB,SRB |         
                  \  TP Usage Scheduler Section                         
                   \ _____________________________                      
                    |                             |                     
               TDO: | LLU, PLU, Four Time Stamps  |                     
            10.Type 78 record contains the same fields added to the type
               73 listed above, but the variables are NOT kept in TYPE78
               because I don't think the 44 bytes of IODF name needs to 
               be kept in each subtype 3 segment. See above note.       
Change 08.223  Deaccumulation of EXCP count from type 14/15 records by  
ANALDSET       this MXG analysis routine did not handle concatenated PDS
Jan 25, 1991   libraries, noticibly causing JES2 job's PROCnn DDNAMES to
               have incorrectly high EXCP counts in this analysis.  The 
               BY list in lines 017300 and 017600 should have had the   
               variable  DSNAME  inserted between DDNAME and UNITADR:   
   Thanks to Lee Hollis, Lowe's Companies, Inc, USA.                    
   Thanks to Dee Ramon, Mutual of America, USA.                         
Change 08.222  Default SMF record IDs in IMAC.... members for User SMF  
IMACWSF        records are intended to all be 512 (an impossible value) 
Jan 25, 1991   but some IMACs slipped into the library with a different 
               value; if your site had a record of that value, the test 
               of JCLTEST could cause an "INPUT STATEMENT EXCEEDED "    
               STOPOVER condition.  All IMACs for User SMF records now  
               have the value of 512, as they should have all along!    
   Thanks to Glenn Hanna, Textron Defense Systems, USA.                 
Change 08.221  SAS 6.06 Compatibility.  Mixed case from PUT function.   
MONTHBLD       The DAY=PUT(TODAY,WEEKDATE3.); may create mixed case in  
Jan 25, 1991   the character variable DAY under SAS 6.06, depending on  
               several SAS 6.06 options; the first letter is upper case,
               while the second and third letters of the name of the day
               are lower case.  Since the subsequent test is for caps,  
               the test fails.  Line 005200 is now replaced with        
               to force DAY to be uppercase, independent of the sites   
               options for case.                                        
   Thanks to Barry Lampkin, Blue Cross Blue Shield of Mass., USA.       
   Thanks to Debora Reinert, Nordstrom, Inc, USA.                       
Change 08.220  DCOLLECT variable DCDBKLNG should have been multiplied   
VMACDCOL       by 1024 (like the other adjacent values) to convert to   
Jan 25, 1991   bytes for printing by the MGBYTES format.                
   Thanks to David Stern, CSX Technology, USA.                          
Change 08.219  Hiperbatch statistics added to the TYPE64 data set were  
VMAC64         not kept in the correct  dataset. The line containing    
Jan 24, 1991   the six new variables was mis-located in the keep list   
               for TYPE64X (which is output before the variable are     
               input) instead of the correct keep list for TYPE64.      
               Variable JFCBDSNM was spelled incorrectly as JCFBDSNM.   
   Thanks to Michael Enad, Dun and Bradstreet, USA.                     
Change 08.218  Validation of PreRelease uncovered minor corrections.    
IMACPDB      1.Line 029800 in IMACPDB should be  _FREQ_  vice _FREQ     
IMACACCT       (but no error was set as  _FREQ_  only exists in 6.06    
VMAC110        and the missing underscore only caused _FREQ_ to be kept.
Jan 21, 1991 2.Comments in IMACACCT were enhanced to suggest that the   
               unwanted LENACCTn variables should also be dropped, and  
               that meaningless SAS "393" warnings print on the log.    
             3.CICS 3.1 processing was not protected for an unexpected  
               Statistics subtype. It did not fail, but the messages    
               produced were unclear. Now it is protected.              
   Thanks to Norbert Korsche, OMV-AG, AUSTRIA.                          
Change 08.217  Support for Candle's EPILOG for MVS Version 300 SMF "type
EXEPMEP        180" data record is added by this user contribution.     
EXEPMIO        Three EPMV.. data sets are created:                      
EXEPMEQ         EPMVEP   - The fixed workload information and the wait  
IMACEPMV                   statistics for the two kinds of workloads,   
TYPEEPMV                   PG (perf groups, periods, total sys), and    
VMACEPMV                   AS (TSO, JOB, STC). Variable SM180SUB shows  
Jan 16, 1991               which of the 10 subtypes created the record: 
                            TOTS - all perf groups combined             
                            PGN  - all periods of a perf group          
                            PGP  - a single period of a perf group      
                            BAT  - end of step for batch address space  
                            TSO  - end of step for TSO address space    
                            STC  - end of step for STC address space    
                            bat  - end of interval for batch ASID       
                            tso  - end of interval for TSO ASID         
                            stc  - end of interval for STC ASID         
                            RSRC - EPILOG captured data (not from RMF)  
                EPMVEPIO - I/O counts for each device with counts.      
                EPMVEPEQ - ENQ counts for each major name with counts.  
   Thanks to Billy Westland, Candle Corporation, USA.                   
   Thanks to John Ebner, Litton Computer Services, USA.                 
Change 08.216  Both SIO73CNT and SIO78CNT are missing in RMFINTRV for a 
RMFINTRV       4381/3090/ES9000 processor, because I/O counts moved into
Jan 16, 1991   different records for different processors and software. 
Mar 13, 1991   Insert after line 070200                                 
                 DATA TYPE78; SET PDB.TYPE78;                           
               (so a PDB can be on tape), and expand the SET statement  
               in line 070400 to read:                                  
                 SET TYPE73P TYPE78 (IN=IN78) PDB.TYPE78IO (IN=IN78IO); 
               and insert new line after 070700:                        
                  IF IN78IO THEN SIO73CNT=IOPACTRT*DURATM;              
               to now populate variable SIO73CNT to contain total SSCH  
               count to all channels from the appropriate data set.     
   Thanks to John McDonald, Arizona State University, USA.              
Change 08.215  If only DB2 Report PMLOK03 was requested, a 309 error is 
ANALDB2R       received.  Line 076980, variable QW0054AI should have    
Jan 16, 1991   numeric 0's instead of alphabetic o's.  Line 077020,     
               variables MINTIME and MAXTIME need to be added to that   
               RETAIN statement.                                        
   Thanks to Elliot Weitzman, Oryx Energy Company, USA.                 
VMAC6156       from syntax WANT6156=INPUT(SUBSTR(SYSPARM(),10,7),7.);   
Jan 15, 1991   when the SYSPARM value is less than 17 characters. This  
               soft error can be eliminated by storing the value of the 
               SYSPARM() function into a variable, because SAS sets that
               variable's length to 200 bytes. The variable is then used
               in place of the subsequent SYSPARM() references. Lines   
               012200 thru 012600 now read:                             
                      IF WANT6156=. THEN DO;                            
                        IF SYSPARM EQ: 'TYPE6156-' THEN                 
                        ELSE WANT6156=-1;                               
                        RETAIN WANT6156;                                
               Apr 1 update. Now I find out from SAS that this message  
               only occurs in SAS 6.06 if ZAP Z6060627 was installed,   
               and that zap is now marked REMOVED by the Institute).    
               But I'll leave my robust circumvention in place!         
   Thanks to Debbie Matic, Commercial Union Assurance of Canada, CANADA.
Change 08.213  This example shows how new-style macros can be used in   
Book           place of the old style _DAY macro and INSTREAM DD.       
Jan 15, 1991   The example in the Chapter 35 to copy the DAY PDB into   
               the correct "Day-of-Week" PDB uses a temporary dataset   
               (pointed to by the INSTREAM DDname), and writes out an   
               old-style MACRO named _DAY that contains the character   
               name of the day of the week, which is then used as the   
               DDNAME into which the daily PDB will be copied. That     
               example has been updated and commented below:            
                 //INSTREAM DD UNIT=SYSDA,SPACE=(TRK,(1,1))             
                 OPTIONS NOTITLES;                                      
                 DATA  _NULL_ ;                                         
                 TODAY=TODAY()-1;  /* get yesterday's date */           
                 WEEKDAY='   ';                                         
                 PUT 'MACRO  _DAY ' WEEKDAY $CHAR3. '%'  ;              
                 %INCLUDE INSTREAM;  /*read macro just created*/        
                 PROC COPY IN=DAY OUT= _DAY;                            
               Some users have been directed by SAS technical support to
               replace the old-style substitution macro with the %MACRO 
               facility.  One recommended implementation is:            
                   DATA _NULL_;                                         
                   CALL SYMPUT('_DAY',DAY);                             
                   PROC COPY IN=DAY OUT=&_DAY;                          
               More later.                                              
Change 08.212  This change deletes MXG member XMACEPIL and puts support 
VMACEPIL       for EPILOG CL1000 back in member VMACEPIL. Change 8.019  
XMACEPIL       was applied to member XMACEPIL, which was then copied in 
Jan 14, 1991   to VMACEPIL.  It is believed to support 4.4.0, 4.5.0, and
               4.5.1 versions, but test data is not at hand.            
Change 08.211  New variable INVOKSAS in TYPESYNC dataset from user SMF  
VMACSYNC       record produced by SYNCSORT now identifies if this SORT  
Jan 14, 1991   was invoked by the SAS System.  Note that SYNCSORT's     
               enhancement PTF number EW2903 must have been installed by
               your SYNCSORT installer before this field will be "Y".   
Change 08.210  DCOLLECT migration/backup tape data sets datetime values 
VMACDCOL       UMTIME or UBTIME were wrong. Both occurrences of JULDATE 
Jan 14, 1991   must be changed to DATEJUL (lines 037800 and 040000).    
               In addition, the value written in the record by IBM is   
               apparently wrong itself, until you install APAR OY37378. 
   Thanks to Derek Cespedes, Florida Power and Light, USA.              
Change 08.209  TSO/MON variable READTIME is missing in PreReleases 8.3  
VMACTSOM       thru 8.7. Change 8.104 to correct CA7 corruption of the  
Jan 14, 1991   first byte of Reader Date worked ONLY if for corrupted   
               records; normal, non-CA7 records produced missing values.
               In line 040110, remove the DO; and delete line 040130    
               (containing END;) so that READTIME is always created by  
               the INPUT function.                                      
   Thanks to David B. Adams, National Life of Vermont, USA.             
Change 08.208  IBM SMF APARs have added new data fields.                
VMAC23       1.SMF now flags when the CPU timer goes bad in a new field 
VMAC30         in the type 30 timer section.  APAR OY24857 applies.     
Jan 12, 1991   New variable CPUERROR (which was formerly a reserved     
               field) will have hex 0000 (APAR not installed), hex 8000 
               (APAR installed, no error). The subsequent bits are on if
               the corresponding CPU measurement value (there are now   
               seven CPU measures) was defective and set to zero in this
               record.  The APAR also eliminates an OC9 ABEND of SMF.   
             2.SMF now flags a step cancellation due to NOT CATLG 2 or  
               NOT CATLG 7 condition (one bit for both reasons), but    
               only if the installation specified JOBFAIL(YES) in ALOCXX
               SYS1.PARMLIB member (which ABENDs the NOT CTLG JOB). APAR
               OY38977 applies. IBM's bit 11 of SMF30STI is used, and   
               MXG ABEND will contain NOTCTLG if the step was cancelled 
               due to NON CATLG condition.  In addition, new variable   
               TERMIND contains all 16 bits of the step/job indicator   
               for detail examination in your programs, if needed.      
             3.SMF type 23 record (buffer statistics) is expanded to    
               better describe the SMF writer's use of its memory. APAR 
               OY27449 applies. New variables created in TYPE23 dataset:
                   CURALLOC='SMF BUFFER*CURRENT*ALOCATION'              
                   HWMALLOC='SMF BUFFER*HIWATERMK*ALLOCATION'           
                   PERALLOC='INCREMENT*PER EACH*ALLOCATION'             
Change 08.207  MXG 8.7 only. Several test sites noted that //SOURCLIB DD
JCLTEST6       JCL statement was missing from the FORMATS step, and the 
Jan 12, 1991   SMFSMALL step's //SYSIN DD DSN=MXG(UTILGETM) was replaced
               with a //SYSIN DD * statement and a %INCLUDE.            
Change 08.206  SAS 6.06 Compatibility, only in MXG PreReleases thru 8.7.
UTILGETM       The UTILGETM program, used only during installation of   
Jan 12, 1991   MXG (to build a small SMF file for testing), will put SAS
               6.06 (even at the October maintenance level) in a 100%   
               CPU Busy loop, causing a System 322 ABEND.  The error is 
               in the processing of the %VMXGVBS macro which was added  
               by MXG Change 8.174.  This macro generates different DCB 
               attributes for the FILE statement (CMS can't create VBS) 
               so new MXG users under CMS did not die during testing.   
               The %VMXGVBS macro added to UTILGETM was almost exactly  
               the same as the %VMXGLRC macro for the INFILE statement  
               in the _SMF macro. The differences were that %VMXGVBS    
               sets only the LRECL parameter of the INFILE SMF, while   
               %VMXGVBS sets LRECL, DCB, and BLKSIZE options, and that  
               their references were located in different positions in  
               their respective INFILE and FILE statements. Over 50 runs
               322 ABENDed before the %MACRO compiler error was found to
               be circumvented when there is a "parameter=value"syntax  
               preceding the %VMXGVBS invocation. Adding COL=COLOUT to  
               line 01900 in UTILGETM circumvents the loop. This works: 
                             FILE SMFOUT COL=COLOUT %VMXGVBS;           
              This didn't:                                              
                             FILE SMFOUT %VMXGVBS;                      
              SAS Institute now knows the loop occurs only a %MACRO on  
              a FILE or INFILE statement (and also only if the %MACRO   
              itself starts with %IF), and are working on the problem.  
              SAS Zap Z606xxxx, available Month dd,yyyy corrects this   
              error in the SAS 6.06 %MACRO compiler. Tracking 163046.   
   Thanks to Barry Lampkin, Blue Cross Blue Shield of Mass., USA.       
   Thanks to Grady Tart, McM Information Services, Inc, USA.            
Change 08.205  PreRelease 8.2 thru 8.7 only. The label for CPUTCBTM may 
VMAC110        say "SUM OF THREE CPU TCB TIMES", but it is still the    
Jan 11, 1991   CPU TCB TIME. (The CICS 3.1 support label overrode the   
               original label).                                         
   Thanks to Raymond Zieverink, Belk Stores Services, USA.              
Change 08.204  DB2ACCT variable QXNSMIAP was misspelled as QXMSMIAP. The
ANALDB2R       correct variable QXNSMIAP was added by this change, but  
VMACDB2        the original variable is also kept so that any reports   
Dec 20, 1990   that you've written won't fail. Please correct in your   
               report programs and eventually QXMSMIAP will be dropped. 
   Thanks to Ron Root, Oryx Energy Company, USA.                        
---Changes thru 8.203 were included in MXG PreRelease 8.7 Dec 18, 1990--
Change 08.203  WSF2 record from RSD newest version 3.3.4 has a section  
VMACWSF        mis-located two bytes to the right and truncated at the  
Dec 17, 1990   end. However, MXG code had not been validated with a real
               record from that version, and a nine-bit bit test only   
               failed when actually executed, and the overlay of two    
               fields in the WSF2 DSECT was missed in MXG coding. The   
               two MXG oversights were corrected, and the logic was     
               expanded to support both the correct and incorrect record
               format. Until maintenance exists from its vendor, the    
               value of ACCNPELT will be incorrect, and usually zero.   
   Thanks to Dennis Mahlubam, Aetna Life & Casualty, USA.               
Change 08.202  MXG didn't calculate converted RMF data (3.5.1 to 4.1.1).
VMAC79         The equation for R791FMCT in line 027800 should be       
Dec 16, 1990     ELSE R791FMCT=R791RSV1 + R791RSV2;                     
               Note R791WSS is missing here, since SMF79ASL is only 60. 
   Thanks to Miller Dixon, Continuum, USA.                              
Change 08.201 -VM/XA Monitor records appear to have an IBM error. In the
VMACVMXA       VXUSEINT record the HFQUCT (Hi Freq Sample Count) resets 
Dec 16, 1990   itself erratically.  MXG tries to capture the CPU time a 
               VM machine used between a logon and the end of the first 
               interval, and used HFQUCT in that heuristic algorithm.   
               However, that logic is now invalidated by this IBM reset 
               and the user interval record is no longer output when a  
               logon event is detected.  The actual change was to       
               comment out the two lines "IF NOT (FIRST.BEGINMTR OR     
               until HFQUCT can be corrected by IBM.                    
               Perhaps someday, IBM will provide the long-requested     
               flag in the user sample record so the time from logon    
               to end of interval can be captured safely.               
              -An unrelated change was made to better format the notes  
               MXG writes to the log when operator commands are found.  
               Additionally, the command variable CALCMD is now length  
               200 in all kept data sets.                               
   Thanks to Procter & Gamble, BELGIUM.                                 
Change 08.200  IMS Log type 35x with ENQFLAG=0Cx and FLAG2=40x is now   
VMACIMS        output in the IMS35P record.  This is the last reported  
Dec 16, 1990   record subtype that was not output in TYPEIMS processing.
   Thanks to Magnus Jansson, DAFA Stockholm, SWEDEN.                    
Change 08.199  SAS 6.06 Circumvention discussed in Changes 8.078 and    
ANALDB2R       8.059 were not propagated into all reports in ANALDB2R.  
TESTANAL       The default set of ANALDB2R reports were changed, but in 
Dec 16, 1990   lines 028780 and 45960 the commas after AUTHCHG UTILITY  
               and OUTCODE=DROP DATETIME; must be removed. The fourteen 
               occurrences of " .T102" must be changed to " . T102", and
               two " .DB2" must be changed to " . DB2".  MXG testing of 
               %ANALDB2R by member TESTANAL was corrected to now invoke 
               and test all 27 of the DB2 reports.                      
   Thanks to Susan Marshall, SAS Institute Europe, GERMANY.             
Change 08.198  ACF2 variable ACLFLDVB could raise "Invalid Data" note.  
VMACACF2       Line 052900 (the only occurrence of PK4.) should end with
Dec  7, 1990   "ACLFLDVB ?? PD4. @;" instead of "ACLFLDVB PK4. @;"      
   Thanks to Rachel Bromage, L.O.L.A., ENGLAND.                         
Change 08.197  Unused.                                                  
Change 08.196  Unused.                                                  
Change 08.195  Change 8.056 had not been installed in PreReleases. Lines
VMACSYNC       023800 and 024800 should now read  SIRFM ?? 1.  and      
Dec  4, 1990   SORFM ?? 1.  respectively.                               
   Thanks to Bob Rutledge, Sherwin Williams Paint, USA.                 
Change 08.194  Validation of the STC Silo HSC 1.1.0 SMF Record uncovered
VMACSTC        an MXG coding error that caused STOPOVER. Line 034600    
Dec  3, 1990   should input  STC07TNM  PIB1. (instead of PIB4.).        
   Thanks to Leslie Dixon, Santa Fe Energy Resources, USA.              
Change 08.193  VMXGVTOF is a modification of VMXGVTOC that will read the
VMXGVTOF       output of ASMVTOC (the "Fast VTOC Reading program") and  
Dec  3, 1990   will create the same datasets (VTOCLIST,VTOCMAP,VTOCINFO)
               that were created by the slower VMXGVTOR/VMXGVTOC pair.  
               Note that VMXGVTOF replaced the (temorary) MPXGVTOC that 
               was introduced in Change 8.117.                          
   Thanks to Jeff Fox, SKF, USA.                                        
Change 08.192  Reserved Change Number.                                  
Dec  2, 1990                                                            
Change 08.191  This contributed member estimates processor storage      
ANALSTOR       requirements based on techniques taught by IBM's         
Nov 29, 1990   "MVS/ESA Subsystem Analysis: Processor Storage           
               Estimation" seminar taught by the South Western          
               Area Systems Center.  The two step process suggested     
               first measures current usage based on RMF type 71 and    
               type 79 ASD records and second estimates the real and    
               expanded storage needed for zero paging (or very close   
               paging) taking under consideration future workload       
               growths.  This analysis program accomplishes only the    
               first step, and provides a program to report the         
               current usage based on this IBM methodology.             
   Thanks to Miller Dixon, Continuum, USA.                              
Change 08.190A The original author of the support for Arbiter SMF       
EXARB404       records (from Tangram product) has updated the code      
EXARBC01       to support changes in Version 2.1.1 of that product.     
EXARBC02       Three new data sets are created.                         
Nov 29, 1990                                                            
   Thanks to J-P Tonnieau, GMF System Team SARAN, FRANCE.               
Change 08.190  VMXGVTOC produces a single "error" message,              
VMXGVTOC         POINT=1 NOBS=0 POINTER=. VOLSER= DSNAME= ...           
Nov 28, 1990   that has no real effect, that will disappear if you move 
               the SET statement (line 063700) to after the STOP        
               statement (line 063800).                                 
   Thanks to Magnus Jansson, DAFA Stockholm, SWEDEN.                    
Change 08.189  The POINT= operand of the SET statement cannot be used   
ASUMCICS       for a dataset on tape under SAS 6.06.  We used it under  
Nov 27, 1990   5.18, but it turns out that 5.18 documentation said that 
               it couldn't be used for tape!  POINT= and NOBS= were used
               to determine transparently which CICS dataset (CICSTRAN  
               or MONITASK or both) was to be summarized. The logic has 
               been redesigned to make the same determination without   
               the POINT= operand, so tape datasets can be used.        
   Thanks to Bob Grant, Gold Bond, USA.                                 
Change 08.188  The final RETURN; statement was after the END; statement,
VMACHSM        which caused no problem as long as HSM SMF record was    
Nov 27, 1990   processed by itself; adding VMACHSM to BUILDPDB caused   
               subsequent data sets to be not output! The RETURN; is    
               now moved inside the END; statement.                     
   Thanks to Chuck Hopf, Hopf Consulting, USA.                          
Change 08.187  Hitachi processors using MLPF (their PR/SM or MDF) can   
VMAC7072       mix dedicated and shared processors in the same LPAR,    
Nov 27, 1990   but MXG did not protect for that possibility and the     
               CPUWAITM in the TYPE70 was incorrect (but the individual 
               CPUWAITn variables were correct). This change expanded   
               the logic for Dedicated processors to re-calculate the   
               CPUWAIT variable across both dedicated and shared CPUs.  
   Thanks to Matthew Bakulich, Crowley Maritime, USA.                   
=========Changes thru 8.186 were printed in Newsleter EIGHTEEN==========
Change 08.186  PreReleases 8.2 thru 8.5, JES 3 BUILDPDB, line 044500    
BUILDPD3       added variables JINLTIME and JSRTTIME to the LENGTH      
Nov 16, 1990   statement but left out the "8" before the semicolon.     
   Thanks to Phil Waters, Arthur Andersen, Bristol, ENGLAND.            
Change 08.185  PreRelease 8.3 thru 8.5 had an extra debugging statement 
VMACDB2        "IF QWHSTYP GT 2 THEN PUT QWHSTYP= Z=;" after the @; in  
Nov 16, 1990   line 165000 which should have been removed. Other than   
               possibly filling your log, there was no real problem.    
   Thanks to Ron Allison, UDSI, USA.                                    
Change 08.184  PreRelease 8.5 could fail with a STOPOVER due to SMF     
VMAC57         type 57 (only with MVS 4.1) because of typographical     
Nov 15, 1990   errors in Change 8.167.  Line 009700 should be           
                 IF LEN GE 116 THEN  instead of GE 16  and line 009800  
               should be  INPUT @101+OFFSMF  instead of @100.           
   Thanks to Bob Malitz, United Parcel Service, USA.                    
Change 08.183  PreRelease 8.5 needed minor tuning of Landmark TMON/CICS 
TYPEMON8       Version 8 support. The division by TCINPRCN for long     
Nov 15, 1990   running mirrors needed zero-divide protection.           
Change 08.182  The CICS 3.1+ Statistics records are now combined into   
BUILDPDB       _CICNTRV.CICINTRV by new member CICINTRV which is now    
BUILDPD3       automatically included in BUILDPDB/3 and TYPE110. The    
CICINTRV       CICINTRV data set merges the interval "INT" records from 
IMACCICS       statistic data sets, and the original CIC..... datasets  
TYPE110        remain in the work file.  CICINTRV is a major enhancement
Nov 14, 1990   for CICS 3.1 analysis, and logically is a replacement for
               the non-existent CICSYSTM. Note that if no "INT" records 
               exist (which would happen if only "EOD" was requested),  
               there will be no observations in CICINTRV. These nineteen
               CICS Statistics datasets are merged together to create   
               the CICINTRV interval statistics dataset:                
                  CICAUTO  CICDMG   CICDQG   CICDQT   CICDS    CICDTB   
                  CICFCT   CICLDG   CICM     CICSDG   CICSMDSA CICST    
                  CICTC    CICTCT   CICTDG   CICTM    CICTSQ   CICTST   
Change 08.181  Boole & Babbage IMF product record for IMS chained       
TYPECIMS       transactions contain the ARRVTIME of the original        
Nov 14, 1990   transaction in the subsequent records, causing the input 
               queue time to be too long. This contributed fix adds the 
               logic to sort and reprocess the IMS.TRANSACT datasetand  
               resets ARRVTIME to the ending time of the preceding      
               transaction in each chain.                               
   Thanks to David Daner, Sun Refining and Marketing, USA.              
Change 08.180  IMS Response Mode Transactions are now identifiable      
VMAC110        with new variable RSPMODTR added to IMSTRAN dataset.     
Nov 14, 1990                                                            
   Thanks to ???, CED BORSA, ITALY.                                     
Change 08.179  CICS Type 110 variables DSAHWMK, PROGCOMP, PROGSTOR,     
VMAC110        STORHWMK, and STORHWMH all measure bytes, but their      
Nov 14, 1990   units ranged from bytes, to doublewords to pages. Now,   
               all are converted to bytes and formatted with MGBYTES    
               format for consistency and clarity. (MGBYTES prints      
               100K, 200M, etc, scaling bytes to the appropriate range.)
   Thanks to Elisabeth Jensen, Aetna Life and Casualty, USA.            
Change 08.178  IMS Log processing algorithms enhanced in MXG 8.3 arenow 
VMACIMS        corrected for two conditions that had occasionally caused
Nov 11, 1990   INPQUETM and RESPNSTM to be appreciably wrong. The first 
               change affected 21 transactions, the second affected 134 
               transactions, out of a total of 368,000 transactions!    
             1.IMS Log 35x records with ENQFLAG=0Cx and FLAG2=0Cx did   
               not decode correctly, which caused RESPNSTM to be very   
               large in a very small number of transactions.            
               Near line 070600, after line                             
                  IF FLAG2='...1.....'B THEN LOC=LOC+2;                 
               insert the following new line:                           
                  ELSE IF FLAG2='00001100'B THEN LOC=LOC+4;             
               This has been validated only for IMS 2.2, but it should  
               apply also for both 2.1 and 3.1.  One of the big logic   
               problems in MXG support of the IMS log is the decoding of
               the 35x records. IBM does not describe all of the bit    
               values for ENQFLAG, and each combination of ENQFLAG/FLAG2
               must be experimentally determined to be an input, output,
               message, or program-to-program enqueue event. MXG notes  
               on the log "LCODE 35X NOT OUTPUT ENQFLAG= FLAG2=" when   
               unknown values are found, and deletes the record. Values 
               of 0C/40, 2F/80, 2F/88 have been reported and are thought
               to be output enqueue (and hence non-critical to delete). 
               It appears that FLAG2 must contain the '04'x bit on for  
               the enqueue to be for input.                             
             2.The logic added in PreRelease 8.3 to reset ARRVTIME when 
               it was missing was correct and did correct problems by   
               sorting correctly. Out-of-time-sequence 01/03x records   
               were also reset by the 8.3 change, and seemed to work for
               many transactions, but when the transaction's 35x record 
               was also out of time sequence, the change overcorrected, 
               and the INPQUETM and ENQTIME were wrong.                 
               Near line 025600, change the test which read             
               to now read                                              
                IF ARRVTIME=. THEN ARRVTIME=LASTTIME-.001;              
   Thanks to J. Cary Jones, Philip Morris, USA.                         
   Thanks to T. H. Witt, Oscar Mayer Food Corp, USA.                    
   Thanks to Magnus Jansson, DAFA Data AB, SWEDEN.                      
Change 08.177  -CICS/ESA 3.1 transactions accessing DL/I databases with 
IMACICDB       DBCTL can contain (optionally) a 256-byte segment with   
IMACICDL       clocks and counters for the CICS-caused DL/I activity.   
IMACICUS       (DL/I counters from the IMACICDL member can also exist,  
UTILCICS       but contain DL/I counts only for Local DL/I). Enabling   
VMAC110        the DBCTL data is described in the Customization Guide.  
Nov 11, 1990   Previously, the transaction record consisted of a static 
               segment, the optional local DL/I segment, the optional   
               user counters/clocks, and then ended with the optional   
               user character field.  Since the character field (often  
               used for application data, account number, etc.) was at  
               the end of the transaction record, MXG simply read the   
               rest of the record into USRSTRNG, and then truncated the 
               data into the kept variable USERCHAR, whose length you   
               specified with the LENGTH statement in member IMACCICS.  
               With the restructured CICS 3.1 record, however, you must 
               now also set the variable USRCHRLN in IMACICUS to tell   
               MXG how many bytes of character data is to be read into  
               USRSTRNG so that the DBCTL data can be read; the order in
               CICS 3.1 is static, Local DLI, User clocks/counters, user
               character string, and DBCTL segment, when the new EMP is 
               added after your existing MCT calls.                     
               The new IMACICDB member decodes the DBCTL fields when    
               you remove the comment block (just like IMACICDL did for 
               local DL/I). The actual DBCTL segment is 256 bytes, but  
               only 158 bytes are currently used by IBM, and they create
               these 34 new variables (only if IMACICDB is changed);    
                 STATBFWT='WAITS FOR*DEDB*BUFFERS'                      
                 STATDLET='DATA BASE*DELETES*ISSUED'                    
                 STATGHN ='DATA BASE*GHN CALLS*ISSUED'                  
                 STATGHNP='DATA BASE*GHNP CALLS*ISSUED'                 
                 STATGHU ='DATA BASE*GHU CALLS*ISSUED'                  
                 STATGN  ='DATA BASE*GNP CALLS*ISSUED'                  
                 STATGNP ='DATA BASE*GNP CALLS*ISSUED'                  
                 STATGU  ='DATA BASE*GU CALLS*ISSUED'                   
                 STATINTC='WAIT TIME*INTENT*CONFLICT'                   
                 STATISRT='DATA BASE*INSERTS*ISSUED'                    
                 STATMSCL='RESERVED*FOR*FAST PATH'                      
                 STATPOOL='WAIT TIME*FOR POOL*SPACE'                    
                 STATREPL='DATA BASE*REPLACES*ISSUED'                   
                 STATWEXQ='WAITS ON*EXCLUSIVE*ENQUEUES'                 
                 STATWTEQ='WAITS ON*TEST*ENQUEUES'                      
                 STATWUEQ='WAITS ON*UPDATES AND*ENQUEUES'               
              -Unrelated, but discovered in this phase of testing, the  
               %VMXGFOR macro references inside old style macros, in the
               UTILCICS dictionary-reading utility were corrected to now
               contain double percent signs and titles were clarified.  
   Thanks to Hamid Tavakolian, Continuum, USA.                          
Change 08.176  IMS 3.1 DBCTL Thread Type transactions have zero for the 
TYPEIMS        value for NMSGPROC, causing them to be lost. There were  
VMACIMS        two errors in MXG logic.  First, the setting of PROGTYPE 
Nov  9, 1990   from PTYPE values 3, 4, and 5 (for D, Q, and R), near    
               line 038500 in VMACIMS should have been 4, 8, and 128.   
               Second, the tests in TYPEIMS for PROGTYPE='B' near line  
               024400 and 038700 are expanded to protect for DBCTL:     
   Thanks to Hamid Tavakolian, Continuum, USA.                          
Change 08.175  Landmark's TMON/MVS release 1.11 was supposed to become  
EXTMVTR        release 1.12, but it is now in managed availability as   
EXTMVTRS       release 1.1, with two new data records and some changes. 
EXTMVWK       -In LMRKREC="SY" section, insert a line with  +4  after   
EXTMVWKP       SYSMDL $CHAR2., change SYSTSO1P PIB4.2 to PIB4.4, and    
IMACTMVS       delete the line with  +4 after SYSPDT is read in.        
TYPETMVS      -Logical data records can span physical blocks, and the   
VMACTMVS       spanning can split fields! Thus far, only the I/O data   
Nov  9, 1990   records have been found to be spanned. For example, with 
Nov 28, 1990   552 I/O devices, an interval's logical record contains   
               41,400 bytes of data (plus headers), but is written in   
               three blocks of 13844 bytes each. Part of a field is at  
               the end of the first block, with the rest of that field  
               continued in the 33rd byte of the second block! There is 
               only one way to handle these non-standard records that   
               can exceed 32760 bytes, and that requires the use of an  
               Infile Exit to the SAS System. Fortunately, the Infile   
               Exit named TMON that is supplied by MXG for compressed   
               Landmark CICS records has been modified to support either
               compressed and/or spanned record processing! The member  
               EXITMONI, however, only works under SAS 5.18.            
                 In Newsletter EIGHTEEN, I thought we would also change 
                 the 6.06 exit, and added member EXITMON6 in preparation
                 for its modification, but it turns out that SAS 6.06   
                 itself will need modifications before the infile exit  
                 can be redesigned.  Thus EXITMON6 only supports the    
                 decompression of Landmark records under SAS 6.06; the  
                 EXITMONI member does both decompression and unspanning 
                 but only under SAS 5.18.                               
               Follow the instructions in the EXITMONI member, build    
               the TMON exit, and then edit new member IMACTMVS to tell 
               MXG that you have installed the Infile exit. Note that   
               this modified TMON exit will process either TMON/MVS or  
               TMON/CICS records.  If you have not installed the TMON   
               exit and MXG finds spanned TMON/MVS records, the bad data
               record will now be deleted and so noted on the log; prior
               to this change, TMON/MVS spanned records cause STOPOVER. 
             3.Four new datasets are built, two each from the TR and WK 
               records. TMVSTR contains the Tape Record statistics, and 
               TMVSTRS contains one observation for each tape drive in  
               a TR record.  TMVSWK contains the "static" variables in  
               the WK record, and TMVSWKP contains one observation for  
               each period of each performance group in the WK record.  
             4.Further validation added JIJNAME to TMVSJIST, corrected  
               labels for IOELDNRP,PSMAXSU,PSMINSU, and changed the     
               INPUT for SYSWTIME from PIB8.6 to MSEC8.                 
   Thanks to Bob Rutledge, Sherwin Williams Paint, USA.                 
Change 08.174  This change should be transparent. It permits MXG to be  
VMACSMF        used for SMF record processing either under CMS or OS    
UTILGETM       versions of SAS, by using a new %MACRO to set the values 
Nov  9, 1990   of RECFM and LRECL differently when MXG is exeuted under 
               CMS SAS than when MXG is executed under MVS SAS.         
                (Previously, CMS users had to EDIT these changes.)      
               UTILGETM was also expanded for both environments to look 
                for additional subtypes in creating the SMFOUT file.    
               Under CMS, VBS records can only be read, not written, and
                they cannot have LRECL greater than 32756. Furthermore, 
                RECFM=VB is not supported for output; only RECFM=V      
                records can be created (CMS SAS accepts RECFM=VB syntax 
                but actually creates RECFM=V records). With this change,
                execution under CMS causes the _SMF macro used for SMF  
                input to specify RECFM=VBS,LRECL=32756, and the UTILGETM
                output spec will be RECFM=V,LRECL=32756,BLKSIZE=32760.  
                Additionally, since the SAS JFCB= option of the INFILE  
                statement does not function under CMS, variable SMFJFCB 
                is now protected to eliminate the uninitialized variable
                message when MXG is executed under CMS SAS for SMF data.
               Under MVS, VBS records can have LRECL=32760 (and actual  
                records with 32760 LRECL are written by SMF!). Since the
                MXG specification has been LRECL=32760, this change had 
                no logic change to _SMF or UTILGETM when MXG is executed
                under MVS SAS.                                          
Change 08.173  Preliminary support for Amdahl's MPT (MDF Performance    
EXMPTDOM       Tool) SMF record.  This new tool replaces the existing   
EXMPTEND       TYPEMDF record with enhanced information. Existing names 
EXMPTGLO       of TYPEMDF variables were preserved when recognized, but 
EXMPTSEL       until the actual DSECT is provided by Amdahl, all names  
IMACMPT        are subject to change and should be used with caution.   
TYPEMPT        The four new datasets created from the MPT SMF records   
VMACMPT        (whose ID is set in IMACMPT) are MPTDOMAN, MPTGLOBL,     
Nov  9, 1990   MPTSELCT, and MPTENDSL. This support has not been tested 
               with actual data records yet.                            
Change 08.172  SPIN library suddenly fills after installation of JES2   
BUILDPDB       maintenance (either migration to MVS/ESA or PUT 8908).   
BUILDPD3       This change replaces the discussion (without a change)   
Nov  9, 1990   on the MXG 8.5 PreRelease as Change 8.158.               
             1.The logic decision in BUILDPDB ("to SPIN or not to SPIN")
               controls the contents of PDB.JOBS, PDB.STEPS, PDB.PRINT, 
               and the SPIN data library. BUILDPDB will output to the   
               PDB library or SPIN library based on these criteria:     
               a) Job has "spun" more times than your chosen value of   
                  _SPINCNT (defined in IMACSPIN). Each time a job is not
                  output, its SPINCNT is incremented. If you set the    
                  value of _SPINCNT in IMACSPIN to 0, BUILDPDB will then
                  always output to the PDB and will never output to the 
                  SPIN library.                                         
               b) The job is complete. There are two possibilities:     
                  i.) The job failed before execution (i.e., JCL error  
                      or canceled before initiation). The JES2 JSTRTIME 
                      (start of execution) will be missing, and only    
                      type 26 (and possibly type 6) records exist for   
                      the job.                                          
                 ii.) The job is really complete, and all SMF records   
                      have been read. This requires that both a type 26 
                      and a type 30 subtype 5 record were found, AND the
                      timestamp in the subtype 5 (MVS execution ended)  
                      is between JSRTIME to JENDTIME (the JES execution 
                      start to end times). That timestamp test is needed
                      to ensure that the real execution type 30 record  
                      was found.  If the SMF type 30 timestamp doesn't  
                      match the JES type 26 timestamp, all records on   
                      the job are "SPUN" until the correct type 30      
                      subtype 5 is found.  (Restarted jobs create       
                      multiple type 30 subtype 5s. With multiple MVS    
                      systems, today's SMF file could contain the type  
                      26 and a type 30 from the first execution, but the
                      real (final) type 30 record could be in an        
                      un-dumped SMF file that will not be read until    
                      tomorrow's BUILDPDB run.)                         
               This logic is implemented in BUILDPDB by setting OKFLAG; 
                if OKFLAG is set to 1, the job is created in the PDB,   
                if OKFLAG is not set, the records are sent to the SPIN. 
              SPINCNT= MAX(SPIN26,SPIN6,SPIN30_5,SPIN30_4,SPIN30_1,0);  
              IF   IN26 AND IN30_5 AND                                  
              ELSE IF SPINCNT GE _SPINCNT                 THEN OKFLAG=1;
             2.Several sites suddenly found their SPIN libraries filled 
               after migration from MVS/XA to MVS/ESA, or after applying
               JES2 maintenance (somewhere between PUT 8902 and 8908).  
               There were PTFs which altered JES2 time stamps, and one  
               of the PTFs went PE (PTF in Error), and perhaps the site 
               did not correctly install all of the PTFs, but the actual
               result of the maintenance was that the site's JES2 type  
               26 SMF record's JENDTIME variable (SMF26XPT, JCTEQOF, the
               job ended time, also in the $HASP395 job ended message)  
               was now earlier than the MVS type 30 subtype 5 (the job  
               termination JTRMTIME variable (SMF 30TME) timestamp!!!   
               This has NEVER been true before, and the sites with the  
               problem saw the change occur precisely when they put on  
               the IBM maintenance.  Not only did IBM JES2 Level 2 say  
               there was no problem, they also tried to say that there  
               is no correlation between the JES SMF26XPT execution end 
               and the MVS SMF30TME job termination time (which is the  
               timestamp when SVC83 moves the record into the SMF buffer
               in the SMF address space)! But SMF30TME occurs while the 
               job is still in MVS initiation and JES2 can't end the    
               execution until after SVC83 has completed and until after
               MVS terminates its initiator. At these sites, the actual 
               JENDTIME to JTRMTIME delta is hundreds of milliseconds,  
               and it plots uniformly across the entire day. Note also  
               that SVC83 does not write data to disk, but only moves an
               SMF record into the SMF buffer; the actual VSAM write of 
               the CI containing that SMF record will occur much later, 
               under an asyncronous SRB in the SMF address space.       
               But even if I'm right and IBM's wrong, it doesn't matter.
               IBM can't find their problem or fix their code nearly    
               as fast as you and I can change the MXG logic to protect 
               for the error.  Since the purpose of the time test is to 
               match the type 30 with its type 26, we will use the MVS  
               type 30 job initiation time, JINITIME, which has not been
               touched by JES2 maintanance, instead of JTRMTIME, which  
               was altered, in the MXG BUILDPDB logic.  Thus if the SPIN
               library suddenly fills, compare JTRMTIME in SPIN30_5 with
               JENDTIME in SPIN26J2, and if JENDTIME is earlier than the
               JTRMTIME, you know you have this problem. To correct,    
               simply change JTRMTIME in the BUILDPDB "To Spin or Not To
               Spin" logic shown above to instead use JINITIME.  This   
               Change has been made in MXG PreRelease 8.7 and later.    
   Thanks to Georg Simon, Federal Reserve of Philadelphia, USA.         
Change 08.171  PreRelease 8.5 support for Landmark CICS Version 8 had a 
TYPEMON8       little error, but it caused a big dump and a STOPOVER!   
Nov  5, 1990   Add  +1 at the end of line 066800 (ends with TH PK1.)    
               to skip over the eighth byte of that datetimestamp.      
   Thanks to Marcia Ketchersid, Price Waterhouse, USA.                  
Change 08.170  The FORMATS step (only on MXG 8.5 PreRelease) was missing
Nov  5, 1990   JCL statement.                                           
---Changes thru 8.169 were included in MXG PreRelease 8.6 Oct 27, 1990--
Change 08.169  Support for VM/ESA Version 1 Release 1.0 ESA Feature.    
EXAPLEDT       The contents of the MONWRITE output data records has been
EXAPLSDT       changed with new fields and new records, but the changes 
EXAPLSRV       were implemented by IBM in a completely compatible manner
EXIODATS       and thus previous versions of MXG Software will not fail 
EXSTOASS       when they process the ESA Feature data records.          
VMACVMXA       The four new records create five new MXG datasets (and   
Oct 16, 1990   thus there are five new EX...... exit members), and 15 of
Nov  5, 1990   the existing MXG datasets have new variables.            
Dec  4, 1990                                                            
             1.These fifteen existing MXG data sets content's have been 
               changed as indicated:                                    
               VXSYTXSP - New variables PLSPGMRD,PLSPGMRX,PLSPGXRD, and 
                          PLSPGXWT (page reads/writes to/from ESTORE/AUX
                          due to page translations/migrations). Sample. 
               VXSYTASG - SALPRFAV,SALPRFIU are now reserved (were for  
                          Preferred Paging), and new variables added for
                          page/spool average/total MLOAD (CALTOTM1,M2,  
                          CALAVGM1,M2). Sample.                         
               VXSYTCOM - New variables for counts of IUCVs good to/from
                          and bad to services SYSTEM,ACCOUNT,LOGREC,CRM,
                          IDENT,CONFIG, and SPL, twenty-one variables   
               VXMTREPR - Added new flag if Application Domain Event is 
                          active, and CONFIG time limit variable.       
               VXMTRPAG - DDIPREF now reserved (was Pref. Paging Flag), 
                          DDIPPCYL renamed RDCPCYL, and RDEVSID, Host   
                          Subchannel ID now added.                      
               VXMTRSPR - Added new flag if Application Domain Sample is
                          active, and CONFIG time limit variable.       
               VXMTRSCH - New SRMWSSMP for SET SRM MAXWSS value.        
               VXSCHDDL - New VMDLRGST if user prempted for storage.    
               VXSCLSRM - New SRMWSSMP for SET SRM MAXWSS value, and    
                          VMDSCDF1 was replaced with VMCQDSPU.          
               VXSTORSG - New CALASCRT,CALASCFT,CALASCUT for paging     
                          virtual segment control (reorgs, unused and   
                          used pages).                                  
               VXSTORSP - New PLSPGDRD,PLSPGDWT for page tables paged   
                          to/from auxiliary storage.                    
                          paging device service time, MLOAD, scans for  
                          allocations, actual allocations, and twenty   
                          EXPCON01-EXPCON20 tabulating how many times   
                          that many contiguous slots were available.    
               VXSTOATC - DDIPREF now reserved, CALPAGCY renamed to     
                          RDCPCYL, and RDEVSID added.                   
               VXUSEACT - VMDCTPPS (Pref Page Slots) deleted.           
               VXIODCAD - New CALPSF data for 3990-3 status bytes.      
             2.There are five new datasets which can exist. However, two
               of the new datasets (VXAPLEDT,VXAPLSDT) will have nonzero
               observations is your site has an application that uses   
               the new interface to create Application data records.    
               Note that IBM uses that interface, and MXG creates the   
               VXAPLSRV dataset for file pool servers.                  
               VXSTOASS - Auxiliary Shared Storage Sample Data record   
                          describing resources from the CP-owining a    
                          shared volume (PAGE/SPOOL READs/WRITES, queue 
                          length, and SSCH+RSCH counts).                
               VXIODATS - Attach Shared Device Event Data record, which 
                          contains exactly the same data as the existing
                          VXIODATD Attach (non-shared) Device dataset.  
               VXAPLEDT - Application Event Data record, with a variable
                          length string of installation/application     
                          created event data, domain 10 record 1.       
                          No IBM application currently uses this new    
                          event data interface.                         
               VXAPLSDT - Application Sample Data record with a variable
                          length string of installation/application     
                          created interval data, domain 10 record 2.    
                          IBM applications do now use this new interface
                          but they are recognized by MXG and create the 
                          new VXAPLSRV dataset described below.         
               VXAPLSRV - IBM's use of Application Sample Data to record
                          "Server Monitor Records". Both SFS file pool  
                          servers and CRR recovery servers use the      
                          APPLDATA class call to provide 123 counters or
                          clocks that are listed below. MXG converts all
                          counters to rates per second (which are, by an
                          MXG convention, formatted 7.1 to so indicate  
                          that they are rates), but the clocks are kept 
                          in units of seconds during the sample interval
                          (and FORMATed TIME12.2 to so indicate). The   
                          VMDUSER (VM User ID) must be used to identify 
                          which server created the application data:    
                            Server-ID     Observation contains          
                            VMSERVR       CRR (Counters 103-116 are only
                                               for CRR, and 114 will be 
                                               always non-zero if CRR). 
                            VMSERVS       SFS (System owned file pool)  
                            VMSERVU       User (User owned file pool)   
                          The following list of variables created from  
                          these servers using the new application data  
                          interface clearly is a major enhancment in    
                          the measurement and management of the shared  
                          file system and other future file servers:    
                     CALDATLN='LENGTH OF*APPLICATION*DATA'              
                     CALDATOF='BYTE OFFSET*TO APPLICATION*DATA'         
                     DEDMTFLG='DEDICATED*MAINTENANCE*MODE FLAG'         
                     MDGPROD ='APPLICATION*PRODUCT AND*RELEASE'         
                     SRVCN001='ACTIVE*AGENTS*HIGHEST VALUE'             
                     SRVCN002='VIRTUAL*STORAGE*HIGHEST VALUE'           
                     SRVCN003='VIRTUAL*STORAGE*REQUESTS DENIED'         
                     SRVCN006='SECURITY*MANAGER*EXIT CALLS'             
                     SRVCN007='SECURITY*MANAGER*EXIT TIME'              
                     SRVCN008='EXTERNAL*SECURITY*MGR EXIT CALLS'        
                     SRVCN009='EXTERNAL*SECURITY*MGR EXIT TIME'         
                     SRVCN024='GET*DIRECTORY*ENTRY REQUESTS'            
                     SRVCN027='GRANT*USER*CONNECT REQUESTS'             
                     SRVCN030='OPEN FILE*NEW REQUESTS'                  
                     SRVCN031='OPEN FILE*READ*REQUESTS'                 
                     SRVCN032='OPEN FILE*REPLACE*REQUESTS'              
                     SRVCN033='OPEN FILE*WRITE*REQUESTS'                
                     SRVCN035='QUERY*CONNECTED USERS*REQUESTS'          
                     SRVCN036='QUERY*ENROLLED USERS*REQUESTS'           
                     SRVCN037='QUERY*LOCK CONFLICT*REQUESTS'            
                     SRVCN038='QUERY*FILE POOL*REQUESTS'                
                     SRVCN039='QUERY*USER SPACE*REQUESTS'               
                     SRVCN041='RECOVERY*CLOSE CATALOG*REQUESTS'         
                     SRVCN042='RECOVERY*GET CATALOG*REQUESTS'           
                     SRVCN043='RECOVERY*OPEN CATALOG*REQUESTS'          
                     SRVCN044='RECOVERY*PUT CATALOG*REQUESTS'           
                     SRVCN055='FILE POOL*REQUEST*SERVICE TIME'          
                     SRVCN056='REMOTE*FILE POOL*REQUESTS'               
                     SRVCN059='BEGIN*LOGICAL*UNITS OF WORK'             
                     SRVCN061='LOGICAL*UNIT OF WORK*ROLLBACKS'          
                     SRVCN064='FILE SPACE*EXPLICIT LOCK*CONFLICTS'      
                     SRVCN065='DIRECTORY*EXPLICIT LOCK*CONFLICTS'       
                     SRVCN066='FILE*EXPLICIT LOCK*CONFLICTS'            
                     SRVCN068='FILE SPACE*LOGICAL LOCK*CONFLICTS'       
                     SRVCN069='DIRECTORY*LOGICAL LOCK*CONFLICTS'        
                     SRVCN070='FILE*LOGICAL LOCK*CONFLICTS'             
                     SRVCN080='CONTROL*MINIDISK*BLOCKS READ'            
                     SRVCN081='CONTROL*MINIDISK*BLOCKS WRITTEN'         
                     SRVCN084='BIO REQ TO*READ FILE*BLOCKS'             
                     SRVCN085='BIO REQ TO*WRITE FILE*BLOCKS'            
                     SRVCN086='BIO REQ TO*READ CATALOG*BLOCKS'          
                     SRVCN087='BIO REQ TO*WRITE CATALOG*BLOCKS'         
                     SRVCN090='TOTAL*BIO REQUEST*TIME'                  
                     SRVCN091='I/O REQ TO*READ FILE*BLOCKS'             
                     SRVCN092='I/O REQ TO*WRITE FILE*BLOCKS'            
                     SRVCN093='I/O REQ TO*READ CATALOG*BLOCKS'          
                     SRVCN094='I/O REQ TO*WRITE CATALOG*BLOCKS'         
                     SRVCN096='I/O REQ TO*WRITE CONTROL*MINIDISK BLKS'  
                     SRVCN099='SFS*SEND USER*DATA REQUESTS'             
                     SRVCN104='GET*LOG NAME*REQUESTS'                   
                     SRVCN105='CRR GET LUWID REQUESTS'                  
                     SRVCN107='RESYNC*PROTOCOL*VIOLATION REQS'          
                     SRVCN108='RESYNC*QUERY DIRECTION*REQUESTS'         
                     SRVCN109='CRR*WRITE LOG*REQUESTS'                  
                     SRVCN110='CRR REQUEST*SERVICE*TIME'                
                     SRVCN111='NUMBER OF*SYNC*POINTS'                   
                     SRVCN113='PARTICIP RESC*CRR WRITE*LOG REQS'        
                     SRVCN114='CRR LOG*CHECKPOINTS*TAKEN'               
                     SRVCN115='CRR LOG*I/O*REQUESTS'                    
                     SRVCN116='CRR BIO*REQUEST*TIME'                    
                     SRVCN120='RESERVED*COUNTER 120'                    
                     SRVCN121='RESERVED*COUNTER 121'                    
                     SRVCN122='DIRCONTROL*RESOURCE*LOCK CONFLICT'       
                     SRVCN123='DEADLOCKS*THAT CAUSE*ROLLBACK'           
                     SVMSTAT ='OPTION*SVMSTAT*IN DIRECTORY?'            
                     VMDUSER ='USER*IDENTIFICATION'                     
             3.The documentation of the VM/ESA Monitor records will now 
               be only in "softcopy", and will be unloaded at install   
               into a file named MONITOR LIST1403 on your base CP object
               disk (194).  The new documentation contains an excellent 
               table that details changes made to the content and format
               of the monitor records, including the many APARs that are
               a part of VM/XA (and were already supported in MXG).     
               A thanks for IBM for making documentation available so   
               early; it's nice to not have to play "catch-up". Of even 
               greater significance: you can install this version of MXG
               now, and whenever you install VM/ESA, you won't need to  
               install yet another version of MXG!                      
---Changes thru 8.168 were included in MXG PreRelease 8.5 Oct 27, 1990--
Change 08.168  The SAS 6.06 circumvention was misspelled; three lines   
GRAFRMFI       that now read                                            
Oct 26, 1990     IGOUT=GRARMF5S GOUT=PDB.GRARMF5S                       
               should be                                                
                 IGOUT=GRARMF5S GOUT=PDB.GRARMF5S                       
                 IGOUT=GRARMF5M GOUT=PDB.GRARMF5M                       
                 IGOUT=GRARMF5D GOUT=PDB.GRARMF5D                       
   Thanks to Jan Simark, SAS Institute Europe, GERMANY.                 
Change 08.167  Support for MVS/ESA SP Version 4.1 and RMF 4.2, which    
VMACSMF        became avaliable October 26, 1990.                       
VMACSMF      1.New flag variable MVSESAV4 (flag that this is MVS Version
VMAC434        4) is set but not used in MXG logic.                     
VMAC535      2.TYPE434, new variables CPUWRONG and EXCPLOST are now set 
VMAC6          to "Y" if TCB time has overflowed, or EXCPs lost because 
VMAC24         over 1635 DD statements existed. Both conditions exist   
VMAC57         ONLY in the type 4 and 34 records, and IBM's now states  
VMAC71         "Only the type 30 record should be considered valid."    
VMAC74       3.TYPE535, new variable CPUWRONG (see above) added.        
VMAC78       4.TYPE6 (JES2 only, not PSF nor JES3 nor EXT WRTR) has     
VMAC79         a new "Enhanced SYSOUT Support (ESS) section containing  
VMAC90         the output descriptor (if any) for the first offloaded   
XMAC7072       data set, with five new variables:                       
XMAC71           SMF6IND ='ESS*SEGMENT*INDICATOR'                       
XMAC74           SMF6SGID='SEGMENT*IDENTIFIER'                          
XMAC75           SMF6TU  ='TEXT UNIT*(SWBTU)*DATA AREA'                 
Oct 27, 1990     SMF6TUL ='TEXT UNIT*(SWBTU)*DATA AREA LENGTH'          
Mar  5, 1991   This paragraph was changed after Newsletter 18.          
               The SMF6TU character variable contains the SWB text unit,
               which contains the JES2 ITEXT (length, key, value) for   
               the new OUTPUT JCL statement parameters ADDRESS, BUILDING
               DEPT, NAME, ROOM, and TITLE. Their key values (IEFDOKEY  
               in SYS1.MACLIB) are x'27',28,29,2D,26, & 2A respectively.
               Once I find out what sets the maximum length of these new
               parameters, the fields will be decoded from the SWB. Stay
               tuned to this paragraph in this change.                  
             5.The MSS (Mass Storage System) device is no longer and IBM
               supported device, and TYPE22_4 and its MSS variables will
               now always be missing.                                   
             6.TYPE24 contains the same new five Enhanced SYSOUT (ESS)  
               fields added to the type 6, with these different names:  
                 SMF24IND,SMF24JDT,SMF24SGT,SMF24TU, and SMF24TUL.      
               These variables are kept in TYPE24.                      
             7.TYPE57J2 contains the same new five Enhanced SYSOUT (ESS)
               fields added to the type 24, with these different names: 
                 SMF57IND,SMF57JDT,SMF57SGT,SMF57TU, and SMF57TUL.      
               These variables are kept in TYPE57.                      
             8.TYPE71 contains three new swap reason codes, because MVS 
               now has three additional reasons to swap an ASID:        
                 IC - Improve Central Storage usage swap, by recognizing
                      page thrashing.                                   
                 IP - Improve System Paging Rate swap, identifies that  
                      your PTR controls are causing swaps.              
                 MR - Make Room to swap in a user who has been swapped  
                      out too long. When an Exchange Swap should have   
                      occurred, SRM starts a clock, defaults to 30 sec  
                      for TSO, 10 min for non-TSO, and will bring that  
                      task back in if it stays out that long.           
               For each swap reason, there are five new variables for   
               the swap rate of each possible transition (EXTAUX..,     
               LOGAUX.., LOGEXT.., PHYAUX.., and PHYEXT..). The sum of  
               all transitions for each swap reason, (i.e., the total   
               swap rate for that reason code) is in the new variables  
               SWAPIC, SWAPIP, and SWAPMR.                              
             9.TYPE74 data set has been enhanced with new variables     
                 CUNAME  ='CONTROL*UNIT*NAME'                           
               and three variables describing pending delay due to the  
               director port busy, AVGPNDIR, DLYDIRTM, and PCPNDIR.     
            10.New subtype 2 of the Type 74 record from the Monitor III 
               Cross-System Coupling Facility (XCF) reports on message  
               traffic between the local system (where RMF executes)    
               and remote systems.                                      
               Four new TYPE74xx data sets are created:                 
                 /*TYPE74CO - control data */                           
                 R742MNXT='MEMBER DATA*SECTIONS IN*NEXT RECORDS'        
                 R742MTOT='MEMBER DATA*SECTIONS IN*ALL RECORDS'         
                 R742PNXT='PATH DATA*SECTIONS IN*NEXT RECORDS'          
                 R742PTOT='PATH DATA*SECTIONS IN*ALL RECORDS'           
                 R742SNXT='SYSTEM DATA*SECTIONS IN*NEXT RECORDS'        
                 R742STOT='SYSTEM DATA*SECTIONS IN*ALL RECORDS'         
                 R742TSR ='SUBTYPE 2 RECORDS IN INTERVAL'               
                 /*TYPE74ME - member data */                            
                 R742MRCV='SIGNALS*RECEIVED BY*MEMBER'                  
                 R742MSNT='SIGNALS*SENT BY*MEMBER'                      
                 R742MSYS='SYSTEM NAME*WHERE MEMBER*RESIDES'            
                 /*TYPE74PA - path data */                              
                 R742PMXM='MAXIMUM*MESSAGE BUFFER*SPACE'                
                 R742PODV='DEVICE*NUMBER ON*OTHER END'                  
                 R742PONA='NAME OF*SYSTEM ON*OTHER END'                 
                 /*TYPE74SY - system data */                            
                 R742SBIG='NUMBER OF*BIG MESSAGE*CONDITIONS'            
                 R742SBSY='NUMBER OF*NO BUFFER*CONDITIONS'              
                 R742SDIR='DIRECTION*OF THE MESSAGE*TRAFFIC'            
                 R742SFIT='NUMBER OF*MESSAGE FIT*CONDITIONS'            
                 R742SMXB='MAXIMUM*MESSAGE BUFFER*SPACE'                
                 R742SNOP='NUMBER OF*NO PATH*CONDITIONS'                
                 R742SSML='NUMBER OF*SMALL MESSAGE*CONDITIONS'          
                 R742STCL='MESSAGE LENGTH*FOR*TRANSPORT CLASS'          
            11.TYPE75 data set has also been enhanced with the same new 
               variables CUNAME and DEVMODEL that were added to TYPE74. 
            12.TYPE78 now detects and deletes invalid subtype 3 records 
               to avoid the STOPOVER condition if you have not installed
               PTF UY55476 for APAR OY36517 described in MVS notes.     
            13.TYPE79 subtype 1 changed R791ES to reserved and previous 
               reserved R791ESSL now contains what was in R791ES and is 
               renamed R791ESCT! Both R791ES and R791ESCT are kept.     
            14.TYPE79 subtype 11, new variables R79BCU and R79BDEVN for 
               control unit name and device name.                       
            15.TYPE90 new subtype 18 added variables SYSISUED,SMF90SGC  
               and SMF90GRN for the SET GRSRNL command.                 
            16.All five of the XMAC70xx members (needed only for SAS    
               Version 5 for circumvention of the "344 Compiler Limit"  
               error condition) now include these and all previous MXG  
               changes to their corresponding VMAC members. See Change  
               8.129 for further information on the "344" error. Due to 
               additional new subtypes added by MVS 4.1, there were 3   
               new iterative DOs added by this support which may cause  
               modified BUILDPDBs to need "344" circumvention. Sorry!   
            Note that IBM has announced additional RMF enhancements in  
            MVS/ESA 4.2 (RMF 4.2.1) to be available on March 29, 1991,  
            that will add additional data to type 72, 74, and 79s.      
Change 08.166  Variable INNODE was added to _PDB26J2 macro. INNODE and  
IMACPDB        (previously kept) INROUTE are both required to know the  
Oct 23, 1990   source of a job, using PDB.JOBS.                         
   Thanks to Elliot Weitzman, Oryx Energy Company, USA.                 
Change 08.165  IMS Log processing variable PGMLODTM is now non-zero only
TYPEIMS        for the first transaction, for multiple transactions per 
Oct 23, 1990   program schedule (since the program is loaded only once!)
               and OENQTIME is calculated differently for MULTRANS.     
   Thanks to Harry Olschewski, DVG Kiel, GERMANY.                       
Change 08.164  Page 219 references the _DBUG110 macro which no longer   
MXG Guide      exists. It was replaced by a new (undocumented) value of 
Oct 23, 1990   SYSPARM=TYPE110-5, since specifying a SYSPARM value does 
               not require the source change mentioned on page 219.     
   Thanks to Hr. Moser, RBG Munich, GERMANY.                            
Change 08.163  NETSPY target response variables for session manager     
VMACNSPY       have no meaning, but contained non-zero values (they are 
Oct 23, 1990   addresses) in the SMF record.  MXG recognized thesession 
               manager record and set the percentages T1RSPPC-T4RSPPC to
               missing, but left the counts T1RSPNO-T4RSPNO as they were
               found, which confused some users.  Now, the countsare    
               also set missing for session manager records.            
   Thanks to Randy Hallman, LEGENT, ENGLAND.                            
Change 08.162  NPM variables OPER.... are now correctly labeled to show 
VMAC28         these fields represent HOST plus NETWORK durations, and  
Oct 23, 1990   the NETW.... variables are now corrected to label these  
               fields as NETWORK only (i.e., eliminating the previously 
               incorrect NEWT label of Network Plus Host). The values   
               were correct, only the MXG label was incorrect.          
   Thanks to Tom Kiddy, American President Lines, USA.                  
Change 08.161  Support for Landmark's Monitor for CICS Version 8.0      
ANALMONI       Member TYPEMON8 is used instead of TYPEMONI for this     
EXMONHIS       new version.  The support added two new datasets, the    
EXMONMRO       MONIMRO (MRO detail from transaction record), and the    
IMACMONI       MONIHIST history detail, which contains the total-to-    
TYPEMON8       current-minute of the resources in the MONISYST interval 
Oct 18, 1990   data set. MONISYST is now written every minute. Many new 
               fields describe counts and durations of both requested   
               and waiting states. The variable names are patterned:    
                   where  xx=activity (see list below).                 
                          yy=IO for request active, or                  
                             WT for waiting, a subset of request active.
                          zz=TM for duration, or                        
                             CN for count of times activity performed.  
                      WTFCIOTM=duration File Control IO was requested,  
                               including processing and waiting time,   
                      WTFCIOCN=count of File Control IO requests,       
                      WTFCWTTM=duration that FC IO actually waited, and 
                               this duration is included in WTFTIOTM,   
                  WTFCWTCN=number of times File Control actually waited.
                 The xx activities captured in Landmark Version 8 are:  
                     xx                                Requests Waits   
                     DB    ='DB2*WAITS'                         YES     
                     DL    ='DLI*CALL*IO'                 YES   YES     
                     DS    ='DISPATCH*QUEUE-WAIT'               YES     
                     EN    ='ENQUE*SUSPEND*WAITS'               YES     
                     FC    ='FILE*CONTROL*IO'             YES   YES     
                     IC    ='ICP*SUSPEND*WAITS'                 YES     
                     IS    ='ISC (MRO)*SUSPEND*WAITS'           YES     
                     JC    ='JOURNAL*CONTROL*IO'          YES   YES     
                     MD    ='MRO/DTP*WAITS'                     YES     
                     MI    ='MIRROR*SUSPEND*WAITS'              YES     
                     MR    ='MRO/IRC*WAITS'                     YES     
                     MS    ='MRO/DTP*SUSPEND*WAITS'             YES     
                     NS    ='DB2 NON-SQL*CALLS'            YES          
                     OP    ='OPER*THINK TIME*FOR CONV'          YES     
                     PF    ='PROGRAM*FETCH'                YES  YES     
                     PM    ='PREEMPT*WAITS'                     YES     
                     SC    ='MRO/ISC'                      YES  YES     
                     SQ    ='DB2 SQL*CALLS'                YES          
                     ST    ='STORAGE*SUSPEND*WAITS'             YES     
                     TB    ='TEMPSTG*(AUX+MAIN)'           YES  YES     
                     TC    ='TERMINAL*SUSPEND WAITS'            YES     
                     TD    ='TD (EXTRA)*IO'                YES  YES     
                     TI    ='TD (INTRA)*IO'                YES  YES     
                     TS    ='TEMPSTG (AUX)*OUTPUT'         YES  YES     
                     UD    ='USER*DATABASE'                YES  YES     
                     1S    ='FIRST*DISPATCH'                    YES     
                 Wherever possible, previous MXG variable names are used
                 but Landmark names are in comments adjacent to MXG's   
                 chosen variable name in MXG member TYPEMON8. Complete  
                 description of variables is contained in Landmark's    
                 Appendix C of "Report Writer and Extended Facilities", 
                 and in MXG member DOCVER under each MONI.... dataset.  
Change 08.160  DCOLLECT record date fields cause "NOTE: INVALID DATA"   
Oct 10, 1990   date is a zero, nulls or 99000 or 99366. The three input 
               statements for DCDDATE1-DCDDATE3 need ?? before the PD4  
               format item, and the calculation of DCDCREDT and DCDLSTRF
               must be protected for 0. The DCDEXPDT expiration date is 
               more complicated, because EXPDT values of 99000 and 99366
               appear in DCOLLECT records, but these cannot be converted
               to real date values. DCDCREDT, DCDEXPDT, DCDLSTRF should 
               be SAS date values, so that subtraction, formatting, etc.
               can be done. However, these "flaky" EXPDT values used for
               flags should not be lost.  Since only EXPDT contain these
               "flaky" values, MXG chooses the following technique.  New
               variable ORGEXPDT will contain the original (raw, in the 
               record) value (the raw value for Jan 1, 1991 is 1991001).
               DCDEXPDT will contain the real SAS date of ORGEXPDT, or  
               will be missing if ORGEXPDT was zero or missing, but if  
               ORGEXPDT contains a "flaky" value (day=000, 99000, 99365 
               or 99366), MXG sets DCDEXPDT of 1JAN 2099 as a special   
               flag date to tell you to look at ORGEXPDT if you really  
               need to know the original expiration date. MXG uses a    
               SAS date in the year 2099 so that if you should ever use 
               DCDEXPDT in a calculation, you'll see the expiration     
               date is well into the future!                            
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 08.159  Variable PAGRT in TYPE71 now includes PGMIEXAU, HIPAGINS,
VMAC71         and HIPAGOUT, in addition to the original DPR, SPR, & VIO
Oct 10, 1990   variables so that PAGRT counts all pages moved between   
               auxiliary storage (DASD) and central/expanded storage.   
               The three new fields are MVS/ESA only.                   
   Thanks to Peter Durant, National Australia Bank, AUSTRALIA.          
Change 08.158  This was originally a two part technical discussion with 
               no actual MXG change. The first half of that discussion  
               is now Change 8.172 and has been reworded and enhanced.  
               This is the rest of the original technical discussion.   
               One site wanted to reset their SPINCNT value to 0 at the 
               end of each month.  (I don't recommend this technique,   
               and its not clear to me this is wise, but by exploiting  
               MXG's use of the old style substitution macro _SPINCNT,  
               it was possible to show them how to do what they wanted  
               to do, with no change to the BUILDPDB code itself):      
               In IMACSPIN, define _SPINCNT as follows. The value of 10 
                in the example assumes your original SPINCNT was 10.    
                 MACRO _SPINCNT                                         
                   . THEN DO;                                           
                   IF SYSPARM()='MONTH' THEN SPINTST=0;                 
                   ELSE                      SPINTST=10;                
                   IF SPINCNT GE SPINTST THEN OKFLAG=1;                 
                   ELSE IF -1 = +1                                      
                 This logic is not obvious, until you look at BUILDPDB  
                 to see exactly how _SPINCNT is referenced, but it shows
                 how flexible the old style substitution macros can be! 
               With this new definition for _SPINCNT, and by using the  
               OPTIONS='SYSPARM="MONTH"' on the EXEC SAS statement      
               on the desired day, the SPIN library will be emptied.    
---Changes thru 8.157 were included in MXG PreRelease 8.4 Oct 9, 1990---
Change 08.157  SAS 6.06 Compatibility Change. SAS User-SMF record.      
IMACSASU       The format of the SAS-created user SMF record (describing
VMACSASU       resources for each PROC execution) was changed in 6.06.  
Oct  8, 1990   Now, IMACSASU defines two macros, _IDSAS5 and _IDSAS6 to 
               identify the SMF record number of each version's record. 
               If you are currently building TYPESASU from Version 5.18 
               records, you will have to replace the modified IMACSASU  
               in your USERID.SOURCLIB with this new IMACSASU member.   
   Thanks to Tim Haiar, South Dakota Higher Ed. Computer Services, USA. 
Change 08.156  Additional enhancements for RMF III VSAM dataset record  
EXZRBUWM       processing was provided by National Westminster Bank to  
EXZRBUWT       these members.  Two new members, ZRBBATCH and ZRBPRINT   
VMACZRB        were added and they produce a detailed analysis of batch 
ZRBBATCH       job delays. Member ZRBDLYBT was rewritten to be more     
ZRBBUILD       efficient.  Member VMACZRB has been amended to include a 
ZRBCHECK       division-by-zero test for SQA overflow frames.           
ZRBDLYBT       The function of the associated code members is explained 
ZRBDVDLY       in member VMACZRB.  New member ZRBIPSJ is an interesting 
ZRBMKIDX       job which is self-explanatory and reads selected members 
ZRBPRINT       of SYS1.PARMLIB. Two new data set exits were added. The  
Oct  8, 1990   remaining members changes were only in the comments. All 
               "ZRB" members now cite both NatWest's enhancements and   
               acknowledge the original "ZRB" author, Dick Whiting.     
   Thanks to Roland Rashleigh-Berry, NatWest, ENGLAND.                  
   Thanks to Dick Whiting, Precision Castparts, USA.                    
Change 08.155  Variable FWRATIO (Fast Write Hit Ratio) was added to the 
VMACACHE       CACHE90 data set. Because four Fast Write specific fields
XMACACHE       (SRCD,SRCDH,WCD,WCDH) were zero, it appeared there was no
Oct  8, 1990   Fast Write, but FWRATIO was actually non-zero. This value
               now matches the same-named heading on the IBM report.    
   Thanks to Dale Mattison, Shared Medical Services, USA.               
Change 08.154  This ROSCOE report did not %INCLUDE IMACROSC and did not 
ANALRRTM       threfore use the _ROSCDDN as the expected location of the
Oct  6, 1990   RRTMPSE data set used for reporting; now it does.        
   Thanks to Bob Yeager, Whirlpool Corporation, USA.                    
Change 08.153  Comments were corrected. The correct sort order for the  
ASUMJOBS       WEEKBLD after using ASUMJOBS is given by the SUMBY= list 
Oct  6, 1990   on the invocation of %VMXGSUM, but anytime that the      
               temporary variable "DATETIME" is used in the SUMBY list  
               (as it usually is), the actual variable you must use in  
               any subsequent processing is not "DATETIME" (which will  
               always be DROPped by VMXGSUM), but instead the actual    
               variable set equal to DATETIME= in the macro invocation. 
               For ASUMJOBS the actual resultant sort order will be     
                 JOBCLASS SHIFT INITTIME                                
               because SUMBY=JOBCLASS SHIFT DATETIME, but also          
               DATETIME=INITTIME, in the VMXGSUM invocation.            
   Thanks to Linda Carroll, Crawford Long Hospital of Emory Univ, USA.  
Change 08.152  VM/370 Monitor data set VMONCHAN now has the sample count
ANALVMDY       variables MN602SAM and MN602SA2 added to the KEEP= list, 
VMACVMON       and they were added to the RETAIN list so that the are   
Oct  6, 1990   carried into the CHAN record from the DEV record. This   
               avoids the need to merge DEV and CHAN to calculate CHAN  
               busy.  The three tests for (LENGTH-COL) GE 64 should all 
               be GE 63 so that channels 32 and higher actually INPUTed.
               ANALVMDY now uses the MN602SAM/SA2 instead of INTERVAL to
               correct its CHAN busy calculations. Variable MN003CDD    
               should not be DIF()d, and variable DRUMUTIL needed to be 
               added to the big RETAIN list.                            
   Thanks to Bob Small, Grumman Data Systems, USA.                      
   Thanks to Frank Putnam, Ryerson Polytechnical Institute, USA.        
Change 08.151  VM/XA support macro _DBYUSR did not DIF() some of the HF 
VMACVMXA       counters, causing some percentages to be since the start 
Oct  5, 1990   of monitoring.  These HF counters are now DIF()d. MACRO  
               _CSYTUWT should have decremented SKIP by 52 vice 72.     
               If the Interval or HF Sampling rate were changed, MXG    
               made the change when the record was found, rather that   
               as it should have at the end of the interval. That has   
               been corrected, and notes on the log alert you if either 
               was altered.                                             
   Thanks to Peter Strange, BP International London, ENGLAND.           
Change 08.150  This JCL member is an example of the MVS job that submits
JCLCRAYC       a job to execute on the Cray to extract the accounting   
Oct  5, 1990   and performance data records and send them back (asis)   
               to the MVS system (into dataset MXG.CRAY.MODFILE) that is
               then processed by MXG member TYPECRAY under MVS to build 
               the Cray PDB. (This specific example is for COS 1.17).   
               With 1000 Cray jobs per business day, and with the SPM   
               interval set at 10 minutes, the extract will need about  
               125 cyl, or about 90MB for an entire WEEKs Cray rawdata. 
   Thanks to Arlin B. Collins, Oryx Energy, USA.                        
Change 08.149  Support for Amdahl's SPMS product's SMF record for the   
IMACSPMS       6100 and 6880 Cache DASD controllers. The code was tested
VMACSPMS       with the help of the folks at Amdahl, and one real user, 
TYPESPMS       as the documentation of the SMF record is less than good.
Oct  5, 1990   Data set TYPESPMS is created from the SMF record, but    
               only 6100 data records have been validated. Amdahl has   
               said there will be enhancements in the near future to the
               SMF record that will answer many user requirements.      
               MXG variable names for fields described in the DSECT are 
               the DSECT suffix prefixed with SPMS.  For variables that 
               are calculated or decoded, the variable name suffix is   
               SPMS or SPM.  Do you like this technique (which was my   
               choice after looking at the two user contributions from  
               which this support derived)?                             
   Thanks to Richard R. (Dick) Sziede, PRC Inc, USA.                    
   Thanks to Neville Windeyer, Amdahl, USA.                             
   Thanks to Ray Williams, Amdahl, USA.                                 
   Thanks to Neil Avery, Amdahl, USA.                                   
   Thanks to Randy Graves, Amdahl, USA.                                 
Change 08.148  NPM Release 4 (NPM 1.4) Support has been added, but not  
EX028ER1       yet tested with 1.4 data.  This text will change when    
EX028ER2       validation has been completed with 1.4 data records.     
EX028IN9       Support is in MXG PreRelease 8.4, but because IBM used   
FORMATS        (correctly!) the relocatable record architecture, their  
VMAC28         changes ARE compatible with MXG 7.7. (MXG 7.7 will detect
Oct  5, 1990   the new 1.4 data and will note that unexpected data was  
               found, but MXG 7.7 will not fail with NPM 1.4 data!). The
               change processes mixed 1.3 or 1.4 records, transparently!
             1.Support added three New MXG datasets:                    
                NPMERNCP,NPMERNET, for NCP or Network respectively,     
                  are created when a prior Event Exception has been     
                  resolved (either the value is now in range, the       
                  resource was detached, or monitoring was stopped).    
                NPMINTRI, an interval record reporting resources from   
                  the Network Token Ring Interface.                     
             2.Support added new variables in existing MXG datasets:    
                NPMINPMT, variables NPMALRCT,NPMARCNT count Alerts      
                  sent or lost.                                         
                NPMINSES, variables LSCDANUM,BADI,CNTL,EXTN,GRUP,SMID,  
                  SPLU,SSLU, and LSCDUSER contain (optional) session    
                  manager names (Userid, SLU, etc.) and status.         
                NPMINNCP, variables NCPNEWNM,NCPGENLV contain NCP load  
                  module name and the GENLEVEL parameter.               
                NPMINPMT, variables NPMTDROF,DRAD,DRDE,DL18) track the  
                  DDR entries lost, added, or deleted.                  
             3. FORMAT member was updated with new format MG028FL and   
                  existing formats MG028DA and MG028NT contain new      
             4. The IBM NPM 1.4 Installation and Customization Guide,   
                Part 1, pages 1-106 provide much better documentation   
                than its predecessor.  A big thanks also to IBM to make 
                the manual available early so support can be in place!  
Change 08.147  TYPE41 variable SMF41LRG is already in bytes and the line
VMAC41         SMF41LRG=SMF41LRG*4096; must be deleted. Some labels did 
Oct  1, 1990   not contain * for split characters, but now they do!     
   Thanks to Ken Williams, Australian and New Zealand Banking, AUSTRALIA
Change 08.146  New members. This set of members provides a capacity     
ANALPRTR       measurement and planning system for printers, and it     
ASUMPRTR       defines measures of printer throughput. It is preliminary
IMACPRTR       and further additions to BUILDPDB may be made. Definition
TRNDPRTR       of printers, costs, etc., are made in IMACPRTR, and then 
Oct  1, 1990   member ASUMPRTR can be added to BUILDPDB to create the   
               dataset PDB.TYPE6ENH ("Enhanced", with throughput stats),
               which is the basis for ANALPRTR, and TRNDPRTR. See the   
               comments in each member for documentation.               
   Thanks to Chuck Hopf, Hopf Consulting, USA.                          
Change 08.145  RACF variable RACFDESC contains undecoded values which   
FORMATS        were printed as a colon because the MXG format did not   
Oct  1, 1990   recognize the additional bits added by RACF 1.9. The data
               itself was not wrong; bit 0 is a violation and bit 3 is  
               a warning. Because IBM uses multiple bits in this field, 
               the $MG080DE. format now includes values A0 and 88 for   
               violation and values 30 and 18 for warning.              
   Thanks to Joseph Rannazzisi, Brooklyn Union Gas, USA.                
Change 08.144  New members. JCL example and code used to print the MXG  
JCLUPPDS       source library (or any source PDS) in two column format  
VMXGPPDS       with an Index of members.  The JCL uses standard IBM PSF 
Oct  1, 1990   control statements in the SYSIN for all steps.           
   Thanks to Chuck Hopf, Hopf Consulting, USA.                          
Change 08.143  Critical error, but only in MXG 8.3. The order of INDATA 
TRNDRMFI       datasets was changed for consistency, but the (IN=INWEEK)
TRND72         option was not re-located, which caused the Trend dataset
Oct  1, 1990   TYPE72 and RMFINTRV to be badly corrupted.               
               Change INDATA to correctly read:                         
                INDATA=WEEK.TYPE72 (IN=INWEEK) TREND.TRND72,            
   Thanks to Raymond Zieverink, Belk Stores Services, USA.              
Change 08.142  This member was intended to produce trend charts from the
GRAFREGR       VM/370 trend data set TREND.VMONINTV, but somewhere in an
Oct  1, 1990   EDIT session, VMONINTV inadvertently became RMFINTRV!    
   Thanks to Bob Yeager, Whirlpool Corporation, USA.                    
Change 08.141  -Enhancement. The existing code used default pattern and 
GRAFTRND       color selection when building bar charts. This is fine   
Oct  1, 1990   when the graphs are viewed in color, but if reproduced in
               black and white they can be very difficult to read. This 
               change solves this problem by alternating cross-hatching,
               left diagonals, and right diagonals in varying densities.
               Colors are also selected but only eight are used. If the 
               default PCBATCH device driver is used, there should be no
               difficulty on any device with eight or more colors. You  
               could use a color catalog (described in the SAS/GRAPH    
               manual) to modify the colors in use. All MXG GRAFxxxx    
               routines that use the PCBATCH device driver default to   
               WHITE for the titles and axes and any text. If you are   
               using a pen plotter, you may wish to force the conversion
               from WHITE to BLACK.                                     
              -Bar charts for workloads create segments in the legend   
               for workloads that have zero CPU time. This is not really
               an error but it's annoying to have to explain nonexistent
               workloads to your management. This change only outputs   
               those workloads with non-zero CPU time.                  
              -If SASGRAPH=NO and SASSTAT=YES were specified, the first 
               plot received a "variable not found" message. The PROC   
               PLOT was pointed at the wrong dataset.                   
Change 08.140  New member that produces bar charts of workloads by hour 
GRAFWORK       from RMFINTRV. Will use SAS/GRAPH if available, otherwise
Oct  1, 1990   produces printer charts and tabular reports.             
Change 08.139  Cosmetic change added new optional argument INVOKEBY to  
VMXGSUM        %VMXGSUM macro that will be printed on the SAS log to    
Oct  1, 1990   identify which member invoked %VMXGSUM. As time permits, 
               each MXG invocation of %VMXGSUM will be changed to pass  
               the member name into this argument for documentation on  
               your log. This is mostly helpful when one is debugging!  
Change 08.138  Significant validation and enhancement of MXG's supprot  
EXHSMDSR       for the HSM User SMF records (default is 240 and 241) is 
EXHSMFSR       added by this user contribution.  Code has been unloaded 
EXHSMFST       and syntax tested, but not actually used. One of the HSM 
EXHSMFUN       SMF records contains accumulated counts that are reset   
EXHSMVSF       each midnight, and de-accumulation may be desirable but  
EXHSMVSR       has not yet been investigated.  The other record seems to
FORMATS        be directly usable.                                      
Sep 19, 1990                                                            
   Thanks to Wanda Prather, Johns Hopkins APL, USA.                     
Change 08.137  TYPE1415 Hiperbatch variables (added by Change 8.017) are
VMAC1415       non-zero (garbaged) for type 14/15 records with more than
Sep 19, 1990   one UCB, which occurs only for BPAM accessed concatenated
               PDSs, which aren't even eligible for Hiperbatch! The test
                IF LENGTH-COL+1 GE 20 THEN .... should be changed to    
                IF LENGTH-COL+1 GE 20 AND NUCB=1 THEN .... so that only 
               non-BPAM data sets with a single UCB are tested to see if
               the hiperbatch fields exist. (MXG must use the length of 
               the record to determine if data exists that could be the 
               hiperbatch fields, because IBM does not set a flag to say
               that the fields are present, and IBM also failed in the  
               original implementation to set the length of the segment 
               to include the new fields!)                              
   Thanks to Linda Carroll, Crawford Long Hospital of Emory Univ, USA.  
Change 08.136  The DFP 3.2 type 42 SMF record to audit an ACTIVATE event
VMAC42         is created in error. IBM APAR OY36035 describes the error
Sep 18, 1990   and PTF UY55307 is the correction for their error. The   
               subtype 3 (audit) record is mis-located and incorrectly  
               documented in the SMF manual, and will cause MXG to abend
               with a STOPOVER, than can be circumvented only by adding 
               this test to member IMACFILE (which deletes all subtype 3
               audit records) until the PTF exists from IBM:            
                  IF ID=42 THEN DO;                                     
                    INPUT @85+OFFSMF TESTDFP $CHAR8. @;                 
                    IF TESTDFP='ACTIVATE' THEN DELETE;                  
               or alternatively by using the MISSOVER circumvention for 
               STOPOVER option as described in Change 8.012.            
               Member VMAC42 was re-written based on the corrected SMF  
               record description received from IBM Level 2, and tests  
               for both the right and wrong format record. Fortunately, 
               the subtype 3 record is not very important and deleting  
               it won't really hurt the good data in the other subtypes!
   Thanks to Dan Barbatti, Southwestern Bell, USA.                      
Change 08.135  PR/SM changes in status were not decoded in TYPE70PR. Now
VMAC7072       variables LCPUCHST, LCPUCHWT, LPARCHAC and LPARCHNR flag 
Sep 17, 1990   that changes occurred in LCPUWAIT status, LCPUSHAR value,
               Activation/Deactivation, or Number of LPARS in Partition,
   Thanks to Richard Evans, Mervyns, USA.                               
Change 08.134  The ACBMACR1-3 variables added in MXG Version 7 (decoded 
VMAC64         after PTF UY40839, APAR OY23661 has been installed) are  
Sep 15, 1990   now explicitly decoded into useful new flag variables:   
                 ACBADR  ='ACCESS*WITHOUT*INDEX?'                       
                 ACBAIX  ='AIX OF THE PATH IN THE GIVEN DDNAME?'        
                 ACBCNV  ='CONTROL*INTERVAL*PROCESSING?'                
                 ACBDFR  ='DEFER*WRITES'                                
                 ACBDIR  ='DIRECT*PROCESSING?'                          
                 ACBDSN  ='SHARING*CONNECTION*USING DSNAME?'            
                 ACBGSR  ='GLOBAL*SHARED*RESOURCE?'                     
                 ACBICI  ='IMPROVED*CI*PROCESSING?'                     
                 ACBIN   ='INPUT*(GET,*READ)?'                          
                 ACBKEY  ='ACCESS DATA*VIA*INDEX?'                      
                 ACBLOGON='LOGON*INCICATOR*(VTAM X03004)?'              
                 ACBLSR  ='LOCAL*SHARED*RESOURCE?'                      
                 ACBMODE ='VSAM*31 BIT*ADDRESSING?'                     
                 ACBNCFX ='CFX IF Y,*NFX IF BLANK?'                     
                 ACBOUT  ='OUTPUT*(PUT,*WRITE)?'                        
                 ACBRST  ='SET*DATA SET TO*EMPTY STATE?'                
                 ACBSEQ  ='SEQUENTIAL*PROCESSING?'                      
                 ACBSIS  ='SEQUENTIAL*INSERT*STRATEGY?'                 
                 ACBSKP  ='SKIP*SEQUENTIAL*PROCESSING?'                 
                 ACBUBF  ='USER*BUFFERS?'                               
   Thanks to Derek Cespedes, Florida Power and Light, USA.              
Change 08.133  The technique for setting the number and length of the   
IMACACCT       Accounting variables kept in MXG from SMF records has    
Sep 13, 1990   always been an exposure to user error, because the user  
               was required to actually alter the SAS code in member    
               IMACACCT, which occasionally caused a STOPOVER condition 
               to new users unfamiliar with SAS syntax.  A much safer   
               and easier technique has now been implemented. Instead of
               commenting out code for unwanted account variables, the  
               simple addition of a DROP statement naming the unwanted  
               variables will keep only the wanted with no code changes.
               Existing sites need not change their IMACACCT member, but
               may wish to do so anyhow.                                
               The only price for this technique is that programs that  
               %INCLUDE member IMACACCT more than once will cause a new 
               warning message (but only under SAS 5.18) that reads:    
               The warning itself has no effect.                        
   Thanks to Rich Hawthorne, Group Health Coop. of Puget Sound, USA.    
Change 08.132  One major and several minor changes to RMF to support the
VMAC7072       ES/9000 series under MVS/ESA 3.1.3  from (GC28-1819-3).  
VMAC71       1.ES/9000 Processors will cause STOPOVER abend on type 78  
VMAC73         SMF records, because IBM added data to the IOP and IOQ   
VMAC74         sections which MXG was not prepared to handle! The new   
VMAC75         fields (see below) are now supported, and the MXG "SKIP" 
VMAC76         logic now protects future segment length changes. Even if
VMAC77         you have this MXG change installed, MXG will STOPOVER if 
VMAC78         IBM's PTF for APAR OY36517 is not installed, as the IBM  
VMAC79         PTF which added RMF support for ES/9000 (UY90666) itself 
Sep 13, 1990   is in error until PTF OY36517 is installed.              
             2.New flag variables ESCAENAB,ESCACONF identify if this    
               processor is enabled for ES Connection Architecture, or  
               there is an ES connection director in the configuration. 
             3.The MSOCOEFF field in the type 72 and type 79 records was
               increased from 4 to 8 EBCDIC characters (I cannot imagine
               why) and relocated to the end of the section. MXG picks  
               up the longer field if it exists, but since an 8 digit   
               number can still be stored in a 4-byte MXG variable, the 
               IBM increase has no effect on the MXG MSOCOEFF length.   
             4.PCTDIRPT, percentage of samples when I/O was delayed due 
               to Director Port (ESCA, or Fiber Optic Channels) busy is 
               added to TYPE78CF, TYPE79EF, and as variable R799DPB in  
               The only circumvention for the STOPOVER condition until  
               you receive this change is to delete the type 78 subtype 
               3 record in member IMACFILE:                             
                 IF ID=78 AND SUBTYPE=3 THEN DELETE;                    
               or alternatively use the MISSOVER replacement for the    
               STOPOVER option as described in Change 8.012.            
Change 08.131A Minor enhancement to TYPE41AC and TYPE41UN data sets for 
FORMATS        Data-in-Virtual added format for object type (DA) and    
VMAC41         object mode (Read or Update).                            
Sep 12, 1990                                                            
Change 08.131  The CMS example on page 24 of the MXG Supplement to copy 
VM example     VM/Monitor data to a CMS file named MONITOR DATA A does  
Sep 12, 1990   not specify DCB attributes on the FILE MONOUT statement, 
               and the CMS default of FB, 80, 960 causes the output data
               records to be truncated.  The correct FILE statement is: 
                    FILE MONOUT RECFM=VB LRECL=4092 BLKSIZE=4096;       
               There is additional discussion of possible problems with 
               the subsequent GLOBAL statement in Change 6.212 in member
Change 08.130  Validation and enhancement of the DCOLLECT processing was
VMACDCOL       added by this change. All 7 record types are supported to
               DCOLCAPD, and DCOLCAPT data sets.  The documentation for 
               the output of this IDCAMS utility named DCOLLECT is found
               in several manuals. GG24-3540-00 "DFSMS Planning and     
               Reporting" provides an overview of DCOLLECT. The first 3 
               MXG data sets above are built from VTOC/VVDS information 
               and their contents are described in Appendix E of DFP 3.2
               "Access Method Services for Integrated Catalog Facility",
               SC26-4562-1. The final 4 MXG data sets are HSM related,  
               and their contents is described (poorly, DCOLLECT is not 
               even cited in the table of contents nor the index) in    
               Chapter 17 (User Application Interfaces) of SH35-0084-4, 
               "DFHSM 2.5.0 Installation and Customization Guide".      
               A future MXG newsletter will contrast the data available 
               from the DCOLLECT facility with the data created from the
               VMXGVTOC and VMACVVDS, and will (hopefully) also compare 
               the HSM DCOLLECT data captured with the data available   
               from MXG's JCLHSM (BCDS,MCDS, etc), and the HSM SMF data 
               record (VMACHSM, still work in progress). The initial    
               review does make DCOLLECT attractive, especially since it
               is a supported interface from IBM, but there appears to  
               be some data simply not available from DCOLLECT that may 
               be important (such as physical data set location).       
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
   Thanks to Sal Fazzino, General Electric Capital, USA.                
Change 08.129  SAS 5.18 Compiler Error 344 circumvention. An iterative  
XMACACHE       DO was added by MXG 8.3 for DB2 Distributed Header in the
Sep 12, 1990   VMACDB2 processing. That broke the compiler limit in 5.18
               at a site which had added DB2, Cache DASD, and several of
               their own SMF records to BUILDPDB processing. In looking 
               for additional opportunities to eliminate iterative DOs, 
               this change creates replacement member XMACACHE from the 
               existing VMACACHE member.  XMACACHE will ONLY process the
               3990 Cache Controller records (although the 3880 datasets
               will still be built with zero observations) and thereby  
               eliminated 4 iterative DO statements. If you have added  
               VMACACHE processing to BUILDPDB and get the 344 Error,   
               copy XMACACHE into your USERID.SOURCLIB and rename it    
               therein to VMACACHE.  The original discussion of Error   
               344 Circumvention is in Change 7.038 in member CHANGE07. 
               Note that 344 is only a problem with SAS 5.18. There is  
               no limitation on iterative DOs in SAS 6.06.              
   Thanks to Dan Barbatti, Southwestern Bell Telephone, USA.            
Change 08.128  SMS (System Managed Storage) adds a new record to the    
VMAC60         VVDS for non-VSAM files on SMS-managed volumes, a pseudo 
VMACVVDS       VVR record called the NVR. Unlike real VVR records that  
Sep  5, 1990   describe space, etc., the NVR record has no such data.   
               However, the NVR and the VVR records both now contain the
               SMS attributes (Data, Storage, & Management Class Names).
               The new MXG variables VVRDATCL,VVRSTGCL,VVRMGTCL are the 
               class names, new variable VVRSBKUP is the last backup    
               date, and flag variables VVRNATTR,VVRSMSFG were added.   
               The NVR record was processed without error by TYPEVVDS,  
               but the TYPE60 member failed with a STOPOVER condition   
               if it encountered the new NVR data record without this   
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
   Thanks to Sal Fazzino, General Electric Capital, USA.                
Change 08.127  Preliminary support for MVS/ESA Version 4 SMF changes.   
IMACPDB      1.New variable VARIEDBY was added to TYPE8911 (but applies 
VMAC8911       only for SMF type 9 or 11 vary record) to identify who   
VMAC30         issued the vary command. (In Version 4, a terminal user  
Sep  5, 1990   can actually signal to MVS to vary the device offline).  
             2.New variable MVSLEVEL was added to the type 30 datasets  
               (and will contain SP4.1.0 for MVS/ESA Version 4) so that 
               you can finally know which software operating system was 
               in use at the step/job accounting level. MVSLEVEL was    
               also added (in IMACPDB) to the variables to be kept in   
               PDB.STEPS and PDB.JOBS.                                  
             3.Additional changes in MVS/ESA Version 4 that did not need
               MXG changes but which should be noted:                   
               a. A new bit in the header identifies MVS as Version 4.  
               b. Long standing problem with the internal 3-byte counter
                  for step/job CPUTCBTM (which wrapped at 17 hours) is  
                  now corrected, and a 4-byte field is used internally. 
                  This will correct CPU times for these long-running job
                  records in the type 30 (used by BUILDPDB), but for any
                  site still clinging to the archaic 4, 34, 5,or 35 SMF 
                  record, the CPU times are still only 3-bytes, and will
                  not be correct. (In fact, MVS Version 4 now sets a bit
                  if the 3-byte field overflows to tell you to use the  
                  CPU times in the type 30 instead!).                   
               c. APPC support was added, but accounting fields for APPC
                  are added only to the type 30s, and not 4,34,5,35s.   
               d. SMF Exits IEFUJP and IEFUJV must be AMODE 31.         
Change 08.126  SAS 6.06 Compatibility. JCL Examples.                    
CONFIG         The JCLTEST example creates the MXG Format Library and   
JCLTEST        exercises the MXG system under SAS.  Member JCLTEST was  
JCLTEST6       revised for SAS Version 5, and now %INCLUDES new member  
JCLPDB         SASOPTV5 which specifies the SAS System Options that are 
JCLPDB6        now required by MXG Version 8.3 and later. SAS Version 5 
SASOPTV5       format library still uses the DDname "SASLIB" and uses a 
Sep  5, 1990   DSNAME of "MXG.SASLIB" in this example for Version 5.    
               New member JCLTEST6 provides an example of the JCL needed
               for SAS Version 6.06, and references the CONFIG member to
               specify the Version 6 recommended options.  SAS Version 6
               format library now uses the DDname "LIBRARY" and uses a  
               DSNAME of "MXG.FMTS606" in this example for Version 6.   
Change 08.125  SAS 6.06 Compatibility. SYS prefix reserved in %MACROs.  
ANALDMON       Syntax of %LET SYSTEM causes  "ERROR: Attempt to %GLOBAL 
ANALNPMR       a name (SYSTEM) which exists in a local environment."    
Sep  4, 1990   This is actually a bug in SAS 6.06, but there is a good  
               possibility that the SYS.... prefix may be reserved in   
               %MACRO variables/arguments in SAS 6.07, and thus the two 
               occurrences in MXG in which SYSTEM= was used as a macro  
               variable (to select the SMF System ID for the report)    
               have been changed to SMFSYSTM= instead of SYSTEM.        
Change 08.124  Variable SMGS_MIN in this NSPY reporting program should  
ANALNSPY       have been spelled SMSG_MIN in the FORMAT statement in    
Sep  4, 1990   line 006000.                                             
Change 08.123  The MXG 8.2 circumvention (Change 8.020) for invalid CPU 
VMACSYNC       time in SYNCSORT SMF records was mis-typed and caused    
Sep  4, 1990   TYPESYNC to contain garbage. Line 042910 was added as    
                     @M4 CPUERTST          but it was supposed to be    
                     +M4 CPUERTST $CHAR4.                               
               to redefine CPUERTST as a character value of CPUTCBTM for
               the subsequent test (M4 is set equal to minus four).     
Change 08.122  Member FORMATS produced warning message because there are
FORMATS        no quotes for $MG037FU format definition.                
Sep  4, 1990                                                            
Change 08.121  DB2 PMAUD02 and PMAUD03 report request produced 145 and  
ANALDB2R       170 SAS errors. The format for variable QW0145TS in both 
Sep  1, 1990   PUT statements should be HEX16. instead of $HEX16.       
   Thanks to Tim Kearney, Allied Automotive, USA.                       
Change 08.120  The allocation for SAS 6.06 format library needed SPACE  
FORMATS        of CYL,(10,1) during 6.06 beta testing; unbeknownst to   
LIBRARY        me, the problem had been fixed in 6.06.01, and in fact,  
SASLIB         MXG's format library under SAS 6.06 requires only space  
Sep  1, 1990   of (CYL,(1,1)).  References have been corrected.         
   Thanks to Dan Squillace, SAS Institute Cary, USA.                    
--Changes thru 8.119 comprised MXG PreRelease 8.3 Dated August 26, 1990-
Change 08.119  IMS Log Input Queue times were incorrect whenever an     
TYPEIMS        IMS transaction had no ARRVTIME in its 01/03 record.     
TYPEIMSX       Why IBM can't put the DATE and TIME in every IMS log     
VMACIMS        record is beyond me, but they don't. Because of the      
Aug 26, 1990   missing value, these records sorted early and caused     
               sometimes significant errors in IMSQUETM & RESPNSTM.     
               Comparison with IBM's DFSILTA0 output shows that IBM     
               uses the ENQTIME as the ARRVTIME in these cases, and     
               now MXG also uses ENQTIME.  The implementation was to    
               use the timestamp of the just-previous-log-record minus  
               .001 for ARRVTIME when ARRVTIME was missing. That causes 
               the sort order to be correct, and the .001 allows MXG    
               to recognize that ARRVTIME was missing (IMS time stamps  
               are only accurate to .1 seconds), and thus MXG can use   
               ENQTIME for ARRVTIME in these cases.                     
               In further examination of the test data and the output   
               of DFSILTA0, it became apparent that even IBM's IMS      
               guru's can't figure out how to put IMS transactions      
               together with that program, even though DFSILTA0 is      
               essentially simulating IMS processing and can keep       
               everything it needs in virtual storage. About one        
               third of these IMS 2.2 transactions have missing         
               time stamps on the DFSILTA0 report, especially when      
               multiple transactions are executed with a single         
               program schedule.  Further review suggested that if      
               using the adjacent record's time stamp was good for      
               a missing ARRVTIME in an 01/03 record, it was also good  
               in those many cases where the 03 log contained a non-    
               missing, but much-earlier-than-now timestamp, and now    
               those cases are also detected and protected this way.    
               Additional logic enhancements were offered by Ashland    
               Oil, whose contribution in recalculation of output queue 
               times were implemented in this change as well.           
               And for those of you still using IMS 1.3, remember that  
               member TYPEIMS1 (See Change 7.075 in member CHANGE07)    
               is only for that archaic IMS version.                    
   Thanks to Richard S. Ralston, Rochester Telephone, USA.              
   Thanks to Ervin Claxon, Ashland Oil, USA.                            
Change 08.118  IMS Log processing did not handle a cold start. This     
IMACIMS        contributed discovery added processing in VMACIMS to     
TYPEIMS        detect a cold start of IMS (a subtype of type 40 record) 
VMACIMS        and added IMSQBLDN to count each new queue build event.  
Aug 25, 1990   In TYPEIMS, the SORT order which formerly was            
               which not only handles cold starts, but solves several   
               site's problems with incorrect input queue time, by      
               re-associating IMSTAPNO with IMSRECNO.  The same SORT    
               logic (with different variables) was applied throughout  
               TYPEIMS, and the conditional tests were restructured.    
   Thanks to J. Cary Jones, Philip Morris, USA.                         
Change 08.117  Philip Morris has made this major contribution to MXG    
ASMVTOC        for DASD management and measurement.  They replaced the  
JCLDASD        functional but slow %VMXGVTOR and %VMXGVTOC programs     
VMXGVTOF       (which used SAS and CVAF) to read the DASD VTOCs, with   
ANALVVDS       ASMVTOC, a very fast assembly program that extracts the  
Aug 25, 1990   VTOC data into a flat file.  JCLDASD is a jobstream to   
               execute ASMVTOC (and MXG's pre-existing ASMVVDS program) 
               and it uses VMXGVTOF and ANALVVDS (which were originally 
               named MPXGVTOC and MPXGVVDS in PreReleases) to           
               manage, measure, and recover DASD space.  This has only  
               been repackaged before addition to MXG 8.3, but it       
               has been running at Philip Morris for some time. Note,   
               however, that it is now Merrill Consutants, and not      
               Philip Morris who is now responsible for problems!       
   Thanks to Tuanhung Doanvo, Philip Morris, USA.                       
Change 08.116  MXG's Quality Assurance job stream is contained in the   
JCLUXREF       two JCL members, one for 5.18, the second for 6.06, and  
JCLUXRE6       the reporting ANAL.... members have finally been added   
TESTANAL       into the test stream!                                    
Aug 25, 1990                                                            
Change 08.115  SAS 6.06 Compatibility. Macro compiler logic error.      
ASUMVMON       This circumvention was made before it was known that SAS 
TRNDCICS       ZAP Z6060916 corrected the problem.  The %VMXGSUM macro  
TRNDJOBS       is invoked by these members, and should generate a line  
TRNDRMFI       SAS code for each variable in the NORMn= list, but this  
TRNDTMNT       error caused %VMXGSUM to terminate the scan early and the
TRNDVMON       code generated was wrong, yet there was no error message!
Aug 24, 1990   The error was discovered because the scan truncated the  
               name of a variable, causing that variable to surface on  
               the list of variables without labels in the QA jobstream!
               By moving the NORMn= variables in the 2nd and subsequent 
               lines, the problem seemed to go away, but now that there 
               is a zap for the problem, put it on and don't trust this 
               repositioning circumvention.                             
   Thanks to Chuck Hopf, Hopf Consulting, USA.                          
Change 08.114  SAS 6.06 Compatibility. %VMXGFOR macro for FORCE option. 
VMXGFOR        See ZAP Z6060571 (which was superceded by Z6060969)      
Aug 24, 1990   circumvented the need for FORCE on PROC SORTs, but since 
               that ZAP disables this new FORCE "feature", not all sites
               may choose to disable FORCE. So, for those MXG sorts in  
               which the input and output data sets are the same, this  
               changes adds %VMXGFOR (which has value FORCE under 6.06, 
               and a null value under 5.18)in these 65 members. With    
               this source circumvention installed, the above zap is    
               now optional, instead of required, for MXG.              
               However, this change now makes two SAS options mandatory 
               for execution of MXG. SAS Options MAUTOSOURCE and        
               SASAUTOS=SOURCLIB is now required to locate the %VMXGFOR 
               macro which implemented this change.  (These options have
               always been required for MXG programs which used %MACROs,
               such as ANALDB2R, but now ALL executions of MXG must use 
               these two options to resolve the location of %VMXG...    
                VMXGHSM  VMXGSUM  VMXGVTOC ZRBRPT1  ZRBRPT2             
Change 08.113  Incompatible changes in MXG Trending were implemented by 
DOCTREND       this change, for prior users of MXG Trending data sets.  
GRAFTRND       The TREND.RMFINTRV and TREND.TYPE72 data sets have been  
JCLTREND       renamed to TREND.TRNDRMFI and TREND.TRND72 with MXG 8.3. 
TRNDRMFI       All that you need to do is to rename these two datasets  
TRNDVDEV       in your TREND library BEFORE you run the MXG 8.3+ TRND...
TRNDVMON       programs, using:                                         
Aug 22, 1990     PROC DATASETS LIBRARY=TREND;                           
                 CHANGE RMFINTRV=TRNDRMFI                               
                        TYPE72  =TRND72 ;                               
                 Ok, so now you didn't see this note, you have run your 
                 new TRNDRMFI, and discover only last week's data is in 
                 your trend plots.  Have we destroyed your old data? No!
                 It's still sitting in your TREND library, as datasets  
                 RMFINTRV and TYPE72, but now you can't rename them, as 
                 there's already a TRNDRMFI and TRND72 in your TREND!   
                 In this case, you need only combine the old data sets  
                 with the new data sets:                                
                 DATA TREND.TRND72  ;SET TREND.TRND72   TREND.TYPE72;   
                 and you will have lost nothing and will be compatible! 
               I apologize for the inconvenience of this change, but the
               TREND data sets need to be named differently, because the
               contents (especially TRND72) is quite different than the 
               TYPE72 data set.                                         
               The consolation may be the new member, DOCTREND, which is
               a preliminary documentation of which members of the Trend
               Data Base are built by which members of MXG Software!    
Change 08.112  Chuck Hopf's excellent paper on generation of DB2PM-like 
DOCDB2PM       reports using ANALDB2R (which Chuck wrote) is now added  
Aug 22, 1990   to the MXG documentation in DOCDB2PM.                    
   Thanks to Chuck Hopf, Hopf Consulting, USA.                          
Change 08.111  NPM 1.3 Subtype 82 (x'52'), and perhaps other subtypes,  
VMAC28         have BASNCPDT and BASNCPTM values of 0, which cause INPUT
Aug 22, 1990   function error when creating BASTIME from those fields.  
               In line 163610, replace THEN with AND, and insert a new  
               line containing   BASNCPDT GT 0 AND BASNCPTM GT 0 THEN   
               to eliminate the error message.                          
   Thanks to Ross Pover, Immigration & Ethnic Affairs, AUSTRALIA.       
Change 08.110  MXG QA runs uncovered that variable STRTTIME was not kept
TYPEMONI       in MONIDBDS and MONIUSER data sets built from Landmark   
Aug 22, 1990   CICS data.                                               
Change 08.109  MXG QA now includes testing of the TREND data base, and  
JCLTRND        as a result, the data sets built by the default TREND    
TESTTRND       options are documented (finally) in DOCVER and DOVER08   
Aug 21, 1990   in MXG 8.3 and later.                                    
Change 08.108  SAS 6.06 Compatibility. Eliminate multiple macro compile.
ASUMCICS       These members defined %MACROs VMXGSUM and VMXGDUR using  
ASUMDBDS       %INCLUDE logic, but this causes a re-compile each time   
ASUMDOS        that the include is executed. Instead of using %INCLUDE  
ASUMTMNT       statements, these macros will automatically be defined   
ASUMVDEV       only one time by the combination of SAS system options   
ASUMVMON       MAUTOSOURCE SASAUTOS=SOURCLIB (which have always been    
TRNDCICS       recommended in MXG executions using %MACROs).  In an     
TRNDDOS        unrelated change, DROP DATETIME was also added to each   
TRNDJOBS       invocation of VMXGSUM to save 8 bytes per observation.   
Aug 21, 1990                                                            
Change 08.107  Addition of TREND testing to the MXG QA stream uncovered 
TRNDDOS        a syntax error, and the delete of DATETIME mention above 
Aug 21, 1990   was also added.                                          
               Line 001600, delete (DROP=DATETIME) from line            
               Line 002800, change  ;');  to ';                         
               Insert new line after 002800                             
                  DROP DATETIME;);                                      
Change 08.106  VM/370 Monitor processing could calculate incorrect value
VMACVMON       for date timestamps, but only in the Western Hemisphere, 
Aug 20, 1990   and only if the Monitor Start Record (0.97) timestamp in 
               GMT was after the 202-day interval midpoint and the local
               timestamp was before the 202-day interval midpoint, which
               at most could occur every 202 days. The error only occurs
               in that one day's execution of MXG. The midpoint datetime
               of the current 202-day interval was at 04AUG90:03:43:52. 
               If the VM/Monitor was started on that date at 00:00 local
               time, all Western Hemisphere sites had a GMT of 05:00 or 
               later, and MXG calculated STARTIME 43 minutes too early! 
               Whew!  The error is in the heuristic algorithm to decode 
               the 5-byte datetimestamp (only 202 days fit in 5 bytes). 
               and determine the timezone value, which did not protect  
               for the preceding situation.   Replace lines 209200 thru 
               029600 (now and IF (16*MNHTOD  ...  to END; ) with:      
          THEN BASETIME=BASETIME+FFFFF;                                 
          0.75*FFFFF THEN BASETIME=BASETIME-FFFFF;                      
   Thanks to Frank Putnam, Ryerson Polytechnical Institute, USA.        
Change 08.105  IDMS 10.2 Batch Jobs ACCOUNT1-ACCOUNT3 fields were not   
EXIDMTAS       decoded, because no sample data had been seen. Now it has
Aug 20, 1990   been, and you can decode batch job's account fields into 
               those variables in Exit member EXIDMTAS, which should be 
               copied into your USERID.SOURCLIB and modified therein to 
               contain the appropriate substring operations. For example
               if your three account fields are 17, 8, and 4 bytes long,
               you would insert the below example. (Note that the first 
               byte of ACCOUNT1 begins in byte 2 of TASBFLDS):          
                 IF TASTTYPE='.1......'B THEN DO;  /* BATCH ONLY */     
   Thanks to Harold L. Correll, Harris Corporate, USA.                  
Change 08.104  CA7 (formerly UCC7) job scheduling package still corrupts
VMACTSOM       SMF records, as first described in Newsletter TEN, 1986. 
Aug 20, 1990   CA says 4 sites have reported the problem and they are   
               "looking into it", but have no immediate plan for a fix. 
               CA7 modifies the READTIME of a controlled job by writing 
               a non-zero value in the first byte of its julian date, to
               flag that this job is under CA7's control. When that job 
               terminates, CA7 is supposed to remove its corruption and 
               restore the valid julian date, before the SMF records are
               written. CA7 corrects the SMF record in IEFU83, after the
               record has been built, and only corrects the SMF records 
               that it knows about.  CA7 does not know about TSO/MON!!  
               TSO/MON creates SMF records for batch jobs that execute  
               TSO commands, and if that job is under CA7 control, that 
               SMF record contains corrupted READTIME values, causing an
               "INVALID DATA FOR READTIME ...", a hex dump of the record
               and several pages of variable=value error messages.      
               Since CA appears incapable of rapid response, and since  
               the error is likely to show up again, this specific fix  
               to CA7s corruption of TSO/MON records can generically be 
               used for any other (future) SMF record corrupted by CA7. 
             a.Locate all occurrences of inputting READTIME SMFSTAMP8.  
               in member (in VMACTSOM, lines 034700 and 068800). Change 
               all occurrences to now read READCA7S $CHAR8.  instead.   
             b.Find the @; which terminates the INPUT statement you just
               fixed (in VMACTSOM, lines 040100 and 072500). Insert four
               lines after each @; which read:                          
                 IF SUBSTR(READCA7S,5,1) GT '01'X THEN DO;              
               Note that this fix is only waranteed thru Dec 31, 2099.  
               If CA7 is still corrupting SMF data in the year 2100,    
               (since they are overwriting the century byte of date)    
               the 01 in the algorithm will need to be changed to 02!   
   Thanks to Keith Mo, Empire Blue Cross Blue Shield, USA.              
Change 08.103  SAS 6.06 Compatibility. VMXGSUM DROP= conflict.          
ASUMVMON       Change 8.089 in MXG 8.2 added DROP=MXGMISS MXGNMISS to   
TRNDVMON       the %VMXGSUM macro, but two members that invoke %VMXGSUM 
Aug 12, 1990   already contained DROP= arguments, causing syntax errors 
Aug 21, 1990   (that should have been caught in MXG 8.2 testing), and   
               thus this change only affects recipients of MXG 8.2. But 
               while we were at it, we also removed the unnecessary     
               includes discussed above in Change 8.108.                
             1.ASUMVMON, delete line 001200 to eliminate %INCLUDE.      
               Line 001600, remove  (DROP=WFRENUM DATETIME)             
               Line 003700, change  ;);  to  ;                          
               Insert new line after 003700 containing                  
                 OUTCODE=DROP WFRENUM DATETIME;);                       
             2.TRNDVMON, delete line 001100 to eliminate %INCLUDE       
               Line 001500 remove (DROP=WFRENUM DATETIME)               
               Line 003700 remove )                                     
               Insert new line after 003700                             
                 DROP WFRENUM DATETIME;);                               
Change 08.102  For the DB2ACCT Accounting data set in a Distributed DB2 
VMACDB2        environment, the Distributed Header fields QWSHCCNT,     
VMAC102        QWHDLUNM, QWHDNETI, QWHDRQNM, and QWHDUNIQ are now added.
Aug 12, 1990   In the type 102 trace correlation header, QWHCOPID is now
               decoded. In both the 101 and 102 SMF records, MXG now    
               looks for all five possible header types.                
   Thanks to Mike Atterberry, Rockwell International, USA.              
Change 08.101  ANALDB2R Accounting Trace Long worked if the Trace Short 
ANALDB2R       was requested, but if the Trace Long alone was requested,
Aug  9, 1990   a SORT VARIABLE error occurred. Adding SORTBY=DBT, to the
               ANALDB2R invocation will make the problem go away, or    
               adding these four lines after line 018980 will fix it:   
                    %IF &PMACC02 NE YES %THEN %DO;                      
                     %LET SORTN = 1;                                    
                     %LET SORT1 = %QUOTE(DB2);                          
   Thanks to Cindy Schinker, AgriData Resources, USA.                   
Change 08.100  Support for WSF 3.3.0 and WSF 3.3.4 SMF records from the 
EXWSFACC       WSF sysout archive product from RSD. Five data sets are  
EXWSFDSN       from the account record, and data set WSFAUDIT is built  
EXWSFERD       from the audit SMF record. The WSFACCT and WSFERD data   
EXWSFEVP       sets contain the total READ, WRIT, etc counts from all   
EXWSFEVS       of the DSNB sections, and the WSFDSN data set contains an
IMACWSF        observation for each DDNAME/DSNAME accessed. The WSFERD, 
TYPEWSF        WSFEVTS (Screen) and WSFEVTP (Printer) datasets contain  
VMACWSF        CPU time for WSF processing, unique for sysout archivers!
Aug  6, 1990   Member IMACWSF identifies which SMF record is which.     
   Thanks to Victoria A. Lepak, Aetna Casualty and Surety Company, USA. 
Change 08.099  A plethora of VM/XA changes were discovered in a search  
Aug  6, 1990   of the documention for these VM/XA changes required the  
               actual script of the PTF, and the documentation leaves   
               a lot to be desired. This is especially sad, because the 
               VM/XA monitor itself was one of the best documented IBM  
               products in a long time. I guess that's the difference   
               between development and maintenance in IBM.              
             1.VM39921 added variable CALBASE to seven VM/XA datasets   
               to identify if this is the base VMDBK or adjunct VMDBK.  
             2.VM39196 added variable CALMODE to four VM/XA datasets    
               (VXMTRUSR,VXUSELON,VXUSEACT,VXUSEATE) to indicate the    
               architectural mode (ESA, XA, or 370) of the guest.       
             3.VM36026 added variable CALIOACT to VXSYTUWT and variable 
               HFIOACT to datasets VXUSEINT and VXUSEITE to count the   
               number of times the user has an asynchronous I/O that    
               was outstanding.                                         
             4.VM36104 adds two new VM/XA monitor records, 0.15 (SYTCUG)
               and 0.16 (SYTCUP), measuring LPAR (Logical Partition) CPU
               allocation (dispatched) duration. MXG builds two new data
               sets, VXSYTCUG (per time interval) and VXSYTCUP (per LPAR
               per time interval). The new data is identical to that    
               in the MVS TYPE70PR SMF data record, and reports on the  
               utilization of ALL of your LPARs on the hardware platform
               whether they are executing VM, MVS, or DOS.              
   Thanks to Tom Healy, ChemNet Processing, USA.                        
Change 08.098  Support for IMS/ESA 3.1 IMS log processing is now added. 
FORMATS        While several additional fields were added to the IMS log
TYPEIMS        records 07 and 08, because they were added at the end of 
VMACIMS        the log record, MXG 7.7 will not fail with IMS 3.1 data! 
Aug  6, 1990   Several of the new fields are 8-byte time durations that 
               are not documented as to format in the IMS log DSECTS,   
               and the test data received to data was only from BMPs    
               that had zero values for these durations, so there is    
               still some validation/verification required. The new     
               data fields that have been added are:                    
                DBCTL DB I/O measures:                                  
                 DLRIOCNT - DBCTL DB I/O Count.                         
                 DLRTMEPL - DBCTL DB Locking Elapsed Time.              
                 DLRTMEIO - DBCTL DB I/O Elapsed Time.                  
                Delays during program scheduling:                       
                 DLRMINT  - Wait time for Intent Conflict with another  
                            PSB for scheduling.                         
                 DLRMPOL  - Wait time for Pool Space for scheduling.    
                 DLRMSCH  - Elapsed time for Schedule Processing        
                             (which includes both DLRMINT and DLRMPOL). 
               There is only one 07 record per program schedule, but it 
               describes NMSGPROC transactions, if multiple transacts   
               are executed by a single program schedule. As MXG has had
               to do before, these new 07/08 fields are divided by the  
               NMSGPROC value and thus each ultimate transaction record 
               in TYPEIMS contains the average count/duration of these  
               new resource measures.                                   
               What has not been tested for IMS/ESA 3.1 is the data     
               compaction introduced (I think by an SPE to IMS) in      
               MVS 3.1.3.  APARs OY19751, OY19854, OY19860, OY19863 are 
               involved, and IBM manual GC28-1057, MVS/ESA Data         
               Compression and Expansion Services describe the new      
               callable macro CSRCESRV which is automatically used by   
               IMS/ESA 3.1 to compress the OLDS and SLDS (System Log    
               Data Set, the input to TYPEIMS).  I am still researching 
               if, when, and how the data compression occurs, and would 
               welcome an IMS/ESA log tape with compression in effect   
               so that I can figure out how to decompress it in MXG!    
   Thanks to Hamid Tavakolian, Continuum, USA.                          
Change 08.097  This circumvention member for the 344 Compiler error had 
XMAC73         initialized variable LCI as numeric instead of character.
Aug  6, 1990   Line 014500 should be IF LCI=' ' then LCI=' ';           
               Only when data from before and after the circumvention is
               installed, did this cause a conflict.                    
   Thanks to Richard Evans, Mervyns, USA.                               
Change 08.096  SAS 6.06 Compatibility.  PROC PRINT PAGE option.         
ANALESV        The PROC PRINT option PAGE no longer exists, and it has  
Aug  3, 1990   been removed from this example report.                   
   Thanks to Tom Simons, Matson Navigation, USA.                        
Change 08.095  SAS 6.06 Compatibility. LIBREF reuse as FILEREF.         
MONTHBLD       SAS Version 6.06 still does not properly recognize the   
Aug  3, 1990   TAPECLOSE=LEAVE or FILECLOSE=LEAVE options when reading  
               or writing tape format SAS data libraries. Just like 5.18
               did, a rewind of each tape library is issued after each  
               SAS data set is read/written, whereas the LEAVE options  
               should cause the tape to remain positioned at the end    
               of the SAS data set just read/written on that tape. The  
               problem is only that this causes many tape mounts if the 
               input or output data libraries are multi volumes, and it 
               causes lots of rewinds (and hence longer elapsed times)  
               even if only single volume tape libraries are involved.  
               The problem has been most pronounced in building the     
               monthly PDB (since that has the highest probability to   
               be multi-volume).  MXG has provided a circumvention in   
               MONTHBLD for the output tape (ddname MONTH), but changes 
               in the SAS 6.06 language specifications were made. To    
               protect users from accidentally overwriting a SAS data   
               library with a FILE/INFILE statement, SAS 6.06 no longer 
               allows the same ddname for both a LIBREF and FILEREF at  
               the same time.  The following circumvention is required  
               in MONTHBLD to free the LIBREF name so it can be reused  
               as a FILEREF (and, of course, the syntax only works under
               SAS 6.06 so that version-dependent macros are required so
               that the modified MONTHBLD executes under either 5.18 or 
             1.Before the second "MACRO _MNTHBLD" definition, insert    
               these two new compatibility macros:                      
                    %MACRO V6COMPEN;                                    
                      %IF %SUBSTR(&SYSVER,1,1) GE 6 %THEN %DO;          
                        LIBNAME TAPETEMP TAPE ;  /*6.06+ TAPE ENGINE*/  
                    %MACRO V6COMPCL;                                    
                      %IF %SUBSTR(&SYSVER,1,1) GE 6 %THEN %DO;          
                        LIBNAME TAPETEMP CLEAR;  /*6.06+ CLEAR*/        
             2.Inside the second "MACRO _MNTHBLD" definition, after the 
               OPTIONS OBS=MAX; and before the DATA TAPETEMP._DSET;     
               insert (note double percent sign):                       
             3.Inside the second "MACRO _MNTHBLD" definition, after the 
               IF _BEGIN LE ZDATE LE _END; and before the DATA _NULL_;  
               insert (note double percent sign):                       
                 RUN; %%V6COMPCL; RUN;                                  
   Thanks to Bud Porter, City of Birmingham, USA.                       
Change 08.094  Truncated RMF type 79 SMF records resulted when SMF data 
VMAC79         records that were actually LRECL=32760 bytes were dumped 
VMAC79         with an incorrect LRECL=32756 specified in the SMF dump  
Aug  3, 1990   or copy program. The correct LRECL=32760 must be used.   
               MXG detected and deleted the defective SMF records, but  
               did not note on the log this had been done. The type 79  
               subtype 1 record with 32760 bytes occurs only when there 
               are 331 or more address spaces active. This change now   
               reports when bad records have been found and reports that
               they were deleted.  Insert after line number 017100      
               (the end of MONITOR II Control SECTION):                 
                 IF SMF79ASS GT 0 AND SMF79ASL GT 0 AND SMF79ASN GT 0   
                 AND L79EXPD GT LENGTH THEN DO;                         
                   IF N79BADAS LT 10 THEN PUT                           
                        ' EXPECTED ' L79EXPD                            
                        ' BYTES, BUT LOGICAL DATA IS ONLY ' LENGTH      
                        ' BYTES IN RECORD. RECORD DELETED.';            
   Thanks to Ken Trayes, General Electric Capital, USA.                 
Change 08.093  The 8.2 PreRelease copy of VMACZRB has now been validated
VMACZRB        by the original author of the RMF III processing support,
Aug  3, 1990   who discovered that all X'04' must be changed to $  and  
               all X'52' must be changed to "not" signs. Guess what MXG 
               source code went from EBCDIC to ASCII and back to EBCDIC!
               To avoid future character set conversion problems, I have
               further changed all "not-symbol equal signs" to " NE ".  
               (In printing this change, which was down loaded from MVS 
               to PCDOS, the "not-symbols" were converted and printed as
               "caret" symbols!  Please do not use not-symbols!)        
   Thanks to Dick Whiting, Precision Castparts, USA.                    
Change 08.092  STC's 4400 Silo SMF record will contain a new subtype 7  
EXSTCHSC       for HSC 1.1.0.  This change adds support for that new    
FORMATS        subtype, and creates a new STCHSC data set, with some    
VMACSTC        60 new variables. New $MGSTCxx. formats were also        
Aug  2, 1990   created to decode several variables.                     
Change 08.091  Amdahl's MDFTRACK SMF records were not quite right. Six  
Aug  1, 1990   were missing.                                            
             1.In lines 011700 thru 012300, where these variables were  
               INPUTed as ?? PD4.2, they should instead be PIB4.        
             2.Insert six new lines, after 014200, to convert these six 
               fields to their screen values:                           
                   DOMATGT=FLOOR((((DOMATGT)/GBLELTM)+5)/10);   014210  
                   DOMMAX =FLOOR((((DOMMAX )/GBLELTM)+5)/10);   014220  
                   DOMMIN =FLOOR((((DOMMIN )/GBLELTM)+5)/10);   014230  
                   DOMNORM=FLOOR((((DOMNORM)/GBLELTM)+5)/10);   014240  
                   DOMTGT =FLOOR((((DOMTGT )/GBLELTM)+5)/10);   014250  
                   DOMUTIL=FLOOR((((DOMUTIL)/GBLELTM)+5)/10);   014260  
   Thanks to Vince Loeffler, Searle, USA.                               
   Thanks to Martin Tavener, Reed Travel Group, ENGLAND.                
   Thanks to Myron King, The Equitable, USA.                            
Change 08.090  These extensive validation corrections to ACF2 support   
VMACACF2       correct the ARE processing, and clean up several other   
Aug  1, 1990   minor bugs.  This replaces the temporary fix for the     
               ARE that was made by Change 8.002, and this fix should   
               have been in PreRelease 8.2, but got lost temporarily!   
             1.Lines 010400-010500, remove ACEEMLTH ACEELDNM ACEVLOFF & 
               ACEFLDVL, as they do not exist.                          
             2.Line  011700, ACLMAMFS should be ACLMAFMS.               
             3.Lines 032600,032700 change ACTMFTOD to ACSMFTOD.         
             4.Line  035900, change PIB8. to TODSTAMP8.                 
             5.Lines 037300-037400 can be deleted.                      
             6.Line  046200 can be deleted.                             
             7.Line  016010 inserted after 016000 naming all five of    
               the ACJ..... variables in ACF2TR.                        
             8.Line  062000 (ACVMFRT PIB1.), insert new line after      
               containing   +1                                          
             9.Lines 049100-055900 were completely re-written to        
               properly decode the ARE segments.                        
   Thanks to J. R. Dravnieks, Ladbroke Computer Services, NETHERLANDS.  
Change 08.089  Obscure. Using the FREQ= options of VMXGSUM can result in
VMXGSUM        erroneous counts if all variables in the MIN=,MAX=,MEAN=,
Jul 31, 1990   or SUM= macro arguments contain missing values.          
               Replace three lines 034900-035100 (now reading):         
                  %IF %LENGTH(&FREQ) NE 0 %THEN %DO;                    
               with these two lines:                                    
                  NMISS = MXGNMISS                                      
                  N = MXGMISS                                           
               Change line 035300 to read:                              
                  DATA &OUTDATA (DROP=MXGMISS MXGNMISS);                
               Insert the following after line 035600:                  
                  %IF %LENGTH(&FREQ) NE 0 %THEN %DO;                    
                   &FREQ = SUM(MXGMISS,MXGNMISS);                       
Change 08.088  Early alpha tests of a new DB2 monitor created an SMF 100
VMACDB2        subtype 1 data record with a subtype field of zero, which
Jul 30, 1990   caused MXG to STOPOVER abend. Although the real cause of 
               the error was a bad record (that was immediately fixed), 
               this change was added to enhance MXG to be more robust   
               and to avoid the STOPOVER even in the face of bad data!  
               It's unlikely you will need to install this insurance:   
             1.Line 086200 should be LENQLST PIB2. vice OFFQLST PIB2.   
             2.After line 088700 ( IF QWHSLEN GE 52 THEN ...), insert:  
                 IF QWHSNSDA LT 13 THEN OFFRSV3=.;              088710  
                 IF QWHSNSDA LT 12 THEN OFFQJST=.;              088720  
                 IF QWHSNSDA LT 11 THEN OFFQLST=.;              088730  
                 IF QWHSNSDA LT 10 THEN OFFQSST=.;              088740  
                 IF QWHSNSDA LT  9 THEN OFFQVAS=.;              088750  
                 IF QWHSNSDA LT  8 THEN OFFQVLS=.;              088760  
                 IF QWHSNSDA LT  7 THEN OFFQWSD=.;              088770  
                 IF QWHSNSDA LT  6 THEN OFFQ9ST=.;              088780  
                 IF QWHSNSDA LT  5 THEN OFFQ3ST=.;              088790  
                 IF QWHSNSDA LT  4 THEN OFFQWSC=.;              088791  
                 IF QWHSNSDA LT  3 THEN OFFQWSB=.;              088792  
                 IF QWHSNSDA LT  2 THEN OFFQWSA=.;              088793  
             3.After line 125400 ( IF QWHSLEN GE 52 THEN ...), insert:  
                 IF QWHSNSDA LT 7 THEN OFFEDM =.;               124510  
                 IF QWHSNSDA LT 6 THEN OFFQTXA=.;               124520  
                 IF QWHSNSDA LT 5 THEN OFFQIST=.;               124530  
                 IF QWHSNSDA LT 4 THEN OFFQBST=.;               124540  
                 IF QWHSNSDA LT 3 THEN OFFQTST=.;               124550  
                 IF QWHSNSDA LT 2 THEN OFFQXST=.;               124560  
             4.After line 165700 ( IF QWHSLEN GE 52 THEN ...), insert:  
                 IF QWHSNSDA LT 6 THEN OFFR5  =.;               165710  
                 IF QWHSNSDA LT 5 THEN OFFQTXA=.;               165720  
                 IF QWHSNSDA LT 4 THEN OFFQBAC=.;               165730  
                 IF QWHSNSDA LT 3 THEN OFFQXST=.;               165740  
                 IF QWHSNSDA LT 2 THEN OFFQWAC=.;               165750  
   Thanks to Benny Maynard, BiLo, Inc, USA.                             
==============Changes thru 8.087 comprised MXG PreRelease 8.2===========
Change 08.087  Lines 046800 thru 047100 should have denominator TRANSNO 
VMACNSPY       instead of TOTRSPNO for calculation of T1RSPPC-T4RSPPC.  
Jul 20, 1990   If this DO group was entered (not likely), missing values
               were calculated because TOTRSPNO was missing. This only  
               affected the NSPYLU data set values.                     
   Thanks to Marty Quinlan, Virginia Power, USA.                        
Change 08.086  PreRelease validation identified many datasets which did 
DOC            not have ZDATE, some $MG.. formatted variables that were 
Jul 20, 1990   length 8, some DATETIME variables that were not length 8,
               and many variables with no label.  Uninitialized variable
               messages were also detected and corrected, and the TREND 
               data base code was added to the MXG Validation/Cross     
               reference testing.                                       
Change 08.085  This JCL member contains IDCAMS control statements and   
JCLVSAM        JCL to build a VSAM ESDS data set that is needed only for
Jul 20, 1990   MXG testing of RMF III (VMACZRB) code.                   
   Thanks to Jeannie Hopf, Hopf Consulting, USA.                        
Change 08.084  This is a significant internal revision to DB2 reporting 
ANALDB2R       from SMF trace data. Previously, you had to update/edit  
Jul 20, 1990   member IMAC102 to tell MXG what trace classes had been   
               enabled. If you did not update IMAC102 correctly, MXG    
               would create zero observations in T102Snnn datasets, even
               though there were SMF records for IFCIC nnn in your SMF  
               file.  Now, when you specify PDB=SMF in ANALDB2R, the    
               program is smart enough to know which datasets are needed
               and ANALDB2R no longer uses IMAC102 to control T102S...  
               datasets.  (Note: IMAC102 is still needed if you use the 
               TYPE102/VMAC102/BUILDPDB method of processing DB2 trace  
               type 102 records; this change applies only to ANALDB2R,  
               and only when PDB=SMF is specified to read SMF data.)    
               Additionally, macro variables corresponding to macro     
               names constructed by IMAC102 were added to ANALDB2R to   
               allow you to select specific trace class(s), using the   
               syntax of DB2TC1=YES as the argument when you invoke the 
               %ANALDB2R report macro.  Documentation (comments in the  
               member itself) was added to describe the new parameters, 
               and also to list which trace classes must be enabled for 
               each report group.  The member was renumberd.            
Change 08.083  Dataset VXIODDEV variables AVGPNDMS,AVGDISMS,AVGCONMS are
VMACVMXA       incorrect (but this should not affect most users, as this
Jul 20, 1990   detail dataset is not typically used; instead VXDEVTOT   
               and VXSUMIOD are used and their values were correct). But
               now, even these variables are always correct.            
               Dataset VXPRCPRP variable HFUSERZ is now formatted 5.1   
               and multiplied by 100, as it is a percentage, not a rate.
   Thanks to Dick Whiting, Precision Castparts, USA.                    
Change 08.082  Support for APAR OY32638 which (finally!!) adds PROCSTEP 
IMAC30         to the type 30 record datasets, and to the PDB.STEPS data
VMAC30         set in your PDB.  This procedure stepname has been wanted
Jul 20, 1990   since OS/360. However, what is still wanted and still not
               provided in any SMF record is the actual name of the JCL 
               procedure that was executed by the user on the EXEC card!
Change 08.081  Support for APAR OY25606/OY33312, which (incompatibly)   
VMAC30         added a new 4-byte field (SMF30EOS) to replace the 2-byte
Jul 14, 1990   existing SMF30EOR. Without this change, MXG variable     
               EXTRADD will contain a value of 61682, but as that is    
               not actually used by MXG, the incompatibility is one of  
               principle rather than one of fact. The EXTRADD field had 
               to be expanded from half-word to full-word to keep count 
               of the number of extra DD segments in additional SMF     
               type 30 records that can be written if the new DDCONS(NO)
               option is specified. See extensive discussion in IBM's   
               Washington Systems Center Flash Number 9027, and further 
               notes in the next MXG newsletter.  Inserted to correct:  
                IF OFFPROD-3-COL GE 6 THEN INPUT @105 EXTRADD PIB4. @;  
   Thanks to George Scott, Rockwell International Corporation, USA.     
Change 08.080  Support for ORACLE SMF Record. The data set ORACLE is    
ANALORAC       built from the SMF record ID specified in IMACORAC       
EXORACLE       (which should be copied into your USERID.SOURCLIB and    
IMACORAC       changed therein). A set of sample reports are also in    
TYPEORAC       ANALORAC. This user contribution was reformatted and     
VMACORAC       has been tested with a small sample of ORACLE data.      
Jul  7, 1990                                                            
   Thanks to David Henley, Signet Bank/BISYS, USA.                      
Change 08.079  Significant validation of RMF III VSAM records is in this
VMACZRB        user enhancement. In addition to corrections in VMACZRB, 
TYPEZRB        new members ZRBCHECK will check the integrity of these   
ZRBCHECK       datasets produced by VMACZRB, and member ZRBMXIDX now    
ZRBDLYBT       summarizes and builds an index for the datasets that are 
ZRBMKIDX       built from VMACZRB, and member ZRBDLYBT reads the index  
Jul  7, 1990   and summarized datasets to produce delay reasons for     
               batch jobs. VMACZRB0 is a backup of previous VMACZRB.    
   Thanks to Roland Rashleigh-Berry, National Westminster Bank, ENGLAND.
=========Changes thru 8.078 were printed in Newsleter SEVENTEEN=========
Change 08.078  SAS 6.06 Compatibility. Comma after last argument.       
TRNDJOBS       An extraneous comma after line 002900 works under 5.18   
Jul  4, 1990   but is flagged as an error under 6.06.  This comma is    
               after the last macro argument, immediately preceding  the
               close parenthesis, and was not required, so its gone.    
   Thanks to M. Cambier, Credit Lyonnais, FRANCE.                       
Change 08.077  The variable ACCESS should have been created in the exit 
ANALDSET       for TYPE64, but was not.  Insert new line after 007300   
Jul  4, 1990   setting   ACCESS='VSAM';                                 
   Thanks to John R. Grout, Midlantic National Bank, USA.               
Change 08.076  Further validation of Trending uncovered incorrect code  
ASUMCICS       in these ASUM.... members (that take detail data like    
ASUMJOBS       CICS transactions, JOBs, etc. and summarize in groups).  
ASUMTMNT     1.Response buckets in ASUMCICS were off by one bucket. In  
Jul  4, 1990   lines 009900 thru 010500 change LE to LT, and in line    
               010700 change RESPMAX=RESP to RESPMAX=IRESPTM.           
             2.Similarly, in ASUMJOBS change lines 003600 thru 004200   
               from LE to LT.                                           
             3.Similarly, in ASUMTMNT change lines 002400 thru 003000   
               from LE to LT.                                           
   Thanks to Jim Hinkel, Weyerhaeuser Company, USA.                     
Change 08.075  The VTOC processing code did not capture free space that 
VMXGVTOC       is located at the very beginning of the volume.  This    
Jul  4, 1990   change added about 30 lines to recognize that situation. 
   Thanks to Uriel Carrasquilla, Vancouver Stock Exchange, CANADA.      
Change 08.074  Preliminary support for IBM System Managed Storage (SMS) 
EXDCOCLU       utility program DCOLLECT, that creates a flat file of    
EXDCODSN       Data Set, Cluster, and Volume information from SMS. This 
EXDCOVOL       significant user contribution creates three MXG datasets,
TYPEDCOL       Not all of the variables have been decoded, and the code 
VMACDCOL       may be enhanced in the future with decoding formats.     
Jul  4, 1990                                                            
   Thanks to Tom Skasa, General Electric Medical Systems, USA.          
Change 08.073  Considerable validation of the VVDS record created by MXG
VMACVVDS       member ASMVVDS and processed by VMACVVDS has uncovered   
Jun 28, 1990   several errors and additional variables are created.     
               VVRSPCOP and VVRSSDAT should be added to the KEEP list.  
             2.These seven new variable's labels should be added:       
                VVRCATSD = 'SELF-DESCRIBING*VVR FOR*CATALOG'            
                VVRCOMTP = 'COMPONENT*TYPE'                             
                VVRKRQ   = 'KEY*RANGE*QUALIFIER'                        
                VVRSELFD = 'SELF-DESCRIBING*VVR FOR*VVDS'               
                VVRSPCFG = 'SPACE*FLAGS'                                
                VVRSPCOP = 'SPACE*OPTIONS'                              
                VVRSSDAT = 'SEQUENCE*SET*WITH DATA'                     
             3.Add variables VVRALTSP VVRAMSTS and VVRTMSTP length 8 to 
               the LENGTH statement at line 012900.                     
             4.Add variables VVRALSTP VVRAMSTS and VVRTMSTP to the      
               FORMAT statement at line 014300 with DATETIME21.2;       
             5.After line 016500 (before the END; before 'D8'X), insert 
                 IF VVRFLAG='.1......'B THEN VVRSELFD='Y';              
                 IF VVRFLAG='..1.....'B THEN VVRCATSD='Y';              
                 IF VVRFLAG='....0...'B THEN VVRCOMTP='D'; /* DATA */   
                 ELSE                        VVRCOMTP='I'; /* INDEX */  
             6.Change SMFSTAMP8. in 024100, 024200 and 029100 to        
             7.Change  test '....1...'B for VVRA1IUP in line 024900 to  
               instead test '.....1..'B.                                
             8.After line 026000 (after IF VVRAIXFG ...), insert        
                 IF VVRSPCFG='11......'B THEN VVRSPCOP='CYL';           
                 ELSE                         VVRSPCOP='TRK';           
             9.In lines 030600 thru 031200 the test for VVRDSATR should 
               instead test VVRAMATR.                                   
            10.Change all " IB" to " PIB" (binary numbers should be     
               PIBn. rather than IBn. to prevent unexpected negatives.) 
   Thanks to Tuanhung Doanvo, Philip Morris, USA.                       
Change 08.072  SAS 6.06 Compatibility. ID statement different.          
TRNDRMFI       To avoid a very obscure exposure if SU_SEC was missing,  
Jul  3, 1990   the order is now ID = NRCPUS PARTNCPU SU_SEC STARTIME,   
Change 08.071  SAS 6.06 Compatibility. AUTOCALL fails.                  
ANALDB2R       The first line of an AUTOCALLd macro cannot be non-blank 
VMXGGOPT       in column 72 of the first line of the member, until SAS  
VMXGHSM        ZAP Z6060946 exists.                                     
Jun 29, 1990                                                            
Change 08.070  The MXG 7.7 Tape Mount Monitor (in ASMTMNT) does work on 
ASMTMNT        MVS/ESA as well as MVS/XA (and, also for MVS/370!). The  
Jun 29, 1990   comment in that member is wrong; the code had been tested
               under MVS/ESA last year. The argument yy of SYPARM(xx,yy)
               value of SP builds the MVS/370 monitor, using XA for yy  
               creates a monitor that works on either MVS/XA or MVS/ESA.
               This change only changed the comments, not any real code.
Change 08.069  BUILDPDB/3 has been enhanced in several ways.            
BUILDPDB     1.The contents of the SPIN library are now copied into the 
BUILDPD3       PDB library at the end of BUILDPDB/3 processing. This is 
Jul  3, 1990   both for Backup/Recovery and for possible analysis.      
               Should you ever need to back up and recover your PDB jobs
               you would simply go back to the last successful PDB, and 
               copy (PROC COPY IN=PDB OUT=SPIN; SELECT SPIN:;) the SPIN 
               data sets from that PDB into your SPIN library, and then 
               re-process the input SMF data.                           
               In addition, by inclusion of the SPIN data sets in your  
               PDB, jobs which executed yesterday but have not yet      
               purged will be available in the SPIN30_5 (and their steps
               in the SPIN30_4) data set for timely reporting.          
             2.Job accounting variables ACCOUNTn and SHIFT were added to
               the PDB.SMFINTRV data set. SHIFT is defined by your shift
               definition in IMACSHFT, applied to the interval INTBTIME 
              begin time stamp. This would allow shift by shift charging
              for your long running jobs, but if you do so, you must be 
              careful to not double charge between the PDB.SMFINTRV and 
              the duplicate data in PDB.JOBS and/or PDB.STEPS.          
                The BUILDPDB logic was slightly altered by this change. 
                Previously, the PDB.SMFINTRV data set was built by sort 
                of the TYPE30_V before the EXPDBSPN exit. Now, the logic
                is relocated to after all EXPDB... exits, just before   
                the SPIN library is updated.  Completed jobs (PDB.JOBS) 
                and incomplete jobs (SPIN30_1) are now merged with the  
                type 30 interval records and output in PDB.SMFINTRV.    
                Unless you used exit EXPDBSPN and expected PDB.SMFINTRV 
                to exist in that exit, there is no compatibility issue. 
                you have used EXPDBSPN                                  
            3.TYPE25 data set (JES3 Main Device Scheduled) is now added 
              automatically to the JES 3 PDB built by BUILDPD3.         
Change 08.068  SAS 6.06 Options are controlled by the DDNAME of CONFIG  
CONFIG         in the SAS606 procedure.  The MXG library now contains   
Jun 28, 1990   the CONFIG member, which has been used in all of MXG's   
               testing discussed in Newsletter SEVENTEEN.  It may change
               as more is discovered in testing SAS 6.06, but it is here
               so that you will know what options we had changed from   
               SAS's defaults.  You may find a separate CONFIGTSO member
               useful to specify NODMS, NOCENTER, etc., because SAS 6.06
               does not automatically recognize the TSO environment. In 
               the production version 8 there will likely be multiple   
               CONFIG... members.                                       
Change 08.067  ANALDB2R reporting was slightly different than IBM DB2PM.
ANALDB2R     1.The Accounting Detail showed average instead of total for
Jul  3, 1990   Class 3 System Events. Moved variables QWACARNA,QWACARNE 
               from MEAN= at line 015240 to the SUM= at line 015330.    
             2.The ELAPSED time on the MXG report was the ending minus  
               starting time, instead of the sum of the plan execution  
               durations.  Deleted lines 109400-109430 and 117940-117970
                   %IF .......                                          
                   %ELSE ....                                           
               in both places.                                          
             3.Selection criteria in MXG reports incorrectly used ending
               time stamp instead of start time, causing MXG to report a
               different set of intervals than DB2PM. Change to read:   
               line 006590 and 015850     IF "&BEGTIME"DT LT QWACESC;   
               line 006620 and 015880     IF "&ENDTIME"DT GT QWACBSC;   
               line 084930 and 110050     IF "&BEGTIME"DT LT QWHSSTCK;  
               line 084950 and 110080     IF "&ENDTIME"DT GT STRTTIME;  
   Thanks to Piara Singh, Ministry of Health, SINGAPORE.                
Change 08.066  This change supports the new "SRCL" field added to RMF   
VMAC7072       product section by APAR OY28449 and PTF UY49092. The     
VMAC71         text of the PTF claims that                              
VMAC73          "the APAR will not impact the customer unless they      
VMAC74           have private programs that process RMF - SMF records.  
VMAC75           The customer will have to modify their programs/execs  
VMAC76           to include the new SRCL field..."                      
VMAC77         but there is NO impact on MXG 7.7. The new field was     
VMAC78         already a reserved field in the RMF product section, and 
VMAC79         its value is currently always zero. This change uniformly
XMAC7072       renames the reserved field @OFFRMFP+51 as RMFSRCL, but   
XMAC71         only for possible future use when IBM actually puts a    
XMAC73         non-zero value in the field (which is suposed to be an   
XMAC74         indicator of the RMF source level that created the RMF   
XMAC75         record).                                                 
Jul  2, 1990                                                            
Change 08.065  This announces support for CICS/ESA Releases thru 3.1.1  
EXCIC...       Monitor and Performance data. Forty seven MXG datasets   
FORMATS        are created from the new Statistics class data, and new  
IBCICTRN       variables were added to CICSTRAN and CICSEXCE. Two data  
PRCICALL       sets no longer exist in CICS/ESA: CICSACCT was always    
UTILCICS       redundant with CICSTRAN, and CICSYSTM's interval data is 
VMAC110        now contained in (and significantly enhanced) in the 47  
VMAC110B       new CIC..... CICS statistics datasets. See the technical 
VMAC110M       note in MXG Newsletter SEVENTEEN documenting changes.    
Jun 30, 1990 a.The new member VMAC110 contains support for all CICS data
               (1.5,1.6,1.6.1,1.7,2.1,3.1.0, and 3.1.1) concurrently.   
             b.Member VMAC110B is the backup copy of VMAC110 before the 
               3.1.1 changes. It will not exist in the next prerelease. 
             c.VMAC110M processes only subtype 1 records for CICS/ESA   
               and previous CICS's; it does not process new Statistics  
               structure, but does know about new fields in the CICS    
               dictionary in 3.1.1. It may be needed to avoid a SAS 344 
               Compiler Limit exceeded error under SAS 5.18 for sites   
               that do not have SAS 6.06 available.                     
             d.FORMATS member on MXG 8.2 contains new CICS formats.     
             e.IBCICTRN labels all CICSTRAN variables with the CMODHEAD 
               name from the dictionary. Then, you can                  
                PROC PRINT DATA=CICSTRAN SPLIT='*';                     
                 %INCLUDE SOURCLIB(IBCICTRN);                           
               to print the CICSTRAN monitor data with IBM headings.    
               Useful when you need to talk to IBM about their data!    
             f.PRCICALL will print (with or without SPLIT='*') all 47   
               new CIC.... data sets and the pre-existing four as well. 
               The OBS= parameter limits print to first 300 obs, but    
               even that can be lots of paper.                          
             g.UTILCICS knows about the CICS/ESA dictionary, but has not
               yet been updated for connectors, as there has been no    
               need thus far for that enhancement.                      
             h.See NEWSLETTER SEVENTEEN for initial documentation.      
Change 08.064  Boole and Babbage's IMS Measurement Facility (IMF/CIMS)  
VMACCIMS       product Release 2.6 supports IMS 3.1 with no changes in  
Jun 24, 1990   the IMF data records written to the IMS log, so therefore
               MXG now (and before) supports IMS 3.1 IMF records!       
Change 08.063  SAS 6.06 Compatibility. SAS/STAT existence and ID.       
GRAFTRND       Added SASSTAT option to indicate you have SAS/STAT.      
Jul  3, 1990   Added error message if SU_SEC (used to normalize CPU in  
               plots) is missing. Default device changed to PCBATCH.    
               Code was consolidated, enhanced and renumbered.          
   Thanks to Bruce L. Green, Medical Information Bureau, USA.           
Change 08.062  SAS 6.06 Compatibility. PROC MEANS vs SUMMARY.           
ANALBNCH       Each PROC MEANS NOPRINT execution with an OUT= option    
ANALBNC1       was located and (DROP=_FREQ_ _TYPE_) was added after the 
ANALCACH       output data set name in the OUT= option, so that these   
ANALCICS       variables (created because 6.06 PROC MEANS now actually  
ANALDB2R       is PROC SUMMARY) are not kept.  At the same time, all    
ANALDMON       PROC MEANS statements were re-ordered so that the NOPRINT
ANALDOS        option immediately follows the MEANS, for consistency.   
Jul  3, 1990                                                            
Change 08.061  SAS 6.06 Compatibility. PROC COPY GCAT change.           
GRAFRMFI       Replaced use of PROC COPY with the COPY command of PROC  
Jul  3, 1990   GREPLAY.  Deleted GROUPing logic if executed under SAS   
               6.06. Changed default device to PCBATCH.                 
Change 08.060  SAS 6.06 Compatibility. DROP= validation.                
VMACVMON       Remove MN002RS1,MN002RS2,MN003RSV from DROP= option in   
Jun 14, 1990   line 361600. Remove INTERVAL from DROP=option in lines   
               361800, 362000, 362200, 362400, and 362600.              
Change 08.059  SAS 6.06 Compatibility. Parser error. PROC SORT          
ANALCICS       DATA=_CICTRAN. CICSTRAN fails with a 201 error, but it   
Jun 14, 1990   accepts _CICTRAN.CICSTRAN or _CICTRAN . CICSTRAN syntax. 
               SAS 5.18 didn't care about blanks before or after the    
               delimiter period in a full data set name.                
               Will not be repaired until SAS 6.07.                     
   Thanks to Dennis Longnecker, Admin. for the Courts, WA. State, USA.  
Change 08.058  This TREND example needed a PROC SORT; BY SYSTEM PERFGRP;
JCLTREND       to be inserted before line 005900 (PROC PLOT) to avoid a 
Jun 14, 1990   non-sorted condition.                                    
   Thanks to Tom Elbert, John Alden Life Insurance, USA.                
Change 08.057  Invalid type 6 SMF records can cause an MXG STOPOVER. In 
VMAC6          most cases, the record is created by an external writer  
May  9, 1990   that lies (by storing subsys of 2 instead of 0, making me
               believe this is a JES-written record), but it can also be
               caused by an IBM-written record with incorrect data.     
               This change adds an additional test to detect the invalid
               record and avoids the STOPOVER. Replace the three lines  
               that test SECTIND (lines 022500, 025400 and 028800) with:
                IF SECTIND='1.......'B AND OFTONXT+35 LE LENGTH THEN DO;
                IF SECTIND='.1......'B AND OFTONXT+ 5 LE LENGTH THEN DO;
                IF SECTIND='..1.....'B AND OFTONXT+46 LE LENGTH THEN DO;
               Even these tests are not sufficient when a SMF6LN3 value 
               says 162 bytes exist, but the record is truncated, as is 
               found in MVS 3.1.3.  For this case, an additonal test was
               added to line 027100 which now reads                     
                IF SMF6LN3 GE 162 AND LENGTH-COL+1 GE 124 THEN          
               Finally, all other conditional input statement are now   
               protected similar to line 027100 to test both the LENGTH 
               minus COL plus one, against the data to be inputted.     
               These MXG circumventions for the defective IBM type 6    
               record are not necessary if you instead install the APAR 
               OY29986 PTF UY49159 for JES 2 3.1.3 causing the error.   
   Thanks to Mark Stafford, PHH Fleet America, USA.                     
   Thanks to Diane McCabe, N.J. Dept. of Treasury/OTIS, USA.            
   Thanks to Leatha Harlow, Sperry Marine, Inc, USA.                    
Change 08.056  SYNCSORT SMF record for sorts using E15/E35 exits ahve a 
VMACSYNC       value of hex 00 for SIRECFM, SORECFM, causing an "INVALID
May  8, 1990   DATA" message and a dump of the input record. Inserting a
               double questionmark (SIRECFM ?? 1. and SORECFM ?? 1.) the
               invalid data message goes away.                          
   Thanks to Dave Greene, Kwasha Lipton, USA.                           
Change 08.055  RMF Type 79 data validation continues. Formats have been 
VMAC79         assigned:  R791DP HEX4., R791TRTM and R796TOD TIME12.2,  
May  8, 1990   and R794AFC MGBYTES.  INPUT statements were corrected:   
May  9, 1990   R791TRTM PIB4.3 and R792TDEV PIB4.6. Line 051300 (4096*  
               R793LOUT) was deleted and removed from MGBYTES format,   
               new lines added 040610 R792TDEV=128*R792TDEV; and added  
               060110 R794AFC=4096*R794AFC;to correct units. A number   
               of other fields which contain memory(pages/frames,etc)   
               measures were inconsistent. They were either not mult.   
               by 4096, not Formatted MGBYTES, or did not have (MB) in  
               their label to indicate they are in units of K,M, etc.   
               They are all now consistent, and they include:           
                 792:  FXBL, PNV, PSWP, PVIO CMNI PIN                   
                       PSPO and VIO                                     
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 08.054  RMF Monitor III VSAM dataset records cause STOPOVER with 
VMACZRB        RMF 4.1.1. Since MXG 7.7 supporte RMF 3.4.1, it is not   
May  7, 1990   surprising that the lengths in the RELINFO: table needed 
               to be changed. However, actual data record lengths do not
               agree with IBM documentation, and occasional STOPOVERs   
               still occur (possibly because these records can span a   
               physical record). Further research and validation will   
               be done at a later date, but it appears the code can be  
               used if STOPOVER in line 000200 is changed to MISSOVER,  
               and try these values following the label RELINFO:        
                 ASISIZE = 120  (IBM document said 114, MXG 7.7 was 88) 
                 GEISIZE = 132  (IBM document agrees,   MXG 7.7 was 96) 
                 SSHSIZ  = 264  (IBM document said 260, MXG 7.7 was 240)
   Thanks to Jim Stebel, Royal Insurance, USA.                          
   Thanks to Richard Evans, Mervyn's, USA.                              
Change 08.053  SAS 6.06 Compatibility. A RUN; statement was added       
GRAFRMFI       before each PROC GREPLAY to isolate potential problems,  
May  7, 1990   the test for Version EQ 5 was changed to GE 5.           
Change 08.052  Type 37 processing directly from VSAM SMF records was    
VMAC37         not complete. In lines 017400, 019100, 021300, 022700,   
May  7, 1990   024800, 025700, 028100 and 032000 add +OFFSMF after -3.  
   Thanks to Herr Lehmann, GRZ Norddeutschland, GERMANY.                
   Thanks to Herr Kumellis, GRZ Norddeutschland, GERMANY.               
Change 08.051  Line 008200 should be spelled CPUOVHTM vice CPUOHVTM,    
May  7, 1990   all five places to be consistent with other references.  
   Thanks to Norbert Korsche, OMV-AG, AUSTRIA.                          
Change 08.050  TSO/MON now supports TSO measurement of Batch execution, 
VMACTSOM       and thus JOB $CHAR7. in line 068700 should be changed to 
May  7, 1990   JOB $CHAR8. TSO Userid's were restricted to seven chars, 
               but batch jobs can be all eight positions. Minor.        
Change 08.049  Documentation note. Data set TYPE78CF will contain an    
VMAC73         observation only if a CHPID is online (because NRCUS must
VMAC78         be non-zero), but the TYPE73 dataset will contain an obs 
May  7, 1990   for each CHPID in the record, whether online or not. Why 
               the difference? They were written at different times!    
               To be consistent, I should externalize both tests to the 
               exit members and consistenly keep only those CHPIDS that 
               are online (to minimize the unnecessary data in your PDB)
               but for now I will leave it the way it is.               
   Thanks to Laurie Maser, Central Illinois Light Company, USA.         
Change 08.048  Variables ABNDRSNC DIVRREAD DSSIZHWM and TERMNAME were   
IMACPDB        not kept in PDB.STEPS from TYPE30_4, but now were added  
VMAC30         in macro _PDB30_4 in member IMACPDB, so they are. Also,  
May  7, 1990   variable DSSIZHWM was added to the KEEP list for dataset 
               TYPE30_V (and thus also will be in PDB.SMFINTRV)         
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
Change 08.047  ACF2 dataset ACF2JR will have fewer observations with    
EXACFJR        MXG 7.7 than it contained with MXG 6.6, because a test   
May  4, 1990   in EXACFJR inadvertently deleted SMF records.  Remove    
               the temporary fix  "IF ACLEMLTH LT 256;" statement and   
               its associated comment.                                  
   Thanks to Ilana Towery, Houston General Insurance Company, USA.      
Change 08.046  Pre-release 8.1 shipped to support ESP product.          
May  4, 1990                                                            
Change 08.045  MXG's algorithm to detect the wrap of the 202-day clock  
VMACVMON       in VM/SP failed at 24APR90:08:22:10. MXG's next timestamp
May  4, 1990   was 02OCT89:17:40:04, and the rest of the records in that
               VM Monitor file had the Oct 2, 1989 date, because 16* was
               left out of line 029400 when Change 6.023 was installed. 
               The test for new interval in line 029400 should read:    
                 IF LASTHALF AND 16*MNHTOD LT FFFFFOV2 THEN DO;         
               The incorrect STARTIMEs only occurred on the day of the  
               clock wrap; the next MXG run (or a monitor start event)  
               corrected the MXG error.                                 
   Thanks to Nancy Ayers, General Electric Lighting, USA.               
Change 08.044  Preliminary support for the Cray supercomputer COS 1.16  
EXCRA...       operating system accounting and performance records. This
VMACCRAY       support requires SAS Version 6.06+ (because of ASCII     
May  3, 1990   character variables). Future revisions will support the  
               COS 1.17 changes, and eventually, UNICOS as well. There  
               are 6 CRAYA... datasets built from account records,      
               16 CRAYP... datasets built from SPM performance records, 
               and the MXG-built CRAYPINT "Interval Performance" dataset
               built by sum/merging those 16 SPF datasets.              
               These datasets are currently built:                      
                  CRAYAEJ    Label='Accounting Job Termination'         
                  CRAYAET    Label='Accounting Task Termination'        
                  CRAYAFU    Label='Accounting BMR Device Utilization'  
                  CRAYAGU    Label='Accounting Generic Resource'        
                  CRAYAPD    Label='Accounting Permanent Data'          
                  CRAYATA    Label='Accounting Tape Data'               
                  CRAYPCP    Label='SPM CPU Times and Task Times'       
                  CRAYPTK    Label='SPM Task Requests'                  
                  CRAYPER    Label='SPM Executive Requests'             
                  CRAYPMU    Label='SPM Memory Utilization'             
                  CRAYPDU    Label='SPM Disk Utilization'               
                  CRAYPDC    Label='SPM Disk Channel'                   
                  CRAYPLU    Label='SPM Link Utilization'               
                  CRAYPEC    Label='SPM Executive Calls'                
                  CRAYPUC    Label='SPM User Calls'                     
                  CRAYPPU    Label='SPM Preemptable Generic Resources'  
                  CRAYP11    Label='SPM JSH Statistics'                 
                  CRAYP12    Label='SPM Job Class Information'          
                  CRAYP13    Label='SPM JSH Request Count'              
                  CRAYPIC    Label='SPM Channel Interrupts'             
                  CRAYPSB    Label='SPM System Buffer Utilization'      
                  CRAYPINT   Label='SPM Interval Performance'           
Change 08.043  NETSPY Version 3.1 (3.2 is current) can cause a STOPOVER 
VMACNSPY       because the test in line 032300 should be NSPYENTL GE 177
Apr 30, 1990   (the current test was NSPYENTL GE 167).                  
   Thanks to David B. Adams, National Life of Vermont, USA.             
Change 08.042  IMS log processing variable VTAMNODE should be added to  
VMACIMS        the IMS03 and IMS36 dataset KEEP list and removed from   
Apr 30, 1990   the IMS01M dataset KEEP list.  The two occurrences of    
               IF VTAMNODE GE ' ' ... should be changed to now test for 
               IF VTAMNODE NE ' ' ....                                  
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 08.041  EXPLORE/VM second occurrence of CHANBUSY in the LABEL and
VMACVMXP       INPUT statements (lines 054000 and 056600) should be     
Apr 30, 1990   changed to CHANBUS2 and variable CHANBUS2 should be added
               to the KEEP list (line 005700). CHANBUSY is the IPL-proc 
               Channel Busy and CHANBUS2 is the non-IPL-proc chan busy. 
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 08.040  MXG 7.7 can have 0 observations in CICS datasets built   
VMAC110        from CICS 1.7 records. An anticipatory change was added  
Apr 30, 1990   that used a reserved field, but the field is not always  
Jun 30, 1990   zero in 1.7 (but it seems okay in CICS 2.1). Either      
               delete line 025320 (IF SUBTYPE NE 0 THEN DELETE;) for the
               present, or if you have both CICS 1.7/2.1 records and    
               are also testing CICS/ESA 3.1.1, change the logic to:    
           IF '02' LE OLDVERCI LE '03' THEN SUBTYPE=0;                  
           IF SUBTYPE NE 0 THEN DELETE;                                 
           This is a safe test, since the OLDVERCI field in CICS 3.1.1  
           is the SMFPSNPS (number of product sections, always '0001'X),
           and OLDVERCI in CICS 2.1 and earlier will be 'F0F2'X or      
   Thanks to David Ayresman, University of Louisville, USA.             
   Thanks to Hunter Chang, Sydney County Council, AUSTRALIA.            
Change 08.039  TYPE6156 variable VOLSERs are wrong when additional      
VMAC6156       "GOOVOO" entries follow the GOOVOO for this Entry. The   
Apr 30, 1990   logic to update VOLSER in MXG was incomplete in this     
             a.Add   DO;   after the  THEN which ends statement 019600. 
             b.MOVE lines 019600-019700 to after 020600 (the @;).       
             c.Insert new line 021610 (after 021600, END;) containing   
                 END;   (to complete the new DO; added above).          
   Thanks to Tim Kearney, Allied-Signal, Inc, USA.                      
Change 08.038  NPM records can be created under VM and processed by MXG 
VMAC28         with these changes (mostly to VM:)                       
Apr 23, 1990 a.In FNMINIT FNMPARM A in the NPM MACRO the session        
               parameter was modified to read session=(session,NPMLOG), 
               i.e., to write session data to the NPMLOG as well as the 
               session log.                                             
             b.In NPMSTRT GCS A the FILEDEF for FMNLOG1 and FMNLOG2 was 
               modified to read FILEDEF FNMLOG1 DISK FNMLOG1 LOG A4     
                                FILEDEF FNMLOG2 DISK FNMLOG2 LOG A4     
             c.To process the log the FNMLOG1 or FNMLOG2 was copied to  
               a file with a FILEMODE of A1 which was then used as the  
               input for MXG. The FILEDEF for the input file was also   
               specified with FILEMODE A1.                              
             d.VMACSMF was copied and modified to create a new macro    
               named _SMF, which is a copy of the _SMF macro, but which 
               deleted the VBS and LRECL options on the INFILE statement
               in the modified copy.                                    
   Thanks to W. C. Cronje, Anglo American Corporation, SOUTH AFRICA.    
Change 08.037  VM/370 variable MN000PPC can be zero if preferred paging 
VMACVMON       is to expanded storage, causing a divide by zero error   
Apr 23, 1990   in calculation of DRUMUTIL variable in line 116600. That 
               calculation is now precedeed by IF MN000PPC GT 0 THEN.   
               Format MGVM6TY has new value  2420X='2420:3380' added.   
   Thanks to Gary Zolweg, National Semiconductor, USA.                  
Change 08.036  Variable CREATIME in dataset MONITASK has date of END if 
TYPEMONI       a transaction spans midnight. Logic to correct date was  
Apr 23, 1990   perturbed by Change 7.171. To correct, change line 00503 
               to read IF CREATIME LE TIMEPART(ENDTIME) THEN instead of 
               IF CREATIME LE ENDTIME THEN.                             
   Thanks to Steve Cavill, SAS Institute, AUSTRALIA.                    
Change 08.035  This one is obscure. CICS type 110 records with a error  
VMAC110        are usually detected by MXG and STOPOVER prevented, but  
Apr 18, 1990   if the invalid segment happens to be the last segment in 
               a type 110 record, a STOPOVER can still result, because  
               line 032200  (CONNBYTE+DRLENNUM GT BYTELEFT AND ...)     
               should be CONNBYTE+DRLENNUM GT BYTELEFT-38 AND ...).     
   Thanks to Earl Ryan, Life Insurance Company of Georgia, USA.         
Change 08.034  IBM documented SMF6XFNC values of S and U for type 65    
VMAC6156       and R for type 66, but S and U have been found in SMF    
Apr 17, 1990   type 66. Now, MXG tests for R, S, or U for either type   
               in creating MXG variable FUNCTION.                       
   Thanks to John Mattson, National Medical Enterprises, USA.           
Change 08.033  MXG Tape mount monitor variables DEVFROM and DEVTO were  
VMACTMNT       not formatted to HEX4. (add them in line 004600), and    
Apr 12, 1990   DEVNR should be removed from line 020000.                
   Thanks to Glenn Thompson, Comalco, AUSTRALIA.                        
Change 08.032  VTOC processing variable RECFM should have been $4. in   
VMXGVTOC       line 032000 (instead of $3.), although it is unlikely    
Apr 12, 1990   to ever see a non-blank in the fourth position.          
   Thanks to Wyman Young, BHP, AUSTRALIA.                               
Change 08.031  DB2 Lock Detail report PMLOK03 fails with a 170 format   
ANALDB2R       conflict error, because variable ELAPSED was previously  
Apr 12, 1990   defined as a numeric variable. In three lines within the 
               PMLOK03 macro, lines 073560, 073570 and 073780, change   
               the variable name ELAPSED to LOCKTMCH.                   
   Thanks to Dennis Longnecker, Wash. Office Admin for Courts, USA      
Change 08.030  DB2 reporting from GTF (instead of SMF or PDB) failed,   
ANALDB2R       with "GTF is not a SAS library" error. We had failed to  
Apr 11, 1990   test the GTF option in MXG 7.7.  The correction is to    
               change line 002670 from                                  
                 %IF &&PDB&I = SMF %THEN ....                           
               to read                                                  
                 %IF &&PDB&I = SMF OR &&PDB&I = GTF %THEN ....          
   Thanks to Cindy Schinker, AgriData, USA.                             
Change 08.029  TSO SPF EDIT subcommand COPY should NOT be used to copy  
TSO-SPF        an MXG member into your USERID.SOURCLIB library from the 
Apr 10, 1990   MXG.SOURCLIB, because the COPY subcommand of EDIT will   
               renumber the lines!  Always use SPF COPY Command (3.3)   
               to copy members without renumbering, so that numbering   
               will be preserved. (It's not clear when this began to    
               happen, nor whether its an IBM design change or an error;
               if you know more on the subject, let me know!)           
Change 08.028  ROSCOE Audit records were not being output in ROSCOAUD.  
VMACROSC       Because there is no ROSCOE version identifier in their   
Apr 10, 1990   record, an ad hoc test (TIME = . ) used to detect earlier
               versions now prevents testing for audit records. In line 
               073500, replace the (TIME = . OR ROSREC = '30'X) with    
              (ROSREC='F0'X OR ROSREC='30'X OR 'A0'X LE ROSREC LE 'AB'X)
               to process those record subtypes. In addition, variables 
               ACCTCODE FORMKEY and USERID were added to ROSCOAUD keep. 
   Thanks to Tom Braswell, Dow Jones & Company Corporate DP, USA.       
Change 08.027  TYPE6156 processing can cause STOPOVER because cell '02'X
VMAC6156       record was incorrectly decoded. Correction:              
Apr 10, 1990    Delete line 015700  (was ICFPSWRD $CHAR32.)             
                Change line 016800 from LENTHIS-87 to LENTHIS-55        
                Remove ICFPSWRD= from line 017200.                      
   Thanks to Brian Kaczkowski, AgriData, USA.                           
Change 08.026  PDB.JOBS variables JINLTIME and JRSTTIME were up to four 
BUILDPDB       minutes (about 255 seconds!) earlier than JSTRTIME! This 
BUILDPD3       truncation occurs when a DATETIME variable is stored in a
TYPEDOS        length 4 variable.  Because MXG's default numeric length 
UTILXRF2       is 4, all DATETIME variables must be explicitly named in 
VMACARB        a LENGTH 8 statement, and MXG's QA test member UTILXRF2  
VMACROSC       is supposed to detect occurrences of DATETIME variables  
VMACTMVS       with length other than 8.  Why did this slip thru QA? Due
VMACVMON       to a logic error in UTILXRF2, only DATETIME variables in 
VMACX37        more than one MXG-built dataset were tested for length 8!
VMAC102      1.Fixing that error uncovered additional DATETIME variables
VMAC24         that have now been explicitly set to length eight:       
VMAC6156           Member    Line Number   Dataset   Variable(s)        
Apr 17, 1990       VMAC24      006500      TYPE24    OFLDTIME           
                   BUILDPDB    044100      PDB.JOBS  JINLTIME,JRSTTIME  
                   BUILDPD3    044500      PDB.JOBS  JINLTIME,JRSTTIME  
                   VMAC102     411100      T102S100  QW0100SA,QW0100SB  
                   VMACROSC    070100      ROSCOHU   ROSTERM            
                   VMACVMON    213910      VMONSUSP  TODSTIME           
             2.An unrelated additional QA test was added by this change,
               to detect character variables with a $MG.... format that 
               are also length 8. This causes no error but wastes seven 
               bytes, and results when the formatted variable was not in
               a LENGTH $1 statement. This new test identified these    
               variables which needed a LENGTH statement:               
                   Member    Line Number   Dataset   Variable(s)        
                   VMAC60     009700       TYPE60    ENTTYPID           
                   VMAC6156   004300       TYPE6156  ENTTYPID           
             3.The QA CROSSREF output also showed that several members  
               did not contain LENGTH DEFAULT=4 statements, causing     
               numberic variables to be 8 bytes instead of only four.   
               DEFAULT=4 was added in VMACARB, TYPEDOS, and VMACX37,    
               and SMFTIME READTIME JINTTIME 8 was added in VMACX37.    
               In VMXGVTOC, VOLUME $6 was added to the LENGTH statement 
               (VOLUME is returned by SAS's VTOC option as a 30-byte    
               variable, which caused VOLSER to also be thirty bytes!)  
   Thanks to Elliot Weitzman, Oryx Energy Company, USA.                 
Change 08.025  MXG testing step TESTIBM has abended at two sites that   
JCLTEST        have used IMACKEEP to modify the default KEEP list. There
Apr 10, 1990   is no problem with their normal BUILDPDB, etc., but it   
               appears there is another SAS 5.18 internal limit that is 
               encountered. One set of symptoms are ERROR: WORK.DIRMACR 
               REQUIRES MORE SPACE ... with either THE LIBRARY IS IN 16 
               SPACE IS AVAILABLE ON VOLUME. Other failures show up as  
               a DATA SET NOT FOUND when the PROC MEANS or PROC PRINT is
               invoked, and the SAS LOG shows the program simply stopped
               building datasets, with no error.  Increasing WORK space 
               does not correct the problem. (While not documented in   
               the JCLTEST member, the default JCLTEST requires a max   
               of 12 cylinders work space for any step with MXG 8.2).   
               Nor did REGION size have any effect. When the abend is   
               DASD space related, the SAS message usually indicates    
               DATA SET WORK.DIRMACR WAS AT OBSERVATION 16744450!       
               I think this problem is due to re-definition of old style
               macros due to the repetitive include of IMACKEEP in this 
               test jobstep, which exhausts some internal limit for old 
               style SAS macro re-definitions. But since the error is   
               circumventable (run JCLTEST without the sites' modified  
               IMACKEEP), since the error hopefully does not exist in   
               SAS 6.06, and since I haven't taken the time to create   
               a repeatable test for SAS Institute to use to detect and 
               fix their problem, it is left with this documentation    
               note, until time or more errors cause further study!     
   Thanks to Marvin Rockhill, Community Hospitals of Indiana, Inc, USA. 
   Thanks to Georg Simon, Federal Reserve Bank of Philadelphia, USA.    
Change 08.024  STOPX37 product SMF record had minor corrections to the  
VMACX37        SELECTBK and ACTIONBK variables (changed from $CHAR10.   
Mar 27, 1990   $CHAR8.) and MESSAGE variable (changed from @509 $CHAR144
               to @513 $CHAR140.), but no loss of data had occurred.    
Change 08.023  Lengths of five character variables were truncated due to
ASUMCICS       incorrect initialization in this summary member for Trend
Mar 27, 1990   Data Base. Variables OPERATOR,TERMINAL,TRANNAME,TRANSACT 
               must be four instead of three bytes, and variables SYSID 
               and APPLID must be eight instead of three bytes in their 
               initial statements (where now set equal to 'MXG').       
   Thanks to Mike Hoevenaars, Toyota, CANADA.                           
Change 08.022  Fixes that should have been in MXG 7.7, but were not.    
EXTY39EL     1.VMAC37 needed new formats $MG037FE, $MG037FI, $MG037FU   
VMAC37         which also were added to the LENGTH statement with $1.   
VMAC39         LABEL for BRLTYPE should be LOCAL instead of REMOTE, and 
Mar 27, 1990   variables were added to the KEEP list: BRRTYPE, BRLTYPE, 
               BRLMODEL, and BRRMODEL.                                  
             2.VMAC39 needed ZDATE added to all KEEP lists, and the     
               existing-but-never-referenced EXTY39EL member for the    
               TYPE39EL (route elements) data set is now referenced.    
               Because TYPE39EL can get large, and because no one has   
               said they actually use the TYPE39EL dataset, the EXTY39EL
               exit now DEFAULTS to create NO observations TYPE39EL.    
   Thanks to Bruce Widlund, Texas Utilities, USA.                       
   Thanks to Doug Drain, National City Bank, USA.                       
Change 08.021  ANALDB2R DB2 report in MXG 7.7 was not tested with PDBs  
ANALDB2R       created by MXG 6.6, causing uninitialized variable error 
VMXGSUM        messages. MXG uses SAS's NOVNFERR (No Error when Variable
Mar 27, 1990   Not Found) but when the variable is in a BY statement or 
Apr 10, 1990   a PROC MEANS control statement, NOVNFERR does not prevent
Apr 15, 1990   the error condition. The usual fix would add a statement 
               (IF  x=. THEN x=.;) for each variable which might not be 
               in the input dataset (which fakes out the SAS compiler   
               by creating a variable if it does not exist). ANALDB2R   
               was changed (but when it was realized that these "fakes" 
               already existed in the OUTCODE macro argument, and that  
               MOVEing the lines from OUTCODE to INCODE would avoid any 
               retyping (with its high exposure to typing error), and   
               was more robust. The first three reports worked fine. But
               the DB2 Accounting Detail report added 150 OUTCODE lines 
               to the existing 380 INCODE lines, and SAS died with the  
               "Excessive Parameter Length" Error, because 380 lines do 
               fit in MWORK=28K, but 380+150 lines break the maximum!   
               Part of the solution was to re-design the %VMXGSUM macro 
               so that it protects for possible missing variables in the
               MIN, MAX, SUM, etc. operations done by %VMXGSUM, because 
               that should have been the original implementation. That  
               enhancement to %VMXGSUM is implemented herein in the 1st 
               part of this change.                                     
               Additionally, however, MXG 7.7 reports expected several  
               character variables that did not exist in MXG 6.6-built  
               PDBs. The second part of this change added statements to 
               supress the UNINITIALIZED VARIABLE messages if a cross-  
               version report (7.7 report from 6.6 data) is requested!  
             1.These sixteen new lines are inserted in member VMXGSUM:  
                After 025910 (IF DATETIME=. THEN DATETIME=.;) and before
                 026000 (&INCODE) insert:                               
                    %DO I = 1 %TO &NUMMAX %BY 1;             02592000   
                     %LET VAR = %SCAN(&MAX,&I);              02593000   
                     IF &VAR = . THEN &VAR = .;              02594000   
                    %END;                                    02595000   
                    %DO I = 1 %TO &NUMMIN %BY 1;             02596000   
                     %LET VAR = %SCAN(&MIN,&I);              02597000   
                     IF &VAR = . THEN &VAR = .;              02598000   
                    %END;                                    02599000   
                    %DO I = 1 %TO &NUMMEAN%BY 1;             02599100   
                     %LET VAR = %SCAN(&MEAN,&I);             02599200   
                     IF &VAR = . THEN &VAR = .;              02599300   
                    %END;                                    02599400   
                    %DO I = 1 %TO &NUMSUM %BY 1;             02599500   
                     %LET VAR = %SCAN(&SUM,&I);              02599600   
                     IF &VAR = . THEN &VAR = .;              02599700   
                    %END;                                    02599800   
             2.If you MUST create new ANALDB2R MXG 7.7 reports from old 
               MXG 6.6-built PDB libraries, you must make these changes.
             a.In two places in ANALDB2R, after lines 084860 and 110130 
               (each is:  IF QWHSLOCN = ' ' THEN QWHSLOCN = ' ';),      
               replicate each line twice, then change the QWHSLOCN to   
               QLSTLOCN in the first replicate, then change the QWHSLOCN
               to QLACLOCN in the second replicate.                     
             b.Replicate line 006330 and change QWHSLOCN to QLACLOCN.   
             c.Change lines 015610 and 015620 (which initialize variable
               QWHSDBAT and QWHSLOCN to four blanks) to now read:       
               IF QWHSDBAT=' ' THEN QWHSDBAT=' ';                       
               IF QWHSLOCN=' ' THEN QWHSLOCN=' ':                       
             d.Now, replicate this changed line 015620 thirteen times,  
               and change the replicated lines to now read:             
                       IF QWHSLOCN=' ' THEN QWHSLOCN=' ';      015620   
                       IF QLACLOCN=' ' THEN QLACLOCN=' ';      015621   
                       IF QTXASELM=' ' THEN QTXASELM=' ';      015622   
                       IF QTXASALM=' ' THEN QTXASALM=' ';      015623   
                       IF QTXASPLM=' ' THEN QTXASPLM=' ';      015624   
                       IF QTXABLLM=' ' THEN QTXABLLM=' ';      015625   
                       IF QTXAINLM=' ' THEN QTXAINLM=' ';      015626   
                       IF QTXAIOLM=' ' THEN QTXAIOLM=' ';      015627   
                       IF QLACTRNS=. THEN QLACTRNS=.;          015628   
                       IF QLACCNVQ=. THEN QLACCNVQ=.;          015629   
                       IF QLACMSGS=. THEN QLACMSGS=.;          015630   
                       IF QLACMSGR=. THEN QLACMSGR=.;          015631   
                       IF QLACBYTS=. THEN QLACBYTS=.;          015632   
                       IF QLACBYTR=. THEN QLACBYTR=.;          015633   
   Thanks to Dale St. Amant, Tenneco, USA.                              
Change 08.020  As discussed in Change 7.139 in MXG 7.7 CHANGES, SYNCSORT
VMACSYNC       creates an invalid CPUTCBTM value (hex'555555'=15:32HHMM)
Mar 23, 1990   but it was not known why. SYNCSORT Early Warning Nr. 2803
               now identifies the culprit; the use of FREE=CLOSE on the 
               SORTIN DDNAME causes SYNCSORT and MVS to both have issued
               active STIMERS, which causes the corruption in their CPU 
               TCB time measurement.  Eventually, SYNCSORT will fix the 
               conflict by zeroing out the field when a second STIMER is
               set.  MXG now recognizes '00555555'X and sets CPUTCBTM to
               be missing in VMACSYNC. When the SYNCSORT fix is applied 
               in the future, a zero value instead of missing value will
               result. This is a price you pay for FREE=CLOSE. Note that
               even DFSORT specifically states to not specify FREE=CLOSE
               on SORTIN DD statement                                   
               Note that this STIMER conflict ONLY affects the CPU time 
               that is measured by the 2nd STIMER issuer. The true CPU  
               TCB time in the SMF type 30 and the RMF type 72 records  
               are NOT affected, and remains correct.                   
               Note also that FREE=CLOSE similarly affects SAS reported 
               CPU times on the SAS log, and can actually cause SAS to  
               ABEND with an internal apparent CPU TIME EXCEEDED error, 
               that also does not affect type 30/72 data, as was first  
               discussed on page 6 of MXG Newsletter TEN. With SAS, you 
               can still use FREE=CLOSE by specifying the NOSTIMER      
               option, which supresses CPU capture by not even issuing  
               the STIMER macro. (While SYNCSORT also has a NOSTIMER    
               option, it does not work in the same way, and will not   
               zero the CPU field when FREE=CLOSE is used.)             
   Thanks to Sam Sheinfeld, Kraft General Foods, USA.                   
   Thanks to Nanette, SYNCSORT, USA.                                    
Change 08.019  As documented in Newsletter SIXTEEN, MXG support for     
VMACEPIL       Candle's EPILOG/CICS was incomplete. It was also wrong!  
XMACEPIL     1.The correct member to include (in member TYPEEPIL) is    
Mar 23, 1990 2.In member XMACEPIL, a + sign is missing in line 039300,  
               which should read:   @121+OFFEPIL BISTIME ....           
             3.Variable WID should be 8 bytes (it is UOWID), but the    
               DEFAULT=4 causes it to be kept as only 4 bytes. It needs 
               to be added with explicit length 8, but eventually will  
               be converted and decoded into UOWID and UOWTIME.         
   Thanks to ???, ???.                                                  
                Updated Jan 14, 1991.  Member XMACEPIL was corrected and
                copied into (replacing) member VMACEPIL, and then the   
                member XMACEPIL was deleted.  All future EPILOG CL1000  
                support will be in member VMACEPIL, as it should have   
                been all along.  See Change 8.212.                      
Change 08.018  System Managed Storage (SMS) now uses formerly reserved  
VMXGVTOC       bits located at offset '4E'x in the DSCB1 in your VTOCs. 
Mar 22, 1990   DASD products like DMS/OS and ASM2 have used these bits, 
               and local modifications (to CSECTS IFG0196W and IFG0194E)
               have also caused this "DSCB Contamination".IBM published 
               "Clean up VTOCs Before Implementing DFP V3"(as WSC Flash 
               9009, Hone Entry G022345) to advise you of the exposure. 
               If DSCB contamination is found, you must not only clean  
               the VTOCs of your online data sets, but you will need to 
               also clean all migrated datasets, since their DSCBs were 
               also migrated and your migration software will need to   
               correct the contamination when datasets are recalled.    
               The change in 8.2 creates these new SMS variables in the 
               VTOCLIST (for VMXGVTOR) or LIST (for VMXGVTOC) dataset:  
                 DS1PDSE ='PDSE MANAGED DATASET?'                       
                 DS1REBLK='DATA SET MAY BE REBLOCKED?'                  
                 DS1SCAVB='SECONDARY IS ORIG AVG BLOCK LENGTH?'         
                 DS1SCCP1='SECONDARY IS COMPACTED BY FACTOR OF 256?'    
                 DS1SCCP2='SECONDARY IS COMPACTED BY FACTOR OF 65536?'  
                 DS1SCKB ='SECONDARY IS IN KILOBYTES?'                  
                 DS1SCMB ='SECONDARY IS IN MEGABYTES?'                  
                 DS1SCUB ='SECONDARY IS IN BYTES?'                      
                 DS1SCXTV='SECONDARY SPACE EXTENSION VALUE'             
                 DS1SMSUC='NO BCS ENTRY EXIST FOR DATA SET?'            
                 OFFSET4E='OFFSET 4E*INTO DSCB1*(USED BY SMS)'          
             2.The PROC SORT DATA = EXTENT; BY VOLSER POINTER; was      
               inside the %DO group was relocated outside, just before  
               the %DO, since no values in EXTENT were changed; this    
               will speed up execution slightly.                        
             3.Adding variable OFFSET4E to VMXGVTOC is simple: replace  
               line 045100 (now containing only   +4  ), with this:     
                 @84 OFFSET4E $CHAR4.                                   
               and add OFFSET4E to the KEEP list for the LIST dataset.  
               Then, you can execute the following MXG program under TSO
               to read the VTOC of your favorite VOLSER to see if it    
               suffers from DSCB contamination at offset '4E'x:         
                 ALLOC F(DISK) DA('any data set on chosen volume') SHR  
                   %VMXGVTOC(DISK=DISK); RUN;                           
                   DATA CONTAMIN; SET LIST;                             
                   IF OFFSET4E NE '00000000'X THEN OUTPUT;              
                 (Dataset LIST is built directly by VMXGVTOC. If you    
                  have implemented VMXGVTOR to graze your entire DASD   
                  farm, the SET LIST; statement would be replaced with  
                  SET &LIB..MXGVTOC which contains all LIST datasets.)  
               If dataset CONTAMIN has non-zero observation count, then 
               you either have DSCB contamination, or SMF has already   
               been installed at your site!                             
   Thanks to Tuanhung Doanvo, Philip Morris, USA.                       
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 08.017  Hiperbatch hit/miss stats were added by IBM to type 14/15
VMAC1415       and type 64 by TNL (GN28-1284) dated Jan 3, 1990 that was
Mar 22, 1990   delivered today. (Had it been received even by Feb 20, it
               would have been implemented in MXG 7.7, avoiding this    
               change!). The change adds five new fields to both the    
               TYPE1415 and TYPE64 data sets. While the fields are the  
               same, IBM used two different field names/acronyms:       
                TYPE1415  TYPE64   Description                          
                 name      name                                         
                SMFIOREQ  SMF64SIO  Hiperbatch total searches/requests  
                SMFCHITS  SMF64HIT  Successful searches                 
                SMFPHIOS  SMF64MIS  Misses; caused physical DASD I/O    
                SMFCIOS   SMF64IOS  Misses that were copied into buffers
                SMFNMWTS  SMF64WTS  Suspends due to conflict other users
Change 08.016  TPX dataset TPXINTRV will have zero observations because 
VMACTPX        of mis-alignment in the subtype 2 or 4 records. After    
Mar 22, 1990   line 040900 insert:                                      
                  IF TPXVER GE 200 THEN INPUT TPX24LEN  PIB2.           
                                              TPX24ID $CHAR2.           
           Note: TPX24ID was printed in error as $CHAR4. in Newsletter  
                 SEVENTEEN, but was correct in MXG PreRelease 8.2 and   
                 later software. It should be $CHAR2. as shown above.   
   Thanks to Kari Strand, Televerkets EDB-tjeneste, NORWAY.             
   Thanks to Doug Mayward, Pharmaceutical Data Services, Inc, USA.      
Change 08.015  New subtype 3 of the existing SMF type 41 record provides
EXTY41AC       usage statistics of the Virtual Lookaside Facility (VLF).
EXTY41UN       Interval records (15 min) are written for each class in  
EXTY41VF       your COFVLFnn member of PARMLIB that is currently in use.
VMAC41         MXG creates dataset TYPE41VF from this subtype, reporting
Mar 22, 1990   (for each VLF class used) the MAXVIRT size, the storage  
               used, counts when objects were found in, added to,       
               deleted from or trimmed from VLF during the interval,    
               the largest object attempted to be added to VLF since VLF
               was started, and the VLF "pct found/hit ratio". Multiple 
               VLF classes (CSVLLA, IGGCAS,  IKJEXEC) can exist in one  
               type 41 subtype 3 record; multiple observations with the 
               same SMFTIME will be created by MXG. This change deletes 
               the existing TYPE41 dataset built from subtypes 1 and 2  
               and in its place creates two:  TYPE41AC (DIV Accesses)   
               and TYPE41UN (DIV Unaccesses), which now keep only the   
               variables specific to those DIV events.                  
   Thanks to Dan Barbatti, Southwestern Bell, USA.                      
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 08.014  These circumvention members (for SAS 344 compiler limit) 
XMAC7072       did not keep ZDATE in all datasets and had a typographic 
XMAC71         error.                                                   
Mar 22, 1990 1.In XMAC7072, add ZDATE to the KEEP list for TYPE70PR and 
               TYPE72MN datasets.                                       
             2.In XMAC71, remove the extraneous period before the final 
               semicolon in line 031800.                                
   Thanks to Bruce Widlund, Texas Utilities, USA.                       
Change 08.013  DB2 data read from GTF did not have DATETIME21.2 format  
VMACSMF        nor LENGTH=8 for SMFTIME variable, but now _GTFDB2 macro 
Mar 22, 1990   contains SMFTIME in both FORMAT and LENGTH statements.   
   Thanks to Susan Marshall, SAS Institute Europe, GERMANY.             
Change 08.012  As noted in comments, type 79 support had not been tested
VMAC79         with real records. Now it has, and these changes will be 
Mar 21, 1990   required to avoid STOPOVER or invalid data conditions.   
             1.These seven actions are SPF commands to be entered on the
               command line while SPF EDITing member VMAC79 to make the 
               global changes (note that blanks ARE important):         
                 a.EXCLUDE ALL                                          
                 b.FIND   ' = ' ALL           (16 occurrences found)    
                 c.CHANGE ' = '  '=' ALL                                
                 d.CHANGE ' BY ' '-1 BY ' ALL NX                        
                 e.EXCLUDE ALL                                          
                 f.FIND   ' LE LENGTH' ALL        (21 occurrences found)
                 g.CHANGE ' LE LENGTH' '-1 LE LENGTH' ALL               
             2.Change line 013800 to read  CYCLE  ??  PD4.              
             3.Insert new line 015910 (after 105900)    R79LF2  $CHAR1. 
             4.Change line 016200 to read  R79RSV  $CHAR2.              
             5.Change line 016900 to read  R79IST ??  PDTIME4.          
             6.Change three occurrences in two lines of R792SLQR to read
             7.These first six items bring the code up for MVS/ESA, but 
               for MVS/XA, other STOPOVER conditions are guaranteed, as 
               the code was only written for ESA. Guess what, though.   
               A real slick trick for MVS/XA execution (pointed out to  
               me by a user who got the trick from LEGENT's MICS) is to 
               execute with this code:                                  
                  MACRO STOPOVER MISSOVER %                             
                  %INCLUDE SOURCLIB(TYPE79);                            
               which will simply set the non-MVS/XA variables missing!  
                 (I seldom use MISSOVER, because it does not tell you   
                 that there were short records; I need STOPOVER so that 
                 I GET the dump of the record, but is perfect here.)    
               Eventually, I may retrograde the code to support the XA  
               records, by breaking up the INPUT statement and inputting
               conditionally the MVS/ESA variables, and thereby support 
               both MVS/XA and MVS/ESA type 79 data records, if that is 
               really necesary!                                         
   Thanks to Ron Thein, Mortgage Guaranty Insurance Corp., USA.         
   Thanks to Dan Barbatti, Southwestern Bell, USA.                      
   Thanks to Randy Catlin, CENTEL.                                      
Change 08.011  New member ZZZZZZZZ now exists as the last member of the 
ZZZZZZZZ       MXG library (AAAAAAAA is the first) so that it will be   
Mar 15, 1990   easy to verify that all of the MXG Source Library ("from 
               AAAAAAAA to ZZZZZZZZ") has been successfully unloaded.   
               (Twenty new customers received incomplete MXG 7.7 tapes  
               from SAS before a customer discovered that only 1057 of  
               the 1100 members had been copied from our master tape!)  
   Thanks to Don Ehrig, Pearl Vision, USA.                              
Change 08.010  Support for NETSPY 3.2 was incomplete. NSPYVIRT (Virtual 
               and APPLID was replaced by SUBHOST.  NSPYLINE variables  
               NSPNPACE NSPNPLIM NSPNRTO NSPNSLIM were not input. These 
               un-input variables did not cause MXG to fail, they just  
               were not read in.  Three other variables were actually   
               wrong and must be changes.                               
             1.Line 052500 should read: BUF_UTIL=100 - FBLPCT;          
               so that minimum free buffers are used to calculate buffer
               utilization (instead of average free buffers).           
             2.Line 059400 should read: COTPUTSZ PIB8.                  
               (as PIB4., COTPUTSZ, Output Length, was always zero).    
             3.Move NETWADDR in line 009400 (in data set NSPYLU keep) to
               line 008000 (in data set NSPYLINE keep list).            
   Thanks to Marty Quinlan, Virginia Power, USA."                       
     for extensive validation.                                          
Change 08.009  The %VMXGVTOR macro which invokes the FMXGUCBL function  
FMXGUCBL       was not correct.  Changes made in VMXGVTOC (which is the 
VMXGVTOR       piece that actually reads the VTOC) were not propagated. 
Mar 15, 1990 1.In member VMXGVTOR:                                      
Jun 13, 1990    a. In lines 002200 and 002300 replace &I with &IVTOR.   
                b. Replace two lines 002500 and 002600 with these three:
                   PROC APPEND BASE=&LIB..VTOCMAP  NEW=MAP  FORCE;      
             2.The FMXGUCBL function was modified in MXG 7.7 (see page  
               17 of MXG Newsletter SIXTEEN), so the function would work
               compatibly under either SAS 5.18 or SAS 6.06+, but it was
               only tested under SAS 6.06! Under SAS 5.18, the MXG 7.7  
               FMXGUCBL returns a value too large by one.  The following
               change DOES work under either version of SAS and does let
               a single assembly of this function to work witheither    
               SAS 5.18 or 6.06+. Change member FMXGUCBL lines 017400   
               thru 017500 so they now read:                            
            MVC   WORKAREA(4),=XL4'4E000000'     01740000 no change     
            LD    FR0,WORKAREA                   01741000 was SD FR0,FR0
            XC    WORKAREA+4(4),WORKAREA+4       01742000 new line      
            AD    FR0,WORKAREA                   01750000 no change     
   Thanks to Jeff Fox, SKF Inc, USA.                                    
   Thanks to David Fahey, SAS Institute Cary, USA.                      
Change 08.008  This is a complete revision of the text of this change   
IMACVMON       that was published in MXG Newsletter SEVENTEEN.          
VMACVMON     1.The Q1SEC equation was wrong. The actual calculation     
Jul 19, 1990   is  Q1SEC=SUM(Q1TIME,E1TIME)/SUM(Q1DROPS,Q1);   .        
               The lines affected by this change are:                   
               a. After 035700, insert  Q1SEC  (to the KEEP= list)      
               b. After 082100, insert  Q1SEC='AVERAGE*Q1SEC*DURATION'  
               c. After 146800, insert two lines:                       
                  IF DENOM GT 0 THEN Q1SEC=SUM(Q1TIME,E1TIME)/DENOM;    
                  ELSE               Q1SEC=.;                           
               d. After 170000, insert  Q1SEC  (to the RETAIN list).    
             2.Comments in IMACVMON were added to stress the importance 
               of setting _INTRV macro value to equal your VM/Monitor   
               interval. If you leave the MXG default _INTRV value of   
               1 minute, but actually write records at 15 minutes, MXG  
               will throw away all USER and DASTAP data.                
             3.Variables PCTQUEDV/PCTQUECU were wrong, and instead of   
               containing the percentage of monitor intervals during    
               which there was a queue (as VM MAP calculates), these    
               MXG variables actually contained 100 times the average   
               number of entries in the queue. Now, they are correct and
               should agree with VM MAP. The label for PCTQUEDV was     
               corrected and a label provided now for PCTQUECU.         
             4.The VM/370 SEEK (Class 7) reports in ANALVMDY do not work
               and have not been fixed in MXG 8.7.  It was re-packaged  
               incorrectly and causes syntax errors.  Also, the logic to
               match Seek address with the Mini-Disk directory may cause
               ambiguous results, because it turns out that directory   
               entries can overlap.  Pended for test data and test site.
   Thanks to Bob Small, Grumman Data Systems, USA.                      
   Thanks to George Ellard, Federal Express, USA.                       
Change 08.007  TSO/MON data set TSOMDSNS did not contain SYSTEM, and    
TYPETSOM       TSOMCMND had missing STRTTIME if there were enough users 
Mar 19, 1990   logged on to create multiple System records for one      
               interval. (The TSOMSYST data set was protected by retain,
               but the restore logic was after TSOMCMND was output.)    
             1.Add SYSTEM to keep list at line 005200.                  
             2.Move three lines 084200 thru 084400 (which restore       
               TSOMAXUS) to immediately after line 072700 (before the   
               COMNDTYP='00'X; statement.                               
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 08.006  TYPEIMS IMS Log processing had missing values if IMS     
TYPEIMS        crashed repeatedly, due to duplicate DTOKEN values.      
Mar 19, 1990 1.Move IMSTAPNO in lines 035400 and 035800 to make the line
             2.Insert IMSTAPNO in line 036900 to make the line read     
                      BY IMSTAPNO DTOKEN;                               
             3.Move IMSTAPNO in lines 094900 and 095300 to make the line
             4.Insert IMSTAPNO in line 108300 to make the line read     
                      BY IMSTAPNO DTOKEN;                               
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 08.005  IDMS Performance Monitor SMF record variables PGMTYPE,   
VMACIDMS       TASPTYPE, and TASTTYPE were kept as 8-byte variables and 
Mar 15, 1990   with $HEX2. format. They should have been 1-byte length  
               with the $MGIDMPP, $MGIDMTT, and $MGRTEPT formats. Also, 
               the IDMSDBK data set was never output.                   
             1.Delete the semicolon at the end of the LENGTH statement  
               in line 072000, and insert this new line                 
                    PGMTYPE $1. TASPTYPE $1. TASTTYPE $1.;              
               to force their length to only one byte, and then also    
             2.Remove these same three variable names from line 072400  
               (where the $HEX2. format overrode line 072000).          
             3.Change line 154800 from EXIDMCDM to EXIDMDBK.            
   Thanks to Mike Eisenhart, York International, USA.                   
   Thanks to Mark Robbins, Jaguar Cars, ENGLAND.                        
Change 08.004  Candle's OMEGAMON/VM for VM/XA has an option to reformat 
VMACVMXA       IBM's MONWRITE data records into a Variable Blocked (VB) 
Mar 15, 1990   file. Unfortunately, their program did not create valid  
               VB format records.  They incorrectly added an extra RDW  
               (Record Descriptor Word of 4 bytes) in front of the real 
               RDW (does this make the record a VVB format!).           
               Because VB records are easier to work with during testing
               and because it was hoped that IBM would eventually change
               MONWRITE to create legitimate VB data files, MXG's VM/XA 
               support defined the _OUTFILE macro, that does create true
               VB data records from IBM's MONWRITE records, and MXG's   
               _VMINPUT macro was defined to process those (future!) VB 
               records. With only a minor change, MXG's _VMINPUT macro  
               can be modified by Candle sites to process those invalid 
               "VVB" format data.  Candle has acknowledged their error, 
               and announced that a permanent solution (i.e., correct   
               VB record format) would be provided in their next release
               of VCOLLECT in their Version 4.10, in second quarter 90. 
               Before 4.10, Candle sites can read the "VVB" data by the 
               followin new line inserted after 769000 (ends a PUT that 
               precedes the INPUT MRHDRDM ... ), skipping over the RDW: 
                    INPUT +4 @;                                         
               IT MUST BE BACKED OUT WHEN YOU INSTALL THEIR 4.10.       
               Candle's VCOLLECT Incident Number is 81696.              
             2.To read real VB data (either from Candle 4.10 or using   
               MXG's _OUTFILE), if you have installed the IBM PTFs that 
               are described in Change 7.219, you will need to add this 
               correction (unrelated to the Candle problem, but observed
               while debugging the Candle-created problem):             
               The following line must be inserted after line 769600:   
               (immediately before the MRHDRLEN=LENGTH; statement), to  
               set LENGTH to the physical instead of logical record     
               length, as expected by MXG's MONWRITE  logic.            
   Thanks to Mark Flugrath, WVNET, USA.                                 
Change 08.003  DASDMON data sets did not have SMFTIME and ZDATE in their
VMACDMON       KEEP= list, causing uninitialized variable error in the  
Feb 26, 1990   ANALDMON report program. Now they do.                    
   Thanks to Danny High, Blue Cross Blue Shield Texas, USA.             
Change 08.002  ACF2 ARE data segment had two bytes not read, causing a  
VMACACF2       STOPOVER condition. If the ARE did not exist, a program  
Feb 23, 1990   loop could occur.                                        
Mar 22, 1990 1.Insert two new lines, after line 052000 and 054200 (both 
               of which are ACLFLDNM $CHAR8.). The new lines contain    
               (thereby skipping over two bytes after ACLFLDNM).        
             2.Change line 051500 to now read:                          
                IF ACLAFARE GT 0 AND ACLMFLGS NE '...1....'B THEN DO;   
             3.Change line 053700 to now read:                          
                IF ACLBFARE GT 0 AND ACLMFLGS NE '..1.....'B THEN DO;   
   Thanks to Roman Gudz, Leaseway Transportation, USA.                  
   Thanks to Steve Cavill, SAS Institute, AUSTRALIA.                    
Change 08.001  The first step of JCLTEST builds the MXG Format (SASLIB) 
JCLTEST        library. MXG 7.7 (unlike previous versions) requires the 
VMACIMS        SAS option MACRO in building formats (added to support   
Feb 23, 1990   both SAS 5.18 and SAS 6.06+). Either specify MACRO on    
May  5, 1990   the EXEC statement or use PROC SETINIT to set the default
               to MACRO.  Other MXG uses of the "new" %MACRO facility   
               also require DQUOTE to be similarly enabled. For the DB2 
               reporting and some of the Trend Data Base programs, the  
               option MWORK=28K (which sets the size of the macro work  
               area) prevents an "Excessive Parameter Length" error.    
               MXG now requires these SAS System options:               
                     MACRO    DQUOTE    MWORK=28K     GEN=0             
               For DB2 reporting (ANALDB2R) additional options are also 
               suggested (see comments in that member).                 
               The two PUT statements that contained double quotes in   
               VMACIMS (requiring DQUOTE in step TESTOTHR) were changed 
               to single quotes.                                        
LASTCHANGE: Version  8                                                  
End of Changes Log.