MXG 24.24 is the 2007 "Annual Version", dated February 5, 2007.         
        MXG Version 24.24  is dated Feb  5, 2007, thru Change 24.306    
        MXG Version 24.11 was dated Feb  3, 2007, thru Change 24.304    
Fourth  MXG Version 24.10 was dated Jan 31, 2007, thru Change 24.300    
Third   MXG Version 24.10 was dated Jan 28, 2007, thru Change 24.293    
Second  MXG Version 24.10 was dated Jan 22, 2007, thru Change 24.282    
First   MXG Version 24.10 was dated Jan 21, 2007, thru Change 24.279    
        MXG Version 24.09 was dated Dec 20, 2006, thru Change 24.251    
        MXG Version 24.08 was dated Oct 18, 2006, thru Change 24.216    
First   MXG Version 24.08 was dated Oct 17, 2006, thru Change 24.214    
        MXG Version 24.07 was dated Sep 22, 2006, thru Change 24.186    
First   MXG Version 24.07 was dated Sep 21, 2006, thru Change 24.185    
        MXG Version 24.06 was dated Aug 30, 2006, thru Change 24.165    
        MXG Version 24.05 was dated Jul  3, 2006, thru Change 24.120    
        MXG Version 24.04 was dated Jun 22, 2006, thru Change 24.109    
        MXG Version 24.03 was dated May 15, 2006, thru Change 24.075    
First   MXG Version 24.03 was dated May 13, 2006, thru Change 24.073    
Second  MXG Version 24.02 was dated Apr 26, 2006, thru Change 24.057    
First   MXG Version 24.02 was dated Apr 24, 2006, thru Change 24.050    
        MXG Version 24.01 was dated Mar  1, 2006, thru Change 24.012    
        MXG Newsletter FORTY-EIGHT was dated Feb 20, 20056              
The instructions for ftp download of MXG 24.24 was mailed to all sites. 
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.    2007 Annual MXG Software Version 24.24 instructions were sent.    
II.   Incompatibilities and Installation of MXG 24.24.                  
III.  Online Documentation of MXG Software.                             
IV.   Changes Log                                                       
I.  MXG Version 24.24, dated Feb  5, 2007 - the Annual Version for 2007.
    Major enhancements added in MXG 24.24.                              
  TYPENMON 24.296  Support for NMON (free from IBM) AIX/Linux Monitor.  
  TYPE1415 24.295  Support for APAR OA17569 Tape Encryption new fields  
  TYPE112  24.294  Support for SMF ID=112 CICS ONDV record.             
  TYPESFTA 24.304  Support for Tivoli License Compliance Manager 4.2    
  TYPERMFV 24.302  Support for additional zIIP data in RMF III ZRBENC.  
  TYPEEDGR 24.299  Support for z/OS (COMPATIBLE) changes to RMM data.   
  TYPE1415 24.295  Support for APAR OA17569, Encrypted Tape Keys/Mech.  
  TYPEWMQA 24.292  Support for WebSphere MQ V6.0 OPEN SYSTEMS acct/stats
  TYPE119  24.289  Support for FTP Client Security fields in TYP11903.  
  IMACICO2 24.297  Support for CMODHEAD=OMEGAMON segment.               
  TYPEBBMQ 24.281  Support for BMC Mainview for MQ Series VSAM History. 
  TYPESAMS 24.279  Support for SAMS Vantage Version 6; new datasets.    
  TYPE116  24.293  Support for NETSNAME/UOWTIME from QWHCNID in SMF 116.
  TYPETAND 24.286  Support for Tandem H06 release.                      
  TYPETPF  24.283  Support for TPF thru PUT19.                          
  ANALS225 24.282  New "DB2 Storage Analysis" uses IFCID 225+DB2STATS.  
  TYPE7072 24.290  Circumvention for invalid CPURCTTM in 72 and 30s.    
  IMACICOM 24.287  BMC CANMQ CICSTRAN MQTOTTM invalid due to MXG error. 
  TYPE102  24.291  Correction for SMF 102 IFCID 22.                     
  TYPEBVIR 24.305  Support for IBM BVIR History for TS7700 VTS System.  
  BLDSMPDB 24.298  New BUILDPDB=COPYONLY option enhancement.            
  IMACICO2 24.297  Support for new CMODHEAD='OMEGAMON' CICS segment.    
    Major enhancements added in MXG 24.10.                              
  ASUMTAPE 24.265  Critical correction for ASUMTAPE for IBM Volume Exit 
  UTILEXCL 24.254  Support for all Omegamon/Candle optional CICS data   
  TYPERMFV 24.272  Support for RMF III VSAM ENC Extension segment.      
  TYPEMVCI 24.264  Support for CMRDETL for Mainview for CICS V 5.9.00.  
  TYPEBETA 24.257  Support for Beta 93 Version 3.6.1                    
  ADOC30   24.269  Schematic documentation of zIIP CPU variables.       
  VMXGSUM  24.267  New MINLONG=,MAXLONG= arguments created for 8-byters.
  TYPEPROS 24.258  Product section character variables were wrong.      
  TYPE102  24.256  IFCID 226 and 227 new variables added.               
  TYPEIPAC 24.259  Mobius Subtype 8 INPUT STATEMENT EXCEEDED.           
  ASCISMFC 24.274  ASCII execution utility to create SMF subset from ftp
  VMXG70PR 24.278  More ASUM70PR touch-up, dedicated CPUs, etc.         
  ANALCISH 24.277  Updated for dropped variableS MNGSYSER/MNGSYSEE.     
    Major enhancements added in MXG 24.09.                              
  TYPE74   24.228  Support for HyperPAV APAR OA12865.                   
  TYPE78   24.228  Support for HyperPAV APAR OA12865.                   
  IMACEXD  24.221  Support for SAR/EXD SMF type 6 optional data.        
  TYPENTSM 24.218  Support for NTSM Beta Version (COMPATIBLE).  
  TYPENSPY 24.212  Support for NetSpy Version 11 was added Aug, 2005.   
  TYPE99   24.210  Support for SMF 99 Resource Group, TYPE99RG dataset. 
  ASUMDB2G 24.244  New PDB.ASUMDB2G summary for DB2 Global Buffers.     
  VMXGINIT 24.242  Revisions for SAS V9 BI SAS/ITRM anticipated changes.
  IMAC6ESS 24.227  Optional ESS GPARMKEY='4A'x caused INPUT error.      
  TYPE70   24.225  LPARs with no current weight has LPARSHAR=0.         
  TYPE7072 24.224  Fall Clock "Set Back" protection for dupe STARTIME.  
  TYPE78   24.223  Virtual Storage Above the Bar Shared not Input.      
  TYPE110  24.222  Stat vars DSGEJST,DSGSRBT now kept in CICDS.         
  TYPE119  24.215  Vars TSICDUTM thru TSICOUAR were incorrect in MXG.   
  ASMRMFV  24.214  Protection for z/OS 1.6 which had no SPG records.    
  TYPE7072 24.208  LPAR SHARE variables were wrong with Dedicated CPs.  
  MXGSASVn 24.246  REGION=0M added to MXG JCL procedure examples.       
    Major enhancements added in MXG 24.08.                              
    CRITICAL: Final corrections to "SPLIT70" redesign in Change 24.207. 
    All SPLIT70 errors in MXG 23.23 thru MXG 24.07 have been corrected. 
    MXG 24.08 is required for z/OS 1.7 now because of these corrections.
    MXG 23.23 thru MXG 24.07 should be replaced by MXG 24.08 or later.  
  TYPETPMX 24.199  Support for ThruPut Manager Version 6 new variables. 
  TYPENTSM 24.206  Support for NTSMF Version                   
  TYPEMPLX 24.204  Support for IMPLEX Version 4.10 (INCOMPATIBLE).      
  TYPEMWNT 24.191  Support for HP MeasureWare for Windows/NT.           
  TYPETNG  24.188  Support for new TNG object (NT and Solaris).         
  TYPETHAL 24.201  Support for E-Thales Security five user SMF records. 
  TYPE82   24.200  Support for SMF 82 subtype 22, correction to st 21.  
  VMACSMF  24.202  &SMFEXIT macro variable added to INFILE &SMF.        
  TYPE30   24.198  INTETIME in TYPE30_6 was wrong if GMT offset nonzero.
  TYPE1415 24.196  TYPE1415 INPUT EXCEEDED with z/OS 1.7/1.8 PDSE data. 
  TYPEDB2  24.194  DB2STATS variables CPUTM, QWSnXXXX corrected.        
  Many     24.193  Support for 3592 Tapes, no change, they're 3590s.    
  ASUM70PR 24.187  INTERVAL=HOUR could create obs with smaller DURATM.  
    Major enhancements added in MXG 24.07.                              
  ASMHSCEX 24.092  Support for z/OS 1.8 (COMPATIBLE).                   
  ASMHSCEX 24.171  Support for CrossCopy in MXGTMNT HSC Exit.           
  TYPERMFV 24.181  Support for RMF III OPGG3, SPGG3, zips in CPUG3.     
  TYPE70   24.184  PCTIFBYn/PCTZIBYn are "MVS", new PCTCIBYn is "LPAR". 
  TYPERACF 24.178  Support for IRRHFSU (Unix z/OS file permissions).    
  VMACNDM  24.182  NDMCPUTM and NDMCPU now validated and correct.       
  TYPE1415 24.170  MXG 24.06 only.  NO MATCHING IF error.               
  TYPEDB2  24.177  INPUT EXCEDED ID=100 SUBTYPE=0 more than 1 QLST.     
  TYPE110  24.166  Support for BMC Mainview/CICS optional DB2 and CMR.  
  VMAC110  24.185  Support for DMF Product's SMF 110 (CICS 4.1!) data.  
    Major enhancements added in MXG 24.06.                              
  TYPENTSM 24.162  Support for NTSMF 3.0.0, also 35 new objects.        
  TYPEQACS 24.161  Support for i/Series QACS AS/400 Release 5.4.0.      
  TYPECMHM 24.153  Support for EMC's Centera Mainframe HSM Migrator SMF.
  TYPEPRPR 24.145  Support for Oce's Prisma Print '9901' USER record.   
  TYPENDM  24.144  Support for NDM/Connect-Direct Release 4.3/4.5.      
  TYPE72GO 24.125  New ZIP variables were not kept in TYPE72GO.         
  BUILDPDB 24.128  New ZIP variables are now kept in PDB.STEPS/JOBS.    
  TYPE70   24.142  PCTRDYWT, new SMF70Qnn wrong, new PCTRDQWT created.  
  FORMATS  24.163  Support for z9EC on 32-bit; no change for 64-bit.    
  TYPEDB2  24.141  QLESxxxx DB2 statistics variables corrected.         
  ANALDEVN 24.157  Example to identify all devices allocated by a JOB.  
  CICSBAD  24.155  Not all PROGRAM='########' should be in CICSBAD?     
  TYPE80A  24.152  Protection for $VARYINGnn. mm input with nn GT mm.   
  VMXG70PR 24.124  Variables SHIFT, ZDATE, ZTIME in ASUM70LP fixed.     
  UTILEXCL 24.140  Support for ARZGEOS/FACHG, ARGZD/GSACCT optionals.   
  TYPEDB2  24.136  Support for DB2 V8 UIFCIDS=YES ASCII test.           
  ANALDB2R 24.138  Incorrect Plan counts, DB2PARTY='R" were summed.     
  TYPEXAM  24.135  MTRSYS variables were wrong after SYSTMID.           
  UTILEXCL 24.131  Candle short CICS dictionary record supported.       
  TYPEORAC 24.130  Oracle support is no longer subsystem dependent.     
  ASUMUOW  24.129  PDB.ASUMUOW support for 10 CICS ABCODE values.       
  IMAC6ESS 24.127  Support for GEPARMKY='4D'x and '4A'x                 
  TYPE102  24.121  Support for IFCID=350, replaces IFCID=63, long SQL.  
    Major enhancements added in MXG 24.05.                              
    ASUM70PR default restored to INTERVAL=DURSET                        
    RMFINTRV enhanced to support SYNC59                                 
    WEEKBLD/WEEKBLDT typos (only in 24.04) corrected.                   
    Major enhancements added in MXG 24.04.                              
  TYPE7072 24.110  Support for z9BC Processor (COMPAT if 64-bit z/OS)   
  TYPE30   24.046  Support for zIIP-ZIP engines.                        
  TYPE7072 24.046  Support for zIIP-ZIP engines.                        
  TYPEDB2  24.046  Support for zIIP-ZIP engines.                        
  TYPERMFV 24.046  Support for zIIP-ZIP engines.                        
  ASUM70PR 24.105  Corrections, revisions, ASUM70PR, ZIP and IFAs.      
  ASUM70PR 24.105  INTERVAL=QTRHOUR is new default for ASUM70PR/70LP.   
  TYPE1415 24.094  Support for PDSE Caching statistics APAR OA12857     
  ASUMTAPE 24.102  PDB.ASUMTAPE will have zero obs if SYSLMNT has 0 obs.
  ASMHSCEX 24.096  Revised STK Exit UX01 adds logic to save registers.  
  ASMRMFV  24.091  RMF III enhancement, ENC data, Index usage.          
  RMFINTRV 24.079  New NOTYPE74= option will skip TYPE74 processing.    
  TYPEVMXA 24.078  All z/VM MONWRITE datasets have variable SYSTEM.     
  VMXGDUR  24.105  New MXGDURTM variable is created.                    
    Major enhancements added in MXG 24.03.                              
  ASUM70PR 24.064  Redesign of ASUM70PR/ASUM70LP/ASUMCEC/ASUMCELP code. 
                   Corrects errors, supports different DURATMs in CEC.  
                   Extensive discussion of CEC metrics in change text.  
                   This change is required if you use these datasets.   
  TYPE89   24.063  TYPE89/TYPE892 MACHTIME calculation revised.         
  ANALRMFR 24.060  RMF CPU Activity Report updated for IFAs and IFLs.   
  WEEKBLxx 24.058  SORT order of PDB.ASUMTAPE was inconsistent.         
  WEEKBLxx 24.064  New &MXGNOBY to circumvent NOT SORTED in WEEKBLD.    
  MONTHxxx 24.064  New &MXGNOBY to circumvent NOT SORTED in MONTHLD.    
  ASMTAPEE 24.075  ML-39 of MXGTMNT, gets suppressed SYSLOG messages.   
    Major enhancements added in MXG 24.02.                              
    Two more IMPORTANT/CRITICAL corrections to the "SPLIT70" redesign:  
  TYPE7072 24.032  PCTCPUBY/PCTMVSBY in TYPE70 wrong when IRD active.   
  TYPE7072 24.043  PCTCPUBY/CPUACTTM missing in non-LPAR'd system.      
    Other, less critical enhancements:                                  
  TYPERMFV 24.042  Support for CPC RMF III report data.                 
  TYPETIAO 24.045  Support for APAR UK12301 (Tivoli Alloc Optimizer)    
  TYPEDB2  24.028  Support for APAR PK15468, adds QWSnPSRB.             
  TYPE16   24.013  Support for New Memory Object Data in DFSORT.        
  TYPE102  24.027  SQL Text missing in AUDIT trace 140-145 IFCIDs.      
  TYPESYNC 24.025  8-byte variables replaced 4-byte variables.          
  E2dddddd 24.024  New E2dddddd members for "2 Phase" tailoring.        
  VMXGINIT 24.023  MXG Default TAPENGN is now V9SEQ.                    
  MONTHBLD 24.022  ASUMDB2B BY list did not match weekly BY list.       
  TYPE80   24.018  RACF Reloate 301 section INPUT STATEMENT EXCEEDED.   
  TYPEDB2  24.044  BEGTIME missing in DB2STATB dataset.                 
  TYPE30   24.053  Negative CPUUNITS error suppressed if delta is small.
    Major enhancements added in MXG 24.01 - 2006 Annual MXG Version     
  TYPEVMXA 24.003  Toleration Support for z/VM 5.2 (INCOMPATIBLE).      
  TYPE102  24.001  Support for truncated SQL Text in DB2 Audit Trace.   
  TYPE30   24.005  Support for APAR OA14340, adds 8-byte EXCPTOTL field.
  TYPE70   24.010  Array subscript out of range with 60 LPARs.          
  TYPE30   24.011  Negative/missing values in PDB.TYPE30_6.             
  TYPE30   24.009  Variable AVGWKSET/PAGESECS accumed over TCB+IFA.     
  TYPE30   24.009  Variable CSTORE30 is now always missing.             
  TYPE102  24.001  INPUT EXCEEDED SMF 102 truncated SQL text fields.    
  TYPE70   24.010  Variable LPARNSW in RMFINTRV/TYPE70 could be zero.   
    Please read CHANGESS for the complete list of major enhancements.   
  See member NEWSLTRS or the Newsletters frame at for       
  current MXG Technical Notes that used to be in CHANGES.               
  All of these enhancements are described in the Change Log, below.     
    SAS Version requirement information:                                
      MXG 22.08 or later is REQUIRED for SAS V9.1.2 or V9.1.3; see      
      "Major Enhancements in MXG 22.08" in CHANGES, above, for the major
      items, then search Newsletters for V9 for all of the minor items. 
      MXG executes under SAS V8.2 and SAS V9.1.3, but MXG is no longer  
      supported under SAS V6.  The "PDB" libraries written to by MXG    
      must have been created by V8/V9 (i.e, if ENGINE=V6 is shown in the
      PROC CONTENTS output, you must convert that data library to the   
      current ENGINE=BASE by PROC COPYing it under SAS V8 or V9.        
       For SAS V9.1.3 on z/OS with Service Pack 4:                      
        There are no reported errors, and MXG's CONFIGV9 now specifies  
        V9SEQ instead of V6SEQ.  As V6SEQ does not support long length  
        character variables, it should not be used.                     
       SAS V9.1.3 with current Service Pack 4 is STRONGLY RECOMMENDED.  
       For (back-level!) SAS V9.1 or V9.1.2 on z/OS:                    
        SN-013514 is REQUIRED to be able to read datasets that were     
          created by V6SEQ (tape) engine.                               
        SN-012437 is REQUIRED to prevent creation of corrupt/unreadable 
          datasets with tape engines V7SEQ, V8SEQ, or V9SEQ.            
        Both fixes ARE included in SAS V9.1.3, but V9.1 or 9.1.2 is NOT 
          SAFE without those two hot fixes, and if you do NOT have those
          two fixes on 9.1 or 9.1.2, you MUST set V6SEQ in CONFIGV9.    
        With MXG 23.02 or later, V9SEQ is the default sequential engine 
        specified in CONFIGV9, but if you are still  SAS V9.1 or V9.1.2,
        you MUST install the two hot fixes listed above.                
       For SAS Version 8.2, HotFix Bundle 82BX08 (or later) is required 
         to be completely safe.  No earlier Version 8's were supported. 
       Sequential Engine Status:                                        
          V9SEQ is fixed in V9.1.3; it is now the default in CONFIGV9.  
          V8SEQ was always safe under SAS V8.2, but it wasted CPU time  
            by always compressing when writing in tape format.          
          V6SEQ, if used under V9.1.2, requires SN-013514, but V6SEQ    
                 should no longer be used, as it does not support long  
                 length variables.                                      
      MXG New-Version QA tests are executed on z/OS with SAS V9.1.3 and 
      V8.2, and on Windows XP with SAS V9.1.3.  But previous QA tests   
      have been run with all SAS releases on z/OS, SAS V8.2 and V9.1 on 
      Linux RH8 on Intel, with V9.1 on Solaris v2.8 on Model V880, and  
      V9.1 on HP-UX v11.11 model rp5470, confirming full compatibility. 
      MXG should execute under SAS V9.1.3 or V8.2 on every possible SAS 
      platform without errors! Each new MXG version is also tested with 
      the SAS ITSV/ITRM product by the ITRM developers.                 
    Availability dates for the IBM products and MXG version required for
    the processing of that product's data records:                      
                                       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 OW41318       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+ 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        
      z/OS    1.5                      Mar 31, 2004        21.21        
      z/OS    IRD ASUM70PR/ASUMCEC     Sep 22, 2003       *24.10        
      z/OS    IRD TYPE70PR             Mar 11, 2004       *24.10        
      z/OS    IRD TYPE70,RMFINTRV      Mar 22, 2002       *24.10        
      z/OS    1.6 - No IFAs            Sep 30, 2004       *22.09        
      z/OS    1.6 - With IFAs          Sep 30, 2004       *22.11        
      z/OS    1.7 (COMPATIBLE CHANGES) Sep 30, 2005       *24.10        
      z/OS    1.7 (SPLIT70 CORRECTION) Sep 30, 2005       *24.10        
      z/OS    IFA data in RMF 79s      Sep 30, 2005        23.10        
      z/OS    1.8                      Sep 30, 2005       *24.24        
      z990 CPUs - CPUTYPE '2084'x      Aug 25, 2003        21.04        
      z890 CPUs - CPUTYPE '2086'x      Jun 24, 2004        22.07        
      z9   CPUs - CPUTYPE '2094'x      Jul 20, 2005       *24.24        
      z9EC CPUs - CPUTYPE '2094'x:                                      
             with 64-bit z/OS - no change required        *24.24        
             with 32-bit z/OS only:    Aug 26, 2006        24.06        
      z9BC CPUs - CPUTYPE '2096'x:                                      
             with 64-bit z/OS - no change required         24.01        
             with 32-bit z/OS only:    Jul 27, 2006       *24.24        
      z/OS More than 32 LPARs          Jan 30, 2006       *24.24        
      z/OS SPLIT RMF 70 records        Jan 30, 2006       *24.24        
      z/OS Dupe SYSTEMs in a SYSPLEX   Jan 30, 2006       *24.02        
      z/OS IRD errors corrected        May 15, 2006        24.03        
      z/OS ASUMCEC errors corrected    May 15, 2006       *24.24        
      z/OS ASUM70LP errors corrected   Jun 13, 2006       *24.24        
      z/OS    ZIP Processor Support    Jun 22, 2006       *24.24        
      z/OS    1.8 (COMPATIBLE CHANGES) Sep 20, 2006       *24.24        
      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                     
       Using UTILEXCL to create IMACEXCL:                  21.04        
       Reading un-Excluded CICS with TYPE110, no IMACEXCL:*22.04        
      CICS-TS for Z/OS Version 3.1     Mar 15, 2005                     
       Using UTILEXCL to create IMACEXCL:                  22.13        
       Reading un-Excluded CICS with TYPE110, no IMACEXCL: 22.22        
      CICS-TS for Z/OS Version 3.2     ??? 15, 2006        24.??        
      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, no packages    Mar 31, 2004        20.20        
      DB2 8.1 New Data Packages wrong  Mar 31, 2004        21.08        
      DB2 8.1 Support with Packages    Mar 31, 2004        23.09*       
      DB2 8.1 with all zIIP Variables  Sep 30, 2006        24.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        
      DFSORT SMF V1R5                  Mar  1, 2006        24.02        
      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        
      WebSphere 6.0                    Feb 18, 2006        23.23        
      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        
      z/VM    4.4                      Jan 22, 2005        22.22        
      z/VM    5.1                      Jan 22, 2005        22.22        
      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        
      IMS log 9.1                      Dec ??, 2004?       22.08        
      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 - Most records       Jul 23, 2003        21.03        
      AS400 5.2.0 - QAPMMIOP           Jul 23, 2003        22.04        
      AS400 5.3.0                      Jan 22, 2005        22.22        
      AS400 5.4.0                      Aug 26, 2006        24.06        
    Note: Asterisk before the version number means the Version number   
          was changed (to the MXG version required), after an earlier   
          MXG version was listed as supporting this product release,    
          usually because an APAR modified the product's 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       
      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        
       NTSMF 2.4.7                     Sep 30, 2004        22.08        
       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 DB2 Version 4.0                     22.10        
       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 TCE 2.1 -                      20.04        
       The Monitor for CICS TCE 2.2 - 20.335, 21.134       21.04        
       The Monitor for CICS TCE 2.3 including cics/ts 3.1  22.08        
       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        
       The Monitor for CICS/TS V2.3 for CICS/TS 3.1        22.08        
       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 
       SAR/VIEW R11                                        23.07 23.196 
      BMC, was 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        
       IMF 3.3 (for IMS 7.1 and 8.1)                       22.08*       
       IMF 4.1 (for IMS 9.1)                               22.08        
       LMS 3.1                                             12.12A       
       APAF 4.1, 4.3                                       16.08        
      Velocity Software                                                 
       XAMAP 3.4                                           22.10        
       XAMAP 3406                                          24.03        
II.   Incompatibilities and Installation of MXG 24.10.                  
 1. Incompatibilities introduced in MXG 24.24 (since Annual MXG 24.01): 
  a- Changes in MXG architecture made between 24.24 and prior versions  
     that can introduce known incompatibilities.                        
      ITRM Sites MAY have to add _STY70 invocation in their EXPDBOUT    
         exit member, but only if they run BUILDPDB without RMFINTRV.   
         See Change 23.321. DATA SET PDB.TYPE70 NOT FOUND ERROR without.
      If you use MXG _VAR7072 and _CDE7072 in your own program to read  
         RMF 70s, you MUST now invoke _STY70 after your data step due   
         to MXG support for split SMF 70 records.  Change 23.321.       
      If you used EXTY70 or EXTY70PR to create new variables, you must  
         now use the E2TY70 or E2TY70PR "Second Phase" exit members.    
         See Change 24.024.                                             
 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 JCLINST9.    
    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.                               
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.                     
_PAGE_  8                                                               
Alphabetical list of important changes in MXG 24.10 after MXG 24.01:    
  Member   Change    Description                                        
  ANALDB2R 24.138  Incorrect Plan counts, DB2PARTY='R" were summed.     
  ANALDEVN 24.157  Example to identify all devices allocated by a JOB.  
  ANALRMFR 24.060  RMF CPU Activity Report updated for IFAs and IFLs.   
  ASMHSCEX 24.096  Revised STK Exit UX01 adds logic to save registers.  
  ASMHSCEX 24.171  Support for CrossCopy in MXGTMNT HSC Exit.           
  ASMRMFV  24.091  RMF III enhancement, ENC data, Index usage.          
  ASMRMFV  24.214  Protection for z/OS 1.6 which had no SPG records.    
  ASMTAPEE 24.075  ML-39 of MXGTMNT, gets suppressed SYSLOG messages.   
  ASUM70PR 24.064  Redesign of ASUM70PR/ASUM70LP/ASUMCEC/ASUMCELP code. 
  ASUM70PR 24.095  Variables LPCTBY LPCTOV PCTLPBY PCTLPOV missing.     
  ASUM70PR 24.105  INTERVAL=QTRHOUR is new default for ASUM70PR/70LP.   
  ASUM70PR 24.187  INTERVAL=HOUR could create obs with smaller DURATM.  
  ASUMDB2G 24.244  New PDB.ASUMDB2G summary for DB2 Global Buffers.     
  ASUMMIPS 24.080  _SYNC59 option added to MIPS/MSU analysis.           
  ASUMRAID 24.057  New RAID Analysis, all VOLSERs on each CSSSID.       
  ASUMTAPE 24.102  PDB.ASUMTAPE will have zero obs if SYSLMNT has 0 obs.
  ASUMUOW  24.129  PDB.ASUMUOW support for 10 CICS ABCODE values.       
  BLDSMPDB 24.298  New BUILDPDB=COPYONLY option enhancement.            
  BUILDPDB 24.128  New ZIP variables are now kept in PDB.STEPS/JOBS.    
  CICSBAD  24.155  Not all PROGRAM='########' should be in CICSBAD?     
  CLRMFV   24.037  New version of CLRMFV TSO CLIST for RMF III.         
  Doc      24.015  Identifying CRYPTO users and usage.                  
  Doc      24.034  Example to create numeric hex from character hex.    
  E2TY70   24.024  New E2TY70 member for tailoring PDB.TYPE70 dataset.  
  E2TY70PR 24.024  New E2TY70PR member for tailoring PDB.TYPE70PR.      
  E2dddddd 24.024  New E2dddddd members for "2 Phase" tailoring.        
  EXPDB30V 24.158  Doc: how to drop variables from PDB.SMFINTRV.        
  FORMATS  24.163  Support for z9EC on 32-bit; no change for 64-bit.    
  IMAC6ESS 24.127  Support for GEPARMKY='4D'x and '4A'x                 
  IMAC6ESS 24.227  Optional ESS GPARMKEY='4A'x caused INPUT error.      
  IMACEXD  24.221  Support for SAR/EXD SMF type 6 optional data.        
  IMACICE2 24.033  Documentation of different EZA01 fields in CICS      
  IMACICO2 24.297  Support for CMODHEAD=OMEGAMON segment.               
  IMACICO2 24.297  Support for new CMODHEAD='OMEGAMON' CICS segment.    
  JCLMNTHW 24.039  Example creates MONTH PDB from last six WEEK PDBs.   
  MONTHBLD 24.022  ASUMDB2B BY list did not match weekly BY list.       
  MXGSASVn 24.246  REGION=0M added to MXG JCL procedure examples.       
  Many     24.193  Support for 3592 Tapes, no change, they're 3590s.    
  READDB2  24.006  APPARENT MACRO MAC102S error with ANALDB2R/READDB2.  
  RMFINTRV 24.079  New NOTYPE74= option will skip TYPE74 processing.    
  TYPE102  24.001  INPUT EXCEEDED SMF 102 truncated SQL text fields.    
  TYPE102  24.001  Support for truncated SQL Text in DB2 Audit Trace.   
  TYPE102  24.027  SQL Text missing in AUDIT trace 140-145 IFCIDs.      
  TYPE102  24.121  Support for IFCID=350, replaces IFCID=63, long SQL.  
  TYPE102  24.256  IFCID 226 and 227 new variables added.               
  TYPE110  24.166  Support for BMC Mainview/CICS optional DB2 and CMR.  
  TYPE110  24.222  Stat vars DSGEJST,DSGSRBT now kept in CICDS.         
  TYPE110J 24.104  BMC CMRDETL converted to SMF 110 DOS Journal Format. 
  TYPE112  24.294  Support for SMF ID=112 "ONDV" CICS record.           
  TYPE112  24.294  Support for SMF ID=112 CICS ONDV record.             
  TYPE116  24.293  Support for NETSNAME/UOWTIME from QWHCNID in SMF 116.
  TYPE119  24.215  Vars TSICDUTM thru TSICOUAR were incorrect in MXG.   
  TYPE1415 24.094  Support for PDSE Caching statistics APAR OA12857     
  TYPE1415 24.170  MXG 24.06 only.  NO MATCHING IF error.               
  TYPE1415 24.196  TYPE1415 INPUT EXCEEDED with z/OS 1.7/1.8 PDSE data. 
  TYPE1415 24.295  Support for APAR OA17569 Tape Encryption new fields  
  TYPE1415 24.295  Support for APAR OA17569, Encrypted Tape Keys/Mech.  
  TYPE16   24.013  Support for New Memory Object Data in DFSORT.        
  TYPE16   24.071  DFSORT MEMOBJUS variable corrected.                  
  TYPE23   24.065  TYPE23 STARTIME/SYNCTIME were GMT, now LOCAL zone.   
  TYPE30   24.005  Support for APAR OA14340, adds 8-byte EXCPTOTL field.
  TYPE30   24.009  Variable AVGWKSET/PAGESECS accumed over TCB+IFA.     
  TYPE30   24.009  Variable CSTORE30 is now always missing.             
  TYPE30   24.011  Negative/missing values in PDB.TYPE30_6.             
  TYPE30   24.046  Support for zIIP-ZIP engines.                        
  TYPE30   24.053  Negative CPUUNITS error suppressed if delta is small.
  TYPE30   24.198  INTETIME in TYPE30_6 was wrong if GMT offset nonzero.
  TYPE70   24.010  Array subscript out of range with 60 LPARs.          
  TYPE70   24.010  Variable LPARNSW in RMFINTRV/TYPE70 could be zero.   
  TYPE70   24.142  PCTRDYWT, new SMF70Qnn wrong, new PCTRDQWT created.  
  TYPE70   24.184  PCTIFBYn/PCTZIBYn are "MVS", new PCTCIBYn is "LPAR". 
  TYPE70   24.225  LPARs with no current weight has LPARSHAR=0.         
  TYPE7072 24.032  PCTCPUBY/PCTMVSBY in TYPE70 wrong when IRD active.   
  TYPE7072 24.043  PCTCPUBY/CPUACTTM missing in non-LPAR'd system.      
  TYPE7072 24.046  Support for zIIP-ZIP engines.                        
  TYPE7072 24.208  LPAR SHARE variables were wrong with Dedicated CPs.  
  TYPE7072 24.224  Fall Clock "Set Back" protection for dupe STARTIME.  
  TYPE72GO 24.125  New ZIP variables were not kept in TYPE72GO.         
  TYPE74   24.228  Support for HyperPAV APAR OA12865.                   
  TYPE78   24.223  Virtual Storage Above the Bar Shared not Input.      
  TYPE78   24.228  Support for HyperPAV APAR OA12865.                   
  TYPE80   24.018  RACF Reloate 301 section INPUT STATEMENT EXCEEDED.   
  TYPE80A  24.097  INPUT EXCEEDED if more than six RACFTYPE=42 segments.
  TYPE80A  24.098  Support for RACF DCE segment from RACFTYPE 301 seg.  
  TYPE80A  24.152  Protection for $VARYINGnn. mm input with nn GT mm.   
  TYPE82   24.200  Support for SMF 82 subtype 22, correction to st 21.  
  TYPE89   24.063  TYPE89/TYPE892 MACHTIME calculation revised.         
  TYPE99   24.210  Support for SMF 99 Resource Group, TYPE99RG dataset. 
  TYPEBETA 24.257  Support for Beta 93 Version 3.6.1                    
  TYPEBVIR 24.305  Support for IBM BVIR History for TS7700 VTS System.  
  TYPECMHM 24.153  Support for EMC's Centera Mainframe HSM Migrator SMF.
  TYPEDB2  24.028  Support for APAR PK15468, adds QWSnPSRB.             
  TYPEDB2  24.044  BEGTIME missing in DB2STATB dataset.                 
  TYPEDB2  24.046  Support for zIIP-ZIP engines.                        
  TYPEDB2  24.051  QISEDBW, QISEDSC, QISESTMT corrected, other QISEs.   
  TYPEDB2  24.136  Support for DB2 V8 UIFCIDS=YES ASCII test.           
  TYPEDB2  24.141  QLESxxxx DB2 statistics variables corrected.         
  TYPEDB2  24.177  INPUT EXCEDED ID=100 SUBTYPE=0 more than 1 QLST.     
  TYPEDB2  24.194  DB2STATS variables CPUTM, QWSnXXXX corrected.        
  TYPEEDGR 24.299  Support for z/OS (COMPATIBLE) changes to RMM data.   
  TYPEHURN 24.150  HURN49 variables HU49BJOB,HU49BSET not kept.         
  TYPEIPAC 24.259  Mobius Subtype 8 INPUT STATEMENT EXCEEDED.           
  TYPEMPLX 24.204  Support for IMPLEX Version 4.10 (INCOMPATIBLE).      
  TYPEMVCI 24.264  Support for CMRDETL for Mainview for CICS V 5.9.00.  
  TYPEMWNT 24.191  Support for HP MeasureWare for Windows/NT.           
  TYPENDM  24.144  Support for NDM/Connect-Direct Release 4.3/4.5.      
  TYPENDM  24.160  Corrections (again, final?) for NDMCPUTM/NDMCPU.     
  TYPENMON 24.296  Support for NMON (free from IBM) AIX/Linux Monitor.  
  TYPENSPY 24.212  Support for NetSpy Version 11 was added Aug, 2005.   
  TYPENTSM 24.162  Support for NTSMF 3.0.0, also 35 new objects.        
  TYPENTSM 24.206  Support for NTSMF Version                   
  TYPENTSM 24.218  Support for NTSM Beta Version (COMPATIBLE).  
  TYPEORAC 24.130  Oracle support is no longer subsystem dependent.     
  TYPEPROS 24.258  Product section character variables were wrong.      
  TYPEPRPR 24.145  Support for Oce's Prisma Print '9901' USER record.   
  TYPEQACS 24.161  Support for i/Series QACS AS/400 Release 5.4.0.      
  TYPERACF 24.178  Support for IRRHFSU (Unix z/OS file permissions).    
  TYPERMFV 24.042  Support for CPC RMF III report data.                 
  TYPERMFV 24.046  Support for ZIIP-ZIP engines.                        
  TYPERMFV 24.181  Support for RMF III OPGG3, SPGG3, zips in CPUG3.     
  TYPERMFV 24.302  Support for additional zIIP data in RMF III ZRBENC.  
  TYPESFTA 24.304  Support for Tivoli License Compliance Manager 4.2    
  TYPESYNC 24.025  8-byte variables replaced 4-byte variables.          
  TYPESYSI 24.240  All times were 1000 times too large.                 
  TYPETHAL 24.201  Support for E-Thales Security five user SMF records. 
  TYPETIAO 24.045  Support for APAR UK12301 (Tivoli Alloc Optimizer)    
  TYPETMS5 24.418  DATECLN was not converted to yyyyddd format.         
  TYPETNG  24.188  Support for new TNG object (NT and Solaris).         
  TYPETPMX 24.199  Support for ThruPut Manager Version 6 new variables. 
  TYPEVMXA 24.003  Toleration Support for z/VM 5.2 (INCOMPATIBLE).      
  TYPEVMXA 24.078  All z/VM MONWRITE datasets have variable SYSTEM.     
  TYPEXAM  24.068  SHORT SEGMENT MXG error corrected for SYTCPC/STOSHR. 
  TYPEXAM  24.135  MTRSYS variables were wrong after SYSTMID.           
  UTILEXCL 24.131  Candle short CICS dictionary record supported.       
  UTILEXCL 24.140  Support for ARZGEOS/FACHG, ARGZD/GSACCT optionals.   
  UTILEXCL 24.254  Support for all Omegamon/Candle optional CICS data   
  VMAC110  24.185  Support for DMF Product's SMF 110 (CICS 4.1!) data.  
  VMACNDM  24.182  NDMCPUTM and NDMCPU now validated and correct.       
  VMACSMF  24.202  &SMFEXIT macro variable added to INFILE &SMF.        
  VMXG70PR 24.105  Corrections, revisions, ASUM70PR, ZIP and IFAs.      
  VMXG70PR 24.124  Variables SHIFT, ZDATE, ZTIME in ASUM70LP fixed.     
  VMXGDUR  24.105  New MXGDURTM variable is created.                    
  VMXGINIT 24.023  MXG Default TAPENGN is now V9SEQ.                    
  VMXGINIT 24.242  Revisions for SAS V9 BI SAS/ITRM anticipated changes.
  WEEKBLxx 24.058  SORT order of PDB.ASUMTAPE was inconsistent.         
  See member CHANGESS for all changes ever made to MXG Software.        
Inverse chronological list of all Changes:                              
NEXTCHANGE: Version 24.                                                 
====== Changes thru 24.306 were in MXG 24.24 dated Feb  5, 2007=========
Change 24.306  Support for IMS Version 10 (INCOMPAT) IMS log records,   
VMACIMS        which has these new data inserted in the 07 and 07 log   
Feb  5, 2007   log records:                                             
                  Dataset IMS07                                         
                   DLRCPUID='CPU ID*PLACE*HOLDER'                       
                   DLRESAF ='ESAF*CALLS'                                
                   DLRFLD  ='FASTPATH*FLD*CALLS'                        
                   DLRNWID ='NETWORK*IDETIFIER*OF LAST*MESSAGE'         
                   DLRPOS  ='FASTPATHP*POS*CALLS'                       
                   DLRRLSE ='RLSE*CALLS'                                
                  Dataset IMS08                                         
                   LINTSY2 ='TRANCODE OR DBNAME'                        
                   LINTPGM ='PROGRAM*NAME'                              
                   LINTPSB ='PSB*NAME'                                  
               This change had not been tested with actual V10 records, 
               and there is a new 09 statistics record that will be     
               supported in the future, but this change protects the    
               TYPEIMS7 member that used VMACIMS.                       
               Users of the ASMIMSLx/JCLIMSLx architecture will hav to  
               reassemble with the IMS 10 Macro Library.                
Change 24.305  Support for IBM's BVIR History for TS7700 VTS System.    
EXBVIR01          DDDDDD     MXG       MXG                              
EXBVIR02          DATASET    DATASET   DATASET                          
EXBVIR10          SUFFIX     NAME      LABEL                            
IMACBVIR          BVIR30   BVIR30      BVIR30: HNODE HSM HISTORY        
TYPEBVIR          BVIR31   BVIR31      BVIR31: HNODE RESERVED           
VMACBVIR          BVIR33   BVIR33      BVIR33: HNODE GRID HISTORY       
VMXGINIT       IBM creates the data file as RECFM=U, without BDW or RDW,
Feb  4, 2007   so processing this data on ASCII may require the data to 
               be converted to VB, before download, using SAS on z/OS:  
                   DATA _NULL_;                                         
                    INFILE BVIRDATA RECFM=U BLKSIZE=32760;              
                    FILE   BVIRHIST RECFM=VB LRECL=32756 BLKSIZE=32760; 
                    INPUT ;  PUT _INFILE_;  RUN;                        
Change 24.304  Support for IBM's TLCM 4.2 (formerly ISOGON's SoftAudit) 
VMACSFTA       which is now Tivoli License Compliance Manager for z/OS, 
Feb  3, 2007   eliminates old tests for record length, which caused zero
               observations to be created in SOFTMODS dataset, and adds 
               new variables:                                           
                Dataset SOFTPROD - Installed Products:                  
                Dataset SOFTMODS - Installed Load Modules:              
                Dataset SOFTAUDM - Load Module Usage                    
                Dataset SOFTAUDP - Product Usage                        
                  ***ERROR.IMACACCT.ACCOUNT FIELD 1 LENGTH WRONG        
                  messages were due to records with the accounting      
                  field containing "* NOT AVAILABLE" instead of normal  
                  job accounting information (which always starts with  
                  a length field; these data do not).  Now, MXG looks   
                  for this text and avoids calling IMACACCT to eliminate
                  the essentially spurious message.                     
   Thanks to Urs Kugler, Zurich Insurance Company, SWITZERLAND.         
