This is the true production release of MXG Version 6.6, Jan 21, 1989. 
  The library is now at Change 6.213 (NEWSLETTER THIRTTEN said 6.206).  
  MXG now produces 552 datasets with 18070 variables from 910 members.  
  The enhancements, installation instructions, compatibility issues,    
  documenation location, for MXG Version 6 are in Newsletter THIRTEEN,  
  which is now contained in member NEWSLTRS of the MXG Source Library.  
  Newsletter THIRTEEN additionally contains Administrative Announcements
  Technical notes and enhancements planned for the next version of MXG. 
  After you have read NEWLETTER THIRTEEN, you will need to return to    
  this member to read the changes themselves, as much of the technical  
  information is contained in the detail change descriptions herein.    
  Note especially that Change 6.206 in this member has been changed     
  from that printed in MXG Newsletter THIRTEEN. The time between the    
  printer and tape building allowed enhancements and more consistent    
  naming conventions for the members which control the new Trend Data   
  Base enhancement. Note these related features implemented in that     
  The %VMXGSUM macro is a very powerful generalized algorithm to create 
  organized summarization of complex SAS data sets with a simple series 
  of parameters.  Its use will go far beyond its first implementation   
  here in the Trend Data Base.                                          
  The ASUMCICS member uses %VMXGSUM to create Hourly CICS service       
  objectives (percent transactions responses in less than 1,2,3,5,8, 15,
  etc. seconds) for each User, Transaction and Terminal, in the new     
  PDB.CICS data set. The ASUMJOBS member uses %VMXGSUM to similarly     
  calculate IWT (Initiation Wait Time) distributions hourly by job class
  (percent jobs initiated in 2, 5, 15, 30 min, etc.) in the new         
  PDB.JOBSKED data set.  These members implement the measurement of     
  service objectives as described in Chapter Eight.                     
  %VMXGSUM is used in a different fashion in the four Trend Data Base   
  building members TRNDCICS, TRNDJOBS, TRNDRMFI, and TRND72, which take 
  the weekly PDB data sets and the Trend-to-Date accumulation and       
  produce the new updated trend-to-date ("five years in five CYL") data 
  base.  These members, which can be executed after the weekly PDB has  
  been built with JCLTREND, provide the long range tracking, trending   
  and capacity modeling demonstrated in the graphs in Chapter Forty-Two.
  Member GRAFTRND provides ready-made 18-month graphics.                
  The MXG Trend Data Base is a brand new implementation using new style 
  %MACROs to create a series of a DATA and PROC steps. It has not had   
  the intense testing the remainder of MXG Version 6 received (444 MXG  
  users have been using a pre-release of Version 6, many installing it  
  in a production mode).  Thus, while I think it is real good, I reckon 
  it might still have a few cobwebs I missed.  If you have problems in  
  using these new %MACROS, look real careful that you did not fail to   
  terminate every parameter with a comma.  The %MACRO facility is       
  equally powerful and equally unforgiving.  I almost included the      
  ASUMCICS and ASUMJOBS members in BUILDPDB to build PDB.CICS and       
  PDB.JOBSKED by default, but at the last minute decided it had not been
  tested widely enough to justify that design.  Do not hesitate to let  
  me know what was missed and what should be added.                     
  Yes, VMers, the Trend Data Base implementation at present is only for 
  the MVS data sources.  The %VMXGSUM macro, however, is there for the  
  using yourself, until next version, when there really will be support 
  for the VM Trend Data Base and the VM/XA Trend Data Base as well!     
==========================Changes Log================================== 
   All changes listed below have already been made in this MXG library. 
   Some of the changes contain the code with line numbers, because those
   changes were provided by telephone prior to this production shipment.
   You MUST read each Change description below to determine if a Change 
   will impact your installation. For each impacting change, you should 
   also read the comments in the beginning of the source members that   
   are listed under the change number. Notes, comments, and last minute 
   documentation are usually found in comments in changed members.      
NEXTCHANGE: Version  6                                                  
=============Changes thru 6.213 as of Jan 21, 1989 ===================  
Change 06.213  Talk about making it under the wire, as I was headed to  
XMACEPIL       the data center to build the production tapes, the mail  
Jan 21, 1989   delivered the Candle documentation of changes in their   
               EPILOG 1000 for CICS Version 440 record formats! Because 
               the records are changed in so many places, and because I 
               did not have test data for validation, this new member   
               contains syntax tested code only, and only applies to    
               Version 440 records, which are incompatible with their   
               Version 430 records.  See comments at beginning of this  
               new member.  There are 46 new variables (at the end of   
               the KEEP= list, starting with BI4GLPGM), and there were  
               21 variables removed (see blanks where they used to be   
               in the KEEP= list, compared with VMACEPIL member!)       
   Thanks to Ashok Argarwala, Candle Corporation, USA.                  
Change 06.212  The SAS supplied EXEC for SAS under CMS does not test to 
EXECDALY       see if you issued a GLOBAL MACLIB statement to CMS before
REXXDALY       you invoked SAS.  The SAS EXEC itself issues a GLOBAL    
Jan 19, 1989   MACLIB statement for the AUTOEXEC MACLIBs. Since the MXG 
               execution instructions under CMS (p. 24, MXG Supplement) 
               tell you to GLOBAL MACLIB USERID SOURCLIB and then type  
               SAS, the concatenation of USERID and SOURCLIB MACLIBS    
               is disconnected by SAS's EXEC, and your MXG program may  
               fail with "Member Not Found".  The simplest solution to  
               execute MXG under CMS SAS is probably to create your own 
               copy of the SAS EXEC, and add the USERID and SOURCLIB    
               names to the list of MACLIBs globalled therein. The SAS  
               Institute plans to change their EXEC in a future version 
               to check for GLOBAL MACLIBs first, and if found, to add  
               SAS's desires to your already stated command.            
   Thanks to Steve Morton, SAS Institute, England.                      
     for bringing this to my attention.                                 
Change 06.211  The RACF report for Insufficient Authority now includes  
ANALAUDT       the INTENT and ALLOW values, and for RACFAUTH='10'X the  
Jan 19, 1989   AUTHRITY=AUDIT was corrected to AUTHRITY=SPECIAL.        
   Thanks to Wing Louie, Metropolitan Life, USA.                        
Change 06.210  Newsletter THIRTEEN went to the press on Monday, and it  
TYPEIMS        said IMS FASTPATH log records were not supported in 6.6. 
Jan 19, 1989   I had really planned to add it during this week while    
               the newsletter was at the printer and while my QA tests  
               were executing. SAS Europe had provided me with test data
               and a copy of DBFULTA0 output for validation. I had the  
               printed assemblies of ILOGREC RECID=ALL for IMS 1.3,2.1, 
               and 2.2 at hand, as they contain the DSECTs of all IMS   
               log records. When what to my dismay, do I find that IBM  
               does not print the format of the X'59' FASTPATH IMS log  
               records, even when TYPE=ALL is specified. I have been on 
               the phone to IBM support with still no answer as to how  
               or where these records are documented, and I have run out
               of time. Well, there's always the next version. Sorry!   
               Of interest, however, was IBM Level One's sincere comment
               that no one knew much about fastpath, because they only  
               rarely get a call about fastpath!                        
                Footnote: Two Level 1 calls and one Level 2 call later, 
                but only hours before the production building of MXG 6.6
                begins, I did get at least the DBFK.... member names in 
                DCSOURCE that are supposed to contain the needed DSECTS!
Change 06.209  The response time (RESPNSTM) in the IMSTRAN data set was 
TYPEIMS        incorrect in some cases when multiple transactions were  
Jan 17, 1989   processed per program schedule (eg., WFI). The reason    
               was that in step 8 the merge of input and output records 
               did not match in all cases; if an output record is missed
               the original code merged the input record with the NEXT  
               output record.  The result was an increasing RESPNSTM    
               for MULTRANS as much as the time of day continues!!! The 
               logic now balances the timestamps when output records are
               missing by recognizing the condition and then setting the
               values missing. An output record will be missed for any  
               transaction which had not completed when the IMS log was 
               dumped, but the effect of a single missed output record  
               was propagated into several IMSTRAN observations.        
   Thanks to Siegfried Trantes, Gothaer Versicherungsbank VVAG, GERMANY.
Change 06.208  VM/Monitor fields which were divided by 16384 appear to  
VMACVMON       be slightly in error; the correct divisor should have    
Jan 17, 1989   been 16666.666 (which is 1000000/60).                    
   Thanks to Rob Owens, SAS Institute Europe, GERMANY.                  
Change 06.207  DB2 Trace records, when written to GTF only, are limited 
Jan 17, 1989   to 280 bytes (a 24-byte GTF header, and 256 bytes of DB2 
               trace data per record). The most important trace records 
               fit in the 256 byte limitation, but Trace events needing 
               more than 256 bytes are internally "spanned" by DB2 into 
               several GTF records. Unfortunately, these are not valid  
               VBS records, and are not straightforward to decode. The  
               MXG 6.6 support for GTF format DB2 trace data processes  
               only the un-spanned records at present. If a real need   
               exists (only startup records are spanned thus far), we   
               will investigate enhancing the MXG algoritms with you.   
               I still think GTF is the wrong place for DB2 Trace. In   
               the first place, the detail accounting reports in member 
               ANALDB2R meet the needs of almost all DB2 administrators,
               and trace should be limited to special occasions. If you 
               must trace, you should use good sense and SMF files, and 
                 "To ensure adequate buffers exist, specify CISZ(4096)  
                  and BUFSP(81920) for each SMF VSAM data set"          
               as IBM recommends in SC26-4095-2.                        
----Changes thru 6.206 were printed in MXG Newsletter THIRTEEN-------   
Change 06.206  The MXG MVS Trend Data Base preliminary implementation.  
ASUMCICS       This series of members are the beginning of the long     
ASUMJOBS       overdue (almost "fabled") enhancement to provide for     
GRAFTRND       the long term trending of response, resources, etc.,     
IMACSHFT       in a very small data library referred to as the Trend    
JCLTREND       Data Base.  More will be written later on its use, but   
PDBTREND       for starters, PDBTREND will build an initial trend data  
TRNDCICS       base from the past and thereafter JCLTREND will update   
TRNDJOBS       the past weeks data into the Trend Data Base, and give   
TRNDRMFI       management-pretty reports for the past eighteen months   
TRND72         trends! The member naming conventions to be used are     
VMXGDUR        ASUM.... for the first summarization from detail data    
VMXGSUM        into an interval (eg., hourly) from PDB input back into  
Jan 15, 1989   a new data set in the same PDB and TRND.... for second   
               summarization from one interval (eg., hourly) into a     
               diffeent (eg. week-shift), from  WEEK input combined     
               with existing TREND to create updated TREND data set.    
        ASUMCICS - Creates CICS interval summary and response buckets   
                   from detail transaction data (CMF or Landmark!).     
        GRAFTRND - Graphs of CPU capacity with simple linear regression 
                   prediction CPU usage from TREND.RMFINTRV. See member.
        IMACSHFT - Existing IMACSHFT was modified to return both a SHIFT
                   variable and the start-time of the shift for TREND.  
                   To be compatible with TREND, you must replace your   
                   present IMACSHFT with this new member. The internal  
                   logic was restructured to pass back a modified value 
                   for the inputted variable DATETIME, but there was no 
                   change in the value of SHIFT passed back by IMACSHFT.
        JCLTREND - Example JCL to execute weekly after your weekly PDB  
                   has been built, to update the existing Trend Database
                   with the new week's data. This usually is best run   
                   after you have examined your weekly runs, as there is
                   no supplied code for backout if you mess up!         
        PDBTREND - Create your Trend Data Base for the past directly    
                   from weekly SMF files or already build weekly PDBs.  
                   Start here, and work backward in history as far as   
                   you want to go. Each execution adds another week to  
                   your Trend Data Base.                                
        TRNDCICS - Builds TREND.CICS dataset.                           
        TRNDJOBS - Builds TREND.JOBS dataset.                           
        TRNDRMFI - Builds TREND.RMFINTRV dataset.                       
        TRND72   - Builds TREND.TYPE72 dataset.                         
        VMXGDUR  - Calculates durations of HOUR, DATE, WEEK, MONTH.     
                   Will optionally calculate SHIFT using IMACSHFT.      
                   Input variable DATETIME contains the timestamp to    
                   be examined. Will calculate SHIFT using IMACSHFT     
                   and will reset DATETIME to the timestamp of the      
                   beginning of the shift interval.                     
        VMXGSUM  - The heart and soul of MXG summarization. Contains    
                   multiple macros which make it act like a PROC        
                   that lets you summarize detail data into interval    
                   data and interval data (eg. hourly) into other       
                   intervals (eg., weekly), taking into account the     
                   things like rates and percentages which must be      
                   expanded, summed, and then contracted in the         
                   summarization process. "Self-Documented" - ha?       
   Thanks to Chuck Hopf, Hopf Consulting, USA.                          
   for lots of help with %macro implementation.                         
   This is the essence of the system which generated the graphs in      
   Chapter 42 of the MXG Guide. Five years data in five cylinders!      
Change 06.205  Several graphics enhancements were made to make MXG      
GRAFRMFI       co-exist better with SAS/GRAPH. Device selection in      
VMXGGOPT       GRAFRMFI is now enabled with the new %VMXGGOPT macro     
XADMDEFS       which added support for IBM3179, IBM3279, IBM3287,       
Jan 15, 1989   ZETA887, TCX4107, IBM3800, and especially for SAS/PC.    
               Member VMXGGOPT allows for the dynamic selection of      
               graphic devices; see documentation in that member.       
               XADMDEFS is also referenced in VMXGGOPT; it provides     
               the GDDM ADMDEFS for IBM 3800 and 3820 graphics.         
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 06.204  MXG had provided FMXGUCBL and VMXGVTOC to capture DASD   
ASMVVDS        space management data, but VTOCs do not provide data on  
EXTYVVDS       VSAM files.  This contracted enhancement now provides    
IMACVVDS       DASD Space management for VSAM files.  Instead of the    
JCLVVDS        VTOC, space information on VSAM data spaces is in the    
TYPEVVDS       VVDS, located on each volume which contains VSAM data    
VMACVVDS       spaces.  MXG provides the Assembly source code and the   
Jan 15, 1989   JCL to create the ASMVVDS program in member ASMVVDS.     
               Once assembled, program ASMVVDS can be executed by the   
               JCL in JCLVVDS, and the VVDS data is extracted and then  
               written to a flat file, or (my recommendation), can be   
               written as an SMF record. Once the VVDS data is in the   
               flatfile or SMF record, member TYPEVVDS will create      
               the MXG dataset TYPEVVDS which can be then used to       
               measure, manage, and charge back VSAM DASD space.        
               See comments in member ASMVVDS; this program must be     
               authorized to read the VVDS.                             
Change 06.203  Although no data has been made available from VM/370     
IMACVMON       Release 6, comparison of IBM's documentation and the MXG 
Jan 15, 1989   code in VMACVMON strongly suggests that MXG will support 
               the Release 6 records, provided only that both the _HPO  
               and _MP macros defined in IMACVMON are enabled. In fact, 
               both were required enabled for Release 5 with or without 
               HPO. The defaults have now been changed to enable both   
               _HPO and _MP since few new MXG sites will come up on 4.2!
               This should not affect current MXG sites, since you have 
               already tailored IMACVMON into your USERID.SOURCLIB and  
               that member will override the new defaults in MXG!       
Change 06.202  NPM 1.3 type 28 support was enhanced to include subtypes 
FORMATS        x60-x62 (new with Network Gateway Accounting), and the   
VMAC28         additional variables added to the MSA, BAS, BAN, and NTK 
Jan 15, 1989   segments. No NGA data has been available for testing, but
               having the code in place means that you won't need a new 
               version of MXG when you install NGA later this year. IBM 
               really came through in time with this documentation!     
Change 06.201  DB2 Trace records processing code has been enhanced to   
IMAC102        read most new fields added by DB2 Version 2.1.  This is  
IMAC102A       also a major restructure of the code. Not all of the new 
IMAC102B       subtypes have been tested against 2.1 data, so there is  
VMAC102        a slight risk in using the type 102 code in this version 
Jan 14, 1989   of MXG. A new macro, _DB2IID is defined in IMAC102 that  
               can be used to delete specific IFCID (subtype) values if 
               there are any problems. All TRACEnn labels were removed, 
               and comments in IMAC102 identify which IFCIDs are in each
               trace class.                                             
TYPEIMS        removed, because SAS not only does not support deletion  
Jan 14, 1989   if _IMSTRAN is a tape, but it creates a condition code   
               twelve! The purpose of the delete was to re-use the      
               same space on disk; thus if you create IMSTRAN data on   
               disk, you will need to do your own delete, eg.:          
                     //SYSIN DD *                                       
                      PROC DATASETS LIB=IMSTRAN ...                     
                      %INCLUDE SOURCLIB(TYPEIMS);                       
   Thanks to Tim Follen, Blue Cross of Ohio, USA.                       
Change 06.199  DB2 data written to GTF is now supported by the use of a 
ANALDB2R       new _GTFDB2 macro added to VMACSMF. Members TYPEDB2G and 
TYPEDB2G       TYPE102G are their "no-G" members with _SMF replaced by  
TYPE102G        _GTFDB2.  If you write DB2 trace data to GTF, you must  
VMACSMF        apparently specify the complete 0FB9 Event ID to GTF at  
Jan 11, 1989   startup; Ron responed with only FB9 and the GTF records  
               unexpectedly contained EFB9 as their EID!  The member    
               ANALDB2R was also enhanced with the new GTF= option to   
               use that data source for DB2 reports, and a new option   
               PDBOUT was added to create an output copy of the DB2     
               data sets if desired.                                    
   Thanks to Ron Roberts, The Equitable Life Assurance Society, USA.    
Change 06.198  Support for COM-PLETE SMF Accounting Records creates four
EXCOMASR       data sets, one from each of the four records. COMPULON,  
EXCOMLOF       ULOG Off, Checkpoint, and program termination. Only the  
EXCOMCKP       COMPUTRM data records have actually been fully tested.   
Jan 11, 1989                                                            
   Thanks to Karl Smit, Decision Support Services, SOUTH AFRICA.        
