Final    MXG Version 21.21  is dated Feb 11, 2004, thru Change 21.320   
Annual   MXG Version 21.21 was dated Feb  6, 2004, thru Change 21.319   
Last     MXG Version 21.08 was dated Jan 28, 2004, thru Change 21.292   
First    MXG Version 21.08 was dated Jan 25, 2004, thru Change 21.289   
Final    MXG Version 21.07 was dated Dec  2, 2003, thru Change 21.247   
First    MXG Version 21.07 was dated Nov 30, 2003, thru Change 21.245   
Final    MXG Version 21.06 was dated Nov 12, 2003, thru Change 21.230   
Second   MXG Version 21.06 was dated Nov 10, 2003, thru Change 21.228   
First    MXG Version 21.06 was dated Nov  7, 2003, thru Change 21.226   
         MXG Version 21.05 was dated Sep 22, 2003, thru Change 21.183   
First    MXG Version 21.05 was dated Sep 18, 2003, thru Change 21.181   
         MXG Version 21.04 was dated Aug 25, 2003, thru Change 21.159   
         MXG Version 21.03 was dated Jul 28, 2003, thru Change 21.133   
         MXG Version 21.02 was dated Jun  9, 2003, thru Change 21.101.  
Second   MXG Version 21.02 was dated Jun  5, 2003, thru Change 21.094.  
First    MXG Version 21.02 was dated Jun  3, 2003, thru Change 21.091.  
         MXG Version 21.01 was dated Mar 24, 2003, thru Change 21.051.  
Annual   MXG Version 20.20 was dated Feb  7, 2003, thru Change 20.341.  
         MXG Newsletter FORTY-TWO was dated Feb 8, 2003.                