Change 24.303 -Where Clauses were added to PROC PLOTS to circumvent an  
ANALRMFI       error when variables are missing in ANALRMFI,ANALDALY.   
ANALDALY      -The CPU Report had extra PHYSICAL lines printed if there 
ANALRMFR       were ICF processors.                                     
Feb  4, 2007                                                            
   Thanks to Scott Barry, SBBWorks, Inc, USA.                           
Change 24.302 -RMF III dataset ZRBDVT is enhanced with new calculated   
VMACRMFV       variables that have been found to be useful in reporting;
Feb  3, 2007   their names, labels, and formats match their RMF I TYPE74
               counterparts and are in the same units:                  
                 AVGCONMS='AVERAGE*I/O CONNECT*MSEC PER SSCH '          
                 AVGIOQMS='AVERAGE*IOS QUEUE*MSEC PER SSCH'             
                 AVGPNCUB='AVG (MS)*PEND DUE TO*CU BUSY'                
                 AVGPNDEV='AVG (MS)*PEND DUE TO*DEVICE BUSY'            
                 AVGPNDMS='AVERAGE*I/O PENDING*MSEC PER SSCH'           
                 AVGPNSWP='AVG (MS)*PEND DUE TO*SWITCH PORT BUSY'       
                 DURATM  ='DURATION*OF*INTERVAL'                        
              -The ZRBENC dataset supports these new zIIP fields that   
               were added by APAR OA13499:                              
                  ENCDECP ='DELAY*COUNT*CP'                             
                  ENCSUCT ='ZIIP*ON*CP*TIME'                            
                  ENCSUPT ='ZIIP*TIME'                                  
                  ENCTSUCT='ZIIP*TIME ON*CP*SINCE*CREATION'             
                  ENCUMSUC='USING*COUNT*ZIIP*ON CP*(MULTI)'             
                  ENCUSCP ='USING*COUNT*CP'                             
                  ENCUSSUC='USING*COUNT*ZIIP*ON CP'                     
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 24.301 -Yet another "SPLIT70" correction; actual split records   
VMAC7072       had incorrect NRPHYCPS values in PDB.TYPE70PR because the
Feb  2, 2007   PHYSICAL segments came in the second, not first, record. 
               An extra SORT and MEANS were required to correct these   
               values in TYPE70PR dataset.                              
              -Variable PARTNCPU was incorrect as it could sometimes    
               still include counts for non-CP engines.                 
              -This change also corrected CPU count variables in the    
               ASUM70PR output datasets (ASUM70PR/70LP/CEC/ASUMCELP).   
              -TYPE70PR observations with LPARCPUX=0, an offline LPAR,  
               had values in SMF70WST/LAC/MSU/NSW/PMA that were carried 
               forward because they were not reset.  Now, the variables 
               are set to missing values.                               
   Thanks to Rudolf Sauer, T-Systems, GERMANY                           
   Thanks to Martin Brauer, T-Systems, GERMANY.                         
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
====== Changes thru 24.300 were in MXG 24.11 dated Feb  1, 2007=========
Change 24.300  Using the MXG "TAPETEMP" techinque to build PDBs on tape 
WEEKBLDT       without rewind/backspace has worked for years without any
WEEKBLDD       glitches, but that's because no one had tried to stack   
WEEKBL3D       multiple "WEEK" PDBs in a separate LABEL=(SL,2) tape DSN.
WEEKBL3T       That caused ABEND A13-10 when the Second Tape Label was  
MONTHWEK       opened.  The circumvention required these code changes:  
MONTHBLS         - The MOD in the FILE WEEK MOD .. and FILE MONTH MOD.. 
MONTHBLD           were replaced with new local macro variable &MXGMOD. 
MONTHBL3         - A %LET MXGMOD=;  is inserted BEFORE the first invoke 
Feb  4, 2007       of either _WEEKBLD or _MNTHBLD, and                  
                 - After the FIRST invocation of _WEEKBLD or _MNTHBLD,  
                   a %LET MXGMOD=MOD; is inserted.                      
               The setting of MOD only after the first dataset has been 
               created has circumvented what appears to be a failure by 
               SAS to close the dataset; this logic eliminates the ABEND
               when you stack multiple PDB libraries in separate tape   
               data sets on a single tape volume.                       
              -An alternative circumvention was to create a dataset on  
               the output tape before the first invocation of the build,
               and then to CLEAR the LIBNAME, as shown below, but the   
               MOD technique is more elegant and more robust.           
                 DATA WEEK.MXGDUMMY; RUN;                               
                 LIBNAME WEEK CLEAR;                                    
   Thanks to Robbie A. McCoy, Salt River Project, USA.                  
   Thanks to Chuck Hopf, Bank of America, USA.                          
   Thanks to Rich Anderson, SAS Institute Cary, USA.                    
Change 24.299  Support for z/OS 1.8 changed (COMPATIBLE) to RMM Extract 
VMACEDGR       data:                                                    
Jan 31, 2007   Dataset EDGGOEXT - New variable                          
               Dataset EDGGVEXT - New variables                         
                  RVCAPACI='VOLUME CAPACITY IN MBYTES'                  
                  RVDCRSID='FIRST FILE CREATION SYSTEM ID'              
                  RVDESTBI='DESTINATION BIN NUMBER'                     
                  RVDESTBN='DESTINATION BIN MEDIA NAME'                 
                  RVDSNNO ='NUMBER OF DATASETS ON VOLUME'               
                  RVEXPTOK='UNIQUE VALUE AT START'                      
                  RVLABNO1='LABEL NO OF FIRST FILE'                     
                  RVPERCEN='VOLUME PERCENTAGE FULL'                     
                 *RVPRERR ='PERMANENT READ ERRORS'                      
                 *RVPWERR ='PERMANENT WRITE ERRORS'                     
                  RVRBYSET='VOLUME RETAINED BY SET?'                    
                  RVSTACKE='COUNT OF VOLUMES STACKED'                   
                  RVSTACKV='STACKED VOLUME ENABLED?'                    
                 *RVTRERR ='TEMPORARY READ ERRORS'                      
                 *RVTWERR ='TEMPORARY WRITE ERRORS'                     
                  RVVENDOR='VENDOR INFORMATION'                         
                  RVVOL1  ='VOL1 LABEL VOLSER'                          
                  RVVWMC  ='WRITE MOUNT COUNT'                          
                  RVWWID  ='UNIQUE WORLD WIDE IDENTIFIER'               
               The four *ERRORS fields did previously exist in 4-bytes; 
               they are now 5-bytes, but since they were originally kept
               as characters, they remain character variables;  you can 
               easily convert to a number with NR=INPUT(XXXXERR,5.);    
              -Feb 2:  Type H added flag to identify the Date Format    
               (JULIAN, EUROPEAN, AMERICAN), and the GMT Offset.        
               When present, the GMTOFF is used to change the XXXXDATE  
               and XXXXTIME variables to their local values.            
   Thanks to Reinhard Nitsche, GAVI, GERMANY.                           
Change 24.298  The BLDSMPDB utility new option BUILDPDB=COPYONLY can be 
BLDSMPDB       used to copy/manage the daily/weekly/wtd PDB libraries   
Jan 31, 2007   for non-SMF data.  For example you could build a PDB with
               TMS and DCOLLECT data and manage it with COPYONLY:       
                 %INCLUDE SOURCLIB(TYPSDCOL);                           
                 %INCLUDE SOURCLIB(TYPSTMS5);                           
               In addition, new option ERASEPDB=NO prevents the deletion
               of all of the pre-existing datasets in the PDB library,  
               so you could process TMC, DCOLLECT, and SMF data into the
               day-of-week datasets using                               
                 %INCLUDE SOURCLIB(TYPSDCOL);                           
                 %INCLUDE SOURCLIB(TYPSTMS5);                           
====== Changes thru 24.297 were in MXG 24.10 dated Jan 30, 2007=========
Change 24.297  Support for optional CMODHEAD='OMEGAMON' CICS segment,   
IMACICO2       adds duration/counts for ADABAS, IDMS, SUPRA, DATACOM and
UTILEXCL       a user defined vent.  The duration fields are in the new 
VMAC110        CICS/TS 3.2 format, with 8 bytes for duration.           
Jan 30, 2007                                                            
Change 24.296  Support for NMON for AIX/Linux, "Nigel's Monitor", a free
EXNMONIN       monitor from IBM.  That product's home page is located at
TYPENMON              wikiptype/nmon                                    
TYPSNMON       This is the first iteration, and some of the static info 
VMACNMON       (count of disks, disk names, directory names, etc) was   
VMXGINIT       hand coded for this site's choices, and the startup data 
Jan 30, 2007   is not decoded yet, so this support will evolve,  There  
               is a massive amount of documentation about data values   
               at the NMON web site, so this looks to be a very good    
               data source for AIX and Linux.                           
               Dataset NMONINTV contains interval observations with all 
               of the interval metrics that were in the test file.      
   Thanks to Steve Ko, Honda Canada, CANADA.                            
Change 24.295  Support for APAR OA17569, new SMF 14/15 subtype=7 adds   
VMAC1415       four variables that describe the Key Labels and Encoding 
Jan 29, 2007   Mechanism for Encrypted Tape Data Sets.                  
                 SMF14CD1='ENCODING*MECHANISM*KEY 1'                    
                 SMF14CD2='ENCODING*MECHANISM*KEY 2'                    
Change 24.294  Support for SMF ID=112 record, the "ONDV" data that was  
VMAC112        in the Omegamon User SMF record supported in TYPEOMCI.   
Jan 29, 2007   This new record is completely restructured, with changed 
               clocks and counters, but the same twelve datasets are    
               created with most of the same variable names unchanged:  
                  DDDDDD     MXG       MXG                              
                  DATASET    DATASET   DATASET                          
                  SUFFIX     NAME      LABEL                            
                  OMCDLI     OMCIDLI   OMEGAMON CICS DL/I DETAIL        
                  OMCDLT     OMCIDLIT  OMEGAMON CICS DL/I TOTALS        
                  omcidm     OMCIIDMS  OMEGAMON CICS IDMS DETAIL        
                  omcidt     OMCIIDMT  OMEGAMON CICS IDMS TOTALS        
                  OMCVST     OMCIVSAT  OMEGAMON CICS VSAM TOTALS        
====== Changes thru 24.293 were in MXG 24.10 dated Jan 28, 2007=========
Change 24.293  IBM note "Correlating MQSeries Accounting Data to CICS"  
VMAC116        from 2004 documents that while QWHCTOKN is not populated 
Jan 28, 2007   in SMF 116 records, MQSeries V5.R2 added QWHCNID which is
               populated with the NETSNAME/UOWID/UOWTIME data that MXG  
               normally extracts from QWHCTOKN in CICS records. Now, MXG
               creates NETSNAME, UOWID, and UOWIDCHR from QWHCNID when  
               it is populated.                                         
   Thanks to Scott Barry, SBBWorks, Inc, USA.                           
Change 24.292  Support for IBM WebSphere MQ V6.0 Open Systems Accounting
EXWMQCHS       and Statistics is preliminary; this iteration reads the  
EXWMQMQA       output file created by IBM's "amqsmon" program, but the  
EXWMQMQS       support will be changed to read the raw messages from the
EXWMQQUA       open systems accounting and statistics queues.  These    
EXWMQQUS       five data sets are created from either input:            
IMACWMQA          dddddd    Dataset   Description                       
TYPEWMQA          WMQMQA     MQIACTNG  MQI ACCOUNTING                   
VMACWMQA          WMQMQS     MQISTATS  MQI STATISTICS                   
Jan 26, 2007      WMQCHS     CHNSTATS  CHANNEL STATISTICS               
   Thanks to Milt Weinberger, Metropolitan Life, USA>                   
Change 24.291  DB2 SMF 102 IFCID 22 dataset T102S022 variables were bad 
VMAC102        after QW0022VN which was read with $VARYING64. QW0022VL; 
Jan 25, 2007   IBM writes all 64 bytes, not just the expected QW0022VL  
               length-of-field bytes, so MXG was always misaligned, as  
               QW0022VN is always 26 characters.  Now 64-22VN is SKIPed.
               This was accidentally discovered in SMF data sent for an 
               unrelated question, so I suspect few have used T102S022. 
   Thanks to Rachel Holt, Fidelity, USA.                                