Change 06.197  IBM's SNA Application Monitor "SAMON" Release 1.2 creates
EXSMOASR       an SMF-format record for a SDXKSTA0 Statistics Data Set. 
EXSMOAUR       MXG creates six new datasets, SAMONASR,SAMONAUR,SAMONSSR,
EXSMOSSR       SAMONTLR,SAMONTSR,SAMONUSR which are described in IBM's  
EXSMOTLR       SNA Application Monitor Operations and Diagnosis Guide   
EXSMOTSR       pp.86-98. Caution: no data records have been received    
EXSMOUSR       as yet, so this code has only been syntax checked.       
Jan 11, 1989                                                            
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 06.196  This VM/370 report caused an error when no channel data  
ANALVMDY       was collected, because PROC TRANSPOSE does not create the
Jan 10, 1989   COLn variables when there is not input data. This causes 
               the RENAME COL1=BUSYPCT statement to fail. To fake out   
               the SAS compiler to avoid the error, the statement       
                   IF COL1=. then COL1=.; was inserted after the RENAME.
               This trick creates the numeric variable COL1 to satisfy  
               the SAS compiler, but does not change its value if it    
               already exists.                                          
   Thanks to Jay Cicardo, Southwestern Bell, USA.                       
Change 06.195  This paper on the VM/XA Monitor Facility will be         
DOCVMXAF       published later this year in a major journal, but        
Jan 10, 1989   its author has been kind enough to share his work        
               with MXG users.                                          
   Thanks to Richard Steele, Louisville Gas and Electric, USA.          
Change 06.194  The 1987 CMG Paper (Proceedings, pp.432ff), "A Method for
ANALCACH       Reporting Cashed I/O Subsystem Performance", by Nancy    
Jan 10, 1989   Nearing, Washington Consulting Group discussed methods   
               to depict cache performance characteristics, using both  
               RMF type 74 records and the RMF Cache DASD Reporter FDP  
               SMF records (MXG member TYPECACH). The report examples   
               in that paper are implemented in this contribution.      
   Thanks to Bruce L. Green, Medical Information Bureau, Inc, USA.      
Change 06.193  RMDS enhancements suggested by this user led to a        
VMACRMDS       general cleanup of RMDS Version 3 SMF record code,       
Jan  9, 1989   and capture of additional useful RMDS data fields.       
   Thanks to Jenell Ratterree, The Cooper Group, ENGLAND.               
Change 06.192  HSM Processing. This is a significant contribution from  
JCLHSM         this user, a complete self-contained system. I have not  
VMXGHSM        really tested the code with real data. I simply put all  
Jan  9, 1989   the macro definitions into a the single VMXGHSM member,  
               syntax tested the code with no input records. It will    
               be examined and documented in the future, and possibly   
               data set names will be prefixed with HSM                 
   Thanks to Carole Larivee, System One Corporation, USA.               
Change 06.191  Support for SMF records created by STC's 4400 tape silo. 
EXSTCVAR       and STCENTER are created for BLOS stats, VARY station,   
EXSTCLSM       modify LSM, LMU read statistics, cartridge ENTER and     
EXSTCLMU       cartridge EJECT.                                         
Jan  8, 1989                                                            
   Thanks to Rodney L. Reisch, General Electric Plastics, USA.          
Change 06.190  Support for SQL/DS accounting records created under VM   
EXVMSQLI       has been written but has not been tested with data yet.  
EXVMSQLT       are created for Initialization, System, Termination and  
EXVMSQLU       User events as described in SH24-5043-2.                 
Jan  8, 1989                                                            
   Thanks to Norbert Korsche, OMV-AG, AUSTRIA.                          
Change 06.189  Several VMACROSC fixes: Variables VOLSER1-6 in data set  
ANALROSA       ROSCODSF now exist and are spelled DSFVOL1-6, and DSNAME 
ANALRRTM       and MEMBER were added. Code to process 'F4'X ROSREC was  
DIFFROSC       relocated to cause ROSCOSHU observations to be created.  
VMACROSC       The MONITOR='ATT' test was expanded to include 'AJO' too.
Jan  8, 1989   In DIFFROSC: START ISTART and IEND are now dropped after 
                their RETAIN (keeping START caused unexpected conflict  
                in ANALRRTM report). In ANALRRTM and ANALROSA all       
                divides are now protected against zero-divide error.    
   Thanks to Norbert Korsche, OMV-AG, AUSTRIA.                          
Change 06.188  Additional sets of workload variables are now created in 
EXRMFINT       RMFINTRV and labeled in EXRMFINT. MXG now creates five   
IMACWORK       new "OTHn" sets of variables (OTH0, and OTH6 thru OTH9). 
RMFINTRV       With the four predefined BATCH, TSO, CICS, and IMS groups
Jan  8, 1989   you have fourteen sets of workload variables available.  
               Comments in all three cited members have been (hopefully)
               clarified on how to set workload definitions in IMACWORK 
               and to then label them in EXRMFINT.  Variables CPUTYPE   
               and CPUVERSN (from type 70) were added to RMFINTRV. The  
               variable SIO73CNT now contains total SIOs/SSCHs from the 
               type 73 (if MVS/370) or type 78 (if MVS/XA).             
Change 06.187  Support for Netspy Release 3.1 Level 3 new type V record 
EXNSPYVR       (Virtual Routes being monitored) creates new NSPYVIRT    
VMACNSPY       data set. Thanks Duquesne for releasing the format of    
Jan  8, 1989   the new record before they ship their enhancement!       
   Thanks to Luis Motles, Duquesne, USA.                                
Change 06.186  MXG member naming conventions are changed by this change.
ANALDB2        Past members ANALDB2 and ANALROSC performed de-accumulate
ANALROSC       using DIF() function, but since they produced no reports,
DIFFDB2        they should not have begun with ANAL.  Now, they will be 
DIFFROSC       contained in new members DIFFDB2 and DIFFROSC. To keep   
Jan  8, 1989   your present programs error free, there still are the    
               members ANALDB2 and ANALROSC on the MXG library, but they
               now only %INCLUDE their respective DIFF.... member name. 
               All future SMF processing which requires DIF() will be in
               members beginning with DIFF.  At you convenience after   
               MXG Version 6 is installed, you should change references 
               to ANALDB2/ANALROSC in your USERID.SOURCLIB(EXPDBOUT) to 
               DIFFDB2/DIFFROSC (assuming, of course, that you even use 
               the MXG Exit Facility to process DB2 or ROSCOE SMF data  
               with BUILDPDB/3!)                                        
Change 06.185  Support for Duquesne's TPX Session Manager SMF records   
EXTPXAOF       creates six new datasets: TPXSTART, TPXINTRV, TPXTRMON,  
EXTPXINT       is written as accumulated, member DIFFTPX is required to 
EXTPSSTA       de-accumulate the interval data. MXG includes DIFFTPX in 
EXTPXTOF       TYPETPX automatically, but if you intend to read TPX data
EXTPXTON       in BUILDPDB/3, you will need to include DIFFTPX in your  
IMACTPX        EXPDBOUT member.IMACTPX sets your chosen SMF record id.  
Jan  8, 1989                                                            
   Thanks to David Daner, Sun Refining and Marketing, USA.              
Change 06.184  The text portion of all prior MXG Newsletters are now in 
NEWSLTRS       this new member (the "Change Log" portion of Newsletters 
Jan  3, 1989   are in members CHANGEnn for prior MXG Versions and in    
               member CHANGES for the current MXG Version.) We choose to
               put the Newsletters online so you can search for specific
               items, and to (hopefully) eliminate the need for multiple
               copies of the printed Newsletters for large sites. Does  
               this solution meet your needs?                           
Change 06.183  Variable BRFLDBNO in TYPE37 (Receive level in DBm) is an 
VMAC37         IB2. and not PIB4. field.                                
Jan  3, 1989                                                            
   Thanks to Claudia Ku, Farmers Insurance, USA.                        
Change 06.182  Variable TYPETASK from Type 30, which is propagated into 
VMAC30         PDB.JOBS and PDB.STEPS, should contain JOB, STC, or TSU. 
Dec 29, 1988   However, tasks started before JES (such as LLA, MSTR, SMF
               BLSJ, JES, and DUMP) have their jobname in TYPETASK. With
               this change, MXG forces TYPETASK to be STC if it is not  
               JOB or TSU, so that TYPETASK can accurately be used to   
               differentiate jobs, sessions and started tasks. Variable 
               TERMNAME (MVS/ESA, symbolic terminal name) contains the  
               TSO user's terminal name, but contains garbage for JOBs  
               and STC. (IBM failed to check before moving data - a PTF 
               will be issued eventually).                              
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 06.181  Type 74 processing was enhanced to include SKIP logic to 
VMAC74         compatibly handle any future IBM changes in data length. 
XMAC74         (I thought I had done this to all RMF code last year, but
Dec 29, 1988   must have overlooked this member.)                       
Change 06.180  DOWNTM estimate from type 0 SMF record will be zero if a 
VMACSMF        type 90 record (OPERATOR IPL response) precedes the IPL  
Dec 28, 1988   record. To give a better estimate of when the last record
               was actually created, the PREVTIME PREVSYS variables are 
               now retained only if it is not a 2, 3, or 90 SMF record; 
               (i.e., type 90 was added to the test.)                   
   Thanks to Jeff Fox, SKF USA, USA.                                    
Change 06.179  DOS POWER variable SYSID (system identification) was not 
TYPEDOS        kept in the MXG DOS..... data sets. Now it is.           
Dec 28, 1988                                                            
   Thanks to Richard Steele, Louisville Gas and Electric, USA.          
Change 06.178  For VM/370 Monitor data from sites with (a) nonzero value
VMACVMON       of SYSTIME in their DMKSYS module, and (b) which process 
Dec 27, 1988   concatenated VM/Monitor data, MXG incorrectly reset the  
               GMT time zone delta when the second 0/97 Monitor Start   
               record was encountered, causing STARTIME in MXG datasets 
               to change to GMT instead of Local, because two variables,
               FFFFF and FRSTBASE were not retained in the first RETAIN 
               statement (line 304).                                    
   Thanks to Rodney L. Reisch, General Electric Plastics, USA.          
Change 06.177  Continuing cleanup of VM/XA replaced several unnecessary 
VMACVMXA       variables in VXMTRSPR with SDOMAINS and HDOMAINS decoded 
Dec 23, 1988   just like EDOMAINS in VXMTREPR to identify which domains 
               are active for Sampling, Hi-Freq, and/or Event data, and 
               CHANBYTM label was corrected (ANY channel active). Much  
               more significantly, the VXIODDEV and VXDEVTOT datasets   
               are now enhanced and contain the RDEVCLAS, RDEVTYPE, etc.
               fields from the VXMTRDEV start-up records. Additionally, 
               the MXG logic to recognize a user logon failed once when 
               only 11 actual samples were counted by IBM in a 60 second
               interval with hfrate of 5 seconds. Line 6194 was changes 
               to test (ZZQUCT+1) LT instead of ZZQUCT LT to hopefully  
               compensate for a lost sample. The implementation to add  
               device information requires a FILEDEF/DDNAME of INSTREAM,
               (temporary, 3 tracks at most) during the creation of the 
               VXIODDEV etc. data sets. MXG writes SAS code to INSTREAM 
               filename and then %INCLUDEs INSTREAM to execute the PROC 
               FORMAT which is the table-look-up of device mapping.     
   Thanks to Richard Steele, Louisville Gas and Electric, USA.          
Change 06.176  This error was only on the 6.5a and 6.5b pre-releases DB2
VMACDB2        type 101 record. Line 1275 took a finger fault. It should
Dec 20, 1988   read   IF QWHCLEN GE 56 THEN .... instead of GE 46.      
=============Changes thru 6.175 comprised MXG 6.5b pre=release =======  
Change 06.175  The MXG exit code which creates SMF records from IDMS is 
IDMSEX05       now updated for IDMS 10.2, due to this user. The ASM     
IDMSEX13       code formerly in IDMSEXIT is now split into IDMSEX05 and 
IMACIDMS       IDMSEX13. Exit 05 creates SMF record 190 (was type 200)  
VMAC200        and exit 13 creates SMF records 191-193 (was types 201   
VMAC201        203 in IDMS 10.1). The same data sets (TYPE200-TYPE203)  
VMAC202        are built, and member IMACIDMS tells MXG the actual SMF  
VMAC203        type you choose. The variable ID has been added to the   
Dec 19, 1988   four MXG data sets so you can tell which IDMS created the
               particular SMF record.                                   
   Thanks to Ed Dassori, Whirlpool Corporation, USA.                    
   Thanks to Keith A. Immink, Whirlpool Corporation, USA.               
Change 06.174  The MXG option to read VM/XA MONWRITE output data and to 
VMACVMXA       then build "true" VB format records was not true, as four
Dec 16, 1988   extra bytes were embedded. (It worked in testing because 
               the _VMINPUT macro expected those extra bytes!). Both the
               _OUTFILE and _VMINPUT macros were corrected to build and 
               read real VB data correctly!                             
   Janice Radel, McDonnell Douglas Automation, St. Louis.               