Contents of member CHANGES:                                             
  Member NEWSLTRS (and the Newsletters frame at now 
  contain the current MXG Technical Notes that used to be put in member 
  CHANGES between Newsletters.  New Technical Notes are now added (and  
  now dated!) in NEWSLTRS/Newsletters with each new MXG Version.        
I.    MXG Software Version 21.21 was shipped to all sites by Feb 13.    
II.   Incompatibilities and Installation of MXG 21.21.                  
III.  Online Documentation of MXG Software.                             
IV.   Changes Log                                                       
I.  MXG Software Version 21.21, the Annual Version, was sent by Feb 13. 
  MXG 21.21 supports every new version of every new product that you are
  likely to install this year, especially for MVS systems, including new
  z/OS 1.5, CICS/TS 2.3, DB2 V8.1, and IMS V8.1 products, and new data  
  added by PTFs, and data for those releases from the monitor vendors   
  IBM, ASG, BMC, Candle, CA, etc.  And for ASCII system there are new   
  objects in existing products (NTSMF, TNG) and more support for "sar"  
  and AIX Performance Tool for unix systems. Details provided below.    
  MXG 21.21 has been tested under SAS Version 9.1 and runs fine; use the
  CONFIGV9 member and MXGSASV90 JCL Procedure member for z/OS execution;
  for ASCII, use the current AUTOEXEC file.  See Change 21.290.         
  And replacing your existing version of MXG is easy; as there are no   
  structural changes, you shouldn't have to change any of your current  
  MXG "Tailoring"; you build the Source Library, create/update the MXG  
  Format Library, change the DSNAME/DIRECTORY name to use MXG2121, and  
  run your acceptance test.  That's all that should be required.        
    Major enhancements added in MXG 21.21                               
  all      21.310  Support for z/OS 1.5.                                
  AUTOEXEC 21.290  Option defaults changed for SAS V 9.1 for ASCII.     
  CONFIGV9 21.290  Option defaults changed for SAS V 9.1 for EBCDIC.    
  ASMTAPEE 21.304  New MXG Tape "Event" Mount/Allocate/Recvr Monitor.   
  TYPE120  21.294  Support for JVM Heap sizes in SMF 120 st 1 and 3.    
  TYPEBE97 21.312  Support for Beta97 User SMF record.                  
  TYPEOMVT 21.311  Support for Omegamon/VTAM subtypes 29 and 30.        
  UNIXSAR1 21.309  Support for "sar", "acctcom", "ps" for AIX/SUN unix. 
  UNIXTOP  21.314  Support for "top" unix report.                       
  DAILYDSR 21.293  Support for DFSMS/rmm+DCOLLECT in JCLDAYDS example.  
  EMAIL    21.308  Example to email a PROC PRINT to a list of users.    
  SYSLOG   21.307  Example program to read SYSLOG for job events.       
    Major enhancements added in MXG 21.08                               
  SAS V9.1 21.289  Note 49-169 blanks inserted to eliminate note        
  TYPEDB2  21.281  Support for DB2 Version 8.1, COMPATIBLE back to 20.20
  TYPE42   21.288  Support for Type 42 Subtype 10 TYPE42VS Vol Sel Fail 
  TYPENDM  21.286  Support more NDM/Connect Direct subtypes, 26 new dset
  TYPENTSM 21.285  Support for Web Service Cache, WSRM objects.         
  PROCCOPY 21.279  Use MT=DATA with PROC COPY + SELECT for performance. 
  TYPETPMX 21.271  Major enhancement/validation of ThruPut Manager SMF  
  TYPETNG  21.269  Major enhancement/validation of new TNG objects.     
  TYPENETM 21.263  Support for UniCenter NetMaster Automate Services SMF
  TYPE115  21.262  WebSphere MQ Version 5.3 SM115REL added.             
  TYPE116  21.262  WebSphere MQ Version 5.3 SM116REL added.             
  TYPEDB2  21.259  Using VMXGTIME with DB2 caused GMTOFFDB/QWACBSC wrong
  BLDSMPDB 21.255  New BLDSMPDB builds SMF PDB Jobstream, weekly, etc.  
  VMXGINIT 21.253  Global macro variables TRENDOLD/TRENDNEW/TRENDINP.   
  RMFMON   21.252  Free Interactive RMF control block monitor.          
  TYPESASU 21.251  Support for SAS SMFEXIT adds SAS Version/User/JOBID. 
  ANALALL  21.250  ANALALL/ANALJOBN/VMXGPRAL job counting SMF records.  
    Major enhancements added in MXG 21.07                               
  TYPEOMDB 21.243  Support for Candle Omegamon II for DB2 Historical.   
  TYPEOPFT 21.233  Support for Fujitsu Siemens openFT ftp SMF record.   
  TYPE110  21.240  Support for new S4RSP7CT in STID=124 CICS record.    
  TYPEMWUX 21.241  Revised support for HP Measureware for HPUX.         
  ASUMCICS 21.242  Protection for OPERATOR/TERMINAL variable not found. 
  TYPE74   21.238  Dataset TYPE74DU (RMF DUPLEX CF) was trashed.        
  ANALDB2R 21.239  Ability to read multiple PDBs in ANALDB2R restored.  
  ASUMUOTT 21.237  New ASUMUOTT combines TMDBDB2 and MONITASK datasets. 
  ASMRMFV  21.236  Wrong member replaced; this has change 21.186 code.  
  UTILBLDP 21.231  USERADD=80/90 create TYPE80A or TYPE90A execution.   
    Major enhancements added in MXG 21.06                               
  ASUMUOW  21.220  FLASH: MXG 21.06 required to have all errors fixed.  
  TYPETSMF 21.210  Support for IBM Tivoli Storage Manager Acct Records. 
  TYPE102  21.175  Support for IFCIDs 217 and 254.                      
  TYPETNG  21.160  Support for TNG Version 7 (INCOMPAT, Header changed).
  TYPE99   21.217  Support for SMF 99 subtype 7 PAV Device record.      
  TYPE80A  21.215  Support for EKC's ETF/R FIRECALL SMF 80 data.        
  TYPEORAC 21.213  Support for Oracle V9.x, no changes.                 
  TYPE110  21.212  Support for CMODNAME='MQSeries' CICSTRAN segment.    
  TYPE110  21.152  Support for CICS/TS 2.3 (INCOMPATIBLE)in MXG 21.05+. 
  TYPE80A  21.211  Support for RACF segment RACFDBP=44, new variables.  
  TYPECIMS 21.205  Support for Shared Message Queue Group in SMQGROUP.  
  TYPEEXCH 21.195  Support for Microsoft Exchange Server 5.5 Log file.  
  TYPE119  21.190  Support for APAR PQ77633, corrects FTPREPLY.         
  none     21.184  Support for 3592 Tape Drives, they look like 3590s.  
  TYPESYNC 21.192  Up to 255 SORTWORKs supported in z/OS 1.1 SMF record.
  RMFINTRV 21.225  RMF WORKLOAD name can be used to define workloads.   
  TYPE70   21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  RMFINTRV 21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  TYPEDB2  21.200  Negative values for DB2TCBTM if QWACEJST small.      
  TYPE110  21.198  Missing value for STRTTIME in CICSTRAN possible.     
  VMXGSUM  21.185  New INTERVAL=SECOND now supported.                   
  CONFIGV8 21.168  SORTSEQ=EBCDIC or SORTSEQ=ASCII forced default.      
  RMFINTRV 21.216  z990 CPUTYPE 2084 NOT IN TABLE with OS/390 R2.10.    
  TYPE6    21.210  Support for several ESS segments '34x,35x,37x,47x'.  
  TYPEDB2  21.208  QWACBSC/QWACESC missing in DB2ACCTP, some packages   
  ASUMCACH 21.197  Enhanced to keep I/O by LPAR in PDB.ASUMCACH.        
  TYPE110  21.189  New 110 St=1 MNSEGCL=5 caused INVALID DO LOOP CONTROL
    Major enhancements added in MXG 21.05                               
  TYPE70   21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  RMFINTRV 21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  TYPE110  21.165  STID=126 UNEXPECTED data corrected.                  
  TYPE102  21.175  Support for IFCIDs 217 and 254.                      
  TYPE116  21.173  Subtype 0 SMF 116 INVALID PRODUCT SECTION message.   
  TYPE119  21.162  IFDURTM was incorrectly divided by 496 vice 4096.    
  TYPETNG  21.160  Support for TNG Version 7 (INCOMPAT, Header changed).
  TYPEWWW  21.166  IIS Web Log with missing fields now supported        
  CONFIGV8 21.168  SORTSEQ=EBCDIC or SORTSEQ=ASCII forced default.      
  MONTHBLD 21.163  Enhancement for un-sorted input, or NOT SORTED ERROR.
    Major enhancements added in MXG 21.04                               
  TYPE7072 21.149  Support for z990 - INCOMPATIBLE - REQUIRED.          
    While the support for z990s was in MXG 21.04, it was not            
    realized that MXG 21.04 is REQUIRED for z990s until 16Sep.          
  ASUM70PR 21.149  Major LPAR Measurement Enhancement: PDB.ASUM70LP.    
  ASMTAPES 21.137  ASMTAPES new Allocation Recovery event record.       
  UTILBLDP 21.148  Enhancement to the "Build your own PDB" utility.     
  TYPEEDGR 21.158  Support for z/OS 1.4 DFSMS/rmm EDGRXEXT (INCOMPAT)   
  TYPECTLL 21.156  Support for Control-D Log file.                      
  TYPENSPY 21.155  Doc: support for NetSpy V6 or V7 in MXG 20.10+.      
  TYPECIMS 21.153  Support for BMC MVIMS IMF 3.3.0 (COMPAT)             
  TYPE120  21.150  Support for CPU Time in WASserver APAR PQ74463.      
  ASUMUOW  21.147  Near-constant value STRTTIME error in PDB.CICS.      
  TYPENTSM 21.146  Support for Windows 2003 Server MEMORY object.       
  TYPEHMF  21.143  Support for HMF Subtype 29,30,32,33 changes.         
  TYPETCP  21.142  TYPETCPS contained accumulated, not interval data.   
  FORMATS  21.141  $MG070CP updated for MSU for CPUTYPE 084 table.      
  TYPEDB2  21.140  PDB.DB2STATS QBGLxxxx wrong, negative B3HITRAT.      
  TYPE7072 21.138  R723Rxxx vars now kept in TYPE72DL vice TYPE72SC.    
  TYPENTSM 21.136  SMPTSERV for Windows 2000 had accumulated values.    
  ANALSTC  21.135  Report using STK SMF + MXGTMNT to track Virtual tape.
  ANALDB2R 21.157  Accounting Summary Class 2 were totals, not avgs.    
    Major enhancements added in MXG 21.03                               
  TYPE7072 21.130  Support for APAR OW56656 for RMF for z990 (COMPAT).  
  TYPE102  21.121  Support for IFCID 251, 257, corrections for 21.      
  TYPE103  21.115  Support for APAR PQ71799 HTTP Server SMF 103 data.   
  TYPE120  21.107  Support for WebSphere APAR PQ74463 - adds CPU time.  
  TYPETMMQ 21.129  Support for ASG-Landmark TMON for MQ Series.         
  TYPENDM  21.133  Support for NDM Release 4.3 (INCOMPATIBLE).          
  TYPEENTX 21.124  Support for EntireX user SMF accounting record.      
  TYPEICE  21.102  Support for STK IXFP SMF L2P00A2/LZP00A9 (COMPAT)    
  TYPEQACS 21.118  Support for TCP and TCPIEF objects for AS/400.       
  TYPEMVCI 21.117  Support for Mainview for CICS 5.6 CMRDETL (INCOMPAT).
  TYPEAIX  21.116  Major revision to AIX PTX Support - new datasets.    
  VMXGRMFI 21.125  Different SRVCLASS definitions can map to same WORK. 
  Incompatible revision:                                                
      If you used ASUMCICS to read ASG-TMON/CICS MONITASK to create     
      PDB.CICS, you must now instead use ASUMCICT.  But MXG recommends  
      you no longer use either ASUMCICS nor ASUMCICT, but instead you   
      should use ASUMUOW/ASUMUOWT to create PDB.ASUMUOW, and then create
      PDB.CICS using ASUMCICX to properly measure CICS.  See the        
      discussion in Change 21.105 text.                                 
  ASUMCICS 21.105  Reads only CICSTRAN, creates PDB.CICS, don't use.    
  ASUMCICT 21.105  Reads only MONITASK, creates PDB.CICS, don't use.    
  ASUMCICX 21.105  Reads PDB.ASUMUOW; use instead of ASUMCICS/ASUMCICT. 
  ASUMUOW  21.105  Combines CICSTRAN,DB2ACCT, creates PDB.ASUMUOW, use! 
  ASUMUOWT 21.105  Combines MONITASK,DB2ACCT, creates PDB.ASUMUOW, use! 
    Major enhancements added in MXG 21.02                               
  TYPE7072 21.065  Support for more than 16 CPUs or LPARs.              
  TYPE74   21.058  Support for APAR OW54347 CMR Command Response time   
  TYPETMS5 21.097  Support for PDC # QI30130 new variables.             
  TYPEIMS7 21.064  Support for IMS Version 8.1, some changes.           
  ASMIMSL6 21.064  Support for IMS Version 8.1; just reassemble L6.     
  IMAC6ESS 21.082  Support for additional GPARMKY values in SMF 6 ESS.  
  IMAC6ESS 21.096  Support for GEPARMKY=001B.                           
  TYPE30   21.086  Support for IDMS PerfMon type 30 subtype 3 per   tran
  TYPENTSM 21.063  Support for NTSMF 2.4.5 (INCOMPATIBLE).              
  TYPENTSM 21.053  Support for NTSMF BlackBerry Server object.          
  TYPETNG  21.095  Support for six new TNG objects, new fields.         
  EXUTILEX 21.069  Exit for UTILEXCL for non-standard "User" field.     
  VMXGRMFI 21.067  Examples to invoke RMFINTRV twice, general cleanup.  
  ASUMUOW  21.062  Revised SPINUOW logic, forward sequence of times.    
  ASUMUOW  21.093  Blank SYSTEM in PDB.ASUMUOW for CICS-only fixes.     
  TYPE102  21.061  Support for dataset T102S196 (locks) validated.      
  TYPE74   21.059  TYPE74ST negative values corrected, QSIZ retained.   
  FORMATS  21.057  RACF MG080QU,TY formats updated for z/OS 1.2-1.4.    
  BUILDPDB 21.056  Exit EXPDBSPJ created for local variables for spin.  
  UTILEXCL 21.054  Variables KY8DISTM/KY8CPUTM corrected.               
  MICSMXG  21.089  New member documenting MICS replacement by MXG.      
    Major enhancements added in MXG 21.01                               
  ASMRMFV  21.002  Improved processing of RMF III data.                 
  CLRMFIII 21.002  CLIST for batch execution to read all RMF III data.  
  DOCLRMFV 21.002  Documentation of CLRMFIII CLIST.                     
  GRAFTRND 21.040  New plots of Peak to Average Utilization ratio.      
  MXGSASV8 21.009  Symbolic parm WORKVOL= added, default 5 volumes      
  SAS V9   21.028  Early V8-V9 comparisons flawed, V9 is better.        
  TYPE108  21.018  Support for Domino Server Relase 6.0.0 new data.     
  TYPECTLT 21.026  Support for Control-T Release 6.0/6.1(INCOMPATIBLE). 
  TYPEQACS 21.033  AS/400 5.2 file's LRECLs have been validated.        
  TYPETNG  21.024  Support for TNG "Enterprise Cubes", Processes, plus. 
  TYPEXAM  21.023  Support for TCP/Linux/etc, plust lots of cleanup.    
  See member NEWSLTRS or the Newsletters frame at for       
  current MXG Technical Notes that used to be in CHANGES.               
  MXG New Version QA tests are executed on OS/390 & z/OS with SAS V8.2, 
  V9.0 and (archaic) V6.09, and on Windows 2000 & XP with V8.2 and V9.1 
  on Intel platforms.  Additional tests have been run with SAS V8.2 on  
  Linux RH 7.2 on Intel, with V9.1 on Solaris v2.8 model v880, and V9.1 
  on HP-UX v11.11 model rp5470, confirming full compatibility.  So MXG  
  executes under SAS V8.2 or later on every possible SAS platform!      
  Each new version is also tested with SAS/ITSV by ITSV development.    
  All of these enhancements are described in the Change Log, below.     
    Availability dates for the IBM products and MXG version required:   
                                       Availability     MXG Version     
      Product Name                     Date              Required       
      MVS/ESA 4.1                      Oct 26, 1990         8.8         
      MVS/ESA 4.2                      Mar 29, 1991         9.9         
      MVS/ESA 4.2.2                    Aug 15, 1991         9.9         
      MVS/ESA 4.3                      Mar 23, 1993        10.10        
      MVS/ESA 5.1.0 - compatibility    Jun 24, 1994        12.02        
      MVS/ESA 5.1.0 - Goal Mode        May  3, 1995        13.01        
      MVS/ESA 5.2.0                    Jun 15, 1995        13.05        
      MVS/ESA 5.2.2                    Oct 19, 1995        13.09        
      OS/390  1.1.0                    Feb 22, 1996        14.01        
      OS/390  1.2.0                    Sep 30, 1996        14.05        
      OS/390  1.3.0 Compatibility Mode Mar 28, 1997        14.14        
      OS/390  1.3.0 WLM Goal Mode      Mar 28, 1997        15.02        
      OS/390  2.4.0                    Sep 28, 1997        15.06        
      OS/390  2.5.0                    Feb 24, 1998        15.06        
      OS/390  2.6.0                    Sep 24, 1998        16.04        
      OS/390  2.7.0                    Mar 26, 1999        16.09        
      OS/390  2.7.0 APAR OW41317       Mar 31, 2000        18.03        
      OS/390  2.8.0                    Aug 24, 1999        16.09        
      OS/390  2.8.0 FICON/SHARK        Aug 24, 1999        17.08        
      OS/390  2.8.0 APAR OW41317       Mar 31, 2000        18.03        
      OS/390  2.9.0                    Mar 31, 2000        18.03        
      OS/390 2.10.0                    Sep 15, 2000        18.06        
      OS/390  PAV                      Oct 24, 2000        18.09        
      z/OS    1.1                      Mar 30, 2001        18.11        
      z/OS    1.1 on 2064s             Mar 30, 2001        19.01        
      z/OS    1.1 with correct MSU     Mar 30, 2001        19.02        
      z/OS    1.2                      Oct 31, 2001        19.04        
      z/OS    1.1,1.2 APARs to 78      Oct 31, 2001        19.05        
      z/OS    1.2, IRD enhancements    Apr 26, 2002        20.01        
      z/OS    1.2+ APAR OW52227        Apr 26, 2002        20.02        
      z/OS    1.3+ APAR OW52227        Apr 26, 2002        20.02        
      z/OS    1.2 JESNR Z2 MODE        Apr 26, 2002        20.03        
      z/OS    1.3 JESNR Z2 MODE        Apr 26, 2002        20.03        
      z/OS    1.4 Tolerate             Sep 27, 2002        20.03        
      z/OS    1.4 Support              Sep 27, 2002        20.06        
      z/OS    1.4 Over 16 CPUs/LPARs   May 29, 2003        21.02        
      z/OS    1.4 DFSMS/rmm, RACF      Aug 29, 2003        21.04        
      z990 CPUs - CPUTYPE '2084'x      Aug 25, 2003        21.04        
      z/OS    1.5                      Mar 31, 2004        21.21        
      CICS/ESA 3.2                     Jun 28, 1991         9.9         
      CICS/ESA 3.3                     Mar 28, 1992        10.01        
      CICS/ESA 4.1                     Oct 27, 1994        13.09        
      CICS/ESA 5.1 aka CICS/TS V1R1    Sep 10, 1996        14.07        
      CICS-Transaction Server V1R1     Sep 10, 1996        14.07        
      CICS-TS V1R1 with APAR UN98309   Sep 15, 1997        15.06        
      CICS-TS V1R2  CICS/TS 1.2        Oct 27, 1997        15.06        
      CICS-TS V1R3  CICS/TS 1.3        Mar 15, 1999        17.04        
      CICS-TS for Z/OS Version 2.1     Mar 15, 2001        18.11        
      CICS-TS for Z/OS Version 2.2     Jan 25, 2002        19.19        
         CICSTRAN subtype 1 support only                  *19.19        
         CICSTRAN subtype 2 completed                     *19.08        
      CICS-TS for Z/OS Version 2.3     Dec 19, 2003        21.04        
      DB2 2.3.0                        Oct 28, 1991        10.01        
      DB2 3.1.0                        Dec 17, 1993        13.02A       
      DB2 4.1.0 Tolerate               Nov  7, 1995        13.07        
      DB2 4.1.0 Full support           Sep 11, 1996        14.07        
      DB2 5.1.0 Tolerate               Jun 27, 1997        14.14        
      DB2 5.1.0 Full support           Jun 27, 1997        15.02        
      DB2 6.1.0 initial support        Mar 15, 1999        16.09        
      DB2 6.1.0 all buffer pools       Mar 15, 1999        18.01        
      DB2 6.1.0 parallel DB2           Mar 15, 1999        19.19        
      DB2 7.1.0 parallel DB2           Mar 31, 2001        19.19        
      DB2 7.1.0 corrections            Mar 31, 2001        20.06        
      DB2 8.1 Tolerate                 Mar 31, 2004        20.20        
      DB2 8.1 New Data Supported       Mar 31, 2004        21.08        
      DFSMS/MVS 1.1                    Mar 13, 1993        11.11        
      DFSMS/MVS 1.2                    Jun 24, 1994        12.02        
      DFSMS/MVS 1.3                    Dec 29, 1995        13.09        
      DFSMS/MVS 1.4                    Sep 28, 1997        15.04        
      DFSMS/MVS 1.4 HSM                Sep 23, 1998        16.04        
      DFSMS/MVS 1.5                    ??? ??, 1999        16.04        
      MQM 1.1.2, 1.1.3, 1.1.4          Apr 25, 1996        14.02        
      MQ Series 1.2.0                  May 26, 1998        16.02        
      MQ Series 2.1.0                  Oct  2, 1999        17.07        
      MQ Series 5.2                    Dec 16, 2000        18.10        
      MQ Series 5.3                    Dec 16, 2002        21.05        
      NETVIEW 3.1 type 37              ??? ??, 1996        14.03        
      NPM 2.0                          Dec 17, 1993        12.03        
      NPM 2.2                          Aug 29, 1994        12.05        
      NPM 2.3                          ??? ??, 1996        15.08        
      NPM 2.4                          Nov 18, 1998        17.01        
      NPM 2.5                          Feb ??, 2000        18.02        
      NPM 2.6                          Nov ??, 2001        19.06        
      RMDS 2.1, 2.2                    Dec 12, 1995        12.12        
      RMDS 2.3                         Jan 31, 2002        19.11        
      TCP/IP 3.1                       Jun 12, 1995        12.12        
      TCP/IP 3.4                       Sep 22, 1998        16.04        
      WebSphere 5.0 APAR PQ7463        Aug 19, 2003        21.04        
      DOS/VSE POWER V6.3.0             Dec 19, 1998        16.08        
      VM/ESA  2.0                      Dec 23, 1992        10.04        
      VM/ESA  2.1                      Jun 27, 1993        12.02        
      VM/ESA  2.2                      Nov 22, 1994        12.06        
      VM/ESA  2.3                      Jun  1, 1998        16.08        
      VM/ESA  2.4                      Mar  1, 2001        19.03        
      z/VM    3.1                      Mar  1, 2001        19.03        
      z/VM    3.1 DATABYTE=0           May  2, 2002        20.02        
      z/VM    4.2 ??                   May  2, 2002        20.02        
      IMS log 4.1                      Jul  4, 1994        12.02        
      IMS log 5.1                      Jun  9, 1996        14.05        
      IMS log 6.1                      ???  ?, 199?        20.03        
      IMS log 7.1                      ???  ?, 200?        20.03        
      IMS log 8.1                      May 21, 2003        21.02        
      AS400 3.7.0                      Nov  1, 1996        15.01        
      AS400 4.1.0                      Dec 30, 1996        15.08        
      AS400 4.2.0                      Apr 27, 1998        16.02        
      AS400 4.4.0                      Sep 27, 1999        17.07        
      AS400 4.5.0                      Jul 27, 2000        18.07        
      AS400 5.2.0                      Jul 23, 2003        21.03        
    Note: An asterisk before the version number indicates that this     
          entry was changed to a later version of MXG being required,   
          after it was found that the previous version did not support  
          the listed product level, usually the result of an APAR to    
          the product that modified the products data records.          
          Or a coding error in MXG could be the reason for the change!  
    Availability dates for non-IBM products and MXG version required:   
                                                        MXG Version     
      Product Name                                       Required       
      SAS Institute                                                     
       MXG executes best under SAS Version 8.2, with 82BA77 HOTFIX for  
         MVS-OS/390-z/OS which includes Critical fixes; see NEWSLTRS.   
         It has executed succesfully under SAS Version 9 Beta on both   
         MVS and Windows platforms.                                     
       See Newsletters for expanded discussion of other versions.       
       Read member NEWSLTRS (search 'V8') for SAS Version 8 notes.      
      Demand Technology                                                 
       NTSMF Version 1 Beta                                14.11        
       NTSMF Version 2.0                                   15.05        
       NTSMF Version 2.1                                   15.06        
       NTSMF Version 2.2                                   16.04        
       NTSMF Version 2.3                                   17.10        
       NTSMF 2.4.4                     Aug  9, 2002        20.04        
       NTSMF 2.4.5   INCOMPAT          Apr  1, 2003        21.02        
       The Monitor for DB2 Version 2                       13.06        
       The Monitor for DB2 Version 3.0                     16.02        
       The Monitor for DB2 Version 3.1                     20.04        
       The Monitor for CICS/ESA 1.2 -                      12.12        
       The Monitor for CICS/ESA 1.3 -                      15.01        
       The Monitor for CICS/ESA 2.0 -                      15.06        
       The Monitor for CICS/ESA 2.1 -                      20.04        
       The Monitor for CICS/ESA 2.2 - 20.335, 21.134       21.04        
       The Monitor for MVS/ESA 1.3  -                      12.05        
       The Monitor for MVS/ESA 1.5  -                      12.05        
       The Monitor for MVS/ESA 2.0  -                      15.09        
       The Monitor for MVS/ESA 3.0  -                      19.19        
       Omegamon for CICS V200 User SMF                     12.05        
       Omegamon for CICS V300 User SMF                     13.06        
       Omegamon for CICS V400 User SMF                     16.02        
       Omegamon for CICS V400 type 110 segments            16.02        
       Omegamon for CICS V500 User SMF                     18.01        
       Omegamon for IMS V110 (ITRF)                        12.12        
       Omegamon for IMS V300 (ITRF)                        14.04        
       Omegamon for MVS V300                               13.05        
       Omegamon for MVS V400                               13.06        
       Omegamon for DB2 Version 2.1/2.2                    13.05        
       Omegamon for VTAM V160                              12.04A       
       Omegamon for VTAM V400                              15.15        
       Omegamon for VTAM V500                              18.08        
       Omegamon for SMS V100/V110                          12.03        
       ACF2 6.2                                            16.04        
       ASTEX 2.1                                           14.04        
       NETSPY 4.7                                          14.03        
       NETSPY 5.0                                          14.03        
       NETSPY 5.2                                          16.05        
       NETSPY 5.3                                          18.03        
       NETSPY 6.0                                          20.10 20.305 
       NETSPY 7.0                                          20.10 20.305 
      Boole & Babbage                                                   
       IMF 3.1 (for IMS 5.1)                               12.12        
       IMF 3.2 (for IMS 6.1 only)                          15.09        
       IMF 3.2 (for IMS 5.1 and 6.1+)                      16.04        
       LMS 3.1                                             12.12A       
       APAF 4.1, 4.3                                       16.08        
II.   Incompatibilities and Installation of MXG 21.03.                  
 1. Incompatibilities introduced in MXG 21.06 (since MXG 20.20):        
  a- Changes in MXG architecture made between 21.06 and 20.20 that might
     introduce incompatibilities.                                       
                data to create PDB.CICS, you must now use ASUMCICT.     
                See Change 21.105.                                      
 2. Installation and re-installation procedures are described in detail 
    in member INSTALL (which also lists common Error/Warning messages a 
    new user might encounter), and sample JCL is in member JCLINSTL.    
    MXG Definitions with regard to MXG Software Changes:                
    COMPATIBLE   A change in a data record which did not alter either   
                 the location or the format of all of the previously-   
                 kept MXG variables is COMPATIBLE, and you can continue 
                 to run the old version of MXG software, which will read
                 the new records without error, but none of any new data
                 fields or any new record subtypes will be created/kept 
                 until you install the MXG Version with this change.    
                 A change that alters any previously kept variable is   
                 INCOMPATIBLE, and requires the new version to be used. 
    TOLERATE     In other words, the old MXG Version TOLERATES the new  
                 data records, if they are COMPATIBLY changed.          
    EXPLOIT      Once you use the new MXG Version to read the changed   
                 records, all of the new fields, subtypes, etc, that are
                 described in this change will be created in the MXG    
                 datasets, so the new MXG Version EXPLOITS the new data,
                 and you have full support of the new data records.     
    INCOMPAT     A change in a data record that causes the current MXG  
                 version to fail, visibly or invisibly, with or without 
                 error conditions or messages, and the output datasets  
                 may contain wrong values and incomplete observations,  
                 and/or observations may have been lost.                
                 You MUST install the new MXG Version with this change  
                 to process data records that have been INCOMPATIBLY    
                 changed by their vendor.                               
    OBSERVATION COUNT CHANGE: xxxxxxxx more/fewer observations.         
      This new note will be the last line of new Changes that alter the 
      number of observations MXG creates in dataset xxxxxxxx.           
III.  Online Documentation of MXG Software.                             
    MXG Documentation is now described in member DOCUMENT.              
    See also member INDEX, but it may be overwhelming.                  
IV.   Changes Log                                                       
--------------------------Changes Log---------------------------------  
 You MUST read each Change description to determine if a Change will    
 impact your site.  All changes have been made in this MXG Library.     
 Member CHANGES always identifies the actual version and release of     
 MXG Software that is contained in that library.                        
 The CHANGES selection on our homepage at            
 is always the most current information on MXG Software status,         
 and is frequently updated.                                             
 Important changes are also posted to the MXG-L ListServer, which is    
 also described by a selection on the homepage.  Please subscribe.      
 The actual code implementation of some changes in MXG SOURCLIB may be  
 different than described in the change text (which might have printed  
 only the critical part of the correction that need be made by users).  
 Scan each source member named in any impacting change for any comments 
 at the beginning of the member for additional documentation, since the 
 documentation of new datasets, variables, validation status, and notes,
 are often found in comments in the source members.                     
Alphabetical list of important changes after MXG 20.20 now in MXG 21.06:
  Member   Change    Description                                        
  many     21.131  &OPSYS now consistently used in place of &SYSSCP.    
  many     21.289  Note 49-169 in SAS V9.1 is harmless.                 
  none     21.310  Support for z/OS 1.5.                                
  none     21.184  Support for 3592 Tape Drives, they look like 3590s.  
  ANALALL  21.250  ANALALL/ANALJOBN/VMXGPRAL job counting SMF records.  
  ANALDB2R 21.015  Using %ANALDB2R(PDB=SMF) caused syntax errors.       
  ANALDB2R 21.157  Accounting Summary Class 2 were totals, not avgs.    
  ANALDB2R 21.239  Ability to read multiple PDBs in ANALDB2R restored.  
  ANALSTC  21.135  Report using STK SMF + MXGTMNT to track Virtual tape.
  ASMIMSL6 21.064  Support for IMS Version 8.1; just reassemble L6.     
  ASMRMFV  21.002  Improved processing of RMF III data.                 
  ASMRMFV  21.236  Wrong member replaced; this has change 21.186 code.  
  ASMTAPEE 21.304  New MXG Tape "Event" Mount/Allocate/Recvr Monitor.   
  ASMTAPES 21.004  Using //EXCLUDE DD with highest DEVNR cause 0C4.     
  ASMTAPES 21.137  ASMTAPES new Allocation Recovery event record.       
  ASUM70PR 21.149  Major LPAR Measurement Enhancement: PDB.ASUM70LP.    
  ASUMCACH 21.197  Enhanced to keep I/O by LPAR in PDB.ASUMCACH.        
  ASUMCICS 21.105  Reads only CICSTRAN, creates PDB.CICS, don't use.    
  ASUMCICS 21.242  Protection for OPERATOR/TERMINAL variable not found. 
  ASUMCICT 21.105  Reads only MONITASK, creates PDB.CICS, don't use.    
  ASUMCICX 21.105  Reads PDB.ASUMUOW; use instead of ASUMCICS/ASUMCICT. 
  ASUMUOTT 21.237  New ASUMUOTT combines TMDBDB2 and MONITASK datasets. 
  ASUMUOW  21.062  Revised SPINUOW logic, forward sequence of times.    
  ASUMUOW  21.105  Combines CICSTRAN,DB2ACCT, creates PDB.ASUMUOW, use! 
  ASUMUOW  21.147  Near-constant value for STRTTIME in PDB.CICS.        
  ASUMUOW  21.194  Variables added to PDB.ASUMUOW                       
  ASUMUOW  21.220  FLASH: MXG 21.06 required to have all errors fixed.  
  ASUMUOWT 21.035  ASUMUOWT failed with BY VARIABLES NOT SORTED.        
  ASUMUOWT 21.105  Combines MONITASK,DB2ACCT, creates PDB.ASUMUOW, use! 
  AUTOEXEC 21.290  Option defaults changed for SAS V 9.1 for ASCII.     
  BLDNTPDB 21.103  Relocated copying of WEEKn.                          
  BLDSMPDB 21.255  New BLDSMPDB builds SMF PDB Jobstream, weekly, etc.  
  BUILDPDB 21.056  Exit EXPDBSPJ created for local variables for spin.  
  CLRMFIII 21.002  CLIST for batch execution to read all RMF III data.  
  CONFIGV8 21.168  SORTSEQ=EBCDIC or SORTSEQ=ASCII forced default.      
  CONFIGV9 21.290  Option defaults changed for SAS V 9.1 for EBCDIC.    
  DAILYDSR 21.293  Support for DFSMS/rmm+DCOLLECT in JCLDAYDS example.  
  DOCLRMFV 21.002  Documentation of CLRMFIII CLIST.                     
  EMAIL    21.308  Example to email a PROC PRINT to a list of users.    
  EXUTILEX 21.069  Exit for UTILEXCL for non-standard "User" field.     
  FORMATS  21.057  RACF MG080QU,TY formats updated for z/OS 1.2-1.4.    
  FORMATS  21.141  $MG070CP updated for MSU for CPUTYPE 2084 table.     
  GRAFTRND 21.040  New plots of Peak to Average Utilization ratio.      
  IMAC6ESS 21.014  Multiple 6-ESS "0031" USERDATA segments supported.   
  IMAC6ESS 21.082  Support for additional GPARMKY values in SMF 6 ESS.  
  IMAC6ESS 21.096  Support for GEPARMKY=001B.                           
  MONTHBLD 21.163  Enhancement for un-sorted input, or NOT SORTED ERROR.
  MXGSASV8 21.009  Symbolic parm WORKVOL= added, default 5 volumes      
  PROCCOPY 21.279  Use MT=DATA with PROC COPY + SELECT for performance. 
  RMFINTRV 21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  RMFINTRV 21.216  z990 CPUTYPE 2084 NOT IN TABLE with OS/390 R2.10.    
  RMFINTRV 21.225  RMF WORKLOAD name can be used to define workloads.   
  RMFMON   21.252  Free Interactive RMF control block monitor.          
  SAS V9   21.028  Early V8-V9 comparisons flawed, V9 is better.        
  SAS V9.1 21.289  Note 49-169 blanks inserted to eliminate note        
  SYSLOG   21.307  Example program to read SYSLOG for job events.       
  TYPE102  21.061  Support for dataset T102S196 (locks) validated.      
  TYPE102  21.121  Support for IFCID 251, 257, corrections for 21.      
  TYPE102  21.175  Support for IFCIDs 217 and 254.                      
  TYPE103  21.115  Support for APAR PQ71799 HTTP Server SMF 103 data.   
  TYPE108  21.018  Support for Domino Server Relase 6.0.0 new data.     
  TYPE110  21.100  CICSTRAN RTYPE='S' or 'F' decoded.                   
  TYPE110  21.101  CPURLSTM wrong with CICS/TS 1.1 or later             
  TYPE110  21.165  STID=126 UNEXPECTED data corrected.                  
  TYPE110  21.189  New 110 St=1 MNSEGCL=5 caused INVALID DO LOOP CONTROL
  TYPE110  21.198  Missing value for STRTTIME in CICSTRAN possible.     
  TYPE110  21.212  Support for CMODNAME='MQSeries' CICSTRAN segment.    
  TYPE110  21.240  Support for new S4RSP7CT in STID=124 CICS record.    
  TYPE115  21.183  SMF 115 ST 2 INPUT STATEMENT EXCEEDED corrected.     
  TYPE115  21.262  WebSphere MQ Version 5.3 SM115REL added.             
  TYPE116  21.173  Subtype 0 SMF 116 INVALID PRODUCT SECTION message.   
  TYPE116  21.262  WebSphere MQ Version 5.3 SM116REL added.             
  TYPE119  21.162  IFDURTM was incorrectly divided by 496 vice 4096.    
  TYPE119  21.190  Support for APAR PQ77633, corrects FTPREPLY.         
  TYPE120  21.107  Support for WebSphere APAR PQ74463 - adds CPU time.  
  TYPE120  21.150  Support for CPU Time in WASserver APAR PQW74463.     
  TYPE120  21.294  Support for JVM Heap sizes in SMF 120 st 1 and 3.    
  TYPE30   21.086  Support for IDMS PerfMon type 30 subtype 3 per   tran
  TYPE42   21.010  SMF 42 offsets subtype 20,21 wrong in IBM doc, fixed.
  TYPE42   21.288  Support for Type 42 Subtype 10 TYPE42VS Vol Sel Fail 
  TYPE6    21.210  Support for ESS segments '34x,35x,37x,47x'.          
  TYPE6    21.226  Support for GEPARMKY=000B in ESS, variable ESSDEFAU. 
  TYPE6156 21.123  Non-duplicate (Data/Index) TYPE6156 were NODUPed.    
  TYPE70   21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  TYPE7072 21.065  Support for more than 16 CPUs or LPARs.              
  TYPE7072 21.130  Support for APAR OW56656 for RMF for z990 (COMPAT).  
  TYPE7072 21.138  R723Rxxx vars now kept in TYPE72DL vice TYPE72SC.    
  TYPE7072 21.275  SMF70CIN/LPARCPUS wrong if VSAM SMF read             
  TYPE7072 21.287  NRCPUS=ROUND(NRCPUS,.001); for 2.00000040 value.     
  TYPE70PR 21.108  LPnNSW - Percent When Soft Capped variables added.   
  TYPE71   21.218  TYPE71 variables had AVAILABLE...USED, USED removed. 
  TYPE73   21.007  PCHANBY missing for 'CFS/CFP/CBP/CBS/IFP' TYPE73.    
  TYPE73   21.098  Some TYPE7204 "SUM OF" variables weren't.            
  TYPE74   21.058  Support for APAR OW54347 CMR Command Response time   
  TYPE74   21.059  TYPE74ST negative values corrected, QSIZ retained.   
  TYPE74   21.238  Dataset TYPE74DU (RMF DUPLEX CF) was trashed.        
  TYPE79   21.003  Variable R791FMCT needed to be multiplied by 4096.   
  TYPE80A  21.201  Protection for SMF80DTP=53 (RUTKN) with wrong len.   
  TYPE80A  21.211  Support for RACF segment RACFDBP=44, new variables.  
  TYPE80A  21.215  Support for EKC's ETF/R FIRECALL SMF 80 data.        
  TYPE85   21.104  OAM SMF 85 from R85PRVM 1.3.0 caused STOPOVER.       
  TYPE90   21.196  INVALID DATA FOR VERSN90 has no impact.              
  TYPE94   21.191  Variable SMF94VCZ recalculated when it is zero.      
  TYPE99   21.217  Support for SMF 99 subtype 7 PAV Device record.      
  TYPEAIX  21.116  Major revision to AIX PTX Support - new datasets.    
  TYPEBE97 21.312  Support for Beta97 User SMF record.                  
  TYPECIMS 21.153  Support for BMC MVIMS IMF 3.3.0 (COMPAT)             
  TYPECIMS 21.205  Support for Shared Message Queue Group in SMQGROUP.  
  TYPECTLL 21.156  Support for Control-D Log file.                      
  TYPECTLT 21.026  Support for Control-T Release 6 (INCOMPATIBLE).      
  TYPEDB2  21.006  Negative values in DB2STATB after stop/start DB2.    
  TYPEDB2  21.140  PDB.DB2STATS QBGLxxxx wrong, negative B3HITRAT.      
  TYPEDB2  21.187  PDB.DB2GBPST occasionally had invalid (large) values.
  TYPEDB2  21.200  Negative values for DB2TCBTM if QWACEJST small.      
  TYPEDB2  21.208  QWACBSC/QWACESC missing in DB2ACCTP, some packages   
  TYPEDB2  21.259  Using VMXGTIME with DB2 caused GMTOFFDB/QWACBSC wrong
  TYPEDB2  21.281  Support for DB2 Version 8.1, COMPATIBLE back to 20.20
  TYPEEDGR 21.158  Support for z/OS 1.4 DFSMS/rmm EDGRXEXT (INCOMPAT)   
  TYPEEDGS 21.122  MACRO _LNEDGS resolves STOPOVER with rmm data.       
  TYPEENTX 21.124  Support for EntireX user SMF accounting record.      
  TYPEEXCH 21.195  Support for Microsoft Exchange Server 5.5 Log file.  
  TYPEHMF  21.143  Support for HMF Subtype 29,30,32,33 changes.         
  TYPEICE  21.102  Support for STK IXFP SMF L2P00A2/LZP00A9 (COMPAT)    
  TYPEIMS7 21.064  Support for IMS Version 8.1, some changes.           
  TYPEMVCI 21.117  Support for Mainview for CICS 5.6 CMRDETL (INCOMPAT).
  TYPEMWUX 21.241  Revised support for HP Measureware for HPUX.         
  TYPENDM  21.133  Support for NDM Release 4.3 (INCOMPATIBLE).          
  TYPENDM  21.286  Support more NDM/Connect Direct subtypes, 26 new dset
  TYPENETM 21.263  Support for UniCenter NetMaster Automate Services SMF
  TYPENSPY 21.155  NetSpy Version 6 and 7 already supported since 20.10.
  TYPENTSM 21.053  Support for NTSMF BlackBerry Server object.          
  TYPENTSM 21.063  Support for NTSMF 2.4.5 (INCOMPATIBLE).              
  TYPENTSM 21.136  SMPTSERV for Windows 2000 had accumulated values.    
  TYPENTSM 21.146  Support for Windows 2003 Server MEMORY object.       
  TYPENTSM 21.193  Variable BYTEAVAI can be zero.                       
  TYPENTSM 21.285  Support for Web Service Cache, WSRM objects.         
  TYPEOMDB 21.243  Support for Candle Omegamon II for DB2 Historical.   
  TYPEOMVT 21.311  Support for Omegamon/VTAM subtypes 29 and 30.        
  TYPEOPC  21.202  INPUT STATEMENT EXCEEDED.                            
  TYPEOPFT 21.233  Support for Fujitsu Siemens openFT ftp SMF record.   
  TYPEORAC 21.019  Oracle ASID, ELAPSTM corrected.                      
  TYPEORAC 21.213  Support for Oracle V9.x, no changes.                 
  TYPEQACS 21.013  INVALID DATA for QAPMDISK file corrected.            
  TYPEQACS 21.033  AS/400 5.2 file's LRECLs have been validated.        
  TYPEQACS 21.118  Support for TCP and TCPIEF objects for AS/400.       
  TYPEQACS 21.224  New QAPMCONF GDESIL/IT/PU were missing values.       
  TYPESASU 21.251  Support for SAS SMFEXIT adds SAS Version/User/JOBID. 
  TYPESYNC 21.192  Up to 255 SORTWORKs supported in z/OS 1.1 SMF record.
  TYPETCP  21.142  TYPETCPS contained accumulated, not interval data.   
  TYPETMMQ 21.129  Support for ASG-Landmark TMON for MQ Series.         
  TYPETMO2 21.134  MONITASK UOW variables were incorrect.               
  TYPETMS5 21.097  Support for PDC # QI30130 new variables.             
  TYPETNG  21.024  Support for TNG "Enterprise Cubes", processes, plus. 
  TYPETNG  21.095  Support for six new TNG objects, new fields.         
  TYPETNG  21.160  Support for TNG Version 7 (INCOMPAT, Header changed).
  TYPETNG  21.269  Major enhancement/validation of new TNG objects.     
  TYPETPMX 21.209  New fields supported.                                
  TYPETPMX 21.271  Major enhancement/validation of ThruPut Manager SMF  
  TYPETSMF 21.210  Support for IBM Tivoli Storage Manager Acct Records. 
  TYPEWWW  21.166  IIS Web Log with missing fields now supported        
  TYPEWWW  21.221  Web Log INVALID ARGUMENT with negative GMT offset.   
  TYPEXAM  21.023  Support for TCP/Linux/etc, plus lots of cleanup.     
  UNIXSAR1 21.309  Support for "sar", "acctcom", "ps" for AIX/SUN unix. 
  UNIXTOP  21.314  Support for "top" unix report.                       
  UTILBLDP 21.148  Enhancement to the "Build your own PDB" utility.     
  UTILBLDP 21.231  USERADD=80/90 create TYPE80A or TYPE90A execution.   
  UTILEXCL 21.054  Variables KY8DISTM/KY8CPUTM corrected.               
  VMACSMF  21.127  Variable INFILENM contains input DSNAME or dir/file. 
  VMXGINIT 21.253  Global macro variables TRENDOLD/TRENDNEW/TRENDINP.   
  VMXGRMFI 21.067  Examples to invoke RMFINTRV twice, general cleanup.  
  VMXGRMFI 21.094  Corrections to MSU4HRAV calculation.                 
  VMXGRMFI 21.113  Parsing of more than 99 service class names.         
  VMXGRMFI 21.125  Different SRVCLASS definitions can map to same WORK. 
  VMXGRMFI 21.234  Test for '2084'x CPUTYPE, only needed S/390 R2.10.   
  VMXGSUM  21.185  New INTERVAL=SECOND now supported.                   
  VMXGSUME 21.277  Enhanced alternative, tolerates non-present variables
  VMXGUOW  21.093  PDB.ASUMUOW corrected, blank SYSTEM plus others.     
  WEEKBLDT 21.045  WEEKBLDT fails under SAS Version 6.                  
Inverse chronological list of all Changes:                              
NEXTCHANGE: Version 21.                                                 
====== Changes thru 21.320 were in MXG 21.21 dated Feb 10, 2004=========
Change 21.320  MXG 21.21 final QA corrections/incompatibilities:        
CLRMFV        -SEQENGINE=V6SEQ changed to V8SEQ/V9SEQ in CONFIGV8/V9.   
CONFIGV8       See MXG Tech Note 4.A in Newsletter FORTY-FOUR, 10Feb04. 
CONFIGV9      -VMACDB2. Remove line 8259: PUT _N_= 'HAVE 239 ';         
EXTMNSTS      -UTILEXCL. Add a second percent-sign to change line 218 to
IMACTMNT                   %%INCLUDE SOURCLIB(IMACZDAT);                
UTILEXCL      -CLRMFV. Cosmetic. A "NOT" and EQUAL symbols slipped thru 
VMAC90         and were changed to "NE"; NOTs don't translate well among
VMACDB2        platforms, and were removed back in Change 8.093         
VMACTMNT      -Only if you received MXG on CD: Change line 57 in member 
VMXGINIT       VMACTMNT, removing  "DEVNR", changing the line to be:    
Feb 10, 2004           MACRO _BTYSTS SYSTEM SHIFT INTBTIME %            
              -The CD-only VMACTMNT error was caused by my accidental   
               copying of support for the new TYPESTAT statistics data  
               from the subtype 6 ASMTAPEE ML-30 SMF record, after the  
               ftp and tape files were built.  TYPESTAT was validated,  
               but I didn't use TYPSTMNT to test its sort macro. Member 
               EXTMNSTS was added and VMXGINIT updated for TYPESTAT and 
               the sort has been tested in this final iteration.        
              -Variables SMF9029N,SMF9029A,SMF9030I in archaic VMAC90   
               were renamed A, N, and Y, only in case someone foolishly 
               uses both VMAC90 and VMAC90A in same step.  Use VMAC90A. 
   Thanks to George Canning, Abbey National Plc, ENGLAND.               
   Thanks to Vernon Kelley, IBM, USA.                                   
====== Changes thru 21.319 were in MXG 21.21 dated Feb  6, 2004=========
Change 21.319  Variables PARTNCPU and CPCMSU were added to the new      
VMXG70PR       PDB.ASUM70LP dataset so the hardware attributes of       
Feb  6, 2004   the number of engines and MSU capacity are kept.         
Feb 10, 2004                                                            
   Thanks to Una Cho, CIGNA, USA.                                       
Change 21.318  The label for DB2 variable QLACRBND should be            
Feb  5, 2004   ... REMOVE ....                                          
   Thanks to Marnel Groebner, State of Washington, USA                  
Change 21.317  IBM changed the contents of SMF64BMH; its new label is   
Feb  5, 2004   the number or requests obtained from the local shared    
               buffer pool, and not the old VSAM LSR pool.              
   Thanks to Thomas R. Coccia, Bank One, USA.                           
   Thanks to Hari Maramraju, Bank One, USA.                             
   Thanks to Raymond G. Seeley, IBM OS/390 Support, USA.                
Change 21.316  Updates for SMF record from Serena Ultimizer fix an INPUT
VMACULTM       EXCEEDED error and revised INPUT logic have been tested  
Feb  4, 2004   with Version R313, but the DSECT indicates no changes    
               since R310.                                              
   Thanks to Scott Barry, SBBWorks, Inc, USA                            
Change 21.315  PDB.TYPE70PR data with STARTIME 10:13:59 and 10:14:00    
VMXG70PR       caused multiple observations in PDB.ASUMCEC; the logic   
Feb  4, 2004   to force STARTIME across the CEC to the nearest minute   
               was changed to   STARTIME=60*FLOOR((STARTIME+30)/60);    
               and now those two observations are correctly combined.   
               Why the STARTIME are off by a full second in a SYSPLEX   
               is not known at this time.  See Change 23.070 redesign.  
    Thanks to Alan Gray, Carefirst, USA.                                
Change 21.314  Support for "top" unix command in this user contribution.
UNIXTOP        This member contains input for IEBUPDTE to create a PDS  
Feb  4, 2004   or directory of the sample program.                      
               This code is not yet "MXG-structured".                   
               Comments in the members tell you what to do!             
   Thanks to Xiaobo Zhang, ISO, USA.                                    
Change 21.313  Error IEC143I 213-04 on STEPLIB DD with the SAS JCL PROC,
MXGSASV8       after you have executed MXGSASVx JCL Proc, tells you to  
MXGSASV9       change your SAS proc to //NULLPDS DD DISP=(NEW,DELETE),  
Feb  4, 2004   to matches MXG's discovery that (NEW,DELETE) is safer for
               all sites than (MOD,PASS) - see text of Change 20.076.   
                  However, if you do NOT have CA-11, and you are not the
                  SAS installer, you can circumvent this error by making
                  //NULLPDS in MXGSASxx PROC use the archaic (MOD,PASS).
               This change is doc only; nothing was changed in MXG.     
   Thanks to Allana Jacob, IBM CANADA LTD, CANADA.                      
Change 21.312  Support for Beta97 creates new datasets in this user     
EXTYB970       contribution.                                            
Feb  4, 2004                                                            
   Thanks to Stephen Bell, Sparkassen Informatik, GERMANY.              
Change 21.311  Support for Omegamon for VTAM subtype 29/30 additions and
VMACOMVT       protection for INPUT STATEMENT EXCEEDED error, and for   
Feb  3, 2004   records that are too short to contain all IRECS.         
   Thanks to Manfred Engelhart, Candle GmbH, GERMANY.                   
Change 21.310  Support for z/OS 1.5 (V 1 Release 5) is already in place 
DOC            in MXG 21.04 and later (required for z/OS 1.4 PTFs), so  
Feb  3, 2004   no new MXG changes are required.  Minor additions in data
               fields that were reserved were compatibly made by IBM.   
Change 21.309  Enhanced support for "sar", "acctcom", and "ps" reports  
UNIXSAR1       for AIX & SUN unix platforms, in this user contribution. 
Feb  3, 2004   In addition to the existing UNIXSAR example, this member 
               contains four SAS members and two Perl scripts that you  
               can use to process "sar" data.  You need to install the  
               daemons in the SUN and AIX operating systems; collect the
               data in each system, ftp or nfs the data to MXG, and then
               process the sar data with the SAS programs.              
               This member contains input for IEBUPDTE to create a PDS  
               or directory of the sample program.                      
               This code is not yet "MXG-structured".                   
               Comments in the members tell you what to do!             
   Thanks to Uriel Carrasquilla, NCCI. USA.                             
Change 21.308  Member EMAIL previously contained examples to send an    
EMAIL          email from SAS; this enhancement defines %MACRO EMAIL    
Feb  3, 2004   that will send a PROC PRINT of any SAS dataset via a     
               list of email addressees.                                
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.307  Example program that reads z/OS SYSLOG file for specific 
SYSLOG         events; an excellent starting place for additional event 
Feb  3, 2004   analysis.  Please send your updates for other events.    
               This example tracks these SYSLOG events:                 
                AQ/HQ       Activate/Hold JES2 input job queue          
                SI/TI/PI    Start/Modify/Purge Initiators               
                TJ          Modify a job - class, scheduling environment
                SJ          Force a job to start, disregard class limits
                T JOBCLASS  Modify characteristics of a job class       
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.306  This change was rewritten.  There is no new "87F3x" flag 
VMACVMXA       (which was actually a typo, the value was "873Fx") and   
Feb  3, 2004   MONWRITE was not changed.  However, if you ftp MONWRITE  
Mar 22, 2004   data, and translate it from EBCDIC to ASCII, instead of  
               using a BINARY ftp transfer, you will find the incorrect 
               0000873Fx value instead of 00008709x at the start of the 
               data file, and you'll get *ERROR* PROBABLE DATA LOSS DUE 
               TO MONWRITE FAILURE messages.  Always ftp MONWRITE as    
               BINARY, (i.e., NOASCII NOCRLF if using IND$FILE, etc.)   
               Aug 20, 2004:  If you send VMACCT data and translate it  
               from EBCDIC to ASCII, CPUMODEL='3F84'x results, which is 
               the cause of INVALID DATA error for a '2084'x CPU.       
   Thanks to Dwain Majak, ACS, USA.                                     
   Thanks to Sudie Wulfert-Schickedanz, Anheuser-Busch Companies, USA.  
Change 21.305  UNDECLARED ARRAY REFERENCED: ICSRDQU error precedeed by  
Feb  3, 2004   to back-level VMXGINIT in tailoring that didn't define   
               &WCICRDQ.  The text   &WCICRDQ..CICSRDQU (KEEP=  without 
               the macro var was parsed to      ISCRDQU (KEEP=  which   
               looks just like an array reference to SAS compiler.      
               Real purpose of this note is to suggest to always take   
               care of the first SAS error first, and then rerun to see 
               if that also took care of subsequent SAS errors during   
               compile of complicated programs.                         
   Thanks to Michael Cosentino, Rohm & Haas, USA.                       
Change 21.304  New MXG Tape "Event" Mount/Allocate/Recovery monitor sees
ASMTAPEE       all tape events, no longer samples for mounts, and gets  
VMACTMNT       back all of the JOB-level data lost when we gave up XMEM.
Feb  5, 2004   ASMTAPEE is a complete redesign that executes in a mount 
               exit in the address space of the job, so we not only see 
               all mount events, but no longer have to use Cross Memory 
               Services.  The new design had one field test iteration   
               last year, and only one graceful failure (i.e., only an  
               ABEND of the monitor program, no impact to the system)   
               when two concurrent allocation recovery events for the   
               same device occurred, which is now protected.            
               However, please test this new design with extreme care;  
               this text will be updated when we have had confirmed     
               field tests and feed back from new users.  See comments  
               in the ASMTAPEE member for more information.             
               Since ASMTAPEE will eventually replace ASMTAPES, this    
               is "ML-30" of the MXGTMNT program.                       
               When MXIT=YES is used, then the mount exit monitoring is 
               used instead of interval sampling.  MXIT=NO is default;  
               you must change that default to create the exit monitor. 
               The new MXIT=YES exit monitor (like the recently added   
               allocation recovery monitor logic) runs in a subtask of  
               MXGTMNT to keep it separate and independent.  If an      
               unrecoverable error occurs in the MXIT=YES subtask, it   
               will shut itself down and switch back to using the old   
               interval sampling method, so that records won't be lost. 
               New variable TMNTFLAG='1.......'B is set in records that 
               are created by the new exit monitor.                     
               The tape allocation monitoring function still uses       
               interval sampling.                                       
               Most of the fields that were removed when we disabled    
               XMEM processing are populated by the exit monitor, and   
               these new variables are created in TYPETMNT dataset:     
                  ASID    ='ASID'                                       
                  DDNAME  ='DD NAME'                                    
                  DSNAME  ='DSNAME NAME'                                
                  TMNTACTN ='MNTFLG: 80 04 02 01'                       
                  TMNTDEVC='DEVICE*NUMBER AS*CHARACTER'                 
                  TMNTEDUR ='EVENT*DURATION'                            
                  TMNTFLAG ='MNTFLG: 80 04 02 01'                       
                  TMNTRCN ='RELATIVE*CONCATENATION*NUMBER'              
   Thanks to "".                                          
Change 21.303  Variable ZARCHMDE, "System is running in z/Architecture" 
VMAC7072       is now kept in TYPE70 dataset, since it has been found to
Feb  2, 2004   be a useful discriminant when activating Z/Arch mode.    
   Thanks to Cheryl Watson Walker, Watson & Walker, USA.                
Change 21.302  DB2 SMF 102 IFCID=22 variable QW0022OS was negative when 
VMAC102        the &RB.4. field contained 'FFFFFFFF'x, an invalid float 
Feb  2, 2004   value.  MXG now tests and detects and sets QW0022OS to a 
               missing value instead of -7.237E75.  There is no IBM note
               describing why the SQL cost was not validly populated.   
   Thanks to Frank d'Hoine, National Bank of Belgium, BELGIUM.          
Change 21.301  Ahh, what we have to do to keep MXG running under SAS V6!
Jan 30, 2004   DS2ACT and DS2TCT started in column 1 of the ORDER= stmt,
               and the preceding label's ending quote was in column  72,
               and the V6 parsing was imperfect.  Inserting a blank has 
               corrected this V6.09-only error, caught in our QA.       
                 P.S. The only impact without this change was that the  
                 real variables DS2ACT/DS2TCT had blank labels.         
   Thanks to Freddie Arie, TXU, USA.                                    
Change 21.300  The calculated EXPORTIM was incorrect for hour 0; the    
VMACHPAI       logic was revised to protect that hour of the day.       
Jan 30, 2004                                                            
   Thanks to Nick Johns, Sainsburys, ENGLAND.                           
Change 21.299  PARTNCPU was zero for z800s running in basic mode.   MXG 
VMXGRMFI       tested SMF70WLA, the image size, to determine what data  
Jan 30, 2004   is present, because on OS/390 R2.10 or lower, SMF70WLA   
               was zero or missing.  But when basic mode or LPAR mode is
               running with OS/390 R2.10 or z/OS, SMF70WLA is populated 
               with the image size in MSUs.  When there are no LPARS,   
               PARTNCPU was zero, so using CPCNRCPU=PARTNCPU was wrong. 
               The test was revised to use SMF70LAC, which is zero on   
               basic machines, but nonzero for LPARs.                   
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.          
Change 21.298  Nearly cosmetic; all variables were kept in TYPE30_4 when
ANAL30         four were needed; the MACRO _KTY30U4 V1 V2 V3 V4 %  was  
Jan 29, 2004   replaced with  MACRO _VTY30U4 KEEP= V1 V2 V3 V4 %        
   Thanks to Diane Eppestine, SBC, USA.                                 
Change 21.297  Variable ZDATE added to the list of variables kept in the
UTILEXCL       PDB.CICSDICT dataset, for possible use.                  
Jan 29, 2004                                                            
Change 21.296  Does MXG support the VM Performance Tool Kit data file?  
TYPEVMXA       There is a VM Perf took kit that apparently creates its  
Jan 29, 2004   own output data file, but that file is not supported in  
               MXG, because MXG's TYPEVMXA member supports all of the   
               monitor data from the IBM-supplied CMS MONWRITE command, 
               rather than the tool kit's subset of the monitor data.   
               I thought there might be an actual MONWRITE execution as 
               part of the tool kit's process, so that you would only   
               have to find and read that intermediate file,            
                  and if you find there is one, please let me know,     
                  or if you find there is tool kit data not in MONWRITE,
                     then I'll consider supporting the tool kit file,   
               but one user found it easier just to create a virtual    
               machine and run MONWRITE in it to monitor all of the VMs 
               on that system (including each of the Linux machines!);  
               His virtual machine had these directory statements:      
                 IUCV *MONITOR MSGLIMIT 255 NAMESAVE MONDCSS            
               and then he can issue the "start" command:               
                 MONWRITE MONDCSS *MONITOR DISK                         
               command which will cause the MONWRITE records to be      
               copied from the monitor to this virtual machine and      
               written on its a-disk.  Then the command                 
               is issued to close the file and then reissue the "start" 
               command to start the monitor back up.                    
               As he said, "it's crude, but it works."                  
   Thanks to Jerry Ellis, Liberty Mutual, USA.                          
Change 21.295  Documentation of /VIEW limitation.  This simple program  
doc            should read SMF type 110 records, create dataset CICSTRAN
Jan 29, 2004   as a view (to skip a write and read of CICSTRAN), and at 
               the same time, create all of the CICS Statistics datasets
               in the //WORK file, then PROC SORT each of the CICS stats
               datasets to the //PDB by the _S110ST macro, and then the 
               _SUOWCIC macro will PROC SORT the CICSTRAN view to create
               the PDB.ASUMUOW dataset.   This program fails:           
                      %INCLUDE SOURCLIB(VMAC110,VMACSMF,IMACKEEP...);   
                      _VAR110 /VIEW=_WCICTRN;                           
               because of the /VIEW operand.  Remove the /VIEW= and the 
               program works as expected.  Why?  Because the existence  
               of a /VIEW defers the execution of that data step until  
               that dataset is referenced, but the _S110ST macro starts 
               results since that dataset hasn't yet been create; what's
               really confusing is that the INFILE SMF messages are not 
               on the log, and SMF was never opened.                    
               However, reordering the macro references:                
                      _VAR110 /VIEW=_WCICTRN;                           
               the program works just fine, because the CICSTRAN gets   
               referenced first, the data step runs, and _SUOWCIC runs, 
               and the CICS Statistics Data Sets are SORTed at the end. 
                 Okay, since VIEW= is for performance, putting the Sort 
                 of CICS Stats after _SUOWCIC means those stat datasets 
                 will be occupying //WORK space until after _SUOWCIC    
                 ends, which might itself be a bigger performance issue 
                 than the write/read of CICSTRAN saved with the VIEW.   
                 An alternative that writes those CICS Statistics Data  
                 Directly to the PDB library, without the PROC SORT, so 
                 no duplicates will be detected, but without the extra  
                 copy, was described in Change 18.152:                  
                     //SYSIN DD *                                       
                       %INCLUDE SOURCLIB(VMAC110,VMACSMF,IMACKEEP...);  
                       %LET CICSTAT=PDB;                                
                       ... rest of your program                         
Change 21.294  Support for new JVM Heap data in SMF 120 subtype 1 and 3:
EXT120SR        Subtype dddddd   dataset   description                  
IMAC120           1     T120SH   TYP120SH  server region heap           
VMAC120           3     T120SR   TYP120SR  server region intervval heap 
VMXGINIT       Has been tested with only one heap per server region, so 
Jan 29, 2004   have not validated with multiple heaps and code is nasty.
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.               
Change 21.293  Support for DFSMS/rmm + DCOLLECT in the JCLDAYDS example.
DAILYDSR       The original JCLDAYDS, for "Daily Data Set Accounting"   
JCLDAYDS       used DCOLLECT for DASD space accounting and TMS/CA-1 for 
Jan 29, 2004   tape storage; this enhancement will use IBM's DFSMS/rmm  
               instead of TMS for your tape storage accounting.         
   Thanks to Diane Eppestine, SBC, USA.                                 
====== Changes thru 21.292 were in MXG 21.08 dated Jan 28, 2004=========
Change 21.292  Jan 26 21.08: ERROR: VARIABLE R0723AX NOT FOUND TYPE7002,
VMAC7072       when sorted; correct name is R7023AX in the _BTY7002     
Jan 28, 2004   macro definition.                                        
   Thanks to Craig Loubser, Winn-Dixie, USA.                            
Change 21.291  If your "PDB" Data Libraries were built by V6, reusing   
TYPE102        that old V6 PDB under SAS V8/9 to create MXG datasets    
Jan 27, 2004   with "long length character variables", i.e, those with  
               "LENGTH varname $ &SASCHRLN;" in their VMACxxxx member,  
                 like SQL text variable QW0063ST in T102S063 dataset,   
               will fail.  You must write those V8 SAS datasets to V8   
               data libraries; you cannot write them to a V6 library.   
               Create a new data library with SAS V8, and if you need   
               any of the old datasets as input, the use PROC COPY to   
               copy from the old V6 library to the new V8 library.      
                 In this specific case, the error that surfaced was that
                 variables SEG10263 and LEN10263 were missing; they were
                 counts of 200-byte segments of SQL text under SAS V6.  
   Thanks to Frank d'Hoine, National Bank of Belgium, BELGIUM.          
====== Changes thru 21.290 were in MXG 21.08 dated Jan 26, 2004=========
Change 21.290  Changes in OPTIONS for SAS V9.1.                         
AUTOEXEC      -The options for printing statistics on the SAS log have  
CONFIGV9       been enabled and made consistent; benchmarks with V9.1   
JCLTEST9       show there is no longer a CPU cost associated with these 
MXGSASV9       options, now the default, as their informatiopn on the   
Jan 27, 2004   log has been very useful in execution problem resolution.
Jan 31, 2004   -ASCII:  AUTOEXEC  STIMER FULLSTIMER                     
                 Under Windows, SAS V9.1 FULLSTIMER increased run time  
                 by only 14 seconds in a 5 minute execution.            
              -New options DTRESET added to both AUTOEXEC and CONFIGV9, 
               to print the current date/time on the SAS log and SAS    
               listings (rather than the constant step initiate time on 
               every page!).                                            
              -See also Newsletter FOURTY-FOUR, which contains benchmark
               comparisons of SAS V9.1, along with other notes          
               concerning using 9.1.                                    
              -The DLEXCPCOUNT option causes these messages to be on the
                  12.56.18 JOB00052  +SAS processed 122 blocks and      
                    and performed 64 EXCPs on library MXG.MONTHRPT.VOLS 
====== Changes thru 21.289 were in MXG 21.08 dated Jan 25, 2004=========
Change 21.289  Execution tests with SAS Version 9.1 caused NOTE 49-169  
VMAC6156        "NOTE 49-169: The meaning of an identifier after a      
IMACICBB         quoted string may change in a future SAS release.      
VMACX37          Inserting white space between a quoted string and the  
VMACEREP         succeeding identifier is recommended."                 
ANALDB2R       V9.1 fixed the 9.0 spurious 49 problem, so 9.1 notes were
ANALRMFR       used to find the 7 members and 14 lines of MXG code that 
ANAL94         needed a blank to be inserted to support for this future 
Jan 25, 2004   SAS version now, and make these notes go away.           
               Because you may have similar now-non-recommended-syntax, 
               these are the statements that were flagged and revised.  
                Member      Statement    Text                           
                VMAC6156    PUT         '***'JOB                        
                IMACICBB    LABEL     'ID*(='23'x)'                     
                VMACX37     IF     EQ 'X37 3'OR PRODREL                 
                VMACEREP    LABEL      '...('YY'X)'                     
                ANALDB2R    PUT     ...text='QW0020PC' text'            
                            PUT     ...text='QW0020AN' text'            
                            PUT     ...text='QW0023PD' text'            
                            PUT     ...text='QW0024PD' text'            
                            PUT     ...text='QW0025PD' text'            
                ANALRMFR    PUT           "*"LPARNAME"*"                
                            PUT      PERIOD='PERIOD                     
                ANAL94      PUT     'S94TVCS'GB'       3 times          
Change 21.288 -Support for Type 42 Subtype 10, Volume Selection Failure'
EXTY42VS       because of insufficient space when allocating a dataset  
IMAC42         creates new TYPE42VS dataset.                            
VMAC42        -Type 42 subtype 3 TYPE42AU SMS AUDIT with SMF42EAC='VARY'
VMXGINIT       needed +22 instead of +21 after SMF42ENM, causing vars   
Jan 25, 2004   SMF42EVL/ESY/EST to be incorrect by one byte.            
   Thanks to Chris Edwards, Defence Computing Bureau, AUSTRALIA.        
Change 21.287  Calculation NRCPUS=SMF70ONT/DURATM had value 2.00000040  
VMAC7072       when IRD was not in use, and that fractional value had   
Jan 25, 2004   impact on PCTRDYWT and CPUUPTM calculations.  Calculation
               now uses    NRCPUS=ROUND(SMF70ONT/DURATM,.001);          
               to keep three decimal accuracy after that calculation.   
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.          
Change 21.286  Enhancement to support many NDM/Connect Direct subtypes  
EXNDMCS        that were previously skipped, with/without log messages. 
EXNDMEI        All known NDMRTYPEs are now recognized and will be output
EXNDMEV        in their corresponding NDMxx dataset; those for which I  
EXNDMFA        could find DSECTS have additional variables INPUT, and   
EXNDMIP        those for which I had test records have been validated.  
EXNDMJX        The ACCOUNT/DATASET name offsets are decoded, but the    
EXNDMLS        offset not yet exploited, since no one has actually asked
EXNDMMF        for any of this new data; users just observed the log    
EXNDMPE        messages that these new types existed in their SMF data. 
EXNDMPX        Fully Decoded:                                           
EXNDMQE            Dataset  NDMRTYPEs Output                            
EXNDMQT             NDMPS - PS or SW                                    
EXNDMRE             NDMPX - PX                                          
EXNDMRO             NDMQE - QE QH QT QW                                 
EXNDMS2             NDMSY - SY: NO DSECT, ADDL DATA EXISTS.             
EXNDMSC             NDMAE - AE DU,IU,SU,UM                              
EXNDMSD             NDMSD - SD                                          
EXNDMSH             NDMCI - CI CE TI JI                                 
EXNDMSY        Header Only Decoded:                                     
EXNDMTR                 CS FA GO IF JX LS MF NL PE PI RE RO S2 SB       
EXNDMUM                 SC SH SY TP TR WS XO                            
EXNDMWS        The Header Only subtypes are output, but only with header
EXNDMXO        variables; MXG prints a message and hex dump of the first
IMACNDM        of each new subtype, up to 10 new subtypes.  If you have 
VMACNDM        the DSECT documentation of those Header Only subtypes,   
Jan 25, 2004   please send them so I can fully decode those subtypes.   
               If you want to suppress those MXG messages from NDM, use:
                   //SYSIN DD *                                         
                   %LET MACFILE= %QUOTE( RETAIN NDMNEWST 99;  );        
                   %INCLUDE SOURCLIB(TYPSNDM.... );                     
                 (or you can put that  RETAIN NDMNEWST 99; in IMACFILE).
Change 21.285  New NTSMF Objects supported:                             
EXNTWBSC         dddddd    Dataset     Object                           
EXNTWSRY         NTWSRC    WSRMPROC    NT WSRM PROCESS                  
VMACNTSM         NTWSRY    WSRMPLCY    NT WSRM POLICY                   
Jan 22, 2004  -New NRDATA=40 in Active Server Pages supported           
Feb 18, 2004  -Variables CIINNAME in dataset CITRIXIN and SQBPNAME in   
               dataset SQLBUFPT were changed from numeric to character, 
               as they are Instance Name, and their original numeric    
               definition was wrong.  If you build Week-to-Date, or     
               combine NTSM datasets built before and after this change,
               you will get  VARIABLE SQBPNAME HAS BEEN DEFINED BOTH AS 
               CHARACTER AND NUMERIC  (or VARIABLE CIINNAME ....).      
               You must drop the old variable before combining the old  
               and new datasets.                                        
   Thanks to Terry Heim, ECOLAB, USA.                                   
Change 21.284  TYPE99 variables S99TLPI and S99TSPI were 100 times too  
VMAC99         large; they should have been input &PIB.4.2 instead of   
Jan 22, 2004   &PIB.4.                                                  
   Thanks to Adam Warkow, Cicigroup, USA.                               
Change 21.283  TYPE119 Variables UCRPORT/UCLPORT and CTLPORT/CTRPORT are
VMAC119        now kept as Port Number in numeric variables, instead of 
Jan 22, 2004   the variables with suffix C (from which they are created,
               but which should not have been kept).                    
               Variables UCLLIP and NILLIP's translate statement typos  
               that had RIP instead of LIP were corrected.              
               Some labels were also revised.                           
   Thanks to Thomas Heitlinger, FIDUCIA IT AG, GERMANY.                 
Change 21.282  Change 21.277 created VMXGSUME to tolerate non-present   
ASUMDBSB       variables, but it ABENDed with several sample ASUM/TRND  
ASUMHSM        members that ran just fine with its predecessor design.  
MNTHDBDS       In each case, the VMXGSUM arguments coded in the example 
TRNDDB2S       were actually in error, and the output dataset created by
VMXGSUME       the old version were never correct nor as expected. but  
Jan 22, 2004   the old VMXGSUM did not fail.                            
              -ASUMDSDB had DATETIME=QWACBSC, but variable QBACBSC was  
               not in the SUMBY= argument list.  This caused 22-322 and 
               180-322 errors underscoring DATETIME=&DATETIME with the  
               new code as only clue as to the real error.              
               ASUMDSDB was corrected with QWACBSC in place of QWHSSTCK 
               in the SUMBY.                                            
              -ASUMHSM did not create SHIFT in the INCODE for HSMINTRV, 
               but SHIFT was in the SUMBY, and BY SHIFT was used in the 
               step after than %VMXGSUM execution.  The old design would
               create the non-present SHIFT variable, but the design of 
               the revised VMXGSUM built its SUMBY without SHIFT, so the
               VMXGSUM executed correctly, but then the following step  
               failed when it found no SHIFT variable.                  
               ASUMHSM was corrected to create SHIFT in the INCODE, as  
               it did in the other steps of that example, with IMACSHFT.
              -MNTHDB2S had the token "DATETIME" in the SUMBY list, and 
               not the correct variable name.  Replaced DATETIME in the 
               SUMBY list with the STRTTIME variable (i.e, the variable 
               that was in the DATETIME= argument).  However, MNTHDB2s  
               also had two datasteps in the INCODE=, which required a  
               change to VMXGSUM to support.  Finally, however, because 
               "DATETIME" as a token in the SUMBY= list was the original
               recommended syntax for %VMXGSUM, and probably is around  
               in lots of existing jobs, the enhanced VMXGSUM was again 
               enhanced, and with this revision:                        
                  If "DATETIME" string is in the SUMBY= list, and       
                  it is NOT ALSO the DATETIME= variable name, and       
                  the length of the DATETIME= variable name is not 0,   
                  then the SUMBY uses the DATETIME= variable name       
                  instead of the name DATETIME.                         
                  But because the use of "DATETIME" token in the SUMBY  
                  is archaic, and so you know what we've done, there is 
                  a log message that we found this archaic usage.       
              -MNTHDB2S - Variable QWHSSTCK not found.                  
              -TRNDDB2S - Restructured.                                 
Change 21.281  Support for DB2 Version 8.1, COMPATIBLE.  MXG 20.20 or   
VMACDB2        later will read V8 SMF 100 and 101 records without errors
Jan 21, 2004   ("MXG 20.20+ TOLERATES DB2 V8"); this change adds support
               for the new fields added at the end of existing segments.
                New variables in DB2ACCT:                               
                 QXALTVW ='ALTER*VIEWS'                                 
                 QBGAP1  ='P-LOCK*LOCK REQS FOR*SPACE MAP*PAGES'        
                 QBGAP2  ='P-LOCK*LOCK REQS FOR*DATA*PAGES'             
                 QBGAP3  ='P-LOCK*LOCK REQS FOR*INDEX LEAF*PAGES'       
                 QBGAU1  ='P-LOCK*LOCK REQUESTS'                        
                 QBGAS1  ='P-LOCK*LOCK SUSPND FOR*SPACE MAP*PAGES'      
                 QBGAS2  ='P-LOCK*LOCK SUSPND FOR*DATA*PAGES'           
                 QBGAWS  ='WRITE AND*REGISTER*WAR*REQUESTS'             
                New variables in DB2STATS:                              
                 QBSTLPL ='TIMES WHEN*PAGES ADDED*TO LPL'               
              -Apr 18, 2005: Version 8.1 is "almost" COMPATIBLE; some of
               the data fields can be in "UNICODE UTF-8" format; an MXG 
               ERROR message will be printed if one is encountered, and 
               MXG 23.03, Change 23.082, supports QWHSLOCN in UNICODE.  
              -This change also inserted QBGAGG=TBGAGG to correct the   
               value in QBGAGG.                                         
   Thanks to Steve Cunningham, DST Systems, Inc, USA.                   
Change 21.280 -Variable LGMGEN was input as $EBCDIC8., but that field is
VMACPDSM       actually a one byte number with range 1-99.  New variable
Jan 20, 2004   LGMGENNR as numeric is now created, and LGMGEN is not.   
Jan 23, 2004  -The logic for 'FF'x values and reset to blank values were
               removed; that reset is needed for EBCDIC text fields, but
               these fields are all $HEX formatted, so changing 'FF'x to
               '40'x or '20'x is undesired.                             
              -The FORMAT LGPSRRC LGJRC $HEX1. was changed to $HEX2., as
               should be all MXG one-byte character variables containing
               hex data; it makes no sense to display just the first hex
               nybble.  I assumed it was a typo, but a search of all of 
               MXG found $HEX1 in VMACXXXX, of all places, in VMACIMS,  
               and in XLOGREC members, which were changed to $HEX2.     
               However, HEX1. without the dollar-sign is validly used as
               an INFORMAT for numeric variables, and was not changed.  
   Thanks to Peter Lines, RBS, UK.                                      
Change 21.279  Using PROC COPY + SELECT dataset(s) to copy from a tape  
DOC            data library should specify MEMTYPE=DATA to minimize the 
Jan 19, 2004   run time and the I/O resources.  PROC COPY with a SELECT 
               statement without MT=DATA reads the entire tape dataset  
               (which could be multi-volume!!), and does not stop when  
               the last dataset in the SELECT list has been found.      
               Because PROC COPY can copy more than just datasets, it   
               continues to read for other entries (Graphs, Catalogs)   
               with the same name.  By adding MT=DATA (or MEMTYPE=DATA),
               SAS will stop reading the input when the last dataset has
               been read, reducing CPU and elapsed time and I/O.        
               All PROC COPY statements in MXG that copy datasets now   
               have MEMTYPE=DATA or MT=DATA specified.                  
Change 21.278 -NTSMF Active Server Pages object has NRDATA=36, was 34,  
ADOCNTSM       but both new metrics are named "ASP.NET.V1.1.4322", and  
EXNTIP4D       added at the end of the record. Temp protection reads 34.
EXNTIP4I      -Web Service object has NRDATA=86, was 81, with five new  
IMACNTSM       fields with "COUNTER NAME MISSING" inserted in 4 places. 
VMACNTSM       Temporary protection added second INPUT for know 81 vars.
VMXGINIT      -Four new Objects are supported:                          
Jan 18, 2004      DDDDDD     DATASET     Object                         
                  NTASPN     ASPNET      ASP.NET Apps v1.1.4322         
                  NTASPA     ASPNETAP    ASP.NET v1.1.4322              
                  NTIP4D     IPV4SDRV    IPSEC v4 Driver                
                  NTIP4I     IPV4SIKE    IPSEC v4 IKE                   
              -Some recently added new variables, most from new objects,
               were not listed in the (required) INFORMAT 16.2 list,    
               which would cause values to be 100 times too high.       
               PROC CONTENTS was used to identify those variables with  
               no informat and the list was updated (although there are 
               some counters, notably in the headers, that are integers 
               and correctly do not belong in the INFORMAT 16.2 list.   
              -Internal notes and instructions describing how to update 
               the MXG VMACNTSM code to add support for new object and  
               new variables were revised, and skeleton code examples   
               added to make my next revision more procedural.          
Change 21.277 -VMXGSUME is an enhanced VMXGSUM, designed to tolerate    
VMXGSUME       dropped variables from a dataset that are expected by an 
Jan 17, 2004   invocation of VMXGSUM, if a variable was in the SUMBY=   
               list, the VMXGSUM execution failed, or if the variable   
               was in one of the other lists, that variable with missing
               value was created in the output dataset.   This change   
               reads one observation of the input dataset and invokes   
               in INCODE argument to get the full list of all variables 
               that exist, and compares that with the variables in all  
               of the VMXGSUM arguments, and rebuilds the SUMBY=, etc., 
               to use only the existing variables.                      
                 Specific example:  Many sites drop OPERATOR from their 
                 CICSTRAN dataset, but ASUMCICS has that variable in its
                 SUMBY= list, so previously you had to EDIT an ASUMCICS 
                 to remove the references to OPERATOR.  Now, that is    
                 done automatically.                                    
              -Performance issues if the input dataset is on tape.      
               There will be multiple tape mounts on the job log; two if
               KEEPALL=YES, and three if KEEPALL=NO, as we must open the
               input dataset to determine variables that exist.         
               If this is a single-SAS-data-set tape library, the extra 
               mounts should not cause any delay, as only repositioning 
               is needed on real tape, especially if the tape is a VTS. 
               However, if the input tape data library contains multiple
               SAS datasets, on multiple tape volumes, we must at least 
               open and read the data library sequentially twice to read
               one observation, and then a final time to actually read  
               the full input dataset, and that could cause an increase 
               in the elapsed time.                                     
                 You might consider PROC COPY; SELECT xxxxxxx; from tape
                 to disk before executing VMXGSUM, but initial test show
                 that is may not be any better, the copy must write the 
                 full dataset with all variables, but VMXGSUM brings in 
                 only the variables it will need, and write is much more
                 expensive than read.                                   
                 Adding a PROC COPY step may increase, or may decrease  
                 the execution time.                                    
                 Note:  This is a big performance hit, just discovered: 
                     Always use MEMTYPE=DATA on PROC COPY with SELECT   
                     statement from tape data libraries.                
                     With MEMTYPE=DATA, SAS stops reading the input tape
                     library when it finds the last SELECTed dataset.   
                     Without MEMTYPE=DATA, the PROC COPY doesn't know   
                     you only want data entries, so it continues to read
                     the entire tape data library, because there could  
                     be a different entry (Graphs,Catalogs,etc) with the
                     same name!                                         
               Because the enhanced VMXGSUM can cause errors in working 
               code, it is not used by default anywhere in MXG.  But you
               can use the enhanced macro defined in the VMXGSUME member
               simply by using %INCLUDE SOURCLIB(VMXGSUME); as the first
               statement in your //SYSIN stream, as that will compile   
               the Enhanced-but-named-the-same %VMXGSUM macro that will 
               be used by SAS for that job.                             
Change 21.276  Typos caused UNINITIALIZED VARIABLE message for WATSBACT 
ANAL116        (s/b WTASBATC) and WTASPSEO (s/by WTASPSE-zero).         
Jan 17, 2004                                                            
Change 21.275  Reading Active (undumped) VSAM SMF files caused TYPE70PR 
VMAC7072       dataset variable SMF70CIN to be blank, which then caused 
Jan 16, 2004   variables LPARCPUS, PARTNCPU, and NRIFCPU to be wrong.   
               The +OFFSMF (needed to read VSAM SMF transparently) was  
               not added to the OFFCPUID calculation.                   
   Thanks to Melanie Hitchings, BT, ENGLAND.                            
Change 21.274  Protection for truncated SMF 110 record (LENGTH=76) was  
VMAC110        added, testing the APS/ASS triplets before INPUTing the  
Jan 15, 2004   rest of the record.  Record was truncated because ACS    
Jan 21, 2004   rules for Eagle tape drives forced LRECL=80, and the     
               ACS rule overrode the Model DSCB in the DD statement.    
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.273  Variable NTLIP, Local IP Address, was incorrect, typo.   
VMAC119        The NTLIP=COMPRESS(NTRIP); should have been (NTLIP).     
Jan 14, 2004                                                            
   Thanks to Raff Rushton, Kaiser Permanente, USA.                      
Change 21.272  Typos corrected; MVSWAIT3=CPUWAITE is MVSWAITE=CPUWAITE  
VMAC7072       and MVSWAITW=MVSWAITX is MVSWAITX=MVSWAITX twice.        
Jan 12, 2004                                                            
   Thanks to Hugh Lapham, RCMP, CANADA.                                 
Change 21.271 -Enhancement decodes INSYSAF bit map to create variables  
IMACTPMX       JBAFF1-JBAFF32 for the System Affinities of each JOB, but
VMACTPMX       you must EDIT the IMACTPMX member, which now defines two 
Jan 11, 2004   formats ($MXTPMPX and $MXTPMBT) that map your SYSTEM IDs 
Jan 12, 2004   to your SYSPLEXes, and that maps the bits in INSYSAF for 
Jan 13, 2004   each SYSPLEX to the AFFINITY SYSTEM's name.  If you do   
Jan 20, 2004   not update your IMACTPMX, the values in JBAFFn variables 
Jan 22, 2004   will be wrong, or more likely, always blank.             
              -The INPUT(INSYSAFF,$EBCDIC)/TRANSLATE statements for the 
               INSYSAFF were deleted:  i.e., it was "un-EBCDIC'd".  That
               pair of functions are used only for variables containing 
               EBCDIC text characters.  INSYSAFF contains hex bit string
               data as characters, and is formatted $HEX8.              
              -Variables NRACCTFL and ACCOUNT1-ACCOUNT9 are now created 
               from the ACCT field, decoding with your IMACACCT member  
               that determines how many fields are actually kept.  As   
               old variable ACCT contains both binary numbers and EBCDIC
               text, it is "un-EBCDIC'd", and is formatted $HEX32.      
              -CURREC5, current time of day, was incorrect; it is now   
               input as hhmmssth in four PK1. fields, and converted to  
               a SAS time value and formatted TIME12.2.  I created new  
               variable CURRENT from CURRECn, but then found it was     
               exactly equal to SMFTIME, so I chose to not keep CURRENT.
              -Variable JALSYJ is not labeled; it appears to be the     
               same as SYSTEM.                                          
              -Variable RD is not labeled; it has value 'NC' in five obs
               and is blank in the other five thousand observations.    
              -Variable RDRDATE is formatted DATE9.                     
              -In testing, you cannot set OBS= to less than 634, because
               there are 634 input records for the CNTLLIN for the token
               table look up.  You get TOKEN NOT FOUND with OBS=100.    
              -Variables JTSDATE and JTSTIME were missing because their 
               informats were incorrect; now they are populated.        
              -Variable CA7DD was incorrectly input.                    
              -Variable CA7DT was created as a character variable, but  
               that field is a time duration, so variable CA7DTM is now 
               created as numeric and formatted.  I cannot change CA7DT 
               from char to numeric without causing someone's perfectly 
               running weekly or monthly job that combines TPMX data to 
               ABEND due to a variable conflict, and since CA7DT was not
               ever correct, it can safely be replaced by CA7DTM.       
              -Variables CA7JCL, CA7SCHID formatted Z3. to print 001.   
              -Variable CPU FORMATed TIME12.2.                          
              -Variable CURPRIO now INPUTs only first for bits.         
              -Variables DISPLD1 formatted DATE9, DISPLD2 corrected.    
              -Variable INPRIO input BITS4.0.                           
              -Variable INRMT is input $EBCDIC8, but the field changed  
               to numeric in 5.2.1; new numeric INRMTNR variable is now 
               created and input PIB.2., but INRMT is still created.    
              -Variable INSEI input $EBCDIC8 instead of 4.              
              -Variable JXCPUCA should have been name of JCXPUCA; both  
               variables now exist, but use only JXCPUCA.               
              -New variables JES3M26,JESM27,JES3M28 and JES3M29 were    
               replaced with JLSENQ, JLSENQN, JLSLIMTT and JLSLIMTN,    
               as they had nothing to do with JES3.                     
              -User character variables TPMUC1-TPMUC99 and user numeric 
               variables TPMUN1-TPMUN99 are now supported, but none are 
               kept by default; you remove comments in the EXTYTPMX to  
               choose which user variables you want kept, and you code  
               LENGTH and FORMAT statements for character variables to  
               control their stored lengths and protect any $HEX data.  
               You also blank out the variable's name from the DROP code
               in that member.  The example also shows how you can      
               create variables from any binary fields in your character
               fields, and how to use MACRO _KTYTPMX to also keep them. 
   Thanks to Lawrence Jermyn, Fidelity Systems, USA.                    
   Thanks to Kelly Vogt, Humana, USA.                                   
Change 21.270  Short CMRDETL record caused INPUT STATEMENT EXCEEDED     
VMACMVCI       and STOPOVER condition; test now validates the record    
Jan  8, 2004   is at least 277 bytes, prints error messages and dump of 
               first two short records, but no longer ABENDs.           
   Thanks to Mike Kevlin, CSC, AUSTRALIA.                               
Change 21.269 -Support for many new TNG objects from AIX, NT,and SOLARIS
EXTAI013                  dddddd   dataset    description               
  thru                    TAI013    AI013     CA CPU GROUP              
EXTAI024                  TAI014    AI014     CA DISK GROUP             
EXTSO016                  TAI015    AI015     CA FILE SYSTEM            
  thru                    TAI016    AI016     CA INTERFACE GROUP        
EXTSO026                  TAI017    AI017     CA KERNEL CONFIG GROUP    
FORMATS                   TAI018    AI018     CA KERNEL GROUP           
IMACTNG                   TAI019    AI019     CA MEMORY GROUP           
VMACTNG                   TAI020    AI020     CA NETWORK GROUP          
VMXGINIT                  TAI021    AI021     CA PER CPU GROUP          
Jan  6, 2004              TAI022    AI022     CA SWAP GROUP             
Jan  7, 2004              TAI023    AI023     PRINTER QUEUE             
Jan 14, 2004              TAI024    AI024     USERS                     
                          TSO016    SO016     CA CPU GROUP              
                          TSO017    SO017     CA DISK GROUP             
                          TSO018    SO018     CA FILE SYSTEM            
                          TSO019    SO019     CA INTERFACE GROUP        
                          TSO020    SO020     CA KERNEL CONFIG GROUP    
                          TSO021    SO021     CA KERNEL GROUP           
                          TSO022    SO022     CA MEMORY GROUP           
                          TSO023    SO023     CA NETWORK GROUP          
                          TSO024    SO024     CA PER CPU GROUP          
                          TSO025    SO025     CA SWAP GROUP             
                          TSO026    SO026     USERS                     
                          TNT051    NT051     NTMSSQL$IN01:ACCESS ME    
                          TNT052    NT052     NTMSSQL$IN01:BUFFER MA    
                          TNT053    NT053     NTMSSQL$IN01:BUFFER PA    
                          TNT054    NT054     NTMSSQL$IN01:CACHE MAN    
                          TNT055    NT055     NTMSSQL$IN01:DATABASES    
                          TNT056    NT056     NTMSSQL$IN01:GENERAL S    
                          TNT057    NT057     NTMSSQL$IN01:LATCHES      
                          TNT058    NT058     NTMSSQL$IN01:LOCKS        
                          TNT059    NT059     NTMSSQL$IN01:MEMORY MA    
                          TNT060    NT060     NTMSSQL$IN01:SQL STATI    
                          TNT061    NT061     NTMSSQL$IN01:USER SETT    
                          TNT062    NT062     NTMSSQL$IN01:BACKUP DE    
                          NOTE: DATASETS NT051-NT062 CONTAIN DATA       
                                FOR ALL SERVER='IN01' thru 'IN07'       
               Twelve MSSQL Server Objects are created for each unique  
               Server Name ("IN01"-"IN07"), so with 7 servers there are 
               84 unique objects, but only twelve datasets are needed.  
               Datasets NT051-NT062 contain data for all servers, with  
               variable SERVER="IN0n" identifying the server.           
                 Capturing the server name from object name, and mapping
                 84 objects to 12 datasets required new algorithms, and 
                 this implementation is specific to those server names. 
                 Arrays nt063-nt134 are used for "IN02"-"IN06".         
              -The array sizes directly impact the REGION size needed.  
               Now, you can change array sizes directly with %LETs in   
               SYSIN, before the %INCLUDE SOURCLIB(TYPSTNG); statement. 
               One very large NT site, had to set:                      
                 //SYSIN DD *                                           
                    %LET NT005I=21;                                     
                    %LET NT007I=999;                                    
                    %LET NT013I=75;                                     
                    %LET NT014I=625;                                    
                    %LET NT017I=625;                                    
                    %LET NT035I=2000;                                   
                    %INCLUDE SOURCLIB(TYPSTNG);                         
               This works now, because all of the TNG macro variables   
               definition %LETs were moved to VMXGINIT and GLOBALed.    
                 You cannot use  %LET MACTNG=  to redefine the array    
                 size macro variables; you can't %LET a %LET.  You can  
                 define a MACRO _MYSIZE  %%LET NT035I=2000; % and use   
                 %LET MACTNG= _MYSIZE ;  %INCLUDE SOURLIB(TYPSTNG); ,   
                 but you cannot define  MACRO _MYSIZE in your SYSIN     
                 stream - that causes a recursion error.                
              -By default TYPETNG reads all cube types, and MXG default 
               array sizes (set so that I can read all test data sent   
               thus far) requires a REGION=225M.  Region is NOT a real  
               resource, but some sites artificially constrain REGION   
               size. You can save some virtual storage by reading only  
               one cube type at a time, and also using MACTNG to specify
               the _AIONLY, _SOONLY, or _NTONLY macro, to set unwanted  
               array sizes to a value of one.                           
                  //SYSIN DD *                                          
                   %LET MACTNG=  _NTONLY  ;                             
                   %INCLUDE SOURCLIB(TYPSTNG);                          
                       With _NTONLY   REGION=120M                       
                       With _SOONLY   REGION= 66M                       
                       With _AIONLY   REGION= 30M                       
              -SAS V8.2 and MXG 21.07 defaults required REGION=100M on  
               z/OS 1.4; the same program used 86M Total Memory when run
               with SAS V9.0 under Windows 2000.                        
              -If there are any observations in the UNKNOWN dataset, it 
               means there were new objects and/or new metrics that are 
               not yet supported, and when there are obs in UNKNOWN, it 
               is possible that MXG will not output any observations    
                (when the last object in a group is unknown, the output 
                 of the entire cube never occurs).                      
               Adding support for all new objects and metrics causes the
               observations to be output.                               
              -An ARRAY EXCEEDED error messaged, because AI007V should  
               have been 7 instead of 2.                                
              -Some of the new "CA.." objects have identical metrics in 
               both Solaris and AIX cubes, but other datasets, notably, 
               the SO016, 020, 021, 022, and SO023 have a different set 
               of variables than their AIX counterparts; always use the 
               variable's LABEL, and not the NAME, to match AIX data to 
               Solaris data in those dataset.                           
              -Major enhancements in error detection and reporting of   
               array size issues were added; the number of instances    
               and the number of variables in your data are compared    
               to the array limits, and messages print which object's   
               value in which array is too small, and by how much.      
   Thanks to Ralton R. Van Heerden, CSC South Africa, SOUTH AFRICA.     
   Thanks to Peter Krijger, National Bank of New Zealand, NEW ZEALAND.  
Change 21.268  The PDB.ASUMCACH variable IORATE was wrong, because both 
ASUMCACH       TYPE74 and TYPE74CA datasets have a variable IORATE, and 
VMAC74         both values were being summed.  But in investigating the 
Jan  6, 2004   error, I found that the TYPE74 IORATE variable is often  
               a very different value than IORATE in TYPE74CA:          
                 In TYPE74, the SIO74CNT variable is directly used:     
                    IORATE=SIO74CNT/DURATM;     in TYPE74 dataset.      
                 But in TYPE74CA, as there is no SIO count variable, the
                 I/O request counts RDREQS+WRREQS+ICLR+BPCR are added   
                 to get the total I/O request count, SIO74CA:           
                   IORATE=SIO74CA/DURATM;      in TYPE74CA dataset.     
               Both SIO74CNT and SIO74CA variables are in PDB.ASUMCACH, 
               so you can see the differences in your own data. One test
               had TYPE74 with 4,635,246, while TYPE74CA had 18,425,069.
              -In VMAC74, variable SIO74CA is created in TYPE74CA data  
               set, for direct comparison with TYPE74 data.             
              -In ASUMCACH, the IORATE variable is now calculated in the
               OUTCODE= argument, using IORATE=SIO74CNT/DURATM, since   
               the TYPE74 IORATE existed long before cache controllers, 
               but also, new variable IORATECA=SIO74CA/DURATM is created
               so that you can compare the two I/O rates directly.      
              -The local variables IORATEA-IORATEZ were also removed.   
   Thanks to Kasandra Natzke, Infores, USA.                             
Change 21.267 -Syntax of the redefinition of old-style "dataset" MACRO  
ASUMUOWT       names _LDB2ACC _LMONTSK, _LCICTRN and _INMQ had hardcoded
VMXGUOW        DDnames of DB2ACCT, MONITASK, CICSTRAN, and PDB, but now 
VMXGUOWT       have &PDB2ACC, &PMONTSK, &PCICTRN, and &PTY116 (&Pdddddd)
Jan  7, 2004   macro variable names for the LIBNAME/DDNAME, so they can 
               be easily overridden, and to be consistent.              
               was corrected by redefining each old-style macro name to 
               itself immediately before the %LET MACKEEP= statement.   
               (see Change 21.244).                                     
              -PSUUOW macro variable is no longer re-set in ASUMUOWT.   
   Thanks to Chris Weston, ITRM Development, USA.                       
Change 21.266  Calculation of CPCMSU in PDB.RMFINTRV and PDB.ASUM70PR   
VMXGRMFI       and PDB.ASUMCEC is now rounded to an integer, to more    
VMXG70PR       closely match the IBM values.                            
Jan  5, 2004   CPCMSU - Announced MSU alue, calculated from SMF70CPA.   
               CPCFNAME - MXG-created "standard" long name for the box. 
               SU_SEC   - SRM "constant" value in SMF 72 record, changes
                          when the LPAR configuration is changed, cannot
                          be used to exactly calculate CPCMSU.          
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.          
Change 21.265  Variable SMF70LAC (IBM's 4-hr-avg-MSU) was incorrectly   
VMAC7072       output in every observation in PDB.TYPE70PR, which made  
Jan  5, 2004   the LPnLAC values identical for all LPARs.  This change  
               recognizes SMF70LAC is a "this-partition-only" value and 
               it is now non-missing only in PDB.TYPE70PR dataset from  
               the 'this-partition' records, which will correct values  
               of LPnLAC in PDB.ASUM70PR and PDB.ASUMCEC.  However, MXG 
               must read the raw SMF type 70 records from each LPAR     
               for the LPnLAC values to be completely non-missing.      
   Thanks to Richard S. Ralston, Humana, USA.                           
Change 21.264  New utility %VGETSORT macro reads the contents of a SAS  
VGETSORT       data library, and, for each dataset in that library, will
Jan  5, 2004   build a macro variable that contains the member name and 
               the SORTEDBY variables,or UNSORTED if there is no SORTBY.
               This will be used to dynamically build a WEEKBLD/MONTHBLD
               process that will preserve the default sort order.       
Change 21.263  Support for UniCenter NetMaster Automation Services SMF  
EXNETM22       record with Event View, Resource View, and Server View   
EXNETM30       Statistics creates two new datasets:                     
IMACNETM         DDDDDD Dataset  Description                            
TYPENETM         NETM22 NETM2200 Subtype 2000, 2200 Event View          
TYPSNETM         NETM30 NETM3000 Subtype 3000, Resource/Service View    
VMACNETM       Some problems exist with datetimestamps that are under   
VMXGINIT       investigation, and no 2200/2000 data has been tested.    
Jan  4, 2004                                                            
   Thanks to Andy Creet, Defence Computing Bureau, AUSTRALIA.           
Change 21.262  WebSphere MQ Version 5.3 new variables SM115REL/SM116REL 
VMAC115        with Version and Release ("531") is now kept in all MQ   
VMAC116        datasets.  However, as there are no other changes in 5.3 
Jan  3, 2004   DSECTS, except for these two new Release variables, MXG  
Jan 23, 2004   21.05 or later supports MQ Version 5.3 SMF 115/116s.     
              -Label for QPSTDMC is now SYNC, it was incorrectly ASYNC, 
               a very important difference in this case, since Sync page
               writes can significantly delay transactions.             
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 21.261  Dataset TYPE74CF could have multiple observations, when  
VMAC74         more than one SMF 74 subtype 4 record was written (due to
Jan  2, 2004   a large number of structures).  The MXG logic test to    
               output TYPE74CF included variable SMF744SN, which has    
               been removed, and only if the XN, GN, and PN segments are
               present in this SMF 74 record will TYPE74CF be output.   
   Thanks to Art Cuneo, Health Care Service Corporation, USA.           
Change 21.260  Macro compilation ERROR: A CHARACTER OPERAND .... is     
UTILBLDP       corrected; this error was introduced in Change 21.231.   
Jan  2, 2004                                                            
   Thanks to Scott Barry, SBBWOrks, Inc, USA.                           
Change 21.259  Using VMXGTIME to shift timezones caused MXG's calculated
VMACSMF        GMTOFFDB GMT offset to be wrong, and so QWACBSC/QWACESC  
VMACDB2H       were also wrong.  DB2 has no GMT offset value in the SMF 
VMAC110        records, but all timestamps are on the TODCLOCK, so MXG  
VMACOMCI       compared SMFTIME with TODSTAMP values to create the GMT  
Jan  2, 2004   offset, and then shift the DB2 timestamps to local zone. 
               But when VMXGTIME is enabled, the SMFTIME was shifted in 
               VMACSMF, before the GMT offset calculation in VMACDB2H,  
               causing this error.  Variable UNMODSMF is now created and
               it contains the un-modified SMFTIME value, and UNMODSMF  
               is used in VMXGDB2H to calculate the GMT Offset for DB2. 
              -SMFTIME was also used in the calculation of UOWTIME, to  
               find the FRSTBASE (epoch) of the 205-day-wrapping-clock. 
               While that exposure is extremely small, UNMODSMF is      
               also now used in that calculation.                       
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.258  Label for variable ESFRLSAV in TYPE71 dataset revised to 
VMAC71         ESTORE vice CSTORE, and ESFRLSAV=. is now set instead of 
Dec 17, 2003   CSFRLSAV when ESFRLSAV is LT 0 (line 1412).              
   Thanks to Jennifer C. Chu, State Street Corporation, USA.            
Change 21.257  Output statement for ZRBSVPP dataset was relocated to    
VMACRMFV       after the segment has been input, causing variables to be
Dec 17, 2003   populated.                                               
Change 21.256  Variable CECSER now kept in PDB.TYPE70LP dataset.        
Dec 17, 2003                                                            
   Thanks to Hugh Lapham, RCMP, CANADA.                                 
Change 21.255  New BLDSMPDB builds an executable "BUILDPDB jobstream"   
BLDSMPDB       that executes under either ASCII or EBCDIC SAS, reads an 
Dec 16, 2003   SMF file to create the MXG recommended, enhanced, Daily  
               "SMF" PDB library, optionally copies that daily PDB to   
               the appropriate one-of-seven day-of-week PDBs, optionally
               updates the current Week-To-Date PDB library, optionally 
               creates the Weekly PDB library from the seven dailies on 
               the first day of your week, optionally creates the       
               Monthly PDB on the 1st day of the month, and optionally  
               updates your TREND PDBs.  First draft, to be revised.    
               This program effectively implements the suggestions in   
               the (still out of date documentation) ACHAP35 member.    
   Thanks to Joe Key, BOC, ENGLAND.                                     
Change 21.254  Revised.                                                 
Dec 16, 2003                                                            
Change 21.253  New GLOBAL macro variables TRENDOLD, TRENDNEW, TRENDINP  
VMXGINIT       default to TREND, TREND, and WEEK respectively, and will 
Dec 16, 2003   be used in place of those hard-coded DDNAME/LIBNAMEs in  
               the MXG Trend Members.                                   
Change 21.252  Two ways to see RMF control blocks, happy values, SU_SEC:
RMFMON         one uses the LIST subcommand of the TSO TEST command,    
Dec 16, 2003   a better one uses the SAS PEEK() function specifically to
               display the SU_SEC value in your z/OS system.            
Change 21.251  SAS has a new SMFEXIT that adds SAS Version/Release, User
VMACSASU       and JOBID to the SAS User SMF record; those fields are   
Dec 16, 2003   now input as variables SASVEREL, SASUSER, and SASJOBID.  
               The revised SMFEXITs are available from SAS Institute at:
   Thanks to David Heiniluoma, Commonwealth of Massachussets, USA.      
   Thanks to Rich Anderson, SAS Institute, USA.                         
Change 21.250 -New ANALJOBN reads all job-related SMF records to count  
ANALALL        how many records of which type and subtype were written  
ANALJOBN       by each JOB, so you can track down which runaway JOB     
VMXGPRAL       filled your SMF file.                                    
Dec 12, 2003  -Existing ANALALL member (prints all variables and all    
Dec 15, 2003   observations for all job-related datasets created by     
               selected jobnames) was revised so only datasets with     
               JOB name are created.                                    
              -The VMXGPRAL utility (invokes PROCs PRINT or PROC MEANS  
               against all datasets in a SAS data library:              
               was enhanced with the NOFREQ= option used by ANALJOBN.   
              -The confusing SAS NOTE on the log when VMXGPRAL was run: 
                 "The variable NOBS exists on an input dataset, but was 
                  also specified on an I/OI statement option. The       
                  variable will not be included on any output data set."
               was eliminated, thanks to Charley.                       
   Thanks to Adam Floro, Southern Illinois University, USA.             
   Thanks to Charley Mullin, SAS Technical Support, SAS Institute.      
Change 21.249  TIC_UTIL in the NSPYTIC3 dataset was missing because the 
VMACNSPY       wrong time per frame variables were used in the equation.
Dec 10, 2003   Jan 17: Typo NSPYTMFS corrected to NSPVVTMFS.            
Jan 17, 2004                                                            
   Thanks to Steve Donahue, BCBS of Texas, USA.                         
Change 21.248  MWUX GLOB records with missing delimiter after the field 
VMACMWUX       "Process Queue Histogram" and before "Process Waiting"   
Dec  5, 2003   caused INPUT STATEMENT EXCEEDED RECORD LENGTH error.     
               Circumvention coded while the vendor is being contacted. 
   Thanks to Miguel Fernandez, Information Services International, USA. 
====== Changes thru 21.247 were in MXG 21.07 dated Dec  2, 2003=========
Change 21.247  Support for MVS Solution's ThruPut Manager now supports  
VMACTPMX       all of the fields created as of their latest version,    
Dec  2, 2003   TMT5210, adding 259 new variables to TYPETPMX dataset.   
   Thanks to Lawrence Jermyn, Fidelity Systems, USA.                    
   Thanks to Nancy DiFilippo, MVS Solutions Inc, CANADA.                
Change 21.246  Cosmetic, sort of.  Text was added to two error messages 
VMXGRMFI       to clarify their known causes:                           
Dec  1, 2003                                                            
              -If your workload definitions are incorrect:              
           YOU HAVE CPUTM=00:30:00 REAL CPU TIME IN SMF 72, BUT HAVE    
           AT STARTIME=30NOV2003:00:02:30.00 FOR SYSTEM=SYS1.           
           (BATXXXX, TSOXXXX, CICSXXXX AND THEIR SUMS                   
           SEE TEXT OF CHANGE 15.138.                                   
              -If MXG detects NEGATIVE UNCAPTURED CPU TIME in 70 vs 72: 
                     MESSAGE:    ERROR.RMFINTRV. WORKLOAD CPU TIME...   
                     BELOW, IN THIS MESSAGE.  IF CPUEFFTM IS MORE       
                     THAN CPUACCTM, THEN READ APAR II10549 ABOUT        
                     YOUR CE NEEDS TO OPEN A HARDWARE PMH TO FIX.       
                     SEARCH MXG NEWSLTRS FOR II10549 FOR MORE INFO.     
                     RECORDS. BMC CMF PRODUCT NEEDS CMF PTF BPM6782.    
                     IBM RMF APARS OW28256 (1997) OR OY51878 (1992).    
                     ONLY 2 INSTANCES OF THIS MESSAGE ARE PRINTED.      
                     READ TEXT OF CHANGE 15.238 IN MEMBER CHANGES.      
           *** ERROR. THIS IS A SERIOUS ERROR**********************     
              SYSTEM=PRD2 STARTIME=30NOV2003:00:30:00                   
              CPUACTTM=0:05.22.35 CPUEFFTM=0:05:59.77                   
              CPUTM=0:05:23.75 CPU72TM=0:05:23.75                       
               and you can see this error was for the Second case.      
   Thanks to Hugh Lapham, RCMP, CANADA.                                 
====== Changes thru 21.245 were in MXG 21.07 dated Nov 30, 2003=========
Change 21.245  Revisions to resolve errors and inconsistencies.         
Nov 30, 2003                                                            
Change 21.244  Cosmetic cleanup after first MXG 21.07 QA runs:          
VMXGTPFI       messages had no impact on the results, but have been     
VMACOMDB       eliminated.                                              
ANAL16        -VMXGTPFI revised to remove unneeded sorts and messages   
Nov 28, 2003   about MXGSUM2.                                           
              -VMACOMDB minor revisions to remove duplicate variables in
               FORMAT statement, and $CHAR instead of $EBCDIC for $HEX. 
              -ANAL16 following INCLUDE of TYPE16 failed with message   
               because ANAL16 used %LET MACKEEP to redefine old-style   
               macros.  Redefinition (MACRO _KTY16 _KTY16 %) inserted   
               ANAL16 before the %LET MACKEEP re-definition, as noted in
               the DOCMXG comments related to use of %LET MACKEEP.      
Change 21.243  Support for Candle Omegamon II for DB2 Historical D2540  
EXDB0010       file creates 312 new datasets, based on the SAS code that
...310 more    Candle provided with the product.  This iteration        
EXDB3370       supports DB2 V7.1; only forty-two of the datasets have   
IMACOMDB       been populated with observations, and only cursory       
TYPEOMDB       validation of formats, labels, etc., has been completed. 
Nov 24, 2003                                                            
Change 21.242  JCLTEST8 fails with VARIABLE OPERATOR NOT FOUND if your  
JCLTEST8       dataset, because those two variables are historically in 
Nov 24, 2003   in the default SUMBY list in MACRO _BSUCICS.             
               - See Change 21.105: We no longer recommend ASUMCICS be  
                 used, since it summarizes transaction segments instead 
                 of unit-of-work transactions.                          
                 Instead, you should create PDB.ASUMUOW and then use the
                 ASUMCICX program to create PDB.CICS summary dataset:   
                     %INCLUDE SOURCLIB(ASUMUOW,ASUMCICX);               
                 (and you need to tailor IMACUOW - read its comments).  
               - You should always use ASUMUOW, even if you don't have  
                 DB2 data, to combine CICS MRO segments together to get 
                 correct TRANNAME, etc.  If you do not create the       
                 PDB.DB2ACCT dataset, you can create a zero-observation 
                 DB2ACCT dataset to satisfy ASUMUOW, using:             
                    OPTIONS OBS=0;                                      
                    %INCLUDE SOURCLIB(TYPEDB2);                         
                    OPTIONS OBS=MAX;RUN;                                
                    &INCLUDE SOURCLIB(ASUMUOW,ASUMCICX);                
               - If you still must create PDB.CICS from CICSTRAN, you   
                 can re-define the old SUMBY list "instream":           
                 //SYSIN DD *                                           
                   %LET MACKEEP=                                        
                                       SYSTEM SHIFT %                   
                    %INCLUDE SOURCLIB(ASUMCICS);                        
                 to remove the OPERATOR and TERMINAL variables.         
               - But so you don't get blindsided during testing with my 
                   One site with excluded fields had never used ASUMCICS
                   but their "clean running" JCLTEST8 job failed.       
                 this change added "compiler fakers' in ASUMCICS to     
                 create one-byte OPERATOR/TERMINAL variables when they  
                 do not exist in your CICSTRAN.                         
               Jan 25, 2004 Update: You can now use the VMXGSUME member 
               created in Change 21.277, and not have to modify ASUMCICS
               or ASUMUOW to deal with dropped variables.               
Change 21.241  Revised support for Hewlett Packards MeasureWare for HPUX
VMACMWUX       now a/k/a OVPA.                                          
Nov 22, 2003  -DISKKBYT,KBYTRATE,PREADKBS,PWRITKBS are mult by 1024.    
              -GLOBAL Transaction variables no input by default         
              -The REPORT ALL command in ADOCMWUX is the command to use 
               that creates the MXG-expected data fields.               
              -Many TRAN fields were removed as they are not in the HP  
               default REPTALL, and I had no test data to validate with.
   Thanks to Tony P. Steward, Royal Mail, ENGLAND.                      
   Thanks to Miguel Fernandez, Information Services International, USA. 
Change 21.240  Support for new S4RSP7CT in STID=124 CICS Statistics data
VMAC110        record.  Caused "FOUND WITH SKIPPED FIELDS" warning with 
Nov 21, 2003   STID=124,SKIP=4,STILEN=120, but no error.                
   Thanks to Tim Vanderhoek, Fidelity Systems, USA.                     
Change 21.239  The ability to read multiple PDB libraries was lost in a 
ANALDB2R       prior change, but has been restored, so you can again use
Nov 20, 2003   the documented syntax PDB=MON TUE WED THU FRI SAT SUN,   
               to read multiple PDBs as input to ANALDB2R.              
   Thanks to Bill Bonfitto, MassMutual Financial Group, USA.            
Change 21.238  Dataset TYPE74DU (RMF DUPLEX COUPLING FACILITY) was trash
VMAC74         because the offset SMF744RO is unlike other RMF offsets. 
Nov 20, 2003   It is from the first data byte and not from the RDW, so  
               SMF744RO=SMF744RO-3 used to calculate the byte location  
               had to be deleted.  And with data to look at, the two sum
               of squares R744RSSS and R744RSSD are actually &PIB.8 and 
               not the &RB.8 that I had assumed.                        
   Thanks to Tom Draeger, Aurora Health Care, USA.                      
Change 21.237  New ASUMUOTT member creates new PDB.ASUMUOTT from the    
ASUMUOTT       ASG-Landmark DB2 TMDBDB2 dataset and ASG-Landmark CICS   
EXTMDDB2       MONITASK dataset.  The output is named PDB.ASUMUOTT,     
IMACUOTT       even though it is logically the same as PDB.ASUMUOW,     
JCLUOTT        because the TMDBDB2 variable names are used instead of   
VMACTMDB       the DB2ACCT names.                                       
VMXGUOTT      -Member VMACTMDB was modified to create the DB2PARTY      
Nov 19, 2003   variable, to identify DB2 Parallel event records (see    
Nov 30, 2003   Change 14.287).                                          
               Formats MGDB2RC and MGDB2LM applied to RINV/PREC vars.   
               All ACE vars are now all numeric, $HEX8. &MXGBYLN.       
               All /4096 are now formatted TIME12.2.                    
              -Member EXTMDDB2 was revised to use DB2PARTY to delete    
               events that should not be output (see Change 19.027).    
              -Member JCLUOTT is a standalong example to read the raw   
               TMON CICS and TMON DB2 files to create PDB.ASUMUOW.      
              -Member VMACDB2, variable QWACLRAB now formatted MGBYTES. 
               Nov 30:                                                  
               New member ASUMUOWT and VMXGUOWT created to support the  
               combination of MONITASK.MONITASK and DB2ACCT.DB2ACCT.    
   Thanks to Hamid Tavakolian, CSC, USA.                                
Change 21.236  The ASMRMFV member in MXG 21.06 was an earlier iteration 
ASMRMFV        that did not include the enhancements in Change 21.186.  
Nov 18, 2003   I copied the wrong member into the source library.  The  
               ASMRMFV at Change 21.236 dated Nov 18, 2003 (or later)   
               contains that major revision to the ASM program for the  
               RMF III VSAM data; Change 21.228 added VMACRMFV support. 
Change 21.235  Variable CPCFNAME, the CPC FULL NAME (2064216) created in
VMXG70PR       PDB.RMFINTRV, is now also created in PDB.ASUM70PR and in 
Nov 18, 2003   PDB.ASUM70LP datasets.                                   
   Thanks to Kenneth D. Jones, xwave, CANADA.                           
Change 21.234  Test for '2084'X added, but only needed if  OS/390 R2.10 
VMXGRMFI       with SMF70WLA=. (i.e., do not have the APAR that added   
Nov 18, 2003   SMF70WLA installed) is running on a z990.                
Change 21.233  Support for Fujitsu Siemens openFT file transfer propgram
FORMATS        user SMF record creates new OPENFT dataset for each SMF  
EXOPENFT       event record.                                            
Nov 17, 2003                                                            
   Thanks to Wolfgang Prescher, Itellium, GERMANY                       
Change 21.232  Replaced change.                                         
Change 21.231  Now, USERADD=80 USERADD=90 cause the TYPE80A or TYPE90A  
UTILBLDP       code to be generated, and not TYPE80 nor TYPE90, which   
Nov 17, 2003   were replaced by their "A" counterparts.  MXG's original 
               logic for RACF TYPE80 and OPERATOR COMMAND TYPE90 created
               one TYPE80/TYPE90 dataset with hundreds of variables; the
               "A" replacements create many TYPE80nn/TYPE90nn datasets, 
               one for each event with only that event's variables kept.
               You can see what events occurred, just by looking at the 
               non-zero observation counts for each dataset on the log. 
                  Previously: "USERADD=90," created obs in TYPE90, but  
                  "USERADD=90 90A," generated both _CDE90 and _CDE90A   
                  segments, and that first  ELSE IF ID=90 ...  in _CDE90
                  prevented _CDE90A from being executed, so there were  
                  never any obs in any of the TYPE90nn datasets.        
   Thanks to Gadi Ben-Avi, Malam Systems Ltd, ISRAEL.                   
====== Changes thru 21.230 were in MXG 21.06 dated Nov 12, 2003=========
Change 21.230  SAS V6 Only.  OUT OF MEMORY error with MXG 21.04+ because
VMXGCICI       the ORDER= argument "clean up" by Change 21.152 increased
Nov 11, 2003   the number of lines which exceeded the maximum size of a 
               SAS V6 macro argument.  Compacting the lines reduced the 
               total bytes and the code now executes under V6 or V8+.   
   Thanks to Kelvin Wells, ScaleOn GmbH, GERMANY.                       
Change 21.229 -Variable CPUTM=SUM(PRODTCB,PRODSRB) added to TYPE89 data 
VMAC89         set for consistency; MXG datasets with multiple CPU Time 
Nov 11, 2003   measurements were intended to always have variable CPUTM 
               as the total, unoverlapped, billable, etc., CPU time, but
               TYPE89 was overlooked.                                   
   Thanks to Jake M. Drew, MBNA, USA.                                   
====== Changes thru 21.228 were in MXG 21.06 dated Nov 10, 2003=========
Change 21.228  Support for RMF III ASMRMFV data added by Change 21.186. 
EXZRBCFI        - CFI segment creates ZRBCFI dataset                    
EXZRBRCB        - RCD segment creates multiple datasets:                
EXZRBRCS           ZRBRCP     ZRBRCDP   RMFIII PERIOD                   
EXZRBSVG        - SVP segment creates multiple datasets:                
VMXGINIT        - UWD segments produce warnings (first five) that will  
Nov  9, 2003      will be investigated, and only cursory validation of  
                  all of the new data has been accomplished.  Some back 
                  end merges/unions may be necessary, and/or there may  
                  be some variables that need to be carried forwared,   
                  but that awaits someone who really wants to use these 
                  new data segments, but lots of the data is already in 
                  the TYPE7xxx RMF Monitor I data.                      
Change 21.227  Final Cleanup after full QA runs:                        
ANALDBTR      -ANALDBTR updated to include all pairs datasets; I183R183 
ANALDB2R       was changed to S183S183 for consistency in pair names.   
CONFIG        -Archaic CONFIG member for SAS V6 specifies MEMSIZE=128M. 
JCLTEST6      -VMAC6,IMAC6ESS ESSPIMSG/ST spellings corrected, all vars 
IMAC6ESS       in DROP and KEEPs.                                       
Nov  8, 2003                                                            
   Thanks to Freddie Arie, TXU, USA.                                    
   Thanks to Bruce Widlund, Merrill Consultants, USA>                   
====== Changes thru 21.226 were in MXG 21.06 dated Nov  7, 2003=========
Change 21.226  Support for GEPARMKY=000B in Extended SMF 6 ESS data now 
IMAC6ESS       creates ESSDEFAU variable if IMAC6ESS is enabled to      
VMAC6          decode those optional ESS data fields.                   
Nov  7, 2003                                                            
   Thanks to Engelbert Smets, Provinzial Rheinland Versicher, GERMANY   
Change 21.225 -PDB.RMFINTRV workload definitions can now be based on the
VMXGRMFI       WORKLOAD name, variable WKLDNAME, instead of a long list 
Nov  7, 2003   of Service Class Names, by this enhancement that adds an 
               eight value to the WORK= argument.                       
                Caveats:  USECNTRL must be YES or GOAL, or nothing will 
                        be found.  And if you mix up workloads, service 
                        classes, and reporting classes, the UTILRMFI    
                        can't help you figure out what you've done wrong
                        because WORKLOAD doesn't exist in TYPE30 SMF.   
              -The SPIN logic to detect existence was enhanced.         
              -Note that if both SRVCLASS and WORKLOAD are specified,   
               that WORKnn workload will include all observations that  
               match either the SRVCLASS or the WORKLOAD names, so you  
               must be careful to avoid any overlap.                    
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.               
   Thanks to ??? who actually asked for it earlier.  Identify yourself. 
Change 21.224  New QAPMCONF variables GDESIL/GDESIT/GDESPU were missing 
VMACQACS       values because they were not in the RETAIN statement, and
Nov  6, 2003   the configuration file has one record per parameter; all 
Nov 10, 2003   GDESxxxx variables are now RETAINed.                     
              -New variables GDESIL/GDESIT/GDESDL/GDESDT had incorrect  
               values; they are now input as PIB2.1 instead of PIB4.1;  
               I misread the OS/400 description of B(4,1) as being a    
               four byte field.                                         
              -New variable GDES18 decodes the GDESKEY='18' record.     
              -Variables GDESAP and GDESAT are addresses, and are now   
               formatted as MGBYTES (so they print 255G for 255 GBytes).
              -Variable GDESI, interval value, was multiplied twice by  
               60, causing an incorrect value.                          
   Thanks to Jim Wertenberger, Antares Management Solutions, USA.       
   Thanks to Al Kadowaki, IBM Corporation, USA.                         
Change 21.223  CA-VIEW TYPESARR user SMF records caused INPUT STATEMENT 
Nov  6, 2003   but one instance had 45 characters.  Now use $VARYING80.,
               and protection was added if the text length is greater   
               than 80.  Then I realized these character variables were 
               not even output (probably because I didn't have any data 
               with index data), so the subtype 30/31 datasets now have 
               variables SV30/31INAM,SV30/31IVAL,SV30/312VAL,SV30/313VAL
               with the Index name and the first three index values.    
   Thanks to John Rivest, TDS, USA.                                     
Change 21.222  SAS Version 6 ERROR 29-185 WIDTH INVALID $EBCDIC255 when 
VMAC102        MXG was executed under SAS V6, which limited character   
VMAC110        variables to 200 bytes.  While execution under SAS V8.2  
VMXGINIT       or later is STRONGLY RECOMMENDED, it was my intention to 
Nov  3, 2003   support execution under V6 for all of the "standard" code
Nov 27, 2003   members, so this oversight was corrected with a new macro
               variable &EBC255 that will input $EBCDIC200. +55 for V6. 
               These new products require execution under SAS V8:       
                 TYPEAIX    -  AIX Performance Tool                     
                 TYPETMTC   -  TMON ASG-Landmark TCP/IP monitor         
                 TYPEWWW    -  Web Logs                                 
                 TYPEOMDB   -  Omegamon II for DB2 Historical File      
              -In addition, a $VARYING250 in VMAC102 was changed to only
               read in the first 200 bytes with $VARYING200.            
   Thanks to Kevin Wells, ScaleOn Gmbh & Co KG, GERMANY.                
Change 21.221 -MXG Web Log processing of data with negative GMT offset  
VMACWWW        caused INVALID ARGUMENT messages, and causing variable   
Oct 31, 2003   GMTOFFTM to be missing, but ENDTIME was correct.         
Nov  5, 2003  -ELAPSTM was missing value in IIS logs due to typo, and   
               is now formatted TIME8.                                  
   Thanks to Robert Gauthier, Albertsons, USA.                          
Change 21.220  FLASH: MXG 21.07 is required for PDB.ASUMUOW to have all 
ASUMCICX       reported errors fixed.  If you use JCLUOWV from an       
ASUMUOW        earlier MXG version, or use VMXGUOW, ASUMUOW, ASUMUOWT on
ASUMUOWT       Landmark MONITASK data to build PDB.ASUMUOW, you're at   
JCLUOWP        risk of having incorrect data, like missing values for   
JCLUOWV        STRTTIME, or your perfectly running BUILDPDB can ABEND   
VMXGUOW        FOUND error condition.  We have had a series of          
Oct 30, 2003   architectural revisions to correct the sort sequence for 
Nov 30, 2003   LU 6.2 transactions, and corrections to that redesign,   
               and restructured into ASUMUOW for IBM CICSTRAN and       
               ASUMUOWT for ASG MONITASK data, to eliminate double      
               mounts of tape libraries, and only now does it appear    
               we've fixed everything or at least documented that you   
               must use the JCLUOWV or JCLUOWP members from MXG 21.06,  
               due to these changes:                                    
                 Change 21.194 - Added Variables                        
                 Change 21.147 - Populated STRTTIME                     
                 Change 21.134 - MONITASK fixed                         
                 Change 21.093 - SYSTEM blank, cleanup                  
                 Change 21.076 - Stored Procedure vars added            
                 Change 21.062 - SORT ORDER CHANGED, vars dropped       
                 Change 21.237 - ASUMUOWT fixed                         
               This change is only documenation of the INCOMPATIBLE     
               changes that have been made to this very-important MXG   
               program that we strongly suggest you use to put the DB2  
               and CICS transaction data together.                      
   Thanks to Larry Nova, Transamerica, USA.                             
Change 21.219  Support for IBM Tivoli Storage Manager Accounting Records
EXTSMACC       creates new TSMACCT dataset when data files are          
IMACTSMA       transferred, with counts of transactions and bytes       
TYPETSMA       transferred.                                             
Oct 27, 2003                                                            
   Thanks to Simone Niemczura, Sungard, USA.                            
Change 21.218  Six variables in TYPE71 had "AVAILABLE ..USED" in the    
VMAC71         label, but the "USED" did not belong, as all count the   
Sep 24, 2003   number of available, not used, frames:                   
   Thanks to Tom Buie, Southern California Edison, USA.                 
Change 21.217  Support for SMF 99 subtype 7 PAV Device data creates new 
EXTY99U7       TYPE997 dataset.  Observations are only output if there  
IMAC99         were activity counts for the device.                     
Oct 23, 2003                                                            
   Thanks to Randy Shumate, LexisNexis, USA.                            
Change 21.216  z990 CPUTYPE 2084 with OS/390 R2.10 caused CPU NOT IN    
VMXGRMFI       TABLE error; this member should have been updated by     
Oct 23, 2003   Change 21.149, but my z990 test data was z/OS and the    
               VMXGRMFI test was overlooked.                            
   Thanks to Peter Giles, Centrelink, AUSTRALIA.                        
Change 21.215  Support for EKC's ETF/R FIRECALL SMF 80 optional data    
EXTY80EK       segment creates two new MXG datasets:                    
EXTY8XEK         TYPE80EK - Contains fixed data plus first EKC80FRD.    
IMAC80A          TYPE8XEK - Contains any additional EKC80FRD relocate   
VMAC80A                     data segments.                              
VMXGINIT       This change requires execution under SAS Version 8 to    
Oct 23, 2003   input the full length (up to 1024 bytes) in EKC80FRD; the
Nov  2, 2003   code executes under SAS V6 without error, but variable   
               EKC80FRD will be truncated to 200 bytes.                 
   Thanks to Jim Holloway, MetLife, USA.                                
Change 21.214  Cosmetic.  The FORMAT statement in MACRO _VMRPT3 (for    
VMACVMXA       "report three" listed the variables from _VMRPT2, but    
Oct 22, 2003   there is no need for those variables in _VMRPT3.         
   Thanks to Thom Kight, Fidelity Investment Systems Co, USA.           
Change 21.213  Support for Oracle V9.x SMF data is already in MXG, as   
VMACORAC       there were no changes in their SMF record; you need to   
Oct 20, 2003   set the record ID macro, and the Subsystem macro, but    
               they can be set "instream" after your //SYSIN DD *       
                 %LET MACKEEP=                                          
                      MACRO _IDORAC  200  %                             
                      MACRO _IDORACO  SUBSYSID EQ 'TGW9'  %             
                 %INCLUDE SOURCLIB(TYPSORAC);                           
   Thanks to Ralf-Henning Glomb, BMW, GERMANY                           
Change 21.212  Support for optional CMODNAME='MQSeries' CICSTRAN data   
UTILEXCL       fields from IBM, added starting in CICS/TS 3.2, creates  
Oct 20, 2003   MQREQUS.  This support requires that you use UTILEXCL to 
               create an IMACEXCL for those variables to exist in the   
               CICSTRAN dataset.  But see Change 31.223.                
   Thanks to Ricke Godehard, Itellium, GERMANY.                         
   Thanks to Scott Barry, SBBWorks Inc, USA.                            
Change 21.211  Support for RACF segment RACFDTP=44 decodes the value of 
VMAC80A        the command into new variables EV44VAL1-EV44VALF and     
Oct 20, 2003   stores only the name (PROC,ACCTNUM,SIZE,MAXSIZE, NOUNIT, 
Oct 28, 2003   and COMMAND) in the existing EV44TXT1-TXTF variables.    
Oct 29, 2003                                                            
   Thanks to John McDermott, Blue Cross Blue Shield of Florida, USA.    
Change 21.210  Support for several new ESS segments (34x,35x,37x,47x)   
IMAC6ESS       and for GEPARMNR more than 1 for 21x and 2Fx added in    
VMAC6          (optional) IMAC6ESS, also adds new variables to TYPE6    
Oct 14, 2003   (but only if comment block in IMAC6ESS is opened, and the
               DROP= statement is edited in that member to keep the new 
   Thanks to Engelbert Smets, Provinzial Rheinland Versicher., GERMANY. 
Change 21.209  New fields added by ThruPut Manager are now supported:   
Oct 14, 2003   observations in dataset DB2ACCTP if the package data     
   Thanks to Lawrence Jermyn, Fidelity, USA.                            
Change 21.208  Variables QWACBSC and QWACESC are missing in package     
VMACDB2H       observations in dataset DB2ACCTP if the package data came
Oct 13, 2003   from SMF 101 Subtype 1 (IFCID=239) records, as those     
               records do not contain the QWAC segment.                 
                  The SMF 101 Subtype 0 IFCID=3 Accounting Record       
                  contains the first ten package executions, each of    
                  which is output in DB2ACCTP; the SMF 101 Subtype 1    
                  IFCID=239 records contains the rest of the package    
                  segments when there are more than 10 per plan.        
               It is also not possible to retain the QWACBSC/ESC from   
               the prior SMF 101 Subtype 0 (IFCID=3) record, because IBM
               in their infinite wisdom decided to write the 239 record 
               first (even though QWHSSTCK time in that first IFCID=239 
               record is later than QWHSSTCK time in the following      
               IFCID=3 record).  Only with dual sorts of DB2ACCT and    
               DB2ACCTP plus a massive merge, could the QWACBSC/QWACESC 
               timestamps of the account record be added to the DB2ACCTP
               package dataset, and that's a lot of cost for very little
               value.  The DB2ACCTP dataset variables QPACSCB & QPACSCE 
               are datetimestamps of the "entry to, and exit from" DB2, 
               like a start/end of the package call, but they are also  
                 QPACSCE always has a non-missing datetime value        
                 QPACSCB is always missing in all IFCID=239 records, and
                         is only non-missing in the first package       
                         segment in IFCID=3 records.                    
                 When QPACSCB is missing, you could consider calculating
                 variable PSEUDOSCB=QPACSCE-QPACSCT, to estimate the SCB
                 start time (by subtracting the execution duration from 
                 the end datetime).  PSEUDOSCB was slightly earlier than
                 QPACSCB when QPACSCB existed.                          
               This change added disabled debugging PUT statements that 
               were used to examine these records, in case they are     
               needed for future investigations.                        
   Thanks to Daniel O. Russo, Vanguard, USA.                            
Change 21.207  The test for NTSMF Object MSEXCHANGECCMC replaced the    
VMACNTSM       incorrect spelling (MSEXCHANGECMCC).                     
Oct 10, 2003                                                            
   Thanks to Philip Henning, Demand Technology, USA.                    
Change 21.206  Variables QW0125PC QW0125PL QW0125PN QW0125SN QW0125TS   
VMAC102        are now input and kept in DB2 102 IFCID=125 T102S125.    
Oct 10, 2003   dataset.                                                 
   Thanks to Ron Alterman, PG&E, USA.                                   
Change 21.205  MXG Support for BMC's IMF/CIMS IMS already includes the  
VMACCIMS       variable SMQGROUP, the IMS Shared Message Queue Group    
Oct  9, 2003   Name, so that you can summarize BY SMQGROUP to see the   
               total response and resources of the entire group.  This  
               change is only for documentation (because I didn't know  
               what the heck an IMS Shared Message Queue Group was,     
                  A Shared queues group is just a group if IMS systems  
                  (an IMS Plex) that share incoming transactions with   
                  their shared message queue stored as a structure in a 
                  couling facility.  A transaction arrives at any IMS   
                  System but can be executed anywhere in the Plex.  Only
                  one 'FA'x IMF Transaction record is created, even     
                  though IMSA may have put the message on the Q and IMSB
                  executed the transaction (and IMSB will be where the  
                  FA record was written).                               
   Thanks to Ulrich DIllenberger, BMC, GERMANY.                         
Change 21.204  If you use %LET MACSHFT= syntax to replace or override   
IMACSHFT       the SHIFT definitions in your tailored IMACSHFT member,  
Oct  8, 2003   the input temporary variable DATETIME will have been     
               changed by IMACSHFT logic to the start-datetime of the   
               shift, so that MXG Summarization and Trending datasets   
               have a common STARTIME value.  The addition of &MACSHFT  
               support was done only for consistency with other IMACs,  
               but I never considered that anyone would ever want to    
               pass static definitions, like SHIFT, thru %LET MACSHFT!  
               This change stores the original value in DATETIME when   
               IMACSHFT was invoked into temporary variable SHFTTIME,   
               so that if you do use %LET MACSHFT, and don't tailor the 
               default MXG IMACSHFT member, you can set                 
               as your first statement in MACSHFT=, and then redefine   
               the shifts.  However, your MACSHFT= logic must also      
               the DATETIME variable to the beginning of the shift,     
               to protect for later summarization in that job.          
   Thanks to Klaus Messer, COMLAB, GERMANY.                             
Change 21.203  Variable RESIND should have been formatted HEX2 as it    
VMAC77         contains individual bit values regarding the enqueue.    
Oct  7, 2003                                                            
   Thanks to Doug Medland, IBM Global Services, CANADA.                 
Change 21.202  INPUT STATEMENT EXCEEDED due to invalid OPC record that  
VMACOPC        had LENGTH=83 but TRLLENGT (expected length) of 420.  OPC
Oct  7, 2003   records have new data inserted, currently the new fields 
               are skipped, pending documentation.                      
   Thanks to Andrew Phillip Davis, Abbey, ENGLAND.                      
Change 21.201  Protection for SMF80DTP=53 (RUTKN) with SMF80DLN=76.     
VMAC80A        Segment is documented for z/OS 1.2 SecureWay as DLN=80.  
Oct  9, 2003   Caused INPUT STATEMENT EXCEEDED RECORD LENGTH error.     
               This change circuvents by skipping over the segment.     
               This data segment is created by the add-on ETFR product  
               (EKC Tools for RACF is an extension to RACF.ETF/R that   
               selectively grants extended privileges under emergency   
               situations), and that vendor will be advised of their    
               invalid record.                                          
   Thanks to John Grasing, MetLife, USA                                 
Change 21.200  Negative values for DB2TCBTM occur if QWACEJST (ending   
VMACDB2        CPU time) is smaller than QWACBJST (starting CPU time).  
Oct  5, 2003   Out of 9,000 transactions, four transactions were neg:   
                   QWACBJST QWACEJST  QWACRINV                          
                   1.61     0.00452     10                              
                   0.12     0.00458     10                              
                   0.25     0.00415     10                              
                   3.63     0.00436     10                              
               IBM notes that BJST or EJST are zero when CPU timing is  
               not available; MXG only calculated the difference when   
               when both are non-zero; this change adds a test to also  
               calculate DB2TCBTM if EJST is greater than BJST, while   
               IBM investigates further.                                
                 PQ71119 is a correction for Tivoli that mentions why   
                 EJST may be zero: rrs commit request can be issued in a
                 different address space than the original attach so DB2
                 does not have the original TCB; their solution was to  
                 force a zero value, as was done here by MXG.  However, 
                 MXG adds QWACSPCP and QWACTRTE to the delta so you     
                 could have DB2TCBTM non-zero even if the EJST-BJST     
                 difference is not calculated.                          
               Note added Jan 21, 2004:  This note is also in NEWSLETTER
               FORTY-FOUR, MVS Technical Note 2.:                       
                 APAR PQ79622 corrects error that caused QWACBJST to be 
                 greater than QWACEJST, which caused negative DB2TCBTM. 
                 The error occurred when an SQL statement fired a       
                 trigger and that trigger called either a UDF or a      
                 stored procedure, so that class 1 non-nested CPU time  
                 could erroneously be a negative value.                 
   Thanks to Roger L. Rush, Nav-International, USA.                     
   Thanks to Richard L. Steele, Nav-International, USA.                 
Change 21.199 -IMACxxxx members with incorrect spelling of the DDDDDD   
IMAC119        values in the comments, or that were missing new data    
IMAC28         sets were revised. Only documentation was changed.       
IMAC42        -VMAC members _Nxxxx and _Sxxxx Null/Sort macros had      
IMAC74         tokens added for new datasets that had been overlooked.  
Oct  5, 2003                                                            
Change 21.198  A missing value for STRTTIME in CICSTRAN can occur if you
VMAC110        have optional data segments in your transaction SMF      
Oct  5, 2003   records, but you did copy and remove the comment block   
               in the IMACICxx member for those optional segments.      
               The UTILEXCL program lists all optional data segments    
               and lists the IMACICxx members you must tailor.  If      
               you don't tell MXG about the data, its INPUT gets out    
               of alignment, and if STRTTIME happens to have all hex    
               zeros, a missing value results.  Since STRTTIME is the   
               Start Time of the transaction, it must always exist in   
               your CICS records.  A new message is now printed if      
               STRTTIME is missing.                                     
Change 21.197 -ASUMCACH enhanced to keep track of I/O by LPAR (in the   
ANALCACH       variables IORATEA, IORATEB,...) in PDB.ASUMCACH that it  
ASUMCACH       creates.                                                 
Oct  2, 2003  -Second example Analysis Report added to ANALCACH that    
Nov  6, 2003   reads the PDB.ASUMCACH dataset, and uses two formats     
               (that you EDIT in your program) that map your DASD UCB   
               addresses to Raid Groups and HDS Rank, so that you can   
               report and measure I/O activity down to the Raid Group   
               within RAIDBOX.                                          
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.196  INVALID DATA FOR VERSN90 message had no impact on the    
VMAC90         created dataset, but it and associated hex dump are      
Oct  2, 2003   prevented by the insertion of ?? in the INPUT.           
   Thanks to Jim Petersen, Washington Mutual, USA.                      
Change 21.195  Support for Microsoft Exchange Server 5.5 Log file       
EXEXCHLG       creates EXCHANGE dataset from INFILE EXCHLOG.  This      
IMACEXCH       support is preliminary and covers all fields, but parsing
TYPEEXCH       of sub-fields is contemplated where needed, creating new 
TYPSEXCH       variables eventually.                                    
Oct  2, 2003                                                            
   Thanks to Bob Gauthier, Albertsons, USA.                             
Change 21.194  Variables added to _KUOWCIC (CICSTRAN) into PDB.ASUMUOW  
VMXGUOW           ENQDIOCN ENQDIOTM LU62IOCN LU62IOTM                   
Oct  1, 2003   Variables added to _KUOWCIX (Max):                       
Oct 22, 2003      STORHWMH STORHWMK                                     
               ADOCUOW was updated to be consistent with VMXGUOW.       
               Oct 22: End Comment before ENQDIOCN =.; was added.       
   Thanks to Paul Gillis, ColesMeyer, AUSTRALIA.                        
Change 21.193 -Variable BYTEAVAI can be zero if AVAILMEM or AVAILMEK is 
EXNTIPV4       zero (still under investigation). The MXG statement      
EXNTTCV4         BYTEAVAI=AVAILMEM; is now replaced by the statement    
IMACNTSM       possibilities of values in the three fields.             
VMACNTSM      -Support for new IPV4, TCPV4, and UDPV4 objects create    
VMXGINIT       three datasets of the same name.                         
Oct  1, 2003  -Pending DISCOVERY Records, new data added to ACSR 0/36   
               and WEBS 1/86 are not yet supported.                     
   Thanks to Barry Neff, Infores, USA.                                  
Change 21.192  SYNCSORT for z/OS 1.1 can have 255 SORTWORKs, but MXG    
VMACSYNC       only outputs details on the first 99, and would have     
Oct  1, 2003   failed (ARRAY OUT OF RANGE) if you had more than 99.     
               This change protects for more than 99, but only by       
               printing a message that more were found, and to contact  
     , if you really have a need for details on
               the 100th+ sort work area.                               
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.191  SMF 94 variable SMF94VCZ (Average MB per Logical Vol) is 
ADOC94         recalculated when it is zero in the IBM record but       
VMAC94         SMF94VBA/SMF94VLA is non-zero.     Many of the SMF94Vxx  
Sep 30, 2003   variables are zero if SMF94VNO='FF'x (Composite), some   
               are the composite of all AX0's if VNO='FF'X, and some are
               non-zero only if VNO='FF'x.  ADOC94 was updated to       
               identify the "Note 1 and Note 2" variables in TYPE94.    
   Thanks to Art Hunter, Penn Mutual, USA.                              
Change 21.190  Support for APAR PQ77633, which corrects FTPREPLY code in
VMAC119        FTP client records; it should have been a three digit RFC
Sep 29, 2003   code in left-justified EBCDIC, but the SMF 119 record had
Mar  2, 2004   a binary value prior to this APAR.  See Change 22.019.   
Change 21.189  CICS SMF 110 subtype 1 MNSEGCL=5 records caused ERROR:   
VMAC110        INVALID DO LOOP CONTROL INFORMATION because I forgot that
Sep 23, 2003   DO _I_=1 TO MNR5LEN3;  fails if MNR5LEN3=., and the third
               triplet is not always present.  Change to IF MNR5LEN3 GT 
               0 THEN DO _I_=1 TO MNR5LEN3 to fix.                      
   Thanks to Pat Curren, SuperValu Inc, USA.                            
Change 21.188  NDM SMF user record subtypes 'IP','JI','QH','QW', and    
VMACNDM        'WS' are still not undecoded, until an MXG user wants    
Sep 23, 2003   those data, but the UNKNOWN RECORD messages are now no   
               longer printed for those subtypes.                       
   Thanks to Trevor Ede, EDS, NEW ZEALAND.                              
Change 21.187  Data values in PDB.DB2GBPST were occasionally way too    
VMACDB2        large; the logic to deaccumulate did not test the        
Sep 23, 2003   SEQCHECK variable, and thus missed restarts/resets.  The 
               test for SEQCHECK was also added to the logic for        
               PDB.DB2STATR and PDB.DB2STATB, although neither had any  
               reports of bad data values.                              
   Thanks to Lori A. Masulis, Fidelity Systems, USA.                    
Change 21.186  Another major enhancement for RMF III VSAM support now   
ASMRMFV        adds support for six new RMF III data tables:            
Sep 23, 2003          CFI (Coupling Facility Information Table)         
Nov 18, 2003          RCD (Resource Collection Data Table)              
                      SVP (Service Policy Data)                         
                      SHD (Sample Header Data)                          
                      RED (Resource Data Record)                        
                      UWD (Use/Wait Record)                             
               See change 21.228 for updates to VMACRMFV to support the 
               new data added by this change to ASMRMFV.                
               See Change 21.236.                                       
   Thanks to Jerry Urbaniak, Acxiom, USA.                               
ANALCNCR       added to MINUTE HOUR etc values to set the interval in   
ANALCNCR       summarization and concurrency analysis (e.g. counting    
VMXGSUM        concurrent NT processes in each second).     But use the 
VMXGDUR        INTERVAL=SECOND value with care, as it can require       
Sep 23, 2003   workspace that is many times the size of the input data. 
Sep 30, 2003                                                            
   Thanks to Art Morelock, CheckFree, USA.                              
Change 21.184  Support for 3592 Tape Drives already exists in MXG, as   
none           they are still 3590s (UCBTY34='8083'x) in SMF    records.
Sep 23, 2003   The specific type and model is contained in the    TYPE74
               for each device in variable SMF74NID='003592J....'.      
   Thanks to MP Welch, SPRINT, USA.                                     
====== Changes thru 21.183 were in MXG 21.05 dated Sep 22, 2003=========
Change 21.183  SMF 115 Subtype 2 INPUT STATEMENT EXCEEDED because the   
VMAC115        protection in Change 21.161 was incomplete.              
Sep 21, 2003                                                            
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
Change 21.182  Support for z/OS 1.4 Feature 1 (COMPATIBLE) that adds    
VMAC89          SMF89LP3 variable with one or two digit LPAR ID value.  
Sep 19, 2003    Feature 0 is "z/OS V1.4 z999 Compatibility Support".    
Feb 13, 2004    Feature 1 is "z/OS V1.4 z990 Exploitation Support".     
                Feature 2 is "z/OS V1.4 Consoles Enhancements".         
====== Changes thru 21.181 were in MXG 21.05 dated Sep 18, 2003=========
Change 21.181  TMS/CA1 Release 5.2 (finally!) lets you block the TMC    
TYPETMS5       file to half-track blocksize of its 340 byte records, so 
Sep 18, 2003   the MXG recommendation to use BUFNO=200 on //TMC is      
               withdrawn when you have enabled half-track blocksize.    
               That large a BUFNO with half-track blocksize could cause 
               an 80A out-of-virtual-memory ABEND.  Reblocking the TMC  
               to half-track reduced the MXG run time of TYPETMS5 from  
               6.5 minutes to only 2.5 minutes.                         
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.180 -Example to build Weekly PDB from Daily PDBs on tape to   
JCLWEEKD       eliminate backspace/rewind/remount wasted time, using the
WEEKBLDD       same technique as MONTHBLD: copy the selected PDB        
WEEKBL3D       datasets from tape to temporary DASD and build WEEKLY    
Sep 17, 2003   from those disk copies rather than by reading tapes.     
   Thanks to Ron Lundy, AHOLDUSA, USA.                                  
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
Change 21.179 -TYPE50 records contain interval data, but there is no    
FORMATS        interval value in the record; this enhancement creates   
VMAC50         new variable DELTATM as the delta between SMFTIMEs for   
Sep 16, 2003   the same instance; however, DELTATM will be missing in   
               the first record for each instance, even though the rest 
               of the data is valid in those first-per-day data.        
              -Format MG050AT was updated for 3:Read Write Subchannel   
   Thanks to Dr. Alexander Raeder, Itellium, GERMANY.                   
Change 21.178  Variable STARTIME is now created in TPXINTRV dataset in  
VMACTPX        the _STPXINT (DIFFTPX) deaccumulation logic.             
Sep 16, 2003                                                            
   Thanks to Dr. Alexander Raeder, Itellium, GERMANY.                   
Change 21.177  Cosmetic; suppressed printing of temporary datasets that 
VMXGPRAL       were created by a prior run of VMXGPRAL.                 
Sep 12, 2003                                                            
Change 21.176 -Support for CICS APAR PQ76703 new Transaction Resource   
EXCICDSR       Class Monitoring TSQUEUE segment in SMF 110 Subtype 1    
EXCICRDQ       error: the new triplet and class were unexpected.  You   
VMAC110        can confirm this error by seeing MNSEGCL=5 in the list of
VMXGINIT       variables after the error is printed.  The new data      
Sep 12, 2003   tracks Temporary Storage at the transaction level with ts
               queue name, and is output in new CICSRDQU dataset.  The  
               DFHMCT TYPE=INITIAL TSQUEUE=4 default captures four      
               queues, a maximum of TSQUEUE=32 is allowed, and if       
               TSQUEUE=0, no data segments will be created and the      
               CICSRDQU dataset will have zero observations.            
              -New STID=64 and STID=65 for DSR and DST DSECTS create two
               new CICDSR and CICDST Statistics Datasets.  These        
               segments were added by IBM APAR PQ76697.                 
   Thanks to David Klein, DOITT - City of New York, USA.                
   Thanks to Eileen Barkow, DOITT - City of New York, USA.              
Change 21.175  Support for DB2 102 IFCID=217 (Storage Manager Pool)     
EX102T17       creates four datasets:                                   
EX102U17         T102S217   QW0217HE DSECT - Storage Available          
EX102V17         T102T217   QW02172  DSECT - Storage each QW0217PH      
VMAC102          T102U217   QW02173  DSECT - Storage each QW02173H      
VMXGINIT         T102V217   QW02174  DSECT - Dictionary Storage         
Sep 10, 2003   for initial investigation of the new data.  These data   
               records are strange, with the 2nd,3rd,& 4th triplet's    
               segments containing different DSECTs in different SMF    
               records, so logic using Segment Length is required to    
               determine exactly which DSECT is in which triplet! The   
               only unique variable in T102T217 and T102U217 is the     
               undocumented "Serviceability" token, QW0217PH and        
               QW02173H.  Revision is possible if a better way seen!    
              -Support for IFCID=254 (Group Buffer Pool) adds 22 new    
               variables to the T102S254 with only common variables.    
               existing T102S254                                        
   Thanks to Phil Parker, TNT Post Group, ENGLAND.                      
Change 21.174  The PROC FREQ in _RPDBID failed, if you used _STYID in   
BUILD001       EXPDBOUT (to sort WORK.ID to PDB.ID), because MXG hard   
BUIL3001       coded the DATA=_WTYID token, so SAS only looked for ID in
BUILDPDB       the Work Lib. Instead, the %VMXGWORL macro is used to    
BUILDPD3       determine where you left that dataset, populating macro  
Sep  9, 2003   variable &MXGWORL ("W or L") with its location:          
                     PROC FREQ DATA=&MXGWORL;                           
               This should have been done when %VMXGWORL was created.   
   Thanks to Hugh Lapham, RCMP, CANADA.                                 
Change 21.173  SMF 116 Subtype 0 records with QWHS header LENQWHS=36    
VMAC116        caused INVALID PRODUCT SECTION message, and were then    
Sep  9, 2003   deleted (and hence not output in MQMACCT dataset).       
               LENQWHS=36 segment is now decoded, up thru QWHSMTN, but  
               QWHSLOCN/NID/LUNM/LUUV/LUCC/QWHSLUCN are all missing     
               values in MQMACCT short QWHS segment observations.       
              -Input of QWHCCV was changed to $CHAR12 from $EBCDIC12.,  
               to support execution under ASCII.  See Change 22.089.    
   Thanks to Jacob Nudel, Thompson BETA Systems, USA.                   
Change 21.172  Variable PROCNAME in HPSUPROC dataset was not in the     
VMACMWSU       LENGTH $32 statement, so it defaulted to only 8 bytes.   
Sep  9, 2003   It is now $32 bytes, as process names can be long.       
   Thanks to Chris Morgan, UFI, ENGLAND.                                
Change 21.171  ASCII execution only.  RACF variables INTENT and ALLOW   
VMAC80A        were incorrect when MXG executed under ASCII SAS; the    
Sep  7, 2003   INPUT of INTENTCH and ALLOWCH should be $CHAR1.          
   Thanks to Matthew T. Chappell, Queensland Transportation, AUSTRALIA. 
Change 21.170 -TYPE70 variable NRCPUS is redefined to be the Average    
VMAC7072       Number of CPUs that were Online, because IRD can vary    
VMXGRMFI       CPUs On and Off dynamically, and the original NRCPUS was 
Sep  7, 2003   the integer number of CPUs online at interval end that   
               had not been varied, which is incorrect for IRD.         
               SMF70ONT, the Online Time from PR/SM segment is now      
               summed across all of the LCPUs in this MVS System, and   
               that sum is then used to recalculate NRCPUS              
               to now be the Average Number of Online CPUs, and its     
               Label changed.  SMF70ONT is also now output in TYPE70,   
               and MXG percentages based on NRCPUS in TYPE70 were moved 
               to use the Average NRCPUS value in calculations.  One    
               visible impact will be that NRCPUS will no longer be an  
               integer value!                                           
              -RMFINTRV was revised, adding new SMF70ONT variable and   
               with NRCPUS recalculated to be Average Number of CPUs.   
   Thanks to Cheryl Watson Walker, Watson & Walker, USA.                
Change 21.169  Specifying KEEPALL=YES in %VMXGSUM invocation in these   
BUILD005       three members improves performance, and eliminates       
BUIL3005       confusing messages if you happen to test with OBS=1.     
Sep  7, 2003                                                            
   Thanks to Chuck Hopf, MBNA, USA.                                     
AUTOEXEC       may occurs if your SAS installation's SORTSEQ= option is 
CONFIGV8       not SORTSEQ=EBCDIC or SORTSEQ=ASCII, as documented in SAS
Sep  7, 2003   Note SN-07151, which has no fix yet.  So to eliminate the
               exposure with MXG jobs, the appropriate SORTSEQ=EBCDIC or
               SORTSEQ=ASCII is now set in MXG's defaults.              
   Thanks to Brian Sanger, Zurich Financial Services, ENGLAND.          
Change 21.167  Support for multiple uniquely-named CICS user fields is  
EXUTILEX       added by the new _UNIQUE macro defined in member         
UTILEXCL       EXUTILEX, allowing you to create your own named variables
Sep 19, 2003   in CICSTRAN from your user data fields.                  
   Thanks to Terry Fox, Principal Insurance, USA.                       
Change 21.166  IIS Web Log data caused  UNRECOGNIZED HEADER and ARRAY   
VMACWWW        SUBSCRIPT OUT OF RANGE because MXG expected all 21 IIS   
Sep  4, 2003   fields were present.  Logic to recognize the end of      
               fields and protect for non-existent fields was added.    
   Thanks to Mike Penlington, Westpac, NEW ZEALAND.                     
Change 21.165  CICS/TS 2.2 STID=126 UNEXPECTED DATA due to STILEN=284   
VMAC110        because MXG didn't INPUT variable S6RSP9CT, but now it   
Sep  3, 2003   does and the variable is kept in dataset CICCFS6D.       
   Thanks to Allen Mayer, Prudential Securities, USA.                   
Change 21.164  Typos caused unprintable characters in MXG 21.04.  In    
DOCLRMFV       member DOCLRMFV ASCII '85'x "dashes" were converted to   
IMAC6ESS       EBCDIC '25'X, but 'real dash' is '2D'x ASCII, '60'X on   
Sep  3, 2003   EBCDIC.  In member IMAC6ESS, there is a '0D'x that should
               have been '40'X on EBCDIC, '20'x on ASCII.               
   Thanks to Scott Barry, SBBWorks, USA.                                
Change 21.163  Enhancement permits un-sorted datasets in MONTHBLD and   
MONTHBLD       circumvention for the (very rare) NOT-SORTED ERROR if you
MONTHBL3       build a monthly from daily/weekly PDBs that were created 
MONTHBLS       with two different MXG versions that spanned a change in 
Sep  3, 2003   MXG sort order (last time this happened was when SYSPLEX 
               had to be added to RMF sort order!).  Now, inserting this
                 MACRO _BY  %   MACRO _SORTBY  %                        
               before the _MNTHBLD invocation, both the expectation that
               the input dataset is sorted, and the assertion that the  
               output dataset is sorted, are both disabled.             
               The building-in-sort-order by MXG is only for the        
               performance of your report programs, so that if you PROC 
               SORT in the same (recommended) order, SAS will bypass the
               unnecessary sort.  Nothing else in MXG requires datasets 
               be sorted.                                               
               Once you have nulled those macros, all subsequent        
               invocations of _MNTHBLD will be unsorted in and out.     
   Thanks to Caron Knox, Willis Corroon, ENGLAND.                       
Change 21.162  Typo of IFDURTM/496 instead of IFDURTM/4096 caused       
VMAC119        invalid value for IFDURTM.                               
Sep  3, 2003                                                            
   Thanks to Elisabeth Ballet, Michelin, FRANCE.                        
Change 21.161  MQ V5.3 CF dataset MQMCFMGR with MQ 5.3 has very large   
VMAC115        values.  MXG assumed QESTLL of 64, as documented, but    
Aug 27, 2003   protection for longer QESTLL was added to see if that    
               could account for the problem.  Await SMF test data.     
   Thanks to Ruud van Zundert, UBS, ENGLAND.                            
Change 21.160  Support for TNG Version 7 (INCOMPAT, due to insertion of 
VMACTNG        one field in the CAPMPCM HEADER record).                 
Aug 27, 2003                                                            
   Thanks to Colin Bowen, CSC, SOUTH AFRICA.                            
====== Changes thru 21.159 were in MXG 21.04 dated Aug 25, 2003=========
Change 21.159  Variable SYNCTIME in TYPE23 is on the GMT time zone, so  
VMAC23         it should have had ",GMT" at the end of its              
Aug 21, 2003   %VMXGTIME(SYNCTIME,SYSTEM,GMT); statement.               
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.158  Support for new DFSMS/rmm EDGRXEXT data eliminates MXG   
VMACEDGR       "LESS THAN 545 BYTES" messages and incorrect data.  New  
Aug 20, 2003   variables in 'X' record, EDGRXEXT dataset:               
                  RDLABNO ='LABEL NUMBER LABEL=(XX,LL) NEW'             
                  RVDCRSID='FIRST*FILE*CREATION*SYSTEM ID'              
                  RVRBYSET='VOLUME*RETAINED*BY SET?'                    
               New variables in 'D' & 'X' record, EDGRDEXT & EDGRXEXT   
               datasets: (SEE CHANGE 27.046 CORRECTIONS).               
                  RDDEFRET='DEFAULT RETPD USED'                         
                  RDDSNSEQ='DATA SET SEQUENCE NUMBER NEW'               
                  RDEXPDT ='DATA SET EXPIRATION DATE'                   
                  RDEXPDTO='ORIGINAL D/S EXPIRATION DATE'               
                  RVDSTBIN='DESTINATION BIN NUMBER'                     
                  RVDSTMED='DESTINATION BIN MEDIA NAME'                 
                  RVMVDSN1='FIRST DSNAME OF A VOLUME SET'               
                  RVVOL1  ='VOL1 LABEL VOLSER'                          
               The two separate code blocks for the DEXT/RDEXT data was 
               consolidated into a single block and linked to.          
   Thanks to James D. Lieser, United Health Group, USA.                 
Change 21.157  DB2PM-like reports DB2 Accounting Summary had totals     
ANALDB2R       instead of averages for Class 2 Elapsed, Class 2 CPU, and
Aug 20, 2003   Lock Suspensions.  Now they match DB2PM averages.        
   Thanks to Dr. Yao-Chun Rickert, Bank One, USA.                       
Change 21.156  Support for Control-D Log file creates 9 new datasets    
EXCTLOGA       reading their log records from the INFILE name CTLLLOG to
EXCTLOGB       create a dataset for each record type:                   
EXCTLOGC          MXG       MXG                                         
EXCTLOGD          DATASET   DATASET                    LOG              
EXCTLOGE          NAME      LABEL                      TYPE             
EXCTLOGL          CTLDOGA   CTLD CONTROL REGION         A               
EXCTLOGM          CTLDOGB   CTLD ARCHIVE                B               
EXCTLOGX          CTLDOGC   CTLD USER                   C               
FORMATS           CTLDOGD   CTLD DAILY                  D               
IMACCTLL          CTLDOGE   CTLD AMF                    E               
TYPECTLL          CTLDOGF   CTLD DECOLLATE              F               
TYPSCTLL          CTLDOGL   CTLD AUX REGION             L               
VMACCTLL          CTLDOGM   CTLD MIGRAION               M               
VMXGINIT          CTLDOGX   CTLD OTHER LOG TYPES        ?               
Aug 20, 2003   The "C" and "F" datasets contain the variables decoded   
Nov 27, 2003   from the Log Message Text; for now, the other datasets   
               just contain the full LOGMSG text.  If the CTLLLOG file  
               is to be sent to an ASCII platform for MXG execution, the
               file must be sent as binary, as it contains both EBCDIC  
               text and binary values that cannot be translated to      
               ASCII.  The correct DCB is RECFM=F,LRECL=6400, and that  
               is specified in the MXG program.                         
              -Nov 27: Missing STARTIME in CTLDLOGF when log on/off time
               stamps were identical corrected by revised SORT order.   
   Thanks to Elisenda Masacana, la Caixa, SPAIN.                        
Change 21.155  Support for Netspy Versions 6 and 7 already exists in MXG
VMACNSPY       since MXG 20.10.  Test V7 data was read without errors   
Aug 18, 2003   nor any indications of inserted fields.                  
               This change is documentation only; no change was made.   
   Thanks to Ron Byers, British Energy, ENGLAND.                        
ASUMCICS       AND ARE BEING TRUNCATED had no impact, as it was only the
ASUMCICT       DSNLABEL= argument revised in Change 21.090 that was too 
ASUMCICX       long.                                                    
Aug 18, 2003                                                            
   Thanks to Pat Curren, SuperValu Inc, USA.                            
Change 21.153 -Support for BMC's MVIMS 3.3.0 (COMPAT) adds new data in  
VMACCIMS       reserved fields in 'FA'x IMS log record that are created 
Aug 18, 2003   in these new variables in TYPECIMS dataset:              
                  SMQFLAG ='SHARED*MESSAGE*QUEUE*ENVIRONMENT?'          
                  SMQGROUP='SHARED*MESSAGE*QUEUE*GROUP NAME'            
               The ABENDSYS/ABENDUSR variables already existed in the   
               CIMSPROG (program deschedule) dataset, they were added to
               record Transaction Abends in CIMSTRAN dataset.           
              -Variables COREALOC/COREUSED are converted to bytes,      
               labeled  'BYTES*AVAILABLE/BYTES*USED' and formatted as   
               MGBYTES to "print pretty".  Previously they contained the
               count of 2K blocks.                                      
   Thanks to Fabio Massimo Ottaviani, DTS Italia, ITALY.                
Change 21.152  Support for CICS/TS 2.3 (INCOMPATIBLE):                  
CICINTRV          - New variables were inserted into CICSTRAN Subtype 1.
EXCICPGR          - Two new CICS TCBs, 'J9' and 'JM' added, supported in
EXCICSJR            Subtype 2 CICDS and CICINTRV datasets.              
IMACEXCL          - New Subtype 2 vars added to STID=2 and STID=117.    
UTILEXCL          - New Subtype 2 STID=118 and STID=119 create datasets.
VMAC110        -While you can use TYPE110/TYPS110/BUILDPDB to create the
VMXGCICI        CICSTRAN dataset, we strongly recommend that you use the
VMXGINIT        UTILEXCL program to read your CICS Dictionary records to
Aug 22, 2003    create an IMACEXCL tailoring member that will input and 
Sep  1, 2003    keep only the CICSTRAN variables in your CICS records,  
Sep  9, 2003    as that can reduce MXG runtime and save disk space.     
Sep 10, 2003       UTILEXCL is required if you have excluded any fields 
Nov 11, 2003       from your Performance Class (Subtype 1) records.     
               -New fields are inserted in SMF 110 Subtype 1 creating 17
                new variables in CICSTRAN dataset:                      
                   DSMMSCCN='MVS*STORAGE*NO TCB*WAIT*COUNT'             
                   DSMMSCTM='MVS*STORAGE*NO TCB*WAIT*TIME'              
                   J9CPUTCN='USER TASK*J9 MODE*CPU TCB*COUNT'           
                   J9CPUTTM='USER TASK*J9 MODE*CPU TCB*TIME'            
                   KY9CPUCN='USER-TASK*KEY 9*TCB CPU*COUNT'             
                   KY9CPUTM='USER-TASK*KEY 9*TCB CPU*TIME'              
                   KY9DISCN='USER-TASK*KEY 9*TCB DISPATCH*COUNT'        
                   KY9DISTM='USER-TASK*KEY 9*TCB DISPATCH*TIME'         
               -Two new TCBs, 'JM' and 'J9' are created in the CICDS and
                CICINTRV datasets from the STID=60 Dispatcher Statistics
                110 subtype 2 record, creating new DSExxxxx and DSFxxxxx
                variables for those 14th and 15th TCBs.  MXG input based
                on TCB Number is no longer valid, as IBM uses the same  
                TCB number for different named TCBs; the TCB name is now
                used to store TCB data into the correct set of variables
                and the MXG Variable label accurately identifies what   
                TCB is stored in each set of MXG variables:             
                   Prefix:     DSG DS2 DS3 DS4 DS5 DS6 DS7 DS8 DS9      
                   TCB Name:    QR  RO  CO  SZ  RP  FO  SL  SO  J8      
                   Prefix:     DSA DBB DSC DSD DSE DSF                  
                   TCB Name:    L8  S8  H8  D2  JM  J9                  
               -The VMXGCICI member was revised to include the two new  
                TCBs in the PDB.CICINTRV dataset.                       
               -New variables added from STID=2 DFHSMSDS to CICSMDSA:   
                   SMSWAICN='NUMBER OF*REQUESTS*CAUSING*WAITS'          
               -New variables added from STID=117 DFHSJGDS to CICTCPSJ: 
                   SJGCUWCJ='JVM*CURRENT*WORKER CACHE*JVMS'             
                   SJGMXWCJ='JVM*PEAK*WORKER CACHE*JVMS'                
               -New CICSJR dataset created from STID=118 DFHSJRDS with  
                the JVMPROFILE Resource Statistics, one observation per 
                Storage Key for each Profile/Path:                      
                   SJRPRCUR='SJR*CURRENT*PROFILE*USE COUNT'             
               -New CICPGR dataset created from STID=119 DFHPGRDS with  
                the JVM Program Resource Statistics, one obs per record 
                Storage Key:                                            
               -The new and changed STIDs have been validated with data.
               -Note: Several new fields in the SMF records can have up 
                to 255 characters; for now, MXG only inputs the first   
                200 characters, so that MXG can still execute under SAS 
                Version 6, with its 200-byte limit.  But as soon as any 
                MXG customer actually has a name field that is 201 bytes
                of text, I will revise those INPUTs to $EBCDIC256, and  
                the SMF 110 code will have to be executed under SAS V8. 
                   P.S. New stuff, like WebSphere, that is not in the   
                        default BUILDPDB already requires SAS V8!       
                   CICS/TS 2.3 Documentation Errors:                    
                   1. In the Data Areas, the SJGDS description does not 
                      show "117" for the STID of that segment, so you   
                      cannot find that SJGDS is the DSECT for that STID.
                   2. The first SJRDS description is actually the PGRDS 
                      descrption for the STID=119 segment; the bold face
                      title and the index entry need to be changed to   
                      PGRDS.  The ID field does not show "119".         
                   3. The second SJRDS description is correct for the   
                      STID=118 segment The ID field does not show "118".
Change 21.151  Total CREATES in DB2 reports was incorrect; the second   
ANALDB2R       occurrence of QXCRTAB in CREATES=SUM( ... ) should have  
Aug 15, 2003   been QXCTABS.                                            
   Thanks to Dr. Yaou-Chun Rickert, Bank One, USA.                      
Change 21.150 -Support for CPU Time fields in SMF 120 WASserver that    
VMAC120        were put in the SMF record by APAR PQ74463, but were only
Aug 13, 2003   documented in the HOLDDATA section of the PTF; Change    
Aug 19, 2003   21.107 added support for the other new fields.           
                 Dataset TYP120WI:                                      
                   SM120WJ4='AVERAGE*CPU TIME'           TIME13.6       
                   SM120WJ5='MINIMUM*CPU*TIME'           TIME13.6       
                   SM120WJ6='MAXIMUM*CPU*TIME'           TIME13.6       
                 Dataset TYP120WA:                                      
                   SM120CPU='CPU*TIME'                   TIME13.6       
                   Variable SM120CPU was added by Change 21.107, but    
                   units were undocumented; I assumed divide by 4096,   
                   but the HOLDDATA documentation says microseconds,    
                   so the divide was removed.                           
              -Spurious "UN READ DATA FOUND" messages from SMF 120 were 
               due to incorrect calculation of SKIP, now fixed.         
   Thanks to Jan ter Laak, Rabobank, THE NETHERLANDS.                   
Change 21.149 -Support for z990 CPUs. INCOMPATIBLE: Variables in data   
VMAC7072       sets TYPE70PR (LPARCPUS) and ASUM70PR (LPnNRPRC) have    
VMXG70PR       the total number of engines, rather than the number of   
VMXGINIT       online engines in RMF data with new CPUTYPE='2084'x.     
Aug 13, 2003   MXG tests in VMAC7072 had to be revised for that new     
Aug 15, 2003   value.  The code was corrected in August in MXG 21.04.   
Aug 22, 2003  (This note was not in the original change; it was         
Sep 16, 2003   added Sep 16, 2003 to document the requirement).         
              -New PDB.ASUM70LP dataset for LPAR Reporting is easier and
               safer to use than either the detail PDB.TYPE70PR dataset 
               or the summarized PDB.ASUM70PR dataset.                  
                TYPE70PR - Most Detail - One obs for each LCPUADDR in   
                           each LPARNAME, so CPs, ICFs, PHYSICALs, and  
                           Linux engines are included; reporting must   
                           select which obs to use, how/what to         
                           summarize, and the criteria keeps changing   
                           with IBM hardware or OS level, making your   
                           report maintenance complex and exposed.  Once
                           PDB.ASUM70PR existed, MXG has always         
                           recommended its use, but many user reports   
                           were written using TYPE70PR before there was 
                           a PDB.ASUM70PR.                              
                ASUM70PR - "Platform" summary - All LPARs measured in a 
                           single observation, with a set of vars       
                           (LP0NAME,LP0DUR,PCTL0BY,LP0MSUHR...) for 32  
                           LPARs.  Summarized from TYPE70PR with MXG    
                           logic keeping track of what to count,        
                           calculating percentages and MSU variables,   
                           plus the totals for the "Platform".  Very    
                           Very accurate and useful, but having all     
                           those different variable names makes for very
                           messy coding in your reportings, so:         
                ASUM70LP - A "vertical" dataset built from ASUM70PR.    
                           For each online LPAR, one observation is     
                           created in ASUM70LP for each LPARNAME, and   
                           with only one set of variable names, so you  
                           can select and sort and report easily.  (This
                           is probably how ASUM70PR should have been    
                           originally structured!)                      
                  You still must select the "production" SYSTEM whose   
                  observations are used; each SYSTEM creates obs in     
                  all three of the above datasets.                      
              -Corrections/enhancement for PDB.ASUM70PR/PDB.ASUMCEC were
               made in both VMAC7072 and VMXG70PR:                      
              .Variables LPnDUR and LPCTnBY in PDB.ASUM70PR/ASUMCEC were
               sometimes incorrect, perhaps since Change 19.189! Obs    
               with SMF70ONT=0 in PDB.TYPE70PR were included in LPnDUR, 
               so it to be much greater than DURATM*LPnNRPRC, and LPnDUR
               is used to calculate LPCTnBY percentage.                 
              .The VMAC7072 logic to creates SMF70ONT was revised       
                 SMF70ONT - missing -  Pre 2064, does not have ONT      
                 SMF70ONT - zero    -  ONT valid and zero               
                 SMF70ONT - nonzero -  ONT valid and non-zero           
               to be more robust and consistent across hardware, and    
               then VMXG70PR logic that decides to sum this LPARDUR was 
               revised to include old and new but not spares:           
                 IF      SMF70ONT=.    THEN LPARDUR=DURATM;             
                 ELSE IF SMF70ONT GT 0 THEN LPARDUR=SMF70ONT;           
                 ELSE                       LPARDUR=0;                  
              .For LPARs with no CPUs (LPnNRPRC=0), these LPnXXXXX      
               variables LPnDUR,LPnBDA,LPnLAC,LPnMSU70,LPnNSW,LPnWST are
               now set missing when LPnNRPRC=0, (i.e, when the LPAR had 
               no CPUs assigned) to be consistent with the other        
               variables that were already missing.                     
              .Divide by zero error was corrected in ASUM70PR.          
              -Correction in VMAC7072 for PDB.TYPE70PR var SMF70CIN     
               which could be blank for observations after an offline   
               LPAR, because MXG's test to set SMF70CIN should have been
               IF NRCIXGTO (instead of NRICFCPU) as the flag that       
               OW37565 was installed.                                   
              -The CSTORE storage, SMF70CSF, is added for each LPAR in  
               PDB.ASUM70PR, PDB.ASUM70LP, and PDB.ASUMCEC.  (ESTORE is 
               a thing of the past; SMF70ESF not added.)                
               See also Change 21.216 if you are back-level on OS/390 or
               early z/OS and SMF70WLA is not populated in SMF 70.      
   Thanks to Brian Cummings, Federal Reserve Information Technology USA 
   Thanks to Shirley Fung, HSBC, HONG KONG.                             
   Thanks to Joe Key, BOC Gases, ENGLAND.                               
Change 21.148  This UTILBLDP enhancement honors your %LET MACKEEP=      
UTILBLDP       tailoring when you execute %UTILBLDP "instream", i.e.,   
VMXGINIT       when you invoke %UTILBLDP to create an OUTFILE= and then 
Aug 12, 2003   %INCLUDE that file to execute the BUILD program.         
Aug 14, 2003   (Previously, UTILBLDP disregarded any tailoring that you 
Aug 18, 2003   tried to use in a %LET MACKEEP= statement).              
               - If you execute UTILBLDP "instream" with this syntax:   
                     %LET MACKEEP=   ... tailoring code  ... ;          
                     %INCLUDE zzzzzzzz;                                 
                 the text in your %LET MACKEEP statement text will be   
                 stored in the new &MACBLDP macro variable, which is    
                 executed by a new &MACBLDP invocation appended to the  
                 end of the %LET MACKEEP= statement in zzzzzzzz.        
                    - So to execute %UTILBLDP a second time in the same 
                      data step to create a different zzzzzzzz program  
                      (not sure that you'd ever want or need to), you   
                      need to null MACKEEP, or set to a new value,      
                      before each %UTILBLDP execute.                    
                - If instead you don't want to run the zzzzzzzz code in 
                  this step, but you want to tailor it later with %LET  
                  MACKEEP= logic, then you must have a non-blank        
                  &MACKEEP when you run %UTILBLDP to create zzzzzzzz,   
                  and then you must use %LET MACBLDP= instead of the    
                  %LET MACKEEP= statement to pass your tailoring to the 
                  zzzzzzzz program.                                     
                      %LET MACBLDP=  ... your MACKEEP text ...  ;       
                      %INCLUDE zzzzzzzz;                                
                - If MACKEEP is blank when %UTILBLDP creates zzzzzzzz   
                  there is no &MACBLDP statement created in zzzzzzzz.   
                - The %UPCASEs of macro variables OUTFILE, EXPDBOUT, and
                  IMACKEEP was removed because unix permits mixed case  
                  file names.  (This is not an exposure under Windows,  
                  which sees the same name regardless of the case in its
                  file and directory names).                            
                - If you have specified BUILDPDB=NO, but you want the   
                  program to contain the _EPDBOUT invocation, you can   
                  specify  EXPDBOUT= _EPDBOUT,  to create that text.    
                     A later iteration of UTILBLDP may let you put SAS  
                     statements in its EXPDBOUT= argument.              
                - Several dataset sort macros for type 30 datasets were 
                  misspelled and should have been _STY30xx.             
   Thanks to Scott Barry, SBBWorks, INC, USA.                           
Change 21.147  MXG 21.02-21.05 Change 21.062 caused variable STRTTIME in
VMXGUOW        dataset PDB.ASUMUOW to be wrong, although temporary      
Aug 11, 2003   internal variable TIMESTMP (which should not have been   
Sep 23, 2003   kept) was correct and could be used for STRTTIME. The    
               variables HOLDSTRT and HOLDEND were not initialized, but 
               now they are, and so STRTTIME will always equal TIMESTMP.
               I'd should also drop the redundant variable TIMESTMP, but
               since you may have used it, I'll hae to continue to keep 
               both STRTTIME and TIMESTMP variables.  Note: This change 
               was not in MXG 21.04 nor 21.05.  You can correct those   
               versions by inserting                                    
               after EARLIEST=TIMESTMP;                                 
   Thanks to Pat Curren, SuperValu Inc, USA.                            
Change 21.146  Support for Windows 2003 Server MEMORY object, which has 
VMACNTSM       NRDATA=31 with one new variable added.                   
Aug  9, 2003                                                            
   Thanks to Roger Zimmerman, Hewitt Associates, USA.                   
Change 21.145  MXG 21.02-21.03, Change 21.090 made variable DATETIME not
ASUMCICS       exist in the PDB.CICS dataset.  Variable STRTTIME should 
ASUMCICT       be used in reports, and it was just fine.  Even though   
ASUMCICX       variable DATETIME is a temporary variable that is created
Aug  7, 2003   inside VMXGSUM logic, and should not have been kept, it  
               was accidentally added to some datasets, and since some  
               users have used it instead of STRTTIME, it is again      
               created in PDB.CICS so your existing reports that still  
               uses DATETIME won't fail.                                
   Thanks to Pat Curren, SuperValu Inc, USA.                            
Change 21.144  Protection for truncated (invalid) SMF 119 subtype 7     
VMAC119        record with offsets for 32760 bytes of data, but the     
Aug  6, 2003   maximum SMF data bytes are 32756.  This invalid SMF      
               record caused INPUT STATEMENT EXCEEDED RECORD LENGTH     
               error condition. There either is, or will be, an APAR to 
               correct the SMF 119 record, but this type of bad record  
               is now recognized and the last segment is not input.     
     Thanks to Dan Doan, Verizon, USA.                                  
Change 21.143  Support for HMF Release 2.7 (INCOMPAT) changed the       
EXTYHMFW       subtype 29 and 30 records, and added subtype 32 and 33   
EXTYHMFX       that create new TYPEHMFW and TYPEHMFX datasets.          
IMACHMF        See Change 22.162, which corrected this change.          
Aug  6, 2003                                                            
   Thanks to John Mitchell, IBM Global Services, USA.                   
Change 21.142  SMF 118 TCP Statistics TYPETCPS dataset values are not   
VMACTCP        interval values, like in the other TYPETCPx datasets.    
Aug  6, 2003   The _STYTCPS dataset sort macro is revised to sort and   
               deaccumulate the TYPETCPS variables.  And to ensure you  
               don't overlook this need, the _STYTCPS dataset sort macro
               is added in the TYPETCP member; if you have added TCP    
               processing to your BUILDPDB and have added either _STCP  
               (to sort all dataset) or at least the one _STYTCPS sort  
               macro, then your BUILDPDB-built TYPETCPS data will       
               contain legitimate interval values.                      
   Thanks to Brian Crow, BT, ENGLAND.                                   
Change 21.141  With S390/R2.10 on z990 processors, CPU NOT IN TABLE     
FORMATS        message for CPUTYPE=2084 is printed; R2.10 does not      
Aug  6, 2003   contain SMF70CPA, so MXG must use a table lookup in the  
Aug 17, 2003   $MG070CP format table.  The message only impacts the     
               CECSUSEC and MSU variables, and is eliminated by adding  
               the new CPUTYPE and CPCMODEL to the format.  The $MG070CP
               has been updated for the CPCMODEL=307.  17Aug03: FORMATS 
               updated for all 2084's by Al.                            
   Thanks to Jim Horne, Lowe's Companies, USA.                          
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.          
Change 21.140 -Dataset PDB.DB2GBPST DB2 Global Buffer Pool has always   
VMACDB2        had correct values for the QBGLxxx variables for each    
Aug  6, 2003   Global pool, but the summarization of those data into the
Aug 24, 2003   QBGLxxx variables in PDB.DB2STATS was never right.  MXG  
               summed those variables by interval as SMF data was read, 
               but that logic can never work because the data is        
               accumulated by buffer pool within each interval.  Since  
               those variables in PDB.DB2STATS have never been valid,   
               all QBGLxxx variables were removed from both PDB.DB2STAT1
               and PDB.DB2STATS datasets.                               
              -Dataset PDB.DB2STATB DB2 Buffer Pool has always had      
               correct values for the QBSTxxx variables for each of the 
               buffer pools, but their sum in PDB.DB2STATS into the four
               QB1Txxx/QB2Txxx/QB3Txxx/QB4Txxx variable sets were only  
               correct when there was only one buffer pool in a variable
               set.  Those variables are no longer created in DB2STAT1  
               during SMF read, but are created by summarization of the 
               PDB.DB2STATB dataset after it as been built by the       
               _SDB2STB macro in SUMSTATB temp dataset that is then     
               merged in _SDB2STS macro to add those variables back into
              -Some old variables that have not existed for several DB2 
               versions were going to be dropped, but their absence     
               caused TRNDDB2S/MNTHDB2S to die with VARIABLE NOT FOUND  
               errors, so they are added back in, but are always missing
              -B3HITRAT had negative value, due to QBnTxxx errors.      
              -To document in one place, the four buffer sets are:      
                 QB1T=BP0     QB2T=BP1      QB3T=BP2-49 (other 4K)      
                 QB4T=BP80-89 (32K) BP100-109 (16K) BP120-129 (8K)      
              -And in DB2 V7.1, data for a buffer pool can just stop,   
               perhaps when a pool is no longer used, and that caused   
               MXG's deaccumulation logic to require refinement.        
   Thanks to Sim Williams, Fidelity, USA.                               
Change 21.139 -Variable SU_SEC was missing in the optional TYPE6ENH     
ASUMPRTR       dataset with Goal Mode; TYPE72GO was added to the SET    
Aug  5, 2003   statement to populate SU_SEC.                            
              -The second ELSE THRUPUT=.; is now ELSE PCTAFP=.;         
   Thanks to Diane Eppestine, SBC, USA.                                 
Change 21.138  Change 20.069 created new variables, but added them to   
VMAC7072       the wrong KEEP= list.  These variables:                  
Aug  4, 2003    R723RAPP R723RW01 R723RW02 R723RW03 R723RW04 R723RW05   
                R723RWRR R723RWRT R723RWST                              
               are now relocated to the MACRO _VTY72DL's KEEP list for  
               the TYPE72DL datasets, instead of TYPE72SC's list.       
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 21.137  ASMTAPES enhancement detects Allocation Recovery of tape 
ASMTAPES       devices, creates new SMF subtype to record which job was 
EXTMNTAR       delayed for how long and which tape devices, real or     
IMACTMNT       virtual, were unavailable for allocation. The new subtype
VMACTMNT       creates observations in new dataset TYPETARC.            
VMXGINIT       The MXG Allocation Recovery Monitor, "ARCV", feature of  
Aug  4, 2003   the MXG Tape Mount and Tape Allocation Monitor is created
Oct 23, 2003   as a sub-task of the MXGTMNT monitor's main task.  ARCV's
               purpose in life is to establish, under Main Console      
               Services, an Extended MCS console whose purpose is to    
               look at those specific console messages that are related 
               to device allocation recovery.  When an allocation       
               recovery event starts, information related to that event 
               is maintained for the duration of the event.  When the   
               event concludes (device allocated or request cancelled), 
               an SMF record containing information about the event is  
               This feature is implemented as a separate subtask within 
               the existing MXGTMNT address space, both for isolation   
               from the current functionality, and to exploit MVS       
               The "ARCV" function can be enabled in the ASMTAPES source
               before assembly with the DOARCV flag (default is         
               ARCV=NO), or the ARCV=YES/NO can be specified in a PARM= 
               or via a Modify operator command, so it can be enabled or
               disabled at any time without having to restart the       
               MXGTMNT address space.                                   
               To clean out ASUMTAPES codewebs that were there only for 
               seriously-old-releases of MVS, ML-29 eliminated exposures
               in archaic code by eliminating the archaic code; ML-29 of
               ASMTAPES now requires a minimum OS level of OS/390 2.8.  
               Six sites have had ML-29 for several weeks and none have 
               reported any failures, but then none have reported they  
               have tested it yet, either.  22Aug03.                    
               Oct 23: Just discovered that ASMTAPES in MXG 21.04 and   
                       MXG 21.05 did NOT contain ML-29 version.  Now    
                       it does.                                         
Change 21.136  NTSMF dataset SMTPSERV, Windows 2000 and later, didn't   
VMACNTSM       input CATQUELN, causing the subsequent 85 variables to be
Aug  1, 2003   incorrect.                                               
               And with test data, I found that these variables         
                  MSGSENT  MSGTOTS                                      
               are accumulated values, rather than interval values; the 
               _SNTSMTP sort macro now does the deaccumulation of those 
               variables.  (Others variables may also need to be        
               deaccumulated, but only when I have non-zero data values 
               can I determine what needs to be deaccum'd.) And the     
               Instance Name is only one character long in the NTSMF    
               record - being investigated by NTSMF.                    
   Thanks to Xiaobo Xhang, ISO, USA.                                    
Change 21.135  Sample daily reporting from StorageTek SMF (TYPESTC) and 
ANALSTC        MXGTMNT (TYPETMNT) datasets to track STK Virtual Tape    
Aug  1, 2003   activity. Documented in comments in the member.  Note    
               that all of the internal timestamps in the STC records   
               are on GMT; you may need to enable VMXGTIME to set the   
               GMT times back to local time zone before running these   
   Thanks to Chuck Hopf, MBNA,  USA.                                    
Change 21.134  ASG-TMON V2.2 only.                                      
VMACTMO2       Dataset MONITASK, variables NETSNAME UOWID and UOWTIME   
Jul 31, 2003   were incorrectly input, and TALOUOWID was not input at   
               all.  Only critical if you use ASUMUOWT to create        
               PDB.ASUMUOW from MONITASK data.                          
               Dataset MONIUTG, variable TAUTGICT was not input, and    
               variable TAUTSTIM has been removed, since it does not    
   Thanks to Shantha Hallett, CGEY, ENGLAND.                            
====== Changes thru 21.133 were in MXG 21.03 dated Jul 28, 2003=========
Change 21.133  Support for NDM Release 4.3 has been tested with most    
VMACNDM        existing subtypes, but only partial documentation has    
Jul 26, 2003   been found.  New subtypes exist and are protected, but   
               until users require the new subtypes, and their DSECTS   
               are located, the new subtypes are skipped.  See the      
               comments in member VMACNDM as to status of individual    
               NDM subtypes.                                            
   Thanks to Thomas Heitlinger, FICUCIA Karlshruhe, GERMANY.            
Change 21.132  Tailoring MXG to only create some datasets can cause     
DOCMXG         which is the result of trying to PROC SORT a dataset that
Jul 25, 2003   doesn't exist.  This can happen even when you use _Nxxxx 
               "product null" macro to null out all datasets, redefine a
               _Wdddddd "work dataset" macro for each one you want, and 
               redefine the _Sxxxx "product sort" macro to list only the
               _Sdddddd "dataset sort" macros for those datasets that   
               you created:  if a later part of your job has an _Sdddddd
               macro invoked.                                           
                 Most MXG programs use the _Sxxxx product macro, but    
                 there are some cases where the individual _Sdddddd     
                 macro is invoked, and the SAS/ITSV "BUILDPDB" job      
                 invokes several _Sdddddd members, because they were    
                 created in MXG before the more-recent _Sxxxx product   
                 sort macro was created.                                
               The _Nxxxx,_Sxxxx,_Sdddddd etc macros are documented     
               in the DOCMXG member.                                    
               This example for either MXG or ITSV will keep only the   
               DB2ACCT.DB2ACCT and PDB.DB2STATS datasets.               
               Mar 4, 2004:  The earlier example, below, was replaced.  
                             See the text of Change 22.020.             
               //SYSIN DD *                                             
                   %LET PDB2ACC=DB2ACCT;                                
                   %LET PDB2ST0=WORK;                                   
                   %LET PDB2ST1=WORK;                                   
                   %LET PDB2STB=WORK;                                   
                   %LET MACKEEP=                                        
                           MACRO _WDB2ACC _LDB2ACC %                    
                           MACRO _WDB2ST0 DB2STAT0 %                    
                           MACRO _WDB2ST1 DB2STAT1 %                    
                           MACRO _WDB2STB DB2STATB %                    
                           MACRO _SDB2 _SDB2STB _SDB2STS %              
                           MACRO _SDB2ACP %                             
                           MACRO _SDB2ACB %                             
                           MACRO _SDB2ACG %                             
                           MACRO _SDB2PAT %                             
                           MACRO _SDB2ST2 %                             
                           MACRO _SDB2STR %                             
                           MACRO _SDB2PST %     );                      
                   %INCLUDE SOURCLIB(TYPSDB2);                          
   Thanks to Chrisa Neven, KBC, BELGIUM.                                
Change 21.131  The value in SAS macro variable &SYSSCP is the operating 
VMXGINIT       system of this execution, and it returns "OS", "CMS", or 
VMXGGETM       "others" (listed in comments in VMXGINIT).  MXG copies   
VMXGTAPE       &SYSSCP into &OPSYS, and tests for "OS", "CMS", or ELSE, 
VMXGVTOC       creating different code on different execution platforms.
VMXGTAPE       I was misinformed that SAS had changed values of &SYSSCP,
VMXGSUM        and in revising my code, found inconsistent testing for  
VMXGDSNL       both &OPSYS and &SYSSCP, so all logic now uses only the  
VMXGDEL        MXG-created &OPSYS macro variable, whose value is set in 
VMACVMXA       VMXGINIT.  Then my mis-informant RTFM and discovered that
VMACVMON       it was not the macro &SYSSCP, but instead macro &SYSSCPL 
VMACUNIK       that SAS changed ("MVS" became "OS/390" or "z/OS", with a
VMACTPF        lower case z!), but MXG never uses &SYSSCPL, so this     
VMACTAND       change was not actually required.  But consistent coding 
VMACOPC        is the end result, and I consider the time well spent.   
VMACDCOL       See SAS Notes SN/004/004358, SN/006/006346 on &SYSSCPL.  
VAXPDS            Note: If you did want to test &SYSSCPL for that new   
UTILBLDP          "z/OS" value, in macro language, the syntax is        
Jul 24, 2003                                                            
Change 21.130  Support for APAR OW56656 for RMF for z990 family adds    
VMAC7072       variables to existing datasets:                          
VMAC73         - TYPE70X2 dataset                                       
VMAC74            R7024EN   /*NUMBER OF*CRYPTO*ENGINES*/                
VMAC78         - TYPE73 dataset                                         
VMAC79            SMF73CSS  /*CHANNEL*SUBSYSTEM*ID*/                    
Jul 23, 2003      SMF73SFL  has new bit 2 value                         
                            Hardware Allows Multiple Channel Subsystems 
                  SMF73FG4, MXG variable CHANINDY, has new bit 5 value  
                            Chan Characteristics Changed in Interval    
               - TYPE74 dataset                                         
                  SMF74ENF  (not kept, has new bit 0 "Extended Mode")   
               - TYPE78 dataset                                         
                  R783GFLG  MXG variable IOPIFLG has new bit 6 value    
                            Initial-Command-Response measure supported  
               - TYPE78CU dataset new variables:                        
                  R783CBTM='CU BUSY*TIME FOR*DCM MANAGED*CHANS'         
                  R783CMRM='CMR*TIME FOR*DCM MANAGED*CHANS'             
                  R783SBSM='SWITCH*BUSY COUNTS*FOR DCM*MANAGED'         
               - TYPE78CF dataset new variables:                        
                  R783CBT ='CU BUSY*DELAY TIME'                         
                  R783CMR ='INITIAL*COMMAND*RESPONSE*TIME'              
                  R783SBS ='SWITCH*BUSY*COUNTS*ALL PARTITIONS'          
               - TYPE799 dataset                                        
                  R799CNX - new bit 3 value.                            
               - TYPE79C dataset                                        
                  R79FLAG - new bit 5 value.                            
                  New variable:                                         
                  R79CCSS ='CHANNEL*SUBSYSTEM*ID'                       
                  R79CFG3 - new bit 5 value.                            
               - TYPE79E dataset                                        
                  IOPIFLG (R79EGFLG) new bit 6 value.                   
                  New Variables:                                        
                  R79ECBT ='CU BUSY*DELAY*TIME'                         
                  R79ECMR ='CMR*TIME'                                   
                  R79ESBS ='SWITCH*BUSY*COUNT'                          
                  R79ECBTM='CU BUSY*DELAY*TIME'                         
Change 21.129  Support for ASG-Landmark's TMON for MQ-Series creates    
EXTMQQC        these new MXG datasets from the TMMQIN infile:           
EXTMQQE           Dataset    Description                                
EXTMQQH           TMMQQC    CHANNEL STATISTICS                          
EXTMQQMA          TMMQQE    EVENT                                       
EXTMQQMD          TMMQQMA   QUEUE MANAGER - ASID DATA                   
EXTMQQMM          TMMQQMD   QUEUE MANAGER - DATA DATA                   
EXTMQQS           TMMQQML   QUEUE MANAGER - LOG MANAGER                 
EXTMQQU           TMMQQS    PAGE SET STATISTICS                         
EXTMQQV           TMMQQT    THREAD INTERVAL                             
EXTMQQX           TMMQQU    QUEUE STATISTICS INTERVAL                   
TYPETMMQ          TMMQQX    EXCEPTION                                   
Jul 23, 2003                                                            
Change 21.128  If you used UTILEXCL (for CICS Excluded Fields) to create
IMACEXCL       an IMACEXCL member, or if you tailored the MXG IMACEXCL  
UTILEXCL       member, variables SC24CHWM and SC31CHWM were wrongly     
Jul 23, 2003   divided by 4 million (4E06 in floating point syntax),    
               and variables SC23COCC and SC31COCC were wrongly not     
               divided by 4E06.  Using the un-modified VMAC110 produced 
               correct values for all four variables.                   
   Thanks to Art Cuneo, BlueCross Blue Shield of Illinois, USA.         
Change 21.127  The INFILE SMF statement has FILENAME=INFILENM added, and
VMACSMF        LENGTH INFILENM $64; so that INFILENM will contain the   
Jul 21, 2003   MVS DSNAME or the ascii directory/filename of the input  
               SMF file that is being read.  INFILENM is NOT kept in any
               MXG datasets, but is available as each record is read,   
               and could be used to track what DSNAMEs have been read.  
               Although MVS DSN is only $44, I picked $64 because of the
               typical size of ascii directory and filenames.           
   Thanks to Dr. Alexander Raeder, Karstat AG, GERMANY.                 
Change 21.126  TYPE74CA variable R745DCIR is now reserved; variables    
VMAC74         R745CUID (from "CO" segment) and R745DCID (from "DO")    
Jul 21, 2003   are documented by IBM as "Control Unit ID", but when     
               only two unique values ('1B'x=2105s and '15'x=3390-6s)   
               were found in RMF data, IBM was queried and confirmed    
               that the fields actually contain a unique code for the   
               cache controller type; IBM documentation will be revised.
               Variable R745DCID is now formatted HEX2.                 
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.125  You can now map different SRVCLASS from different SYSTEM 
VMXGRMFI       or SYSPLEXes into a single workload in PDB.RMFINTRV.     
Jul 22, 2003   You use two WORKnn statements, with different nn values, 
               but with the same first two arguments (workload name,    
               label text), and then the SYSTEM or SYSPLEX arguments    
               control which SRVCLASS observations from TYPE72/TYPE72GO 
               are included in this workload name.  For example         
                 WORK01=TSOP/TSO Prod//TSOPROD/2//PLEXA,                
               would create two workloads, TSO containing SRVCLASS      
               TSOPROD from PLEXA, and TSOP containing SRVCLASS TSO from
               PLEXA and SRVCLASS TSOPROD from PLEXB.                   
               Because PERIODS=2 is specified, the "PERIODS" response   
               variables for two periods will be created for each       
               of these workloads, comprising these variables:          
                  TSOP1RSP TSOP1SWP TSOP1TRN                            
                  TSOP2RSP TSOP2SWP TSOP2TRN                            
                  TSO1RSP TSO1SWP TSO1TRN                               
                  TSO2RSP TSO2SWP TSO2TRN                               
               In addition, because the workload name starts with TSO,  
               the "TSO" response variables for the entire system:      
                  TRIVRESP TSO2RESP TSO3RESP TSO4RESP                   
                  TRIVTRAN TSO2TRAN TSO3TRAN TSO4TRAN                   
                  TRIVSWAP TSO2SWAP TSO3SWAP TSO4SWAP                   
                  (Note: Previously, only the workload 'TSO' exactly was
                         in these "TSO" response variables, but now, all
                         workloads with XXXX starting with "TSO" are    
                         included in the "TSO" response variables, and  
                         you can use the "PERIODS" response variable for
                         the individual TSO workloads if more than one. 
               The comments documenting the VMXGRMFI arguments was also 
               revised by this change.                                  
               Note: To use these enhancements, you MUST execute MXG    
               with SAS Version 8.2 or later.                           
   Thanks to Shirley Fung, HSBC, HONG KONG.                             
Change 21.124  Support for EntireX user SMF accounting EXXACTR record   
EXENTIRX       creates ENTIREX dataset.                                 
Jul 18, 2003                                                            
   Thanks to John Cousins, Bristol City Council, ENGLAND.               
Change 21.123  Non-duplicate TYPE6156 records were deleted by the NODUP 
VMAC6156       in MXG's PROC SORT, because all of the kept variables in 
Jul 17, 2003   TYPE6156 were identical.  However, the two records were  
               different, only in the catalog segment E3 (TRUENAME), and
               one record was for Data, the other for Index, so variable
               TRUETYPE and TRUEDSN are now decoded from the 'E3'x data,
               and are kept in TYPE6156, and are added to the _BTY6156  
               by list, so the non-duplicate records are not duplicates 
               any more.                                                
   Thanks to Art Cuneo, BlueCross Blue Shield of Illinois, USA.         
Change 21.122  The +58 in Volume Record from MVSRECLV=01 RMM records    
VMACEDGS       was changed to +122 by Change 19.284, but now records    
Jul 16, 2003   have been found with MVSRECLV=01 that still have only    
               +58 bytes to skip between MVDCRSID and MVDSN1L, and      
               I can find no flag that indicates how many bytes need to 
               be skipped.  Using +122 with +58 record causes STOPOVER, 
               while using +58 with +122 causes no error (and only the  
               variables listed in Change 19.284 to be in error), so I  
               have changed the default back to +58, and have created   
               a new "old-style"    MACRO _LNEDGS +58  %   in VMACEDGS  
               that can be changed externally, if you have +122 records,
               by inserting this statement as your first //SYSIN DD *:  
                  %LET MACEDGS=   MACRO _LNEDGS +122  %   ;             
   Thanks to Jim Bentley, AHOLD Information Services, USA.              
Change 21.121  DB2 Trace IFCID=21 variable QW0021GS, input as $CHAR4.,  
VMAC102        should have been variable QW0021GF, input as $CHAR1., and
Jul 14, 2003   variable QW0021CS should have been input as $CHAR1.  Both
               QW0021CS and QW0021GF are now formatted $HEX2. and       
               variable QW0021GS is no longer kept in T102S021 dataset. 
              -IFCIDs 251 and 257 internal QW0251xx and QW0257xx are now
               input, formatted, and kept.                              
   Thanks to Richard Link, BlueCross BlueShield of Illinois, USA.       
Change 21.120  Condition Code variable NDMSCC is a character variable   
VMACNDM        with $HEX8. format, so it prints '00000000' for a zero   
Jul 14, 2003   and '00000008' for an 8, but that is messy for testing,  
               so new variable NDMSCCNR, a numeric variable, is added to
               the NDM datasets that actually contain condition code:   
                 AE CH CT DP DT FP GF MC RJ RT PS PT SI WO              
               and is created with NDMSCCNR=INPUT(NDMSCC, &PIB.4.);     
               Variable NDMSCC was incorrectly kept in these datasets:  
                 CE CI FI GO IF NL PI SB TI TP                          
               that do not contain it, so it was removed from them.     
   Thanks to George Canning, Abbey National, ENGLAND.                   
Change 21.119  One debugging "PUT" statement should have been removed,  
TYPETHST       and the second one commented out.                        
Jul 11, 2003                                                            
Change 21.118  Support for AS/400 TCP and TCPIEF objects create two new 
EXQAPTCP       datasets:                                                
EXQAPIFC           dddddd   dataset   contents                          
IMACQACS           QAPTCP   QAPMTCP   TCP Statistics                    
VMACQACS           QAPIFC   QAPMIFC   TCP-IFC Statistics                
Jul 11, 2003                                                            
Jul 23, 2003                                                            
   Thanks to Roger Zimmerman, Hewitt, USA.                              
Change 21.117  Support for MainView for CICS 5.6 CMRDETL file (INCOMPAT)
VMACMVCI       required changes to the T6ECPRID NE 'F4'x tests to GE as 
Jul 10, 2003   the new version has T6ECPRID='F5'x.  There are a few new 
Jul 16, 2003   variables that were added to the datafile, including the 
Jul 17, 2003   GMT Time Zone offset, MVCVTTZ.  So with this change:     
                 Variables STARTIME,ENDTIME,T6ETKSTR and T6ETKSTO are   
                 now converted to Local Time Zone; previously, they were
                 in the GMT time zone.  Fortunatly, if you were using   
                 datetime variables CMRLBEGN or CMRLENDT in reports,    
                 the have always been on the local time zone.           
              -A number of duration variables were not formatted with   
               TIME12.2; all now are.                                   
              -Variable T6EUCPUT was incorrectly read as PIB8; it is a  
               pair of time and count PIB4 fields, T6EUCPUT & T6EUCPUC. 
               Variable T6EUCPUT is now identical to existing T6ECPUR,  
               and T6EUCPUC counts CPU dispatches.                      
              -File data is now correct; the file offset is now used to 
               locate the file data.                                    
   Thanks to Udo Froehling, Signal-Iduna, GERMANY.                      
   Thanks to Reinhold Lehmann, Signal-Iduna, GERMANY.                   
Change 21.116  Major revisions to AIX PTX support.  The original TYPEAIX
EXAIXCPN       member read the "SpreadSheet" format and created only the
EXAIXDSK       AIXPTX interval dataset, with cryptic variable names and 
EXAIXFS        "room" for only 3 disk drives, etc., because that design 
EXAIXFSV       requires a new variable name for repeated values. The new
EXAIXINT       code will continue to create AIXPTX from SpreadSheet     
EXAIXIPN       format (recognizable by the text "TIMESTAMP" in 2nd      
EXAIXLAN       record), but that format is no longer recommended and    
EXAIXMEK       AIXPTX will be static (i.e., will be missing data).      
EXAIXMEV       This re-design reads the "comma" PTX output format (has  
EXAIXPRO       text "TIME=" in 2nd and following records), and creates  
EXAIXPSP       multiple datasets, properly supporting an unlimited      
EXAIXPSP       number of disks, lans, paging spaces, processes, etc.,   
IMACAIX        for objects with multiple instances per interval.  New   
VMACAIX        AIXMEMR, AIXMEMV, and AIXMEMK provide data for the MEM   
VMXGINIT       Real, Virt, and Kmem records; other segments that are    
Jul  9, 2003   written once per interval (CPU, PAGSP, PROC, SYSCALL and 
               SYSIO, at present) are output in AIXINTRV dataset.       
                  DDDDDD    MXG       MXG                               
                  DATASET   DATASET   DATASET                           
                  SUFFIX    NAME      LABEL                             
                  AIXDSK   AIXDSK    AIX DISK DATA                      
                  AIXFS    AIXFS     AIX FS DATA                        
                  AIXFSV   AIXFSV    AIX FS VOLUME GROUP DATA           
                  AIXLAN   AIXLAN    AIX LAN DATA                       
                  AIXCPN   AIXCPUNR  AIX CPU/CPUNUMBR DATA              
                  AIXIPN   AIXIPNET  AIX IP/NETIF DATA                  
                  AIXMER   AIXMEMR   AIX MEM/REAL DATA                  
                  AIXMEV   AIXMEMV   AIX MEM/REAL DATA                  
                  AIXMEK   AIXMEMK   AIX MEM/KMEM DATA                  
                  AIXPSP   AIXPAGSP  AIX PAGESP/PAGESPAC DATA           
                  AIXPRO   AIXPROCS  AIX PROC/PROCESS DATA              
                  AIXPSP   AIXPAGSP  AIX PAGESP/PAGESPAC DATA           
                  AIXINT   AIXINTRV  AIX INTERVAL DATA                  
               Some data appears to be completely destroyed when names  
               (process, file system, cpu number) are to long to fit in 
               the output file's LRECL; other data is ambiguous when the
               three variables CPUACC, CPUMS, and CPUPCT are all trunc'd
               to two positions of 'CP' in the PROC/CPUNUMBR records!   
               There are additional data (ICP/AREA, IP/ROUTING, IP/=,   
               TCP/=, UDP/=, RPC/CLSERV, NFS/SERV, and RTIME) that will 
               be supported (and create more datasets) when test data is
               received to validate those data.                         
               "INVALID OBJECT" messages with numbers for the object are
               created in the PTX output file for Java processes that   
               have extremely long names; PTX cuts off the process name 
               at a specific maximum assumed length, and important info 
               is lost in the name pattern.  One solution is to have the
               application developer use shorter process names, but the 
               issue is still being investigated in Nov, 2003.          
   Thanks to Sam F. White, CocaCola, USA.                               
   Thanks to C. Tim Browning, Coca-Cola Enterprises, USA.               
Change 21.115  Support for APAR PQ71799 HTTP Server SMF 103 record fixes
VMAC103        errors in data, adds new variables, and adds options to  
Jul  7, 2003   "separate" and "sync" SMF 103 records.  See extensive    
               notes in the APAR text.  Variables added to TYPE1032:    
                  SUBSYS  ='SUBSYSTEM*NAME'                             
               The first and last variables are also added to TYPE1031. 
Change 21.114  The JCL example still had double single-quotes after each
JCLTEST6       MXG2102 that should have been a single single-quote.     
Jul  7, 2003                                                            
   Thanks to Jim Horne, Lowe's Companies, USA.                          
Change 21.113 -Only the first 99 service class names were examine in the
UTILRMFI       VMXGRMFI parsing of its arguments, and arbitrary limit   
VMXGRMFI       that is now increased to 999 names in each argument list.
Jun 27, 2003  -KEEPALL=NO is now specified for the TYPE70 logic, so that
               the new more-than-16-CPUs-in-TYPE70 logic in VMXGRMFI    
               won't fail if you read an old PDB with VMXGRMFI.         
   Thanks to Jay Brookover, First Citizens, USA.                        
Change 21.112  Variables CPUDETTM, Dependent Enclave CPU time, exists in
BUILD005       PDB.SMFINTRV, but it was not kept in PDB.STEPS, and was  
BUIL3005       not summed into PDB.JOBS, until this change did so.      
Jun 27, 2003                                                            
   Thanks to Brenda Rabinowitz, The Prudential Insurance Co., USA.      
Change 21.111  Variables GBLCACSA and GBLCAC24 should have been divided 
VMAC28         by GBLSAMPL, to get their average values in NPM dataset  
Jun 26, 2003   NPMVSVGB (VTAM Global Resourcesd).                       
   Thanks to Andre D. Walker, Bank of America, USA.                     
Change 21.110  RMF type 78 subtype 2 "Job-Level Virtual Storage Monitor"
VMAC78         sections for "Early Address Spaces" may have invalid data
Jun 25, 2003   ('070E000000000000'x) for R782RDTM/R782RDDT, causing the 
               INVALID DATA FOR READTIME messages and dumps on the log. 
               This change adds the "??" modifier to the READTIME INPUT 
               to suppress the message and hex dumps, so READTIME will  
               still be missing, so you could identify which JOBs had   
               invalid values in TYPE78PA.  You can identify your Early 
               Address Spaces by looking JOB in TYPE30_6 dataset, as it 
               only contains the obs for your Early ASID jobs.  If you  
               find JOBs that are not Early ASIDs, then you probably    
               have CA's CA-7 Job Scheduling Product (which modifies the
               read date/time of jobs under it's control) and you need  
               to contact CA Technical Support to correct their error.  
   Thanks to Josep Miquel, La Caixa, ESPAGNE.                           
Change 21.109  SYSTEM record with NRDATA=35 was unexpected; the record  
VMACNTSM       was from an NT 4.0 system with Service Pack 6, and NTSMF 
Jun 25, 2003   was at PRFSENVR=2.4.4 and VERSION=2.2.2.  The discovery  
               records show that six fields (five %total xxxxx time and 
               total interrupts) are repeated (just like NRDATA=32 case)
               so there was no new data, just another exception now     
   Thanks to Xiaobo Zhang, ISO, USA.                                    
Change 21.108 -In VMXG70PR, new variables LPnNSW for each LPAR, labeled 
VMXG70PR       are created in PDB.ASUM70PR and PDB.ASUMCEC datasets,    
Jun 26, 2003   from SMF70NSW.                                           
              -Labels for some capping-related variables were revised:  
                In TYPE70PR dataset:                                    
                  SMF70NSW='PCT WHEN*LPAR WAS SOFT CAPPED*BY WLM'       
                In TYPE72GO dataset:                                    
              -Labels for variables PCTLGBY and PCTLGOV were corrected  
               to LPAR 16 and blank variables PCTLNBY and PCTLNOV are   
               now labeled for LPAR 23.                                 
   Thanks to Harry Price, Florida Power and Light, USA.                 
   Thanks to Freddie Arie, TXU, USA.                                    
Change 21.107  Support for WebSphere APAR PQ74463 that adds CPU time to 
VMAC120        SMF 120 Version 5.0 records; that APAR pointed to new SMF
Jun 24, 2003   record documentation, and I found many new fields were   
               added by Version 5; all are now input and kept.          
                 Datasets: TYP120SA,TYP120SI,TYP120JC,TYP120JI,TYP120WI:
                 Datasets TYP120JC and TYP120JI:                        
                Dataset TYP120SA:                                       
                    SM120WCP='TOTAL*WLM ENCLAVE*CPU TIME'               
                Dataset TYP120SI:                                       
                    SM120TEC='TOTAL*WLM ENCLAVE*CPU TIME'               
                    SM120NHS='HTTP*SESSIONS*EXIST*AT END'               
                    SM120NHA='HTTP*SESSIONS*ATTACHED*AND ACTIVE'        
                    SM120BTH='BYTES*TO SERVER*FROM ALL*CLIENTS'         
                    SM120BFH='BYTES*FROM SERVER*TO ALL*CLIENTS'         
Change 21.106  Variable ENDTIME was incorrectly converted back to GMT;  
VMACWWW        raw log values of:    [22/Jun/2003:23:32:54 +0400]  are  
Jun 24, 2003   the local time followed by the delta to add to convert   
               to GMT, but I thought the datetime was GMT and the +0400 
               was the GMT offset, and so ENDTIME ended up back on GMT. 
               The GMT conversion code was removed so ENDTIME is on the 
               Local time zone; new variable GMTOFFTM is created in case
               you need to convert back to GMT or to know the zone.     
                  The above example from Eastern Daylight Savings offset
                  of +0400 will have GMTOFFTM= -4 hours, consistent with
                  all GMT offset values, normally used in conversion:   
                    LOCAL = GMT + GMTOFFTM;                             
                  So to convert WebLob ENDTIME back to GMT, you'd use:  
                    ENDTIME = ENDTIME - GMTOFFTM;                       
   Thanks to Jim Agrippe, Cleveland Clinic Foundation, USA.             
Change 21.105  MXG 20.20 ASUMCICS caused zero observations in PDB.CICS  
ASUMCICS       if the input CICSTRAN was on tape.  ASUMCICS has always  
ASUMCICT       caused two mounts (one open to test if CICSTRAN has data,
ASUMCICX       reading one record, then one open to read the data), but 
Jun 25, 2003   MXG 21.02 caused the full dataset to be read twice.      
               All of that complexity and exposure was so that ASUMCICS 
               would figure out if you had IBM or Landmark CICS data to 
               be used to create your PDB.CICS summary dataset.         
               But I do not recommend that you use ASUMCICS; with MRO,  
               CICS creates multiple observations in CICSTRAN/MONITASK  
               for one "unit of work", so that a PDB.CICS built from    
               CICSTRAN/MONITASK won't count user transactions, and all 
               CPU time will be under the TRANNAME=CSMI,etc.            
               Instead, you should have been using the ASUMUOW member   
               (if you have CICSTRAN data), or the ASUMUOWT (if you     
               have the MONITASK data), to first create PDB.ASUMUOW     
               dataset (one obs per "unit of work", correct TRANNAME,   
               etc) and use that for your CICS response measurement.    
               Then include the ASUMCICX member, which used PDB.ASUMUOW 
               as the input to create the PDB.CICS summary dataset.     
               To eliminate the multiple opens and complexity, I have   
               made an INCOMPATIBLE change, but only if you were using  
               ASUMCICS to summarize Landmark's MONITASK data:          
                 Instead of using ASUMCICS to read MONITASK data, you   
                 must use new ASUMCICT to create PDB.CICS from MONITASK.
               If you were (wisely) using ASUMUOWT and ASUMCICX to      
               create your PDB.CICS from Landmark MONITASK, there is    
               no change required to your daily job.                    
               To summarize what these members do after this change:    
               ASUMCICS - Reads only CICSTRAN, creates PDB.CICS.        
               ASUMCICT - Reads only MONITASK, creates PDB.CICS.        
               ASUMUOW  - Combines CICSTRAN,DB2ACCT, creates PDB.ASUMUOW
               ASUMUOWT - Combines MONITASK,DB2ACCT, creates PDB.ASUMUOW
               ASUMCICX - Reads only ASUMUOW, creates PDB.CICS.         
               Verically: use ASUMCICS or ASUMCICT (left pair) if you   
               need the "old" PDB.CICS ("CSMI" tranname, segment counts)
               but most sites should use one of the right pair, using   
               to first create PDB.ASUMUOW (correct TRANNAME, counts a  
               unit-of-work as a transaction), and then create PDB.CICS 
               from that PDB.ASUMUOW data.                              
                  IBM       ASG            IBM     IBM      ASG     IBM 
    dataset:   CICSTRAN   MONITASK       CICSTRAN  DB2    MONITASK  DB2 
    program:   ASUMCICS   ASUMCICT          ASUMUOW         ASUMUOWT    
    dataset:   PDB.CICS   PDB.CICS       PDB.ASUMUOW      PDB.ASUMUOW   
    program:                                ASUMCICX        ASUMCICX    
    dataset:                                PDB.CICS        PDB.CICS    
               ===wrong TRANNAME===       ====correct TRANNAME=====     
              ==obs per CICS segment=     ====obs per CICS UOW====      
              ==not the recommended =     ====the recommended=====      
   Thanks to Normand Poitras, IBM Global Services, CANADA.              
   Thanks to Jim Horne, Lowes, USA.                                     
Change 21.104  OAM SMF type 85 records R85PVRM '130' caused STOPOVER and
VMAC85         INPUT STATEMENT EXCEEDED error condition in subtype 74   
Jun 23, 2003   records.  Four tests for R85PVRM GE '150' were changed   
               to R85PVRM GE '130' as these new records contain those   
               fields thought to have been added by their 1.5.0 level.  
   Thanks to Andreas von Imhof, Rabobank, THE NETHERLANDS.              
Change 21.103  The copying of WEEK4-WEEK5, WEEK3-WEEK4, WEEK2-WEEK1 and 
BLDNTPDB       WEEK-WEEK2 was relocated to be just prior to building of 
Jun 12, 2003   the new WEEK pdb on the first day of the week; it will   
               also note on the log what is being done for you.         
   Thanks to Terry Heim, ECOLAB, USA.                                   
Change 21.102  STK IXFP Iceberg SMF records fix L2P00A2 and LZP00A9 are 
VMACICE        already supported by MXG; the fix corrects a problem with
Jun  9, 2003   records being created that were greater than 32756 bytes;
               the fix creates multiple records when necessary, and has 
               two new count fields added, but those fields are not     
               needed for MXG to handle the multiple records, so there  
               is no change to MXG needed for those fixes.              
               Records with the fixes have been read and validated.     
               However, SNAPDUR was corrected; it has always been wrong 
               by a factor of ten, because the documentation had it in  
               "hundredths" when it is actually in milliseconds.        
   Thanks to Mikal W. Green, STK, USA.                                  
====== Changes thru 21.101 were in MXG 21.02 dated Jun  9, 2003=========
Change 21.101  CICSTRAN variable CPURLSTM was not multiplied by 16 when 
VMAC110        created by VMAC110 for CICS/TS 1.1 or later, but if you  
Jun  9, 2003   used UTILEXCL, it correctly multiplied by 16 for all CICS
               versions.  VMAC110 was revised to correctly calculate the
               CPURLSTM for all versions. CPURLSTM is valid CPU time and
               is included in variable CPUTM; fortunately, CPURLSTM is  
               usually small.                                           
   Thanks to Vernon Kelly, IBM Global Services, USA.                    
Change 21.100  CICSTRAN variable RTYPE has two new values, 'F' and 'S', 
FORMATS        that are now decoded by the $MG110RT format:             
Jun  9, 2003     'C'='C:TERMINAL CONVERSE'                              
                 'D'='D:USER EMP DELIVER REQUEST'                       
                 'F'='F:FREQUENCY REQUEST'                              
                 'M'='M:SEMI-PERMANENT MIRROR SUSPEND'                  
                 'T'='T:TASK TERMINATION'                               
   Thanks to Diane Eppestine, SBC, USA.                                 
Change 21.099  Support for ten new NDM subtypes; this is incomplete;    
VMACNDM        only the skeleton set of variables is created for each   
Jun  8, 2003   subtype, but all of the new members and VMXGINIT macros  
               exist, so only VMXGNDM will likely need to be updated;   
               just got DSECTs and no time to write the code today.     
   Thanks to Peter Lines, Royal Bank of Scotland, SCOTLAND.             
Change 21.098  These TYPE7204 variables that contained 'SUM OF ALL'     
VMAC7072          R724ACTF       /*SUM OF ALL ACTIVE FRAMES*/           
Jun  8, 2003      R724IDLE       /*SUM OF ALL IDLE FRAMES*/             
                  R724SLOT       /*SUM OF ALL SLOTS USED*/              
                  R724DIV        /*SUM OF ALL DIV FRAMES*/              
                  R724FIX        /*SUM OF ALL FIXED FRAMES*/            
               in their label are now divided by NRSAMPLE to change     
               their value to the more useful and expected average      
               value for the interval, and 'SUM OF ALL' was removed from
               their labels.                                            
               These variables had correct values because MXG did divide
               by NRSAMPLES, but still had 'SUM OF ALL' in their labels:
                  R724TSV        /*SHARED PAGE VIEWS*/                  
                  R724VIN        /*VALID SHARED PAGES IN CSTOR*/        
                  R724VLC        /*SHARED PAGE VALIDATIONS*/            
                  R724GPI        /*SHARED PAGEINS FROM AUX*/            
               which is now removed.                                    
               And these variables were correct by accident, as they had
               the average value already, but MXG had 'SUM OF ALL':     
                  R724USER    &PIB.4.   /*USERS*FOUND*/                 
                  R724ACTV    &PIB.4.   /*ACTIVE USERS*FOUND*/          
               so only the label was changed and no division required.  
               The IBM documentation in both the SMF Manual and DSECTS  
               are incorrect for USER and ACTV variables; it took real  
               RMF data to revise the code to decode the data.          
   Thanks to Lawrence Jermyn, Fidelity, USA.                            
Change 21.097 -Support for CA/TMS PDC # QI30130 which adds 4 variables: 
TYPETMS5       to the TYPETMS (Volume) dataset:                         
Jun  8, 2003      CTLGCNT ='NR TIMES*DATASET WAS*UNCATALOGED'           
                  FILPERC ='PCT OF*PHYSICAL SPACE*USED BY*FILE'         
                  VOLPERC ='PCT OF*PHYSICAL SPACE*ON VOL*IN USE'        
               and adds the first 3 variables to the TYPEDSNB (file)    
              -Support for TRTCH='EC'x,'ED'x decode for 3590-384T       
               (standard) and 3590-384X (extended length cart) 3590     
               devices with 384 tracks.                                 
              -Variables B1INT and B1DIS were replaced by the new fields
               and no longer exist.                                     
   Thanks to Len Rugen, University of Missouri, USA.                    
Change 21.096  Support for GEPARMKY=001B (PRTQUEUE) creates new variable
IMAC6ESS       ESSPRQUE in TYPE6 if IMAC6ESS is used to decode ESS data.
VMAC6ESS       The 001B also caused INPUT STATEMENT EXCEEDED error if   
Jun  6, 2003   had a tailored, earlier IMAC6ESS in your USERID.SOURCLIB.
   Thanks to Reinhard Nitsch, Provinzial Versicherungen, GERMANY.       
Change 21.095 -Support for six new TNG objects from NT:                 
EXTNT038         PRINT QUEUE, and WEB SERVICE,                          
EXTNT039       that create NT036 thru NT041 datasets.                   
EXTNT040      -Support for new fields in LOGICALDISK, PHYSICALDISK,     
EXTNT041       MEMORY, SYSTEM, and UDP objects.                         
FORMATS       -Support for 1-Header record, found only in a "Monthly"   
IMACTNG        TNG Performance Cube.                                    
Jun  8, 2003                                                            
   Thanks to Peter Krijger, National Bank of New Zealand, NEW ZEALAND.  
====== Changes thru 21.094 were in MXG 21.02 dated Jun  5, 2003=========
Change 21.094  Calculation of MSU4HRAV in PDB.RMFINTRV was revised.  It 
VMXGRMFI       was incorrect in several instances: after a change in RMF
Jun  5, 2003   interval value, or after an IPL, and it was calculated   
               when it should not have been, notably, if there was a gap
               in the data.  It can still be missing when SMF70LAC is   
               not, and it can be different from SMF70LAC when there are
               not four hours of data available to MXG.                 
   Thanks to Frank De Bree, DEXIA, BELGIUM.                             
   Thanks to Mark Nouwen, DEXIA, BELGIUM.                               
Change 21.093  PDB.ASUMUOW corrections (SYSTEM could be blank) and logic
VMXGUOW        revisions more robustly handle CICS and DB2 data merge.  
Jun  5, 2003  -Several variables, including QWACAJST added to SUM= list.
              -Added HOLDSTRT/HOLDEND to RETAIN, and a DATA step to get 
               the FIRST.UOWIDCHR values, to correct an exposure that   
               could have caused missing STRTTIME and wrong ELAPSTM.    
              -Corrected LAST.UOWIDCHR logic that was assigning blanks  
               for the SYSTEM variable for CICS-only work.              
              -Moved &OUTCODE to the end of the DATA step, for safety.  
              -Formatted WAITTOTM as TIME12.2.                          
              -If an OBS was SPUN, when it came back in, if any MIN/MAX 
               variables had been specified, the values from SPIN were  
               not used in the MIN/MAX calculation, but now are.        
               These changes were suggested with implemenation examples!
   Thanks to Scott Barry, SBBWorks, Inc, USA.                           
Change 21.092  User records RMDS,SYNC,WYLA,WYLB,HSM,TSMO,COM,M204 might 
UTILBLDP       have zero obs; those products have non-standard _aaaaID  
Jun  4, 2003   macro names for their SMF IDs, or they create multiple   
               multiple SMF records and they all require separate tests,
               but only 2 of 3 places had been fully updated to protect 
               all of these special user records.  The error only       
               occurred whenf %LET MACKEEP= was used.                   
   Thanks to Scott Barry, SBBWorks, Inc, USA.                           
====== Changes thru 21.091 were in MXG 21.02 dated Jun  3, 2003=========
Change 21.091  A major revision of support for RMF III VSAM files.      
ASMRMFV        Changes to ASMRMFV in particular are to position the code
CLRMFV         for future upgrades to handle more RMF III tables.       
DOCLRMFV      -When ENDTIME of a MINTIME interval was the same as the   
Jun  3, 2003   STARTIME of the next MINTIME interval, it was incorrectly
               selected.  RMF III almost always has the same time for   
               the end of one MINTIME interval and the start of the     
               next.  Only noticed when testing for a single minute to  
               be selected, but two were output.                        
              -Parameter processing completely rewritten to be table    
               driven, allowing new keywords and keyword aliases to be  
               easily added for new table support.                      
              -Parm keywords have shorter aliases to fit in the JCL     
               limit of 100 characters for a parameter.  The full list  
               of all alias names are given in the DOCLRMFV member.     
               NOxxx names added to assist.                             
              -Max LRECL=32760 (increased from incorrect LRECL=32756).  
              -Date selection formats expanded YYYDDD YYYDDD YYDDD YDDD 
               DDD DD or D.                                             
              -Time-based selection added, with FROMTIME/TOTIME= parm   
               and HHMM, HMM, MM, or M formats, plus FROM/TO= nn, for   
               relative number of days before or after today.           
              -ASMRMFV output reports MXG Last Change Number in output, 
               includes DSNAME and filtering counts, and a summary if   
               multiple systems are processed, min/max times, etc.      
               NODETAIL keyword will suppress the detail reports.       
              -Debugging enhancement in RMFSKIP option.                 
              -ENC record outputs only one per enclave, correcting case 
               where extensive use of Enclaves caused the RMF output    
               record to exceed the output LRECL limit.                 
              -An (unexpected) Table ID mismatch will cause ASMRMFV to  
               issue a message and then ABEND.                          
               Changes to the CLRMFV CLIST that executes ASMRMFV:       
              -The changes in CLRMFV are not backwards compatible; this 
               version must be used with the revised ASMRMFV program.   
              -PARM keyword default is no PARM('-D'), equivalent to the 
               old default of PARM('ALL,NODVT')                         
              -New keyword RMFSKIP(NO) to control optional debugging.   
              -New keyword ONECALL(YES).  This allocates all RMF III    
               Monitor Files for an LPAR first, and then calls ASMRMFV  
               once to process all records from that LPAR.              
                 (Code ONECALL(NO) to invoke ASMRMFV once for each file,
                  which is how it was in prior versions).               
               The default YES should be best for typical use; ASMRMFV  
               specifies FREE=CLOSE internally so that each RMF III file
               is freed after it was read, and the SHR enqueue released 
               as soon as possible.  This produced a 9-11% reduction in 
               elapsed and CPU time with ONECALL(YES) default.          
              -Allocation messages show DDNAME                          
              -New keywords FROMTIME/TOTIME added to support time based 
               data selection in ASMRMFV.                               
               A special thanks to Acxiom management for allowing this  
               MXG user to contribute these enhancements for others!    
   Thanks to Jerry Urbaniak, Acxiom, USA.                               
Change 21.090  Multiple enhancements to CICS summarization:             
ASUMCICS      -Macro _BSUCICS is used in the BY list instead of the     
ASUMCICX       list of specific variables, to be consistent and in case 
TRNDCICS       of future changes.  Aug 7: this change caused variable   
TRNDCICX       DATETIME to not be created in PDB.CICS in MXG 21.02-03.  
Jun  3, 2003   STRTTIME, which has always been the correct variable to  
Jun  4, 2003   use, was not affected.  But Change 21.145 reinstated the 
Aug  7, 2003   creation of variable DATETIME in PDB.CICS, so you would  
               not have to cange your reports to use STRTTIME.          
              -SHIFT and SYSTEM added to the BY list.                   
              -Modified to carry the values used to set the buckets in  
               variables RESPVAL1-RESPVAL7, and comments placed around  
               the place to reset the values for "User Change".         
              -The FLOOR(IRESPTM) was removed, so that fractional values
               can be used for the RESPVALn bucket values.              
              -ESUCICS is used to control the output of CICS dataset.   
              -Macro variables SUCIVAL1-SUCIVAL7 are created so that the
               response buckets values can be set externally, and macro 
               variable SUCIINTV externalizes the summarization interval
               (with HOUR as the default).  The chosen interval value is
               imbedded in the dataset label, while the response bucket 
               values are imbedded in the variable labels for RESPBKTx. 
              -For Trending, macro variable TRCIINTV sets the interval  
               default of WEEK.                                         
               Note:  We generally do NOT recommend the use of ASUMCICS 
                      and TRNDCICS, based on CICSTRAN dataset, because  
                      CICSTRAN has an obs for each segment of an MRO    
                      unit of work; CICSTRAN observation are incomplete:
                        - the TOR obs has no CPU time, but has the real 
                          TRANNAME and LUNAME                           
                        - the AOR obs has all of the CPU time, but its  
                          TRANNAME is 'CSMI' (the mirror transaction).  
                        - observation counts are not transaction counts.
                      Instead, we recommend you include ASUMUOW first,  
                      to create the PDB.ASUMUOW "unit of work" dataset, 
                      which has one observation for each UOW with the   
                      correct TRANNAME, LUNAME, CPUTM, IRESPTM, etc,    
                      and then include ASUMCICX, which reads ASUMUOW to 
                      create a PDB.CICS dataset that summarizes UOWs.   
   Thanks to Scott Barry, SBBWorks, Inc, USA.                           
   Thanks to Pat Curren, SuperValu Inc, USA.                            
Change 21.089  New MICSMXG member contains notes and comparisons from   
MICSMXG        users who have replaced CA's MICS with MXG Software.     
Jun  2, 2003                                                            
Change 21.088  Execution under ASCII only.                              
ANALCISH      -VMACDB2H.  NETSNAME was incorrectly TRANSLATEed; the     
VMACCRAY       statement  TRANSLATE(NETSNAME,'00'X,'40'X); needs to be  
VMACDB2H       TRANSLATE(NETSNAME,'00'X,' ');  to execute under ASCII,  
VMACEREP       so that blanks (which are '20'x on ASCII) are converted  
VMACSFS        to hex zeroes.                                           
VMACTMDB      -All TRANSLATE() statements were examined, and these      
VMACTMS5       members had similar incorrect-under-ASCII-only-syntax:   
VMACTSOM         VMACTMS5, VMACTMVS, and VMACTSOM                       
Jun  2, 2003                                                            
   Thanks to Matthew T. Chappell, Queensland Transport, AUSTRALIA.      
Change 21.087  New variable MPL74 is created in the TYPE74 dataset, as  
ANALFIOE          MPL74=SUM(DEVCONTM,DEVDISTM)/DURATM;                  
VMAC74            LABEL MPL74='IO*MULTI*PROGAMMING*LEVEL'               
Jun  3, 2003   an estimate of the concurrent I/Os to this device.       
Jun  4, 2003                                                            
               New ANALFIOE member reads TYPE73, TYPE74 and TYPE78CF to 
               create two new datasets:                                 
                 TYPE74OE -  Sums the MPL74 for each LCU from TYPE74.   
                 TYPE73OE -  The LCUs from FICON channels are selected, 
                             and their I/O is uniformly distributed to  
                             each CHPID in that LCU, and each CHPID's   
                             concurrent "Open Exchange" variables are   
                             estimated in these variables:              
                               MPL73   ='ESTIMATED*FICON*OPEN*EXCHANGES'
                               IORATE  ='ESTIMATED*FICON*CHANNEL*IORATE'
                               OEDURATM='EST*OPEN*EXCHANGE*msec per io' 
                             The TYPE73OE is just the original TYPE73   
                             with these variables added for FICON CHPID.
               The MPL73, or "Open Exchanges" appears to be a useful    
               new metric for detecting saturation in FICON channels;   
               See for Pat's   
               "Understanding FICON Channel Path Metrics" article.      
   Thanks to Dr. H. Pat Artis, Performance Associates, USA.             
Change 21.086  Support for IDMS Performance Monitor type 30 subtype   3.
IMACACCT       In addition to the user SMF record created by PERFMON,   
VGETJESN       that CA product also creates SMF type 30 subtype 3       
VMAC30         records at transaction end.  These are very-old-format   
May 30, 2003   subtype 3 that do not contain JCTJOBID nor SUBSYS (fields
               SMF30JNM/SMF30WID) causing TYPETASK NOT DECODED messages.
                  The record has a (very old length=14) Product section,
                  a (very old length=124) ID Section (causing INTBTIME  
                  to be, and which caused ITSV to error these records as
                  it uses INTBTIME for its DATETIME validation!), a     
                  Completion section, and a Storage Section, but it does
                  not have the UREC, CPU, PERF, OPER or EXCP sections.  
                  The record is identifiable because PRODUCT (SMF30PNM) 
                  is 'PERFMON'.                                         
               It does have useful information about each transaction,  
               in the unique accounting fields, with different fields   
               for batch, DC/UCF, and CICS access to IDMS.              
              -VGETJESN recognizes PERFMON records, sets TYPETASK='STC' 
               and SUBSYS='PERFMON'.                                    
              -IMACACCT contains a comment block around the PERFMON code
               that creates these IDMS variables from the Account field 
                  IDMSTID ='IDMS*TASK*ID*NUMBER'                        
                  IDMSTRN ='IDMS*ERUS*TRANSACTION*ID'                   
                  IDMSTRM ='IDMS*ERUS*TERMINAL*ID'                      
                  IDMSOPR ='IDMS*ERUS*OPERATOR*ID'                      
                  IDMSTSK ='IDMS*DC/UCF*TASK*CODE'                      
                  IDMSLTE ='IDMS*DC/UCF*LTERM'                          
                  IDMSBLG ='IDMS*DC/UCF*BILLING*GROUP'                  
               and when you remove the comment block, those variables   
               will then be output in TYPE30_V, PDB.SMFINTRV, XSMFINT   
               datasets.  IMACACCT also populates INTBTIME if it is     
               still missing in these PERFMON type 30 records.          
              -VMAC30 was updated to output the IDMS variables if they  
               have been created; unrelatedly, those LENACCT1-LENACCT9  
               variables that exist will now be output in TYPE30_V; they
               should have been there all along!                        
   Thanks to Martin Legendre, Regie des Rentes du Quebec, CANADA.       
Change 21.085  Protection for 0 length records, which are not created by
VMACNTSM       NTSMF product, but have been unintentionally created by  
May 27, 2003   user's SAS programs that copied raw data filed.  On MVS, 
               the records actually have length 1.                      
   Thanks to Uriel Carrasquilla, NCCI, USA.                             
Change 21.084  Type 42 Subtype 8 (which is not yet documented in the SMF
VMAC42         manual) caused ERROR.VMAC42.CLLEN and hex dump of the SMF
May 23, 2003   record.  The record did not contain a CL segment, but MXG
               did not test NRCL to see there was no segment before it  
               printed the error message.  However, the record was then 
               deleted, whereas now it is output.                       
   Thanks to Rita Bertolo, Canadian Pacific Railway, CANADA.            
Change 21.083  With either RUNWEEK=WEEK or RUNWEEK=WTD, the rolling of  
BLDNTPDB       weekly datasets was occurring at the wrong time, causing 
May 23, 2003   weeklies with no data.                                   
   Thanks to Terry Heim, ECOLAB, USA.                                   
Change 21.082  GPARMKY=002F segment in SMF 6 Extended ESS data is now   
IMAC6ESS       recognized and decoded into new variable ESSNOTFY that   
VMAC6          will be kept in TYPE6 dataset (only if IMAC6ESS has been 
May 19, 2003   tailored and its commment block un-commented).  Some     
May 23, 2003   misspellings were discovered and corrected, and all of   
May 26, 2003   the $VARYING fields are now translated to $EBCDIC; a few 
               had been overlooked.                                     
              -GEPARMKY=002E segment decoded, ESSULIB1-ESSULIB4 for up  
               to four DSNAMEs of USERLIBs.                             
              -GEPARMKY=002B, 002C decode OUTDISP NORMAL/ABNORMAL in the
               ESSOUTDB and ESSOUTDC flag variables.                    
              -GEPARMKY=001B is now correctly decoded with 001B instead 
               of 000B in the IF test; variable ESSUCS is expanded to   
               four bytes to match the size of the UCS field.           
              -GEPARMKY=0021 is supported in ESSPMISG flag variable.    
              -A 002C segment with unexpected GEPARMLN=0 was found, so  
               all segments are protected for a zero length, and that   
               segment's variables are not created.                     
   Thanks to Reinhard Nitsch, Provinzial, GERMANY.                      
   Thanks to Denny Wong, New York Life, USA.                            
Change 21.081  The Undocumented +2 bytes for alignment are after SMSMC, 
VMACCTLT       not after DDSPOS, which caused wrong values for BLOCKCT  
May 19, 2003   and DDSCSIZE thru DDSPOS.  The +2 statement was moved.   
Jul  8, 2003  -The BLKSIZE field had been relocated to the end of the   
Jul 25, 2003   record as a 4-byte field, but that was overlooked in the 
Jul 28, 2003   MXG support - 8Jul03.                                    
              -MXG 21.02 only: CTLT Version 5 created zero observations 
               because it has LRECL=460; MXG logic changed to test for  
                ... 400 LE LENGTH LE 460 ....                           
               in two places to read V4, V5, and V6 records. 25Jul03    
   Thanks to Francesco Bragadin, Phoneix Spa, ITALY                     
   Thanks to Rob Gibson, CPR, AUSTRALIA.                                
Change 21.080  The example JCL procedure name of MXGSASV8 is now used in
JCLMNTH        place of the old MXGSAS example name, to point new users 
JCLMONTH       to the correct, current JCL procedure example for SAS V8.
May 19, 2003                                                            
   Thanks to Matthew Collier, Oklahoma State University, USA.           
Change 21.079  SMF 80 with APPLNAME less than 8 caused INPUT STATEMENT  
VMAC80A        EXCEEDED in RACFTYPE=20 segment, due to hard-coded input 
May 19, 2003   with $EBCDIC8.  Now, the RACFDLN=7, etc is honored.      
   Thanks to John Grasing, MetLife, USA.                                
Change 21.078  The optional CA-Dispatch variables are now automatically 
IMACCADI       added to PDB.PRINT dataset, when you open the comment    
May 14, 2003   block in your IMACCADI member.  By adding a %LET ADD6= ..
               statement, the BUILDPDB &ADD6 macro will be added to the 
               KEEP= list for PDB.PRINT dataset.                        
   Thanks to Dan Adams, NITC, USA.                                      
ANALDSET       SELAPSTZ STEPTIME were not initialized, sometimes causing
May 14, 2003   their counterpart variables to be incorrect.             
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.076  Variables QWACSPEA QWACSPEB QWACSPNE QWACSPTT for Stored 
VMXGUOW        Procedure activity are now included in the PDB.ASUMUOW   
May  5, 2003   dataset.                                                 
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.075  This TCP/IP report example was truncating leading chars  
ANALTCP        of Host Name, and had additional revisions.              
May  2, 2003                                                            
   Thanks to R. Wells, American General Finance, USA.                   
Change 21.074  IBM documentation for the raw units of time in RMF III's 
VMACRMFV       DVT table was incorrect; instead of 128 microsecond units
May  2, 2003   the fields used to calculate CONNTM, PENDTM, DISCTM,     
               DVBUSYTM, CUBUSYTM and SWPODLTM are in 2048 microsecond  
               units, so those variables are now corrected in the ZRBDVT
   Thanks to Betty Wong, Bank of America, USA.                          
Change 21.073  Format MGPDSTY is updated for PDSMAN Version 7.41 which  
FORMATS        has new value "E:EXEC', used in TYPEPDSM support.        
May  2, 2003                                                            
   Thanks to Rob d'Andrea, Royal Bank of Scotland, SCOTLAND.            
Change 21.072  ESAMAP v2.2 caused SHORT SEGMENT errors.  MXG code had   
VMACXAM        not been tested with that earlier release.  MXG code in  
May  2, 2003   XAMSYS for MTRMEM, SYTSYG, and STOASI, in XAMCPU for     
               SYTRSP, and in XAMDEV for CONFIG and IODDEV was revised  
               to read the shorter segments.                            
   Thanks to Tony Lobley, EDS, ENGLAND.                                 
Change 21.071  If you used %VMXGTIME/TIMEBILD to shift time zones, you  
VMAC30         could have negative RDRTM, and it was possible that      
May  1, 2003   ALOCTIME and/or LOADTIME could have had the wrong date.  
               The calculation of RDRTM was moved above the %VMXGTIME   
               for REND, and the logic to set dates for ALOC/LOAD times 
               was precedeed by %VMXGTIME with REVERSE=YES, and then all
               four datetimes (INIT,TERM,ALOC,LOAD) were un-REVERSED.   
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.070  Variable RDRETDAT should have been FORMATed DATE9., and  
VMACEDGR       now it is.                                               
Apr 30, 2003                                                            
   Thanks to Barry McQueen, Department of Defence, AUSTRALIA.           
Change 21.069  Exit member EXUTILEX allows you to process a non-standard
EXUTILEX       "User" segment (i.e., your CICS guru created a segment   
UTILEXCL       but did not use "USER" for the CMODNAME/CMODHEAD entries.
Apr 25, 2003   Comments in EXUTILEX show how to reset the CMODNAME/HEAD 
Nov  3, 2003   values to "USER" so that MXG will generate IMACICUS call.
               You will also, then, have to update IMACICUS to tell MXG 
               the length of data to be kept in the USERCHAR variable.  
               Nov 3, 2003 documentation update:                        
               Using this EXUTILEX member solved USERCHAR always blank. 
               One site's Hogan data segment was named "HOGAN", and so  
               the IMACEXCL member created by UTILEXCL did not contain  
               the call to IMACICUS, where the site's code to decode the
               Hogan data was located, but the UTILEXCL program didn't  
               see a "USER" segment, so it did not generate an include  
               for the IMACICUS code, so USERCHAR was always blank.     
               By using this (new) EXUTILEX exit, you can tell UTILEXCL 
               to treat your "HOGAN" segment as if it were named "USER".
               An error "BY VARIABLES MUST BE IN FIRST 4096 BYTES" was  
               seen with SAS Version 6, but not with SAS Version 8+, so 
               run UTILEXCL under V8+ to be error-free.                 
   Thanks to Michael Creech, Fidelity Information Services, USA.        
   Thanks to Herb Strozinsky,US Bank, USA.                              
Change 21.068  MXG variable VELOCIOD when I/O Priority Management is NOT
VMAC7072       enabled (i.e., R723VELI=' ') did not match IBM RMF report
Apr 24, 2003   value: MXG was including PCTDLTDQ (R723CTDQ) in the denom
               but IBM's calculation does not include that value.  MXG  
               was changed to match the IBM reports, assuming they are  
   Thanks to Russell Dewar, National Australia Bank, AUSTRALIA.         
Change 21.067 -SYSPLEX was not in the BY list for TRNDRMFI, but now is. 
VMXGRMFI      -Variable PCTMVSBY is added to PDB.RMFINTRV and TRNDRMFI. 
Apr 18, 2003  -In Trending logic, EXRMFINT is now invoked; without that 
               logic, variables dropped from RMFINTRV in EXRMFINT were  
               not being dropped in the TRNDRMFI dataset.               
              -Invoking VMXGRMFI twice, using PDB=PDB logic to create   
               two levels of summary (like RMFINTRV and RMFINTHR, as    
               suggested in comments in the original RMFINTRV member)   
               corrupted the SPINRMFI dataset so it did not keep enough 
               data for correct calculations of MSU4HRAV.  The example  
               is revised, and the TREND logic should be used for the   
               second summary, to eliminate SPINRMFI corruption:        
               These examples assume the IMACWORK=YES default, i.e., the
               workload definitions are in your IMACWORK member.  If you
               instead invoke %VMXGRMFI with IMACWORK=NO and use its    
               WORKnn= arguments to define your PDB.RMFINTRV workloads, 
               then you must specify those same WORKnn= arguments when  
               you use the VMXGRMFI to create TREND.TRNDRMFI dataset;   
               otherwise, none of the extended varaibles will be in     
   Thanks to Scott Barry, SBBWorks, Inc, USA.                           
Change 21.066  TYPSZARA was revised to copy the ZARA datasets into the  
TYPSZARA       PDB library; the ZARA support is unique in that it does  
Apr 18, 2003   depend on the macro overrides in IMACZARA, so this was   
               the safest change to copy ZARAxxxx datasets into the     
               PDB ddname, and still preserve prior user's tailoring.   
   Thanks to Bob Miller, Conseco, USA.                                  
Change 21.065  Support for servers with more than 16 CPUs or LPARs.     
VMAC7072      -TYPE70 Dataset: Support for 32 engines.                  
VMXGRMFI       The existing sets of 11 CPU-specific variables per CPUID 
May 29, 2003      PCTCPUBYx PCTTIPx  VFAFFTMx VMONx    MVSWAITx         
               where suffix 0-9 and A-F are for CPUs 0-15, have 17 more 
               suffixes, G-L and N-X, for CPUs 16 thru 32 (187 vars).   
                  Note that the suffix letter "M" had to be skipped,    
                  because variable CPUWAITM was already defined.        
               Labels document which suffix is for which CPU number.    
              -TYPE70PR Dataset:                                        
               No change was needed for more than 16 LPARs; MXG stores  
               the LPARNUM in four bytes.  Note, however, we recommend  
               you use the MXG-build PDB.ASUM70PR or PDB.ASUMCEC dataset
               for your LPAR and CEC analysis, as those datasets know   
               how to recognize and not count LCPUs that are ICFs or    
               Linux partitions; if you use TYPE70PR, you'll have to    
               make sure you understand how to recognize what's what.   
              -RMFINTRV Dataset:                                        
               CPU Serial variables CPUSERG-CPUSERL and CPUSERN-CPUSERX 
               were added to the ID= operand for PDB.RMFINTRV dataset.  
              -ASUM70PR,ASUMCEC datasets (built by member ASUM70PR):    
               The existing sets of 22 LPAR-specific variables per LPAR 
                  LPCTxOV  PCTLxBY  PCTLxOV  LPxNRPRC LPxBDA   LPxCAP   
                  LPxCHG   LPxDED   LPxWAIT  LPxSHARE LPxLAC   LPxMSU   
                  LPxMSUHR LPxMSU70 LPxONT   LPxWST                     
               where suffix 0-9 and A-G are for LPARs 0-16, have 16 more
               suffixes, H-O and Q-X, for LPARs 17 thru 32 (+352 vars). 
                  Note that the suffix letter "P" had to be skipped,    
                  because variable CPUWAITM was already defined.        
               Labels document which suffix is for which LPAR number.   
               This was "Feature 0" or "z/OS 1.4 z990 Compatibility".   
Change 21.064  Support for IMS Version 8.1:                             
ASMIMSL6        -BMC's IMF, Candle's ITRF, Landmark's TIMS.             
VMACIMS         -MXG's "Supported" TYPEIMS7 to create IMS0708 dataset   
Apr 17, 2003    -MXG's ASMIMSL6/JCLIMSL6 to create IMSTRAN dataset.     
May 21, 2003                                                            
              -BMC's IMF, Candle's ITRF, and Landmark's TIMS products   
               write their own records that MXG reads, and none have    
               changed in their output records, so MXG 20.20+ supports  
               their products under all versions of IMS, including 8.1. 
              -MXG's "Supported" TYPEIMS7 program to create the IMS0708 
               dataset from 07 and 08 log records (has IMS resources by 
               transaction name, but no response times) does work with  
               IMS 8.1, but there are "INVALID DEQDATE" messages and hex
               dumps printed on the job log, because IBM incompatibly   
               changed their 036x log record.  VMACIMS has been updated 
               to support the non-fast-path IMS log records, and when   
               fast path 8.1 records are available along with DSECTS,   
               the VMACIMS code for them will be examined for changes.  
                  The _IMSVERS macro default value in IMACIMS7 and      
                  IMACIMS are left at 7.1, since some sites may be      
                  exploiting that existing default; change to 8.1 to    
                  process IMS Version 8.1 records.                      
              -MXG's "pseudo-supported" ASMIMSL6 program and JCLIMSL6   
               examples work just fine with IMS Version 8.1 records, as 
               they do with IMS Version 7.1 records, but you must first 
               re-assemble the ASMIMSL6 assembly program using the IMS  
               Version 8.1 macro library to create the V 8.1 program,   
               and you must run separate JCLIMSLx jobs to process the   
               V7.1 and V8.1 data separately; you cannot concatenate    
               the IMS logs from two versions and read with JCLIMSLx.   
               MXG 20.03 contained the last change to this support.     
              -Log record 31x with PSTNUMBR=0 are output in IMS31O in   
               VMACIMS logic, and a FLAG2 test added for log record 36x.
   Thanks to Jiann-Shiun Huang, CIGNA, USA.                             
Change 21.063  NTSMF 2.4.5 new 0.10 record INPUT STATEMENT EXCEEDED due 
VMACNTSM       to NRTRIPLT=1 but no triplets in that record.  Error is  
Apr 16, 2003   circumvented by inserting a statement                    
                 IF OID=0 AND OBJECT NOT IN ('0','1') THEN DELETE;      
               before the test for the NRTRIPLT input statement.        
   Thanks to Roger Zimmerman, Hewitt Associates, USA.                   
Change 21.062  MXG 20.07 thru 21.01 may have filled SPIN.SPINUOW with   
FIXASUOW       many observations that should not have been spun.  Change
JCLUOWP        20.221 did not expect cases when the DB2ACCT ending time 
JCLUOWV        stamp was after the CICS end time, which caused TRANNAME 
VMXGUOW        to be blank, causing that observation to be "spun".  And 
Apr 15, 2003   because TRANNAME is now blank (and we will most likely   
               never see another record for that unit of work) that     
               record will spin up for 7 days (default in SPINUOW), and 
               that increased the size of SPIN.SPINUOW.   This change   
               now uses a forward sequence of the Start Time to put all 
               the CICS and DB2 pieces together, and is not dependent on
               the end times.                                           
              -If you wish to preserve the "spining" records currently  
               in your SPIN.SPINUOW dataset, member FIXASUOW can be used
               to create a revised SPIN.SPINUOW dataset that can then be
               used with the revised VMXGUOW to create the corrected    
               PDB.ASUMUOW.  That first execution will "clean out" many 
               of the spinning transactions that should not have been   
               spun in the first place.  Or, you can just delete your   
               existing SPIN.SPINUOW and start fresh with the new code. 
              -VMXGUOW has a new parmeter, TRACEUOW=YES (Default NO) to 
               trace the UOW chain for diagnostic purposes (printing    
               lots and lots of messages on the log).                   
   Thanks to Alfred Nardi, CMX Group, USA.                              
Change 21.061  Dataset T102S196 was never fully decoded, but now is, for
FORMATS        V6 and V7.  An observation is created for each holder of 
VMAC102        this lock that caused a timeout for the "victim".  This  
Apr  9, 2003   "victim" is identified in QWHCxxxx & QWHSxxxx variables. 
Apr 14, 2003   The lock is identified in QW0196RH/RL/FR/KD/KP/K1-K7/WU  
               /WS/WD/WF/TI and QW0196TC variables; those QWHC, QWHS, & 
               QW0196xx variables repeat in subsequent observations if  
               there was more than one holder (QW0196NU counts holders) 
               segment in an SMF record.  The identity of the holder(s) 
               are in the three sets of variables QW0196Hx, QW1196Hx, & 
               QW21196Hx for up to 3 holders of the lock.  More than 3  
               holder prints a note.                                    
              -MGD044K format was expanded for new values.              
   Thanks to Ron Alterman, Charles Schwab, USA.                         
Change 21.060  The row between 16M-2G was added to the Paging Report;   
ANALRMFR       this row shows values only if your system is running in  
Apr  6, 2003   ESAME mode; in ESA mode, the row will show 'N/A'.        
               The Channel report READ(MB/SEC) and WRITE(MB/SEC) values 
               in the IBM report are incorrect: IBM code divides the raw
               byte values by 1000*1000 to print as MegaBytes, but they 
               should have used 1024*1024 to convert; the IBM values are
               about 5% too high.                                       
   Thanks to David Kellerman, ADP, USA.                                 
Change 21.059 -Type 74 Subtype 4 Structure data (TYPE74ST) has several  
FORMATS        fields thate were negative, because IBM documented them  
VMAC74         as floating point, but they contained binary data.  The  
Apr  9, 2003   variables R744SPST,SPSS,SRST,SRSS,SCST,R744SCSS are now  
Apr 22, 2003   correctly input as binary, and R744SLSV as TODSTAMP8.    
Apr 24, 2003  -Some (but not all) observations in TYPE74ST had missing  
               values for R744QSIZ, when there were a large number of   
               structures.  The QSIZ (SMF744QN) segments are written at 
               the beginning of one physical physical record, followed  
               by as many SSIZ segments that can fit in that record,    
               but additional SSIZ segments are in a separate physical  
               record. Those additional SSIZ elements had missing QSIZ. 
               By retaining the QSIZ array and storing the number of    
               elements, the subsequent SSIZ segments are now populated 
               with their QSIZ values.                                  
              -But R744QSIZ will only be non-missing in records from the
               one system in a sysplex that "owns" the Coupling Facility
               i.e., the "Sysplex Master" system.  This is now discussed
               in IBM Information APAR II13172, which applies to both   
               the RMF III data and the RMF 74 subtype 4 QSIZ segments. 
              -Variable R744QFLG is now decoded by new $MG074QF format, 
               which includes '00X: NOT SYSPLEX MASTER, NO QSIZ' value  
               for TYPE74ST observations from non-master systems, and   
               obs with R744QFLG='00'X will also have R744QSIZ missing. 
   Thanks to Coen Wessels, Unicible, SWITZERLAND.                       
Change 21.058  Support for APAR OW54347 adds Command-Response (CMR) time
VMAC74         to RMF records and RMF Device Activity Reports, and sets 
VMAC79         the existing Director Port Busy (DBP) and Control Unit   
Apr  6, 2003   Busy (CUB) Delay fields to zero in SMF 74 and 79 records.
Apr 29, 2003   The CMR time for a start or resume function of the sub-  
               channel is the time needed until the device indicates it 
               has accepted the command; this allows distinction between
               real hardware errors versus workload spikes (contention  
               in the fabric and at the destination port).              
              -In dataset TYPE74, new variables DLYCMRTM and AVGCMRMS   
               are created.  Variables DLYDIRTM, DLYCHATM, PCTPNDIR,    
               DLYCUBTM, AVGPNCUB PCTPNCUB will all be zero when this   
               APAR is installed.  And I've assumed that DLYCMRTM should
               also be subtracted from DEVPNDTM to calculate DLYOTHTM   
               (since DLYCUBTM and DLYDIRTM were).                      
              -In dataset TYPE799, new variable R799CMR is created, and 
               variables R799DPB and R799CUB will be zero with the APAR.
              -OW54347 documented that R799CMR was added at offset +92, 
               but the original text of APAR OW31701 had R799TMS added  
               at offset +92. IBM now confirms that OW31701's text was  
               wrong, R799CMR is at +92, and that R799TMS does not exist
               in the RMF 79 record.                                    
   Thanks to Ermanno Bewrtolotti, Banca Intesa, ITALY.                  
Change 21.057  Format MG080QU for RACFQUAL, and format MG080TY for      
FORMATS        RACFTYPE are updated for new values in z/OS 1.2 and 1.4. 
Apr  7, 2003                                                            
   Thanks to Chuck Hopf, MBNA, USA.                                     
Change 21.056 -Enhancements to BUILDPDB/BUILDPD3. Exit member EXPDBSPJ  
BUILD005       and old-style macro _EPDBSPJ are created so that local   
BUIL3005       variables can be added to the PDB.SPUNJOBS dataset.      
EXPDBSPJ      -Variable DATETIME (Start of Shift, equal to INTBTIME) is 
SPUNJOBS       added to PDB.SMFINTRV for consistency.                   
Apr  4, 2003  -Variables SMF6LPGE and DOCLENFT are added to PDB.PRINT,  
               and those variables plus PAGECNT are summed into the     
               PDB.JOBS and the PDB.SPUNJOBS datasets.                  
   Thanks to Scott Barry, SBBWorks, USA.                                
Change 21.055  Support for FACOM SMF records 116 caused JCLTEST8 to fail
VMACAIM6       when ID=116 MQ Series records were in your test SMF data.
Mar 28, 2003   To avoid conflict, FACOM support was changed to use an   
               _IDAIMn macro to set SMF TYPE of FACOM records, and the  
               default value is set to the impossible value of 512.  All
               FACOM users will have to redefine the appropriate macro  
               in their IMACKEEP member to create observations in the   
               FACOM datasets from the FACOM records:                   
                 FACOM Record    MXG MACRO NAME                         
                    110            _IDAIM0                              
                    111            _IDAIM1                              
                    112            _IDAIM2                              
                    113            _IDAIM3                              
                    116            _IDAIM6                              
                    117            _IDAIM7                              
                     98            _IDAIMR                              
               For example, to process the FACOM 116 record, you would  
               put this statement                                       
                  MACRO _IDAIM6  116 %                                  
               in your IMACKEEP member.                                 
   Thanks to Mike Hoiey, Ameren Services, USA.                          
Change 21.054  UTILEXCL created incorrect values in KY8DISTM & KY8CPUTM;
UTILEXCL       the KY8DISTM=16*KY8DISTM; after the IF CMODIDNT='263'... 
Mar 28, 2003   should have been  KY8CPUTM=16*KY8CPUTM;                  
Jun 12, 2003  -Jun 12,2003:  Original change only changed the first     
               instance, but there was a second instance in lines after 
               CMODIDNT='263' that also needed to be changed.           
   Thanks to Steve Yucha, Aetna, USA.                                   
   Thanks to Tony P. Steward, Royal Mail, ENGLAND.                      
Change 21.053  Support for BlackBerry Server object.                    
Mar 28, 2003                                                            
   Thanks to Jim Quigley, ConEd, USA.                                   
Change 21.052 -Archaic V6 JCL example was revised to match MXGSASV8 with
MXGSAS         DISP=(NEW,DELETE) per Change 20.076.                     
MXGSASV8      -DISP was changed to NEW,DELETE in MXGSASV9 as it should  
MXGSASV9       have been in MXG 20.20                                   
Mar 27, 2003  -The WORK DD symbolic &WORK was not in parenthesis in V8  
   Thanks to Yao Chun Rickert, Bank One, USA.                           
   Thanks to Jim Horne, Lowe's, USA.                                    
====== Changes thru 21.051 were in MXG 21.01 dated Mar 24, 2003=========
Change 21.051 -Negative values for LOGNATMP & TOTANONS in WEBSERVR occur
VMACNTSM       because MXG de-accumulation did not recognize a stop and 
Mar 23, 2003   start of the webserver.  Adding SEQCHECK=DIF(SEQNR) and  
               testing SEQCHECK EQ 1 now correctly deaccumulates.       
              -Support for SYSTEM object with 32 fields; that object has
               only 26 unique fields; the last six are repeats.         
              -The Discovery Print macro _UNTDISC was updated to support
               multiple sets of discovery records.                      
   Thanks to Xiaobo Zhang, ISO, USA.                                    
Change 21.050  Support for 2105 Cache Controller data in CMF User SMF   
VMACCMF        record adds variable CMF27MDL to dataset CMF27C93, which 
Mar 21, 2003   will now contain both 2105 and 3390 observations; the    
               2105 observations contain CMF27MDL='20', while 3990s have
   Thanks to Kevin Batty, EMC Engineering, USA.                         
Change 21.049  MXG Execution under unix at SAS with early ports of V9.1 
AUTOEXEC       suggested revisions for MXG's IEBUPDTE program, and found
IEBUPDTE       a workaround for a unix SASAUTOS error that is now fixed:
Mar 21, 2003  -MXG's IEBUPDTE program (IEBUDPTE for ASCII) needed these 
Apr 10, 2003   revisions to work under unix:                            
               - LENGTH MEMBER $200; was added, as that becomes the full
                 member plus path name and 50 was too short as default. 
               - Only the PDS_MEMBER is lower cased; previously, the    
                 full path and member were lowcased, but unix path names
                 can be mixed case.                                     
               - The suffix "sas" in the member is now lower case, so   
                 that the files do not have to be re-cased.             
              -The OPTIONS SASAUTOS=(SOURCLIB SASAUTOS) statement in the
               MXG file did not correctly work under unix: 
                 SAS Note SN-000444 - SASAUTOS fileref is not           
                      automatically generated on unix platforms.        
               The SASAUTOS is required, because MXG uses the associated
               MAUTOSOURCE options so that %MACROs references (%ANALDB2R
               %VMXGSUM, etc) are automatically resolved. A workaround  
                   OPTIONS SASAUTOS=(SOURCLIB,                          
               was added in MXG's AUTOEXEC member in MXG 21.01, which   
               works on both unix and Wintel SAS platforms, but in April
               SAS unix developers fixed the problem, so that syntax is 
               not required, and was removed in MXG 21.02.              
   Thanks to Jan Squillace, SAS Institute, USA.                         
TYPEVLFC       printed if OPTIONS MSGLEVEL='I' is in effect; this has   
VMAC6          been documented since V6, and  occurs when a character   
VMAC6156       variable is defined by a function, and the variable is   
VMACCTLG       not in a LENGTH/ATTRIB statement (unless the function is 
VMACEAGL       SUBSTR - then, the length of the first argument is used).
VMACTNG        The longer length has no MXG impact, but the seven cases 
Mar 21, 2003   where the message was produced are now protected with the
               variables now in a LENGTH statement, just to eliminate   
               that possibly confusing message:                         
                Member      Variable                                    
                 VMAC6    - PR                                          
                 VMAC6156 - SYSPAR61 (was SYSPARM, but renamed).        
                 VMACCTLG - SYSPARCL (was SYSPARM, but renamed).        
                 TYPEVLFC - HITPCT                                      
                 VMACEAGL - IDS, MSGIDC                                 
                 VMACTNG  - TEXT                                        
   Thanks to Stephen Bell, Sparkassen Informatik, GERMANY.              
Change 21.047  Format $MGCICCL (applied to variable A17DTTYP in dataset 
VMAC119        CICFCR) adds values for K:CFDT CONTENTION MODEL and      
Mar 20, 2003   L:CFDT LOCKING MODEL'.                                   
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 21.046  Support for SMF 119 APAR PQ71376, which changes TICONNID 
VMAC119        and TTCONNID from $EBCDIC8 to $CHAR4 with $HEX8 format.  
Mar 19, 2003   Originally the CONNID fields had jobname, which was not  
               unique; now they contain the unique hex Connection ID.   
               Variable TISUBTSK was removed; it never really existed.  
Change 21.045  The (LABEL= SORTEDBY= _BYLIST) fails under Version 6, and
WEEKBLDT       works fine under Version 8, but the LABEL= was not fully 
Mar 18, 2003   implemented, so it can be removed if you're under V6.  I 
               intended to have (LABEL= _LABEL SORTEDBY=_BYLIST) and    
               set MACRO _LABEL 'this is the dataset label' for each of 
               the weekly and monthly datasets, but didn't do that yet. 
   Thanks to Jesse Gonzalez, CSC - NASA, USA.                           
Change 21.044  Using R70MAX to add maximum to the TRNDRMFI dataset did  
VMXGRMFI       not work, because the &R70MAX statement was left out of  
Mar 18, 2003   the Trending part of VMXGRMFI, and because the doc was   
               not clear: to use the &R7xMAX= macro to "add" variables, 
               you must list all existing variables in the default list,
               and then add you new variables in your invocation.       
   Thanks to Rick Mansfeldt, IBM Global Services, USA.                  
Change 21.043  Variables JHSUBT and JHEXCP are calculated, and JHRFLAG1 
VMACESPH       and JHRFLAG2 are decoded into individual variables.      
Mar 18, 2003                                                            
   Thanks to Jesse Gonzalez, The Gap, USA.                              
Change 21.042  Variables QPPCTNOW and QPPCTLOW, the percent buffers are 
VMAC115        full now, and full lowest, are created in MQMBUFFER.     
Mar 18, 2003                                                            
Change 21.041  Both members now tolerate the complete absence of input  
ASUMCICS       datasets while still creating a 0 obs output dataset with
ASUMCICX       all variables labelled and formatted.  Additionally, some
Mar 14, 2003   variables that were only output in ASUMCICX are now also 
               created by ASUMCICS.                                     
   Thanks to Diane Eppestine, SBC, USA.                                 
Change 21.040  New graph plots the Peak to Average Utilization ratio at 
GRAFTRND       the SYSTEM SHIFT level; the peak value of the shift is   
Mar 14, 2003   compared to the average for that shift and plotted on a  
               range of 1 to 2 by .1.  If the ratio exceeds 2, it is set
               to 2.                                                    
   Thanks to Cheryl Watson Walker, Watson & Walker, USA.                
Change 21.039  Cosmetic. LABEL was missing for NDMCPUTM.                
Mar 12, 2003                                                            
   Thanks to Khoan Dang, MBNA, USA.                                     
Change 21.038  Protection for WORD7 to be the last word eliminated NOTE:
Mar 11, 2003   a WebSphere HTTP log file.                               
   Thanks to Craig Collins, State of Wisconsin, USA.                    
Change 21.037  Documentation.  Thou shalt not use a RENAME= statement in
VMXGSUM        your OUTCODE= argument to %VMXGSUM that renames variables
Mar 11, 2003   that are in the SORTEDBY= list; thy %VMXGSUM will fail   
               with ERROR: VARIABLE xxxxx NOT SORTED and                
   Thanks to Khoan Dang, MBNA, USA.                                     
Change 21.036 -RSDA AUDIT error message was printed even though AUDHEXZR
VMACRSDA       was zero; the test should have been 0000X (numeric) but  
Mar 11, 2003   was incorrectly coded as '0000'X (character, so the test 
               failed when AUDHEXZR was zero).                          
              -But then View Records (AUDACT=04) caused INPUT STATEMENT 
               EXCEEDED message, because those records do not have the  
               Folder Name segment that MXG expected; a test was added  
               to see that the Folder Name segment is present.          
   Thanks to Christa Neven, KBC BankVerzekeringsHolding, BELGIUM        
Change 21.035  Using ASUMUOWT to combine TMON and DB2 data failed with  
Mar 10, 2003   BY list in MACRO _SUOWTMO was not updated in VMXGUOW.    
   Thanks to Tom Heaton, Texas Legislative Council, USA.                
Change 21.034  Protection for missing STARTDTE was added; records with  
VMACXCOM       only ENDDTE populated caused INVALID DATA FOR STARTDTE   
Mar 10, 2003   message, but no actual impact on the output XCOMDATA.    
   Thanks to Mark Williams, Marks & Spencer, ENGLAND.                   
Change 21.033  Additional AS/400 5.2 files LRECL have been validated and
VMACQACS       are listed in the comments in VMACQACS.  Minor cosmetic  
Mar  7, 2003   changes were made to suppress INVALID DATA messages for  
Mar 17, 2003   reserved packed fields.  The data files had been sent to 
               MVS with incorrect LRECLs, and when those MVS files were 
               ftp'd to me, I discovered Padded Bytes added to the last 
               record of each file; the bytes are all hex zeros and they
               caused invalid data messages when PD fields were input.  
               So MXG tests the INTNUM packed decimal field and prints a
               message "PAD RECORD FOUND AND DELETED _N_= nnnn" on the  
               log.  As long as the _N_= value is the same as the xx in 
               the SAS NOTE: xx RECORDS READ, then the delete record was
               comprised of these pad bytes and there was no error.     
   Thanks to Brian Keller, ConAgra Foods, USA.                          
Change 21.031 -Tests for FTPSTART xx FTPEND and FTPEND xx SMFTM were    
ANALTCP        incorrect as GE, and are changed to the correct GT, and  
Mar  7, 2003   two output columns were shifted one position.            
Mar 14, 2003  -A sort step was added, required only when PDB=SMF.       
   Thanks to Matt Martin, USPS, USA                                     
   Thanks to Craig Collins, State of Wisconsin, USA.                    
Change 21.030  Protection added for subtype 8 record with NRSEGS=295    
VMACICE        (295*128 = 37760, which cannot fit in 32760 LRECL) while 
Mar  7, 2003   reporting site contacts STK for a fix.                   
Change 21.029  MXG Newsletter FORTY cited APAR PQ56039, which supposedly
VMAC116        corrected invalid values for many of the MQMQUEUE fields,
Mar  7, 2003   in particular the WQMAXLAT and WQTOTLAT fields.  However,
               data records with very large values (168 hours plus) at  
               one site, and "large values" at another site are still   
               under investigation, which uncovered these unrelated     
               changes:  The label for WQTOTUSE was corrected to be     
               WQTOTUSE='TOTAL*API CALLS*USING THIS*QUEUE', and the test
               for the three PMS fields tests is LENWQ GE 588 instead of
               the old test for 592.                                    
Change 21.028  Early V8-V9 comparisons were flawed because CONFIGV8 did 
CONFIGV9       not collect statistics, but CONFIGV9 enabled these:      
               This change disables those statistics options in CONFIGV9
               so that you should NOT see any increase in CPU time when 
               you install SAS V9 and use the same options as SAS V8.   
Change 21.027  Mostly documentation.  When you are using a SAS View to  
JCLUOWV        pass data from a data step to PROC SORT, SAS cannot give 
Mar  6, 2003   the SORT the estimated record count (because SAS does not
               know the observation count of a view), and thus the SORT 
               cannot be optimized in its choice of SORTKWs and memory. 
               In these cases, for SYNCSORT, you can use the $ORTPARM DD
               to pass the size estimates to the sort program:          
                 //$ORTPARM DD *                                        
               which tells SYNCSORT to use 756K below the line (fixed)  
               and 512M total (fixed) storage, and the estimated record 
               count to be sorted is 40,000,000 records.                
                 Previously, SORTSIZE=40000000 was used, but SYNCSORT   
                 now ignores SORTSIZE= and instead uses the syntax of   
                 FILSZ=Ennnnnnnn.  The E is required; without it, SORT  
                 fails if the record count is not exactly nnnnnnnn.     
                 Similar parameters can be passed to DFSORT; if you     
                 tell me that syntax, I'll update this note.            
               But note that the //$ORTPARM parameters apply to EVERY   
               sort in the job-step, so use with care, especially       
               because the memory will be fixed.                        
               The change replaced SORTSIZE= with FILSZ=E.              
   Thanks to Chuck Hopf, MBNA, USA.                                     
   Thanks to Steve Dunn, Mainframe Performance Products Pty., AUSTRALIA 
Change 21.026  Support for Control-T Release 6.0.0 (INCOMPATIBLE).  New 
VMACCTLT       data fields were inserted, and the LRECL was increased to
Mar  6, 2003   600 bytes in their new version.  Instead of feet, you get
Mar 27, 2003   bytes compressed/uncompressed for volume and datasets.   
              -Mar 26:  Support for Control-T Release 6.1.0 (INCOMPAT,  
               because the LRECL was increased to 660 bytes, and MXG had
               only protected for 600 bytes.  Three fields were added to
               their volume record by 6.1.                              
   Thanks to Craig Collins, State of Wisconsin, USA.                    
   Thanks to Stefano Baldi, Phoenix Spa, ITALY.                         
Change 21.025  Documentation only.  The removal of Cross Memory Calls in
ASMTAPES       ML-27 MXGTMNT causes these variables to be missing in the
Mar  6, 2003   TYPETMNT and ASUMTAPE datasets:                          
               and these variables to be missing in TYPETALO/ASUMTALO:  
                 ALOCSTRT DDNAME STEPNR                                 
                   (ALOCSTRT is commented in the ASM code and it appears
                    it has never been populated in the SMF record).     
               Stay tuned for a new algorithm that will merge TYPETALO, 
               TYPETMNT, TYPE1415, and TYPE30TD to not only populate the
               missing fields, but enhance tape mount analysis with new 
               data as well.  Maybe by the end of third quarter.        
               Note that the removal of Cross Memory calls was to solve 
               problems caused by VTS mounts; if your site does NOT     
               (yet!) have any VTS devices (or VTS-simulating-software) 
               so that all of your tape mounts are real mounts that take
               real time, then you can still have the above variables   
               populated by MXGTMNT program, by re-assembling ASMTAPES  
               with the XMEM=YES parameter enables.                     
Change 21.024 -Support for TNG "Enterprise Cubes", which contain data   
EXTNT007       from multiple servers, required structural revision of   
EXTNT034       the code, which had expected a CAPMPCM Header record     
EXTNT035       betweeen each system.  This redesign has been tested     
FORMATS        with TNGVERS 6 data from multiple systems.               
IMACTNG       -New NT object NETWORK SEGMENT creates new NT034 dataset. 
VMACTNG       -New variables were added to existing SYSTEM object in    
VMXGINIT       dataset NT018.                                           
Mar  7, 2003  -Support for NT PROCESS Object creates new NT035 dataset  
Mar 19, 2003   and a major design change, because each process instance 
Mar 27, 2003   does not record all process metris: out of 327 process   
Apr  1, 2003   name records, only 175 had PROCESSOR TIME metric records,
               but 324 had ID Process, and 326 had Page File records.   
               MXG presumed TNG recorded all metrics for each instance, 
               but now a new context-based array (NT035INM) maps each   
               process name to its metrics's location (INSTLOC), instead
               of assuming a sequential INSTNR for each process metric. 
              -The arrays to support process data can require large     
               virtual storage if there are very many process names.    
               With NT035I=2000, NT007I=999, and MAXROWS=325, TYPETNG   
               required about 180MB of virtual storage! The MXG defaults
               of NT035I=500, NT007I=100, MAXROWS=288 needs REGION=64M. 
              -TYPETNG will ABEND with USER 1111 if it finds more unique
               process names than your chosen NT035I=value permits.     
              -EXTNT035 now only outputs observations that have non-zero
               value of % PROCESSOR TIME; most processes are idle and do
               not record any time.  There were 2,448,576 observations  
               created when all process records were output, but only   
               31,320 observations had and CPU.  That logic was located 
               in EXTNT035 in case you ever think you want to output all
              -The process records for the Idle and _Total process names
               both have % PROCESSOR TIME of 100, so they should be     
               removed in your analysis of process utilizations.        
              -EXTNT007 now only outputs observations that have non-zero
               value of Total Bytes, i.e., that had activity.           
   Thanks to Peter Krijger, National Bank of New Zealand, NEW ZEALAND.  
Change 21.023 -Messages SHORT XAMSYS SEG FOUND, DELETED.... were caused 
VMACXAM        by incorrect subtraction in line 2275, which should be   
Mar  5, 2003   SKIP=SKIP-20; instead of SKIP=SKIP-24;  The error occurs 
Mar 12, 2003   only in records with MTRSYS length of 164 or greater.    
Mar 16, 2003  -Support for SYTCPC (Channel Activity) creates new dataset
Apr 22, 2003   XAMSYCPC with Channel Busy array HFCHB0-HFCHB255 (where  
               the CHPID is the array suffix, and the array is populated
               with NBUSY entries), and Channel Simultaneous Bussy Array
               HFCHSI0-HFCHSI50 (populated with NBUSYSIM).              
              -Support for TCP data files creates many new datasets from
               Linux, NT, Sun systems, as well as from VM Monitor:      
                   UCD - From UCD-SNMP or NET-SNMP                      
                   HST - From ANY SNMP DAEMON supporting HOST MIB       
                   TCP - From either VM MONITOR RECORD FOR VM, or SNMP  
                   FAL - From VM MONITOR RECORDS, exclusive to VM       
                OTHERS - SUBNET, TCPCON, TCPAPP come from either FAL    
                         or a "NETSTAT" interface.                      
               The datasets have been validated, but this is preliminary
               support, and variable names may change slightly as the   
               data is better understood.                               
              -Additional XAMDEV variables, including RDEVSER, VOLSER,  
               are now decoded.  Apr 22, 2003.                          
   Thanks to Rebecca Cates, Merrill Lynch, USA.                         
   Thanks to Tom White, SPRINT, USA.                                    
Change 21.022  All daily PDB datasets that are created in the JCLPDB8   
WEEKBLD        example JCL are now copied into the WEEKLY PDB in the    
WEEKBLDT       example WEEKBLD/WEEKBLDT members.  Most datasets were    
WEEKBL3        copied into the weekly PDB, but many new datasets were   
WEEKBL3T       created by BUILDPDB/BUILDPD3 that were not also copied   
Mar  5, 2003   into the weekly that now are.                            
               Yes, this change could cause a perfectly good weekly MXG 
               job to ABEND with an out of space condition, but that, I 
               decided, was less painful than discovering later that the
               data you thought was in the weekly wasn't!               
   Thanks to Ronald Lundy, AHOLD, USA.                                  
Change 21.021  The Active Server Pages object's INPUT statement has been
VMACNTSM       incorrect, at least since NTSMF 2.2.2. ASMEMALO no longer
Mar  5, 2003   exists, and a DUMMYFLD was inserted after ASTMCAHT in the
               logic for NRDATA=34 for the ACTVSRVR dataset.            
   Thanks to Chris Morgan, UFI, ENGLAND.                                
Change 21.020  Relocated the VMXGOPTR call that resets OBS= value to    
VMXGSUM        earlier; if KEEPALL=NO and the first data step bypassed, 
Mar  4, 2003   and you had changed OBS= to a small value, the original  
               location was too late.  Seen only in unrelated test runs,
               has been that way for a long time and never reported, but
               is now corrected.                                        
Change 21.019  Oracle variable ASID was not input and ELAPSTM was not   
VMACORAC       created for Release 8.  Several variables no longer are  
Mar  1, 2003   created in the Oracle SMF record with that release, and  
Mar 13, 2003   will always have missing values:                         
              -Cosmetic.  Text in labels had misspelled OSDI as ODSI and
               OSID are now all OSDI.                                   
   Thanks to Forrest Nielson, State of Utah, USA.                       
   Thanks to Marvin Wapnitsky, TIAA-CREF, USA.                          
Change 21.018  Support for Domino Server Release 6.0.0 added five new   
IMAC108        HTTP-related variables to the Subtype 1 record that are  
VMAC108        now output in dataset TYPE1081:                          
Mar  1, 2003      DOMCACOM='DOMINO*CACHE*COMMAND*COUNT'                 
               Their existence was found in APAR PQ70810, which added   
               the fields to IBM's TIVOLI product; that is what alerted 
               me that there was a new Domino version to support.       
Change 21.017  For devices with IORATE=0, variable DEVIOQTM was carried 
VMAC74         from the preceding device that had non-zero IORATE.   The
Feb 28, 2003   missing DEVIOQTM=.; statement was inserted where it      
               should have been, after the AVGIOQMS=.; statement.       
   Thanks to Barry McQueen, Department of Defence, AUSTRALIA.           
Change 21.016  Several "Wdddddd" macro variables were incorrectly %LET  
VMXGINIT       to &DEFAULT instead of &MXGWORK: all for VMACLDMS and for
Feb 27, 2003   VMACMIM were wrong, as were two for VMACTAND.  This only 
               surfaced as an actual error if you used the USER= option.
   Thanks to Ken Kelso, National Australia Group, SCOTLAND.             
Change 21.015  Using %ANALDB2R(PDB=SMF); to get the default set of DB2  
ANALDB2R       reports failed with 76-322 and other strange errors, due 
READDB2        to changes made to READDB2 by Change 20.233.  The READDB2
Feb 27, 2003   calling logic in ANALDB2R was corrected.  However, using 
               will circumvent the error.                               
              -READDB2 now detects that it was invoked without arguments
               and gracefully reports that error.                       
              -IFCIDS=ALL is now recognized.                            
   Thanks to D. J. Chen, State of Florida, USA.                         
Change 21.014  More than one type 6 ESS '0031'x USERDATA segment was not
IMAC6ESS       expected, causing INPUT STATEMENT EXCEEDED if comments in
VMAC6          IMAC6ESS were opened.  Multiple USERDATA now supported.  
Feb 23, 2003                                                            
   Thanks to Ricke Godehard, Itellium, GERMANY                          
Change 21.013 -INVALID DATA messages reading QAPMDISK file because of   
VMACQACS       ELSE INPUT INPUT in lines 3984 and 3985.  Remove one.    
Feb 22, 2003  -Variable DSASPN 'ASP RESOURCE NAME' was not kept and was 
Mar  5, 2003   not labeled, but now it is.                              
   Thanks to Paul E. Bennett, JPMorganChase, ENGLAND.                   
Change 21.012  The MNTH72GO example still had PERFGRP and PERFRPGN where
MNTH72GO       it should have had SRVCLASS and RPRTCLAS                 
Feb 22, 2003                                                            
   Thanks to Mike Kynch, International Paper, USA.                      
Taught the first tuition-free three-day class in Dallas to 64 students. 
Change 21.011  The format MGSASPR had PARETO misspelled, and had several
FORMATS        procedure names that were longer than 8 characters that  
Feb 18, 2003   are now truncated to 8 bytes so they will match the name 
               in the TYPESASU dataset (from the SAS user SMF record).  
               And SETINIT (BASE) was added to the list of procs.       
   Thanks to Tom White, SPRINT, USA.                                    
Change 21.010  SMF 42 offsets for subtype 20 and 21 are incorrect in the
VMAC42         z/OS SMF manual, but (without test records), I believed  
Feb 17, 2003   the manual.  Offsets for SMF42KN1 thru SMF42KN3 and for  
               SMF42LN1 thru SMF42LN6 should have started at decimal 36,
               but the manual showed them starting at dec 52 and dec 60.
               MXG printed error messages, but the job did not fail, but
               it did not output those subtypes, either!                
               But the subtype 21 records that are only 176 bytes long  
               have invalid offset SMF42LN4 (177) and number of SMF42LN6
               (1) for the Alias Names Deleted in Sympathy segments,    
               causing MXG to print an error message.  It's not clear if
               there were Alias names that were not written, or whether 
               the offset/number should have indicated there were no    
               Alias names in the record. This will be purusued with IBM
               but this Change does correctly populate TYPE4221 dataset.
   Thanks to Karl Lasecki, Chemical Abstracts Service, USA.             
Change 21.009  Symbolic parameter WORKVOL= is added to the MXGSASV8 JCL 
MXGSASV8       procedure, defaulting to 5 volumes, and the WORK= parm   
Feb 12, 2003   is (200,200) in CYL.  SAS only allocates what it needs,  
               but this will reduce the probability of B37 ABENDS for   
               new users.                                               
Change 21.008  Documentation.  TYPE70PR PR/SM data for IFL Linux LPARs  
VMAC7072       are not identified as such: they have SMF70CIN='ICF', so 
Feb 12, 2003   you can't tell an IFL from an ICF partition, so you must 
               use a table lookup of LPARNAME to select the Linux LPARs 
               from PDB.TYPE70PR.  And only LCPUPDTM is non-zero; the   
               LCPUEDTM is always zero.                                 
   Thanks to Tony P. Steward, Royal Mail, ENGLAND.                      
Change 21.007  PCHANBY is missing for SMF73ACR='CBP/CBS/CFP/CFS/ICP'    
VMAC73         Channels.  Originally corrected by Change 20.096, that   
Feb 12, 2003   was overridden in Change 20.172, which reset it missing. 
Feb 17, 2003   The initialization to prevent carry forward was moved to 
               above the PCHANBY calculations.                          
   Thanks to John Gebert, Office Depot, USA.                            
Change 21.006  Negative values in DB2STATB variables occurred when a DB2
VMACDB2        subsystem was stopped and started, and the first record  
Feb 11, 2003   after the start had QWHSISEQ=4, but MXG expected first   
               record to have QWHSISEQ=1.  MXG's test to recognize start
               was revised to also test SEQCHECK GT 0 or ISEQ=1.  This  
               may be an IBM error, but the MXG circumvention should be 
   Thanks to Tony P. Steward, Royal Mail, ENGLAND.                      
Change 21.005  Cosmetic.  The INVALID DEVICE messages now include the   
VMACEXC2       PROGRAM name, making it easier to identify if they are   
Feb 11, 2003   coming from the same program.                            
   Thanks to Paolo Uguccioni, UNICREDIT, ITALY.                         
Change 21.004  ML-28 corrects an 0C4 in ML-27 that occurred only with   
ASMTAPES       the //EXCLUDE DD, and only if the tape drive with the    
Feb 11, 2003   highest DEVNR was excluded.  Trivial to fix once seen,   
Feb 17, 2003   hard to include in all combinations of our testing.      
   Thanks to Anthony A. Ziegler, UMB, USA.                              
Change 21.003  Variable R791FMCT should have been multiplied by 4096 to 
VMAC79         convert from frame count to bytes, which will be printed 
Feb 11, 2003   as nnnnKB/MB/GB; the variable is FORMATed MGBYTES.       
   Thanks to Tom Draeger, Aurora Health Care, USA.                      
Change 21.002  Major enhancements to MXG processing of RMF III VSAM data
ASMRMFV        includes revisions to the ASMRMFV assembly program, the  
CLRMFV         new CLRMFV CLIST member that will read all of your RMF   
DOCLRMFV       III VSAM files on all your system in one job (since you  
Feb 13, 2003   cannot concatenate VSAM, and member DOCLRMFV to document 
Feb 18, 2003   the CLRMFV CLIST, and provides JCL examples of how to    
               use CLRMFV and ASMRMFV (which will create the RMFBSAM    
               file that is then read with MXG's TYPERMFV to create all 
               of the MXG RMF III datasets).  Enhancements in ASMRMFV:  
              -Minimum and maximum LRECL output is now reported for each
               RMF III Table/Header.                                    
              -Total Displays restructured to combine selection, input, 
               output records written/skipped and output LRECL min/max. 
              -CC=4 set when input records are skipped due to exceeding 
               32756 LRECL or decompression errors; previous CC was 0.  
              -Messages show FROM=/TO= keyword selection Time Stamps in 
               Date/Time Format for each RMF III data set processed.    
              -Messages show FIRST/LAST Sample Set Time Stamps          
              -Messages assigned RMFVNNN with I=INFO,W=WARN,E=ERROR, and
               S=SEVERE ERROR suffixes.                                 
              -Major performance improvement with Selection: entire RMF 
               VSAM dataset is skipped if Data Set Header FIRST/LAST    
               shows all sample sets are outside FROM=/TO= keywork.     
              -Minor performance improvement: entire Sample Set bypassed
               if FIRST/LAST header is outside FROM/TO keyword range.   
              -Table access validated by comparing eyecatcher.          
              -If a specific table exceeds maximum LRECL, next table is 
               processed; previously, remainder of this sample set was  
              -Internal ASM improvements; counters that used fullword   
               Register to Storage arithmetic instructions replaced with
               Load Address or Branch on Count Register instructions.   
              -Improved documentation in the program prologue.          
              -Tables that are not processed by TYPERMFV (because no one
               has needed them)are skipped by ASMRMFV and documented.   
              -Performance: processing 7 LPARs with 44 RMF III datsets  
               (a total of 308) in a single job reduced Elapsed Time,   
               CPU Time, and EXCP count by 70%                          
              -CLRMFV is run in batch and repetitively calls ASMRMFV    
               for each RMF Monitor III dataset it finds, making ASMRMFV
               truly useful for bulk processing; without this CLIST a   
               separate job step must be used for ASMRMFV, since VSAM   
               does not support concatenation.                          
               The code, CLIST, and documentation were all written by   
               and contributed to MXG by Jerry.                         
              -Feb 18: Use PGM=IKJEFT01 instead of PGM=IKJEFT1B, doc'd  
               in member DOCLRMFV.  ASMRMFV now recognizes FROM= and/or 
               TO= keywords for filtering.                              
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 21.001  Archaic report example member ANALCICS caused V8 to 0C4  
ANALCICS       ABEND in module VXBSM doing the autocall for %VMXGFOR,   
Feb  8, 2003   now removed by MXG Change 20.327, but the cause was the  
               old OPTIONS SASAUTOS=(SOURCLIB SASAUTOS) statement in the
               ANALCICS member, which as been unneeded for years, and   
               now removed, as MXG sets SASAUTOS at MXG Initialization. 
               But SAS had documented this problem before: "It is not   
               advisable to change SASAUTOS during a SAS session.  If   
               you change the SASAUTOS= specification in an ongoing SAS 
               session, the SAS System will store the new specification 
               only until you invoke an uncompiled autocall macro, and  
               then SAS will close all opened libraries, and open all   
               the newly specified libraries that it can open."         
LASTCHANGE: Version 21.