Change 24.290  APAR OA19257 caused invalid and large CPURCTTM values in 
VMXGRMFI       both RMF 72 and SMF 30, APAR OA19282 was a partial fix,  
VMAC7072       but APAR OA19852 (Feb 7) fixes the error.                
VMAC7072       The original error causes, among other things, ERROR:    
Jan 26, 2007   processes these data.  But the error didn't print the    
Feb  7, 2007   five components of the CPU72TM, and the message text     
               referenced ancient APARs.  The revised message text gives
               clearer instructions and prints the CPU components.  If  
               you find these error conditions, prior to installing the 
               PTFs for the above APARs, you can:                       
                a. Correct your PDB library data without rereading SMF  
                   with these DATA steps:                               
                        DATA PDB.TYPE72GO; SET PDB.TYPE72GO;            
                        DATA PDB.STEPS; SET PDB.STEPS;                  
                        DATA PDB.JOBS; SET PDB.JOBS;                    
                        DATA PDB.SMFINTRV; SET PDB.SMFINTRV;            
                b. Correct when your MXG program reads SMF 30 or 70 data
                   records (whether by BUILDPDB, TYPS30, TYPS7072, etc):
                   Insert the below statements before the OUTPUT in the 
                   MXG Exit Members (you copy the EXdddddd from the MXG 
                   Source into your "USERID.SOURCLIB(EXdddddd)":        
                     In member EXTY72GO:                                
                     In members EXTY30U4, EXTY30U5, EXTY30U6, IMACINTV: 
   Thanks to Pat Curren, Supervalu, USA.                                
Change 24.289  FTP Client Security fields are now added to TYP11903:    
FORMATS              FCCIPHER='CIPHER*SPECIFICATION'                    
               FTP Server Security fields were added by Change 23.146.  
   Thanks to Debbie Shugerts, Verizon, USA.                             
Change 24.288 -Corrections to the sample VTS analyis report.  The PUT   
ANAL94         format for seven variables is $5 in place of 5 as they   
VMAC94         are character variables.  TOTPHYMT includes suffix 2s.   
Jan 24, 2007  -SMF94VCA is zero after F/C 4001, so it is recalculated   
Jan 31, 2007   as SMF94VCA=SUM(OF S94VCA41-S94VCA48)/8; when VCA=0.     
Feb  2, 2007  -Feb 2: $5 changed to $13 to display full DEV name.       
   Thanks to Keith McWhorter, Georgia Technology Authority, USA.        
Change 24.287  Variable MQTOTTM in CICSTRAN from CANMQ segment was wrong
IMACICOM       because it was missing the multiply-by-16 to convert the 
Jan 25, 2007   inputted PIB4.6 value to the correct time units.         
               The missing MQTOTTM=16*MQTOTTM; statement was added; your
               existing CICSTRAN data is valid if you multiply MQTOTTM  
               by 16.                                                   
               In the process of finding this MXG error, I realized that
               I could detect an error in your CICS tailoring, at least 
               if you had the optional CANNQ segment, by validating that
               its expected length of 76 was in fact found as expecte.  
               If you have only optional CICS segments, but no EXCLUDEd 
               fields, and you didn't tailor all of the needed IMACICxx 
               members for all of your optional segments that exist, and
               if you didn't use UTILEXCL to create an IMACEXCL for your
               optional CICS segments, then you could have no errors on 
               the log (because MXG can only detect EXCLUDEd fields),   
               but your CANMQ data (in this case) would be trashed as it
               was read from the wrong part of the SMF 110 record.      
               At least for the CANMQ segment, the length of the segment
               is contained in the record, so the IMACICOM member that  
               you tailor (by removing the comment block) will detect if
               it doesn't find the correct length of 76 at the start.   
                 Unfortunately, I had to not-ERROR on zero length, as   
                 all of the records from an APPLID will have the 76 byte
                 segment, but if the transaction was not involved in MQ,
                 those bytes are all hex zeroes.                        
               Although UTILEXCL has always been required for EXCLUDEd  
               fields, it really is required, to be completely safe,    
               even if you ONLY have optional CICS segments, with no    
               excluded fields.  If you just manually update all of the 
               IMACICxx members for all of your SEGMENTS, but do not    
               have a UTILEXCL-created IMACEXCL in effect, then the     
               optioal segments are input in the default static order in
               the IMACICDA member, which applies to ALL of your        
               records, so you could have data out of order, if all     
               regions don't have the same group of optional segments.  
               By using UTILEXCL, its IMACEXCL only calls the right     
               segment for each record, and MXG cannot get out of       
               In any case, this change will detect an out of order     
               condition, and let you know you need to run UTILEXCL.    
                 P.S. Perry's tailoring was correct; in examining the   
                      CANMQ data, which appears to be incorrect, I      
                      realized the exposure and made this change.       
   Thanks to Perry Lim, Union Bank of California, USA.                  
Change 24.286  Support for Tandem H06 release added variables compatibly
VMACTAND       to the TANDPROC, provided you still create the "old" data
Jan 24, 2007   record format.                                           
   Thanks to Harriet Sollod, Wells Fargo Bank, USA.                     
Change 24.285  Comments in JCLWEEK were correct that that example is for
JCLWEEK        building a weekly PDB on DISK, with daily PDBs on DISK,  
Jan 23, 2007   but the //WEEK DD erroneously had UNIT=TAPE.  JCL Example
               is corrected.                                            
   Thanks to Lisa L. Lawyer, Lands End, USA.                            
Change 24.284  My attempt to add REGION=0 to the // PROC JCL statement  
MXGSASV9       in Change 24.246 was wrong, generating JCL errors that   
Jan 23, 2007   That REGION=0M belongs on the // EXEC PGM= JCL statement 
               inside the JCL Procedure, and not on the PROC definition.
   Thanks to MP Welch, SPRINT, USA.                                     
Change 24.283  Support for TPF thru PUT19 adds two new datasets         
VMXGINIT         dddddd   dataset   description                         
EXTPFKC          TPFKC                                                  
EXTPFSB          TPFSB                                                  
VMACTPF        and additions to existing datasets:                      
VMXGTPFI       - TCPIP Message counters (SXTCPIN) added to SS/SR/ST     
Jan 23, 2007   - Multiple Systems with Same CPUID supported             
               - Label and KEEP for PUT12 implementation corrected      
               - Update to FF processing for PUT19 (IBM vanilla)        
               - Update SPX PUT15 Dispensed & Returned Counters         
                 and new fields added in PUT15.                         
               - Added SPXSS for "PS" processing, due to multiple       
                 datasets (SPXSS) on FCA.                               
   Thanks to Bob Wilcox, EDS, USA.                                      
====== Changes thru 24.282 were in MXG 24.10 dated Jan 22, 2007=========
Change 24.282  A new report, "DB2 Storage Analysis" uses IFCID 225 and  
ANALS225       the DB2STATS dataset to report on storage used by each   
Jan 22, 2007   DB2 subsystem, above and below the line and above the    
               bar.  The report creates an HTML report; the destination 
               must be a PDSE with LRECL=8000, LKSIZE=8004, and required
               MXG 24.08 or later for the enhanced T102S225             
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.281 -Support for BMC Mainview for MQ Series V4.2 VSAM History 
ASMMNVW        file; record changes caused MXG to not output any obs    
EXBBMQAS       with the new BMC version.  Many new variables are now    
EXBBMQCF       created by this change.                                  
EXBBMQDB      -BMC's BBMQVSAM record are compressed, and member ASMMNVW 
EXBBMQQU       has the "MNVW" Infile Exit that you install to read BMC  
IMACBBMQ       compressed data, but I did not test for compressed data; 
VMACBBMQ       now, if you try to read compressed records without having
VMXGINIT       the MNVW exit installed, you'll get an MXG message that  
Jan 24, 2007   tells you what to do.                                    
              -Support for 'E6'x QUEUE STATISTICS RECORD creates new    
               BBMQQUES dataset with 187 variables.                     
              -Support for 'E7'x DB2 MANAGER RECORD creates new         
               BBMQDB2M dataset with 445 variables.                     
              -Support for 'E8'x COUPLING FACILITY RECORD creates new   
               BBMQCFAC dataset with 81 variables.                      
              -Support for 'E9'x APPLICATION STATISTICS RECORD creates  
               new BBMQAPPL dataset with 200 variables.                 
              -Jan 27: corrected variables with 9-byte names.           
   Thanks to Stuart Wildey, Morgan Stanley, USA.                        
   Thanks to Patrick E. Fortune, Morgan Stanley, USA.                   
   Thanks to Jeff Sorokin, Morgan Stanley, USA.                         
Change 24.280  An undocumented change in MXG 24.02 corrected variable   
VMACICE        name VDEVNAME to VDEVFDID in dataset ICEBRGUT, and also  
Jan 22, 2007   revised the text in several variable's labels.           
               This is an INCOMPATIBLE change, if your reports use the  
               old variable name.  My apologies: first, for spelling it 
               wrong, and second for not documenting it last year!      
   Thanks to Yves Terweduwe, CIPAL, BELGIUM                             
====== Changes thru 24.279 were in MXG 24.10 dated Jan 21, 2007=========
Change 24.279 -Support for SAMS Vantage (INCOMPATIBLE) changes in their 
EXSAM099       Version 6.x.  The new "POOLVOLS" segment appears to have 
EXSAM100       exactly the same data as the old "LSPACEPO" segment, so  
EXSAM101       they are OUTPUT in the same SAMSLSPC dataset.            
EXSAM102      -Support for new SAMS DTOC and eight OBJ02nnn subtypes:   
EXSAM119       SAM099  SAMO2099  SAMS 2099 EMC SYSTEMS           OBJ2099
EXSAM121       SAM101  SAMO2101  SAMS 2101 EMC DISK DIRECTORS    OBJ2101
EXSAM129       SAM103  SAMO2103  SAMS 2103 EMC LOGICAL VOLUMES   OBJ2103
EXSAM150       SAM119  SAMO2119  SAMS 2119 IBM ESS SUBSYSTEM     OBJ2225
EXSAM225       SAM120  SAMO2120  SAMS 2120 IBM ESS SSIDS         OBJ2225
EXSAM230       SAM122  SAMO2122  SAMS 2122 IBM ESS VOLUMES       OBJ2227
VMACSAMS       SAM150  SAMO2150  SAMS 2150 IBM ESS PPRC INFO     OBJ2227
VMXGINIT       SAM225  SAMO2225  SAMS 2225 EMC ALL DEVICES       OBJ2227
Jan 19, 2007   SAM227  SAMO2227  SAMS 2227 EMC RDF DEVICES       OBJ2227
Jan 28, 2007   SAM230  SAMO2230  SAMS 2230 EMC BCV DEVICES       OBJ2230
Jan 31, 2007                                                            
   Thanks to Mark Daly, CitiGroup, USA.                                 
Change 24.278  Further ASUM70PR summarization corrections,redesign:     
VMAC7072      -In PDB.ASUM70LP dataset, variables LPCTBY/LPCTOV were    
VMXG70PR       slightly wrong (13.087 vs 13.705) with IRD because the   
Jan 22, 2007   old integer LPARCPUS value was used; now, the actual     
Jan 26, 2007   average number of CPs online is calculated in the        
Jan 30, 2007   LPnPREC variables from SMF70ONT/DURATM in PDB.ASUM70LP,  
               and LPARCPUS in PDB.TYPE70PR is unchanged, containing    
               the maximum number of CPs online during the interval.    
               It was only those variables in PDB.ASUM70LP that were    
               slightly wrong; their counterpart variables LPCTnBY and  
               LPCTnOV in the PDB.ASUM70PR dataset were just fine.      
                 Note that you cannot use SMF70BDA as it includes the   
                 count of CPs plus any IFAs plus ZIPs.                  
              -Variable LPnCHG, (Nr CPUs Changed?) is now always blank. 
               The variable was always 'Y' for IRD, and always blank if 
               you didn't summarize in ASUM70PR, and with IRD there's no
               need, since LPnNRPRC is the average count that interval  
              -CURSHARE and SYSSHARE were corrected for Dedicated CPs.  
              -If all your systems are on the same time zone, GMTOFFTM  
               is valid in the ASUM70PR-created summary datasets, and   
               Change's use of GMTOFFTM to protect setting of the
               system clock ahead/behind on an active system was fine.  
               Even if you have systems with different GMTOFFTM values  
               (i.e., some systems local, some systems GMT), the system-
               level PDB.ASUM70PR/PDB.ASUM70LP dataset are fine, but    
               that change was removed for the PDB.ASUMCEC/PDB.ASUMCELP 
               CEC-level summary datasets, where it created invalid and 
               extra observations where there were multiple values of   
               GMTOFFTM in a CEC.  With its removal from the BY list,   
               those datasets are now valid; however, the actual value  
               in GMTOFFTM in those two datasets may or may not be the  
               actual GMTOFFTM of the datetimestamps, and there may not 
               be a way for MXG to actually know what that true GMTOFF  
               value is from those two datasets.  If this is a problem, 
               please discuss with, but it should be a  
               minor nit for only a small number of sites.              
              -Jan 30: CURRSHARE corrected for non-IRD managed LPArs.   
   Thanks to Bill McDonald, KCC, USA, for the original error, and,      
      for testing several iterations of this significant exposure:      
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
   Thanks to Scott Barry, SBBWorks, USA.                                
   Thanks to Al Sherkow, I/S Management Strategies, USA.                
Change 24.277  The CICS Shutdown Report ANALCISH was revised to support 
ANALCISH       variables dropped by MXG (MNGSYSER and MNGSYSEE), and new
Jan 18, 2007   variables MNGRR and MNGRRS were added to the MONITOR     
Feb  4, 2007   report.  A04VADQK moved from SUM= to MAX= and AO4SKINS   
               was added to the ID= statement.                          
              -New CICLGG Logstream Global Statistics added.            
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
Change 24.276  Systems with Dedicated CP engines had variables PCTONLNx 
ANALRMFR       (Percent Online) always missing in PDB.TYPE70, which then
VMAC7072       caused ANALRMFR CPU Activity Report to have blank values.
Jan 19, 2007   Fortunately, the other variables in PDB.TYPE70 were okay;
               this is NOW the final "SPLIT70" correction, and is needed
               for z/OS 1.7 and later, if you have Dedicated z/OS CPUs. 
              -Unrelated, accidentally observed and corrected, the CPU  
               Number printed by ANALRMFR on the CPU Activity Report was
               often incorrect.                                         
   Thanks to Bob Keller, Safeway, USA.                                  
Change 24.275  ERROR.MORE THAN 255 STRUCTURES was due to an archaic test
VMAC74         for 255; the arrays had been increased to 1024, but the  
Jan 18, 2007   test value and error message text were not revised.      
   Thanks to Bill McDonald, KCC, USA.                                   
Change 24.274  Utility for ASCII execution to read SMF data via ftp and 
ASCISMFC       create a local disk file of only selected SMF records.   
Jan 17, 2007                                                            
   Thanks to Bill McDonald, KCC, USA.                                   
Change 24.273  Extraneous '60'x character in column 1 of line 140 caused
WEEKBLDD       a syntax error, now removed.                             
Jan 17, 2007                                                            
   Thanks to Lisa Lawver, Land's End, USA.                              
Change 24.272 -Enhancement to ASMRMFV RMF III adds ENC Extension feature
ASMRMFV        and ASM symbolics to let users tailor the ASMRMFV default
VMACRMFV       parameters were added.                                   
Jan 18, 2007  -Enhancement to VMACRMFV to decode the ENC Extension,     
               which adds these new variables to the ZRBENC dataset:    
                  ENCCNM  ='SERVICE*CLASS*NAME'                         
                  ENCCDE  ='SERVICE*CLASS*DESCRIPTION'                  
                  ENCCWN  ='ASSOCIATED*WORKLOAD*NAME'                   
                  ENCCRN  ='ASSOCIATED*RESOURCE*GROUP'                  
                  ENCCPN  ='NUMBER OF*SERVICE*CLASS*PERIODS'            
                  ENCCGI  ='RESOURCE*GROUP*INDEX*IN ENCRG'              
                  ENCCWI  ='WORKLOAD*INDEX*IN ENCWD'                    
                  ENCCRC  ='PERIODS*WITH*RESPONSE*TIME GOAL'            
                  ENCRNM  ='REPORT*CLASS*NAME'                          
                  ENCRDE  ='REPORT*CLASS*DESCRIPTION'                   
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 24.271 -Variables AVGRSPMS, DEVACTTM, and DEVIOQTM are created in
VMACRMFV       RMF III dataset ZRBDVT to match IBM response metrics, and
Jan 17, 2007   variable SWPODLTM is now kept.                           
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 24.270  Variable GDESDP2 was incorrectly input @11 instead of @9,
VMACQACS       causing a value of 16,448 for available processors.      
Jan 16, 2007                                                            
   Thanks to Robert Gilbert, Fortis Bank, BELGIUM.                      
Change 24.269  This is the schematic of zIIP CPU time variables in the  
ADOC30         TYPE30xx, JOBS, STEPS datasets.  zIIP CPU time is always 
Jan 16, 2007   in separate variables that are never included in the old 
               "CPU" variables that, then and now, contain ONLY the time
               spent on "CP Engines".                                   
                   CPUZIPTM      /*SMF30_TIME_ON_ZIIP*/                 
                   CPUDZITM      /*SMF30_DEP_ENCLAVE_TIME_ON_ZIIP*/     
                   CPUEZITM      /*SMF30_IND_ENCLAVE_TIME_ON_ZIIP*/     
                   CPUZIETM      /*SMF30_ELIGIBLE*TIME_ZIIP_ON_CP*/     
                   CPUDZETM      /*SMF30_DEP_ENCLAVE_TIME_ZIIP_ON_CP*/  
                   CPUEZETM      /*SMF30_IND_ENCLAVE_TIME_ZIIP_ON_CP*/  
                   CPUEZQTM      /*SMF30_IND_ENCLAVE_TIME_ZIIP_QUAL*/   
                   CPUDZQTM      /*SMF30_DEP_ENCLAVE_TIME_ZIIP_QUAL*/   
                        "Actual"                     "Eligible"         
               |--------CPUZIPTM---------|   |--------CPUZIETM---------|
               |--CPUDZITM--|--CPUEZITM--|   |--CPUDZETM--|--CPUEZETM--|
                    (DEP)        (IND)            (DEP)        (IND)    
                            "Qualified - Dependent Enclave"             
                             (Sum of DEP Actual and Eligible)           
                            "Qualified - Independent Enclave"           
                             (Sum of IND Actual and Eligible)           
               See also MXG Technical Note 31 in Newsletter FORTY-NINE, 
              "zIIP CPU Time Comparisons between TYPE72GO and TYPE30_V".
   Thanks to Bob Keller, Safeway, USA.                                  
Change 24.268  Variables SMF70GIE and STARTIME were not kept as 8-bytes 
VMXG70PR       in ASUMCEC and ASUM70LP datasets; now, using the new     
Jan 15, 2007   MINLONG= argument added to VMXGSUM,  they are.           
Change 24.267  New MINLONG= and MAXLONG= arguments are added to create  
VMXGSUM        min/max output that are 8-bytes long, like the existing  
Jan 15, 2007   SUMLONG= argument.                                       
Change 24.266  If you change macro _IMSWORK in IMACIMS, TYPEIMS7 failed,
TYPEIMS7       dataset IMS07 NOT FOUND, because _IMSWORK was not used in
Jan 14, 2007   TYPEIMS7.  Now, the syntax is consistent.                
   Thanks to Erling Andersen, SMT Data, DENMARK.                        
Change 24.265  MXG 24.04-24.09.  PDB.ASUMTAPE lost many observations,   
ASUMTAPE       only for TMNTEXIT='IBM'.  Change 24.109 added incorrect  
Jan 14, 2007   logic to propagate READTIME into 2nd-vol (HAVEMNT=501A)  
               events that are always missed by TMNT.  Propagation is   
               now corrected, but there can ALWAYS be missing values    
               in many of the variables in PDB.ASUMTAPE, depending on   
               which events were found for this mount (which combines   
               TMNT Mount, Syslog Mount or Keep, SMF21 dismount events.)
               An output from PROC MEANS N DATA=PDB.ASUMTAPE shows:     
                    Variable    N    Implication                        
                    ZDATE     4030   Total mount event obs created      
                    READTIME  1675   Mounts for jobs with a TMNT record 
                    TAPMNTTM  1328   Mounts with a TMNT record          
                    BYTES     3866   Mounts with matching TYPE21        
                    TAPMTDTM  3615   Mounts with BEGTMNT/ENDTMNT        
              -If TMS9 message was first, with no prior SYSLOG MOUNT,   
               the TOTMNDTM duration was negative, SYLMTIME was wrong,  
               and there were other defects.  This happens when SYSLOG  
               mount event was in yesterday's event for a long running  
               task that's writing lots of datasets (TMS9 for each one).
              -When SYLMTIME is missing, EVENTIME=SYLKTIME-5 is now set 
               with a 5 second adjustment; SYLKTIME can be fractions of 
               a second later than TY21TIME, and this ensures TMNT will 
               be seen before SYSL in the merge.                        
              -When TMS9 message was first, retained times were not     
   Thanks to Doug Medland, IBM Canada, CANADA.                          
Change 24.264  Support for CMRDETL (T6E) records for Mainview for CICS  
VMACMVCI       Version 5.9.00 adds (COMPATIBLY) 132 new variables to the
Jan 12, 2007   CMRDETL dataset.                                         
Change 24.263  Comments only; if you want to use VMXGGETM's arguments to
UTILGETM       select SMF data, you need to invoke %VMXGGETM (... ) ;   
Jan 11, 2007   as UTILGETM will not accept arguments.                   
   Thanks to Flavio Lima, Bank of America, USA.                         
Change 24.262  If you want to know how many bytes of SMF data is written
Example        for each of your CICS regions, by subtype, this example: 
Jan 11, 2007   //SMF DD                                                 
               //SYSIN DD *                                             
                %LET MACKEEP=                                           
                   MACRO _KCICTRN )                                     
                          CICSHDR (KEEP=APPLID MEGABYTE SUBTYPE         
                %LET MAC110H=                                           
                   %QUOTE(MEGABYTE=LENGTH/1048576; OUTPUT CICSHDR;)     
                %INCLUDE SOURCLIB(TYPE110);                             
                PROC FREQ DATA=CICSHDR;                                 
                TABLES APPLID*SUBTYPE;                                  
                WEIGHT MEGABYTE;                                        
   Thanks to Bruce Sloss, PNC, USA.                                     
Change 24.261  Analysis of CPU variability as a function of NRCPUS for  
ANALCPUV       investigation of IRD impact. Reads PDB.TYPE70 to create  
Jan  9, 2007   a temporary format $MGNRCPU with NRCPUS for each STARTIME
               interval, uses that format to add the variable NRCPUS to 
               to each PDB.SMFINTRV observation, also finds each JOB's  
               MINCPUTM and MAXCPUTM, used to calculate each interval's 
               PCTOVRMN (Percent CPU TCB was above minimum recorded) and
               PCTBLOMX (Percent CPU TCB was below maximum recorded).   
               The intent is to analyze benchmark data in which the same
               job is run multiple times on a system with wide range of 
               IRD-controlled NRCPUS, to see if there is a measurable   
               impact on recorded CPU TCB time due to IRD.              
                  It is theorized that the recorded CPU seconds should  
                  be smaller when NRCPUS is small, and larger when the  
                  NRCPUS is large, because of the "MP effect", partly   
                  because the SU_SEC used to calculate service units    
                  is NOT adjusted when IRD changes NRCPUS.              
                  This program is ready to test that theory, and will   
                  quantify the observed variability in CPU times, if    
                  any is observed.                                      
                  Let's discuss, before you run your benchmark.         
Change 24.260  Documentation. Variable SUBMUSER was not in Dataset JOBS 
DOCVER         in the DOCVER documentation, because JOBS/STEPS/PRINT in 
QASAS          DOCVER were all from the JES3 BUILDPD3, but SUBMUSER is a
Jan  8, 2007   JES2-only variable.  While I figure out how to change the
               descriptions in DOCVER, where same-named datasets with   
               different variables are created by MXG, moving the JES3  
               BUILDPD3 ahead of the JES2 BUILDPDB in the QASAS QA      
               job will cause DOCVER to contain the descriptions of the 
               datasets built by the JES2 BUILDPDB.                     
Change 24.259  Mobius Subtype 8 record caused INPUT STATEMENT EXCEEDED  
VMACIPAC       error, because the final field, IPPACCES was only 4 bytes
Jan  5, 2007   while MXG expected 8.  Both lengths are now protected.   
               This change also added support for R6.3.                 
   Thanks to Jolene Halibry, Nationwide, USA.                           
Change 24.258  Product section character variables after PROPMPRE (most 
VMACPROS       of them!) were wrong because MXG's INPUT statement was   
Jan  5, 2007   off by one byte.  Some character variables with hex data 
               were not formatted but now are.                          
   Thanks to John Kim, ATCO I-Tek, USA.                                 
Change 24.257  Support for Beta 93 (Report/Print) Version 3.6.1 SMF; new
VMACBETA       variables were added compatibly for tested subtypes:     
Jan  4, 2007   Subtype 0: BETA0 dataset:                                
               Subtype 1: BETA1 dataset: no changes.                    
               New subtypes 10, 51, and 52 are documented but will only 
               be supported when they are available for validation.     
   Thanks to Engelbert Smets, Provinzial, GERMANY.                      
Change 24.256  New variables added to IFCID 226 and 227 are supported.  
VMAC102        Variables QW0226PN/QW0227PN are now character zeros, as  
FORMATS        new QW0226PG/QW0227PG variables now contain page number, 
Jan  3, 2007   new QW0226FG/QW0227FG contain table space type, which is 
               decoded by new MGD226S format.                           
   Thanks to Bill Schray, IBM Global Services, USA.                     
   Thanks to Ted Blank, IBM Global Services, USA.                       
Change 24.255  Cosmetic, but may be useful.  The MXG Messages printed on
VMACSMF        the log at the end of SMF input are enhanced with elapsed
Dec 29, 2006   duration and the read rate of the input data:            
                 *** MXG 24.09 SUCCESSFULLY COMPLETED READING SMF.***   
                    26750  LOGICAL SMF RECORDS WERE READ.               
                 THE SMF FILE CONTAINED     325,284,835 BYTES,          
                               WHICH IS     310MB.                      
                 MINIMUM SMF RECORD TIMESTAMP WAS 02SEP2004:09:00:00.04.
                 MAXIMUM SMF RECORD TIMESTAMP WAS 02SEP2004:09:34:57.14.
                 MXG FINISHED READING SMF FILE AT 29DEC2006:15:54:40.06.
                     ELAPSED TIME TO READ SMF FILE           0:00:08.69.
                     SMF READ RATE PER ELAPSED TIME   35MB/SEC.         
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.254 -Support for the rest of the Candle/IBM optional CICS data
IMACICC5       segments are added to UTILEXCL:                          
VMAC110       -Validation discovered that the CANGMTOF GMT offset was   
Dec 24, 2006   never correct, but IMACICC1 is now revised to correctly  
IMACICC1       decode the partial TOD stamp into the offset duration.   
Dec 28, 2006                                                            
               Technical Note ons tailoring CICS IMACICxx members:      
               When you use UTILEXCL to create IMACEXCL (RECOMMENDED!!),
               you can remove Comment Blocks in ALL of your IMACICxx    
               members, because IMACEXCL's code only %INCLUDEs the IMACs
               needed for each "DO GROUP" found in your PDB.CICSDICT.   
               Each execution of _BLDDICT appends new CICS dictionary   
               records found in SMF to the old PDB.CICSDICT dataset,    
               which is then read by _BLDEXCL to create the IMACEXCL    
               code that will read your SMF 110 CICSTRAN records.       
               The KEEP= list in IMACEXCL has only those variables that 
               exist in your PDB.CICSDICT records.  Or, the KEEP= list  
               could have ALL of the hundreds of optional variables and 
               now defunct variables, if you have a old CICS dictionary 
               record from a test system long ago in your PDB.CICSDICT. 
               You may PROC DELETE DATA=PDB.CICSDICT; and create a new  
               IMACEXCL based only on today's CICS dictionary records.  
               And/or you can delete unwanted APPLIDs from PDB.CICSDICT 
               before you run the _BLDEXCL.                             
   Thanks to Richard Schwartz, State Street Bank, USA.                  
Change 24.253  Internal macro variable WORD4 was never set to a value,  
READDB2        due to a typo.                                           
Dec 23, 2006                                                            
   Thanks to R. Narruli, DST Systems, USA.                              
Change 24.252  The eight-byte EXCP count in SMF33EXX that replaces the  
VMAC33         four-byte SMF33EXP count is now INPUT when it exists.    
Dec 23, 2006                                                            
   Thanks to Andreas von Imhof, Rabobank, THE NETHERLANDS.              
====== Changes thru 24.251 were in MXG 24.09 dated Dec 20, 2006=========
Change 24.251  Protection for Mainview MQ records RTIN='26'x that didn't
VMACBBMQ       contain the ISHD header segment that MXG thought would   
Dec 20, 2006   always be there. Variables DURATM ENTC and GMTOFF might  
               be missing when there is no ISHD header segment.         
   Thanks to Stuart Wildey, Morgan Stanley, ENGLAND.                    
Change 24.250  Protection for Export date format of DDMMYY instead of   
VMACMWNT       expected MMDDYY requires you to set new &DATEFMT macro   
VMXGINIT         %LET DATEFMT=DDMMYY;                                   
Dec 19, 2006     %INCLUDE SOURCLIB(TYPSMWNT);                           
               if the "MWA EXPORT DD/MM/YY" text in the first record has
               that format.                                             
              -The INPUT of SOFTWARE and RELEASE was revised to protect 
               for a Logfile name that contains blanks.                 
   Thanks to Dominik Covens, KBC, BELGIUM.                              
Change 24.249  The old MACRO _DIFFHSM definition did not add _Sdddddd   
VMACHSM        sort macros for HSMWWFSR and HSMWWVOL datasets, probably 
Dec 18, 2006   because the _Sxxxx Product Sort macro had replaced the   
               early "DIFF" nomenclature, and _DIFFHSM was overlooked.  
               Now, those two datasets are included when _DIFFHSM is    
               invoked, but the preferred name to use in your EXPDBOUT  
               member is to have a _Sxxxx statement for each VMACxxxx   
               that you %INCLUDed in your EXPDBINC tailoring member.    
               Then, MXG is responsible for any deaccumulation as well  
               as adding any new datasets into your PDB library as part 
               of your BUILDPDB job.                                    
   Thanks to Dwain Majak, B, B, and T, USA.                             
Change 24.248  Enhancement to the "BUILD PDB EXAMPLE", BLDSMPDB, adds   
BLDSMPDB       optional processing of DCOLLECT and TMS/CA-1 records into
Dec 18, 2006   the daily PDB library, so they can also then be created  
Dec 20, 2006   in your weekly and monthly PDB libraries.                
                New argments:                                           
                  DCOLLECT=DCOLLECT -  read INFILE DCOLLECT output PDB  
                          =dsname   -  alloc FILENAME DCOLLECT to dsname
                                       all output to PDB                
                  TMC     =TMC      -  read INFILE TMC output PDB       
                           dsname   -  allocates FILENAME TMC to dsname 
               Additionally, SMF data weekly/monthly processing can be  
               weekly/wtd, and monthly/mtd.  Weekly/Monthly will copy   
               all, or only selected, datasets.  Exits were added for   
               flexibility during weekly/monthly/trend processing.      
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.247  Inconsistent macro definitions for _Vdddddd, _Wdddddd:   
VMACCMA       -VMACCMA User SMF record now have the standard, expected  
VMACQACS       macro token names and definitions for the syntax for     
VMACTNG        "Single Infile, Multiple Datasets Per Product" data:     
VMACTMO2          For each output dataset:                              
VMACCIMS             MACRO _Vdddddd                                     
Dec 19, 2006           KEEP= list of variables                          
                     MACRO _Wdddddd  &Wdddddd..DATASET %                
                     MACRO _Kdddddd                    %                
                  Output all datasets for the product:                  
                     MACRO _VARXXXX                                     
                           (LABEL='dddddd: description'                 
                                  _Vdddddd _Kdddddd                     
                           _Wdddddd  repeat for each product dataset.   
              -VMACTMO2 User SMF record updated with standard, expected 
               macro token names, as above for "Single Infile, Multiple 
               Datasets Per Product" data.                              
              -VMACCIMS User log record updated with standard, expected 
               macro token names, as above for "Single Infile, Multiple 
               Datasets Per Product" data.                              
              -VMACTNG macro _NTNG had incorrect syntax, with the text  
               "MACRO" missing from each statement; it would have failed
               if it had been used!                                     
              -But even though they are inconsistent naming conventions 
               now, the VMACQACS AS/400 macro names _VQAPxxx _CQAPxxx   
               cannot be changed without serious exposure to existing,  
               fine running jobs.  For the record, for these datasets   
               from "MULTIPLE INFILES, ONE OUTPUT PER INFILE" data:     
                  For each output dataset:                              
                     MACRO _TQAPxxx                                     
                     MACRO _WQAPddd  &Wdddddd..DATASET %                
                     MACRO _Kdddddd                    %                
                  Where the _VQAPxxx was already defined as:            
                     MACRO _VQAPxxx                                     
                           (LABEL='QAPxxx: description'                 
                            KEEP= list of variables                     
               So your tailoring syntax is slightly different here, but 
               that's the lesser of causing production job failures!    
   Thanks to Erling Andersen, SMT Data A/S, DENMARK.                    
Change 24.246  REGION=0M added to MXGSASV9/MXGSASV8 JCL PROC examples to
MXGSASV8       protect sites that did not specify a REGION on their JOB 
MXGSASV9       card. (The MXG JCL examples do show REGION=0M on JOB.)   
Dec 15, 2006  -When REGION=0M is specified on the JOB JCL statement, the
               job gets your installation default REGION=0M size, often 
               100MB-300MB, which is quite sufficient for most MXG jobs,
               for every step in the job.                               
              -With REGION=xxxM value specified on the JOB card, all of 
               the steps get that xxxM REGION size, even if there is a  
               larger or smaller REGION= value on a STEP card.          
              -If the JOB does not have a REGION= parameter, the job and
               each step gets a different default region, of only about 
               40MB (9MB Private Area + 32MB Above the Line).           
                  While much of MXG 24.08 does run in a 40MB REGION,    
                  (including the JCLINSTL job that successfully created 
                  the MXG Format Library), the BUILDPDB job failed when 
                  run in only 40MB, with SAS FORMAT NOT FOUND errors    
                  (but each individual formats was there and usable by  
                  itself). The 40MB wasn't enough region for the        
                  "BUILDPDB big DATA step", which allocates virtual     
                  storage for all of the output buffers for all of the  
                  datasets to be created, and then loads all referenced 
                  formats into virtual storage.                         
              -The default BUILDPDB needs a 64MB REGION, generally, but 
               may need 100MB+, if you have tailored your BUILDPDB to   
               process additional SMF records.                          
   Thanks to Donald Likens, Combined Insurance, USA.                    
Change 24.245  DVTG3 table had new fields added in 1.7 and 1.8 that are 
VMACRMFV       now kept:                                                
Dec 18, 2006      CMRTM  Command*Response*TIME                          
                  DVTCUQTP Control Unit Queueing Time Previous          
                  DVTCUQTN Accum CU Wait for non-FICON devices          
                  DVTCUQTF Accum CU Wait for FICON devices.             
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 24.244  New PDB.ASUMDB2G summary dataset for DB2 Global Buffers  
ASUMDB2G       is created from PDB.DB2ACCTG dataset by ASUMDB2G member. 
Dec 13, 2006                                                            
   Thanks to Hugh Lapham, Royal Canadian Mounted Police, CANADA         
Change 24.243  The test for which DB2ACCT observations are counted as   
ASUMDB2A       NORMAL was revised to include QWACRINV=4 thru 16 and 40  
Dec 12, 2006   as NORMAL and all other QWACRINV values as ABNORMAL, to  
               be consistent with the formatted values of QWACRINV in   
               the MGDB2RC format.                                      
   Thanks to Nigel D. Greenwood, EDS, ENGLAND.                          
Change 24.242  Revisions to force TEMPxx macro variable explicitly to a 
VMXGINIT       value of WORK, and revised setting of SASSWORK, etc., for
VMXGSUM        anticipated SAS/ITRM changes to support SAS V9 BI.       
Dec 12, 2006                                                            
Change 24.241  Keyword parameter WORK73 was accidentally typo/deleted in
VMXGRMFI       the macro definition, causing an error only if there were
Dec 11, 2006   73 or more workload's defined.                           
   Thanks to Clayton Buck, UniGroup, USA.                               
Change 24.240 -All durations were 1000 times too large; I assumed the   
VMACSYSI       times were in 256*milliseconds, like most prior IMS data,
Dec  7, 2006   but data and documentation show they are 256*microsecs,  
               so all &PIB.4.3 informats were changed to &PIB.4.6.      
   Thanks to Betra Reeves, Infocrossing, USA.                           
   Thanks to Joel Medberry, Infocrossing, USA.                          
Change 24.239  MACRO _ROSCDDN has not been used since the &Pdddddd and  
VMACROSC       &Wdddddd macro variables were defined, but comments in   
Dec  6, 2006   IMACROSC and VMACROSC were still present/confusing.      
               To send all of the ROSCOE datasets to the //PDB DD, use  
               %INCLUDE SOURCLIB(TYPSROSC) which will sort, remove any  
               duplicates, and output them to //PDB.                    
   Thanks to Lori Martin, Lockheed Martin, USA.                         
Change 24.238  RMF III variables ENCTCPUT and ENCCPUT are in millisecs  
VMACRMFV       in the RMF III record, but are not documented as such.   
Dec  5, 2006   They are now corrected in their INPUT, and I have also   
               made the assumption that these IFA time variables in the 
               same segment are also in millisecs in the record, and are
               also corrected in their INPUT informat.                  
                  ENCTIFAT ENCTIFCT ENCIFAT ENCIFCT                     
   Thanks to Brenda Rabinowitz, Merrill Lynch, USA.                     
Change 24.237  Label for NRZIPCPU and NRIFAS in PDB.RMFINTRV had text of
VMXGRMFI       "IN THE BOX", but as RMFINTRV is a PER-SYSTEM dataset,   
Dec  1, 2006   the label is changed to "FOR THIS SYSTEM'.               
   Thanks to Douglas C. Walker, Citigroup, USA.                         
Change 24.236  Reserved Change.                                         
Nov 30, 2006                                                            
Change 24.235  EJBCRECT was input twice, the second time where EJBREMCT 
UTILEXCL       was located, so EJBCRECT was wrong and EJBREMCT did not  
Nov 30, 2006   exist when UTILEXCL was used to process CICS data.       
   Thanks to Harald Seifert, HUK-COBURG, GERMANY.                       
Change 24.234  If you specified %LET MACKEEP ahead of UTILBLDP, it may  
UTILBLDP       be ignored if you are also adding records in a BUILDPDB  
Nov 21, 2006   process.  This change puts your MACKEEP values inside of 
               the MACKEEP being generated by UTILBLDP.  Note however   
               the error message that your use of MACKEEP here may      
               defeat something UTILBLDP is trying to do so use it with 
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.               
Change 24.233  MXGERROR: More than 70 200 Byte Strings is circumvented  
VMXGSUM        by increasing the MXG default to 99 200 byte strings for 
Nov 21, 2006   the variable lists (SUM=, etc.) that VMXGSUM must parse. 
               Using the full line for your variables, up to 72 bytes,  
               will maximize the number of variables that will fit in   
               the 99*200=19800 bytes for each argument, enough for 2200
               variables with 8-byte names.                             
Change 24.232  The last field in subtype 2, ACTRREPQ is only 45 bytes,  
VMACENTX       not the 48 bytes documented by the vendor.               
Nov 20, 2006                                                            
   Thanks to Chris Taylor, GMAC Insurance, USA.                         
Change 24.231  Label for variables SOV2WMNT was corrected to read:      
Nov 18, 2006                                                            
   Thanks to Tom Elbert, Assurant, USA.                                 
Change 24.230  SAS procedures BLKCOPY & FCOPY (used during Installation 
FORMATS        and Service Pack Updates, and MIGRATE are now recognized 
Nov 14, 2006   by the $MGSASPR format.  Even though the official SAS doc
               (only found deep in the SAS Support site) says you cannot
               use PROC MIGRATE from SAS 6.09E to SAS 9, that particular
               conversion IS supported, but only under SAS on z/OS.     
   Thanks to Jim Horne, Lowe's Companies, USA.                          
Change 24.229  The program worked fine if output to //WORK was used, but
TYPEIMS7       if you used either of the examples in the comments, to   
Nov  9, 2006   send either IMS0708 or IMSSUMRY to the //IMSTRAN ddname, 
               that failed with ERROR 455-185 DATA SET WAS NOT SPECIFIED
               ON DATA STATEMENT.                                       
   Thanks to Denise L. Jeffers, CIGNA, USA.                             
Change 24.228  Support for HyperPAV APAR OA12865.                       
VMAC74        -TYPE74 dataset: New variables created:                   
VMAC78           HYPERPAV='HYPERPAV*BASE*DEVICE?'                       
               Variable SMF74TMS is deleted, as it never existed and was
               input by MXG in error.                                   
              -TYPE78CU dataset: New variables added for each LCUID:    
                 R783HCU ='HYPERPAV CU IDENTIFIER'                      
                 R783HTIO='HYPERPAV I/O*REQUESTS*FOR THE LSS'           
                 R783HCAD='HWM*ALIASES*IN USE*ONE BASE'                 
                 R783HIOQ='HWM*OF IO-S QUEUED'                          
               Variable PCTALLBY set missing, per Change 19.203, instead
               of generating a missing value note for each TYPE78CU obs.
   Thanks to Dr. H. Pat Artis, Performance Associates, USA.             
Change 24.227  Optional ESS GPARMKEY='4A'x caused INPUT STATEMENT       
IMAC6ESS       EXCEEDED LENGTH error if there were more than one        
VMAC6          addressee.  MXG now keeps four (ESSMACC1-ESSMACC4)       
Nov  7, 2006   and alerts you if there were more, with a note.          
Nov  8, 2006  -Support for ESS GPARMKEY='4C'x creates ESSMFROM variable 
Nov  9, 2006   and for ESS GEPARMKY='42'x creates ESSOFSYF variable.    
              -Support for ESS GEPARMKY='2023'x creates ESSOUTBN.       
              -Length of DEPT, TITLE, BUILDING increased to $60.        
   Thanks to Dr. Alexander Raeder, ATOSORIGIN, GERMANY.                 
Change 24.226  Variable QWACWLME, Service Class Name, is now kept in the
VMACDB2        PDB.DB2ACCTP dataset for analysis. Note that APAR PK37312
Nov  7, 2006   corrects blank value in QWACWLME after zIIP maintenance. 
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.225  LPARs with no current share (no current weight points)   
VMAC7072       had LPARSHAR=0 in PDB.TYPE70. Those LPARs are treated    
Nov  7, 2006   now as Current Share = Initial Share.                    
   Thanks to Rudolf Sauer, T-Systems Enterprise Services GmbH, GERMANY. 
Change 24.224  Setting the Clock Back an hour, without quiescing for an 
VMAC7072       hour, produces duplicate values of STARTIME in all RMF   
VMXG70PR       datasets, plus negative execution/elapsed/durations/etc  
Nov  7, 2006   in many other records, and in many cases it is impossible
Nov 17, 2006   to even recognize the duplication/overlap.               
               However, for the 70 and 72 records, adding GMTOFFTM to BY
               lists, after SMF70GIE, and to the KEEP= lists, appears to
               prevent the duplicate STARTIME values from being summed  
               (which caused doubling of the values of PARTNCPU and     
               CPCMUS, among other errors), although duplicates will    
               still exist in these datasets.                           
               Nov 17: Typo, APPCLAX in KEEP= in VMAC7072 should have   
               been APPCMAX, which caused APPCMAX to be not kept.       
               Jan 21: See Change 24.                                   
   Thanks to Rudolf Sauer, T-Systems Enterprise Services GmbH, GERMANY. 
   Thanks to Jim Horne, Lowe's Companies, USA.                          
Change 24.223  Total Virtual Storage Above the Bar was captured in the  
VMAC78         VSDGxxxx variables in TYPE78VS dataset, but the Shared   
Nov  7, 2006   bytes were not INPUT.  And because IBM reused the VSDG   
Dec 19, 2006   prefix for both sets of variables, this change changes   
               the variables VSDGxxxx to TOBYxxxx for the Total Byte    
               fields, and now creates SHBYxxxx variables for Shared    
               byte fields above the bar.                               
               Dec 19: Corrected long line for R783HNAI input.          
   Thanks to Ralph C. Baechle, John Deere, USA.                         
Change 24.222  CICS Statistics variables DSGEJST and DSGSRBT were INPUT,
VMAC110        and correctly calculated/formatted, but were not KEPT in 
Oct 24, 2006   the CICDS dataset.                                       
   Thanks to Helmut Rose, Com-Software, GERMANY.                        
Change 24.221 -Support for changed field lengths in SAR/EXD SMF type 6  
IMACEXD        optional data.                                           
Oct 24, 2006                                                            
   Thanks to Joe Kimberly, Kansas City Southern, USA.                   
Change 24.220 -Support for NTSMF OBJECT='DATABASE ==> INSTANCES creates 
EXNTDATI       new DATABASI dataset; previously, those objects were     
IMACNTSM       output into the DATABASE dataset, which caused nearly-   
VMACNTSM       duplicate observations.                                  
VMXGINIT      -Support for DATABASE object with NRDATA=191.             
Oct 25, 2006                                                            
   Thanks to Paul Billick, Harleysville Insurance, USA.                 
Change 24.219  The optional ARZGS GSACCT segment for CICS can have any  
UTILEXCL       length; MXG's INPUT statement expected 8, which caused   
Oct 21, 2006   errors when the real length was 12.  Now, UTILEXCL prints
               the CMODLENG and a message to compare your actual length 
               with MXG's, and to change IMACICU2 if needed.            
   Thanks to Richard Hilber, Allgemeines Rechenzentrum GmbH, AUSTRIA.   
   Thanks to Peter Gschirr, Allgemeines Rechenzentrum GmbH, AUSTRIA.    
Change 24.218  Support for NTSM Beta Version (COMPATIBLE), adds 
VMACNTSM       SUMRYINT and ORGANIZN to NTCONFIG dataset.               
Oct 18, 2006                                                            
Change 24.217  If you want to process on the CICSTRAN data to create the
ASUMUOW        PDB.ASUMUOW dataset without reading DB2ACCT, when there  
Oct 18, 2006   are observations in DB2ACCT, you can use                 
                 %INCLUDE SOURCLIB(BUILDPDB);RUN;                       
                 %LET MACKEEP=                                          
                   MACRO _NOOBS %  MACRO _YESOBS % ;                    
                   MACRO _LDB2ACC WORK.DB2ACCT %                        
                 %INCLUDE SOURCLIB(ASUMUOW);                            
               and MXG will use only CICSTRAN as input to PDB.ASUMUOW.  
   Thank to  Christian Hodel, SwissCom, SWITZERLAND.                    
====== Changes thru 24.216 were in MXG 24.08 dated Oct 18, 2006=========
Change 24.216  Using SUPPRESS with TYPETMNT failed; logic in UTILBLDP   
UTILBLDP       didn't protect non-standard-named-tokens, now corrected. 
Oct 18, 2006                                                            
   Thank to Robbie A. McCoy, Salt River Project, USA.                   
Change 24.215  Incorrect values for ICMP Statistics variables TSICDUTM  
VMAC119        thru TSICOUAR, because -3 was incorrectly subtracted     
Oct 18, 2006   twice from OFF11905 when subtype 6 logic was added.      
   Thank to Thomas Heitlinger, FIDUCIA IT AG, GERMANY.                  
====== Changes thru 24.214 were in MXG 24.08 dated Oct 17, 2006=========
Change 24.214  Processing z/OS 1.6 with SPG processing enabled failed   
ASMRMFV        with an 0C4, as there were no SPG records in z/OS 1.6.   
Oct 16, 2006   Correction bypasses SPG for old versions.                
   Thank to Betty Wong, Bank of America, USA.                           
Change 24.213  Variable MCDFBID is now formatted HEX8. vice HEX4.; the  
VMXGHSM        field was INPUT as PIB4.                                 
Oct 16, 2006                                                            
   Thank to Sam Bass, McLane Company, USA.                              
Change 24.212  Support for NetSpy Version 11 was added in August, 2005, 
VMACNSPY       when test data validated that records were unchanged.    
Oct 16, 2006                                                            
   Thank to Brian Conway, IBM Global Services, CANADA.                  
Change 24.211  INVALID DATA messages for SCBGN, SYSIUL, SYSCIU because  
VMACQACS       MXG had &NUM vice &PD, and incorrect lengths for those   
Oct 15, 2006   QAPMSYST variables.                                      
   Thanks to Jim Wertenberger, Antares Solutions, USA.                  
Change 24.210  Support for SMF 99 Resource Group section now creates new
EXTY99RG       TYPE99RG dataset.                                        
Oct 13, 2006                                                            
   Thanks to Claude Breault, Centre de Services Partages Quebec, CANADA.
Change 24.209  Syntax error corrected; the previous circumvention to run
UTILBLDP       as a two step process should no longer be required with  
Oct 13, 2006   the Oct 17th edition.                                    
Oct 17, 2006                                                            
   Thanks to Ralph Gifford, AIG, USA.                                   
   Thanks to Bruce Whittington, TIAA-CREF,USA.                          
Change 24.208  LPAR share variables were destroyed by Dedicated CPUs;   
VMAC7072       the test was expanded for their calculation to bypass:   
Oct 13, 2006     IF SMF70CIN='CP' AND LCPUSHAR NE 0FFFFX THEN DO;       
               These variables were impacted if you have Dedicateds:    
   Thanks to Rudolf Sauer, T-Systems Enterprise Services GmbH, GERMANY. 
Change 24.207  TYPE72GO CPUTCBTM (and hence CPUTM) will incorrectly have
VMAC7072       included the zAAP CPU time, if zIIP APAR OA13499 was put 
Oct 13, 2006   on, but you did not also install the z/OS web-deliverable
               FMID JBB722S (or JBB66S9) for that zIIP APAR.  The APAR  
               extended the segment to 576 bytes, adding zIIP fields,   
               but also two new IFA Service Units in  R723CIFA,R723CIFC.
               The two IFA fields are created by the APAR, but with only
               the APAR installed, they are always zero.  IBM says this 
               is working as designed, that I should only use the new   
               fields if they are non-zero.  Unfortunately, IBM did not 
               document that "design" feature in the SMF manual!        
               Prior to the INPUT of R723CIFA/CIFC, MXG created IFAUNITS
               from the CPUIFATM, but then the zero in R723CIFA was put 
               in IFAUNITS, so those service units were not subtracted  
               from the raw CPUUNITS, causing CPUTCBTM/CPUTM to include 
               CPUIFATM.  This condition can be detected in your data,  
               and/or corrected in PDB.TYPE72GO with this test/logic:   
                 DATA TYPE72GO;                                         
                 SET PDB.TYPE72GO;                                      
                 IF IFAUNITS=0 AND CPUIFATM GT 0 THEN DO;               
                   IF NFOUND=1 PUT 'INCLUDED ZAAP TIME WAS FOUND';      
               Jan 18:  This change in MXG 24.08 was a CRITICAL CHANGE, 
               and was the final change to the SPLIT70 redesign. For one
               site, it corrected negative CPUOVHTM in PDB.RMFINTRV and 
               the associated error messages RMFINTRV was created that  
               could occur with MXG 23.23 thru MXG 24.07.               
   Thanks to Tom Draeger, Aurora, USA.                                  
   Thanks to Heimir Hauksson, Barclays Bank, UK.                        
Change 24.206  Support for NTSMF Version adds two new objects:  
Oct 11, 2006                                                            
Change 24.205  Support for DATABASE ==> INSTANCES object with NRDAT=152.
VMACNTSM       Two new variables created in NTSMF dataset DATABASE:     
   Thanks to Paul Billick, Harleysville Insurance, USA.                 
Change 24.204  Support for IMPLEX Version 4.10 (INCOMPATIBLE, fields are
EXMPLXAR       expanded and new ones were inserted), with new variables 
IMACMPLX       and new IMPLEXAR dataset for the subtype 8 Alert Record. 
VMACMPLX       Sorts were updated to ensure duplicates are removed.     
Oct 11, 2006                                                            
Change 24.203  If the number of workloads requested to be graphed in the
GRAFWRKX       sample program exceeded 20, the program failed, and the  
Oct  9, 2006   values for 21,31,41,51,61,71,81, and 91 were not defined.
Change 24.202 -New macro variable &SMFEXIT is added in VMACSMF to each  
VMXGINIT       statement INFILE &SMF &SMFEXIT .... in preparation for   
VMACSMF        MXG support for compressed SMF records.  Soon, &SMFEXIT  
Oct  7, 2006   will name the to-be-provided "INFILE EXIT" that will     
Jan 28, 2007   decompress SMF records "on the fly".  &SMFEXIT defaults  
               to blank in VMXGINIT.  Stay tuned for a later change.    
               Note, however, SAS Infile Exits only exist under z/OS.   
              -While intended for a different purpose, this new macro   
               variable, since it is inside the MXG INFILE statement,   
               can be used also to pass INFILE options.  In particular, 
               you can limit the observations that will be READ from the
               SMF file, using                                          
                 %LET SMFEXIT FIRSTOBS=nnn OBS=mmm;                     
                 %INCLUDE SOURCLIB(....);                               
               This is very useful for MXG members that have to invoke  
               PROC SORTs to deaccumulate (like TYPEDB2,TYPEVMXA, etc), 
               because you can NOT use an OPTIONS FIRSTOBS=mmm OBS=nnn  
               global statement with those code members; the global will
               restrict the INFILE processing, but they then need to be 
               reset to FIRSTOBS=1 and OBS=MAX prior to the SORTs, and  
               there is not simple way to do that for these members.    
               But now, you can use the preceding example to restrict   
               the INFILE but not the subsequent PROC SORTs.            
Change 24.201  Support for E-Thales Security product's five user SMF    
EXTHALCD       records (poor choice: they should have created a single  
EXTHALEX       SMF record and used five subtypes!) creates these seven  
EXTHALHS       datasets:                                                
EXTHALSA           DDDDDD  MXG       MXG                                
EXTHALSD           DATASET DATASET   DATASET                            
EXTHALSN           SUFFIX  NAME      LABEL                              
Oct  5, 2006       THALSD  THALSUMD  DEVICE IN SUMMARY RECORD           
                   THALSN  THALSNAP  SRM SNAPSHOT RECORD                
   Thanks to ???                   , Public Bank, MALAYASIA             
   Thanks to Patrick Yap Chee Keong, SAS Institute, MALAYASIA           
Change 24.200  Support for SMF 82 Subtype 22 (TRUSTED BLOCK CREATE CALL)
EXTY8222       creates TYPE8222 dataset.                                
IMAC82         Variable SMF82SXT in Subtype 21 is now input as numeric  
VMAC82         numeric variable, and FORMATed DATETIME21.2, as the      
VMXGINIT       time value is TODSTAMP and not the documented $CHAR8.    
Oct 10, 2006                                                            
   Thanks to Greg Burt, 5th3rd Bank, USA.                               
Change 24.199 -Support for ThruPut Manager Version 6 adds new variables 
VMACTPMX       for IBM/STK/VTAPE/COPYCROSS virtual tape usage, and new  
Oct  5, 2006   "Drive Booking Services":                                
              -Change 24.147 incorrectly inserted NOT in the test for   
               JBAFF; that NOT is removed, that change text updated.    
               If the two formats in your IMACTPMX do not correctly     
               map your SYSPLEX and SYSTEMs, that will cause JBAFF to   
               be blank, but the original MXG logic is correct.         
   Thanks to Scott Barry, SBBWorks, Inc.                                
Change 24.198  Variable INTETIME (Interval End) in TYPE30_6 was wrong   
VMAC30         if GMT offset was non-zero; the subtype 6 doesn't contain
Oct  4, 2006   SMF30IST, which was used to calculate GMTOFF30. Now, that
               is calculated as GMTOFF30=SMFTIME-INTETIME for subtype 6.
   Thanks to Leendert Keesmaat, UBS, SWITZERLAND.                       
   Thanks to Michel Denervaud, UBS, SWITZERLAND.                        
Change 24.197  Variables DCVDVTYP DCVDPTYP from the VOLS record are now 
VMACDCOL       kept in both DCOLDSET and DCOLCLUS datasets, so the type 
Oct  3, 2006   of device is known.  For example,                        
                   DCVDVTYP='3390'  DCVDPTYP='33909'                    
                   DCVDVTYP='3390'  DCVDPTYP='2105'                     
   Thanks to Brian Harvey, Blue Cross Blue Shield of Illinois, USA.     
Change 24.196  TYPE1415 INPUT STATEMENT EXCEEDED RECORD with z/OS 1.7   
VMAC1415       plus ptf's, or with z/OS 1.8 due to MXG coding error that
Oct  3, 2006   was introduced in Change 24.094 for new PDSE Cache Stats.
Dec  5, 2006   SKIP=SKIP-32; is required in place of the SKIP=SKIP-16   
               added by Change 24.094 (in MXG 24.04).                   
   Thanks to Diane Eppestine, AT&T Services, Inc, USA                   
   Thanks to Frank Debree, Dexia, BELGIUM.                              
Change 24.195  Variables QW0143UR and QW0144UR printed funny values.    
VMAC102        They are now FORMATted $HEX12. and input as $CHAR6.      
Oct  2, 2006   instead of $EBCDIC6. (required for ASCII execution, makes
               no difference when executing MXG on z/OS), like the other
               QW0nnnUR Unit Recovery Token variables.                  
   Thanks to Larry Stahl, IBM Global Services, USA.                     
Change 24.194 -CPUTM and QWSnXXXX variables in PDB.DB2STATS Statistics  
VMACDB2        dataset was wrong, with large positive or negative values
Sep 29, 2006   due to incorrect login in MXG code.                      
Oct 10, 2006  -New QWSnZSRB variable, Preemptable SRB Time on zIIP is   
               now created and kept in the PDB.DB2STATS dataset.        
              -ADOCDB2 CPU variables were updated to indicate whether or
               not they contained zIIP CPU time.                        
              -Variable QWHUCPU is now kept in DB2ACCT.                 
              -zIIP variables QW0231ZI and QW0231ZE for IFCID 231 are   
               now created and kept in T102S231.                        
   Thanks to Jim Robson, HighMark, USA.                                 
   Thanks to John Paul, HighMark, USA.                                  
Change 24.193  Support for 3592 Tape Devices (no change); they have the 
VMAC30         same DEVTYPE as the 3590s, so usage will automatically   
Sep 27, 2006   be stored in the xxxx3590 variables.                     
Change 24.192  Using %READDB2, you could not override the output DDNAME 
Sep 27, 2006   to create observations only in DB2ACCT.DB2ACCT.  Now, if 
               PDBOUT= argument is null, the original _Ldddddd defs will
               be used, so the %LETs can be used to changed output DD.  
               NOTE BENE:  CHANGE 25.189 REVISED PDBOUT= options, and   
               THIS CHANGE IS NO LONGER CORRECT. SEE PDBOUT= option in  
               the READDB2 or ANALRMFR member for revised impacts.      
               NOW, if PDBOUT=, (the default) was specified, ALL output 
               datasets will be written to //WORK DD.  PDBOUT=YES is now
               required if you want your user tailoring honored.        
Change 24.191  Support for HP MeasureWare for Windows/NT for Collector  
EXMWNTAP       Versions C.03.65.00 and C.04.50.00.  C.04 has additional 
EXMWNTCO       variables that will be missing with C.03 data records.   
EXMWNTDS       These datasets are created:                              
EXMWNTGL          DDDDDD     DATASET   DATASET                          
EXMWNTLA          SUFFIX     NAME      LABEL                            
TYPEMWNT          MWNTLA     MWNTLANS  HPMWA MWNT LANS                  
Oct  2, 2006                                                            
   Thanks to Bobby Greer, Automobile Association of Michigan, USA.      
   Thanks to Dominik Covens, KBC Bankverzekeringsholding, BELGIUM       
Change 24.190  Executing the output of %UTILBLDP as a separate step, if 
UTILBLDP       you specified both BUILDPDB=YES and EXPDBOUT= text that  
Sep 25, 2006   had a %INCLUDE, caused an error deep inside SAS, either  
               a syntax error, or expression exceeded 64000 bytes error.
               If you use %UTILBLDP this way in the two-step process,   
               then you must add this statement at the first //SYSIN    
               in the saved output that will be executed:               
                   %LET BLDPOUT= xxxxxx    ;                            
               where xxxxx is the text in the EXPDBOUT= argument.       
   Thanks to Robert Carballo, Office Depot, USA.                        
Change 24.189  The options NOOPD and NOSPG did not suppress the OPD/SPG 
ASMRMFV        records, causing OPD or SPG records to be output when you
Sep 25, 2006   had intended to not write them.  And, the NOCSR flag was 
               incorrectly set when NOSPG was specified.                
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 24.188  Support for new TNG object from NT and SOLARIS platforms:
EXTNT131          dddddd    Dataset   Description                       
EXTSO029          TNT131    NT131     SLM METRICS                       
IMACTNG           TSO029    SO029     CA PROCESS GROUP                  
VMACTNG        and additional variables in AI019, AI022, AI024, and the 
VMXGINIT       NT035 datasets, and labels were corrected.               
Sep 26, 2006                                                            
   Thanks to Michael Kynch, International Paper, USA.                   
Change 24.187  ASUM70PR with INTERVAL=HOUR (or any duration) can create 
VMXG70PR       observations with incorrect DURATM (50 vice 60 minutes,  
Sep 23, 2006   which then caused PCTCPUBY and PCTOVHD to be too large), 
Oct  8, 2006   because MXG's heuristic test IF FIRST.DURATM to recognize
               a new group to store SYSDUR failed when adjacent DURATMs 
               happened to be identical.  That test is enhanced to also 
               recognize a group when the new LCPUADDR is less than the 
               old LCPUADDR, a far more robust criteria.  This error can
               NOT occur with the defauit INTERVAL=DURSET in ASUM70PR,  
               which does not summarize by time, so this error can occur
               only if you have a tailored ASUM70PR member.  Five out of
               twenty-four intervals were wrong in one day's data, but  
               only those three variables were wrong; all of the other  
               data were correct.                                       
              -Oct 8: Notes about uninit OLDSTART, OLD70GIE eliminated. 
   Thanks to Scott Weiner, WPS Insurance Corporation, USA.              
====== Changes thru 24.186 were in MXG 24.07 dated Sep 22, 2006=========
Change 24.186  Support for zIIP variables in PDB.RMFINTRV dataset; I had
VMXGRMFI       overlooked this addition.  MXG 24.07 was redated with the
Sep 17, 2006   change so all of the "mainstream" MXG datasets now have  
               the additional sets of ZIP/ZIE variables.                
   Thanks to Jonathan M. Miller5, JohnDeere, USA.                       
====== Changes thru 24.185 were in MXG 24.07 dated Sep 21, 2006=========
Change 24.185  Support for DMF Product that creates SMF 110 records with
VMAC110        SMFPSRVR=41.1, i.e., CICS/ESA 4.1.1 (from 1994).  While  
Sep 17, 2006   MXG supported 4.1.0 and 5.1.0, there never was an MXG    
               site with 41.1, and it may be their creation, as it has a
               seventh TCB, while 5.1.0 only had six.                   
   Thanks to Vernon Stanton, Government of South Australia, AUSTRALIA.  
Change 24.184 -Variables ORIGWAIT in PDB.TYPE70PR was not populated for 
VMAC7072       IFAs and ZIPs, but it is needed so that both the "CPU"   
Sep 17, 2006   busy (LCPUPDTM-based) and the "MVS" busy (ORIGWAIT-based)
               can be calculated for analysis of logical ready queues.  
               Now, in the observations with PARTISHN=LPARNUM ("this"), 
               ORIGWAIT will be populated for SMF70CIN='IFA' or 'IIP'.  
              -PDB.TYPE70 existing variables PCTIFBYx and PCTZIBYx are  
               the "MVS" percentages, but MXG did not create the "CPU"  
               (LCPUPDTM-based) percentage for IFAs nor ZIPs.  Now, new 
               PCTCIBYx variables are created with the "CPU"/"Logical"  
               percentages, for the IFA or ZIPs, and variable IFATYPx   
               identifies if the CPU is an IFA or a ZIP.  This permits  
               the analysis of Logical Ready Queuing for IFAs and ZIPs, 
               as well as for CPs.                                      
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 24.183  Variables Q3STHWIB, Q3STHWIF, and Q3STHWCT are high water
VMACDB2        mark values and should not have been de-accumulated.     
Sep 16, 2006   Oct 5:  Also, variable QDSTMIN2.                         
Oct  5, 2006                                                            
   Thanks to Rachel Holt, Fidelity Systems, USA.                        
   Thanks to Ralph Baechle, John Deere, USA.                            
Change 24.182 -NDMCPUTM (created from the text string CPUTIME=) had a   
VMACNDM        few small negatives, because the BY list was insufficient
Sep 12, 2006   to force the correct order for de-accumulation.          
Sep 13, 2006     The time sequence within NDMPRCNO was different when   
Sep 14, 2006     sorted by NDMTIME vs SMFTIME; each created a different 
                 group of observations with negative NDMCPUTM.  Using   
                 the raw NDMCPUTM value in place of time of day appears 
                 of have corrected the negative values; but check your  
                 own data to be sure.                                   
              -Change 24.144 created new variable NDMCPU when the DSECT 
               showed a four-byte "CPU TIMEUSED" field added in NDM 4.3,
               but it took us several iterations to INPUT the field from
               the right place with the (undocumented) correct decimal, 
               in part because with NDM 4.5, the first-bit of NZMZFMT is
               off, indicating an 8-byte UID, but the record has the    
               64-byte Expanded UID.  I assume it is always present in  
               the current versions, so MXG now always INPUTs 64-bytes. 
               And one site's network group validated the MXG NDMCPU    
               value, so the NDMCPU variable may be valid.  Sterling    
               says the field was populated in Version 4.4.             
   Thanks to Rodger Foreman, Acxiom, USA.                               
   Thanks to David Kaplan, Depository Trust & Clearing Corporation, USA.
   Thanks to Rob Hollingum, HSBC, ENGLAND.                              
Change 24.181 -Support for OPDG3 and SPGG3 RMF III segments required    
ASMRMFV        updates to ASMRMFV and revision to MXG code to create:   
EXZRBOPD         ddddd   Dataset   Descriptino0                         
VMACRMFV      -Support for zIIP data added to ASIG3 segment:            
Sep 12, 2006     ASIMCUSE='MULTI STATE*PROCESSOR*USING*PCT'             
Sep 16, 2006     ASIPHTZA='PREEMPTABLE*SRB*FOR ZAAPS'                   
Sep 19, 2006     ASIPHTZI='PREEMPTABLE*SRB*FOR ZIIPS'                   
                 ASISDCCP='PCT*DELAYED*BY CP*PROCESSOR'                 
                 ASISUCCP='PCT SINGLE STATE*SAMPLES*USING*CP'           
                 ASITIIP ='ACCUMULATED*ZIIP*TIME'                       
                 ASITIIPC='ACCUMULATED*ZIIP*ON CP*TIME'                 
              -Support for new zIIP/zAAP data in RCDG3 segment:         
                 RCDHST  ='HIPERSPACE*CPU*TIME'                         
                 RCDIFACP='ZAAP*SERVICE*UNITS*ON CP'                    
                 RCDIFAT ='ZAAP*SERVICE*TIME'                           
                 RCDIFCT ='ZAAP*SERVICE*TIME*ON CP'                     
                 RCDIIT  ='IO*INTERRUPT*CPU*TIME'                       
                 RCDRCT  ='REGION*CONTRAL*TASK*CPU*TIME'                
                 RCDSUPCP='ZIIP*SERVICE*UNITS*ON CP'                    
              -Support for new zIIP/zAAP data in CPUG3 segment:         
                 CPUIFCON='ZAAPS*ONLINE*AT END'                         
                 CPUZICON='ZIIPS*ONLINE*AT END'                         
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 24.180  Labels for IFATYPnn now contain IFA, ZIP, and CP text.   
VMAC7072       Labels for SMF70Q01-Q11 were misleading, implying the.   
Sep 11, 2006   values were cumulative, but they are discrete percents   
               when In-Ready WAS N+1, rather than In-Ready LE N+1.      
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
Change 24.179  Cosmetic.  Labels for HSM datasets HSMWWFSR and HSMWWVOL 
VMACHSM        were not propagated in their _Sdddddd dataset sort macro.
Sep 11, 2006                                                            
   Thanks to Christa Neven, KBC Bankverzekeringsholding, BELGIUM.       
Change 24.178  Support for IRRHFSU unload utility; Unix System Services 
EXRAC900       for z/OS file-permissions are a "IRRDBU00-format" RACF   
EXRAC901       0900-0903 records.  While these new records contain only 
EXRAC902       ASCII data, and the IRRDBU00 records contain only EBCDIC,
EXRAC903       this implementation supports either file or concatenation
IMACRACF       of both record types, and can be executed under ASCII or 
VMACRACF       EBCDIC SAS systems.   New datasets created are these:    
VMXGINIT         dddddd     Dataset   Description                       
Sep 10, 2006     RAC900     RACF0900  USS RACF BASIC RECORD             
Sep 26, 2006     RAC901     RACF0901  USS RACF FILE ACCESS              
                 RAC902     RACF0902  USS RACF DEFAULT ACCESS           
                 RAC903     RACF0903  USS RACF DIRECTORY DEFAULT ACCESS 
              -Sep 26 Variables RECNR/RECTYPE added to RAC09xx datasets.
               Variables GRNAME GRMEMBAL INTRNVOL input length expanded.
               Variable ATTRIBS created for RACF0200                    
               Variable TYPE0901 rename GRPORUSR.                       
   Thanks to Bill Arrowsmith, Euroclear, BELGIUM.                       
   Thanks to Aimee Steel, Euroclear, BELGIUM.                           
Change 24.177  DB2 Statistics ID=100 SUBTYPE=0 caused INPUT EXCEEDED if 
VMACDB2        there is more than one QLST segment, and LENQLST=0 in the
Sep  8, 2006   triplets, which is IBM's new way to read the length field
               at the OFFQLST offset.  But this record is in error; its 
               length field contains 176, when the actual segment length
               is 178 bytes; this LENxxxx field does not contain itself,
               but in all other LENxxxx=0 segments, the length at the   
               OFFxxxx contains the 2 byte of that field.  Circumvention
               code was added to protect the QLST segment for the       
               unexpected (incorrect?) length field value.              
   Thanks to Ray Dunn, CIGNA, USA.                                      
Change 24.176  DB2 Statistics variable QISTRHIG was incorrectly DIF()'d;
VMACDB2        it is a maximum value, and is not accumulated, so that   
Sep  8, 2006   variable is no longer deaccumulated.                     
   Thanks to Steve Morris, State of Ohio BWC, USA.                      
Change 24.175  For PDB.ASUMTAPE with STATUS='TY21ONLY', the DSNAME field
ASUMTAPE       should be blank, but it was populated with a DSNAME from 
Sep  7, 2006   a prior job.  Now, it will be blank as expected.         
   Thanks to Geoges Rondeau, Amicam, FRANCE.                            
Change 24.174  The new Release 4.3 fields, including NDMCPU and NDMRIP  
VMACNDM        were incorrectly INPUT due to undocumented alignment data
Sep  7, 2006   bytes in the record. See Change 24.182.                  
   Thanks to Rob Hollingum, HSBC, ENGLAND.                              
   Thanks to David Kaplan, Depository Trust & Clearing Corporation, USA.
Change 24.173  Documentation only.  IBM VMA product incorrectly decoded 
IMACACCT       SMF ACCOUNTn fields that contained an underscore.  APAR  
Sep  6, 2006   OA17684 list the ACCOUNTn characters they consider valid:
               Letters A thru Z, numbers 0 thru 9, space, period, dollar
               sign, asterisk, dash, slash, comma, at-sign, pound-sign  
               (a/k/a hash mark), equal sign, and now, with that APAR,  
               an underscore.                                           
Change 24.172  Using %UTILBLDP with EXPDBOUT= that has a %INCLUDE caused
UTILBLDP       a syntax error if the output was directly executed; there
Sep  6, 2006   was no error with the output, so running it as a two-step
               build-and-then-execute circumvented.  See Change 24.190. 
   Thanks to Robert Carballo, Office Depot, USA.                        
Change 24.171  CopyCross+HSC caused MXGTMNT Tape Mount Monitor to stop  
ASMHSCEX       writing SMF records.  Apparently, CopyCross alters the   
Sep  4, 2006   JFCB, which we use to get the DSNAME of the tape mount,  
               and apparently the JFCB address in the TIOT is not valid;
               MXGTMNT took five internal S0B0 ABENDS, the error from   
               the IBM service that reads data from SWA (IEFQMREQ) when 
               the data we've pointed to is not in SWA, and assumed we  
               had a real problem, and turned the monitor off.          
               We know that HSC mounts do not go thru the IBM Volume    
               Mount Exit; we assume in the HSC exit that if we didn't  
               see it in the IBM exit that it must be HSC controlled,   
               so we were seeing the CopyCross mounts in the HSC exit.  
               There doesn't seem to be a way to identify these mounts  
               as CopyCross, but "asmguy" as figured a way to obtain the
               DSNAME so that the abend won't occur, and thus MXGTMNT   
               will now capture the CopyCross mounts thru HSC exit.     
   Thanks to Brian Felix, Wachovia Corporation, USA.                    
Change 24.170  A debugging PUT statement at line 664: IF SMF14TY NOT ...
VMAC1415       is deleted.  It was also truncated and had no semi-colon,
Sep  1, 2006   which caused NO MATCHING IF error in TESTIBM in JCLTEST. 
   Thanks to Bernd Klawa, Stadtwerke Bielefeld, GERMANY.                
Change 24.169  Format $MGTMDAC was not built, and $MGTIVSA was wrong;   
FORMATS        the semi-colon to end the $MGTIVSA format was missing.   
Aug 31, 2006   Inserting the semicolon corrected both formats.          
   Thanks to Nick Johns, Sainsbury's Supermarkets LTD, ENGLAND.         
Change 24.168  Variable CPUTYPE was blank in PDB.ASUMCEC (because the   
VMXG70PR       HOLD7CPT temp variable was not in the RETAIN statement). 
Aug 31, 2006   Fortunately, variable CPFCNAME='2084-308' does have the  
               CPUTYPE in character, but CPUTYPE is now corrected.      
   Thanks to Curdin Salis Gross, Credit Suisse, SWITZERLAND.            
Change 24.167  Support for MEMORY object with NRDATA=35 caused message  
Aug 31, 2006   and MXG skipped the record. NRDATA=35 is now supported.  
   Thanks to Roger Zimmerman, Hewitt Associates, USA.                   
Change 24.166  Support for BMC Mainview for CICS Optional DB2 and CMR.  
IMACICDA      -The existing IMACICMR for the CMRDATA segment was updated
IMACICMR       with four new pairs of counts/times variables for ADABAS,
IMACICMD       DATACOM, IDMS, and MQSeries.                             
UTILEXCL      -The optional CMRDB2 data enabled by BMC BBSAMP CMR$2MCTs 
VMAC110        is supported in IMACICMD optional member.                
Aug 31, 2006  -UTILEXCL was updated to support the CMRDB2 segment and   
Nov  7, 2006   the eight new variables in the CMRDATA segment.          
              -IMACICDA, used only for non-UTILEXCL segment processing  
               was updated to add the include for IMACICMD after the    
               existing IMACICMR, an assumed order that may need to be  
               reversed, if you don't use UTILEXCL.                     
              -Unrelatedly, variables in Change 24.140 were still in the
               FORMAT statement, causing UNITIALIZED VARIABLE ARZGEOS   
               (harmless), but they are now removed in VMAC110.         
   Thanks to Jane Dickenson, Santander Produban UK, ENGLAND.            
====== Changes thru 24.165 were in MXG 24.06 dated Aug 30, 2006=========
Change 24.165  Variables CPUIFATM and CPUZIPTM are added to TRNDSMFI.   
Aug 29, 2006                                                            
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.               
Change 24.164  IMACJBCK (the JOB-check exit for selection of SMF records
VMAC6          by JOB/READTIME/SYSTEM/etc.), for SMF 6 and 26 records,  
VMAC26J2       was called before the JESNR had been INPUT.  The %INCLUDE
VMAC26J3       was moved until after JESNR has been created, so it can  
Aug 28, 2006   be used for selection, as documented in IMACJBCK.        
   Thanks to Kris Ferrier, State of Washington DIS, USA.                
Change 24.163  Support for z9EC processors.  MXG 23.09+ supported 64-bit
FORMATS        z/OS on z9 and z9EC; this change is required ONLY if you 
Aug 27, 2006   are using a 32-bit z/OS (See Change 24.110 for impact).  
   Thanks to Al Sherkow, I/S Management Strategies, USA.                
Change 24.162  Support for NTSMF Version 3.0.0, new objects & variables.
EXNTARMA      -Dataset SYSTEM new variable:                             
EXNTASPA      -Dataset MEMORY new variables:                            
EXNTASPN         PCTAVLBY='PCT*AVAILABLE*BYTES'                         
EXNTASPS         VTORATIO='V TO R*RATIO'                                
EXNTCCMQ      -Dataset NETWINTR new variable                            
EXNTIPV6      -Dataset DTSCPU new variables                             
EXNTNECD         DTCPNCOS='SUPPORTED*CORES'                             
EXNTNECE         DTCPNCOA='ACTIVE*CORES'                                
EXNTNECI      -Dataset BLKBERRY has new instance variable, if there is  
EXNTNECJ       more than one blackberry server:                         
                    NOTE: SEE CHANGE 24.015 for INCOMPATIBILITY note.   
EXNTNECM      -Datasets MSQBUFMG and SQLBUFMG no longer populate the    
EXNTNECR       variable CACHSIZE, although it will continue to exist    
EXNTNECS       in MXG with a missing value.                             
EXNTNECT      -Dataset MSQGENST and SQLGENST new variables:             
EXNTPSPI         ACTMPTBL='ACTIVE TEMP TABLES'                          
EXNTSAJO         LOGLCONN='LOGICAL CONNECTIONS'                         
EXNTSAJS         TRANSACT='TRANSACTIONS'                                
EXNTSAST         NATOMYRT='NON-ATOMIC YIELD RATE'                       
EXNTSQBA         MARSDEAD='MARS DEADLOCKS'                              
EXNTSQBR         SOAPMTRQ='SOAP EMPTY REQUESTS'                         
EXNTSQBS         SOAPSQRQ='SOAP SQL REQUESTS'                           
EXNTSQCL         SOAPWSRQ='SOAP WSDL REQUESTS'                          
EXNTSQES         PROCBLKD='PROCESSES BLOCKED'                           
EXNTSQWS      -Dataset MSQLOCKS and SQLLOCK new variable:               
EXNTTCV6         LOKTIMEO='LOCK*TIMEOUTS'                               
EXNTUDV6      -Dataset MSQLATCH and SQLLATCH new variables              
IMACNTSM         SUPRLACN='NUMBER OF*SUPERLATCHES'                      
Aug 26, 2006  -Dataset MSQACCES and SQLACCES new variables              
                 DEDRROST='DEFERRED DROPPED ROWSETS'                    
                 DRROCLRT='DROPPED ROWSET CLEANUPS/SEC'                 
                 DRROSKRT='DROPPED ROWSETS SKIPPED/SEC'                 
                 DEDRAUS ='DEFERRED DROPPED AUS'                        
                 AUCLUPRT='AU CLEANUPS/SEC'                             
                 AUCLBART='AU CLEANUP BATCHES/SEC'                      
                 FACLBART='FAILED AU CLEANUP BATCHES/SEC'               
                 USTRPACO='USED TREE PAGE COOKIE'                       
                 FATRPACO='FAILED TREE PAGE COOKIE'                     
                 USLEPACO='USED LEAF PAGE COOKIE'                       
                 FALEPACO='FAILED LEAF PAGE COOKIE'                     
                 LOPRCRCN='LOBSS PROVIDER CREATE COUNT'                 
                 LOPRDECN='LOBSS PROVIDER DESTROY COUNT'                
                 LOPRTRCN='LOBSS PROVIDER TRUNCATION COUNT'             
                 LOBHCRCN='LOBHANDLE CREATE COUNT'                      
                 LOBHDECN='LOBHANDLE DESTROY COUNT'                     
                 BYLOCRCN='BY-REFERENCE LOB CREATE COUNT'               
                 BYLOUSCN='BY-REFERENCE LOB USE COUNT'                  
                 PUOFROCN='COUNT PUSH OFF ROW'                          
                 PUINROCN='COUNT PULL IN ROW'                           
                 LOREAHCN='COUNT LOB READAHEAD'                         
              -Dataset MSQSTATS and SQLSTATS new variables:             
              -And support for these 37 new objects:                    
                DDDDDD    DATASET   OBJECT                              
                NTARMA    ASPNET    ARMTECH APPLICATION                 
                NTARMP    ASPNETAP  ARMTECH PROCESS                     
                NTASPN    ASPNET    ASP.NET                             
                NTASPA    ASPNETAP  ASP.NET APPLICATIONS                
                NTASPS    ASPNETSS  ASP.NETSTATESERVICE                 
                NTCCMQ    CCMSGQUE  CCM MESSAGE QUEUE                   
                NTNECD    NETCLRDT  .NET CLR DATA                       
                NTNECI    NETCLRIN  .NET CLR INTEROP                    
                NTNECJ    NETCLRJI  .NET CLR JIT                        
                NTNECL    NETCLRLO  .NET CLR LOADING                    
                NTNECT    NETCLRLK  .NET CLR LOCKSANDTHREADS            
                NTNECM    NETCLRME  .NET CLR MEMORY                     
                NTNECS    NETCLRSE  .NET CLR SECURITY                   
                NTNECE    NETCLREX  .NETCLREXCEPTIONS                   
                NTNECR    NETCLRRE  .NETCLRREMOTING                     
                NTIPV6    IPV6      NT IPV6                             
                NTSAAL    SAALERTS  SQLAGENT:ALERTS                     
                NTSAJS    SAJOBSTP  SQLAGENT:JOBSTEPS                   
                NTSAJO    SAJOBS    SQLAGENT:JOBS                       
                NTSAST    SASTATS   SQLAGENT:STATISTICS                 
                NTSQBN    SQLBUFND  SQLSERVER:BUFFER NODE               
                NTSQCL    SQLCLR    SQLSERVER:CLR                       
                NTSQPC    SQLPLNCA  SQLSERVER:PLAN CACHE                
                NTSQSR    SQLSQLER  SQLSERVER:SQL ERRORS                
                NTSQSP    SQLSPIPE  SQLSERVER:SSIS PIPELINE             
                NTSQST    SQLTRANS  SQLSERVER:TRANSACTIONS              
                NTTCV6    TCPV6     NT TCPV6                            
                NTUDV6    UDPV6     NT UDPV6                            
              -The _UNTDISC logic to recognize new DISCOVERY record was 
               revised to protect multiple systems (data with very old  
               and new NTSMF interleaved caused variable DISCOVRY to not
               always be incremented; now, it will always be, but it can
               skip a value, which is ok, as it is only for grouping).  
              -NTCONFIG dataset variable SUMRYVER could be incorrectly  
               carried forward if you have new and then old NTSMF data. 
   Thanks to Jim Quigley, CONED, USA.                                   
Change 24.161  Support for i/Series QACS/QAPM AS/400 Release 5.4.0, is  
VMACQACS       INCOMPATIBLE, because when new data is added, the LRECL  
Aug 26, 2006   in your JCL/FILENAME must be changed to read the new data
               records.  The comments in VMACQACS list the new LRECLs:  
                    File     LRECL   Change                             
                  QAPMDISK    376     +3                                
                  QAPMJOBL   1116    +31                                
                  QAPMJOBM    542    +31                                
                  QAPMLPAR    172    +92                                
                  QAPMPOLB     83     +5                                
                  QAPMSYSL   3367    +23                                
                  QAPMSYST    555    +20                                
              -Dataset QAPMCONF supports GKEY='21' to create new vars:  
                GDES21  ='GDES21*ASP*CAPACITY*IN*BYTES'                 
               New GDKEYs 'B1' thru 'B5' create GDESB1N-GDESB5N numeric 
               and GDESB1C-GDESB5C character variables, awaiting doc to 
               properly label them.                                     
              -Dataset QAPMDISK new variables:                          
                  DSRDT   ='RAID TYPE?*0=RAID 5*1=RAID 6'               
                  DSIOPF  ='MANAGED*BY IOP?*0=NO*1=YES'                 
                  DSCAT   ='DISK*UNIT*CATEGORY?*0=NO*1=EXTERNAL'        
              -Dataset QAPMJOBM and QAPMJOBL new variables:             
                  JBACPU  ='ACCUMULATED*JOB CPU*TIME'                   
                  JBIPAF  ='IP TYPE*02X=IPV4*18X=IPV6'                  
                  JBIPAD  ='IP ADDRESS BINARY'                          
                  JBIPPT  ='IP PORT*NUMBER'                             
              -Dataset QAPMSYS and QAPMSYSL and QAPMSYST new variables: 
                  SYVCPU  ='VIRTUAL*PROCESSOR*TIME*CONFIGURED'          
                  SYDPCH  ='TOTAL*DISPATCH*TIME'                        
                  SYSHRF  ='SHARED*PROCESSOR*FLAG 0=NO*1=YES'           
              -Dataset QAPMPOLB new variables:                          
                  POUNAL  ='UNALLOCATED*POOL*SPACE'                     
              -Dataset QAPMSYSL variables previously overlooked:        
              -Dataset QAPMLPAR new variables decoded, but not yet      
               tested with data.                                        
                  LPCAP   ='TOTAL*DISK*CAPACITY'                        
                  LPAVL   ='TOTAL*DISK*CAPACITY*AVAILABLE'              
                  LPBSY   ='DISK*BUSY*TIME'                             
                  LPRSP   ='DISK*RESPONSE*TIME'                         
                  LPRDS   ='DISK*READ*COMMANDS'                         
                  LPWRTS  ='DISK*WRITE*COMMANDS'                        
                  LPDISK  ='NUMBER OF*SELECTED*DISKS'                   
                  LPMEM   ='TOTAL*MEMORY*IN SYSTEM'                     
   Thanks to Jim Wertenberger, Antares Management Solutions, USA.       
   Thanks to Tim Follen, Antares Management Solutions, USA.             
Change 24.160 -NDMCPUTM could still be wrong, if the NDMLENPA/NDMLENSA  
VMACNDM        field lengths were more than the arbitrary $VARYING48 I  
Aug 25, 2006   chose, thinking ACCT data would be an MVS 44-byte account
               field, but the "ACCT" data is text.  With lengths of 89  
               I arbitrarily increased the length to 256 bytes, but,    
               more importantly, longer lengths are protected.          
              -The INPUT for NDMCPUTM itself was revised to validate    
               that CPUTIME= text exists immediately prior to the INPUT 
              -Code was revised to be independent of the order of the   
               four optional segments (SVOL,PVOL,SACCT,PACCT).          
              -NDMOFF43 and NDMLEN43 logic was removed, as the segment  
               is always present in current NDM-Connect Direct records. 
              -Some CT records contain nonzero NDMCTDOF (*P.DTOTAL) that
               is the offset to an 80-byte "TOTALS (IF RESTARTED)" area,
               from which I create NDMTOT01-NDMTOT20 variables, pending 
               finding documentation of what these totals are.          
              -Invalid date/times in 'MC' record is under investigation.
   Thanks to David Kaplan, Depository Trust & Clearing Corporation, USA.
Change 24.159  Support added for CICS Statistics Intervals option values
VMXGCICI       of TWOHOUR, FOURHOUR, and EIGHTHR.                       
Aug 25, 2006                                                            
   Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.             
Change 24.158  Attempting to use MACRO _VTY30UV to DROP variables caused
EXPDB30V       ERROR: VARIABLE EXCP2305 NOT FOUND; you cannot use that  
Aug 23, 2006   macro to drop variables from PDB.SMFINTRV.  Furthermore, 
               you must use BUILDPDB, BUILDPD3, or ONLINTV to create the
               PDB.SMFINTRV dataset, as only those programs have logic  
               that combines the MULTIDD='Y' observations into a single 
               PDB.SMFINTRV observation; while %INCLUDE of TYPS30 does  
               create a dataset named PDB.SMFINTRV, that dataset will   
               still have multiple MULTIDD='Y' observations.            
               But, you can instead use the EXPDB30V exit member and use
               a DROP statement to drop variables from the summarized   
               PDB.SMFINTRV dataset.                                    
   Thanks to Colin Bowen, CSC, SOUTH AFRICA.                            
Change 24.157  Analysis example to identify all jobs/STCs that allocated
ANALDEVN       a DEVNR range or a DEVICE types, by creating only the    
Aug 23, 2006   TYPE30_D dataset for selected DEVNR/DEVICEes.            
   Thanks to Yaohua Hu, ISO, USA.                                       
Change 24.156  Corrections to reported ANALDB2 errors/omissions:        
ANALDB2R      -"STMT #: 4040 was printed instead of the correct 16448   
Aug 21, 2006   for the statement number.                                
   Thanks to ???, ???, ???                                              
Change 24.155  The CICSBAD dataset added by Change 23.312 could contain 
EXCICBAD       legitimate transactions; the test for PROGRAM='########' 
Aug 21, 2006   previously identified invalid CICS transaction names that
Sep 27, 2007   did not have a program name (i.e., typo'd TRANNAME).     
               However, some sites have chosen to use ######## to make  
               their transaction routing easier, which caused millions  
               of transactions to be output to CICSBAD, when this site  
               wanted them output to CICSTRAN.  MXG's test for EXCICBAD 
                 IF PROGRAM='########' OR                               
                    SUBSTR(TRANFLAG,6,1)='......1.'B  THEN DO;          
               will %INCLUDE the EXCICBAD exit, so you can tailor the   
               code in your EXCICBAD member to decide which, if any,    
               transactions are output to CICSBAD or to CICSTRAN.       
                In this particular case, the site observed that all of  
                their TOR regions' transactions had PROGRAM='########', 
                but they also all had RSYSID NE '00000000'X, so the site
                could use this logic in their EXCICBAD tailoring member:
               IF PROGRAM='########' AND RSYSID NE '00000000'X THEN DO; 
                 OUTPUT _WCICTRN;                                       
               ELSE DO;                                                 
                 OUTPUT _WCICBAD;                                       
                to output real bad to CICSBAD and the rest to CICSTRAN. 
               Sep 27, 2007:                                            
              -And if you DON'T want CICSBAD to be created, but instead 
               want these "bad" transactions output in CICSTRAN, you can
               copy EXCICBAD into your tailoring library and change     
               _WCICBAD to _WCICTRN.                                    
              -And what about that bit test that sends transactions to  
               CICSBAD instead of CICSTRAN, that test for:              
                    SUBSTR(TRANFLAG,6,1)='......1.'B  THEN DO;          
                  It was obscurely documented back in Change xx.yyy:    
                 "When a CICS task is executing on an OPEN TCB, and is  
                  then purged, APAR PQ86971 documents that all of the   
                  clocks are invalid when this happens, and that APAR   
                  adds a new bit to the TRANFLAG field to identify these
                  tasks.  Since the clock values are all wrong, these   
                  transactions are now also output in CICSBAD instead of
                There are 3 normal ways to terminate a CICS task, all   
                using a CEMT SET TASK command or CEKL SET TASK command: 
                  1) Purge this is what is normally called a cancel.    
                     The task is terminated. Task termination occurs    
                     only when system and data integrity can be         
                  2)Forcepurge this is what is normally called a purge. 
                    The task is terminated immediately. System integrity
                    is not guaranteed.                                  
                  3)Kill has more option then a Forcepurge but seems to 
                    have the same effect.                               
                  Both Forcepurge and Kill may crash the CICS region.   
                  Kill may free up a stall CICS region.                 
Change 24.154 -ERROR: VARIABLE THREADTY NOT FOUND if both DB2ACCT and   
ANALDB2R       ASUMDB2A existed in the "PDB" with PMACC03/PMACC04=YES.  
Aug 18, 2006   The PMACC03 and PMACC04 reports require detail data, but 
               the logic incorrectly used ASUMDB2A.                     
              -In addition, references to ASUMDB2P dataset are commented
               out, as that dataset does not (yet?) exist.              
   Thanks to Steve Olmstead, Northwestern Mutual Company, USA.          
Change 24.153  Support for EMC's Centera Mainframe HSM Migrator user SMF
EXCMHMEV       records.  New CMHMEVNT dataset for each recall or migrate
IMACAAAA       with start, end, and elapsed duration, dataset size, and 
IMACCMHM       attributes of the dataset.                               
TYPECMHM       This support is preliminary, as both the contents of the 
VMACCMHM       new SMF record, and how MXG handles the data, may be     
VMXGINIT       changed when user's get their hands on the new product   
Aug 18, 2006   and its SMF data.                                        
VMAC80A        did not protect $VARYINGnn lenmm for the case when lenmm 
Aug 18, 2006   was greater than nn.  While many RACF fields have a true 
Oct 13, 2006   maximum nn (like 44 for DSNAMEs), some fields were INPUT 
               with $VARYING200. because no max was known or documented.
               And 200 was used because SAS V6 was limited to 200 bytes 
               for character variables.  But MXG no longer executes with
               SAS V6, so all of the $VARYING200. are now $VARYING255,  
               and they are all protected if the text exceeds 255, with 
               a message and hex dump on the log printed if the length  
               exceeds MXG's expectation.  Fields protected: RACF263,   
               This was tested in Aug, but VMAC80A was not updated until
   Thanks to Kim Nguyen, National Australia Bank, AUSTRALIA.            
Change 24.151  The _VMINPUT macro, to read z/VM MONWRITE data converted 
VMACVMXA       from it's native RECFM=U to RECFM=VB, did not include the
Aug 18, 2006   IMACVMXA member nor execute the &MACVMXA macro variable. 
   Thanks to Steven Clark, DHL, USA.                                    
Change 24.150  Typo in the KEEP= list for dataset HURN49, and the label 
VMACHURN       statement had HU47BJOB and HU47BSTP, instead of correct  
Aug 17, 2006   names of HU49BJOB and HU49BSTP, added by Change 20.248.  
   Thanks to Colin Bowen, CSC Computer Sciences, SOUTH AFRICA.          
Change 24.149 -New variables in VTCS Subtype 15 are now decoded:        
VMACSTC          STC15CTP='*S-CART*OR*E-CART?'                          
Aug 17, 2006     STC15LRI='HSTRESIDENCY*RECALL OR*CREATE?'              
Aug 21, 2006  -The _VSTCV13 keep list now keeps STC13MRC instead        
               of STC15MRC.                                             
   Rudolf Sauer, T-Systems, GERMANY.                                    
Change 24.148  Variable DATECLN was not converted from the raw record's 
VMACTMS5       cyyddd format, so the julian date of 2004241 printed as  
Aug 17, 2006   104241.  Now, like other TMS dates, DATECLN is converted 
               to yyyyddd format.                                       
                 And if you need to see that as a "real date", you can  
                 use CLNDATE=DATEJUL(DATECLN);                          
                     FORMAT CLNDATE DATE9.;                             
                 and see that 2004241 julian was 28AUG2004.             
   Thanks to DJ Chen, Florida Department of Corrections, USA.           
Change 24.147 -Variable JBAFF in dataset TPMJBAFF was blank when it     
VMACTPMX       should have been populated, and populated when it should 
Aug 16, 2006   not have been; the IF test missing the NOT now is coded: 
                 IF SYSAFF NOT = : TPMXTEST THEN SYSAFF='    ';         
               BELONG, AND THE CODE WAS CORRECTED IN CHANGE 24.199.     
                The two FORMATS in your IMACTPMX must match your SYSPLEX
                and AFFINITY systems, for JBAFF to be correct.  The MXG 
                logic was originally correct, and now is after Oct 5.   
              -Variables UMANUAL, UME, UMB now all contain "MANUAL" in  
               their labels.                                            
   Thanks to Kris Ferrier, State of Washington DIS, USA.                
Change 24.146  The TRANSLATE(TRANSACT,' ','00'x) statement was relocated
VMACTMO2       so both TRANNAME and TRANSACT have those nonprintable    
Aug 15, 2006   characters changed to blanks.  TRANSACT was named from   
               the Landmark DSECT when TYPEMONI was written, but now,   
               with hindsight, I should have use TRANNAME as the name   
               for all Transaction Names.  TRANNAME was added to the    
               MONITASK dataset because CICSTRAN users expected it when 
               they switched to TMON for CICS.                          
   Thanks to Salis Gross Kurdin, Credit-Suisse, SWITZERLAND.            
Change 24.145  Support for optional PRPRTYPE='9901' User Log Record in  
VMACPRPR       Oce's Prisma Print product log records creates new       
VMXGINIT       dataset PR9901 with variable PRPR9901 containing all of  
EXPR9901       the text after ACCOUNT, and variable LEN9901 has the     
IMACPRPR       length of that text.                                     
Aug 15, 2006                                                            
   Thanks to Engelbert Smets, Provinzial, GERMANY.                      
Change 24.144  Reading NDM Log records (instead of SMF format), record  
VMACSMF        error; the OFFTODSN,OFFPACCT,OFFRSACCT offsets did not   
Aug 16, 2006   include +OFFSMF in their calculation (for normal dumped  
               SMF records, OFFSMF=0, so the logic error was missed,    
               until the log-format records were read.                  
              -NDM Logs with a single 13-byte '***NO DATA***' record are
               now detected and deleted in the _LOGSMF macro defined in 
               VMACSMF, but only used by TYPENDML to read //LOGSMF DD.  
              -NDMCPUTM could be wrong and very large, when the VLR data
               section was after the VLS data section, because MXG code 
               expected VLR first; now, the INPUT is reset correctly no 
               matter which order the segments are found.               
               Note: Change 24.160 corrected NDMCPUTM.                  
              -Support for new variables that were added by 4.3 to the  
               NDMCT dataset:                                           
                 NDMCKPI ='CHECKPOINT*INTERVAL'                         
                 NDMCPU  ='CPU TIME*OF STEP*VIA*TIMEUSED'               
                 NDMDBSI ='DBCS*SHIFT-IN*CHAR'                          
                 NDMDBSO ='DBCS*SHIFT-OUT*CHAR'                         
                 NDMRIPCH='INBOUND*OUTBOUND*IP ADDRESS'                 
                 NDMRPOR ='OUTBOUND*PORT'                               
                   In my small number of test records, the new NDMCPU   
                   CPU time was zero, and NDMCPUTM was always missing.  
                   Further investigation is needed.  See Change 24.182. 
              -Perhaps support for 4.5. There is a bit flag in the DMRCT
               DSECT for new fields added in 4.5, but there are no new  
               data fields described in that DSECT, so I believe this is
               all that is required to support NDM/Connect Direct 4.5.  
   Thanks to Rob Hollingum, HSBC, ENGLAND.                              
Change 24.143  Format MGPLOT is added to FORMATS; it is used in ANALDB2R
FORMATS        to generate text lines for some reports.                 
Aug 11, 2006                                                            
Change 24.142 -PDB.TYPE70 variables SMF70Q00-SMF70Q12 values were wrong,
VMAC7072       because they were missing the factor of 100 to convert to
Aug 11, 2006   percentages, and their labels, starting with SMF70Q04 had
               the wrong +n values in the N+n part of the label. Correct
               labels are belos (e.g., SMF70Q08 is the percentage of    
               time when the number of IN-AND-READY ASIDs was between   
               21 and 30 larger than the number of CPUs that were online
               to this z/OS system when this sample was taken):         
                  SMF70Q00='PERCENT*WHEN*IN READY*LE N CP-S'            
                  SMF70Q01='PERCENT*WHEN*IN READY*LE N+1 CP-S'          
                  SMF70Q02='PERCENT*WHEN*IN READY*LE N+2 CP-S'          
                  SMF70Q03='PERCENT*WHEN*IN READY*LE N+3 CP-S'          
                  SMF70Q04='PERCENT*WHEN*IN READY*LE N+4-5 CP-S'        
                  SMF70Q05='PERCENT*WHEN*IN READY*LE N+6-10 CP-S'       
                  SMF70Q06='PERCENT*WHEN*IN READY*LE N+11-15 CP-S'      
                  SMF70Q07='PERCENT*WHEN*IN READY*LE N+16-20 CP-S'      
                  SMF70Q08='PERCENT*WHEN*IN READY*LE N+21-30 CP-S'      
                  SMF70Q09='PERCENT*WHEN*IN READY*LE N+31-40 CP-S'      
                  SMF70Q10='PERCENT*WHEN*IN READY*LE N+41-60 CP-S'      
                  SMF70Q11='PERCENT*WHEN*IN READY*LE N+61-80 CP-S'      
                  SMF70Q12='PERCENT*WHEN*IN READY*GT N+80 CP-S'         
              -PDB.TYPE70 PCTRDYWT, the percentage of time there were   
               more READY asids than NRCPUS (used to estimate latent    
               demand), is calculated from the READY00-READY15 variables
               summing READYnn's for nn's GE NRCPU, but there are only  
               14 READYnn buckets, so PCTRDYWT will always be missing   
               when NRCPUS is more than 14 in your SYSTEM.              
              -New variable PCTRDQWT may be used in place of PCTRDYWT,  
               as it's upper bucket is 80 ASIDs more than your NRCPUS,  
               and is quite easily calculated directly using            
               but PCTRDQWT is counting the IN-and-READY users, whereas 
               the PCTRDYWT was counting the READY ASIDs.               
              -PDB.TYPE70 labels for all of the READYnn variables are   
               corrected to "READY" instead of "IN READY", and          
                  READY15 ='PERCENT*WHEN 15*OR MORE*READY'              
               is now that label.                                       
              -Observations were output in PDB.TYPE70PR for spare IFAs, 
               but my intention was not to output any spare segments, so
               the test  "OR SMF70CIN NE 'CP'"  was removed, and now,   
               only if SMF70ONT NE 0 OR LPARNAME='PHYSICAL' will the    
               segment be OUTPUT in PDB.TYPE70PR.                       
   Thanks to Jim Horne, Lowe's Companies, USA.                          
   Thanks to Andrew Hebden, Barclay's, ENGLAND.                         
Change 24.141  Processing of DB2 data written to GTF was inconsistent,  
UDB2GTF        sometimes failed completely, or sometimes skipped data.  
UDB2GTFA      -The MXG utility UDB2GTFA, for MXG execution under ASCII  
VMACDB2        SAS to convert the 256-byte DB2 GTF records into         
Aug 10, 2006   legitimate complete DB2 SMF records from those itty-bitty
               pieces, only worked for the first record. Revisions      
               correct that problem, and added more debugging facilities
               to ease validation.                                      
              -The UDB2GTF utility for EBCDIC SAS execution was fine;   
               the only change was to enhance its debugging messages.   
              -For GTF input, VMACDB2 was resetting OFFSMF back to zero 
               too early for the 100-1 and 101-1 records, causing the   
               triplets for QBGN, QTGS, and QLES (DB2STATS) and for     
               QXPK, QBAC, QTXA (DB2ACCTP only) to be incorrect, which  
               could cause those variables to either be missing or to   
               be horiffically wrong, but with no error in either case. 
               Those triplets are now correctly input with OFFSMF=12 for
               GTF, and OFFSMF is now correctly reset only after all of 
               the triplets have been input.                            
              -For SMF or GTF input, VMACDB2 INPUT the QLES triplet from
               the wrong (preceding) location, causing those  statistics
               variables to be incorrect.  The QLExxxxx variables are   
               now also labeled.                                        
   Thanks to Thomas Heitlinger, FIDUCIA IT AG, GERMANY.                 
Change 24.140  Support for optional user-created CICS fields with       
UTILEXCL       The UTILEXCL member must be used to create IMACEXCL      
VMAC110        and the comment block in each of the IMACICU1/IMACICU2   
Aug  9, 2006   members must be EDITED for those variables to exist.     
Aug 10, 2006  -On Aug 9, I noticed that these optional variables        
               created by a user-created CMODNAME='MQSeries' segment,   
               could be kept in CICSTRAN, when they shouldn't have been 
               (they were in the "compiler faker" block, not used for   
               optionals).  They were removed from the faker block      
               today, today when John saw them present and wanted to    
               know why they were all blank; quite timely!              
   Thanks to Richard Hilber, Allgemeines Rechenzentrum GmbH, AUSTRIA.   
   Thanks to John Ferguson, Washington Mutual, USA.                     
Change 24.139  If there were no observations in TYPETALO but SPINTALO   
ASUMTALO       had observations, a strange syntax error was generated   
Aug  8, 2006   about  (LOWTIME='141515...'DT) being invalid due to a    
               PUT statement without DATETIME21.2 format.               
                 (The actual error occurred in ANALCNCR text, but the   
                  call was from ASUMTALO, which needed the correction.) 
   Thanks to Edward M. Burns, Blue Cross Blue Shield of Nebraska, USA.  
Change 24.138  Incorrect inclusion of DB2PARTY='R' Rollup observations  
ANALDB2R       in creating accounting summary report caused average     
Aug  4, 2006   values to be wrong; the R record was counted as a PLAN   
               (doubling the denominator when there was one execution). 
               Also, the in-DB2 elapsed time could be larger than total 
               elapsed time: ELAPSTM is missing in the R record, so the 
               average elapsed was one half the base record's elapsed   
               duration eg: ( 4  +  0 )/2 = 2 hr. avg total elapsed.    
               But both had QWACASC in-DB2-elapsed time which were then 
               averaged eg: ( 3  +  2 )/2 = 2.5 hr avg in-DB2 elapsed!  
               Clearly, including the elapsed and in-DB2 time from the  
               Rollup record, and counting it as a plan, created invalid
               average values in the summary reports; now, for Rollups, 
               the count of plans is not incremented, and QWACASC is set
               to zero in the sum, so the average class 2 elapsed in-DB2
               time reflects the base transaction(s).                   
   Thanks to Yaohua Hu, Insurance Service Office, USA.                  
   Thanks to Issac Lukach, Insurance Service Office, USA.               
Change 24.137  MXG Variable PRODUCT in the PDB.TYPE70 dataset identifies
VMACSMF        "RMF" or "CMF=." as the creator of the 70-79 SMF records.
Aug  3, 2006   To identify CMF from RMF records in case both are being  
               created, you could test PRODUCT=:'CMF' in each of the    
               EXTY7xxx exit members, but you can alternatively use this
               logic to input the RMF Product Segment header and skip   
               the CMF records:                                         
               %LET MACFILE=                                            
                   IF 70 LE ID LE 78 THEN DO;                           
                     INPUT @25+OFFSMF OFFRMFP &PIB.4.   /*SMF70PRS*/    
                           @29+OFFSMF LENRMFP &PIB.2.   /*SMF70PRL*/    
                           @31+OFFSMF NRRMFP  &PIB.2.   /*SMF70PRN*/    
                     INPUT @OFFRMFP+28  SMF70RV6 &PIB.2. @;             
                     IF      SMF70RV6='........1.......'B THEN          
                     ELSE IF SMF70RV6='.........1......'B THEN          
                     IF PRODUCT=:'CMF' THEN DELETE;                     
   Thanks to Xiaobo Zhang, CheckFree, USA.                              
Change 24.136  When DB2 V8 option UIFCIDS=YES is used, many text fields 
VMACDB2        in DB2 SMF records that used to contain EBCDIC characters
VMACDB2H       will instead contain ASCII text, which, when INPUT by MXG
Aug  4, 2006   with $EBCDICnn INFORMAT, creates unprintable text data.  
               IBM puts  %U  in the DSECTS for these ASCII fields, and  
               in DSNDQWHS %U is described as UniCode UTF-8, but UTF-8  
               is just simple ASCII text.  A few fields with ASCII text 
               were already supported in MXG, but with UIFCIDS=YES on,  
               all of these variables were found to contain ASCII text: 
                 %U Header variables     QWHCAID  QWHCOPID              
                 %U Package variables    QPACCOLN QPACLOCN QPACPKID     
                 %U Location variables   QLACLOCN QLSTLOCN              
                 %U in DSNDQMDA only     QMDALOCN                       
                 %U nowhere, but ASCII:  QWACNID                        
               Except for QWACNID, all above have %U in their DSECT and 
               have offsets to their 128-byte extended area, so they now
               must be increased to LENGTH $128. QWACNID was found with 
               ASCII text, but it is not listed as %U in DSNDQWAC nor   
               DSNDWMSG, and it has no extended area documented, so it  
               remains unchanged at LENGTH $16.                         
               IBM sets QWHSFLAG='80'x if the %U fields contain Unicode,
               and MXG sets variable DB2UNICD='Y' (now kept in DB2ACCT  
               and DB2ACCTP) to conditionally INPUT these fields as     
               EBCDIC or ASCII, so the resultant variable will always   
               contain printable characters.                            
               While these %U variables must be LENGTH $128, MXG's sets 
               COMPRESS=YES to compress out those blanks, and so there  
               should not be any increase in disk space required.       
               This change supports all of the %U fields in the SMF 100 
               (Statistics) and SMF 101 (Accounting) records, and in the
               DB2 Header for all DB2 SMF records, but there are many   
               other %U fields in the DB2 Trace IFCIDS that are written 
               in SMF 102 records; these will also eventually be fixed, 
               initially on an I-have-this-trash-in-this-IFCID basis.   
   Thanks to John Hammond, Texas State Comptroller of Public Accts, USA.
Change 24.135  XAM variables from the MTRSYS segment, starting with the 
VMACXAM        SYSTMID (system) variable were all incorrect; the +2 that
Jul 30, 2006   skip 2 bytes before SYSTMID was INPUT do not exist, and  
               that statement was removed by this change.  These are the
               variables that were wrong:                               
                 CPUSTNBX CPUSTNBY DEDCNT   IOPCNT   LPARCAF            
                 VL3CAF   VL3CFGCT VL3COUNT VL3CPNAM VL3DBCT            
                 VL3MNAME VL3RESVD VL3STNBY                             
   Thanks to Mike Salyer, Citigroup Technology Infrastucture, USA.      
   Thanks to Bob Bates, Citigroup Technology Infrastucture, USA.        
Change 24.134  If USEREPRT=COMPAT or USECNTRL=COMPAT was specified, no  
VMXGRMFI       values were created in any workloads.  Change 24.079 had 
Jul 30, 2006   removed that option, but a test for this option was left 
               that caused the deletion of all TYPE72GO obs.  Only with 
               MPRINT turned on was it revealed that the statement      
               IF SYSTEM NE: 'COMPAT' THEN DELETE; was in the generated 
               code, so the code assumed that COMPAT was a system name. 
               Now if COMPAT is specified, and MXGWARN message will be  
               printed indicating that COMPAT is no longer supported,   
               and processing then continues.                           
   Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.             
Change 24.133  The IMACKEEP include was relocated so it is now after the
ASUMMIPS       macro definitions, so they can be changed.  And the MIPS 
Jul 30, 2006   factor's comments are revised to now read:               
           CONVERSION FACTOR TO GET MIPS FROM MSU.                      
   Thanks to Wayne Bell, UniGroup, USA.                                 
Change 24.132  Analysis of DD segment counts was revised to use "new"   
ANALDDCN       MXG exit facility, instead of the old IEBUPDTE technique 
Jul 30, 2006   to tailor the analysis program.                          
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.131  INPUT STATEMENT EXCEEDED RECORD LENGTH error because the 
UTILEXCL       Omegamon/Candle type 110 dictionary entry is truncated if
Jul 30, 2006   the CMODHEAD field name of the last of their optional    
               fields is not 8 bytes.  The dictionary entry is supposed 
               to always be fixed (MCTSSDRL=26), but in this case, the  
               last field name was OMEGDB2 and the last dictionary entry
               was only 25 bytes.  MXG now tests for the field length   
               and protects for the invalid dictionary record.          
   Thanks to Burt.Allen, Harris County ITC, USA.                        
Change 24.130  Support for Oracle was revised to support only current   
VMACORAC       versions, so I could eliminate the test for Subsystem.   
Jul 22, 2006   Previously, if Subsystem ID changed but MXG's macro was  
Dec 19, 2006   not updated, almost all variables were missing.  These   
ANALORAC       pre-V9 variables have always been missing and are now    
               removed (not KEPT) from the ORACLE dataset:              
                 SWTCHCNT TCBADDR                                       
              -Dec 19, 2006: ANALORAC updated to remove references to   
               the variables that were DROPed.                          
   Thanks to Huug Tempelmans-Plat, CORUS Group, ENGLAND.                
Change 24.129  Support for up to 10 CICS ABCODE values in PDB.ASUMUOW.  
VMXGUOW        The ASUMUOW program logic keeps three sets of ten arrays 
Jul 19, 2006   one for transaction name, one for APPLID, one for ABCODE,
               which can optionally be kept by adding a KEEP statement  
               in the TRANUOW macro in your tailored IMACUOW member.    
               The base variables are TRAN1-TRAN10, PATH1-PATH10, and   
               new ABEND1-ABEND10.                                      
               By default, the first blank ABENDn value is kept in the  
               ABCODE variable, but you can alter the logic in TRANUOW  
               as needed.                                               
   Thanks to Stan Adriaensen, Axa-Tech, BELGIUM.                        
Change 24.128  The new ZIP variables from SMF 30s were not kept in the  
ASUMDB2A       PDB.STEPS and PDB.JOBS variables, but are now added to   
BUIL3005       both datasets. And, the DB2ACCT zip variables are now    
BUILD005       summarized in ASUMDB2A.                                  
Jul 22, 2006                                                            
   Thanks to Jim Kovarik, AegonUSA, USA.                                
Change 24.127  Support for fourth GEPARMKY='4D'x and GEPARMKY='4A'x adds
IMAC6ESS       optional variables ESSMAIL5 and ESSMACC1 respectively to 
VMAC6          both TYPE6 and TYPE57 datasets. Also, the KEEP= list for 
VMAC57         TYPE57 was updated to list all of the possible IMAC6ESS  
Jul 19, 2006   variables, which had not been updated since 2004.        
   Thanks to Dr. Alexander Raeder, ATOSORIGIN, GERMANY.                 
Change 24.126  Variables NDMPRCNM NDMPRCNO NDMSTEP NDMUNODE are now kept
VMACNDM        in the NDMFI dataset, so that NDMFI can be matched to the
Jul 16, 2006   NDMCT record to obtain the full file name.               
   Thanks to Mary Lou Arredondo, Federal Reserve, USA.                  
Change 24.125  ZIP variables were not kept in TYPE72GO dataset; IBM had 
VMAC7072       used different names in early and later documentation,   
Jul 13, 2006   and I was awaiting a reply as to which set was actually  
               going to appear in the SMF manual, and I expected their  
               reply would trigger my revision of names, but no reply   
               was received, and I forgot to go back and add the names  
               that I had started with.  These are the new variables    
               that are now kept in TYPE72GO dataset for zip data:      
                R723NFFS CPUZIETM CPUZIPTM R723CIFA R723CIFC R723CSUC   
                R723CSUP R723SUCU R723SUPD R723SUPU ZIEUNITS ZIPUNITS   
               But the error was mine, not IBMs; my ESP contact had said
               that because it was "only a documentation/naming query,  
               that I should not expect a fast reply".                  
   Thanks to Scott Wigg, USBank, USA.                                   
Change 24.124 -Warnings ZDATE and ZTIME in DROP/KEEP/RENAME not being   
VMXG70PR       referenced for the FINL70LP dataset because the call to  
Jul 13, 2006   include IMACZDAT to create them was missing.  That also  
               caused those variables to NOT be populated in ASUM70LP,  
               and also impacted variable SHIFT.                        
              -All four datasets default output token are now consistent
               (all use the _LSUxxxx macro token, which has the same    
               default value, so this should be a transparent change,   
               but now the actual output agrees with the revised doc in 
               the comments.                                            
   Thanks to Paul Gillis, Pacific Systems Management Pty., AUSTRALIA    
   Thanks to Ken Jones, Xwave, CANADA.                                  
Change 24.123  The debugging PROC PRINT DATA=R73HOUR; statement was     
VMXGRMFI       removed.                                                 
Jul 13, 2006                                                            
   Thanks to Tom Kelman, Commerce Bank - Missouri, USA.                 
Change 24.122  Variable R85FLGS is now decoded for the TYPE85RQ,TYPE85TP
FORMATS        datasets in new R85ST74F,R85ST78F variables by formats   
VMAC85         $MG085DM and $MG085TM for optical disk and tape mounts:  
Jul 13, 2006       VALUE  $MG085DM                                      
                   '80'X='80X:MOUNT NOT REQUIRED'                       
                   '40'X='40X:FLIP DISK REQUIRED'                       
                   '20'X='20X:MOUNT ON EMPTY'                           
                   '10'X='10X:DISMOUNT REQUIRED'                        
                   VALUE  $MG085TM                                      
                   '80'X='80X:MOUNT NOT REQUIRED'                       
                   '40'X='40X:MOUNT ON EMPTY'                           
                   '10'X='10X:ATL TAPE USED'                            
                   '20'X='20X:DISMOUNT REQUIRED'                        
   Thanks to Betra Reeves, Infocrossing, USA.                           
Change 24.121  Support for IFCID=350, the SQL statement produced by the 
VMAC102        parser written during the bind of dynamic or static SQL; 
Jul  7, 2006   this IFCID can be activated with Trace Class 32 for 350. 
Jul 13, 2006   The IFCID=350 replaces the IFCID=63 record because the   
               SQL text in the IFCID=63 record was limited to 5000 bytes
               and any additional text was truncated.  Instead now, DB2 
               writes multiple IFCID=350 records with 5000 bytes each if
               the SQL text exceeds 5000 bytes.                         
   Thanks to Christian Vandenbossche, Societe Generale, FRANCE.         
====== Changes thru 24.120 were in MXG 24.05 dated Jul  3, 2006=========
Change 24.120  Internal utility used only in MXG QA revised to exeute on
UTILVREF       ASCII or EBCDIC systems; previously, a manually edited   
Jul  2, 2006   version was required to run on ASCII.                    
Change 24.119  Typos introduced in Change 24.064 had _WKBLD instead of  
WEEKBL3D       _WEEKBLD for the new datasets, causing 180 syntax errors.
Jul  1, 2006                                                            
   Thanks to Art Hunter, Penn Mutual, USA.                              
Change 24.118  The INTERVAL=DURSET default is restored in ASUM70PR, as  
VMXG70PR       it was in MXG 24.03 and earlier, so PDB.ASUM70PR/ASUM70LP
Jul  1, 2006   will again have the same STARTIME as RMFINTRV when both  
               have DURSET defaults. I changed the default in MXG 24.04 
               to QTRHOUR because with DURSET, the ASUMCEC/ASUMCELP     
               datasets sometimes had wrong STARTIME/SMF70GIE/DURATMs,  
               but 24.04 was needed for its zIIP engine support.  Now,  
               with the other enhancements in 24.111 to support SYNC59  
               along with DURSET, VMXG70PR has again been revised so the
               original MXG default can be restored safely.             
               Defaults are: INTERVAL=DURSET,CECINTRV=HOUR.             
Change 24.117  Variables IFAUNITS IFEUNITS CPUIFATM and CPUIFETM are now
TRND72GO       created in the TREND.TRND72GO dataset.                   
Jun 30, 2006                                                            
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANDAD.               
Change 24.116  z990/2084 CPUs don't have 'IFA' in LPARNAME='PHYSICAL'   
VMAC7072       segments, which caused NRIFACPU count in LPAR datasets   
VMXGINIT       (TYPE70PR,ASUM70PR,ASUMCEC) to be zero. The IFA variables
Jun 29, 2006   in System datasets TYPE70 and RMFINTRV is fine, because  
               they count the IFAs assigned to each SYSTEM, but RMF 70s 
               for z990s do not contain the number of installed IFAs in 
               your CEC (later hardware/software does).  So, if you have
               IFAs on z990s, you will have to tell MXG how many IFAs   
               you have, by setting a text value in new macro variable  
               with a %LET statement, in IMACKEEP or //SYSIN DD stream: 
               - If you have the same number of IFA engines in all of   
                 your CECs, then you would use this statement:          
                    %LET CECIFANR= %QUOTE( CECIFANR=1; );               
                 which stores the text "CECIFANR=1;" (which is a SAS    
                 statement to set variable CECIFANR to 1), in the macro 
                 variable &CECIFANR.  When executed, CECIFANR=1 causes  
                 MXG to change SMF70CIN='ICF' to SMF70CIN='IFA' in that 
                 many LPARNAME='PHYSICAL' segments in each interval;    
                 these are output in the PDB.TYPE70PR dataset.          
               - If you have different numbers of IFAs in different CECs
                 you will need to tell MXG how many IFAs you have on    
                 each of your CECs, by CECSER, using this logic:        
                    %LET CECIFANR =                                     
                      %QUOTE (                                          
                         IF      CECSER='ABCD' THEN CECIFANR=1;         
                         ELSE IF CECSER='1234' THEN CECIFANR=2;         
                 so that MXG will change 'ICF' to 'IFA' in the correct  
                 number of TYPE70PR observations.                       
                -Once you have created PDB.TYPE70PR with this change,   
                 you can rerun your %INCLUDE SOURCLIB(ASUM70PR) program 
                 to create the corrected ASUM70PR/ASUMCEC/etc summaries.
                -VMXGINIT GLOBALs macro variable CECIFANR with blanks.  
   Thanks to Jan Bigalke, Allianz, GERMANY.                             
Change 24.115  CICSTRAN variable WTUNIOTM was not kept when UTILEXCL was
UTILEXCL       executed; the logic to calculate it was correct, but the 
Jun 28, 2006   added code that is needed in UTILEXCL to KEEP a cacluated
               variable was missing in UTILEXCL.                        
   Thanks to Robert Blackburn, Dominion Resources, USA.                 
Change 24.114  The "bucket" variables S94ADV00-S94ADV95 with the number 
ASUM94         of volumes containing 0-5 pct, 5-10, etc, are shifted so 
VMAC94         their values match S94AD00-S94AD95, and labels now are:  
Jun 28, 2006     S94ADV00='VOLUMES*CONTAINING*0-5PCT*ACTIVE'            
               Those distribution values were incorrectly SUMmed in the 
               ASUM94 program; now, their MAX value is output in the    
               summary dataset.                                         
   Thanks to Hugh Lapham, Royal Canadian Mounted Police, CANADA         
Change 24.113  The DTF segment was changed, causing invalid data values 
VMACOMCI       for DTFCKLnn and DTFCNTnn variables (but no error message
Jun 27, 2006   was printed.  Segment increased from 140 to 172 bytes,   
               which now is the expected length.                        
   Thanks to Karl B. Schweitzer, State Street Bank, USA.                
   Thanks to Richard Schwartz, State Street Bank, USA.                  
Change 24.112  Variable RESIND/SMF77DFG, a bit map, is now decoded into:
VMAC77           RESIND00='RESOURCE*STILL IN*CONTENTION?'               
Jun 27, 2006     RESIND01='SCOPE OF*SYSTEMS(A)*OR SYSTEM(B)?'           
                 RESIND02='OWNER*HAD EXCLUSIVE*OR SHARED?'              
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.111  RMFINTRV is enhanced to support SYNC59 if INTERVAL=DURSET
VMXGRMFI       is specified, provided that your IMACRMFI member _DURSET 
VMXG70PR       logic does NOT alter the value of STARTIME (i.e., the MXG
VMAC7072       default IMACRMFI is used).  With INTERVAL=DURSET the     
VMXGINIT       STARTIME/SMF70GIE timestamps in RMFINTRV, ASUM70PR,      
Jun 27, 2006   ASUM70LP, ASUMCEC, and ASUMCELP will be the original time
Jun 29, 2006   values of your RMF data, and you can now use SYNC59= in  
Jul  1, 2006   both RMFINTRV and ASUM70PR members to shift times so the 
               times in the summary datasets are "exact and pretty".    
Change 24.110  Support for z9BC processor CPUTYPE='2096'x, COMPATIBLE if
FORMATS        your z/OS is 64-bit.  If your z/OS is NOT 64-bit, this   
VMAC7072       change is required so that variables SMF70CPA, which     
VMXGRMFI       becomes CECSUSEC, the SU_SEC value of the hardware CEC,  
Jun 27, 2006   will be set by table lookup in the MG070CP format, which 
               was also updated by this change to contain the 2096 SUs. 
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.          
====== Changes thru 24.109 were in MXG 24.04 dated Jun 22, 2006=========
Change 24.109 -ASUMTAPE enhancement for MXGTMNT with IBM Volume Mount   
ASUMTAPE       Exit enabled now populates these job-level variables:    
               from the first-volume mount, which goes thru that exit   
               and is captured by MXGTMNT, into subsequent multi-volume 
               mounts, that do not go thru IBM's exit, and thus are not 
               captured by MXGTMNT.  This enhancement populates the job 
               variables, but the TAPMNTTM (MXGTMNT monitor mount time  
               duration) will still be missing in the second and later  
               multi-volume mounts.  However, the new TOTMNTTM added by 
               Change 24.102, created from MAX of the SYSLOG or MXGTMNT 
               mount delay, is populated for these multi-volume mounts, 
               so the new BEGTMNT and ENDTMNT datetime values should now
               be used for the start and end times of mount events.     
               The SYSLOG mount time is earlier than the mount start the
               MXGTMNT monitor captures, and the SYSLOG mount verifiy is
               later than the MXGTMNT end time, so the new TOTMNTTM is  
               a more accurate measure of tape mount delay to each job. 
              -The SORT order of PDB.ASUMTAPE is changed                
                 from      BY  DEVNR DESCENDING EVENTIME;               
                 to        BY  DEVNR EVENTIME;                          
               but as the expected SORT order in WEEKBLD/MONTHBLD is    
                 just      BY  DEVNR                                    
               the change from DESCENDING to ASCENDING order should have
               no impact and is the more righteous order, anyhow.       
              -Note that the IBM Volume Mount Exit still misses mounts  
               issued by some programs: DFHSM, OPC, and DMS jobs have   
               mounted tapes that MXGTMNT did not see in the IBM exit,  
               and many of those missed mounts created a type 21 record 
               with a blank volume serial, and these missed do not have 
               the standard SYSLOG mount messages.  But with those few  
               exceptions, this iteration of the ASMTAPEE/MXGTMNT       
               monitor and ASUMTAPE summary program captures all        
               possible IBM controlled tape mounts, to virtual or real  
               devices, and populates all possible job-related variables
               in ASUMTAPE.                                             
              -VMACTMNT correction; SYSLOG records with INVALID MSGID   
               notes were due to incorrect processing of the IEC235D    
               WAITING FOR VOLUMES message, so those events were not    
               output in TYPESYMT dataset.  However, as the IEC235D     
               message does not contain a DEVNR, it cannot be stored    
               in the PDB.ASUMTAPE dataset.                             
   Thanks to Normand Poitras, IBM Global Services, CANADA.              
   Thanks to Paul Naddeo, FISERV, USA.                                  
Change 24.108  Variable TSUDRECD and TSUDXMDA, Datagrams Received/Sent  
VMAC119        were incorrectly read as 4-bytes, but they are documented
Jun 22, 2006   as 8 byte binary fields.                                 
   Thanks to Al Smye, IBM Canada at PWGSC, CANADA.                      
Change 24.107  Variable CPUCEPTM is now kept in PDB.STEPS and PDB.JOBS; 
BUILD005       it was already included by IBM in CPUTCBTM, but should   
BUIL3005       have been kept when created, since BUILDPDB intends to   
Jun 22, 2006   keep all of the CPU time component variables.            
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.106  Heuristic revisions to calculation of WAITTOTM total wait
VMXGUOW        time of the constructed PDB.ASUMUOW event; the original  
Jun 22, 2006   estimate included WTDISPTM and WTLMIOTM but data suggests
               those wait durations are overlapped with other delays.   
               The total count of wait events WAITTOTL was also revised.
                 And RCT time should not be included; consider the MRO  
                 TOR/AOR/DOR combination; the transaction starts in the 
                 TOR, moves to AOR, then moves to DOR.  While the tran  
                 is not in TOR, the TOR CICSTRAN still clocks RCT wait, 
                 even while the AOR may be waiting on something else.   
   Thanks to Hugh Lapham, Royal Canadian Mounted Police, CANADA         
   Thanks to Tom Kelman, Commerce Bank - Missouri, USA.                 
Change 24.105  Corrections, enhancements for ASUM70PR zIIP and zAAPs.   
ASUM70PR      -If you had more than one IFA or more than one ZIP, the   
VMXG70PR       counts NRIFACPU/NRZIPCPU and uptimes IFAUPTM/ZIPUPTM     
VMXGDUR        in PDB.ASUM70PR and PDB.ASUMCEC summary datasets were    
Jun 20, 2006   wrong, but all other IFA/ZIP CPU times were summarized   
Jun 22, 2006   correctly, and all of the individual LPAR data values    
               (LPnXXXX variables in PDB.ASUM70PR/ASUMCEC datasets, and 
               all of PDB.ASUM70LP and PDB.ASUMCELP datasets) were fine.
              -SYNC59 logic (for ex-MICS sites!) was imperfect and did  
               not always create the expected shifted exact datetime.   
              -Note: See Change 24.118, which reversed the change in the
               default for INTERVAL:  The discussion is correct, but    
               the default was only changed in 24.04, then restored to  
               the original INTERVAL=DURSET in MXG 24.05.               
              -The INTERVAL=DURSET default for the summary interval for 
               PDB.ASUM70PR and PDB.ASUM70LP datasets only works if the 
               _DURSET macro does NOT change the value of STARTIME.  If 
               the value is changed, there is no way that I can tell the
               desired interval, and the logic to build the             
               PDB.ASUMCEC/ASUMCELP datasets requires knowledge of their
                 DURSET says to use the _DURSET macro definition in     
                 the IMACRMFI member to redefine the STARTIME value,    
                 but if you do change STARTIME therein, I cannot tell   
                 what summary interval you wanted, and if you leave     
                 STARTIME unchanged (MXG's IMACRMFI default) I still    
                 can't tell what is your minimum RMF interval.          
                 The DURSET can still be used to create PDB.ASUM70PR    
                 and PDB.ASUM70LP datasets with their original STARTIME 
                 values, but the PDB.ASUMCEC and PDB.ASUMCELP datasets  
                 may not be completely valid.  It may be possible to    
                 figure out a way to safely use DURSET and still have   
                 the correct DURATM values in ASUMCEC, but for now the  
                 safe resolution is to require you to specify the       
                 INTERVAL= and CECINTRV= values in your ASUM70PR member 
                 and then I can build all four datasets without errors. 
              -Internal VMXGDUR invocations invoke SYNC59=YES only for  
               the ASUM70PR/ASUM70LP creation; the second invocations   
               for ASUMCEC/ASUMCELP specify SYNC59=NO because times have
               already been shifted.                                    
              -Change:  Variables IFAWSTTM and ZIPWSTTM are now set to  
               a missing value in the PDB.ASUM70PR/PDB.ASUMCEC datasets 
               as they are overlapped wait times across all LPARs that  
               had an IFA or a ZIP, and really are meaningless totals.  
              -LPMSUHR was actually per second rather than per hour,    
               not fixed until Jun 22.                                  
              -LPCTBY and LPCTOV were wrong in PDB.ASUM70LP as they were
               not divided by LPARCPUS.                                 
              -Enhancement:  Variables NRIFACPU and NRZIPCPU are added  
               to the PDB.ASUM70LP and PDB.ASUMCELP dataset, calculated 
               from IFAUPTM or ZIPUPTM divided by DURATM.               
              -Some Labels and Formats were revised, including remvoal  
               of *PCT from the Current and Initial SHARE WEIGHTs.      
              -This change has been extensively tested but only with Z9 
               processors that populate SMF70CIN.  There may still be   
               a problem counting IFAs on earlier hardware that did not 
               populate SMF70CIN.                                       
              -VMXGDUR:  Variable MXGDURTM is created/dropped for time  
               intervals and used to reset SMF70GIE after STARTIME has  
               been SYNC59'd/FLOORed back to start of final interval.   
              -Jun 22: Variables LPSHARE, LPSHARC, TOTSHARE, TOTSHARC   
               were sometimes incorrect but the LPnSHARE/LPnSHARC values
               were correct.                                            
              -SMF70LAC was wrong (zero) in PDB.ASUM70PR and PDB.ASUMCEC
               datasets (but LPnLAC values were valid for all LPARs).   
               Now, the LPnLAC values are summed to create the total of 
               the 4-hour Average MSU values back into SMF70LAC.  But   
               SMF70LAC isn't an LPAR variable; it comes from the "this 
               system" segment of the TYPE70 record, and while it is    
               always valid in per-system TYPE70 & RMFINTRV datasets,   
               in the LPAR data in PDB.TYPE70PR, SMF70LAC is non-zero   
               ONLY in the "this system" observations, so this is just  
               one more variable that requires your ASUM70PR program to 
               read the PDB.TYPE70PR with data from ALL of your SYSTEMs 
               to create correct data in the CEC-level summary datasets 
               PDB.ASUMCEC and PDB.ASUMCELP.                            
   Thanks to Nathan Loewenthal, CitiGroup, USA.                         
   Thanks to Douglas C. Walter, CitiGroup, USA.                         
   Thanks to Michael Salyer, CitiGroup, USA.                            
   Thanks to Brent Turner, CitiGroup, USA.                              
   Thanks to Tom Koelle, CitiGroup, USA.                                
   Thanks to Hugh Lapham, Royal Canadian Mounted Police, CANADA         
   Thanks to Tom Kelman, Commerce Bank - Missouri, USA.                 
   Thanks to Deborah L. Soricelli, CIGNA, USA.                          
   Thanks to Ray Dunn, CIGNA, USA.                                      
Change 24.104  BMC CMRDETL data file is created by their CMRCMPW program
TYPE110J       but the output format is determined by a control card.   
TYPEMVCI       When FORMAT=CMR is specified, the output format is the   
Jun 19, 2006   decompressed T6E record that MXG's TYPEMVCI processes.   
               When FORMAT=2.2 or FORMAT=2.2Y is specified, the output  
               format is an SMF 110 record, but written as RECFM=U that 
               does NOT contain valid BDW/RDWs, and instead has only a  
               4-byte record length field; this is the old "DOS JOURNAL"
               type 110 format, which is processed by MXG's TYPE110J.   
   Thanks to Pat Perecca, Pershing, USA.                                
Change 24.103  Variable QWHCCV was misspelled in READB2 as QWHCCCV,     
ADOCDB2        which caused selection by CORRID to fail.  The variable  
READDB2        was also misspelled in ADOCDB2 documentation.            
Jun 17, 2006                                                            
   Thanks to Julain Smailes, Experian, ENGLAND.                         
Change 24.102  Documentation:  PDB.ASUMTAPE will have zero observations 
ASUMTAPE       if you do not have any observations in SYSLMNT dataset.  
Jun 15, 2006   You must install ASMTAPEE (MXGTMNT) monitor at ML-38 or  
               later, which captures the SYSLOG mount information, now  
               required by the ASUMTAPE logic to create PDB.ASUMTAPE.   
              -New variables BEGTMNT, ENDTMNT, the begin and end times  
               of each tape mount event, and TOTTMNTM, total duration of
               the tape mount are created:                              
                 BEGTMNT is SYLMTIME (SYSLOG Mount Start), which is     
                         usually fractions of a second earlier than the 
                         TMNTTIME when MXGTMNT saw the mount start, but 
                         TMNTTIME is used if SYLMTIME is missing.       
                 ENDTMNT is SYL5TIME (SYSLOG IEC705I Label Written) that
                         is usually fractions of a second later than the
                         TENDTIME when MXGTMNT saw the mount end, but   
                         TENDTIME is used if SYL5TIME is missing.       
                 TOTMNTTM=ENDTMNT-BEGTMNT, the mount delay to the job.  
Change 24.101  Flag variable FSRFALT='WRITTEN*IN*DUPLEX*MODE?' is added 
VMACHSM        to the HSMFSRTP dataset.                                 
Jun 14, 2006                                                            
   Thanks to Michael E. Friske, Fidelity Systems, USA.                  
Change 24.100  Utility to get the ENGINE type of a SAS data library was 
VGETENG        revised to use PROC SQL instead of VGETOBS, to eliminate 
Jun 14, 2006   the annoying MXGWARN that MXGENG datasets doesn't exist. 
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.099  Format MG116TY for SMF 116 MQSeries type was updated to  
FORMATS        add 0:INTERNAL TASK and 8:IGQ AGENT values, and to revise
Jun 14, 2006   so now 2:BATCH OR TSO.                                   
   Thanks to Scott Barry, SBBWorks, Inc, USA.                           
Change 24.098  Support for the DCE segment in RACFTYPE 301 segment will 
VMAC80A        populate TOKDCE variable in the many events that can     
Jun 14, 2006   have a DCE segment.                                      
   Thanks to Colin Wessels, Unicible, SWITZERLAND                       
   Thanks to Pierre Beda, Unicible, SWITZERLAND                         
Change 24.097  More than six RACFTYPE=42 CLASS NAME segments caused MXG 
VMAC80A        to get INPUT STATEMENT EXCEEDED error, the "TRUNCATED    
Jun 13, 2006   RECORD FOUND" that was added by Change 24.021.  This     
               change added protection to skip over extra segments for  
               RACFTYPE 33, 42, and 43 segments.                        
   Thanks to Michael Yuan, University of California Office of Pres, USA.
Change 24.096  Revised STK Exit UX01 protects a local UX01 exit that    
ASMHSCEX       does not save registers and status.  This enhancement is 
Jun 13, 2006   for sites that specify SYSPARM(Y) to include their local 
               UX01 exit in our link-edit step.                         
Change 24.095  PDB.ASUM70LP variables LPCTBY LPCTOV PCTLPBY PCTLPOV     
VMXG70PR       were always missing values because the DURATM=SYSDUR     
Jun 10, 2006   statement was mis-located, and LPARDUR for PHYSICAL LPAR 
               was zero, now is set to DURATM*NRPHYCPS.                 
   Thanks to Steve Olmstead, Northwestern Mutual Company, USA.          
Change 24.094  Support for APAR OA12857 which adds PDSE Caching stats to
VMAC1415       the type 14/15 SMF records, with these new variables:    
Jun  9, 2006     SMF14DRD ='PDSE*DIRECTORY*READ*REQUEST*COUNT'          
                 SMF14MCE ='PDSE*MEMBER*CACHE*ELIGIBLE*COUNT'           
                 SMF14MRD ='PDSE*MEMBER*READ*REQUEST*COUNT'             
                 SMF14MST ='PDSE*MEMBER*CACHE*STOLEN*COUNT'             
               But see Change 24.196; it is required to avoid ABENDs.   
Change 24.093  New variables added to EDALOGOF dataset:                 
VMACEDA           EDACOMPL='COMP'                                       
Jun  6, 2006      EDAOFA40='FULL*ACCOUNT*NUMBER'                        
                  EDAPRTY ='PRIORITY'                                   
   Thanks to Andreas von Imhof, Rabobank, THE NETHERLANDS.              
Change 24.092  z/OS 1.8 support (COMPATIBLE).                           
FORMATS       -TYPE30 new EXSRMERR flag variable if SRM is unable to    
VMAC108        return the SMF30AIx and SMF30EIx variables, and the      
VMAC30         EXCPERR flag for over 4 Billion EXCP logic was revised.  
VMAC7072      -SMF30MLS new value 10 decoded by MG030ML format.         
VMAC71        -TYPE70 new variables:                                    
Jun  5, 2006     SMF70POM='PLANT*CODE*OF*MANUFACTURE'                   
Jun 22, 2006  -TYPE71 new variables for UIC statistics:                 
Aug 13, 2007     SMF71ULM LOWEST*MINIMUM*SYSTEM*UIC                     
                 SMF71ULC LOWEST*CURRENT*SYSTEM*UIC                     
                 SMF71UHC HIGHEST*CURRENT*SYSTEM*UIC                    
                 SMF71UHX HIGHEST*MAXIMUM*SYSTEM*UIC                    
                 SMF71UAM AVERAGE*MINIMUM*SYSTEM*UIC                    
                 SMF71UAC AVERAGE*CURRENT*SYSTEM*UIC                    
                 SMF71UAX AVERAGE*MAXIMUM*SYSTEMI*UIC                   
              -TYPE72GO new Resource Group Capacity variables           
                 R723GMLP='PERCENT*CAPACITY*OF LPAR?'                   
                 R723GMSS='PERCENT*CAPACITY*OF SINGLE*SYSTEM?'          
              -TYPE72DL new Resource Manager state samples              
                 R723RW05-R723RW15 'RESOURCE TYPE NN SAMPLES'           
              -TYPE74 new flag variable                                 
                IOTMERR ='CONNECT*TIME*IN ERROR?'                       
              -TYPE74CF variable R744VLVL corrected to R744FLVL.        
                 New variable R744FMPC with Plant Code of CF.           
                 New variable R744FSEQ with CF Sequence Number.         
              -TYPE88 new variable                                      
                 SMF88GRP='GROUP*VALUE*FOR THE*LOG STREAM'              
              -TYPE108, new transaction type values in MG108TR format.  
              -Jun 22: IBM confirmed SMF70GMU is binary, and not the    
               EBCDIC format in the pre-GA documentation.               
              -Aug 13, 2007:  These group variables are in TYPE70PR and 
               should not have been output in TYPE70 dataset:           
               See Change 25.163.                                       
Change 24.091  Revision to RMF III VSAM decompression utility corrects  
ASMRMFV        processing of the ENCG3 table for the ENC option, adds   
DOCLRMFV       reporting of the RMF III Index usages, and contains the  
Jun  2, 2006   CPUG3 record size reduction.                             
              -The CPUG3 Table output record is reduced in size to      
               contain only the data that is currently documented by    
               IBM; previously, a large number of LPARs/LCPUADDR could  
               generate a record that was greater than 32K.             
              -New optional messages RMFVO28I and RMFV029I report the   
               usage of RMF III Index; see prolog in ASMRMFV.           
              -DOCLRMFV documentation of the CLIST is updated.          
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
VMACRMFV       caused ZRBUWENQ dataset to be incomplete or wrong; the   
Jun  2, 2006   MXG code for REDG3 and UWDG3 segments was revised.       
   Thanks to Betty Wong, Bank of America, USA.                          
VMXG70PR       occur if you changed the default INTERVAL=DURSET in your 
Jun  2, 2006   own %VMXG70PR invocation.  The error was due to line 304 
               which should have had INTERVAL=&INTERVAL, syntax.        
   Thanks to David J Schumann, Blue Cross of Minnesota, USA.            
VMACDB2        in the DB2STATS dataset have been wrong since they were  
May 30, 2006   added by Change 18.305; the wrong variable name was used 
               in MXG's deaccumulation logic.                           
   Thanks to Erling Andersen, SMT, DENMARK.                             
Change 24.087  Auditors requested the values of QW0141AC be formatted,  
FORMATS        so format $MGD141A now exists and it decodes:            
VMAC102         'G'='G:GRANT'                                           
May 30, 2006    'R'='R:REVOKE'                                          
   Thanks to Mike Duffy, LLoyds, ENGLAND.                               
Change 24.086  New variable R783CSSC is a character variable with $HEX2.
VMAC78         format that contains the value of R783CSs, which is a    
May 26, 2006   numeric variable with HEX2. format, so that the TYPE78IO 
               R783CSSC and the TYPE73 SMF73CSS are both characters, so 
               they can be used without conversion to MERGE the two data
               sets by Channel Subsystem ID.                            
   Thanks to Bill Cool, EDS, USA.                                       
Change 24.085 -Invalid values for NDMCPUTM because MXG read only the    
VMACNDM        first VOLSER in the Receiving or Sending VOLSER list.    
May 26, 2006  -New values set for bits in NDMBYTE1 for NDMCOMPR:        
                 NDMCOMPR='T' - COMPACTED?                              
                 NDMCOMPR='E' - COMPRS EXT?                             
                 NDMCOMPR='X' - DMDSSIOX                                
   Thanks to John Shuck, SunTrust, USA.                                 
   Thanks to Srinivas Guntapalli, Citigroup, USA.                       
Change 24.084  Support for optional CICS fields with CMODHEAD/CMODNAME  
IMACICMN       values of MSGNAME and MSGTYPE.                           
May 26, 2006                                                            
   Thanks to Alan O'Hara, HBOS plc, SCOTLAND.                           
Change 24.083  Documentation.  The ASUM70PR in MXG 24.03 can't summarize
ASUM70PR       old PDB libraries built prior to MXG 23.23, because the  
May 22, 2006   SMF70GIE variable was NOT kept in all RMF datasets until 
               Change 23.231.  YOu can use ASUM70PR to summarize PDBs   
               built with 23.23-24.02, but you must add this OPTIONS:   
                   OPTIONS DKRICOND=NOWARN;                             
                   %INCLUDE SOURCLIB(ASUM70PR);                         
   Thanks to Jim Horne, Lowe's Companies, Inc, USA.                     
Change 24.082  RACF formats MG080EV for Event and MG080QU for Qualifier 
FORMATS        decoding were updated with new values of both Events and 
May 22, 2006   Qualifiers.                                              
   Thanks to Linda Berkley, DISA, USA.                                  
Change 24.081 -MXG 24.03 did not have ZDATE kept in PDB.ASUM70LP nor in 
VMXG70PR       PDB.ASUMCELP, which will cause an error if MONTHBLD from 
May 19, 2006   24.03 is used, because those datasets were added to the  
               MONTHLY PDB, but ZDATE is used to select observations.   
               (The error message only occurs if ALL of your WEEK/DAY   
               datasets were created by MXG 24.03; if any PDB used in   
               the MONTH job was created with this change, then that    
               MONTHBLD run will not fail with an error; however, the   
               two output datasets will still be incomplete and wrong.) 
              -Since those two datasets never existed in the MONTH PDB  
               previously, you could use the prior MONTHBLD until all of
               your DAY/WEEK PDBs have been created with this change.   
   Thanks to Jim Horne, Lowe's Companies, Inc, USA.                     
Change 24.080  Analysis of MIPS/MSU from SMF 30 and RMF 72 by SRVCLASS  
ASUMMIPS       adds _SYNC59 macro for sites still stuck with the unwise 
May 23, 2006   SYNCVAL(59) SMF option that was only required by MICS and
               is unneeded and unwise if you no longer have MICS, and a 
               new _INTVAL macro so you can change the summary interval.
               The default _INTVAL is HOUR, and _SYNC59 is NO.          
   Thanks to Pat Curren, SuperValu, USA.                                
Change 24.079 -New NOTYPE74=YES (DEFAULT) option skips PDB.TYPE74 data  
VMXGRMFI       when creating PDB.RMFINTRV dataset. Only these variables 
                  SIO74CNT SIO74TAP                                     
               in PDB.RMFINTRV come from TYPE74 data, and they are total
               across ALL of your DASD devices, so they have very little
               value if you have ESCON and FICON channels, or have both 
               Cache/Non-Cache Controllers, or have different devices;  
               they will all have missing values with the YES default.  
               The new default can significantly reduce the run time and
               CPU time of your RMFINTRV execution, but if you need the 
               above variables, specify NOTYPE74=NO in your RMFINTRV    
               will read the PDB.TYPE74 dataset and populate them.      
              -Datasets PDB.TYPE72 and PDB.TYPE73P are no longer used as
               those datasets now always have zero observations.        
              -Comments document the only PDB datasets required are     
               TYPE70 TYPE71 TYPE72GO TYPE74 TYPE75 TYPE78 TYPE78IO.    
   Thanks to Steve Olmstead, Northwestern Mutual Company, USA.          
Change 24.078  All z/VM MONWRITE datasets now have variable SYSTEM, that
VMACVMXA       was previously only in the VMMTRSYS configuration dataset
May 18, 2006   from the 1.4 record, so you can combine MONWRITE data and
               SORT/REPORT by each of your z/VM SYSTEMs.                
   Thanks to Barbara Nitz, Deutsche-Boerse, GERMANY.                    
Change 24.077  Value QLIM and MDC for SAS/ETS product were added to the 
FORMATS        $MGSASPR format that maps SAS Procedure Name to the SAS  
May 17, 2006   product that "owns" that procedure, for the decoding in  
               the TYPESASU SAS User Record dataset.                    
   Thanks to Len Rugen, University of Missouri, USA.                    
VMXG70PR       HAS NEVER BEEN REFERENCED (and the same warning for the  
May 16, 2006   variables SMF70CPA, SYSDUR, MAXCPUS, MINCPUS, SYSSHARE   
May 19, 2006   and CURSHARE), fortunately, does NOT impact the output.  
               These variables were left in DROP statements from an     
               earlier iteration of the redesign, but were not used in  
               the DATA steps that produced the warning message.        
               These messages are not printed using the MXG default     
               OPTIONS DKROCOND=NOWARN; using DKROCOND=WARN will cause  
               the above messages to be printed on the log, and if you  
               set OPTIONS DKROCOND=ERROR, my failure to remove them    
               will cause your job to fail with ERRORs.                 
              -Variable DURATM in ASUMCELP is again TIME12.2 format.    
   Thanks to Randy Shumate, LexisNexis, USA.                            
====== Changes thru 24.075 were in MXG 24.03 dated May 15, 2006=========
Change 24.075  ML-39 of MXGTMNT Tape Mount Monitor enhancements include:
ASMTAPEE        - support for the hardcopy message set, which allows for
May 15, 2006      the monitor to capture suppressed SYSLOG messages.    
                    (Previously, if console messages were suppressed,   
                     MXGTMNT didn't capture SYSLOG messages, and there  
                     were zero observations in TYPESYMT dataset.)       
                - eliminates S0C4 ABEND in IEAQPGTM+01E6, which occurred
                  only at shutdown of the MXGTMNT task, with no impact  
                  on the monitor's records.  Because it was unexpected, 
                  and appeared to be circumvented by changing the SYSOUT
                  class of the SYSUDUMP DD, IBM Support was invoked, but
                  their SLIP trap proved the error was, as they had said
                  before the SLIP trap, in our code!                    
                - provides protection for future z/OS releases which may
                  enforce the No User Key CSA rule, by eliminating the  
                  use of CSA Key 8 virtual storage in MXGTMNT coding.   
                     While ASMTAPEE requested SP 241 in Key 0, it was   
                     being ignored and the storage was allocated instead
                     in Key 8, which, while still "legal", is undesired.
                     Added Sep 2008: This change from 2005 does support 
                       VSM  ALLOWUSERKEYCSA(NO)  to be specified in     
                     your DIAGxx member.                                
                - The B78-5C ABEND condition was also prevented in ML-39
               Note added Apr, 2008: ML-39 is REQUIRED for z/OS 1.9.    
   Thanks to Normand Poitras, IBM Global Services, CANADA.              
   Thanks to Ed Webb, SAS Institute z/OS, USA.                          
   Thanks to Eladio Aviles, Arizona Public Services, USA                
   Thanks to George Kozakos, IBM Support, AUSTRALIA.                    
Change 24.074  Variables INTBTIME and INTETIME, Interval Begin and End, 
VMAC30         were never defined for the TYPE30_4 and TYPE30_5 step and
May 15, 2006   job termination events, because they were previously only
               output in the TYPE30_V Interval dataset.  For the subtype
               4 & 5 records, not only were they on the GMT clock, their
               times were for the last interval, but for step and jobs, 
               the interval of the data is the step or job itself.      
               Fortunately, only the TYPE30TD dataset contained the two 
               variables from the subtype 4/5 records, and TYPE30TD is  
               only used internally in BUILDPDB to count tape drives,   
               and MXG's logic didn't use those timestamps; it was only 
               if you investigated the WORK.TYPE30TD dataset that you   
               could have observed the incorrect values.  Now, for the  
               step and job termination records, the two variables are  
               now set as INTBTIME=INITTIME and INTETIME=SMFTIME, so the
               variables describe the data interval in all cases.       
   Thanks to Mike O'Brien, Bank of America, USA.                        
   Thanks to Betty Wong, Bank of America, USA.                          
====== Changes thru 24.073 were in MXG 24.03 dated May 13, 2006=========
Change 24.073  Change 23.334 caused type 30 interval records to always  
IMACINTV       be created, without having to edit IMACINTV, by removing 
May 12, 2006   the old comment block around the OUTPUT statement.  But, 
               the &MACINTV macro variable was located physically after 
               the OUTPUT statement, so it could not be used to alter   
               the TYPE30_V - PDB.SMFINTRV datasets as intended.        
               The &MACINTV statement was relocated ahead of the OUTPUT.
   Thanks to Willy Iven, Fortis Bank Belgium, BELGIUM.                  
Change 24.072  INVALID DATA FOR SYTNLPMG/SYTACTM with XAMSYS 3507 data. 
VMACXAM        MXG used the TOTALs SEGLEN (if GE 48) to INPUT the two   
May 11, 2006   percent SYTPCTBY/SYTPCTOV fields that may or may not be  
               present, and that worked for prior test data, but this   
               new data has SEGLEN=40 in TOTALs for its 1 LPAR, so the  
               LENDATA=12 (bytes after DURATM, so PCT fields are NOT in 
               the TOTALs section, but the LPARA section has LPAR count 
               of six with SEGLEN=168, but there are seven "buckets" of 
               LPAR data, so the LENDATA=20, and the "real" LPAR data   
               does have the PCT fields, while the TOTALs doesn't.      
               That 7th LPAR segment has a Partition Number of '0040'x. 
               To process these records and protect for the future, MXG 
               code now recalculates LENDATA for each SYTCUP record, no 
               longer retaining the value from the TOTALS record, and   
               used LENDATA to conditionally input the two fields.      
               May 13: Barton acknowledges the undocumented seventh LPAR
                       is actually a sub-total for that LPAR, with the  
                       '40'x the LPARNUM of decimal 64 as his flag.     
                       Outputting totals and details to the same dataset
                       is exposed to reporting errors, and since only   
                       detail LPAR data was previously output to XAMSYT 
                       dataset, this change does NOT output the new LPAR
                       sub-total section.  The decision is internal now,
                       but could be externalized to EXXAMSYT if someone 
                       convinces me they need that facility.            
   Thanks to Michael J. Salyer, CitiGroup, USA.                         
Change 24.071  The SMF manual mis-documented DFSORT bit 6 in ICEFLBY3 to
VMAC16         set new MEMOBJUS='Y' when a Memory Object is USED, but   
May 10, 2006   SMF data shows MEMOBJUS must be IBM bit 7 (last), and the
               updated DFSORT Installation and Customization Guide, pub 
               SC26-7524-00, page 212) confirms that bit, as well as    
               documenting that ICEMON is a 2-byte field at offset 438, 
               but MXG had input it as a 4-byte field at offset 436.    
               Fortunately, offset 436 and 437 are reserved and zeros so
               ICEMON's value was correct, but MXG code is now revised. 
   Thanks to Diane Eppestine, AT&T Services, Inc, USA                   
   Thanks to Gennady Katsnelson, AT&T, USA.                             
Change 24.070  The right-hand-value of format MG074PT for values of 3 is
FORMATS        changed to  '03'X='3:LIST STRUCTURE'                     
May 10, 2006   instead of  '03'X='1:LIST STRUCTURE'                     
   Thanks to Lawrence Jermyn, Fidelity Systems, USA.                    
   Thanks to Thom Kight, Fidelity Systems, USA.                         
Change 24.069  Comments only. ARRAY EXCEEDED error when running _BLDDICT
UTILEXCL       if the PGM=DFHMNDUP was used to create CICS Dictionary   
May 10, 2006   "SMF" records for five executing regions, but each of the
               SMF files were read in five separate _BLDDICT executions.
               The SMFTIMEs of DFHMNDUP were all the same (and in 1906!)
               and because the records were processed one at a time, the
               NREC variable was the same in all of the records, so the 
               MXG sort on SMFTIME NREC saw way too many entries.       
               If the five "SMF" files had been concatenated in one run 
               of _BLDDICT, the problem does not exist, even with same  
               SMF value, because they will get a different NREC when   
               there are five records read by _BLDDICT.                 
                  However, a new example in comments in UTILEXCL show   
                  how you can correct an existing PDB.CICSDICT dataset  
                  without going back to re-read the SMF data.           
   Thanks to Doug Jones, T-SYS, USA.                                    
Change 24.068 -SHORT SEGMENT error messages in SYTCPC & STOSHR segments 
VMACXAM        are corrected; MXG logic did not protect for new fields. 
May  9, 2006   The SHORT SEGMENT message is a real error in MXG code    
               that must be fixed, because that means that observations 
               were NOT output.  Contact if these occur.
              -There were UNKNOWN SEGMENT xxxxx messages printed on the 
               SAS log that are NOT real errors; they are simply MXG    
               notes that new segments exist in the XAM data that are   
               not yet decoded, but the record was still output.        
              -The text of both messages was rewritten to clarify which 
               is an error (and what to do), and which is just a note.  
              -New segments are always supported when a user asks for   
               the new data, as I prefer to have real data and a real   
               user to validate new stuff, especially in zVM.           
   Thanks to Pat Curren, SuperValu, USA.                                
Change 24.067  Additional INTERVAL=DETAIL value is now supported, which 
VMXGDUR        will cause DATETIME value to be the original, raw, value 
May  6, 2006   to be output, unmodified.                                
Change 24.066  Variables SYTPCTBY,SYTPCTOV, added by MXG Change 24.017, 
VMACXAM        were always expected, but they did not exist in Release  
May  5, 2006   3507 of XAM.  Logic revised to keep the SEGLEN of the    
               "Total" segment and use to INPUT the two fields that     
               were found in Release 3519.                              
   Thanks to Michael J. Salyer, CitiCorp, USA.                          
Change 24.065  Variables STARTIME and SYNCTIME in TYPE23 were in the GMT
ADOC23         timezone while SMFTIME was (always) in Local time, but   
VMAC23         the only documentation clue was that third argument "GMT"
May  4, 2006   in the  %VMXGTIME(SYNCTIME,SYSTEM,GMT); statement        
                  used only by the optional TIMEBILD facility, and only 
                  when there was no GMT offset in the SMF record.       
               However, the PROC PRINT of TYPE23 (from 1999!!) in the   
               ADOC23 member clearly shows an exact 6-hour difference   
               between SMFTIME and SYNCTIME, so the GMTOFF23 can now be 
               calculated and used to convert SYNCTIME and STARTIME to  
               the local time zone.  GMTOFF23 is kept in TYPE23, and if 
               it is non-missing, then STARTIME/SYNCTIME were converted 
               from GMT to local time zone.                             
                  I think this was not done before because nobody asked,
                  and maybe because SYNCTIME was not always present in  
                  SMF 23 records way back end.                          
   Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.             
Change 24.064  Redesign of ASUM70PR/ASUM70LP/ASUMCEC/ASUMCELP creation. 
VMAC7072       Major changes, perhaps incompatible:                     
VMXG70PR        - ASUMCEC/ASUMCELP default summary interval is HOURLY.  
VMXGINIT        - ASUM70PR/ASUM70LP interval no longer set by IMACRMFI  
WEEKBLD           so you may have to add INTERVAL= in your ASUM70PR.    
MONTHBL*        - BY List variables were changed for all four datasets. 
TRNDCEC        This redesign is required because the old BY list of MXG 
May  9, 2006   variables that I thought were sufficient to identify a   
May 11, 2006   unique "SYSTEM", for summarization, these variables:     
May 13, 2006     SYSPLEX SYSTEM SYSNAME STARTIME                        
               are not sufficient, and cause incorrect output.          
               The new BY variables required to identify a "SYSTEM"     
               are used in VMXG70PR logic to group, but you would use   
               for your reports by Start time, and any other summaries. 
              -The ASUM70PR/ASUM70LP "SYSTEM" and "SYSTEM-LPAR" summary 
               data were less exposed to serious errors (because they   
               are per system with less time variance) than were the    
               ASUMCEC/ASUMCELP "CEC" and "CEC-LPAR" datasets, which    
               were very wrong when DURATM and/or STARTIME values were  
               not the same for all SYSPLEX and SYSTEMS in a CEC, but   
               all four datasets could be in error with the old "BYs".  
               And even with the revision, you need to remember that the
               "SYSTEM" and "SYSTEM-LPAR" datasets have observations for
               each interval from every SYSTEM in each SYSPLEX, so they 
               have duplicate and replicated data, and you must always  
               select which "SYSTEM" to use.                            
              -While I do find a PROC PRINT of PDB.ASUM70PR/PDB.ASUMCEC 
               datasets can be useful to get a snapshot of overall usage
               for each LPARs, those two datasets are very unwieldy for 
               reports, with their 61 sets of different variable names  
               to deal with.  Furthermore, the "LPARNUM" bucket-number  
               changes with new LPARs so it's not really stable for long
               term comparisons.                                        
              -Instead, the best datasets to use for LPAR analysis are  
               the ASUM70LP or ASUMCELP, as they have only one set of   
               variable names, and you can select and sort by LPARNAME  
               or SYSTEM, etc., without scanning 61 possible variables. 
              -The errors that were found in the old ASUMCEC/ASUMCELP   
               logic could result in multiple observations with slightly
               different STARTIME or SMF70GIE values, and/or you could  
               have duplicate, overlapping, or incorrect data:          
                 -The SPLIT70 rewrite correctly used SMF70GIE to group  
                  by the end of interval for all "BY SYSPLEX-SYSTEM"    
                  (TYPE70,RMFINTRV,ASUM70PR/ASUM70LP) datasets, but it  
                  cannot be used (as-is) to group "BY CECSER", because  
                  SMF70GIE is not the same value in all LPARs in a CEC  
                  for a particular interval, and it caused multiple     
                  observations with overlapping STARTIME to SMF70GIE.   
                 -The DURATM of ASUMCEC was wrong when there were LPARs 
                  with different interval durations.  The minimum DURATM
                  for CEC summary must be at least the largest DURATM,  
                  but for some DURATM values, it must be larger still.  
                     It must be the Least Common Denominator of all of  
                     your DURATMs, so with 10 and 15 minute DURATMs,    
                     your minimum summary interval is 30 minutes.       
                 -Interval DURATM values are very "fuzzy", even for the 
                  "interval pop" observations that you expected to have 
                  the exact INTERVAL you requested (10, 15, or 30 min). 
                  Here's some reality from four CECs that share SYSPLEX:
                                   Interval DURATM                      
                                    Min      Max                        
                        CECONE    14:58.99-15:53.26                     
                        CECTWO    14:59.62-15:00.50                     
                        CECTHREE  09:59:54-10:00.74                     
                        CECFOUR   14:59.75-15:00.23                     
                  And there are always intervals of much smaller DURATM:
                  the first RMF interval's end is forced so the next is 
                  synchronized with time of day, so any value of DURATM 
                  less than the maximum can occur in SMF data, which    
                  prevents using the data to set the summary interval.  
                 -CECs with LPARs with both SYNC(0) and SYNC(59) have   
                  some SMF70GIE values of 00/15/30/45 minutes and some  
                  with values of 59/14/29/44 minutes, so it's impossible
                  to exactly summarize that data to a true CEC interval.
                 -Inexactness of DURATM across LPARs in a CEC caused the
                  STARTIME=SMF70GIE-DURATM; to be as inexact as DURATM, 
                  so STARTIME can not be used, either.                  
              -With these inconsistent/fuzzy times, creating a perfect  
               CEC-LPAR summary dataset for each LPAR in each CEC is not
               possible, but we can create a very-good summary dataset, 
               that gets to be nearly-perfect if all of your systems are
               on the same SYNC() and INTERVAL() specifications in RMF. 
               But you still may occasionally get percentages over 100%!
              -The PDB.ASUM70PR and PDB.ASUM70LP datasets summary DURATM
               used to be set by the IMACRMFI member's _DURSET macro, so
               the interval of those two datasets matched your RMFINTRV.
               And this still works fine, if your _DURSET macro made no 
               change in STARTIME (i.e., your RMFINTRV/ASUM70PR/ASUM70LP
               were at the original, raw datetimes of your RMF data).   
               But if you have used _DURSET to change the STARTIME of   
               PDB.RMFINTRV to a summary interval, I can't tell what you
               wanted for your interval, so I will now print a message  
               that I have to build those two datasets a detail level,  
               and telling you to use the INTERVAL= parameter in your   
               ASUM70PR member, instead of IMACRMFI, to define interval.
              -The redesign creates the CEC-level by-LPAR summary data  
               in the PDB.ASUMCELP ("CEC-LPAR") dataset, starting with  
               the just=built PDB.ASUM70LP ("per-SYSTEM-LPAR"           
               resources for each "LPAR" for each "STARTIME" within each
               "CECSER" box, with the new duration DURATM = "CECINTRV": 
                  "LPAR"     - Variables SYSPLEX LPARNUM LPARNAME are   
                               used to uniquely define each "LPAR", as  
                               the same LPARNUM and/or LPARNAME can be  
                               used in different SYSPLEX on same CECSER.
                  "STARTIME" - STARTIME and SMF70GIE are shifted to the 
                               "expected, exact" time of day value for  
                               CECINTRV interval. See algorithm below.  
                  "CECINTRV" - Default summary interval is 60 minutes,  
                               so STARTIME/SMF70GIE will be on the hour.
                               As noted above, the CEC summary interval 
                               MUST be the Least Common Denominator of  
                               all of your DURATMs, so using 60 minutes 
                               safely summarizes every RMF Interval that
                               I've ever used (1,3,5,10,15,20,30,60).   
                               You can use a smaller value for CECINTRV 
                               only if it is equal to the LCD of all of 
                               your DURATM values for all of your LPARs.
               - SMF70GIE is changed to be the "correct" interval end   
                 time of day for the CECINTRV duration.  One minute is  
                 added if SYNC(59) minutes of 14,29,44 or 59 are found, 
                 other endtimes are pushed to the correct TOD value.    
                    So the CEC-summary data can still be slightly wrong 
                    because two slightly different intervals are summed 
                    together, but that's all that can be done, unless   
                    you change all of your interval and SYNCs to be the 
                 Each SMF70GIE and LPARNAME is summarized to combine the
                 short intervals into the summary interval, using       
                       (revised) SMF70GIE                               
                 That summary of each LPARNAME is then sorted           
                    BY CECSER SMF70GIE LPARNUM LPARNAME                 
                       DESCENDING SMF70LAC DESCENDING DURATM,           
                  and the first instance of each LPARNAME is output     
                  to create the PDB.ASUMCELP dataset, with the total    
                  resoures consumed by each LPAR in that CEC for the    
                  constructed CEC Interval.  Variable STARTIME is       
                  recalculated as SMF70GIE-CECINTRV so all of the obs   
                  will have the same "pseudo" STARTIME for reporting.   
              -While the new sort order BY CECSER SYSPLEX .... is used  
               inside VMXG70PR to ensure correct assembly and summary,  
               at the end, the four output datasets are sorted back to  
               their old sort order, with the new variables added at the
               end, hopefully to avoid NOTSORTED errors in your weekly  
               and/or monthly jobs that combine ASUMs built with both   
               the old and new logic.  The final sort order is:         
                            LPARNAME LPARNUM                            
                         BY CECSER STARTIME SHIFT LPARNAME LPARNUM      
                         BY CECSER STARTIME SHIFT                       
              -A new macro variable, &MXGNOBY, is created for NOTSORTED 
               circumvention in each of the WEEKxxxx/MONTHxxx members.  
               The current circumvention, documented in comments in each
               of those members, still works fine, but it requires you  
               to EDIT your WEEKxxx/MONTHxxx member to insert:          
                 MACRO _BY %  MACRO _SORTBY %                           
               which disables the BY processing in the SET statements.  
                  Without the BY processing, the output dataset is not  
                  in sort order, but instead is the concatenation of    
                  the input datasets, but there is no requirement that  
                  the datasets be sorted (except in MXG's MONTHxxx and  
                  WEEKxxx code!!).  Even though MXG normally builds its 
                  datasets sorted, you should never make that assumption
                  and thus should always sort the input data yourself;  
                  however, if the dataset is already sorted in the same 
                  order, SAS will bypass your sort.  Thus having output 
                  of the weekly or monthly only impacts run times, but  
                  not the contents of the output datasets.              
               This new &MXGNOBY macro variable is located so that it   
               can be used in your //SYSIN to disable BY processing,    
               without EDITing your WEEKxxx/MONTHxxx member,  using     
                 %LET MXGNOBY = MACRO _BY %  MACRO _SORTBY %  ;         
                 %INCLUDE SOURCLIB(MONTHBLD);                           
               And, then remove the %LET before the next MONTHBLD!      
              -May 11:                                                  
               Variable LPARWAIT was incorrectly kept in ASUMCEC/TRNDCEC
               but it is an LPAR-specific field that was stored into its
               LCPUWAIn variable, so LPARWAIT is not kept in ASUMCEC nor
               TRNDCEC.  The labels for the LCPUWAITn variable now are  
               'LCPU n*WAIT*COMPLETE?'.                                 
              -May 13:                                                  
               The variables NRIFCCPU/NRIFACPU/NRIFLCPU/NRZIPCPU that   
               count the number of "specialty engines" was sometimes    
               incorrect in the PDB.ASUMCEC and PDB.ASUM70PR datasets.  
               They are corrected, and documented as to when they will  
               be zero and when they won't:                             
               For the "this system" PDB.TYPE70 dataset, SMF70CIN='IFA' 
               is used to count the NRIFAS available to "this system";  
               but even when SMF70CIN is not populated with that new    
               value, the original MXG heuristic algorithm detects and  
               counts IFAs, and populates CPUIFATM and the other IFA    
               durations.  The "this system" datasets PDB.TYPE70 and    
               PDB.RMFINTRV do not depend on new values in SMF70CIN.    
               However, for "LPAR summary" PDB.ASUM70PR & PDB.ASUMCEC   
               datasets, SMF70CIN must be populated with "IFA" to count 
               each type of "specialty engines".  But SMF70CIN is only  
               populated with new 'IFL' or 'IFA' values on z9 and later 
               processors, so only z9+ systems will have the correct    
               count values in all four NRxxxCPU counters.  Pre-z9      
               systems have only 'CP' or 'ICF' in SMF70CIN so they will 
               have zeros in NRIFACPU and NRIFLCPU, and the NRICFCPU    
               variable will contain the total count of all of the      
               specialty engines in that CEC.                           
               But it is only the NRxxxCPU counters that may be zeroed. 
               Whether it's a z9+ or not, the IFACPUTM,IFAUPTM,IFAWSTTM 
               duration variables were correct when an IFA is used, and 
               you can have NRIFACPU=0 with IFACPUTM non-zero pre-z9's! 
Change 24.063  The calculation of MACHTIME in TYPE89 & TYPE892 datasets 
VMAC89         was revised with SMF data that had SMF89DTO and SMF89HOF 
Apr 29, 2006   populated.  Now, MACHTIME=SMF89UET-SMF89DTO-SMF89HOF, and
May  4, 2006   it is the "TRUE" GMT Clock datetime when the actual usage
               occurred to be used by IBM for usage charges. MACHTIME is
               needed for IBM to charge you correctly, since you can IPL
               IPL with any date/time/offset, as you did for Y2K tests, 
               and may to do again for Y2042 testing (8-byte STCK fields
               will wrap at 23:53:48 on Sep 17, 2042, but must be fixed 
               prior to 2012, because tape retention can be 30 years.)  
               Only MACHTIME is is adjusted, as all of the other times, 
               SMF89UST, SMF89IST, SMF89IET, SMF89UET and SMFTIME are   
               always on the same (local) time zone.                    
                  And SMF89DTO, unlike all other SMF GMT Offset fields, 
                  is the offset from local back to GMT.                 
               The SMF89IST/SMF89IET times are the start/end of the     
               interval of data (twelve 5-minute intervals in an hour), 
               while the SMF89UST/UET are always the hourly start/end   
               of each usage hour, so they have the same value in all   
               twelve detail observations for that hour.                
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.          
   Thanks to Stephen H. Hodges, OneBeacon, USA.                         
MXGSASV9       the Service Pack SASMSG DSN was not first in the //SASMSG
Apr 27, 2006   concatenation.  When you install a SAS Service Pack, the 
               new SASMSG DSNAME contains ...SL..., and that DSNAME must
               be first in the //SASMSG DD concatenation.  This change  
               adds a ...SL... DD/DSNAME to the MXG Example JCL Proc.   
                  Due to how SAS messages are built, if the wrong SASMSG
                  is first, you can get all types of failures, including
                  ABENDS.  Many times there will be a message text that 
                  makes no sense (there are no BIT tests in any of the  
                  code that produced the above error), because the SAS  
                  message formatting is processing the wrong message ID,
                  due to the incorrect library being first.             
   Thanks to Jim Horne, Lowe's Companies, Inc, USA.                     
Change 24.061  Revised to work on ASCII systems; SAS WENT TO A NEW LINE 
TIMEBILD       error message if there was no data in the OFFGMT column. 
Apr 26, 2006   On z/OS, TIMETABL is a RECFM=F/FB file, so there always  
May 22, 2006   is at least a blank in column 64, where OFFGMT was read, 
               but on ASCII, the text file is variable length, and that 
               unconditional INPUT @64 with no data caused SAS to skip  
               the next line in TIMETABL.  The INPUT @64 OFFGMT is now  
               conditionally executed only if there is data there.      
               The error was observed when the time stamps on systems   
               that were listed in TIMETABL were not being changed.     
              -May 22:  The LRECL=72 in the INFILE &TIMETABL statement  
                        left during testing this change was removed.    
                        It caused an OPEN ERROR if the &TIMETABL DD     
                        pointed to an LRECL=80 dataset (i.e. SOURCLIB). 
   Thanks to Ingegerd Jansson, Volvo, SWEDEN.                           
Change 24.060  The RMF-like CPU Activity Report is updated for IFAs and 
ANALRMFR       IFL engines.                                             
Apr 26, 2006                                                            
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
Change 24.059  For z/890's only, the three IFA CPU Time variables in the
Apr 26, 2006   "measured" rather than "normalized to CP seconds" in MXG,
               and thus their values were too large on z/890s.  The     
               three times are now revised to be the "normalized" time: 
               and those equations could be used to correct existing    
               MXG datasets.                                            
Change 24.058 -The SORT order of PDB.ASUMTAPE was changed in MXG 23.09  
ASUMTAPE       (Change 23.300) to  BY "LOCATION" DEVNR.  Previously, it 
WEEKBLD        was BY SYSTEM DEVNR, but it was never correct to include 
Apr 26, 2006   SYSTEM if you shared tape devices across systems.  One of
               the major corrections in Change 23.300 was the removal of
               SYSTEM from the ordering (and the creation the optional  
               "LOCATION" to support multiple locations with the same   
               DEVNR for two different devices), as well as the addition
               of the SYSLOG mount-related messages in the redesign.    
               Unfortunately, I did not document this change in the sort
               order of PDB.ASUMTAPE, and I failed to update the WEEKBLD
               programs, which still had the old BY statement.  SYSTEM  
               has now been removed from the BYLIST in those WEEKBLx's. 
              -Macro _GRPMNCD to define the optional "LOCATION" was not 
               invoked in the ASUMTAPE member (which only proves that no
               one yet had tried to use that option!), but now it can be
               used if needed.                                          
====== Changes thru 24.057 were in MXG 24.02 dated Apr 26, 2006=========
Change 24.057  New analysis of RAID boxes, creates new PDB.RAIDMAP and  
ASUMCACH       PDB.CSSSID datasets that shows, for each CSSID, all of   
ASUMRAID       the volumes on that CSSSID (typically 80 to 256).  Some  
GRAFRAID       user tailoring of the ASUMRAID member will be required;  
Apr 25, 2006   read the comments in ASUMRAID.                           
              -The ASUMRAID analysis requires ASUMCACH to have been run 
               to create PDB.ASUMCACH; this change cleaned up ASUMCACH  
               so it won't fail even if there was no TYPE74CA dataset   
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.056  New GLOBAL macro variable MGCMPNY is now defined as null 
VMXGINIT       in VMXGINIT, but it will be used in MXG reports so your  
Apr 25, 2006   Company Name can be printed on reports.  You could set it
               permanently in IMACINIT, with                            
                 %LET COMPANY='MERRILL CONSULTANTS;                     
               or you could just put that %LET in your //SYSIN stream.  
               The reports that have been revised to use &MGCMPNY will  
               be added to this list:                                   
Change 24.055  See Change 24.063.                                       
Apr 25, 2006                                                            
Change 24.054  This example, which reads SMF data to run ASUMTAPE, was  
ASMFTAPE       not updated for the new SYSLOG Messages dataset, which   
Apr 24, 2006   caused FILE PDB.TYPESYMT NOT FOUND error.  The example   
               was revised to use the _STMNT product sort macro so that 
               all present and future TMNT datasets are sorted.         
   Thanks to Andre Vossen, ABN AMRO Bank, THE NETHERLANDS.              
Change 24.053  Error messages printed for negative CPUUNITS are now only
VMAC30         printed if the delta is 1000 unweighted service units, or
Apr 24, 2006   about 0.05 CPU seconds on an SU_SEC=25000 machine.  The  
               messages were added by Change 23.323 when the cause was  
               not known, but new analysis of a full day's SMF interval 
               records had only 56 records which had IFAUNITS greater   
               than ORGUNITS, but the max delta was only 650 units, or  
               0.03 seconds on the SU_SEC=25000 machine.  The CPUTCBTM  
               was 0.00 or 0.01 CPU seconds, and CPUIFATM was between   
               0.25 to 0.44 CPU seconds for the 30 minute intervals.    
               MXG's value of CPUUNITS will not be changed, so you can  
               see if this occurs, but the MXG Error Message will only  
               be printed when the negative delta is significant.       
               After discussions of this data with IBM, I agree that    
               these negative values are the result of imprecision in   
               CPU timings (.01 resolution) and in the way Service Units
               are calculated (remainders are discarded in some fields, 
               rounding is done in others) and are not a problem to be  
               immediately corrected, although IBM does plan to review  
               their remaindering/rounding logic.                       
                 Jul 27, 2006:  It appears the correction to IBM Service
                 Unit remaindering is corrected by APAR OA16005.        
Change 24.052  Debugging PUT statement removed.                         
Apr 24, 2006                                                            
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.               
Change 24.051  In DB2 V8.1, QISEDBW was missing but shouldn't have been,
VMACDB2        QISEDSC should have been but wasn't, and these four new  
Apr 24, 2006   variables are now INPUT for the DB2ACCT dataset.         
Apr 25, 2006      QISEDYNP QISECFAL QISECPGE QISECFRE                   
Apr 27, 2006   And, QISESTMT should not have been de-accumulated.       
               And, QISEDSI and QISEDSG are now de-accumulated.         
   Thanks to Clayton Buck, UniGroup, iNC.                               
====== Changes thru 24.050 were in MXG 24.02 dated Apr 24, 2006=========
Change 24.050  New variables INDXUSED and POLYUSED are created from DSIG
VMACRMFV       offset variables that are now kept in ZRBBDSHI dataset,  
Apr 23, 2006   to detect and eliminate "dead space" in RMF VSAM files.  
               RMF Monitor III "indexes" each Sample Set in the DSH     
               table; a sample set is written for each MINTIME interval 
               and the index provides the offset into the data set for  
               each sample.  But the max DSH is 32K long; the fixed DSH 
               header is 256 bytes, leaving 32512 bytes for the 28-byte 
               indexes, for a maximum possible of 1161 indexes; Cheryl  
               Watson reported 50 are saved for Policy Indexes, leaving 
               1111 indexes for the actual sample data indexes.  In the 
               past sites had cumbersome calculations to insure the RMF 
               III VSAM files were not too large; otherwise, those 1111 
               index entries could be exhausted.   But with the INDXUSED
               calculation, Jerry found they were only using 80-95 of   
               the indexes on each dataset because their sample sets are
               so large.  With RMF III data sets of only 2250 tracks    
               each, they would exhaust space long before running out of
               indexes.  The datasest could be made much bigger, keeping
               more data online for interactive analysis, and still not 
               risk creating any "dead space".  And adding new RMF III  
               datasets may not be an option, as there is a hard limit  
               of 100 datasets.                                         
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 24.049  Variables WTASFLAG and WTASFLG2 are now kept in MQMQUEUE 
VMAC116        dataset, from MQMACCTQ segment, and new variable SM116EVT
Apr 23, 2006   is created to distinguish between records written at the 
Apr 25, 2006   end of each thread from records written at interval end. 
                 Data showed that the thread end had WTASFLAG='30'x and 
                 the interval end had WTASFLAG '00'x or '20'x.          
                 IBM now provided these bit explanations:               
                  WTASERR  0  set if an error occurred                  
                  WTASLAT  1  Latency Error                             
                  WTASAEOT 2  Accounting End of Thread                  
                  WTASDEAL 3  Thread Deallocated                        
                  WTASHERE 8  WTASHERE Block has been used              
               So new MXG variable SM116EVT is now created, with        
                 LABEL S116VENT='EVENT*I=INTERVAL*T=THREAD END';        
                 IF WTASFLAG='..11....'B THEN SM116EVT='T';             
                 ELSE                         SM116EVT='I';             
   Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.             
Change 24.048  A new version of the CLRMFV TSO Clist, the driver for the
CLRMFV         ASMRMFV RMF Monitor III decompression utility, adds new  
DOCLRMFV       options to provide better support for the single large   
Apr 23, 2006   output file if can now create with CALLBY(ALL):          
                -OUTSCL() SMS STORCLAS, now default is null.            
                -OUTMCL() SMF MGMTCLAS, now default is null             
                -OUTMLQ() to specify middle level qualifier for RMF dsn.
                -OUTRLSE() to specify YES or NO (YES is default)        
                -OUTTYPE() to specify DSNTYPE.                          
               See DOCLRMFV for full description and usage notes.       
               A special thanks to Acxiom leadership for allowing this  
               effort to continue to go forward.                        
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 24.047  LABEL statements with duplicated variable names are now  
Apr 23, 2006   detected in MXG's QA stream, and all have now been fixed.
DOC            In some cases, this was a real error: two different data 
               fields were stored in the same variable, so a new named  
               variable had to be created for that second field.  All of
               the other cases were examined and the "better" label was 
               kept.  SAS uses the last label it compiles, so if "last" 
               was "better", then there was no change, but some labels  
               will now be different (and, hopefully, "better').        
Change 24.046  zIIP support.  (APAR OA13499, z/OS 1.6, 1.7, and 1.8).   
VMAC30         The metrics and variables for the new zIIP engines are   
VMAC7072       very much like the metrics for IFA/zAAP engines.         
VMACDB2       -TYPE30 New Variables:                                    
Jun  5, 2006      CPUZIETM='ZIP-ELIGIBLE*CPU TIME*ON CP'                
              -TYPE70 New Variables                                     
                  NRZIPCPU='NUMBER OF*ZIP*ENGINES*AVAILABLE'            
                     Oct 13, 2006 Note:  Originally spelled NRZIPS in   
                     this text, I chose NRZIPCPU for the new name in all
                     TYPE70/RMFINTRV/ASUM70PR/ASUMCEC/etc datasets.     
                     Since NRIFAS already existed in TYPE70/RMFINTRV,   
                     I had to leave that spelling in those datasets, but
                     I used NRIFACPU in the ASUM70PR/ASUMCEC/.. datasets
                     which previously didn't have a count of IFAs.      
                  PCTZIPBY='ALL ZIPS*PERCENT*BUSY (DISPATCHED)'         
                  ZIPUPTM ='ZIP ENGINE*AVAILABLE*(UP) TIME'             
                  ZIPWAITM='TOTAL*ZIP WAIT*DURATION'                    
                  ZIPWAIT0='ZIP WAIT*DURATION*ZIP 0'                    
                  ZIPWAIT1='ZIP WAIT*DURATION*ZIP 1'                    
                  ZIPWAIT2='ZIP WAIT*DURATION*ZIP 2'                    
                      ...       3 thru 30 ...                           
                  ZIPWAITW='ZIP WAIT*DURATION*ZIP 31'                   
                  ZIPWAITX='ZIP WAIT*DURATION*ZIP 32'                   
                  PCTZIBY0='ZIP 0*PERCENT*CPU BUSY TIME'                
                  PCTZIBY1='ZIP 1*PERCENT*CPU BUSY TIME'                
                  PCTZIBY2='ZIP 2*PERCENT*CPU BUSY TIME'                
                      ...       3 thru 30 ...                           
                  PCTZIBYW='ZIP 31*PERCENT*CPU BUSY TIME'               
                  PCTZIBYX='ZIP 32*PERCENT*CPU BUSY TIME'               
              -TYPE72GO New Variables                                   
                  R723SUCU='ZIP-ELIGIBLE*ON CP*USING SAMP'              
              -DB2 CPU Time fields added to DB2ACCT (APAR PK18454).     
                  QWACZIEL='CPU TIME*ZIP ELIGIBLE*ON CP*ENGINE'         
                  QWACZIS1='CPU TIME*EXECUTING*ON ZIIP'                 
                  QWACZIS2='CPU TIME*IN DB2*EXECUTING*ON ZIIP'          
              -DB2 CPU Time field QPACZITM for Package ZIP execution:   
                  QPACZITM='CPU TIME*                                   
              -RMF Monitor III fields added to CPUG3 segment for zips:  
                  CPUPRSUP='ONLINE*TIME ON ZIP*PROCESSORS'              
                  CPUSUCON='ZIP ENGINES*ONLINE*AT END'                  
                  See Change 24.181 for more RMF III zIIPs data.        
              -ASUMCEC new calculated variables:                        
                  PCTIFABY='ALL IFAS*PERCENT*BUSY (DISPATCHED)'         
                  PCTZIPBY='ALL ZIPS*PERCENT*BUSY (DISPATCHED)'         
               Jun 5: VMAC7072 was revised to correctly input variables 
               Jun 13: Some 70 zIIP variables had IFA in their labels.  
               Jun 14: Some 30 zIIP variables had IFA in their labels.  
               Jun 15: DB2 zIIP variables created in DB2ACCT,DB2ACCTP   
               Jun 15: TYPE72GO fields added to KEEP=, LABEL.           
               Jun 20: Change 24.105 revised ASUM70PR for zIIPs.        
               Jun 22: VMACRMFV updated for RMF Monitor III Zip data.   
              -And now that IFA/ZIP text is in all MXG variable labels, 
               the APAR documents that IBM has changed RMF reports to   
               now print 'AAP' for IFA/zAAPs and 'IIP' for zIIPs, but   
               I am not going to change either those existing labels nor
               the variable names that already exist.                   
Change 24.045  Support for APAR UK12301 (Tivoli Allocation Optimizer SMF
VMACTIAO       record) adds flag bit for Not Cataloged 2 error condition
Apr 19, 2006   (which only applies to non-SMS-managed datasets!), and   
               new TIAOVOL variable if Not Cataloged bit is on, with the
               VOLSER of the dataset in error.                          
Change 24.044  Variable BEGTIME was missing in DB2STATB dataset for the 
VMACDB2        startup record (QWHSISEQ=1), which is now corrected (by  
Apr 19, 2006   setting BEGTIME=ENDTIME=QWHSSTCK and DURATM=0).  But for 
               the first instance of each Buffer Pool that was not a    
               startup record, not only was BEGTIME a missing value,    
               but also the rest of the variables were trash, because   
               the accumulated values were output.  A long term solution
               would be to introduce "SPIN" logic into DB2 processing,  
               but as no one has noticed the trashed data, and as the   
               introduction of the need for the //SPIN DD into stanalone
               DB2 processing could cause well-running programs to fail,
               my present solution is to not output that first instance,
               and if that observation is truly ever needed for ad hoc  
               problem analysis, using the prior day's SMF data and     
               today's SMF data, concatenated as input, will completely 
               provide correct data, without a redesign to use SPINing. 
   Thanks to Richard Schwartz, State Street Bank, USA.                  
Change 24.043  Variables PCTCPUBY=. and CPUACTTM=. in PDB.TYPE70 dataset
VMAC7072       if the SYSTEM is is not-LPARed, but instead only exists  
Apr  7, 2006   as a single image.  This case is now detected and the    
               code sets PCTCPUBY=PCTMVSBY, and CPUACTTM=CPUMVSTM.      
   Thanks to Ronald Kveton, Experian, USA.                              
   Thanks to William Whitehead, Experian, USA.                          
   Thanks to John Rourke, Experian, USA.                                
Change 24.042  Support for CPC RMF III report data, which is now INPUT  
EXZRBLCP       from the ERBCPUG3 segment; some of the variables are     
IMACRMFV       output into the existing ZRBCPU dataset, but the LCPUADDR
VMACRMFV       details are output in the ZRBLCP dataset.                
VMXGINIT       Five of the new fields in ZRBCPU dataset are accumulated:
               a revision to this change will be made shortly to sort   
               and deaccumulate those values, and this text will be     
               revised when that logic has been added and tested.       
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
   Thanks to Lawrence Jermyn, Fidelity Systems, USA.                    
Change 24.041  As noted in Change 23.132, the new MACHTIME variable was 
VMAC7072       created but not validated, and my guess to add SMF70HOF  
VMAC89         was incorrect; test data shows that SMF70HOF is to be    
Apr  7, 2006   subtracted in VMAC7072 to get back to true GMT.          
May  1, 2006   May 1: test 89 data confirmed SMF89HOF is also to be     
               subtracted in VMAC89 to create MACHTIME; Change 24.063.  
   Thanks to Manfred Giezendanner, Credit Suisse, SWITZERLAND.          
   Thanks to Gion Cabernard, Credit Suisse, SWITZERLAND.                
Change 24.040  CICS/TS 3.2 iteration 2 time fields 12 bytes, April.     
VMAC110        CICS/TS 3.2 iteration 3 time fields Pib8.8/4096.         
Apr  7, 2006   Sep 21: UTILEXCL expanded for Iteration 3.               
Sep 19, 2006   Oct 14: Updates for the changed Statistics Subtypes      
Oct 14, 2006           (INCOMPATIBLE except for DST,DSR,MNG):           
                       STID   DSNAME    New Variables added.            
                      -  2       SMS                                    
                              ==> Nothing New in DSECT.                 
                      - 64    CICDST   DSTCIUHI DSTCIULO DSTNIUHI       
                              ==> But 20 bytes added are not doc'd.     
                      - 65    CICDSR   DSRCIULO DSRCIUHI                
                              ==> But 20 bytes added are not doc'd.     
                      - 67    CICFCR   DFHA17DS DSECT.                  
                              ==> Nothing New in DSECT                  
                      - 74       MQG   MQ Connection Statistics Global  
                              ==> DFHMQGDS DSECT does not exist         
                      - 81       MNG   New Compression Variables        
                              ==> DFHMNGDS DSECT is not current.        
                      -109       ISR   IP Connection (Resource)         
                              ==> DFHUSRDS DSECT does not exist         
                      -117       SJG                                    
                              ==> Nothing New in DSECT.                 
                      -117       SJR                                    
                              ==> Nothing New in DSECT.                 
Change 24.039  New example program to create a Monthly PDB from only the
JCLMNTHW       six weekly PDBs that might be required to span the prior 
MONTHWEK       month when only WEEK PDBs are to be read.  This example  
               can be run on any day of the next month to create last   
Apr  7, 2006   Month's PDB library.  You would still need to tailor:    
May  4, 2006   JCLMNTHW - the _SELDSN macro to list only the datassets  
                          that you want created, and                    
               MONTHWEK - delete two lines (MACRO _DSET, MACRO _BYLIST) 
                          for each dataset that you do not want created.
               May 4: Revised to read 6 weekly files; while only five   
                      are needed for the normal MONTHBLD on the first of
                      the month, some months (July 2006) would need to  
                      read six weekly PDBs to create that month's PDB   
                      if only the week PDBs were to be read.            
   Thanks to William Carroll, Grange Insurance, USA.                    
   Thanks to Jim Horne, Lowe's Companies, Inc, USA.                     
Apr  5, 2006   occurs only if OPTIONS='USER=PDB' was specified          
                 For BUILDPDB that option should never be used.  It     
                 tells SAS to write all datasets that would have been   
                 written to the //WORK DDname, to instead be written    
                 to the //PDB DD.  But the BUILDPDB design is to write  
                 first to the //WORK DD, sort and write the output to   
                 the //PDB DD, so you can get I/O between volumes and   
                 not hammer the //PDB DATASET by read and write to a    
                 single PDB library for both work and output.           
               The VMXGENG code used to create MXGENG as a VIEW, and    
               with USER=PDB, that created PDB.MXGENG.VIEW in the //PDB 
               library each day, but you can replace a SAS VIEW with a  
               SAS VIEW of the same name.  But Change 23.328 revised    
               VMXGENG to create a DATASET of the same name, rather than
               a VIEW, and (for reasons I don't understand) SAS will not
               let you replace a VIEW with a DATASET, so this error     
               occurred when the new MXG Version wrote to a //PDB that  
               had been created by the prior version, that still had the
               VIEW.  By removing the USER=PDB option, the MXGENG and   
               similar MXG internal facilities' data will be written to 
               //WORK which is temporary and goes away at job step end, 
               so the replacement of a VIEW with a DATASET never is an  
   Thanks to Karen Fry, Comerica, USA.                                  
   Thanks to Theresa Johnston, Comerica, USA.                           
Change 24.037  A new version of the CLRMFV TSO Clist, the driver for the
CLRMFV         ASMRMFV RMF Monitor III decompression utility, plus major
DOCLRMFV       enhancements in the documentation in the DOCLRMFV member.
Apr  4, 2006                                                            
               This CLRMFV version reduces the number of ASMRMFV calls  
               for users with many LPARs, and provides more flexibility 
               to specify the input and output data sets, so perhaps it 
               reduces the need to tailor CLRMFV or at least is easier. 
               There are no changes required for the ASMRMFV program.   
               A new parameter CALLBY() lets the user control the       
               granularity of the RMF Monitor III data passed to ASMRMFV
               in each call.  CALLBY(DSN) invokes ASMRMFV once for each 
               and every RMF Monitor III data set. This setting is NOT  
               recommended due to overhead and is only included for     
               compatibility with earlier versions of CLRMFV.           
               CALLBY(SID) invokes ASMRMFV once for each unique LPAR and
               is compatible with CLRMFV default behavior in prior      
               versions. CALLBY(ALL) invokes ASMRMFV once for all LPARs 
               and is ideal for users (such as our installation) who    
               want to process many LPARs at once with ASMRMFV with     
               minimal overhead.  CALLBY(ALL) is the new default.       
               The ONECALL() parameter is now obsolete.  If ONECALL(NO) 
               is coded, it is converted to CALLBY(DSN). If ONECALL(YES)
               is coded it is converted to CALLBY(ALL).  ONECALL() will 
               be removed entirely in a future version of CLRMFV, but is
               here so you have plenty of time to remove it and use the 
               CALLBY() instead.                                        
               A new parameter INLLQ() lets the user specify the low    
               level qualifier if needed for the input RMF Monitor III  
               data set names.  The default is null.  Similarly a new   
               parameter OUTLLQ() lets the user specify the low level   
               qualifer for the output sequential data set(s).  The     
               default is OUTLLQ(RMFIII) and produces the same data set 
               name as in prior CLRMFV versions.                        
               A new parameter OUTDISP() gives the user more control on 
               the allocation method for the output data set(s).  There 
               are three possible values: NEW, MOD, and OLD. The default
               is OUTDISP(NEW) and produces the same behavior as prior  
               CLRMFV versions.  See the DOCLRMFV documentation member  
               for more details.  Regardless of this parameter setting  
               ASMRMFV always appends data from multiple input files    
               into the output file(s).  Only the initial output file   
               allocation procedure is affected by OUTDISP().           
               A new parameter OUTDCL() allows the user to specify an   
               SMS Data Class for the output file(s).  The default is   
               null. This is a companion to OUTMCL() and OUTSCL()       
               parameters which were available in the prior version for 
               SMS Management Class and SMS Storage Class respectively. 
               A new parameter OUTVOL() allows the user to specify a    
               non-SMS volume serial(s) for the output file(s).  The    
               default is null.                                         
               A new parameter OUTVOL#() allows the user to specify a   
               maximum volume count  for the output file(s).  The       
               default is null.  The z/OS maximum is allowed 255 and    
               CLRMFV will validate the value.                          
               A new parameter OUTDEV#() allows the user to specify a   
               device count  for the output file(s).  The default is    
               null.  The z/OS maximum allowed is 59 and CLRMFV will    
               validate the value.                                      
               A new parameter TS() allows the user to specify time     
               stamping on CLRMFV messages. The default is TS(NO) and   
               only the very first and last messages are time stamped.  
               TS(YES) causes all CLRMFV generated messages to be time  
               stamped and so provides the behavior in prior CLRMFV     
               releases.  TS(NO) reduces CLIST overhead.                
               CLRMFV will now validate that the length of the total    
               PARM field passed to ASMRMFV does not exceed z/OS 100    
               character maximum and fail if this is not the case.  As  
               before the //SYSIN DD in JCL can be use to provide       
               additional ASMRMFV parameters to overcome this z/OS      
               The DOCLRMFV documentation member is enhanced, expanded, 
               and clarified to explain all the new parameters.         
               Migration Issues:                                        
               With the new CLRMFV default of CALLBY(ALL) the single    
               output file size will be now the sum of space used for   
               all the prior LPAR files with the old CLRMFV version .   
               The SPACE() parameter will need to be increased          
               substantially if output is to DASD to avoid SB37 abends  
               or alternately the output file will have to be directed  
               to tape.  The new OUTDEV#() parameter can also help with 
               the additional space needs by spreading the space needed 
               over multiple volumes.                                   
               The benefit is a reduction in CPU usage by ASMRMFV       
               because initialization, termination, and summary code is 
               only used once instead of once for each LPAR.  Users who 
               prefer not to make changes to support CALLBY(ALL) should 
               specify CALLBY(SID) to get the prior behavior.           
               With CALLBY(ALL) the single output data set name will be 
               of the form &OUTHLQ.ALL.&OUTLLQ where &OUTHLQ is the     
               value of OUTHLQ() and  &OUTLLQ will be the value of      
               OUTLLQ(). So DSN= on the //RMFBSAM DD statement in the   
               MXG RMF III PDB Build step will need to be changed       
               accordingly.  A DD concatenation of files from multiple  
               LPARs will no longer be required and the extra DDs should
               be removed.                                              
               Since all RMF Monitor III data sets will be dynamically  
               allocated at once with CALLBY(ALL), users may need to    
               substantially increase the value of DYNAMNBR= in their   
               JCL invoking CLRMFV.  Otherwise the Dynamic Allocations  
               done by CLRMFV can fail.  The TIOT SIZE parameter in the 
               ALLOCxx member in SYS1.PARMLIB ultimately determines the 
               maximum size value allowed for DYNAMNBR=.  This is       
               discussed in the DOCLRMFV member.                        
               As a side effect since CALLBY(ALL) results in ASMRMFV    
               being invoked only once, the ASMRMFV summary report      
               produced will be for the grand totals from all LPARs     
               instead of 1 summary report per LPAR as in the prior     
               version.  Users who want the earlier behavior should use 
               A special thanks to Acxiom leadership for allowing this  
               effort to continue to go forward.                        
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
Change 24.036  An extra, undocumented 8 bytes have been added to the    
VMACRMFV       RMF III ASI table in z/OS 1.7, although IBM will issue   
Apr  4, 2006   a documentation change in the future.  This change tests 
               for ASIVERE3 GE '10'X to skip the extra 8 bytes.         
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.                           
   Thanks to Rodger Foreman, Acxiom CDC, USA.                           
Change 24.035  XAM SYS error INPUT STATEMENT EXCEECED LENGTH was caused 
VMACXAM        by an unexpected value of 'FFFF'x in the NSIMBUSY field, 
Apr  4, 2006   or 65536 decimal, for the number of fields in the array  
               HFCHSIM that follow this count, which MXG tried to read  
               when there were no fields following.                     
               Now, MXG detects this value, and bypasses the logic to   
               read any elements of HFCHSIM array.                      
               The 'FFFF'x value is actually -1 if input as Integer     
               Binary, and is set by XAM because IBM no longer keeps    
               track of concurrent channels in use, so there no longer  
               is an HFCHSIM array to INPUT.                            
   Thanks to Brian Carter, EDS UK Mainframe Hosting Services, ENGLAND.  
   Thanks to Jeff Gribbin, EDS UK Mainframe Hosting Services, ENGLAND.  
Change 24.034  Converting a character variable that contains a hex value
DOC            (e.g., a four-byte character variable DEVCHAR='1F1A')    
Apr  4, 2006   into a numeric variable that contains that hex value     
Apr 20, 2006   (e.g., a two-byte numeric variable DEVNR=1F1Ax when it is
               FORMATed hex4.) can be done using the HEXnn INFORMAT     
               in an INPUT function:                                    
                   FORMAT DEVNR HEX4.;                                  
               will store the decimal value 7962 in DEVNR, which will be
               printed as 1F1A with the HEX4. format.                   
               This change was rewritten on April 20, when the HEXnn.   
               format was suggested in a SAS-L posting by Jiann-Shiun   
               Huang.  Below, is the original April 4 change text:      
               The format $MGHEXC can be used to convert a character    
               variable that contains a hex value in EBCDIC text into a 
               numeric variable with the value formatted as HEX.        
               For example, if DEVCHAR='1F1A' is DEVNR='1F1A'x, then    
               this code will create numeric variable DEVNR:            
               DEVNR= 4096*INPUT(PUT(SUBSTR(DEVCHAR,1,1),$MGHEXC.),2.)+ 
               The $MGHEXC format was created to decode SYSLOG character
               Device Number, but can be used for any hex-text .        
   Thanks to DJ Chen, Florida Department of Corrections, USA.           
   Thanks to Jiann-Shiun Huang, AmerUs Group, USA.                      
   Thanks to Nick Johns, Sainsbury, ENGLAND.                            
Change 24.033  When UTILEXCL detects CMODNAMEs of EZA01 and EZA02, you  
IMACICE2       must tailor members IMACICEZ, IMACICE1, and IMACICE2 to  
Apr  4, 2006   process those data.  The fields INPUT in IMACICEZ and E2 
               are consistent at all sites, but the number of fields in 
               the IMACICE1 exit varies from site to site, so if MXG's  
               REPORT ONE lists IMACICE1 to be tailored, you must then  
               look at REPORT THREE to see exactly which fields are in  
               your data, and will have to change the INPUT and LABEL   
               statements if your data does not contain all twelve of   
               those fields.   This list is an excerpt of REPORT THREE  
               that is overlaid with the MXG variables that are INPUT.  
                  CMODHEAD  CMODNAME                    MXG VARIABLES   
                  EZA01     INIT         S  001  8     TCPINITM TCPINICN
                  EZA01     READ         S  002  8     TCPREATM TCPREACN
                  EZA01     WRITE        S  003  8     TCPWRITM TCPWRICN
                  EZA01     SELECT       S  004  8     TCPSELTM TCPSELCN
                  EZA01     OTHER        S  005  8     TCPOTHTM TCPOTHCN
                  CMODHEAD  CMODNAME                   MXG VARIABLES    
                  EZA01     EZA01        A  001  4     EZA01A01         
                  EZA01     EZA01        A  002  4     EZA01A02         
                  EZA01     EZA01        A  003  4     EZA01A03         
                  EZA01     EZA01        A  004  4     EZA01A04         
                  EZA01     EZA01        A  005  4     EZA01A05         
                  EZA01     REUSABLE     A  006  4     EZA01A06         
                  EZA01     ATTACHED     A  007  4     EZA01A07         
                  EZA01     EZA01        A  008  4     EZA01A08         
                  EZA01     EZA01        A  009  4     EZA01A09         
                  EZA01     EZA01        A  010  4     EZA01A10         
                  EZA01     EZA01        A  011  4     EZA01A11         
                  EZA01     EZA01        A  012  4     EZA01A12         
                  CMODHEAD  CMODNAME                   MXG VARIABLES    
                  EZA02     CONN         A  001  4     EZA02CON         
                  EZA02     STARTED      A  002  4     EZA02STA         
                  EZA02     INVALID      A  003  4     EZA02INV         
                  EZA02     DISTRAN      A  004  4     EZA02DIT         
                  EZA02     DISPROG      A  005  4     EZA02DIP         
                  EZA02     GIVESOKT     A  006  4     EZA02GIV         
                  EZA02     SECEXIT      A  007  4     EZA02SEC         
                  EZA02     NOTAUTH      A  008  4     EZA02A08         
                  EZA02     IOERR        A  009  4     EZA02A09         
                  EZA02     NOSPACE      A  010  4     EZA02A10         
                  EZA02     LENERR       A  011  4     EZA02A11         
                     (See also text of Change 25.018.)                  
               Compare your UTILEXCL report with those three IMACICEx's.
               The IMACICEZ and IMACICE2 should always match; contact   
      (send UTILEXCL report) if they don't.    
               If IMACICE1 in your REPORT THREE ends with "ATTACHED" as 
               the last field (i.e, you only have 7 fields in EZA01),   
               then must EDIT the IMACICE1 member into your tailoring:  
                -change the test for MCTSSDRL to GE 28 instead of GE 48 
                -delete the LABELs for variables EZA01A08 thru EZA01A12 
                -change the INPUT statement to read                     
                    INPUT (EZA01A01-EZA01A07) (&PIB.4.) @;              
              -You create REPORT THREE with the _RPTEXCL macro run with 
               or after your UTILEXCL execution:                        
                 //SYSIN DD *                                           
                  %INCLUDE SOURCLIB(UTILEXCL);                          
              -This change added text in labels for EZA02A08-EZA02A11   
               with their contents (NOTAUTH,IOERR,NOSPACE,LENERR).      
              -This text was revised Oct 10, 2007; see Change 25.215.   
   Thanks to Erling Andersen, SMT Data A/S, DENMARK.                    
Change 24.032 -SPLIT70 rewrite could cause PCTCPUBY/PCTMVSBY in TYPE70  
VMAC7072       to be too small, for CPs that were not online for a full 
Apr  3, 2006   interval.  The recalculated PCTCPUBY used DURATM in the  
Apr  5, 2006   denominator instead of SMF70ONT for these CPs.           
              -NRCPUS was wrong if an LPAR is WLM Managed AND the LPAR  
               has any IFAs, which affected many PCT calculations.  When
               an LPAR is WLM Managed, (LPARWLMG='Y'), MXG used variable
               SMF70BDA=SMF70BDA/SMF70DSA, documented as the average    
               number of engines under WLM control, as NRCPUS, but      
               impossible values of 10.27 for a system in a CEC with    
               only 10 CP engines was observed.  Using the sum of       
               SMF70ONT (online time of each engine) showed there were  
               only 8.27 CP engines online during that interval, and    
               IBM's own Partition Data Report had 8.3 for the Average  
               Processor NUM for that LPAR for that interval.  In reply 
               to my "impossible" value allegation, IBM RMF Development 
               replied that SMF70BDA samples include both CPs and IFAs, 
               and thus the 10.27 value was not impossible, as there    
               were 8.27 CPs and 2 IFAs online; however it is a         
               completely useless value to use for anything.            
               As a result, the MXG calculation of NRCPUS is now always 
               calculated from the sum of SMF70ONT for CP engines, and  
               SMF70BDA is no longer used for NRCPUS.                   
               And SMF70BDA will also include zIIPs, if any exist.      
   Thanks to Marco A. Micchia, Uniocredit Global Info Services, ITALY.  
Change 24.031  Cosmetic cleanup of MXG variables during ITRM validation 
ASUMTAPE       for their dictionary updates:                            
VMAC80A       -VMACTMNT: Variables SYSLDDN,SYSLDSN now labeled.         
VMAC94        -VMAC80A : Variables TSREADTI,TSTIME now formatted, TSTIME
VMACTMNT                 is now KEPT in TYPE80TS dataset.               
VMXG70PR                 Variable TOKDANAM now labeled.                 
VMACTMO2      -VMXG70PR: Formats for new variables added for 60 LPARs   
Apr  3, 2006             were missing in ASUMCEC dataset.               
Apr 10, 2006             Sort order in _BSU70PR was incorrect, but it   
                         was not used, so only caused confusion and     
                         deceptive documentation.  Correct BY list is   
                           SYSPLEX SYSTEM SYSNAME SMF70GIE              
              -ASUMTAPE: Instances of %VMXGWORL inside the MACRO _DEBUG 
                         require double percent signs.                  
              -VMAC79:   Variables R799CNX2-5 were incorrectly decoded. 
                         R799CNX is now labeled even though its decoded.
              -VMAC94:   Variables S94XLCSI/S94XLCLS are now kept; they 
                         had been misspelled as XCLSI/SCLSL.            
              -VMACTMO2: Label for TAWRDCT corrected; QA stream now     
                         tests for duplicate/different labels.          
   Thanks to Chris Weston, SAS Institute ITRM, USA.                     
Change 24.030  Solaris 9 changed the format of the year in sar data from
TYPEUSAR       YY to YYYY; code was revised to support either format.   
Apr  3, 2006                                                            
   Thanks to Greg Meyer, ITresources, USA.                              
VMACMVCI       messages are eliminated.  The two file segment sizes are 
Apr  2, 2006   supported.  The short segment will cause missing values  
               in most variables in CMRFILE, but the data is valid.     
   Thanks to Dr. Alexander Raeder, ATOSORIGIN, GERMANY.                 
Change 24.028  Support for APAR PK15468, which adds variable QWSnPSRB,  
VMACDB2        Preemptable SRB CPU Time consumed by SRBs in the Address 
Apr  1, 2006   Space named in QWSnASID.  Note that this SRB CPU time in 
               the new QWSnPSRB variable is included in QWSnSRBT.       
   Thanks to Roger L. Rush, Nav-International, USA.                     
   Thanks to James S. Lazowski, Nav-International, USA.                 
Change 24.027  SQL Text in DB2 102 Audit Trace IFCIDs 140,141,142,145   
VMAC102        was missing after Change 24.01, for DB2 Version 7 and    
Apr  1, 2006   earlier, because QW014nLE was only INPUT for DB2 8.1.    
               Now, IF QW014nLE=. THEN QW014nLE=QW014nLL; corrects.     
   Thanks to Jim Kovarik, AEGON USA, USA.                               
Change 24.026  Equal signs were missing from most of the value in the   
FORMATS        $MGSYSIP format definition.                              
Apr  1, 2006                                                            
   Thanks to Lars-Olof Thellenberg, Svenska Handelsbanken, SWEDEN.      
Change 24.025  Five 4-byte SYNCSORT fields had expanded 8-byte fields   
VMACSYNC       that MXG failed to use when the 4-byte fields were full. 
Apr  1, 2006   These variables are now reset if their 8-byte field is   
               greater than their 4-byte field:                         
                     CHARACTS INRECS OUTRECS INSERTS DELETES            
               Unfortunately, the input and output byte count variables,
               SIBYTES and SOBYTES exist only as 4-byte fields and do   
               not have 8-byte counterparts.                            
   Thanks to Lawrence Jermyn, Fidelity Systems, USA.                    
Change 24.024  New E2dddddd members created for "2 Phase" MXG datasets: 
E2TY70        -Most MXG datasets are "SIMPLE" or "One Phase": obs are   
E2TY70PR       OUTPUT to a _Wdddddd dataset in the _Edddddd exit macro  
VMAC7072       (which %INCs the EXdddddd exit member) from the raw data,
Apr  1, 2006   then _Wdddddd is sorted to create the _Ldddddd (PDB).    
May  1, 2006   For those datasets, code in the EXdddddd member can be   
               used to create new variables and label them, and the     
               _Kdddddd macro is used to KEEP those new variables.      
              -But when datasets are created in a "Second Phase", those 
               original EXdddddd exit cannot be used for your SAS code  
               that creates your new variables; instead, you must use   
               a new exit member, the "Second Phase" exit.  The name of 
               the member is E2dddddd, to be somewhat consistent with   
               the original EXdddddd naming; your SAS code to create or 
               modify variables, and LABEL, FORMAT or LENGTH statements 
               would be put in your E2dddddd exit member.               
                  Note: all variables you create in that exit member    
                  will automatically be KEPT, so you do not need to list
                  them to be kept.  In fact, if you create any temporary
                  variables in your exit code, you would need to DROP   
                  them so they won't be kept in the output dataset.     
              -The old EXdddddd exit member had an old-style macro      
               counterpart, MACRO _Edddddd, which could be redefined in 
               your IMACKEEP member.  So this new "Second Phase" exit   
               member also has an old-style macro counterpart, named    
               MACRO _2dddddd, which can alternatively be used to tailor
               these datasets.                                          
              -The SPLIT70 redesign changed the creation of TYPE70 and  
               TYPE70PR datasets from "SIMPLE" to "SECOND PHASE", and   
               thus invalided the use of EXTY70/EXTY70PR exit members   
               to add variables to the TYPE70 and TYPE70PR datasets, so 
               this first implemenatation of "Second Phase" exits are   
               the E2TY70 and E2TY70PR members added by this change.    
               May 1: SPLIT70 redesign documentation, related note:     
                      You cannot drop these variables                   
                         SYSPLEX SYSNAME SMF70GIE SMFTIME               
                      from TYPE7xxx RMF datasets.  They are required    
                      to reassemble the pieces, and the MXG logic.      
              -Example to add SHIFT to the PDB.TYPE70 and PDB.TYPE70PR  
               datasets you would need to add these two old-style macro 
               redefinitions in your IMACKEEP tailoring member:         
                  MACRO _2TY70                                          
                    %%INCLUDE SOURCLIB(IMACSHFT);                       
                  MACRO _2TY70PR                                        
                    %%INCLUDE SOURCLIB(IMACSHFT);                       
   Thanks to Lawrence Jermyn, Fidelity Systems, USA.                    
   Thanks to Warren Cravey, Fidelity Systems, USA.                      
Change 24.023  The default value of macro variable &TAPENGN, used for   
VMXGINIT       the engine for the TAPETEMP DD in Weekly/Monthly examples
Apr  1, 2006   that output to tape, is now changed to V9SEQ if executing
Jun 24, 2006   MXG under SAS V9, or to V8SEQ if executing under SAS V8. 
               This should have been done back in Change 23.061, which  
               changed CONFIGV9 to set the MXG default SEQENGINE=V9SEQ, 
               (it previously had been V6 due to SAS errors in V9SEQ),  
               but changing TAPENGN default was overlooked.   The V6SEQ 
               engine does not support character variables longer than  
               200 bytes, and there are now many long variables in MXG. 
               Jun 24: The April change caused UNKNOWN ENGINE V9SEQ when
                       the Weekly or Monthly job was run for the first  
                       time under SAS V8.  New logic now tests the      
                       &SASVERS to set V8SEQ or V9SEQ as appropriate.   
   Thanks to Robbie A. McCoy, Salt River Project, USA.                  
Change 24.022  The BY list in the default MONTHBLD example for ASUMDB2B 
WEEKBLD        now ends with ... QBACPID QWACBSC SHIFT to match the BY  
MONTHBLD       list used to build PDB.ASUMDB2B.                         
Mar 31, 2006   Jul 3: Unfortunately, the March change incorrectly had   
Jul  3, 2006          MONTHBLD with QWACPID instead of QBACPID, and     
                      WEEKBLD had QWACPID QBACBSC, and the preceding    
                      change test also had incorrect spellings.         
                      Now, all BYs agree with line 2 of this change.    
   Thanks to Michael Creech, Fidelity National Information Svcs, USA.   
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
Change 24.021  A invalid RACF SMF 80 record with NRSEGS=252 but that had
VMAC80A        only 235 actual segments caused INPUT STATEMENT EXCEEDED.
Mar 31, 2006   The last segment was complete, and the RDW matched the   
               size of the actual SMF record, so this was not a record  
               that had been truncated in SMF post-processing.  MXG now 
               prints an error message and hex dump on the log for each 
               instance of this type of invalid SMF record, so you can  
               send to IBM RACF Support if you choose to resolve their  
               invalid record.  Jun 13, 2006: See Change 24.097.        
   Thanks to Randy Shumate, LexisNexis, USA.                            
Change 24.020  ASUMTAPE is still in development, pending STK reply to   
ASUMTAPE       our problem with their exit, but I accidentally made it  
Mar  7, 2006   fail if run under ITRM; I replaced the previous use of   
               %VMXGWORL macro (to find the location, WORK or PDB, of   
               the input datasets) with hardcoded &MXGPDB..TAPES and    
               similar references.  Now, the use of %VMXGWORL is        
   Thanks to Dan Squillace, SAS Institute ITRM, USA.                    
   Thanks to Chris Weston, SAS Institute ITRM, USA.                     
Change 24.019  MXG set OPTIONS DKROCOND=NOWARN in BUILD001/BUILD005/3005
BUILD001       to prevent WARNING: VARIABLES NOT REFERENCED messages,   
BUILD005       as those members execute code with many optional variable
BUIL3005       names in its KEEP= lists, but in BUILD005/3005 the option
Mar  7, 2006   was reset back to DKROCOND=WARN, and if your code had the
               condition, the warning message caused condition code 4.  
                 So the hardcoded reset changed the MXG DKROCOND=NOWARN 
                 that is set by CONFIGVn/AUTOEXEC at initialization.    
               Now, %VMXGOPTR is used to store the original value of the
               DKROCOND option, and the hardcode reset is change to now 
               restore the original value of the option.                
                 And so you won't see any of these messages, unless you 
                 change the OPTION after MXG initialization, in your    
                 code or in mine.                                       
   Thanks to H.E. Tempelmans Plat, Corus, THE NETHERLANDS.              
Change 24.018  INPUT STATEMENT EXCEEDED in RACF Extended Relocate 301   
VMAC80A        SMF30TP2 because new TOKSUBSY='PROXY' records were not   
Mar  6, 2006   supported.                                               
   Thanks to Fred Schmidt, Northern Territory Government, AUSTRALIA.    
Change 24.017  Two four-byte fields were inserted in the SYTCUP segment,
VMACXAM        causing INVALID DATA FOR SYTNLPMG messages, and trashed  
Mar  5, 2006   data in some SYTxxxxx variables.  New variables SYTPCTBY 
               and SYTPCTOV for each LCUCPUID are now created and kept  
               in the XAMSYT dataset.                                   
              -IODQDS segment no longer flagged as UNKNOWN.             
   Thanks to Tony Curry, BMC, USA.                                      
Change 24.016  Datetimestamp variables WTNIDTIM, WTUOWTIM and QWHSSTCK  
VMAC116        were not called by %VMXGTIME, which is used to shift date
Mar  2, 2006   time variable's values to a common time zone, if you have
               LPARs or SYSTEMs on different time zones.                
               Note that while UOWTIME contains a datetime value, it is 
               never shifted, because it is used as a token to match to 
               other records; this part of Change 19.286 is added in the
               comments in VMXGTIME as a self-reminder:                 
                 Two very important "token" variables that are necessary
                 to match records together, READTIME and UOWTIME, are   
                 NOT converted by VMXGTIME.                             
   Thanks to Chuck Hopf, Bank of America, USA.                          
Change 24.015  Documentation only. Identifying CRYPTO users and usage.  
VMAC30        -TYPE30 variable ICSFSCNT/SMF30CSC may or may not identify
VMAC7072       crypto users.  It is the number of crypto instructions   
Mar  1, 2006   executed on behalf of the caller (within that caller's   
               address space).  However, new machine instructions are   
               available on T-Rex processors with the CPACF feature that
               provide clear key DES/TDES functions as well as hashing  
               functions, and applications can call these functions     
               directly, bypassing ICSF, and those application calls    
               would NOT be included in this count.                     
              -TYPE70Y2 Crypto dataset variables added by OA10556 in    
               MXG 23.05 to record these CPACF function statistics:     
                 R702NH2I='SHA-256*PCMF INSTR*USED TO*HASH'             
              -This information was extracted from a lengthy and very   
               informative IBM note ASKQQA Item BDC000034378, in reply  
               to the question "Is there a way to measure encryption    
               overhead in TLS/SSL for TN3270":                         
                  There is no separate SMF field that tells you how much
                  CPU time is consumed to do this encryption.  However, 
                  since it is the TCP/IP address space that is doing the
                  instructions for encryption, the CPU time consumed    
                  would be included in the regular SMF fields for that  
                  Address Space, i.e., both TYPE30 for the ASID and     
                  TYPE72GO for its Service Class and Reporting Class.   
                  The CPU time consumed by the PCIXX engine (the        
                  handshake part) will be reported in the R7023T0 in    
                  dataset TYPE7002 (RMF 70 subtype 2 crypto).           
              -That note suggests that for other crypto applications,   
               their CPU time will also be recorded in the address space
               and service class records for the address space that does
               the encryption.  The TYPE1415 record now contains the    
               elapsed time for tape encryption, but no separate CPU    
               time exists in any address space records.                
Change 24.014  Support for new QWSnPSRB DB2 Address Space preemptable   
VMACDB2        and non-preemptable SRB CPU time in PDB.DB2STATS dataset.
Mar  1, 2006   Variables QWSnSRBT have always contained the SRB time for
               DB2 Address spaces and for the IRLM Address space, and   
               included both preemptable and non-preemptable SRB time.  
               New variables QWSnPSRB will now contain only the SRB CPU 
               time consumed by preemptable SRBs in the address space   
               specified by QWHAASID.                                   
               Note: CHANGE was made in Change 24.028.                  
Change 24.013  Support for new memory object data in DFSORT records:    
VMAC16           ICEMON - MEMORY OBJECTS ALLOCATED                      
                 ICEMOSIZ - MOSIZE VALUE IN EFFECT                      
                 MEMOBJUS - MEMORY OBJECT USED?                         
               These data were added in z/OS DFSORT V1R5                
   Thanks to Rob D'Andrea, Royal Bank of Scotland, UNITED KINGDOM.      
====== Changes thru 24.012 were in MXG 24.01 dated Mar  1, 2006=========
Change 24.012  INPUT STATEMENT EXCEEDED in RACF Extended Relocate 301   
VMAC80A        SMF30TP2 because MXG only expected 8 bytes for TOKDANAM. 
Feb 27, 2006   Field expanded to 80. Values of  NOCPUTIMAX, NOASSIZMAX, 
               are observed as values for TOKDANAM, with no values after
               the TOKDANAM field.                                      
   Thanks to Fred Schmidt, Northern Territory Government, AUSTRALIA.    
   Thanks to Andrew Krink, Northern Territory Government, AUSTRALIA.    
   Thanks to Scott Thomson, Northern Territory Government, AUSTRALIA.   
Change 24.011  Negative and missing values were created in PDB.TYPE30_6 
VMAC30         after Change 23.296 revised the deaccumulation logic to  
Feb 27, 2006   support wrapping of ACTIVETM/RESIDTM.  Additionally, the 
               coversion of GMT timestamps to local using GMTOFF30 fails
               when ONLY subtype 6 records are read; subtype 6 records  
               don't contain the SYNCTIME value needed calculate the GMT
               offset, so MXG gets the RETAINed GMTOFF30 from the prior 
               SMF 30 record of different subtype.                      
              -The errors could also cause fewer observations to be     
               created in PDB.TYPE30_6.                                 
              -However, variable GMTOFF30 will still be missing value in
               PDB.TYPE30_6 if no prior 30s were found, and that will be
               the only clue that the INTBTIME/INTETIME/SYNCTIME values 
               that MXG created (for symmetry with PDB.SMFINTRV) are not
               on local time, but are still on GMT.                     
   Thanks to Diane Eppestine, AT&T Services, Inc, USA.                  
Change 24.010  Variable LPARNSW (percent when capped) in RMF/NTRV and   
VMAC7072       TYPE70 datasets could be zero when capping was active,   
Feb 26, 2006   due to an error in the SPLIT70 redesign.  The statement  
               LPARNSW=SMF70NSW should only have been executed when the 
               LPARNUM=PARTISHN, but it was mislocated and executed for 
               the last LPARNUM.  And, of course, my test data did have 
               PARTISHN equal to the last LPARNUM, so the error was not 
               caught sooner.                                           
              -Array subscript out of range with exactly 60 LPARS.  The 
               S70LPCP array was defined with 60 elements, but 61 are   
               needed to account for the PHYSICAL LPAR.  I had assumed  
               than only 59 real LPARs plus the PHYSICAL was the limit. 
   Thanks to Diane Eppestine, AT&T Services, Inc, USA.                  
   Thanks to Brian Crow, British Telecom, ENGLAND.                      
Change 24.009  Variable AVGWKSET in TYPE30 datasets was too large if you
VMAC30         have IFAs, because I didn't know that PAGESECS, which is 
Feb 27, 2006   the source of AVGWKSET, is based on service, and IFA time
               and TCB time are included in service.  IBM separates the 
               IFA and TCB time in RMF for performance management, and  
               in SMF for charge back, but doesn't separate them in the 
               Service Units, nor for TIME= on JCL, or in the CPUTIMER  
               or TIMEUSED services.  zIIPs will be handled the same    
               way.  This would be important if AVGWKSET and PAGESECS   
               had any real use in memory utilization measurmement, but 
               they don't, as PAGESECS only counts the memory frames    
               owned by the task when it is executing TCB or IFA. All   
               of the pages owned by the task while in wait state       
               (wait for CPU dispatch, page fault, I/O, cross memory)   
               are NOT counted in PAGESECS.  In addition, AVGWKSET by   
               itself is a poor metric, because it only measures the    
               average number of pages that might be swapped out; it    
               does NOT measure memory utilization because it does NOT  
               indicate how LONG those pages were held.  Why does the   
               AVGWKSET exist? Primarily for modeling programs, which   
               can take that as a metric, and inside the model, multiply
               by the modeled duration, so the model program can measure
               memory utilization (like old K-Core HOURS) and compare   
               with the memory capacity (GIGABYTES times 24 Hours).     
               And finally, tasks don't "OWN" real memory; z/OS decides 
               how much memory to dole out to tasks based on service    
               objectives, so whatever memory utilization might be      
               measured is not because the task 'wanted' that memory,   
               but because z/OS decided to give it that memory.         
              -Variable CSTORE30 should never have been created as such.
               It does not measure CSTORE pages, but only measures the  
               IARVSERV Shared Pages used by this task, and thus it is  
               almost always zero, except for tasks that share pages.   
                 Shared segments allow two address spaces to have       
                 addressability to the same data, like a private CSA,   
                 and was added for posix compliance.  The shared areas  
                 must be overtly set up by applications and I'm not     
                 aware of any current exploiters.                       
               To avoid confusion, and hopefully to draw your attention 
               to this change, CSTORE30 is now set to a missing value.  
   Thanks to Gennady Katsnelson, AT&T Services, Inc, USA.               
   Thanks to Diane Eppestine, AT&T Services, Inc, USA.                  
   Thanks to Jack Hudnall, AT&T Services, Inc, USA.                     
Change 24.008  Corrections for TPF Continuous Monitor date; the "QUICK  
UTILTPFC       FIX" that reset 3827 to 3826 was removed, since it fixed 
VMACTPFC       nothing and created errors.  Debugging PUT statements in 
Feb 23, 2006   UTILTPFC and VMACTPFC members were commented out.        
              -BY variables were corrected from SYSTEM SMFTIME (MVS!!)  
               to the TPFC variables TPFCSS TPFCSSU TPFCTIME.           
   Thanks to Chris Weston, SAS Institute ITRM, USA.                     
Change 24.007  Support for the "Memory Monitor" that writes an SMF      
ASMUSR1        record that tracks the memory object sizes by JOB.       
EXUSR1ME       This is in intial testing.                               
FORMATS        You must run FORMATS and then update IMACKEEP with the   
IMACUSR1       MACRO _IDUSR1  nnn  %                                    
TYPEUSR1       definition to set the SMF record number.                 
Feb 22, 2006                                                            
   Thanks to Dean Montevago, Visiting Nurse Service of New York, USA.   
Change 24.006  APPARENT MACRO MAC102S error with ANALDB2R or READDB2 is 
READDB2        corrected with this revision, although we have NOT been  
Feb 22, 2006   able to replicate the error, we know the code was wrong. 
   Thanks to Jim Nickolas, LEXIS-NEXIS, USA.                            
Change 24.005  Support for APAR OA14340 (follow on the OA11675) which   
VMAC30         now creates an 8-byte field (SMF30TEX) to replace 4-byte 
Feb 22, 2006   SMF30TEP when TEP overflows.  Variable EXCPERR=Y is set  
               if bit SMF30TEF is on by OA11675, but with OA14340, MXG  
               stores SMF30TEX in EXCPTOTL instead of SMF30TEP, and the 
               EXCPERR is blanked, since EXCPTOTL is now valid.         
               Similar change made to SMF32 fields also.                
Change 24.004  ASUMTMNT failed if _GRPMNNM and _GRPMNCD were used to    
ASUMTMNT       define "Locations" for tape devices; Change 23.253 had   
Feb 23, 2006   changed to those macro names, but ASUMTMNT still had the 
               initial _Gxxxxxx names that were later changed.          
   Thanks to Paul Bennett, JPMorganChase, ENGLAND.                      
Change 24.003  Toleration support for z/VM 5.2 (INCOMPATIBLE).  The 10.1
VMACVMXA       Application Server 10.2 record was changed from 24 to 28 
Feb 23, 2006   bytes, but there is no field with the number of entries, 
               nor the length of the entries, so a MOD(CALDATLN,24) and 
               MOD(CALDATLN,28) to create LEN0D of 24 or 28 is inserted 
               to figure out which length is present.                   
               Without this correction, BROKEN CONTROL RECORD messages  
               are printed on the log.                                  
               There are many new data fields added to the MONWRITE data
               in z/VM 5.2, and these data are not yet supported in this
               change.   The known records and new data lengths are here
               so I can whittle them down over time:                    
                 REC  SKIP  REC  SKIP  REC  SKIP  REC  SKIP  REC  SKIP  
                 1.6   12   0.22   64  3.1   220  3.14   20  6.21   8   
                 1.14   2   0.3    96  3.19   68  3.18   40  4.9   20   
                 4.9   20   0.21   64  3.2    80  4.3    20             
                 0.4   12   3.3    12  3.20  108  5.9    92             
   Thanks to Pat Curren, SuperValu, USA.                                
Change 24.002  The ML-38 default DEBUG=YES should be changed to DEBUG=NO
ASMTAPEE       (unless you are specifically working with MXG support).  
Feb 20, 2006   The DEBUG=YES option was intended only for investigation 
Apr  7, 2006   of STK HSC exit code, and should not have been enabled,  
               as DEBUG=YES causes a dump for any ABEND the monitor     
               encounters, even ones that we know can happen.           
                  One specific known ABEND occurs when we are in cross  
                  memory and running TIOT entries, and the chain has    
                  been modified while we're in it: with DEBUG=NO, that  
                  ABEND is ignored and suppressed and our code recovers 
                  and then continues, minus only the information we now 
                  can't find in the modified TIOT.                      
               However, there is NO loss of data; the SMF records were  
               written and the monitor continued to monitor; it is only 
               to suppress the unneeded dumps.                          
               While this change was dated in Feb, and should have been 
               made in the ASMTAPEE member in MXG 24.01, the actual     
               debug option was not disabled until April 7, 2006, which 
               is now the LAST CHANGED date in ASMTAPEE.  Only if your  
               ASMTAPEE is dated earlier, would you need to change the  
               line 3248 in that ASMTAPEE at ML-38, from what was there:
                 DODEBUG  EQU   B'00001000'         DO DEBUGGING STUFF  
               to now read:                                             
                 DODEBUG  EQU   B'00000000'         DO DEBUGGING STUFF  
               and then reassemble ASMTAPEE to disable DEBUG=YES.       
   Thanks to Dr. Alexander Raeder, ATOSORIGIN, GERMANY.                 
   Thanks to Beau Chavis, Bank of America, GERMANY.                     
Change 24.001  The DB2 Audit Trace IFCIDs 140, 141, 142, and 145 caused 
VMAC102        INPUT STATEMENT EXCEEDED error if the SQL Text length was
Feb 20, 2006   more than 4000 bytes.  MXG used length field QW014nLL in 
               its INPUT QW014nTX $VARYING. QW014nLL, but the ERROR made
               me RTFM ("F=Fine"), amd I found that IBM did document the
               truncation, providing adjacent QW014nLE field with the   
               length of the truncated SQL text in the record, so it is 
               now used for the SQL text INPUTs.                        
                  And IBM doesn't always store exactly the first 4000;  
                  one record had QW0145LL=13120, but QW0145LE=3980.     
   Thanks to Bjorn Helgestad, VPS ASA, NORWAY.                          
   Thanks to Steinar Amot, VPS ASA, NORWAY.                             
LASTCHANGE: Version 24.