=============Changes thru 6.173 comprised MXG 6.5a pre=release =======  
Change 06.173  The summarization of CICS transaction data from either   
ASUMCICS       IBM's CICSTRAN or Landmark's MONITASK into the PDB.CICS  
Dec  6, 1988   dataset is accomplished by this program. MACROs defined  
               in the member determine the grouping (default is by      
               the interval summarized (default is hourly). Data set    
               PDB.CICS contains resources sums (CPU, I/O, characters)  
               maximum response, and eight buckets for response counts  
               of 1,2,3,4,5,8, 10 and over 10 seconds. This will be the 
               CICS part of the "Trend Data Base" to be implemented in  
Change 06.172  Preliminary reports for NPM 1.3 type 28 data sets is now 
ANALNPMR       available in this user's report contribution.            
Dec  6, 1988                                                            
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 06.171  Support for Duquesne's DASDMON SMF records started with  
ANALDMON       the SAS code provided with the DASDMON product, but the  
EXDMDSN        code was redesigned to conform to MXG structure and was  
EXDMJOBS       validated with actual data. Some preliminary reports are 
EXDMVOL        also available in ANALDMON.                              
Dec  6, 1988                                                            
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 06.170  IDMS 10.2 Performance Monitor from Cullinet is a complete
EXIDMaaa       re-design of the SMF record subtypes and contents which  
IMACIDMS       changed variable names and added new data sets as well.  
TYPEIDMS       This support replaces the TYPERTE and IDMS.... data sets 
VMACIDMS       built for the 10.1 PM. The 10.2 data sets now all start  
Dec  5, 1988   with IDMS, but now have three letter suffixes: ARA,BUF,  
               CDM,DBK,INS,INT,JRL,LNE,PGM,RUS,STG,TAS,TAW,YPE instead  
               of four.                                                 
   Thanks to Keith A. Immink, Whirlpool Corporation, USA.               
   Thanks to Roger Edwards, South Carolina Electric and Gas Co, USA.    
Change 06.169  Support for Network System's Channel Extension equipment 
EXHO15LK       sequential file creates the HO15LINK and HO15TRNK data   
EXHO15TK       sets in this user contribution. See comments in TYPEHO15.
Dec  5, 1988                                                            
   Thanks to Rodney L. Reisch, General Electric Plastics, USA.          
Change 06.168  VM/SP Monitor data sets VMONCU and VMONDEV are created if
VMACVMON       there was activity or queueing (formerly only activity   
Dec  1, 1988   caused an observation in CU, and no-activity DEV records 
               created useless observations. More important, the data in
               VMONCU is now merged with VMONDEV into a revised VMONDEV 
               data set which now contains new useful variables IORATE  
               PCTQUEDV, PCTQUECU, and MSPERIO (millisec of queue and   
               service per IO).                                         
   Thanks to Ron Roberts, The Equitable Life Assurance Society, USA.    
Change 06.167  TSO/MON data set TSOMCALL KEEP= list contained variables 
VMACTSOM       NRTRIV1-NRTRIV8 which should have been NTRIV1-NTRIV8 to  
Nov 28, 1988   KEEP the variables actually inputted!                    
   Thanks to Ed Shigo, Plaza Technology Corp, USA.                      
Change 06.166  DB2 trace record. In VMAC102 after INPUT QWPZBPID PIB2.  
ANALDB2R       insert +2 and change next two fields from PIB2. to PIB4. 
VMAC102        In ANALDB2R, reverse QWPZTOUT and QWPCISWT lines 2550-53 
Nov 28, 1988   and line 2506 QWPZDBC should be QWPZAUTH.                
   Thanks to Ervin Claxon, Great Western, USA.                          
Change 06.165  NPM exception variables NPMDATA,NPMMONVL,LNAMLIM,NPMLOWER
VMAC28         and NPMUPPER were not created in NPMEVNCP or NPMEVNET.   
Nov 23, 1988   Added to _VA28NAM list, and INPUT (PIB1.,+2,four PIB4.). 
   Thanks to Doyle Hanel, Compass Computing, USA.                       
Change 06.164  Support for CICS Version 2 Release 1 CMF Monitor Facility
IMACPTF        verified by examination of the SC33-0507-0 Customization 
Nov 22, 1988   Guide. Since IBM chose not to change SMFPSRVR's value, it
               is not possible to differentiate between CICS 1.7 and 2.1
               CMF records.  Thus you must still update IMACPTF to tell 
               MXG the "pft's" installed as described in IMACPTF. There 
               are no significant changes documented in 2.1.            
Change 06.163  Support for DB2 Version 2 Release 1 changes to type 100 &
ANALDB2        101 record added new variables:                          
VMACDB2        Data set DB2STAT0 (Type 100):                            
Nov 21, 1988     Q9STCTRE,Q9STCTRF,Q9STCTRG,Q9STCTRH                    
                Data set DB2STAT1 (Type 100):                           
                Data set DB2ACCT (Type 101):                            
Change 06.162  Several lines removed to make ANALDB2R executable under  
ANALDB2R       PC SAS. No logical changes were involved. Code still gets
Nov 21, 1988   an error message under PC SAS (NODSNFERR and NOVNFERR are
               not yet supported in 6.03) but code does run (slowly!!!) 
Change 06.161  Further comparisons of VM/XA Monitor data uncovered two  
VMACVMXA       incorrect assumptions. SCMCNTIM, SCMFPTIM, and SCMDDTIM  
Nov 18, 1988   (in VXIODDEV, connect, pending, and disconnect duration) 
               are in 128 microsec units, not timer units. RDEVRTPD (in 
               VXIODDEV, reserve duration) is ascending vice descending.
   Thanks to Richard Steele, Louisville Gas and Electric, USA.          
Change 06.160  Inserted  ELSE PUT /; after line 2915 to put a blank line
ANALDB2R       between DB2 AUTHID when only one plan was used.          
Nov 18, 1988                                                            
   Thanks to Allan Russell, SAS Institute Europe, GERMANY.              
Change 06.159 -Change 6.129 was not fully tested, but only if you made a
BUILDPDB       change to IMAC30IO does an error surface. Only MXG 6.5   
BUILDPD3       was affected. In IMACPDB, after MACRO _SUMSTP replace the
IMACPDB        lines EXCP thru IOTM with _IO30EX EXECTM _IO30TM  after  
IMAC30IO       MACRO _MAXSTP change D3330DRV to _IO30DR, and after MACRO
VMAC30         _PDB30_4 add IOTMERR just before _IO30IO. In IMAC30IO,   
Nov 28, 1988   remove IOTMERR. In VMAC30, add IOTMERR after INPRTY and  
               before _IO30IO in all three places.                      
              -Change 6.150 created _CICACCT macro to control the DDname
               to which CICSACCT dataset is written, but BUILDPDB/3 had 
               a temporary reassignment of _CICACCT to WORK, built the  
               WORK.CICSACCT data set in your WORK file and then SORTed 
               that data set to your _CICACCT.CICSACCT destination. With
               large volume CICSACCT data sets this caused problems in  
               the size of the WORK data set. If you had wanted to use  
               a tape data set for CICSACCT, you still needed that much 
               DASD work space for sorting!                             
               With this change, the CICSACCT data set is created direct
               into the _CICACCT ddname and is not sorted in BUILDPDB/3.
               If you set _CICACCT (in IMACCICS) to PDB, then BUILDPDB  
               will create PDB.CICSACCT (unsorted) you your PDB.        
               If your report programs expected CICSACCT to be sorted,  
               you may have a compatibility problem; you can use the PDB
               exit member EXPDBOUT as follows to sort the dataset:     
                 For a sorted CICSACCT dataset in the PDB on DASD:      
                    Set _CICACCT to PDB in IMACCICS.                    
                    Then in EXPDBOUT, add:                              
                  BY whatever-variables-you-want;                       
                 For a sorted CICSACCT dataset on tape DDNAME of MYDATA:
                    Set _CICACCT to UNSORTED in IMACCICS.               
                    Then in EXPDBOUT, add:                              
                  BY whatever-variables-you-want;                       
                   (When you put _CICACCT on tape, you cannot use the   
                    same DDname for OUT= (you can't sort a tape onto    
                    itself), and must use two tape DDnames, SORTED and  
                    UNSORTED, cataloging SORTED and deleting UNSORTED.) 
               This is an impacting change for BUILDPDB/3 users.        
               Remember that if you don't want CICSACCT observations at 
               all, you can forget all of this stuff, comment out the   
               OUTPUT _CICACCT.CICSACCT statement in EXCICACC, and cause
               zero observations to be created from the accounting data!
   Thanks to Tracy Blackstone, Kaiser Permanente, USA.                  
Change 06.158  Member IMACJBCK allows SMF data for only selected job(s) 
ANALALL        to be processed; its comments were made clearer. It is   
IMACJBCK       now included in VMAC41 and VMAC6156. A new analysis is   
VMAC41         added in ANALALL which will select all SMF records from  
VMAC6156       a job, store the records in a SAS library, and will also 
Nov 12, 1988   print all observations of all datasets in a SAS library. 
               This is a collection of several utilities I have found   
               useful in examining specific job detail resources.       
Change 06.157  RMF 4.1.1 creates Monitor III data in new subtype 2 of a 
BUILDPDB       type 72 record, which creates the new TYPE72MN dataset.  
BUILDPD3       TYPE72MN is also created by BUILDPDB/3, and in the PDB it
VMAC72         is sorted by SYSTEM STARTIME PERFGRP. The RMF Monitor III
Nov 11, 1988   data is created for each PERFGRP and contains counts of  
               initiated, active, idle, out-ready, and DIV users, counts
               of users delayed due to paging or swapping, pagein rate, 
               and memory usage (both total frames for the PERFGRP and  
               average frames per category of user) for frames held by  
               active, idle, out-ready, DIV users, ASM slots in use, and
               fixed frames for the PERFGRP. For all memory measures,   
               (frames or slots) MXG has converted to bytes and uses the
               MGBYTES format to show the memory measure in KB, MB, etc.
               for more direct comparison of values.                    
Change 06.156  Support for the Hiperspaces in RMF 4.1.1 added two new   
VMAC72         variables to TYPE72: HIPPGINS,HIPRDMIS (HIPER pageins and
Nov 11, 1988   read misses) by performance group period.                
Change 06.155  Support for the Hiperspaces in RMF 4.1.1 added eight new 
VMAC71         variables to TYPE71: HIPMIGRS,HIPREADS,HIPWRITS pagerates
Nov 11, 1988   migrated, read and written to/from ESTORE; HIPAGINS and  
               HIPAGOUT HIPER pageins/out, and HIPEXAV,MN,MX (average,  
               minimum and maximum HIPER pages in ESTORE).              
Change 06.154  Support for VIO paging into ESTORE (implemented by PTFs  
VMAC71         for APAR OY09186) added six new variables to TYPE71:     
Nov 11, 1988   VIOMIGRS,VIOREADS,VIOWRITS (VIO page rates migrated, read
               and written to/from ESTORE), and VIOEXAV,MN,MX (average, 
               minimum and maximum VIO pages in ESTORE).                
Change 06.153  Support for the 3990-3 Cached DASD Controller CRR SMF    
EXCAC90        data, "Cache DASD RMF Reporter" creates a new dataset    
IMACACHE       CACHE90 with new variable names, although it is quite    
VMACACHE       similar in structure to the existing CACHETY dataset     
Nov  9, 1988   from the 3880-23 controller.                             
   Thanks to John Chase, ???.                                           
=============Changes thru 6.152 comprised MXG 6.5 pre=release =======   
Change 06.152  MXG 6.5 Quality Assurance runs uncovered these glitches. 
IMACKEEP       Most were detected by specifically designed enhancements 
TYPEVM         to the UTILXREF cross reference utility.                 
VMAC535      a.@OFFSET+95 removed from INPUT TERMNAME in VMAC535.       
DOC          b.Extraneous % removed from IMACKEEP.                      
Nov  2, 1988 c.DEVICE renamed to DEVICEOR in new VMRSCS data set built  
               from VM/ACCOUNT data to avoid length conflict.           
             d.Variables with blank labels now have a label. In some    
               instances the label is simply the variable name, but this
               ensures that a variables was not overlooked.             
             e.Some DATETIME variables were discovered to have length 4,
               which caused a loss of the low-order resolution (seconds)
               and now UTILXREF catches this coding error.              
             f.The most pervasive change touched every member which had 
               a character variable with a $MG.... format. Because MXG  
               located the FORMAT statement ahead of the INPUT statement
               (so the source code reads better), and because SAS does  
               not work as I thought it did, the stored length of these 
               character variables in a FORMAT statement was taken by   
               SAS from the FORMAT statement, rather than being set by  
               the actual INPUT statement (as documented). The result   
               was that 8-bytes were being used where only 1-byte was   
               needed.  The circumvention was to insert the affected    
               character variable in a LENGTH statement preceding the   
               FORMAT statement with the correct length (not all were 1 
               byte!). A problem has been opened with SAS to correct the
               "design feature". If the character format is unknown in  
               the SAS System (eg, all $MG formats), SAS picks a length 
               of 8-bytes for the variable. Note, however that:         
                         DATA;FORMAT X $HEX20.;INPUT X $1.;             
               causes SAS (mainframe and PC) to used 10 bytes storage   
               for the one byte variable.                               
             g.All members touched by these LENGTH, FORMAT and LABEL    
               corrections were renumbered.                             
Change 06.151  The new PGPAGEIN and ACTFRMTM variables (page-ins and the
RMFINTRV       resident frame-seconds by performance group period, new  
Nov  2, 1988   with RMF 4.1 in TYPE72) look to be so useful that they   
               are now created in the RMFINTRV data set as rates by each
               workload: BATPGIN,TSOPGIN... and BATFRTM,TSOFRTM, etc.   
Change 06.150  Support for ROSCOE 5.6 added new variable USRPRFIX to the
VMACROSC       ROSC.... accounting data sets. Another new field, record 
Nov  1, 1988   version, is in the data record but not kept in MXG, as it
               is there to identify future changes in their record.     
   Thanks to Paula Bryan, Ohio Edison, USA.                             
   Thanks to John Carafella, CA (ex-ADR), USA.                          
Change 06.149  Reference to variable PRTY should have been PRTYJOB in   
ANALDOS        this DOS report example member.                          
Oct 30, 1988                                                            
  Merci a M. Bernard, CRCAM de L'Aude, France                           
Change 06.148  All four CICS data sets built from type 110 CMF data can 
EXCICACC       now be directed to separate DD names. The existing macro 
EXCICEXC       _CICTRAN was unchanged, but the single _CICOTHR macro for
EXCICTRN       CICSACCT, CICSEXCE and CICSYSTM data sets is replaced by 
IMACCICS       the same default as _CICOTHR had). This change was needed
VMAC110        by some sites to split CICSACCT data away from the other 
Oct 29, 1988   data sets.                                               
               If there is an IMACCICS member in your USERID.SOURCLIB   
               library, you MUST replace it with IMACCICS from this MXG 
               version so that _CICACCT, _CICEXCE, and _CICSYSTM exist. 
               If there is an IMACKEEP member AND you have overridden   
               the _VAR110 definition therein, you must prefix the data 
               set names CICSACCT, CICSEXCE and CICSYSTM with the new   
               macro names to avoid potential compatibility exposures   
               The syntax required is:                                  
                            _CICACCT . CICSACCT                         
                            _CICEXCE . CICSEXCE                         
                            _CICYSTM . CICSYSTM                         
Change 06.147  CICSTRAN variable TRMCHRCN (intended to be total chars to
VMAC110        and from terminal) has always been too large. It was the 
Oct 29, 1988   sum of in/out chars for both primary and secondary (alt).
               Primary are actual chars transmitted, but secondary is   
               primary characters plus IRC control characters to/from a 
               remote region or system-to-system. Now that I know whats 
               the sum of only PRIINCHR and PRIOUCHR.                   
   Thanks to Dale Doolittle, Barnett Computing Company, USA.            
Change 06.146  Variable SU_SEC (from TYPE72, indicates processor speed) 
RMFINTRV       is now added to data set RMFINTRV to make normalization  
Oct 29, 1988   of CPU times more reliable.                              
Change 06.145  TYPE74 variables PCTPNCHA, PCTPNCUB, and PCTPNDEV were in
VMAC74         the MXG Supplement (page 434) but not created nor kept in
Oct 29, 1988   the data set. Now they are.                              
   Thanks to Myles McCarthy, Fidelity Systems, USA.                     
Change 06.144  Incorrect assembly of CICS 1.6 MCT after PTF UL10276 that
VMAC110        changed FCAMCNT length from 2 to 4 cause short record to 
Oct 28, 1988   be written. MXG circumvents with new line 390.1:         
                  IF _UL10276 THEN EXPLEN=EXPLEN+2;                     
   Thanks to Greg Goshia, Westfield Companies, USA.                     
Change 06.143  Line 269 should be +145 instead of +158 for the NETSPY   
VMACNSPY       variable XDOMAIN to be correct.                          
Oct 28, 1988                                                            
   Thanks to Gary Zolweg, National Semiconductor, USA.                  
Change 06.142  A missing END statement in EPILOG CL 1000 code causing   
VMACEPIL       a syntax error was detected and corrected at 44700 (after
Oct 25, 1988   the statement BIETIME=BIETIME+CIGMTOFF;).                
   Thanks to Bruce Groeber, City Federal Savings, USA.                  
Change 06.141  "Nearly final" validation of VM/XA SP 1 and SP 2 corrects
VMACVMXA       several variable's values, revised the reports to fit on 
Oct 25, 1988   one line, added IODDEV summarization of I/O data into the
               VMXAINTV data set, added and renumbered the 35 reports.  
               The logic for USER data was re-written to keep the first 
               user interval instead of deleting it (to capture the CPU 
               time to first interval).                                 
Change 06.140  Continued enhancement of DB2PM-like reports added and a  
ANALDB2R       revised version of GRAFRMFI which restores the GROUPing  
GRAFRMFI       which was lost pending a zap from SAS.                   
Oct 25, 1988                                                            
Change 06.139  CICS reports from Landmark's Monitor are now produced by 
ANALMONI       ANALMONI just like ANALCICS reports from IBM's CICS CMF. 
TYPEMONI       (Neither are anything to write home about, and will be   
Oct 25, 1988   further enhanced in the future.) TYPEMONI was further    
               enhanced after Landmark 7.1 testing, and the logic in    
               de-accumulation of MONISYST re-written to properly take  
               in multiple systems data.                                
   Thanks to Oystein J. Blix, Televerkets, Oslo, NORWAY.                
Change 06.138  Support for SAS user SMF record (written by SAS provided 
EXTYSASU       exit described partially in SAS publication Y-103R which 
IMACSASU       is being re-written). The TYPESASU data set reports on   
TESTUSER       each DATA and PROC step's resource usage in a SAS job.   
Oct 25, 1988                                                            
Change 06.137  Format MGBYTES now will handle Gigibytes and Terabytes   
FORMATS        (9999G and 9999T) if that many bytes are encountered (as 
VMACDB2        was found in a VM/XA sites total paging space). DDNAME=  
VMAC102        in PROC FORMAT is now LIB= (for PC-SAS and future).      
Oct 24, 1988   New formats were added for QWHSIID and QWHSRMID variables
               for DB2 Instrumentation ID and Resource Manager ID. Line 
               476 in VMAC102 was changed to RETURN from DELETE (with no
               explicit OUTPUT statement, DELETE fell thru.)            
   Thanks to Siegfried Trantes, Gothaer Versicherungsbank VVAG, GERMANY.
Change 06.136  Variables EXECTM and ELAPSTM for subtype 2 and 3 type 30 
VMAC30         interval records (in dataset TYPE30_V) now are duration  
Oct 20, 1988   of this interval, rather than from initiation of step.   
   Thanks to Marty Rhodes, Hertz, USA.                                  
Change 06.135  Perverse issuance of VARY CPU command on all CPUs in one 
RMFINTRV       interval causes NRCPUS to be zero, causing zero divide!  
VMAC7072       Now, test before divide is made where needed!            
Oct 17, 1988                                                            
   Thanks to Bob Rutledge, Sherwin Williams Paint, USA.                 
Change 06.134  IDMS TYPERTE data set variable RT1DCTUT (User CPU   time)
VMACRTE        for IDMS transactions which came from CICS using UCF (ie.
Oct 17, 1988   application code executes under IDMS, CICS is used only  
               as a terminal handler) was incorrectly recalculated in   
               lines 823-824 (apparently a circumvention from the past).
               The re-calculation was eliminated.                       
   Thanks to Myles McCarthy, Fidelity Savings, USA.                     
Change 06.133  IMS Log processing END= logic lost the last record of the
TYPEIMS        raw log datasets, causing missing values in at most six  
Oct 17, 1988   observations in IMSTRAN data set.                        
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 06.132  More DB2PM-like reports and enhanced friendliness are in 
ANALDB2R       this self-documenting replacement member.                
Sep 26, 1988                                                            
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 06.131  The MXG error message text was changed to be more precise
IMACACCT       if you encounter more job accounting fields than you told
Sep 26, 1988   MXG to expect.                                           
   Thanks to I. M. Ajzenszmidt, Australian Bureau Meterology, AUSTRALIA 
Change 06.130  Support for Fujitsu's FACOM OSIV/F4 SMF data, due to     
EXAIM..        major code contributions from the below named authors.   
EXF1           Several classes of FACOM data records written to SMF are 
FORMATS        added by this change. First, PDLF (Performance Data Log  
IMACFACO       Facility) creates the type 127 SMF interval record; MXG  
TESTFACO       creates four TYPE127x datasets from member TYPEF127.     
TYPEAIM.       Second, FACOM SMF records type 1 and DSPRINT type 234    
TYPEF...       create datasets TYPEF1 and TYPEF234 datasets. Third, AIM 
VMACAIM6       (Advanced Information Manager) database manager creates  
VMACEXC2       type 110,111,112,113,116, and 117 SMF records which MXG  
VMACF1         processes into 22 AIM11n_x datasets with member TYPEAIMx.
VMACUCB        Fourth, VMACEXC2 and VMACUCB were modified to support VIO
XPDLPDA        from FACOM MSP/E20 data (although you must edit IMACFACO 
Sep 25, 1988   member to tell MXG you have MSP), and were also modified 
               to recognize 6421 disk devices in TYPE30xx, TYPE40, and  
               TYPE434 and PDB.STEPS and PDB.JOBS data sets. All other  
               SMF record written by FACOM appear to be compatible with 
               MXG SMF support. Twenty-eight new MXG datasets were added
               by this change. Member TESTFACO (now a part of JCLTEST)  
               builds all FACOM data sets and is also presently the best
               documentation.  If Fujitsu will provide the format of the
               PDL log data set, that data source will also be supported
               but in the interim, if you have the PDA report program,  
               you can use XPDLPDA to read the report output format and 
               create PDL datasets much like I hope to build directly.  
   Thanks to David Fahey, Databank, NEW ZEALAND.                        
   Thanks to Andrew J. Hood, Reserve Bank of Australia, AUSTRALIA.      
Change 06.129  New member IMAC30IO defines a new macro _IO30IO which    
IMAC30IO       controls which I/O device counting variables (EXCP....,  
IMACPDB        IOTM....) are kept in the TYPE30_V, TYPE30_4, TYPE30_5,  
VMAC30         TYPE434 and TYPE40 and PDB.STEPS and PDB.JOBS datasets.  
VMAC40         No variables were removed from the previous default, but 
VMAC434        the FACOM 6421 device was added (to be consistent with   
Sep 25, 1988   the MXG default of keeping all possible variables). This 
               centralized control has been long overdue and should make
               your life simple when you add/delete device classes in   
               the future. You should tailor this member for your site. 
               (To not keep the non-existent IOTM.... variables in the  
               TYPE434 and TYPE40 data sets, _IO30IO is actually made   
               up of _IO30DR (drive count), _IO30EX (EXCP variables),   
               and _IO30TM (IOTM variables). TYPE434 and TYPE40 use     
               only _IO30DR and _IO30EX so as not to change the size    
               of these obsolete data sets.)                            
Change 06.128  Support for Boole & Babbage IMF Release 2.5 was added. A 
EXIMFDB2       new CIMSDB2 dataset, with one observation per transaction
VMACCIMS       that accesses DB2 data, is created to count SQL activity.
Sep 23, 1988   Nine new variables (CPUDB2TM,EXTSSID,IMEUTRN,MSGDRRN,    
               to CICSTRAN data set. Fourteen new variables (BHTOON,    
               but two are one byte Y/N flags) are added to CIMSPROG,   
               and CPUMSKTM was renamed CPUCSKTM in CIMSPROG to reflect 
               that it is control region, not message region CPU time.  
               Not only did Boole provide documentation before shipment 
               of the new version, they also provided actual test data  
               for validation!!!! The major impact of IMF 2.5 is its    
               capture of DB2 resources used by IMS transactions, and   
               the ability to identify SQL activity for DB2 under IMS.  
               Note that the rename of CPUMSKTM to CPUCSKTM in CIMSPROG 
               requires you to make the same change, if you actually use
               that variable in your IMS reporting.                     
Change 06.127  Zero divide error in NETSPY because test X2='80'X in line
VMACNSPY       358 to decrement TRANSNO should be X2='.1......'B. Also  
Sep 23, 1988   this change added variable VLU (for virtual LU to applic.
               session), sets SESSMGR only for session manager to applic
               session, and no longer calculates targets if SESSMGR, as 
               targets are not only inappropriate, but data not valid.  
               It was interesting to note that NETSPY created 842 tracks
               of 121,986 SMF records, but MXG needed only 479 tracks to
               store 73,491 LU, 64691 LINE, 1935 APPL and 544 NCP obs,  
               or 40MB SMF was stored in 22MB of SAS data libraries.    
   Thanks to Gary Zolweg, National Semiconductor, USA.                  
Change 06.126  Pre-release 6.4 spelled SQAFXMX as SQAVXMX in the KEEP   
VMAC22         list for TYPE71 data set, and the second LSQAEXAV in the 
VMAC71         KEEP list for TYPE71 should be LSQAEXMX. In VMAC7072 the 
VMAC7072       variable TOTIORAT should not have been in the KEEP list  
VMAC78         (TOTIORAT was replaced by IORATE, but the name was still 
Sep 26, 1988   in the KEEP= list. Since TOTIORAT was never referenced,  
               it never existed in the data set. SAS does not validate  
               that variables in a KEEP= list actually exist (though it 
               does validate the KEEP statement) and MXG exploits this  
               ability to have a variable in the KEEP= list which is not
               kept if it is not created in the code. However, in this  
               case, that was not intended!). Also in VMAC7072, SMFTIME 
               was added to TYPE70PR data set. (I really don't think it 
               should be, since STARTIME is the analysis time stamp to  
               be used, and STARTIME+DURATM provide the ENDTIME, but as 
               SMFTIME is redundantly in TYPE70, it makes sense to keep 
               it also in TYPE70PR for consistency.) In VMAC22 dataset, 
               VMAC78, the test (to prevent divide by zero) in line 1723
               should be CHPIDTKN+PCTCUBSY; occasionally a missing value
               for PCTCUBSY resulted when it could have been calculated.
   Thanks to Roger Drabyk, Manitoba Data Services, CANADA.              
   Thanks to Siegfried Trantes, Gothaer Versicherungsbank VVAG, GERMANY.
   Thanks to Jan van Lent, Sokker, NETHERLANDS.                         
Change 06.125  CICS program compression count and duration, PCCMPRCN and
VMAC110        PCCMPRTM were in the wrong KEEP= list, and thus were not 
Sep 21, 1988   kept in CICSYSTM dataset.  Remove the two variables from 
               CICSTRAN KEEP= list and add them to CICSYSTM KEEP= list. 
               To summarize CICS variables which deal with compression: 
               CICSYSTM contains the interval count and duration of the 
               compressions (PCCMPRCN,PCCMPRTM) and the number of bytes 
               compressed (PROGCOMP) during the interval. If you want to
               know which transactions were compressed, the detail data 
               is in the CICSEXCE exception data set variables PGMCMPCN 
               and PGMCMPTM. Compression is not reported in CICSTRAN.   
               (Note however, that there could have been non-zero values
               of PCCMPRCN and PCCMPRTM in CICSTRAN before this change. 
               The values would have been wrong and were being carried  
               forward incorrectly from the prior CICSYSTM record.)     
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
   Thanks to Gary Smith, Southern California Edison, USA.               
   Thanks to Ken Thomas, Maryland Casualty Company, USA.                
Change 06.124  NPM 1.3 TNL SN25-2063 to SH20-6361 describes 5 segments  
EX028CM4       and 14 subtypes not in the original type 28 appendix. The
EX028CM5       change creates four new data sets (NPMCMDRN, NPMCMNSA,   
EX028IN8       NPMINNSA, and NPMNPTAK) and expands the documentation in 
EX028NTK       comments at the beginning of VMAC28.  MXG support for the
VMAC28         type 28 SMF record now creates 28 data sets from the 53  
Sep 21, 1988   subtypes containing from one to three of the 31 different
               data segments. The five new segments (BAN, BAS, DRN, MSA,
               and NTK) have been syntax checked, but no data for these 
               segments has yet been encountered.                       
Change 06.123  The OPERATOR variable in CICSACCT for CICS 1.7 is wrong. 
VMAC110        CICS 1.6 contained a 3-byte OPERATOR field in CICSACCT,  
Sep 20, 1988   CICSEXCE & CICSTRAN data sets. CICS 1.7 introduced a new 
               8-byte USER field, but also carries a 4-byte OPERATOR    
               field in EXCE and TRAN (but not in ACCT!). This made the 
               MXG variable OPERATOR in CICSACCT for CICS 1.7 either a  
               blank or the value from the prior CICSTRAN observation.  
               (To further complicate the matter, OPERATOR in CICSTRAN  
               and CICSEXCE does not match the first four bytes of USER;
               the fourth byte of OPERATOR is null (hex 00) but the 4th 
               byte of USER is a character! This problem was fixed for  
               CICSACCT under 1.7 by now storing USER into OPERATOR (it 
               should have been set blank since it does not exist, but  
               this way you might not have to change reports that use   
               OPERATOR from CICSACCT. For CICS 1.7, you really should  
               use USER instead of OPERATOR in all your reports.        
               With both 1.6 and 1.7, you can still change your         
               reports from OPERATOR to USER, and can insert            
                    IF SMFPSRVR LT 3 then USER=OPERATOR;                
               in MXG exit members EXCICACC, EXCICEXC and EXCICTRN      
               and therby put the 3-byte OPERATOR value from CICS 1.6   
               applications into the 8-byte USER variable.              
   Thanks to Tom Elbert, John Alden Life Insurance Co, USA.             
Change 06.122  NPM 1.3 defined multiple fields at same location in STT. 
VMAC28         Insert line 947.1   @; IF NPMSUBTY EQ 20X THEN INPUT     
Sep 20, 1988   insert line 949.1   @; ELSE IF NPMSUBTY EQ 30X THEN INPUT
               and change lines 950-951 from PIB4. to PIB2.             
               so that TOTLOVER/TOTLOSSQ are read for subtype 20x and   
               OBJPERCT/OBJCNTNR (now PIB2.) are read for subtype 30x.  
   Thanks to Bob Smith, Nissan Motors, USA.                             
Change 06.121  Incorrect test in NPM 1.3 type 28 record caused some CDS 
VMAC28         segment data to not be read for subtypes 31x thru 35x.   
Sep 14, 1988   In line 691, change LE 35 to LE 35X                      
   Thanks to Bob Smith, Nissan Motors, USA.                             
Change 06.120  Boole's IMF ARRVTIME field for a fastpath record actually
TYPECIMS       contains INPQUETM duration! (Sure glad this user found it
Sep 13, 1988   but sure wish the vendor had told me first!)             
                Insert six new lines:                                   
                IF PROGTYPE='F' THEN DO;                        428.1   
                  INPUT @113+OFFIMS INPQUETM RMFDUR4. @;        428.2   
                  ARRVTIME=STRTTIME-INPQUETM;                   428.3   
                END;                                            428.4   
                ELSE DO;                                        428.5   
                END;                                            434.1   
   Thanks to John Donoghue, Bank of Ireland, IRELAND.                   
Change 06.119  Variable PGMLODTM, "Program*Loading*Duration" was added  
TYPEIMS        in line 1007, immediately prior to STRTTIME=GUTIME       
Sep  9, 1988       PGMLODTM = GUTIME - STRTTIME ;                       
               PGMLODTM is included in the calculated INPQUETM. This    
               new variable allows identification of IMS programs with  
               a large load time (often due to poor loadlib blocksize). 
==========Changes thru 6.118 were the real 6.4 pre=release===========   
Change 06.118  The first prerelease of 6.4 was insufficiently tested.   
BUILDPDB     1.BUILDPDB line 74, remove SMFTIME from BY list for SORT   
BUILDPD3       of TYPE70PR.                                             
VMACSYNC     2.BUILDPD3 line 78, remove SMFTIME from BY list for SORT   
VMAC74          of TYPE70PR.                                            
VMAC102      3.VMACSYNC line 213, add SORTBEGN SORTEND to be LENGTH 8.  
Sep  9, 1988 4 VMAC74 line 3451 for MVS/ESA should be GE 100 instead of 
                GE 99, and line 3452 should be INPUT DASDRCFG instead of
                INPUT @LENDDSS+84 DASDRCFG.                             
              5.VMAC102  insert new line after 440:                     
                   LENGTH QWHSSTCK 8;                                   
   Thanks to Dave Greene, Kwasha Lipton, USA.                           
   Thanks to John Thai, Health Insurance Commission, AUSTRALIA.         
========Changes thru 6.117 were a limited pre=release of 6.4=========   
Change 06.117  The PR/SM data set TYPE70PR is now created by default in 
BUILDPDB       both BUILDPDB (JES2) and BUILDPD3 (JES3) PDB libraries.  
BUILDPD3       Non-zero observations will exist only if PR/SM data is   
RMFINTRV       found in your SMF data. (There is essentialy no cost to  
TYPE7072       SAS to build a zero observation data set.) In addition,  
Sep  6, 1988   the variable PARTNCPU (the number of physical processors 
               available to this partition) has been added to data sets 
               TYPE70 and TYPE70PR data sets (both in TYPE member code  
               and in the PDB and RMFINTRV built data sets).            
   Thanks to George Scott, Rockwell International Corporation, USA.     
Change 06.116  IMS log record processing has been completely redesigned 
IMACIMS        to capture actual transaction response. Prior MXG logic  
TYPEIMS        created an observation for each program schedule event,  
VMACIMS        even though many transactions may have been processed    
               (each with its own response time) by a single schedule.  
Sep  6, 1988   This complete re-design recognizes individual transactns 
               and calculates individual responses. Since there still is
               only one 07 log record with CPU and DL/I counts, they are
               averaged across the multiple transactions per schedule.  
               Pete tested with IMS 2.1. IMS 2.2 log changes were then  
               put in, and tested with independent 2.1 and 2.2 data from
               two sites with IMF data for comparison. Log processing   
               will never be as accurate as Boole's IMF monitor data,   
               (IMS log time stamps are only to .1 sec), but this new   
               design matches transaction counting exactly and appears  
               to accurately capture IMS response time nearly as well   
               as does IMF. In addition, Pete found excellent match to  
               NETSPY measured response time in his production world.   
               As this is a major re-design, check it out for yourself  
               and call us for any new info from other MXG users as the 
               re-design becomes more widely distributed in MXG 6.4.    
               Note that the 6.3 code (which supported IMS 2.2 with the 
               old algorithms) was copied into the Z....... members just
               in case you want to compare.                             
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 06.115  EXPLORE/VM (a product of Goal Systems) data is processed 
IMACVMXP       with this contributed enhancement.  Comments in TYPEVMXP 
TYPEVMXP       discuss how to invoke this code to read the EXPLORE DD   
VMACVMXP       and create the six VMXP.... data sets. This code has not 
Sep  1, 1988   been validated with data in Dallas, but it has been in   
               use for some time by its author.                         
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 06.114  An additional daily report from VM SP monitor data is now
ANALVMDY       in member ANALVMDY which is included by EXECDALY.        
Aug 24, 1988                                                            
   Thanks to Steve Glick, Southern Methodist University, USA.           
Change 06.113  The average Definite Response AVGDRSP is now calculate in
VMAC28         appropriate NPM data sets (along with AVGHOST, AVGNETW   
Aug 24, 1988   and AVGOPER previous calculations).                      
   Thanks to Ron Clark, Chemical Bank, USA.                             
Change 06.112  The DOS POWER Account Version default was externalized in
IMACDOS        new member IMACDOS. The default now expectes DOS VSE SP2 
TYPEDOS        Release 1.3 or later format data.  Comments in IMACDOS   
Aug 22, 1988   describe how to change to process earlier version data.  
   Thanks to Dick Whiting, Precision Castparts, USA.                    
   Thanks to Bruce Groeber, City Federal Savings, USA.                  
Change 06.111  Continued validation and documentation expansion enhanced
VMACVMXA       the VM/XA monitor support. Protection to delete duplicate
Aug 30, 1988   data was added. The VXIODDEV data set now contains an obs
               only if there was activity to the I/O device during the  
               interval.  The NODUP option was added to delete duplicate
               input data records (which can happen if MONWRITE outputs 
               are repetitively concatenated). If MONWRITE fills a mini 
               disk, data blocks are lost. Concatenation of that file to
               later MONWRITE output caused the new control interval    
               record to be swallowed as if it were the missing data    
               blocks! MXG now looks for and corrects this situation.   
               Twenty-eight reports are now created (by default with the
               _VMRPT or nnth with _VMRPTnn invocation) from VMXAINTV.  
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 06.110  This JCL example was less than clear, as it contained the
JCLPDB         SOURCE option twice. It is now clearer.                  
Aug 22, 1988                                                            
   Thanks to John Kenworthy, Naval Military Personnel Command, USA.     
Change 06.109  The GMT offset added to EPILOG CL 1000 V430 records is   
VMACEPIL       now decoded correctly and is added to the record times to
Aug 12, 1988   produce local time-of-day timestamps in MXG data set.    
Change 06.108  The ACCOUNT data set (which contains PDB.JOBS variables  
BUILDPDB       that are to be "back-merged" into PDB.PRINT and PDB.STEPS
BUILDPD3       is no longer deleted by BUILDPDB, making it available for
Aug 10, 1988   your own use, if needed, following BUILDPDB logic.       
Change 06.107  Correct a syntax error (period should be semicolon) and  
WEEKBLD        eliminate the non-existent PRENTIME variable in the BY   
Aug 10, 1988   list for PDB.PRINT.                                      
   Thanks to Paul Bergman, Prudential, USA.                             
Change 06.106  VM/XA SP1 data from several sites has been used to update
VMACVMXA       processing logic. The VXBYUSR user interval data is now  
Aug 10, 1988   built from VXUSEACT and VXUSEINT data sets with logic to 
               recognize new sessions unambiguously eliminating negative
               deaccumulations in the user data. (Negative delta values 
               were due to either insufficient delta logic or from two  
               byte counters which wrapped.) With additonal test data,  
               it has been possible to validate which fields really are 
               accumulated and additional variables are now correctly   
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
   Thanks to Vic Fadool, Health Net Corporation, USA.                   
   Thanks to Julie Roland, IBM Kingston, USA.                           
Change 06.105  MXG has been tested under SAS Release 5.18 and there are 
EXITMONI       three problems which induced MXG circumventions:         
GRAFRMFI     a.The EXITMONI member which assembles the TMON INFILE exit 
IMACPDB        (decompression algorithm for Landmark's CICS data) must  
Aug 12, 1988   be re-assembled, using the SAS 5.18 macro libraries. The 
               internal filetable used by the SAS ASM macros increased  
               by 16 bytes.  You cannot use the load members built with 
               5.16 macros under SAS 5.18, and the load members built   
               with the 5.18 macros cannot be used under SAS 5.16! You  
               can link the load modules into your SAS load library, or 
               keep two separate load libraries for the exit.  The MXG  
               instructions for EXITMONI are on pages 59-60 of the MXG  
               Supplement, but only the BMACLIB library (file 22 on the 
               SAS distribution tape, unloaded by JCL in BTSOSRC in the 
               SAS JCL control library) is now required for the exit.   
             b.The KILL with PROTECT= option of PROC DATASETS no longer 
               works in SAS 5.18 (it was an un-documented feature - see 
               SAS User's Guide page 877.) Unless you have enabled the  
               PROTECT= feature (by removing comments in IMACPDB), SAS  
               5.18 has no problem.  The change to PROC DATASETS removed
               KILL and now requires a DELETE statement naming each data
               set with PROTECT= to be deleted. Member IMACPDB now has  
               the necessary explicit PROC DATASETS code for those who  
               have chosen to protect their PDB data sets. In addition, 
               the (PROTECT=ZZZZZ) string has been externalized into a  
               new macro _PROTECT defined in IMACPDB so that you can go 
               either way easier.                                       
                  If I had to do it over, I would never have used the   
                  PROTECT= option in BUILDPDB. Protection was a holdover
                  from the days when SAS data sets were members of PDSs 
                  and it helped avoid B37 abends and PDS dead space. If 
                  I could I would make no-protect the default in MXG now
                  but that would require all existing sites to either   
                  scratch and re-allocate each PDB data set or to run a 
                  separate PROC DATASETS (from IMACPDB).set. So to avoid
                  the un-necessary work and exposure, PROTECT= will be  
                  unchanged in future versions. PDB data sets now with  
                  it still have it and no new protected data sets will  
                  be created. Furthermore, IMACPDB lets you override any
                  way you want it. The following PDB data sets have been
                  and will continue to be built with PROTECT=ZZZZZ:     
                   PRINT    SMFINTRV STEPS    TAPES                     
                   TYPE70   TYPE71   TYPE72   TYPE73   TYPE73L  TYPE73P 
                   TYPE74   TYPE75   TYPE78   TYPE78CF TYPE78CU TYPE78IO
                   TYPE78PA TYPE78SP TYPE78VS                           
             c.PROC GPLOT now sets an error condition if all values of a
               variable are missing on a plot page. In 5.16 only a note 
               was printed. (Note this change was not made to the GCHART
               CHART or PLOT procedures!)  This has caused GRAFRMFI from
               MXG 5.5 to ABEND if ERRORABEND is specified. SAS now has 
               a ZAP which restores GPLOT to its former self (the fix is
               ZAP Z518.5694). The option NOERRORABEND has been added   
               to GRAFRMFI in case you have not installed that zap. In  
               addition, an unrelated, obscure logic error in the macro 
               logic in GRAFRMFI was uncovered and corrected.           
             d.GRAFRMFI exploited the GROUP statement so you could get  
               groups of graphs in batch (interactively, you simply     
               flag each graph to be grouped by PROC GREPLAY.) Changes  
               to the Graphic catalog in 5.18 and the lack of a way to  
               define "group" when building graphs has invalidated the  
               use of GROUP in GRAFRMFI.                                
---Changes through 6.104 completed the 7/27/88 2nd prerelease of 6.3--  
Change 06.104  Pre-release VMXA code was not prepared to handle multiple
VMACVMXA       "packets" of VM/XA monitor data from multiple monitor    
Jul 26, 1988   sessions in one input file. Major changes were made to   
               the MXG logic to recognize the start of a new monitor    
               session in the de-accumulation logic. The data sets that 
               create the VMXAINTV consolidated interval data set have  
               been much more extensively validated, although there are 
               already twelve known problem areas under discussion with 
               IBM that I believe are problems in data  (for example,   
               the Schedule records don't contain a processor address,  
               so it is impossible to validate them for guests which    
               allocate two or more virtual machines). VMXAINTV and the 
               sample data sets from which it is built seem to be okay. 
               However, VXIODDEV, VXSTOASP, VXUSEITE and all VXSCL...   
               data sets have occasional negative values as minimum,    
               and are under active investigation. Because VMXAINTV is  
               believed to be valid and useful, this tape was created.  
Change 06.103  DB2 trace type 102 SMF record (new in 6.3) was not fully 
ANALDB2R       tested, causing FORMAT NOT FOUND errors.                 
FORMATS        RENAME IMACDB2T to IMAC102.                              
IMACDB2T       In member FORMATS change all occurrences of:             
IMAC102           $MGDZDBC. to $MGD106C.                                
IMAC102A           MGDZPID. to  MGD106I.                                
IMAC102B       In member VMAC102 change all occurrences of:             
TYPE102            MG106I.  to  MGD106I.                                
TYPE102A       In members ANALDB2R, IMAC102 (after RENAME), TYPE102 and 
TYPE102B       VMAC102 change all occurrences of IMACDB2T to IMAC102.   
VMAC102        As documented in IMAC102, there are too many iterative DO
Jul 22, 1988   statements to build all T102.... data sets concurrently. 
               Members IMAC102A, IMAC102B, TYPE102A and TYPE102B create 
               half each and are used in JCLTEST and JCLUXREF for MXG   
               testing and to create DOCVER entries now.                
   Thanks to Scott Peterson, Southern California Edison, USA.           
Change 06.102  ROSCOE 5.5 RTM response time data could be missing if the
ANALROSC       SMF data was dumped after ROSCOE started. Change line 254
Jul 21, 1988   START=0; to read START=ROSTIME; to fix.                  
   Thanks to Mike Doyle, Purdue University, USA.                        
Change 06.101  Member AAAAAAAA is a copy of member COPYRITE which will  
AAAAAAAA       be seen first if the MXG Source distribution library is  
Jul 21, 1988   scanned (since that IEBUPDTE format is alphabetic). This 
               will simply make it clear what you've got.               
Change 06.100  ACF2 sometimes contains ACTMFCBT data which is over 400  
VMACACF2       bytes long, but MXG failed to protect, causing STOPOVER. 
Jul 19, 1988   Find the line INPUT ACTMFCBX $VARYING200. ACTLTH @;      
               and change it to  IF ACTLTH GT 0 THEN INPUT +ACTLTH @;   
               to skip over the excess data.                            
   Thanks to Larry Cecil, First National Bank of Chicago, USA.          
-------Changes through 6.099 completed the First pre-release of 6.3 -   
Change 06.099  Bulk Data Transfer (BDT) variable SMF59NDT in line 184   
VMAC59         is TODSTAMP8., not SMFSTAMP8 (although all other BDT     
Jul 16, 1988   time stamps are SMF format!)                             
   Thanks to Paul Walker, IBM, USA.                                     
Change 06.098  Apparently a new release of NLDM has changed the size of 
VMAC39         the accounting section. VERSNLDM was 000Dx, LENACCT=52.  
Jul 16, 1988   Now VERSNLDM is 0014x, LENACCT=50, NLDMRSV1 removed!     
               On line 301 add @; after REVISION PIB2., replace 302:    
                   IF LENACCT EQ 52 THEN INPUT NLDMRSV1 PIB2. @;        
               and add INPUT to beginning of line 303.                  
   Thanks to Paul Walker, IBM, USA.                                     
Change 06.097  NETSPY variables ARSPNET, T1RSPPC-T4RSPPC and OVRSPPC    
VMACNSPY       were sometimes "retained" into the next observation due  
Jul 15, 1988   to lack of re-initialization. Now re-initialized.        
   Thanks to MP Welch, Sisters of Charity of the Incarnate Word, USA.   
Change 06.096  Landmark's MONITOR data sets now have individual macro   
EXITMONI       names defined in IMACMONI which control the destination  
EXMONDBD       DDNAME to which the four data sets (MONISYST, MONIDBDS,  
EXMONSYS       MONITASK, and MONIUSER) are written, permitting the high 
EXMONTSK       volume data sets to be written directly to tape. The     
EXMONUSR       default DDNAMEs, WORK, were not changed. In the JCL for  
IMACMONI       the TMON exit installation (in EXITMONI), the DDNAME of  
Jul 15, 1988   SYSGO should have been SYSLIN.                           
   Thanks to Robert Manalo, EDS, USA.                                   
Change 06.095  VM/XA SP1 data validation corrected several values and   
VMACVMXA       formats in the detail data sets. More important, this    
Jul 12, 1988   change adds the VMXAINTV data set creation. This is the  
               consolidated interval data from the sample data from the 
               system, storage, processor and user domains. With about  
               228 variables per time interval, it will be the primary  
               source of VM/XA analysis, yet it holds 24 hours of half  
               hourly intervals in 1 track!  Read comments in VMACVMXA. 
               Only simple sample reports are created now, but you can  
               expect more in the next pre-release. VMXAINTV should be  
               the primary data for investigation of VM/XA response,    
               resource utilization, etc. Note that the new response    
               measures provided are the average time and count of both 
               trivial and non-trivial interactions and are recorded in 
               two separate categories, UP and MP. CMS response will be 
               in the UP variables, while the MP variables contain the  
               response for MVS guests (or any other guest machines that
               define more than one virtual CPU). Variables CALMP... and
               CALUP... contain response information. CPU utilizations  
               are also calculated (PCT.....) to reflect overall CPU and
               system versus user CPU utilization of all engines.       
               An unrealistically large test run (ALL possible records  
               from 60 intervals with 1500 active users from a 3090-600 
               created 100 MB of raw monitor data. MXG created all data 
               sets and all possible variables in 369 3090-600 CPU secs 
               and used 82 MB of 3380 DASD space. The VMXAINTV data set 
               was only 2 tracks! A smaller test sample (only 7 MB of   
               raw data) used 11 MB 3380 DASD and 55 3090 CPU seconds   
               to create all possible variables in all possible datasets
Change 06.094  NPMSLHTM should be input as PIB4.1 vice PIB4.2 to be     
VMAC28         consistent with NPM 1.2 internal value, although this is 
Jul 12, 1988   not documented by IBM and has not been fully confirmed.  
   Thanks to Henry Solomon, Merrill Lynch, USA.                         
Change 06.093  DOS variable LINES in keep list should have been LINEPRT.
Jul 12, 1988                                                            
   Thanks to Jim Groseman, Duquesne Systems, USA.                       
Change 06.092  Support for NETSPY Release 3.1 added variables CCUNAME,  
VMACNSPY       LINENAME, and NETWADDR to the NSPYLU data set, along with
Jul 12, 1988   $MGNSPXD format addition and TRANSNO alteration based on 
               new flag bytes.                                          
Change 06.091  Support for EPILOG 1000 (CICS) Version 4.30 added the GMT
IMACEPIL       offset variable CIGMTOFF. Candle took our suggestion and 
VMACEPIL       created an INFILE exit named EPILOC that decompresses the
Jul 15, 1988   EPILOG CICS data. (Candle provides the documentation, the
               ZAPs to SAS and the two load modules to be installed.)   
               Note that exit load moudules can be concatenated behind  
               STEPLIB or SASLIB libraries. After you install the exit, 
               you must then change the INFILE statement in MXG member  
               IMACEPIL (to add EPILOGC as described therein) to tell   
               MXG the exit exists.                                     
Change 06.090  Still more undocumented treats from NPM 1.3.  Line 1268  
VMAC28         added test for NPDSUBTY EQ 041X to set AOFTYPE='NAD' to  
Jul 11, 1988   read undocumented NAD(S) data and eliminate reams of     
               'AOF DNC-SESSION END' notes on MXG SAS log.              
   Thanks to Paula Lamphear, The Strohs Brewery, USA.                   
Change 06.089  NETSPY cluster and luname were not read for subtypes 10, 
VMACNSPY       11, 20, 21, and 43 (hex). Line 412's ELSE IF statement   
Jul  8, 1988   was expanded to add these additional five subtypes. Also 
               SECONDARY is now correctly spelled in line 179.          
   Thanks to Rodney L. Reisch, General Electric Silicon Products, USA.  
Change 06.088  IMS 2.2 changes the location of the DEST field in IMS log
VMACIMS        records type 35 and 36, as discovered by this MXG user.  
Jun 29, 1988   The associated INPUTs are now conditional on the version 
               value (defined by you in member IMACIMS macro _IMSVERS). 
   Thanks to U. Guenschman, GEZ, Cologne, GERMANY.                      
Change 06.087  The MONITOR from Landmark accumulated CICS system data in
TYPEMONI       MONISYST data set, which is deaccumulated into the actual
Jun 29, 1988   interval values by the ANALMON logic. This logic fails if
               multiple CICS system's data was dumped (individually) and
               then concatenated as input to MXG, because there is no   
               flag in the Landmark data to indicate a monitor startup. 
               This contributed change replaces the existing ANALMON and
               heuristically detects a change in system to correctly    
               deaccumulate multiple-systems MONITOR data. (Note that   
               the original ANALMON macro still exists in TYPEMONI, but 
               the new macro (with the same name) is redefined after the
               original definition. SAS uses the last macro definition  
   Thanks to John Leath, Fleet Information Inc, USA.                    
Change 06.086  The SORT order of the PDB.PRINT data set was incorrect in
MONTHBLD       both MONTHBLD and WEEKBLD and in the PDB.PRINT section of
WEEKBLD        Chapter 40 of the MXG Supplement. The actual order is:   
               Only one run at one site actually had an error, but the  
               correct sort order is now used in these two members.     
   Thanks to Jim Bentley, US National Bank, USA.                        
Change 06.085  The IDMS Performance Monitor data has been enhanced   and
TYPERTEJ       further compared with the Cullinet reports. Their reports
VMACRTE        are wrong. Their "Start Time" is actually the End of the 
Jun 29, 1988   interval. Many report fields are 4 or 5 print positions; 
               Cullinet truncates the high order characters, which made 
               30652 Storage Gets (MXG value) print as only 652! Labels 
               for PGMOVLU, PGMOVLIU, and PGMOVLNU were changed after a 
               phone call to Cullinet corrected the documentation. The  
               storage and program pool sizes in their reports may be   
               wrong. the data (and hence MXG values) are pages, yet it 
               seems they have 4K pages and 1/2K pages in their reports.
               However, not only Cullinet made mistakes. The label for  
               ARAFNAME is now FILE, not FIELD, and variable IHDRCVN,   
               the Central Version Number, was added to all IDMS data   
               sets (to separate different IDMS regions internally).    
               Finally, for IDMS journal (rather than SMF recording),   
               RTLHDRST should have been RT1HDRST in TYPERTEJ.          
   Thanks to Dick Whiting, Precision Castparts, USA.                    
Change 06.084  Offsets for the EXD data in the SAR SMF record (which is 
IMACEXD        either type 6 or a user record) were low by 2. Offsets   
Jun 29, 1988   are now 91, 103, 111, 121.                               
   Thanks to Cathy Hellums, U.S. Sprint, USA.                           
Change 06.083  Sample Turnaround report failed if job had not actually  
ANALTURN       terminated. IF SUBSTR(INBITS,3,1)='J'; test was added to 
Jun 29, 1988   keep only jobs which had a 30 subtype 5 term record.     
   Thanks to Cathy Hellums, U.S. Sprint, USA.                           
Change 06.082  Sample NETSPY reports raised SORT order error. SMFTIME in
ANALNSPY       the SORT BY statements should have been DATE, to agree   
Jun 29, 1988   with the PROC PRINT BY statements.                       
   Thanks to Rick M. Odegard, Kimberly-Clark, USA.                      
Change 06.081  Inclusion of STOPX37 record processing in BUILDPDB/3     
VMACX37        caused a SAS 353 error about arrays if the _CDEX37 entry 
Jun 28, 1988   in PDB exit EXPDBCDE was not the last _CDE.... entry.    
               The semi-colon at the end of the (KEEP= ...) statement in
               VMACX37 should not have been there, was the culprit, and 
               no longer exists.                                        
   Thanks to Paula Lamphear, The Strohs Brewery, USA.                   
Change 06.080  Decoding of CICS variable UOWID into its actual time     
TYPEMONI       stamp variable UOWTIME (Change 6.016) was revised when   
VMAC110        yet another undocumented timestamp format was found. The 
Jun 28, 1988   non-fatal "INVALID DATA FOR INPUT FUNCTION" note and the 
               hex dump of the record resulted, setting UOWTIME missing.
               Multiple Region Option (MRO) CICS environments should    
               find that the combination of NETSNAME UOWTIME is constant
               for the same transaction across the CICS regions (TOR,   
               AOR, FOR) for the same "Unit of Work". While the MXG     
               UOWTIME is constant, the 8-byte UOWID variable will only 
               be constant in the first six bytes; the last two bytes of
               UOWID increment at SYNC points.  This revised algorithm  
               now checks times for valid format, rather than trying to 
               guess where the time stamp should be! The change applies 
               to both IBM CMF type 110 and Landmark's Monitor data.    
   Thanks to Daniel Engstrom, Continuum, USA.                           
Change 06.079  Continued DB2 enhancements in testing:                   
ANALDB2R    1. ANALDB2R enhanced with additional DB2PM report from 100. 
IMACDB2T    2. Preliminary testing of SMF type 102 DB2 Trace record is  
TYPE102        provided by this MAJOR contribution from this user. Many 
VMAC102        new T102Snnn data sets are created by TYPE102, which uses
Jun 10, 1988    the macros defined in VMAC102 that are re-defined and   
               controlled (to select desired trace CLASS) in IMACDB2T.  
               Not all of the subtypes coded herein have been validated.
   Thanks to Scott Peterson, Southern California Edison, USA.           
Change 06.078  VM/XA validation continues.                              
VMACVMXA     1.SYSZONE is added to MRHDRTOD and all TODSTAMP8. variables
Jun 15, 1988   to convert GMT to local time in all MXG datetime stamps. 
              2.DM=3 RC=9 code SKIP+48 in line 2972 vice SKIP+40.       
              3.USEINT divide by HF counts protected for zero divide.   
              4.CALMPNTC respelled as CALMPNCT. (July 5, 1988).         
Change 06.077  MVS 2.2 uses JFCRSV38 bit (JFCDSEQN, data set sequence   
VMAC1415       number was coded on label parameter) which was a reserved
Jun  7, 1988   bit in the field decoded in to variable LABEL. This fix  
               tests bit values rather than hex byte value, so that the 
               variable LABEL is corrected.                             
   Thanks to Howard R. Stenzel, Financial Data Products, Inc, USA.      
Change 06.076  DB2 Version/Release QWHSRELN is PK1.1 vice PIB1., and no 
VMACDB2         /16 operation (four places). QWHSRELN will now contain a
Jun  7, 1988   value of 1.2, 1.3, etc.                                  
   Thanks to Scott Peterson, Southern California Edison, USA.           
Change 06.075  The user type 'C0' VM/Account record created for RSCS is 
TYPEVM         decoded into the new VMRSCS data set, due to this user   
EXVMRSCS       provided enhancement. Also, tape attach records with zero
Jun  7, 1988   connect time from CA's DYNAMCMS are no longer OUTPUT.    
   Thanks to Dick Whiting, Precision Castparts, USA.                    
Change 06.074  Several changes from one user:                           
FORMATS:     1.3240 should have been 3420 (VM Tape format)              
TYPERTEJ:    1.SYSTEM $CHAR4. added to FORMAT statement.                
             2.After line 18,  IF LGRTYPE NE 6 THEN DELETE: added.      
Jun  7, 1988                                                            
   Thanks to Dick Whiting, Precision Castparts, USA.                    
Change 06.073  Calculation of CU602LEN should have set values of 9, 10, 
VMACVMON       or 11. Cause last device to be lost from data set.       
Jun  7, 1988                                                            
   Thanks to Rachel Billington, British Telecom, ENGLAND.               
   Thanks to Dick Whiting, Precision Castparts, USA.                    
Change 06.072  More IMS cleanup:                                        
ANALDB2R     1.IF SXNUM GT should be IF SXNUM GE.                       
               IMSRECNO added to DROP= list.                            
JCLUXREF     1.Comments improved, VERS5 changed to VERS.                
TYPEIMS      1.Move INCONT,LOGONID,MSGLEN and ORGENT initializations to 
               before their respective conditional assignment.          
             2.M014 should be M0114 at line 468 (made MSGSZIN wrong).   
             3.NODENAME added to RETAIN at line 766.                    
VMACIMS      1.COMPCODE is now a $CHAR4. formatted $HEX8. The last byte 
               was lost when it was stored as a four byte numeric. (SAS 
               needs one byte for exponent if the field is numeric).    
Jun  7, 1988                                                            
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 06.071  NPM 1.3 type 28 record Stop Collection (Subtype=2) record
VMAC28         has a shorter PMC section, causing STOPOVER. At line 825,
Jun  7, 1988   conditionally INPUT NPMDATA thru NPMUPPER IF LENTOF GE 34
   Thanks to Barry Pieper, FBS Info Services, USA.                      
Change 06.070  Now LRECL=32760 is specified for input SMF file. The old 
VMACSMF        value of 32756 solved a problem introduced with SAM/E and
Jun  7, 1988   documented at that time; somewhere in the intervening 10 
               years, IBM lifted the constraint and now the correct SMF 
               LRECL=32760 is required (LRECL=32756 causes a STOPOVER   
               condition if data is really LRECL=32760).                
   Thanks to J. Cary Jones, Philip Morris, USA.                         
Change 06.069  Variable TYPEIOML in data sets TYPE75 and TYPE77 now is  
VMAC75         updated to recognize 309x processors; it is not used in  
VMAC77         MXG and this change should have little visible impact.   
Jun  7, 1988                                                            
   Thanks to Richard Evans, Mervyn's, USA.                              
Change 06.068  RMF 3.5 support for PR/SM and other MVS 2.2 changes that 
EXTY70PR       related to expanded JESNR range to 99,999 were added.    
VMAC26J2     1.Support for 99999 JESNR from JBID added to VMAC26J2 and  
VMAC26J3       VMAC26J3 for JES2 and JES3 purge records.                
VMAC30       2.Support for 99999 JESNR from JBID added to VMAC6 for PSF,
VMAC434        JES2, JES3, and EXTWTR type 6 records. The OUTPUT for the
VMAC6          EXTWTR was relocated to follow the creation of JESNR.    
VMAC7072     3.Support for 99999 JESNR and revision of TYPETASK decode  
VMAC71         (still $CHAR4 long, but fourth position will be blank for
VMAC74         99999 JESNR in all type 30 data sets.                    
Jun  2, 1988 4.New variable TERMNAME (Terminal Symbolic Name) created in
               all type 30, type 4 and type 34 data sets.               
             5.New variable DSSIZHWM (Data Space Storage, highwater mark
               used during the step) only in TYPE30_4 data set.         
             6.New documentation notes for TYPE30_4, PDB.STEPS, etc:    
               IOTMTOTL: For a DIV object, this includes the IO connect 
                         time for READs, WRITEs and REREADs. This I/O . 
                         connect time for DIV objects is only captured  
                         for the address space, and not by DDNAME.      
               IOTMTODD: The connect time from each DDNAME does not     
                         include DIV connect time, but a DDNAME for DIV 
                         could record connect time if it were accessed  
                         with a VSAM utility.                           
               IOTMNODD: Will now include the DIV I/O connect time (i.e.
                         NOT captured at the DD level is in NODD vars.) 
             7.Support for PR/SM hardware and RMF PTFs in VMAC7072 with 
               new member EXTY70PR.                                     
               a. New data set TYPE70PR created, one obs for each LCPU  
                  (Logical processor) in each LPAR (Logical partition). 
                  This PR/SM data set reports on all defined partitions 
                  and is the only source of total hardware CPU active.  
               b. PR/SM changes how TYPE70 captures CPU wait and busy.  
                  Read the Partition Data Report field descriptions in  
                  the RMF User's Guide. The variables CPUWAITM/PCTCPUBY 
                  (and the individual CPU 0-8 values) are recalculated  
                  by this change from the PR/SM data sections for the   
                  LPAR this MVS is executing in. TYPE70 data under the  
                  PR/SM hardware now only reports this MVS's usage, and 
                  no longer reports total (real) hardware CPU active.   
                  Summing TYPE70PR variable LCPUPDTM by STARTIME will   
                  provide total (real) hardware CPU activity during the 
                  interval by ALL partitions.                           
               c. TYPE72 variable ACTFRMTM is the resident page-seconds 
                  sum of Central Store (CS) and Expanded Store (ES). The
                  ratio of ACTFRMTM/RESIDTM is the average total number 
                  of pages (frames) in CS+ES for this performance group 
                  period. TYPE72 variable PGPAGEIN is the number of page
                  ins in this performance group period.                 
             8.Additional Paging data in TYPE71 supported. New variables
               EXTREADS, SQARE.., SQAEX.., LPAEX.., CSAEX.., LSQARE..,  
               LSQAEX.. and REGSEX.. added.                             
             9.Additonal SMS data in TYPE74 supported. New variables are
               DASDRCFG & STORGRUP, and AVDSOPEN in RMF 3.5.0+ contains 
               count of allocations, rather than data sets open.        
Change 06.067  This member lists all %INCLUDES for each MXG member. It  
DOCINCLD       is now automatically created from each new MXG version by
Jun  2, 1988   a smart SAS program.                                     
Change 06.066  The MXG FMXGUCBL SAS function which dynamically allocates
FMXGUCB7       all online DASD for VTOC processing was for MVS/XA only. 
Jun  2, 1988   This new member provides the same function under MVS/370.
   Thanks to ???, ???, AUSTRALIA.                                       
Change 06.065  STOPX37 Product Release 3.2 is now supported. Record was 
VMACX37        completely reordered but essentially the same variables  
Jun  2, 1988   exist.                                                   
-------Changes through 6.064 completed the Pre-release MXG 6.2-------   
Change 06.064  STOPX37 product changed SMF record format. Temp fix to   
VMACX37        avoid STOPOVER ABEND was added, but does not support the 
May  2, 1988   new format in their Release 3.2, which will be in the    
               next pre-release of MXG.                                 
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 06.063  Final beta tests of 6.2-minus uncovered these errors:    
TYPEIMS       -MSGSZOUT spelled once in error as MSGSZOU.               
EXIMSOUT      -TRANCLAS spelled in error as TRANCLS.                    
JCLUXREF      -Unnecessary PROC COPY removed from TESTUSER step and 2nd 
Apr 27, 1988   DCLOG DD DUMMY was supposed to be EPILOG DD DUMMY (slow  
               response after SPF replicate subcommand caused error).   
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 06.062  Support for VM/XA SP 1 accounting card data (described in
TYPEVM         SC23-0353, pages 126-128). Only the VMSESSN, VMDEVICE and
Apr 27, 1988   VMUSRDAT datasets are created by VM/XA. Data set VMDEVICE
               variables DEVICECL, DEVICETY, MODEL, & FEATURE are now   
               reserved fields! Two new variables for vector CPU time,  
               VECVITM and VECVIRTM, are created for VM/XA and VM/SP    
               account cards. The card format is essentially the same as
               VM/SP so this member now supports VM/SP or VM/XA records.
Change 06.061  Variables LPAPGMN,MX,AV, CSAPGMN,MX,AV, and PRVPGMN,MX,AV
VMAC71         in TYPE71 are correct, but their label was "PAGEABLE" and
Apr 27, 1988   is now "TOTAL". Page 410 of the MXG Supplement is correct
               (except for the mispelling of private as privage!) which 
               corrects page 706 in the MXG Guide! Change 4.34 made the 
               values correct, but overlooked the change in labels.     
   Thanks to Roger Crabb, British Telecom Red Lion Square, ENGLAND.     
Change 06.060  -Variable NPMLOST should have been PIB4. vice $CHAR8.    
VMAC28        -For all date fields INPUT with PD4 format were protected 
Apr 27, 1988   from a null (hex zeros) value causing INVALID DATA by the
               addition of ?? between variable and PD4. (which causes   
               the value to be set missing without the hex dump and the 
               error message). Nulls were found for OGNSDATE & OGNEDATE.
              -LDRTIME is reported always zero, IBM suggested UY18442 is
               the fix, but that is in doubt and unconfirmed.           
   Thanks to Barry Pieper, FBS Informations Services, USA.              
   Thanks to Craig Feistner, CITICORP South Dakota, USA.                
Change 06.059  Variable DOWNTM in TYPE0 data set was sometimes set to   
VMACSMF        missing when it could have been calculated, because the  
Apr 27, 1988   PREVSYS and PREVTIME temporary variables in this member  
               were not RETAINed. They are now.                         
   Thanks to Mike Heffler, Department of Defense, Ft Meade, MD, USA.    
Change 06.058  Beta test of VM/XA SP 1 Monitor Records completed. See   
DOCVER         the sparce documentation in comments in VMACVMXA and     
EXdddrrr       examine the structure of the _TESTVM macro to see the    
FORMATS        slight changes in overall MXG structure necessary to     
IMACVMXA       accomodate the need to de-accumulate. Instead of the     
UTILGEVX       _VAR.... and _CDE.... MXG macro names, the _Vdddrrr and  
UTILVB          _Cdddrrr MXG VM/XA macros descrive the VXdddrrr data set
VMACVMXA       created from Monitor Domain ddd and Record rrr records.  
Apr 27, 1988   Seventy-five MXG SAS data sets are created with 1393     
               variables. Member DOCVER documents these MXG data sets.  
   In the author's opinion, this is the best MXG code ever written!     
   But that's not surprising with the good documentation and SAS,       
   and especially since the choice of IBM field names were              
   sufficiently "human-engineered" and self-consistent that I chose     
   to use them as the MXG variable name. This will completely avoid     
   the past difficulty of multiple names for the same field (such as    
   the CP, MON, and VM MAP triplets for identical fields). The          
   design left 5 positions for a reasonably un-cryptic name, and        
   wise person(s) picked good, usable and understandable names.         
   IBM Kingston: Thanks, you really did this one right!                 
========Changes thru 6.057 were printed in NEWSLETTER TWELVE==========  
========Changes thru 6.057 were printed in NEWSLETTER TWELVE=========== 
Change 06.057  New exit IMAC434D was added to support modeling from     
IMAC434D       type 4, 34, and 40 records. Since BUILDPDB only uses     
VMACEXCP       type 30 records, this should not be important to many,   
               but it was added upon request for consistency with the   
               IMAC30DD similar-purpose exit for type 30 SMF records.   
Apr  7, 1988                                                            
   Thanks to Andrea Glaser, Performance Systems, Inc, USA.              
Change 06.056  Complete internal rewrite of db2pm-like reports as new   
ANALDB2R       style macro, which supports reporting for multiple db2   
               systems, with a brand new report, is described in the    
         comments in this revised member. more still to come.           
Apr  6, 1988                                                            
Change 06.055  $AVRS (SYSOUT Accumulation and Viewing System), Confident
IMACSAVR       Software, Inc, creates a user SMF record which is now    
TYPESAVR       supported. You specify the SMF TYPE in IMACSAVR.         
Apr  4, 1988                                                            
   Thanks to Vern F. Berkquist, Bradford Exchange, USA.                 
Change 06.054  Landmark's CICS code was not updated for decoding of new 
Apr  2, 1988   message (simply setting UOWTIME missing and continued).  
               Change 6.016 should have been made to Landmark as well.  
   Thanks to Bill Border, Apollo Computer, USA.                         
Change 06.053  -IMS Log processing with MXG now really matches DFSILTA0 
EXIMSOUT       counting of transactions! This supplements the comments  
IMACIMS        in Change 6.22. Lots of additional research by Pete shows
TYPEIMS        that the "minor glitches" turned out to be "page scrolls"
VMACIMS        (PA1 key, or retrieval of multiple screens) which MXG put
your IMSJCL    in the MSGONLY data set. Pete has added new algorithms in
Apr  1, 1988   EXIMSOUT which recognizes and moves them from MSGONLY to 
               the IMSTRANS data set. With this change, MXG now matches 
               exactly to 99.5% of IBM's DFSILTA0 program (which ,may be
               the culprit, since it doesn't start counting transactions
               until an IMS checkpoint record is found, while MXG begins
               with the first record on the IMS log.)                   
              -You must add a new DDNAME to the JCL which uses TYPEIMS  
               (this has been done to step TESTOTHR in JCLTEST):        
                     //INSTREAM DD UNIT=SYSDA,SPACE=(CYL,(1,1))         
               which is used in the new EXIMSOUT exit for the "instream"
               creation of the $TEMPIMS. tempory SAS FORMAT.            
              -All references to the unnecessary and redundant _IMSWORK 
               macro were removed to avoid confusion. Since IMS log data
               is processed in a separate step from other data records, 
               there is no need for a work DD name other than WORK.     
   Thanks to Pete Shepard, Ashland Oil, USA.                            
     for lots of arduous work.                                          
Change 06.052  -TYPE78.. data sets variables INSTALL, ONLINE, VARIED,   
Apr  1, 1988   were not set blank by an ELSE clause if the bit test was 
               false, which could cause the 'Y' value to be propagated  
               (incorrectly) into the next segment in the record.       
               (Change 5.27 fixed this for VMAC74 but overlooked VMAC78.
              -Labels for NRIOPENQ and NRIOPREQ were reversed.          
   Thanks to Stephen Geard, Commonwealth Bank of Australia, AUSTRALIA.  
Change 06.051  When the SORT list for BUILDPDB data sets was expanded to
WEEKBLD        handle the NODUP option in MXG 4.4, weekly and monthly   
MONTHBLD       members BY lists were not updated. While only one user   
Apr  1, 1988   noticed this oversight, now the BYLISTs agree with the   
               PDB order as documented in the MXG supplement pp263ff.   
   Thanks to Marge Hagen, GTE Marina del Rey, USA.                      
Change 06.050  Comments were re-written to better describe the default  
TYPEROSC       ROSCOE data sets created by this member. No code changed.
Mar 31, 1988                                                            
   Thanks to Craig Feistner, CITICORP South Dakota, USA.                
Change 06.049  SYNCSORT SMF record had minor exposure in calculating the
VMACSYNC       date part of SORTEND datetime stamp for sort which began 
Mar 31, 1988   on one day and ended on the next day. Lines 260-261 were 
               reversed; the IF test precedes the calculation.          
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 06.048  RACF type 80 format TYPE80ER was not correct (and caused 
VMAC80         an overlooked note on the SAS log). It is now.           
Mar 31, 1988   Add one new line after 1261:                             
                  @; IF LENAOF GE 76 THEN INPUT                         
             b.Change three occurrences of NPN to NPM.                  
   Thanks to Mark Bercov, Canadian Occidental Petroleum, CANADA.        
Change 06.047  This change consolidates all current reported errors in  
ANALNPM        support for the new type 28 SMF record. The comments at  
VMAC28         the beginning of VMAC28 are now enhanced and provide a   
Mar 17, 1988   cross reference of the type 38 variables with their new  
Mar 31, 1988   type 28 replacements: TYPE38EX in NPMEVNCP & NPMEVNET,   
               TYPE38IN in NPMINLU & NPMINPU, and TYPE38NC in NPMINNCP. 
             a.These five new data sets are not exact replacements for  
               the three TYPE38.. data sets, and for consistency all of 
               the old NPA prefixes were changed to NPM (NPA was the old
               IBM FDP, which died a graceful death). Your TYPE38..     
               reports will need to be changed; use the aforementioned  
               cross reference of new/old variables and data sets in the
               comments at the beginning of VMAC28.                     
             b.NPM 1.3 type 28 record creates two lengthed NAD segments 
               and the shorter length caused an INPUT STATEMENT EXCEEDED
               RECORD LENGTH error. Add one new line after 1261:        
                  @; IF LENAOF GE 76 THEN INPUT                         
             c.Changed three mis-spellings from NPN to NPM.             
             d.Exchanged 20 and 30 in line pairs 24,25 and 1424,1427.   
               (This will exchange observations in NPMINSES & NPMINRTM.)
             e.Repeated line 731 as 731.1 with 0F5X setting NND.        
             f.Added new line 779.2 with  +2  (missed reserve field).   
             g.Added new line 1201.1 to set AOFTYPE='NAC' with OR       
               (NPMSUBTY EQ 18X AND NPMTYPE EQ 81X).                    
               Added new line 1202.1 to set AOFTYPE='NAD' with OR       
               (NPMSUBTY EQ 18X and NPMTYPE NE 81X).                    
             h.Renumbered VMAC28 and ANALNPM to "level set" for future. 
             i.You can see that many users helped in the validation     
               of the 6.1 pre-release of SMF 28 support. There still    
               may be record combinations which have not been tested,   
               and there are not really any reports yet, especially from
               the new data sets, but (to paraphrase SAS' Robert Cross  
               at 1988 SUGI, about the major SAS re-design, MVA for     
               Multi Vendor Architecture which was only a concept last  
               SUGI): "Now it works!"  Thanks for all who helped:       
   Thanks to Ray Dickensheets, Yellow Freight System, USA.              
   Thanks to Rodney L. Reisch, General Electric Silicon Products, USA.  
   Thanks to Barry Pieper, FBS Information Services, USA.               
   Thanks to Matt Cody, Jostens, USA.                                   
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
   Thanks to Rodney L. Reisch, General Electric Silicon Products, USA.  
   Thanks to Mike Pichowicz, U.S. Trust, USA.                           
   Thanks to Billy Westland, Candle Corporation, USA.                   
   Thanks to Robert Bunn, IBM NPM Level 2, USA.                         
Change 06.046  This MXG system for measuring your DASD farm (data set   
FMXGUCBL       sizes from VTOCs) now supports the 3375 DASD device.     
Mar 17, 1988                                                            
   Thanks to Chuck Rexroad, Perpetual Savings Bank, USA.                
Change 06.045 -Cosmetic clean-up in JCLTEST member in step TESTUSER adds
TESTUSER       was added to create and test SYNCSORT data set. We use   
VMXGUSE        JCLTEST to create MXG's cross-reference that is input to 
Mar 17, 1988   both the auto documentation (DOCVER, DOCVERnn) and the   
               conflict analysis (variable names, types, formats, etc). 
               XREF and DOCVER are the final runs before a pre-release  
               of MXG Software is ready for shipment.                   
              -A new style macro %VMXGUSE was contributed by Dan Kaberon
               that builds an MXG execution for a specific subset of SMF
               records.  This is provided as an example only. The MXG   
               development of a code generator to trivialize that task  
               is ongoing, but not with the %MACRO facility. Consider:  
                BUILD XAONLY 30.4 30.5 26 ADD=MYVAR DROP=OLD1 OLD2      
               for you to create the TYPE30_4, TYPE30_5, TYPE26 datasets
               with the MXG default variables (but only from MVS/XA) and
               with trivial tailoring of kept variables through ADD= and
               DROP= syntax. This is a list processing problem, where   
               the input lists are a tested, changing part of MXG code. 
               A data step seems to be the only right way to implement  
               this design, but don't look for it before 1989! Another  
               MXG user has shown me his proprietary solution which is  
               based on a data dictionary, implemented with macros. It  
               is also under consideration.  Then also, SAS Institute   
               announced at SUGI 88 that the SAS/AF CPE Reporting System
               (currently free upon request) will be automatically on   
               SAS 5.18. That is likely to be the test bed for any such 
               MXG offering.                                            
   Thanks to Dan Kaberon, Hewitt Associates, USA.                       
Change 06.044  The optional DL/I counters and clocks which can be added 
IMACICDL       to your CICSTRAN data set from type 110 SMF records may  
Mar  8, 1988   not be labeled. The LABEL statement is inside the 1.6    
               comment block, but not in the 1.7 comment block. If you  
               enabled both 1.6 and 1.7 DLI counting, your labels are   
               fine, but if you enabled only 1.7 DLI counts, you should 
               copy the LABEL statement from in the 1.6 code in IMACICDL
               into the same place in the 1.7 code.                     
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 06.043  This ASM program and associated REXX EXEC is for VM/SP   
ASMVMCOPY      and VM/SP HPO sites who do not have a CMS SAS license,   
REXXCOPY       who want to copy the VM/Monitor spool data records to a  
Mar  8, 1988   CMS file (typically to then be processed by MXG under the
               MVS SAS System). The EXEC should be self explanatory, and
               the ASM source program needs only compiled and linkedited
               to be useful. (If you have the CMS SAS System, the Infile
               Exit named MONITOR allows the copy of Monitor Spool Class
               data directly, without ASMVMCOPY program.) This program  
               is functionally equivalent to the VM MAP MONDISK/MONTAPE 
Change 06.042  Support for RMDS Release 3.0. One MXG Format, new values 
FORMATS        for existing formats, and a new Macro in IMACRMDS is now 
IMACRMDS       required to tell MXG whether its RMDS release 2 or 3, as 
VMACRMDS       there is no version indicator in the data records.       
Mar  8, 1988   self-recognition.                                        
   Thanks to Randy Graves, City of Albuquerque, USA.                    
Change 06.041  Reserved Change number.                                  
Mar  8, 1988                                                            
Change 06.040  Support for the SMF record created by Goal System's      
ANALPDSM       PDSMAN/SP product. This code was written in Germany and  
EXTYPDSM       donated to MXG. It was slightly restructured, and thus   
IMACPDSM       any errors are my fault, not theirs.                     
TYPEPDSM       This implementation (which started with functioning code)
VMACPDSM       produced a "typical" MXG support set for an SMF record:  
Mar  7, 1988   Five new source members, 250 SAS source lines, one SAS   
               data set with 21 variables and one new MXG format.       
   Thanks to Engelbert Smets, Provinzia Versicherungsanstalten, GERMANY.
Change 06.039  Member ANALDB2R produces DB2PM-like summary reports. They
ANALDB2        have been further validated by detail comparison and now 
ANALDB2R       they should be reliable. This validation uncovered an MXG
Mar  7, 1988   error in member ANALDB2R which affected variable QXFETCH 
               in DB2STAT1 data set, because Change 5.144 (which changed
               QXQUERY to QXFETCH) was not applied to ANALDB2R.         
               The ANALDB2R report has been re-written as four new-style
               %macros and support reports by DB2 system. Comments in   
               that member describe the selection criteria. Another DB2 
               report has been added also. Expect more DB2 reports in   
               the next prerelease (which hopefully will support the SMF
               type 102 DB2 record as well)!                            
               Five SQL values in the Accounting summary were close, but
               were nevertheless wrong.  Most of the other differences  
               between DB2PM and MXG reports came from these factors:   
             a.  IBM uses a slightly different value for interval in the
                 denominator of all rates (still under investigation,   
                 but it looks like IBM modulos minimum to adjacent 10   
                 minute TOD, modulos maximum SMF time up to its 10 min  
                 TOD and then takes difference as interval).            
             b.  A difference of one in the last digit almost always is 
                 noted. IBM truncates, MXG rounds.                      
             c.  IBM averages include zero values but MXG used to use a 
                 SAS missing value. MXG now sets zero to agree with IBM.
             d.  Errors (in my opinion, still under investigation) in   
                 their DB2PM Statistics Summary report code:            
               1. Buffer Pool "Current Active Buffers" is actually the  
                  maximum number of buffers, and the Max/Min numbers do 
                  exist, even though not printed by DB2PM.              
               2. Service Controller "Datasets Open - Current" is larger
                  than "Datasets Open - Maximum" and not equal to either
                  current or maximum in SMF record. SMF=MXG looks right 
                  now. This was reported in Change 5.89d.               
               3. Still as reported in Change 5.89a, EDM Pool "FREE PG  
                  IN FREE CHANGE" and adjacent AVERAGE values are wrong 
                  because QISEFREE is (incorrectly) the value from the  
                  preceding record.                                     
               4. Change 5.89e (Agents Services and Storage Manager)    
                  fields (QVASX... and QSST...) have not been confirmed 
                  as corrected.                                         
               5. System Events "Abends EOT" shows zero even though the 
                  next page, Subsystem Service Component "Subsystem     
                  Allied Memory EOT" value is 203.                      
             e. Additional changes in the Accounting Summary report:    
               -Group total line printed only when there was a group!   
                This will reduce the size of the MXG report by half as  
                many pages as it was.                                   
               -RATE/HR and %DYNSQL report fields are now calculated.   
               -The average values in this report now agree with IBM's. 
                Five fields (ABNRM TERM thru OTHER MANIP) disagreed. The
                1st was wrong, the others were different because IBM's  
                averages included 0 values, while MXG used missing value
                There was no error in the MXG DB2ACCT data set, only in 
                this ANALDB2R report program.                           
                This change required 16 dedicated hours.                
   Thanks to Louis Eliscu, Continental Insurance Company, USA.          
   Thanks to Ralph A. Pepe, Connecticut Bank & Trust Company, USA.      
Change 06.038  Continued validation of MXG VM/Monitor data sets shows a 
ANALVMOS       numeric difference on some average values. These design  
VMACVMON       considerations caused the variations:                    
Mar 05, 1988  -MXG set values to missing, while IBM sets everything to 0
                (which changes the Number of observations in the Mean). 
              -MXG defined ACTIVE if the USER used any CPU time during  
                the interval while IBM tested only the virtual CPU time.
                There are lots of user records (for PROFS users maybe?) 
                with CPUSVITM zero but with CPUSTOTM non zero that MXG  
                formerly counted ACTIVE. CPUSTOTM non-zero with CPUSVITM
                non-zero means CP CPU time with no VTIME. This may be a 
                result of PROFS machines, actually inactive during the  
                interval, whose "display clocks" must nevertheless be   
                updated (or something like that) causing measured CP CPU
                time during the interval.  In any event, MXG now counts 
                ACTIVE just like IBM.                                   
              -MXG deleted all records in the first two intervals. This 
                was done in initial testing when large CPU time values  
                were found in the first few records, and because the 1st
                record will eventually be deleted (can't calculate delta
                'til you get the second record). However, the real cause
                of those "bad" CPU times turned out to have been fixed  
                by Change 5.133 (negative decremented counter reset)!   
              -In summary, MXG now keeps the second interval, uses zeros
                and IBM's ACTIVE calculation to more closely match VMMAP
                reports. The detail data was never really wrong.        
             a.ANALVMOS needed PROC SORTS and some new calculations for 
               the Paging and Swapping Volume data sets to be right in  
               the summary reports and data sets.                       
             b.VMACVMON revisions include:                              
              -Logic which used to output observations after the second 
               interval (INTRVCNT GT 2) was changed to (INTRVCNT GT 0)  
               so that all records initially create an observation.     
              -Final MERGE to build VMONPERF data set now does delete   
               the first interval (after delta calculation). This was a 
               result of the previous logic change.                     
              -Additional logic sets missing values to zeros for those  
               queue stats (cpuq defrq ioq pageq pswait runq stgq swapq,
               and their derived percentates).                          
   Thanks to Steve Glick, Southern Methodist University, USA.           
   Thanks to James Farnsworth, Carolina Power & Light Company, USA.     
   Thanks to Jeff McCourt, The Continuum Company, USA.                  
Change 06.037  This change revises and replaces 6.011, which added only 
IMACCADI       the EXD support. SYSOUT handling products CA-DISPATCH and
IMACEXD        EXD create modified type 6 SMF records. This change adds 
VMAC6          support for those modified record, but the user who does 
Mar 05, 1988   not have those products will not see the new variables in
               her TYPE6 data. The algorithm to accomplish this task is:
               The new variables are already in the KEEP= list in the   
               definition of _VAR6 macro in member VMAC6, but the code  
               that references the new variables are commented out in   
               the associated IMAC.... member.  To create either set of 
               variables, you need only copy the appropriate IMAC.... to
               your USERID.SOURCLIB, remove the comments and TYPE6 will 
               contain the new variables. If you also want them in your 
               PDB.PRINT data set, you need also edit IMACPDB and add   
               the variables to _PDB_6 definition therein.              
   Thanks to Larry Miller, First American National Bank, USA.           
Change 06.036  The JOB variable has been added to the new type 41 (DIV, 
VMAC41         Data-In-Virtual) SMF record by IBM, but I can't find the 
Mar 05, 1988   APAR/PTF which made the change. Only the JOB was added;  
               the READTIME is still not there, so you can not merge a  
               TYPE41 with the other SMF records of a job! This will be 
               an important record in MVS/ESA in the future, as DIV is  
               the primary physical implementation for the data spaces  
               announced in MVS 3.0. At least I think thats right. If   
               you are testing DIV, you should see APAR OY09833 which   
               fixes a DIV problem with missed RPS revolutions (and the 
               concomitant elapsed time elongation) with 3380s behind   
               Model 23 cache controllers!                              
Change 06.035  The VVR decoding worked perfectly, unless the ENTRNAME is
VMAC60         exactly 44 bytes (which caused "SUBSTR ARGUMENT INVALID" 
Mar 05, 1988   message). To repair, replace existing lines 76 thru 83   
               (that's 8 lines) with these seven (renumbered) lines:    
              INPUT @OFFPROD+179+VVRCMPNL VVRKEYL PIB1. @;         0076 
              VVRKEYL=VVRKEYL-1;                                   0077 
              INPUT VVRKEY   $VARYING44. VVRKEYL                   0078 
                                     +1                            0079 
                    VVRCATNL       PIB1.                           0080 
                    VVRCATNM $VARYING44. VVRCATNL                  0081 
              @;                                                   0082 
   Thanks to Thomas Frenkel, CITIBANK N.A. New York, USA.               
Change 06.034  The VMSORT product from VMSI can cause a spurious Detach 
VM             or your 190 disk. The Vendor fix is S140520.             
Mar 05, 1988                                                            
   Thanks to ???, ???.                                                  
Change 06.033  The references on pages 247 and 252 of the MXG Supplement
TYPEMONI       concerning the count of Landmark CICS transactions in the
Mar 05, 1988   history summary records should read that TATASKNR (and   
               not the other variable TASKNR) contains the total count. 
   Thanks to William Pedilla, Farmers Insurance, USA.                   
Change 06.032  This is hopefully the final hit on the IDMS   Performance
VMACRTE        Monitor (RTE) data sets. The INPUT TAWPGMLL statement at 
Mar 05, 1988   line 964 needed to be INPUT +4 TAWPGMLL to skip over the 
               TASKID. This only affected the first six copies of 6.1.  
   Thanks to Rodney L. Reisch, General Electric Silocon Products, USA.  
Change 06.031  This logic change in SPINCNT logic really only affects a 
BUILDPDB       site which wanted to SPIN once and only once (to BUILDPDB
BUILDPD3       once a month, for example). The old algoritm would SPIN  
Feb 17, 1988   on the first day (_SPINCNT = 0) or on the third day      
               (_SPINCNT = 1), but it would not SPIN on the second day. 
               Change 5.134 attempted to address this problem, but it   
               did not help. This piece of logic has always been wrong  
               in MXG, but Leigh tracked it down and fixed the problem  
               for all of us.                                           
               The SPINCNT logic is described in Chapter Thirty-Three.  
               Start first with the Supplement, then the earlier Guide. 
               There will be a slight impact on current PDB users, as   
               this correct algorithm PDBs (verb) the data on the day   
               it should have, which is one day earlier than before:    
                 _SPINCNT   Old Algorithm         Correct Algorithm     
                     0       PDBs today,           PDBs today,          
                             No SPIN.              No SPIN.             
                                                   (No change here).    
                     1       SPINs twice,          SPINs today,         
                             PDBs third time.      PDBs tomorrow.       
                     2       SPINs thrice,         SPINs twice,         
                             PDBs fourth time.     PDBs third time.     
                    10       SPINs eleven days,    SPINs ten days,      
                             PDBs twelfth day.     PDBs eleventh day.   
                           BUILDPDB  BUILDPD3   From        To          
                        line  375    385     SUM(  ,0.5);   SUM(  ,0);  
                        line  380    390     GT             GE          
   Thanks to Leigh Miller, GRE Insurance Ltd, Camberwell, VIC, Australia
Change 06.030  ANALMNTS adds a new capability to MXG by providing a way 
ANALMNTS       to calculate a useful "typical" average time per tape    
EXTY74         mount for each tape drive for each hour when there were  
Feb 16, 1988   mounts on that tape drive.  ANALMNTS merges the TYPE74   
               mount pending durtion with the TYPE21 count of dismounts 
               during the RMF interval to calculate AVGMNTTM for each   
               hour for each device. Because TYPE21's timestamp is the  
               dismount (could be much later than mount timestamp), the 
               values calculated do have some ambiguity - occasionally  
               very large differences are observed between the actual   
               mount time and that calculated by this algorithm. More   
               on the validation of this algorithm later. Call if you   
               want to use it.                                          
               In developing ANALMNTS, the MXG Default for TYPE74 which 
               creates observations only if PCTDVUSE or SIO74CNT are non
               zero (Default in EXTY74) was enhanced to OUTPUT TYPE74 if
               mounts were pending, even if nothing else happened. This 
               change in MXG default is needed if you create type 74 RMF
               records for TAPE and want to use ANALTAPE to estimate the
               mount time. The number of additional observations should 
               be minimal (but their absence added 6 hours to validate  
   Thanks to Dan Kaberon, Hewitt Associates, USA.                       
    whose originally proposed the algorithm last year, and who helped me
    with this one. He has given IBM a suggestion to add two fields,     
    total mount and number of mounts, to the TYPE74 interval record,    
    which would (if IBM responds) permit un-ambiguous average tape mount
    time calculations from TYPE74 records directly for each RMF interval
    for each device.                                                    
Change 06.029  NLDM TYPE39 variables TBYT.... and CBYT...., Text/Control
VMAC39         bytes between primary and secondary were reversed. The   
Feb 16, 1988   .BYTPRSC variables should have been .BYTSCPR and vice    
               Line 306 should be ....PRSC                              
               Line 308 should be ....SCPR                              
               Line 310 should be ....PRSC                              
               Line 312 should be ....SCPR.                             
   Thanks to Mike Paller, Harris Corporation, USA.                      
Change 06.028  TYPE71 variables PAGBLMN and PAGBLMX (min and max number 
VMAC71         of pageable frames) for MVS/XA have always been reversed.
Feb 16, 1988   (I guess this has been overlooked since almost everyone  
               looks at fixed pages rather than pageable; also, PAGBLAV 
               (average number of pageable frames) was always correct.  
               Lines 545 should be: PAGBLMN=PAGBLMN-FIXEDMX;            
               Lines 546 should be: PAGBLMX=PAGBLMX-FIXEDMN;            
               because in MVS/XA, the inputted PAGBL.. field is actually
               the total frames, and max PAGBL is when FIXED is minimum.
   Thanks to Kathy Manos, Stroh Brewery Company, USA.                   
Change 06.027  Syntax errors which slipped into the first pre-release of
VMAC28         NPM 1.3 support in MXG 6.1. Affected only 5 pioneers.    
IMACROSC     a.VMAC28:                                                  
Feb 15, 1988   Line 576, remove BINDCODE (from the $HEX2. line).        
               Line 577, add    BINDCODE (to the    HEX2. line).        
               Line 582, %%INCLUDE vice %INCLUDE SOURCLIB(IMACSHFT).    
               Restore  MACRO _ROSCDDN   WORK  % which had been deleted 
               in error.                                                
             c.NPMFCCCT was renamed to NPMFCCTM to be consistent with   
               NPA names and meanings, and the PCTBUSY and PCTSLOW      
               variables were added to the NCP statistics, PCTBUSY to   
               the other interval data sets. With these additions, the  
               NPM data sets should be usable in place of TYPE38 data.  
               (I'll try to get a mapping together in the next release).
               This paragraph added March 7, 1988.                      
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
   Thanks to Rodney L. Reisch, General Electric Silicon Products, USA.  
Change 06.026  The Compatibility notes in MXG Version 5.5 should have   
TYPE74         noted that TYPE74 data set will usually have fewer OBS   
Feb  9, 1988   under 5.5 than with 4.4. TYPE74 only contains OBS if the 
               device was busy (PCTDVUSE), but a 4.4 error carried this 
               to the next device, causing 4.4 to output an extra OBS   
               for a device which had had no activity. No big deal here,
               except for the time it took this user to validate that   
               the change was correct and for the good!                 
   Thanks to Barry Pieper, First Bank Systems, USA.                     
   The previously thanked Tom Frenkel gets to see his name now correctly
   spelled, and his company as Citibank, and not its competitor!        
=============Changes thru 6.025 as of Feb  4, 1988 ===================  
======First pre=release of 6.1 included Changes through 6.023=========  
Change 06.025  A new MXG Exit for the PDB has been created. EXPDBSPN is 
BUILDPDB       taken after yesterday's SPIN data sets and today's new   
BUILDPD3       SMF data sets have been interleaved, but before the MERGE
EXPDBSPN       in which the decision TO SPIN or NOT TO SPIN is made. It 
Feb  4, 1988   may be necessary for NJE sites, where NJE creates type 6 
               records for the same job with multiple JES numbers. One  
               site is trying to use this exit to find the correct JESNR
               (from the type 26 original JESNR) and store it into TYPE6
               so that MXG will then assemble them all into the one JOBS
               observation for the job. It may have other uses, too.    
Change 06.024  DISP=(MOD,CATLG) is used in JCL examples to show you how 
Feb  4, 1988   to create the data set if it doesn't exist and to use the
DOC            existing copy if there is one, and to not have to EDIT a 
               JCL file. It turns out that if the VOL=SER parameter is  
               also on the DD card, the job dies with a 213-04 ABEND!   
               It's not clear why, but that's the way it is with JCL.   
               (Actually, if your installation uses the VOL=SER for you 
               to specify a generic for a group of volumes, MOD,CATLG   
               may still work, since that installation modification does
               not actually send a VOLSER over to the JES Converter.)   
               The moral is, don't specify VOLSER and MOD,CATLG works!  
   Thanks to Jim Groseman, Duquesne Systems, USA.                       
Change 06.023  VM/Monitor data on Jan 30, 1988 from 21:29:55.02 until   
Feb  4, 1988   the monitor was stopped will have STARTIME beginning at  
VMACVMON       06:46:48.97 on July 11, 1987, 203.613 days earlier. The  
               VM/Monitor records contain only five bytes of the actual 
               8-byte TOD datetime stamp. Five bytes holds 203.613 days.
               MXG implemented a slick algorithm to figure out exactly  
               when the current 203-day interval began (BASETIME) so the
               5-byte MNHTOD could be added to create STARTIME. (You can
               not just use the COLLTIME in the 0.97 record because it  
               is only accurate to a full second.) Once the BASETIME had
               been set by the first record, however, MXG failed to test
               to see if MNHTOD had wrapped into the next interval! This
               could easily have been missed, since Jan 30 was a Sat.   
               (The next exposure is 21AUG88:12:13:00.97, a Sunday!)    
              -Add LASTHALF to the retain statement at line 284.        
              -Replace  THEN BASETIME=BASETIME-FFFFF; in two places, in 
               lines 275 and 2025 with                                  
                  THEN DO;                                              
              -Insert after line 278                                    
                  IF LASTHALF AND MNHTOD LT FFFFF/2 THEN DO;            
Change 06.022 -Further validation of MXG IMS log data sets with the IBM 
Feb  3, 1988   utility's output by Pete uncovered several enhancements, 
TYPEIMS        as well as legitimate differences in transaction counts. 
VMACIMS        The IBM utility does not begin counting transactions til 
               it finds an IMS checkpoint record, but MXG starts with   
               the first 07 record found. If the IMS log tape does not  
               start with IMS startup, MXG will count all, IBM won't!   
               Pete also improved the match-up logic, using DLRTOKEN in 
               addition to PSTNUMBER TRANSACT. Additionally, variables  
               added to the IMSTRAN data set. There still may be minor  
               glitches in MXG, but the qualtity of the data gets better
               each time someone like Pete really digs in.              
              -Member EXIMSCDE was deleted from the SOURCLIB. It was a  
               test member, and should have not been in 5.5. References 
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 06.021  SYNCSORT sort SMF record timestamps SORTEND and SORTBEGN 
Feb  3, 1988   and calculated ELAPSTM were incorrect. BEGIN and END were
VMACSYNC       four PK1. fields with HH,MM,SS,TT and ELAPSTM relocated. 
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 06.020 -The technique (described on page 10 of MXG Newsletter 11)
Feb  3, 1988   to build the month PDB using only one tape drive should  
MONTHBLD       have the DCB=TAPETEMP added on the FILE MONTH statement  
               at line 144:                                             
                 FILE MONTH MOD CLOSE=LEAVE DCB=TAPETEMP;               
               (If you specified a DCB on the MONTH DD card, you did    
               not notice the problem. Without a DCB parameter, SAS     
               uses the FILE BLOCKSIZE, which defaults to 6400 bytes.   
               As long as the internal length of a SAS observation is   
               less than 6400 bytes, no problem, but TYPE78VS data set  
               (among others) is larger than 6400 bytes. This change    
               uses the build data set block size for the MONTH file.)  
              -A new line (95.1) should be inserted before the percent  
               sign which terminates the MACRO _MNTHBLD  definition:    
                PROC DATASETS NOLIST;DELETE DUMMY._DSET;                
               This will keep the size of the DUMMY allocation within   
               its 3-track allocation.                                  
   Thanks to Lee Salley, Westinghouse, USA.                             
Change 06.019  This MXG function dynamically allocates all online DASD  
Feb  3, 1988   volumes in preparation for VTOC reading. This function   
FMXGUCBL       uses MVS/XA UCB look-up logic, and thus the function does
               not work under MVS/SP at the present time. If you fix it 
               to execute under MVS/370, let us know and we'll share.   
Change 06.018  Lines printed by VPS (SYSOUT spooling product) are seen  
Jan 27, 1988   in PDB.PRINT as external writer lines rather than print  
VMAC6          lines because VPS product does not store printer name in 
               output device field. VPS records contain string "VPS" in 
               the UCS field. This change recognizes VPS type 6 record  
               and sets DEVICE to PRINTER so that BUILDPDB will put the 
               VPS lines in PRLINES variable. Expand the IF statement at
               line 148 by adding         OR UCS=:'VPS'                 
               (to set DEVICE='PRINTER') for the VPS type 6 record.     
   Thanks to Rodney L. Reisch, General Electric Silicon Products, USA.  
Change 06.017  Support for Version 7.1 of Landmark's Monitor added. The 
Jan 26, 1988   MXG 5.5 code will execute without error, but this change 
TYPEMONI       adds three one-character "Y" flags, HITASKS, MILLENUM,   
               and PSBPWAIT to MONITASK. The ELAPSUM variable (their    
               field MFSTTIM), total elapsed time of all transactions in
               the interval, could overflow its 4-byte size. To prevent 
               overflow, you can specify TMRL=Y in your SIT to cause    
               MFSTTIM to use "Optional Time Resolution". MXG recognizes
               TMRL is on and stores the correct duration in ELAPSUM.   
               The other changes introduced in 7.1 were already in place
               in MXG (they had been added to support SPECIAL78 zap).   
               Landmark gave me plenty of lead time for this change.    
Change 06.016  The creation of UOWTIME (CICS 1.7) from UOWID caused the 
Feb  3, 1988   "Invalid Data for Input Function ..." SAS message (which 
Feb 19, 1988   was non-fatal and simply sets UOWTIME to be missing). It 
VMAC110        turns out there are three different formats/locations for
               the time stamp associated with the creation of this task:
               NETSNAME              UOWID        TIME IS FOUND IN      
               PRODCICS000000000000  TTTTTT0002   UOWID    PIB6.        
               LIGAB3Z6.G.GAB3ZNNNN  HHMMSS0001   UOWID    HHMMSS6.     
               .AUB001B-07.08.07000  00    0001   NETSNAME HHMMSS8.     
               1.CCCCCCCHH.MM.SS000  00    000N   NETSNAME HHMMSS8.     
               DVRHLC5.IRC000000000  092111000N   UOWID    HHMMSS6. *   
                       0 = '00'X (NULL)                                 
                       . = '4B'X (PERIOD) *see change 6.080             
               The new algorithm replaces the ELSE DO; group at lines   
               720-728 with this logic:                                 
                ELSE IF SUBSTR(NETSNAME,18,3)='000000'X THEN DO:        
                ELSE DO;                                                
   Thanks to C. J. Legrand, Tenngasco Corp, USA.                        
   Thanks to Steve Lottich, University Hospitals of Iowa, USA.          
Change 06.015  VM/Monitor variable APTCPU is missing because WTSIO1TM   
Feb  3, 1988   in line 1205.1 should have been spelled WTIOS1TM.        
   Thanks to Steve Glick, Southern Methodist University, USA.           
Change 06.014  VM/Monitor summarization dies with SAS 180 syntax error  
Feb  3, 1988   because:there should be two percent signs instead of one 
ANALVMOS     a.line 5430 should be %%INCLUDE instead of %INCLUDE        
             b.lines 5940 and 6050 should be 1 PCT of vice 1 % of       
               (when I wrapped substitution MACRO definitions around    
               Steve's code, I failed to test sufficiently and the      
               single percent signs, even in comments, terminate the    
               MACRO definition pre-maturely).                          
             c.Insert new line 158.1 (after IOS=CNTVIOCT;):             
                  IF DEVTYPE=0810X THEN VOLSER='*TAPE*';                
               to cause tape devices to be reported in addition to DASD.
   Thanks to Steve Glick, Southern Methodist University, USA.           
Change 06.013  EPILOG records (from Candle) code has been executed by   
Jan 26, 1988   two users and their changes implemented. Read the notes  
IMACEPIL       at the beginning of member VMACEPIL. Note that member    
TYPEEPIL       IMACEPIL is deleted by this change, it is not needed as  
VMACEPIL       the data is not written to SMF after all, but only to a  
               FB, LRECL=600 sequential file! The real heart of this    
               change was to replace _SMF reference in TYPEEPIL with a  
               INFILE EPILOG LENGTH=LENGTH COL=COL; statement! Also,    
               TODSTAMP8. format on line 336 for BICPUTIM should be     
               MSEC8. A final cosmetic change in MXG was to split       
               CICPUID into CIMODEL, CIID, and CISERIAL.                
   Thanks to Merrick Dean, MONY, USA.                                   
   Thanks to Warren Hayward, NY, USA.                                   
Change 06.012  I almost hate to waste your time with this obsolete SMF  
Jan 26, 1988   type 4 or 34 record change. By now you really should be  
VMAC434        using the type 30, and with MVS/XA 2.2 you must use 30s.!
               Change 5.19, which changed the format of PVTBOT, PVTTOP, 
               and REGREQST to use the MG078CV. "Meg/K/Bytes" storage   
               value format, was only partially applied to VMAC434. The 
               three variables need to be each multiplied by 1024 after 
               they are read in. VMAC30 can be used as an example if it 
               is really important to you to fix.                       
   Thanks to Kevin Wise, Allegheny Power, USA.                          
Change 06.011  Support for EXD (Express Deliveries) SYSOUT product from 
Jan 26, 1988   SAR was added. This change was revised and replaced by   
               Change 6.037.                                            
Change 06.010 -DD card for DCLOG (IDMS DC LOG) was missing in JCLUXREF  
Jan 26, 1988   (the MXG Cross Reference Utility).                       
JCLUXREF      -TYPEDOS internally overrided the LENGTH of the variable  
TYPEDOS        SHIFT, which should be set in IMACSHFT. Now, there is    
UTILCICS       no LENGTH for SHIFT forced by TYPEDOS.                   
              -UTILCICS cosmetically improved in listing the contents of
               CICS 1.7 Dictionary records.                             
   Thanks to Mark Bercov, Canadian Occidental Petroleum, CANADA.        
Change 06.009  -Lines 211 and 961 should have _DB2R. following the DATA=
Jan 26, 1988   and preceding the DB2.....   (This only caused a problem 
ANALDB2R       when MXG DB2 data sets were built with BUILDPDB.)        
              -All occurrences of 'BY QWHSSSID' should be changed to    
               'BY SYSTEM QWHSSSID'. (This only caused a problem if DB2 
               executes on more than one MVS system.)                   
   Thanks to Bill Border, Apollo Computer, USA.                         
   Thanks to Jim Groseman, Duquesne Systems, USA.                       
Change 06.008  Labels for DB2SRBTM and DB2TCBTM are reversed in lines   
Jan 26, 1988   167 and 168.                                             
   Thanks to Jim Groseman, Duquesne Systems, USA.                       
Change 06.007  Support for the type 28 SMF record from NPM 1.3. This new
Jan 20, 1988   SMF record consolidates the data formerly in TYPE38 and  
EX028...       TYPE39 (NPM and NLDM records) and the VSAM Session Stats 
FORMATS        file created by NPM (supported by MXG XNPMSESS member).  
TYPE28         There are two APARs, one documentation (OY11468) and one 
VMAC28         correcting short record (OY11641) affecting the type 28. 
               MXG creates twenty-four NPM..... data sets which are     
               listed in comments at the beginning of VMAC28 member.    
               You will find no announcement of this record in any NPM  
               product announcement!                                    
   Thanks to Mike Pichowicz, U.S. Trust, USA.                           
   Thanks to Billy Westland, Candle Corporation, USA.                   
   Thanks to Robert Bunn, IBM NPM Level 2, USA.                         
Change 06.006  Documentation of TYPE1415 variable RECIND1 on page 494 of
Jan 12, 1988   the MXG Book is one bit off. First, the variable name is 
MXG Guide      actually RECIND1, and bits 1 thru 7 should be renumbered 
               as bits 2 thru 8, and bit 1 - reserved should be added.  
               The code in VMAC1415 was correct.                        
   Thanks to Michael Doyle, Arizona Department Economic Security, USA.  
Change 06.005  IDMS Performance Monitor from Cullinet was massively     
Jan 12, 1988   enhanced in IDMS 10.1. This change affects only the new  
VMACRTE        IDMS.... data sets created from their new subtypes.      
               The TYPERTE data set was not in error.                   
             a.IDMS Performance Monitor Wait times (the new variables   
               introduced in IDMS 10.1) were off by 10000:              
               Change all seventy occurrences of PIB8. to MSEC8., and   
               delete all seventy lines containing 409600.              
             b.Several BUFF variables were corrected to ARAS, and some  
               variables were added to TIME12.2 format.                 
             c.Two of the new subtypes of the record (IHDRTYPE=1 and =2)
               are segmented records, but the segments were not always  
               in the correct order, and sometimes were duplicated! MXG 
               5.5 avoided the problem by skipping over type 1, but it  
               hit problems with the type 2. With further pressure on   
               Cullinet and further investigation by all three thankees,
               (real cooperative work here, each one found a piece),    
               Cullinet apparently has PTFs now to fix their broken     
               records. There may still be sequence problems with their 
               PTFs, but MXG will reconstruct the real logical record   
               even when the segments arrive out of order! (Segmenting  
               is necessary because their journal record size maximum is
               256 bytes, but the total SMF data is 500-600 bytes.)     
               Make sure you have installed the January, 1988, Cullinet 
               maintenance tape to avoid any problems, and validate!    
             d.An MXG error in IHDRTYPE=10 subtraction was also fixed.  
   Thanks to Bob Rutledge, Sherwin Williams Paint, USA.                 
   Thanks to Gayle Bartel, Pizza Hut, USA.                              
   Thanks to Rodney L. Reisch, General Electric Silicon Division, USA.  
Change 06.004  TYPERTEJ processes IDMS Performance data from a   Journal
Jan 12, 1988   File (TYPERTE reads the same data from SMF). TYPERTEJ was
TYPERTEJ       off by two bytes, and did not format/length SMFTIME.     
               Change line 17 from +2 to +4 temporarily fixes the error;
               several additional cleanups were also added.             
   Thanks to Bob Rutledge, Sherwin Williams Paint, USA.                 
Change 06.003  a. The labels for CICSTRAN variables SCWTECN and SCWTETM 
Jan 11, 1988   should be exchanged (lines 1511-1512).                   
VMAC110        b. CICS 1.7 increased OPERATOR from 3 to 4 bytes and SIT 
               from 2 to 4 bytes. MXG correctly read in these variables,
               but their stored length is set by its first occurrence   
               (in 1.6 code!) To correct, insert after line 244 :       
                  INFORMAT OPERATOR  SIT $CHAR4.;                       
   Thanks to Mark Bercov, Canadian Occidental Petroleum, CANADA.        
   Thanks to Richard Evans, Mervyn's, USA.                              
Change 06.002  Landmark's The MONITOR records can be corrupted by a CICS
Jan  7, 1988   transaction ABEND. The corrupted records confuse the MXG 
TYPEMONI       test for compressed record format (which formerly issued 
               a SAS ABORT ABEND 99, to terminate the job). With this   
               change, neither bad records nor compressed data without  
               the EXITMONI will cause an ABORT. The first twenty bad   
               records will be hex printed on the SAS log, but the job  
               will proceed to read all other records in the input file.
   Thanks to John Leath, Fleet Services, USA.                           
Change 06.001  Variable AVGSWPMS in TYPE75 data set was wrong for swap  
Jan  7, 1988   data sets. MXG used DSBUSY (SMF75USE) in this calculation
VMAC75         but NRSAMREQ (SMF75REQ) must be used because swap data   
XMAC75         sets use multiple IORBs. The IBM description (SMF manual,
               SMF75REQ) and RMF footnote for the equation for AVGSWPMS,
               (which allude only to multiple exposure devices) will be 
               revised to include swap data sets as well. While only the
               swap service time was in error, this change protects the 
               future by also using NRSAMREQ in AVGPAGMS calculation.   
         Replace DSBUSY with NRSAMREQ in lines 109, 113, 188 and 192.   
   Thanks to Ken Thomas, Maryland Casualty Company, USA.                
LASTCHANGE: Version  6