COPYRIGHT (C) 1984-2023 MERRILL CONSULTANTS DALLAS TEXAS USA

MXG CHANGES 15.15

=========================member=CHANGE15================================
 /* COPYRIGHT (C) 1984-1998 MERRILL CONSULTANTS DALLAS TEXAS USA */     
                                                                        
This is MXG Version 15.15  -  dated Feb 23, 1998, thru Change 15.391.   
Second  MXG Version 15.09  -  dated Feb 17, 1998, thru Change 15.384.   
First   MXG Version 15.09 was dated Feb 16, 1998, thru Change 15.382.   
    Newsletter THIRTY-TWO was dated Feb 23, 1997, thru Change 15.382.   
        MXG Version 15.08 was dated Jan 15, 1998, thru Change 15.340.   
        MXG Version 15.07 was dated Dec 18, 1997, thru Change 15.311.   
        MXG Version 15.06 was dated Nov 24, 1997, thru Change 15.287.   
        MXG Version 15.05 was dated Oct 02, 1997, thru Change 15.238.   
    Newsletter THIRTY-TWO was dated Sep 12, 1997, thru Change 15.206.   
        MXG Version 15.04 was dated Sep 01, 1997, thru Change 15.206.   
 Final+ MXG Version 15.03 was dated Jun 30, 1997, thru Change 15.151.   
 Final  MXG Version 15.03 was dated Jun 26, 1997, thru Change 15.148.   
 Second MXG Version 15.03 was dated Jun 25, 1997, thru Change 15.145.   
 First  MXG Version 15.03 was dated Jun 24, 1997, thru Change 15.144.   
        MXG Version 15.02 was dated May 23, 1997, thru Change 15.103.   
        MXG Version 15.01 was dated May  6, 1997, thru Change 15.087.   
    Newsletter THIRTY-ONE was dated Feb 21, 1997, thru Change 14.343.   
                                                                        
Contents of member CHANGES:                                             
                                                                        
I.    MXG Software Version 15.15 is now available, upon request.        
II.   MXG Technical Notes                                               
III.  MVS Technical Notes.                                              
IV.   DB2 Technical Notes.                                              
V.    IMS Technical Notes.                                              
VI.   SAS Technical Notes.                                              
VII.  CICS Technical Notes.                                             
VIII. Windows NT Technical Notes.                                       
IX.   Incompatibilities and Installation of MXG 15.15.                  
X.    Online Documentation of MXG Software.                             
XI.   Changes Log                                                       
                                                                        
I.   MXG Software Version Status.                                       
                                                                        
I.   Annual MXG Software Version 15.15 was shipped to all sites,        
     along with the printed copy of MXG Newsletter THIRTY-THREE,        
     during the last week of February, 1998, by US Air Mail.            
                                                                        
 1. Major enhancements added in MXG 15.15 dated 23Feb1998:              
                                                                        
    MXG Tape Mount Monitor ASMTAPES ML-16 now supports four-digit UCBs. 
    Support for RMF Monitor III CPU, PGP, ENC records.                  
    Support for TME 10 Netview OS/390 1.1 SMF type 37.                  
                                                                        
    Major enhancements added in MXG 15.09 dated 16Feb1998:              
                                                                        
   Support for OS/390 Release 2.5 (no changes, need 15.04 or later).    
   Support for AIX commands IOSTAT/PSSTAT/VMSTAT output into SAS.       
   Support for StorageTek's VSM SMF records subtypes 9 thru 25.         
   Support for IDMS Journal format for IDMS V12.                        
   Support for Boole's IMF 3.2 (for IMS 6.1) INCOMPATIBLE               
   Landmark TMON for CICS V2 variables renamed.                         
   Landmark for MVS V2 INPUT STATEMENT EXCEEDED.                        
   New &MACxxxx macro variable added to all VMACs to override IMACs.    
   All VMACs for SMF records now start with IF ID=....                  
                                                                        
    Major enhancements added in MXG 15.08 dated 15Jan1998:              
                                                                        
   Support for Netview NPM Version 2.3 and APAR OW17876.                
   Support for AS/400 - OS/400 Release 4.1.0 (INCOMPATIBLE).            
   Support for ICSS SMF type 103 (Internet Connection Secure Server).   
   Support for RMF type 79 subtype 15 (IMS IRLM Long Lock) record.      
   Hardcoded "PDB." DDname externalized into &PDBxxxx macro variables.  
   ASUMUOW option to get real TRANNAME instead of CPMI/CSMI tranname.   
   Performance improvements in BUILDPDB (_CDE's ordered, ELSE DOs).     
   New _Sxxyyy "PROC SORT" macros defined for PDB datasets in IMACs.    
                                                                        
    Major enhancements added in MXG 15.07 dated 18Dec1997:              
                                                                        
   Support for DPPX/370 Performance Reporter output.                    
   Support for MODEL204 Version 3.4 INCOMPATIBLE.                       
   Support for SAR CA-VIEW SMF exit SARSRQUX.                           
   Support for Omegamon for VTAM V400 (COMPATIBLE).                     
   Support for Landmark the Monitor for MVS Version 2 (INCOMPATIBLE).   
   Support for SAR CA-VIEW SARSRQUX SMF record.                         
   Support for Fujitsu's AIM V20 AIM/RDBII SMF type 98 record.          
   ASMTAPES ML-15 adds dump suppression, OS/390 1.3 JCT changes.        
     (MXG 15.06 said it contained ML-15, but actually still had ML-14). 
   VELOCITY variables are now multiplied by 100.                        
                                                                        
    Major enhancements added in MXG 15.06 dated 24Nov1997:              
                                                                        
   Support for CICS Transaction Server 1.2, INCOMPATIBLE.  IBM inserted 
      new fields in the middle of CICSTRAN record, so you must install  
      MXG 15.06 or later for CICS TS 1.2 processing.  New statistic data
      is also captured; see Change 15.274.                              
   Support for Landmark's The Monitor for CICS/ESA 2.0, INCOMPATIBLE.   
   CICS TS V1.1 APAR UN98309 INCOMPATIBLE,  Must install MXG 15.06.     
   Support for NTSMF Version 2.1 (INCOMPATIBLE), install MXG 15.06.     
   CICINTRV logic validated, must use this newest revision.             
   Duplicate CICS UOWTIME values due to SAS non-resolution of DATETIMEs.
   Support for Subtype 11 Type 88 System Logger.                        
   Support for Applied Expert Systems Clever TCP/IP.                    
   Support for HP MeasureWare for Terra Data OS.                        
   Support for DFSORT APAR PN71137 (COMPATIBLE).                        
   Support for HP MeasureWare for Terra Data OS in TYPEMWTE.            
   Support for Boole & Babbage MQ Series MVMQS VSAM History Records.    
   OS/390 R2.4 Goal Mode IBM Doc Error INVALID DATA R723CIDT fixed.     
   New IHDR110 exit for CICS record selection by APPLID.                
   Utility to recreate VBS from data with no RDW/BDW.                   
                                                                        
    Major enhancements added in MXG 15.05 dated 02Oct1997:              
                                                                        
   Support for JES3 TYPE26 APAR OW26297 adds account fields.            
   Support for APPC APAR OW16975 APAR-in-Error (INCOMPATIBLE).          
   Support for 255 Structures in a Coupling Facility (INCOMPAT).        
   Support for CA's IDMS 14.0 (INCOMPATIBLE).                           
   Support for BETA93 Release 1.3 (INCOMPATIBLE) (subtype 21 only).     
   Support for SMF type 91 new subtype 21 (SmartBatch) data.            
   Support for TCP/IP 3.2 API Calls record changes.                     
   Duplicate MULTIDD='Y' step records may not be deleted in BUILDPDB.   
   Catalog SMF Type 65 record INPUT STATEMENT EXCEEDED corrected.       
   PDB.ASUMUOW options externalized, zero obs now created by default.   
   DB2 Trace 102 subtype 140 INPUT STATEMENT EXCEEDED.                  
   Iceberg / IXFP subtypes 2,3,4 not output, MXG 15.02-15.04 only.      
   TYPE70 variable PCTMVSBY incorrect in MXG 15.01-15.04.               
                                                                        
   Major enhancements added in MXG 15.04 dated 01Sep1997:               
                                                                        
   MXG 15.04 Software is now over one million lines (1,008,660)!        
                                                                        
   MXG now protects ALL date fields for year 2000.                      
   Support for OS/390 Version 2 Release 4 (COMPATIBLE).                 
   Support for "Goal Mode SMF" type 99 subtype 6.                       
   Support for DCOLLECT in DFSMS 1.4 (COMPATIBLE)                       
   Support for VTAM 4.4 changes to SMF type 50.                         
   Support for CA-1/TMS Release 5.2 (COMPATIBLE).                       
   Support for ObjectStar 3.0 (INCOMPATIBLE in MXG).                    
   Support for Xerox's XPSM Version 2 SMF records.                      
   Support for HMF SMF Subtype 11 (DS3 Statistics).                     
   Support for five new NTSMF Objects.                                  
   Support for VM ADSM Account Records in VM/ESA.                       
   Support for TMON/DB2 record type "DE".                               
   Support for Boole MainView for CICS stat records.                    
   Support for Catalog Cell 'E7'(Alias) and invalid '05'x segment.      
   Support for RACFEVNT=22 and 59 in TYPE80A.                           
   Support for Shared Medical CICS Journal OASMON records.              
   Support for Peregrine's Service Center SMF record.                   
   Table of Holidays for SHIFT example added in IMACSHFT.               
                                                                        
   Major enhancements added in MXG 15.03 dated 30Jun1997:               
                                                                        
   Support for NTSMF Version 2.0 (INCOMPATIBLE; 15.02 was not correct). 
   Support for Windows NT 4.0 Service Pack 2 (INCOMPATIBLE also).       
   Support for IXFP SMF subtypes 6 and 7 (SNAPSHOT, SPACE UTILIZATION)  
   Support for TYPE1415 APAR OW25263 (for 3590s).                       
   Support for TYPE42 APAR OW26451/OW26543/OW26497 MAXRSPTM added.      
   Support for TYPE42 APAR OW20921 adds TYPE42VT VTOC/VVDS counts.      
   Support for OMVS RACF data with RACF utility IRRDBU00.               
   Support for new fields in TYPEEDGR DFSMSrmm extracts.                
   ASMTAPES at ML-14 populates fields, protects 0C4 ABENDs better.      
   RMFINTRV now allows Report RPGNs/Classes to be used in IMACWORK.     
   Format MGBYTRT (Bytes per Second) can truncate value on the left.    
   BUILDPDB enhanced to rename WORK.STEPS for IT Service Vision.        
   Leap second support for type 30, 110, and 100-102 "GMT" conversion   
   Trending for TYPE72GO into TREND.TRND72GO added.                     
   ANALCNCR Example counts Avg & Max Logged-ON TSO users from PDB.JOBs. 
                                                                        
   Major enhancements added in MXG 15.02:                               
                                                                        
   Support for DB2 Version 5.1 (MXG 14.14 tolerates, COMPATIBLE!!)      
   Support for Filetek's Optical Disk SMF record                        
   Support for OMVS data in RACF database (IRRDBU00 unload)             
   Enhancements to VMXGSUM for OBS=0 processing                         
   Replacement for MXG 15.01's defective CICINTRV.                      
   ASMTAPES Technical Note updated - cause of 0C4 is now known.         
                                                                        
   Major enhancements added in MXG 15.01:                               
                                                                        
   Errors in MXG 14.14 that are fixed in MXG 15.01:                     
                                                                        
   ASMTAPES (ML13) is available, recovers from 0C4s, see MXG Tech Notes.
   WORK.CICINTRV.DATA DOES NOT EXIST.                                   
   OS/390 R3 Goal only: Type 72 INPUT STATEMENT EXCEEDED RECORD LENGTH. 
   FILE counts in TYPETMON were incorrect before and after 14.14.       
                                                                        
   New Support in MXG 15.01:                                            
                                                                        
   ANALDDCN to analyze impact of DDCONS(NO) on duplicated SMF bytes     
   TYPEIMSD for IMS DBCTL transactions from IMS 07/08 log records       
   SMFPRM00 with first draft of MXG discussion for SMF parameters       
   Support and exploitation of new TALO fields added by ASMTAPES ML-12. 
   Support for APAR OW25152 (adds PRINTWAY Queue Name to TYPE6).        
   Support for Altai's ZARA Tape Management Release 1.2                 
   Support for Anacom's Anastack spooler's type 6 SMF                   
   Support for Boole and Babbage IMF 3.2.                               
   Support for CA-DISPATCH Version 6 with 5-digit JESNR                 
   Support for CA-ROSCOE Version 6 SMF record verified.                 
   Support for COMPAQ hardware NTSMF objects.                           
   Support for Hitachi 7700 changes to TYPE74CA/CACHET90 (INCOMPAT)     
   Support for Landmark's Performance Works/Smart Agents for UNIX 4.0   
   Support for MEMO subtype 8 creates new MEMODIST dataset.             
   Support for NETSPY Version 5.0 is already in MXG 14.14               
   Support for Virtual Tape Server additions to SMF type 94             
   Support for World Wide Web Common Log Format records.                
   Support for all OS/400 Release 3.7.0 records.                        
   UDUMPEBC utility for MVS-like LIST; hex dump under ASCII systems.    
                                                                        
  All of these enhancements are described in the Change Log, below.     
                                                                        
    Availability dates for the IBM products and MXG version required:   
                                                                        
                                       Availability     MXG Version     
      Product Name                     Date              Required       
                                                                        
      MVS/ESA 4.1                      Oct 26, 1990.        8.8         
      MVS/ESA 4.2                      Mar 29, 1991.        9.9         
      MVS/ESA 4.2.2                    Aug     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        
      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                     Oct 27, 1997        15.06        
      CRR 1.6                          Jun 24, 1994.       12.02        
      CRR 1.7                          Apr 25, 1996.       14.02        
      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        
      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        
      MQM 1.2, 1.3, 1.4                Apr 25, 1996.       14.02        
      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        
      RMDS 2.1, 2.2                    Dec 12, 1995.       12.12        
      TCP/IP 3.1                       Jun 12, 1995.       12.12        
      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        
      IMS     4.1                      Jul  4, 1994        12.02        
      IMS     5.1                      Jun  9, 1996        14.05        
      AS400 3.7.0                      Nov  1, 1996        15.01        
      AS400 4.1.0                      Dec 30, 1996        15.08        
                                                                        
    Availability dates for non-IBM products and MXG version required:   
                                                                        
                                       Availability     MXG Version     
      Product Name                     Date or Change    Required       
                                                                        
      Microsoft                                                         
       Windows NT 4.0 and NT 3.51                          14.14        
       Windows NT 4.0 Service Pack 2                       15.03        
      Demand Technology                                                 
       NTSMF Version 1 Beta                                14.11        
       NTSMF Version 2.0                                   15.03        
       NTSMF Version 2.1                                   15.06        
      Landmark                                                          
       The Monitor for DB2 Version 2                       13.06        
       The Monitor for DB2 Version 3                       15.03        
       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 MVS/ESA 1.3  -                      12.05        
       The Monitor for MVS/ESA 1.5  -                      12.05        
       The Monitor for MVS/ESA 2.0  -                      15.09        
      Candle                                                            
       Omegamon for CICS V200 User SMF                     12.05        
       Omegamon for CICS V300 User SMF                     13.06        
       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 SMS V100/V110                          12.03        
      CA                                                                
       ASTEX 2.1                                           14.04        
       NETSPY 4.7                                          14.03        
       NETSPY 5.0                                          14.03        
      Boole & Babbage                                                   
       IMF 3.1 (for IMS 5.1)                               12.12        
      Memorex/Telex                                                     
       LMS 3.1                                             12.12A       
                                                                        
                                                                        
II.  MXG Technical Notes                                                
                                                                        
 1. Measurement of CPU Utilization in PR/SM,MDF,MLPF environments.      
                                                                        
   This note was written for ACHAP10, "Processor Utilization".          
                                                                        
   The ASUM70PR dataset is built from the TYPE70PR detail data using    
     %INCLUDE SOURLIB(ASUM70PR);   as shown in JCLPDB6 example.  There  
   is one observation in ASUM70PR from each MVS SYSTEM for each RMF     
   Interval, and that observation describes the utilization of each of  
   the LPARS, and their sum, which is the hardware busy of the platform.
      If you have multiple MVS Systems, and if you process their SMF    
      data together, then duplicate data will exist in ASUM70PR, since  
      SYSA's type 70 record will describe all LPARs, and SYSB's type 70 
      will also describe all LPARs, so you must select only one set of  
      observations (from SYSA or from SYSB) to avoid duplication.       
                                                                        
   For each partition, the Partition Dispatch Time and the Effective    
   Dispatch Time (and their difference, the CPU time when this partition
   was dispatched for LPAR management of this partition) are recorded.  
   There is also a "pseudo" partition named "PHYSICAL" that exists only 
   in the RMF type 70 record that records the LPAR management dispatch  
   time that could not be charged to a specific partition.              
                                                                        
                                                                        
                  Schematic of ASUM70PR observation                     
                                                                        
                 Total Partition Dispatch (CPU) Time                    
      CPUACTTM= LPnUPDTM summed for all real partitions + LPPUPDTM      
                                                                        
                              CPUACTTM                                  
   |______________________________________________________________|     
   |                                                              |     
                                                                        
   |    LPAR #1    |    LPAR #2    |   LPAR # 3    |  "PHYSICAL"  |     
   |  LP1UPDTM     |  LP2UPDTM     |  LP3UPDTM     |   LPPUPDTM   |     
   |  Dispatched   |  Dispatched   |  Dispatched   |   Dispatched |     
   |_______________|_______________|_______________|______________|     
   |  |            |  |            |  |            |              |     
   |  |  LP1UEDTM  |  |  LP2UEDTM  |  |  LP3UEDTM  |                    
   |  |   LPAR1    |  |   LPAR2    |  |   LPAR3    |                    
   |  |  Effective |  |  Effective |  |  Effective |                    
   |  |            |  |                                                 
                                                                        
    __              __              __              ______________      
   |  |            |  |            |  |            |              |     
     1               2               3                "Physical"        
   LP1MGTTM        LP2MGTTM        LP3MGTTM           LPPUPDTM          
     In-partition LPAR Management Time            Unassigned LPAR time  
                                                                        
      Important variables in PDB.ASUM70PR dataset:                      
                                                                        
      LPnUPDTM  - Partition Dispatch Duration for LPAR n.               
      LPnUEDTM  - Partition Effective Dispatch Duration for LPAR n.     
      LPnMGTTM  - LPnUPDTM minus LPnUEDTM, this partition management.   
      LPPUPDTM  - Physical partition dispatch duration.                 
      PARTNCPU  - Number of engines in this platform.                   
      PCTCPUBY  - Percent CPUs were Busy in all LPARS, equal to the sum 
                  of all partition's (including PHYSICAL) dispatch time,
                  minus HiperDispatch Parked Time, divided by the Total 
                  "capacity" of all ONLINE, NON-PARKED engines:         
                  100*CPUACTTM/(NRCPUS*DURATM).  This is the percent    
                  of the total capacity of the box that was used.  If   
                  the Average NRCPUS is 5.5, and CPUACTTM was 4 hours   
                  in a one hour interval, PCTCPUBY would be 72% busy.   
      PCTLnBY   - Percent "Physically" Busy in LPAR n, equal to the LPAR
                  Dispatch time divided by the Total "capacity" of all  
                  engines in the box:  100*LPnUPDTM/(PARTNCPU*DURATM).  
                  If an LPAR was dispatched for 1 hour, and the CEC has 
                  5 engines, then PCTLnBY for that LPAR would be 20%,   
                  because that LPAR used 20% of the hardware platform.  
      PCTLnOV   - Percent "Phsyically" Busy in "LPAR Overhead" in this  
                  LPAR, 100*LPnMGTTM/(PARTNCPU*DURATM).                 
      LPnNRPRC  - Number of engines available to LPAR n.                
      LPnDUR    - LPAR n's "Up time" or "Availability time to execute   
                  CPU", the sum of DURATM across all LCPUs in LPAR n,   
                  or LPnDUR=LPnNPRC*DURATM.  This is the duration when  
                  this LPAR could have been dispatched.  If the LPAR was
                  IPLed as a 3-engine MVS machine, in one hour, it would
                  have 3 hours of "Up Time" (or 3 hours of "capacity"). 
      LPCTnBY   - Percent "Logically" Busy in LPAR n, equal to the LPAR 
                  Dispatch time for the partition divided by the LPAR's 
                  "Up Time", 100*LPnUPDTM/LPnDUR.  If a 3-engine LPAR   
                  was dispatched for 60 minutes in one hour, its LPCTnBY
                  would be 33%.  This variable describes the percent of 
                  LPAR capacity, in contrast to variable PCTLnBY which  
                  describes the percent of Hardware Platform capacity.  
                  If that same 3-engine LPAR was executing on a 5-engine
                  CEC, PCTLnBY would be 20%, because that LPAR used 20% 
                  of the hardware platform, while LPCTnBY is 33% of the 
                  CPU time available to this LPAR.                      
      LPnCAP    - 'Y' if this partition is capped.                      
      LPnCHG    - 'Y' if something changed in LPAR n.                   
      LPnDED    - 'Y' if this partition has all-dedicated-CPUs.         
      LPCTnOV   - Percent "Logically" Busy in "LPAR Overhead"           
                  100*LPnMGTTM/LPnDUR, describes how much of the        
                  Dispatch Duration was for management of this LPAR.    
                                                                        
      Important variables in PDB.TYPE70PR dataset:                      
                                                                        
      LPARNUM   - Logical Partition Number, = PARTISHN in TYPE70 dataset
      LCPUPDTM  - Partition Dispatch Time                               
      LCPUEDTM  - Partition Effective Dispatch Time                     
                                                                        
    The following example is real data from a 5-engine CEC (Central     
    Electronic Complex, the preferred name for a platform).  This CEC   
    has three LPARs: LP1 has two engines (and is lightly used), LP2 has 
    five engines, and LP3 has three engines.  All CPUs are shared and   
    Wait Completion is No.  One hourly observation in ASUM70PR showed:  
                                                                        
             PARTNCPU  5          - Number of real engines in CEC       
             DURATM    1:00:00.05 - Duration interval                   
             CPUACTTM  4:40:35.32 - Total CPU Dispatch, all engines     
             CPUOVHTM    15:35.40 - Total CPU Overhead in LPARS         
             LPPUPDTM     6:40.28 - Total "Physical" Overhead           
             PCTCPUBY  93.53%     - CPUACTTM as a percent of hardware   
             PCTOVHD    5.20%     - CPUOVHTM as a percent of hardware   
             PCTPOV     2.22%     - LPPUPDTM as a percent of hardware   
                                                                        
                          LP1            LP2            LP3             
             LPnNRPRC     2              5              3               
             LPnDUR       2:00:00.10     5:00:00.25     3:00:00.15      
             LPnUPDTM        4:49.67     3:33.06.54       55:58.85      
             LPnUEDTM        2:56.63     3:29:16.51       52:46.77      
             LPnMGTTM        1:53.03        3:50.02        3:12.07      
             LPCT1BY      4.02%          71.04%         31.10%          
             LPCT1OV      1.57%           1.28%          1.78%          
             PCTL1BY      1.61%          71.04%         18.66%          
             PCTL1OV       .63%           1.28%          1.07%          
                                                                        
             The LP2 has the same PCTL2BY as LPCT2BY because it can use 
             all five engines, and its logical and physical utilization 
             are the same.  The LP3, with only three engines available  
             to its MVS, shows it is using 18.66% of the five hardware  
             engines (PCTL3BY), while LPCT3BY shows that this actually  
             is 31.1% of the CPU time possible for those three logical  
             CPUs available to LP3.                                     
                                                                        
    The dispatch time measurements in ASUM70PR are always accurate in   
    describing the total platform busy and each LPARs use of the total, 
    because when an LPAR is dispatched, its processors are not available
    to any other LPAR, and thus ASUM70PR does report platform capacity. 
                                                                        
    Furthermore, if all CPUs are shared and Wait Completion is No, the  
    ASUM70PR dispatch duration is the actual CPU busy time, so not only 
    is the total platform capacity known, but also the utilization of   
    individual LPARs is measured in ASUM70PR.                           
                                                                        
                                                                        
    The problem arises when CPUs are Dedicated to an LPAR, or when Wait 
    Complete = Yes is used, because the dispatch time in those cases is 
    NOT equal to the CPU executing time.  While a dispatch time of one  
    hour does mean that one hour of total platform capacity was used by 
    an LPAR, (i.e., not available to other LPARs), the actual CPU time  
    used by that LPAR may be a lot less than one hour.  What we need is 
    the Wait time measured inside each MVS system, which is in the MVS  
    TYPE70 dataset, but each type 70 record only has a single TYPE70    
    segment (for the LPAR in which this MVS System executed); we do not 
    get a TYPE70 segment for the other LPARs.  But MXG does store the   
    MVS Wait Time from the TYPE70 segment into variable ORIGWAIT in the 
    TYPE70PR observation for each LCPUADDR, which shows this data:      
                                                                        
                                                                        
    Wait Complete = YES example:  System SYSC (LPARCPUS=2 PARTNCPU=4)   
                                                                        
                            LPARNUM=PARTISHN=2                          
                LCPU=0                           LCPU=1                 
             DURATM=15 min                    DURATM=15 min             
    |---------------------------------|-------------------------------| 
                                                                        
          8 min             7 min                15min                  
    |--------------------|------------|-------------------------------| 
       Dispatched          LPAR Wait          Dispatched                
       LCPUPDTM 70PR         calc             LCPUPDTM 70PR             
                                                                        
       5 min      3 min     7 min           11 min             4 min    
    |----------|=========|------------|---------------------|=========| 
      ORIGWAIT   BUSY      LPAR Wait      ORIGWAIT             BUSY     
        70       calc        calc            70                calc     
                                                                        
                                                                        
    This LPAR has two LCPUs, Wait Complete=Yes, but due to the other    
    LPAR on this platform (that was also using Wait Complete=Yes), the  
    LCPU=0 was dispatched for only 8 minutes of the 15 minute interval, 
    while LCPU=1 was dispatched for all 15 minutes.  The ORIGWAIT from  
    TYPE70 shows that LCPU=0 was actually CPU Busy for only 3 minutes,  
    and LCPU=1 was actually CPU Busy for only 4 minutes.                
                                                                        
    While there are only two LCPUs for this LPAR, this LPAR is in a     
    platform that has four engines, so the ASUM70PR calculation is:     
        PCTL2BY = (8 disp +  15 disp )/ (4*15) = 23/60 = 38%            
    because 38% of the dispatch capacity of the four engines in the     
    hardware platform was consumed by this LPAR in this interval.       
                                                                        
    However, RMF in its CPU Activity Report calculates two percentages  
    (and MXG replicates in both TYPE70 and TYPE70PR data):              
                                                                        
    PCTCPUBY = "LPAR Busy Time" = (3 busy + 4 busy) / (2 * 15)   = 23%  
                                                                        
    PCTMVSBY = "MVS Busy Time"  = (10 busy+lparwait + 4 busy)/30 = 48%  
                                                                        
    The "LPAR Busy Time" shows that this LPAR was busy for 7 of the 30  
    minutes that the two engines in the LPAR could have been executing, 
    and thus is a measure of how busy the MVS system might have been.   
                                                                        
    However, the "MVS Busy Time" calculated by IBM is at best confusing 
    and at worst wrong, for Wait Completion = Yes LPARs, because it     
    calculates the MVS busy time as DURATM minus ORIGWAIT, adding the 3 
    minutes busy and 7 minutes of LPAR wait from LCPU=0 to the 4 minutes
    busy from LCPU=1 to conclude 14 minutes of "busy time" out of the   
    30 minutes that the two engines could have been executing, for 48%! 
                                                                        
    But the MVS SRM never saw those possible 30 minutes of execution; it
    was dispatched for only 8 + 15 = 23 minutes, so a far more accurate 
    measure is "SRM Busy Time", the busy time over the dispatched time: 
                                                                        
    PCTSRMBY = "SRM Busy Time" = (3 busy + 4 busy) / 23 (dispatch) = 30%
                                                                        
    which more accurately reflects what MVS can do with Wait Comp=Yes,  
    and it strongly suggests that the IBM "MVS Busy Time" is wrong for  
    Wait Comp=Yes.  Note: Jan 2006:  Using WAITCOMP=YES is no longer an 
    issue; only the early AMDAHL implemented that option, as I recall.  
                                                                        
       (The example used the Partition Dispatch times, but to be        
        slightly more precise, using the Effective Dispatch times would 
        show what was delivered to MVS.  I am still deciding if I should
        create a new variable for PCTSRMBY, but want to send this       
        preliminary note to MXG-L, so I will update this part of this   
        note at a later date.)                                          
                                                                        
                                                                        
    Dedicated example:  System SYSA (LPARCPUS=3 PARTNCPU=4)             
                        LCPU=0   Dedicated, Wait=No                     
                        LCPU=1,2 Shared, Wait=No                        
                                                                        
                            LPARNUM=PARTISHN=5                          
           LCPU=0                                                       
      DURATM=15 min                          DURATM=15 min              
    |---------------------|       |------------------------------------|
                                                 LCPU=1                 
      14:59.20                      5:48.92         8:25.73   0:45.35   
    |---------------------|       |===============|---------|----------|
      Dispatched                    Dispatched      ORIGWAIT  Non-Disp  
      LCPUPDTM 70PR                 LCPUPDTM 70PR     70      Non-Wait  
                                     BUSY                      calc     
                                                                        
                                                 LCPU=2                 
      3:11.51    11:48.49           5:49.20         8:25.41   0:45.39   
    |----------|==========|       |===============|---------|----------|
      ORIGWAIT     BUSY             Dispatched      ORIGWAIT  Non-Disp  
        70         calc             LCPUPDTM 70PR      70     Non-Wait  
                                     BUSY                       calc    
                                                                        
                                                                        
    For all the three LCPUs in this LPAR, MXG calculates in ASUM70PR:   
      PCTL5BY = 100* ( 26.5 / 4*15) = 100 * 26.5 /60  = 44.37%          
    because the total dispatch time of the three LCPUs was 26.5 minutes 
    of the possible 60 minutes of dispatch time in the four engines of  
    the platform, and this is this LPAR's use of dispatch capacity.     
                                                                        
    But if we have the TYPE70PR observation from the system that has the
    ORIGWAIT measurement from TYPE70 for that dedicated LCPU, we can see
    the LPAR's total CPU busy time was only 11:48 + 5:48 + 5:49, or 22.5
    minutes, since 3 minutes of that dispatch time was in MVS wait time!
                                                                        
    The IBM RMF calculations for each LCPU and the total for all three  
    LCPUs in this LPAR show:                                            
                                                                        
        LCPU  PCTCPUBY   (calc)     PCTMVSBY   (calc)       Status      
         0     78.72   (11:48/15)    78.72   (11:48/15)    Ded,Wait=No  
         1     38.77   ( 5:48/15)    43.81   ( 6:33/15)    Shr,Wait=No  
         2     38.80   ( 5:49/15)    43.84   ( 6:34/15)    Shr,Wait=No  
        all    52.10   (23:17/45)    55.46   (24:55/45)    Combined     
                                                                        
    For the Dedicated LCPU, both PCTCPUBY and PCTMVSBY are calculated   
      PCTCPUBY=PCTMVSBY= 100*(DURATM-ORIGWAIT)/DURATM  = 78.7%          
      PCTMVSBY=PCTCPUBY= 100*(DURATM-ORIGWAIT)/DURATM  = 78.7%          
                                                                        
    For the Shared, Non-Wait LCPUs, the "Lpar Busy Time" is             
      PCTCPUBY= 100*LCPUPDTM/DURATM = 38.7%                             
    but the IBM calculation for the "MVS Busy Time" is                  
      PCTMVSBY= 100*(DURATM-ORIGWAIT)/DURATM = 43.8%                    
    because the PCTMVSBY value includes the 45 seconds of non-dispatched
    non-wait time recorded in the MVS Busy Time calculation!            
                                                                        
    Again, while PCTCPUBY is legitimate, PCTMVSBY raised more questions 
    than it answers, initially. Note: Jan 2006:  However, now it is     
    used to calculate the SHORTCPS variable, and is thus useful.        
                                                                        
    To summarize what percentages are printed where by IBM and reported 
    where by MXG, on RMF CPU Activity Report, the "LPAR Busy Time Perc" 
    is variable PCTCPUBY, and the "MVS Busy Time Perc" is variable      
    PCTMVSBY in dataset TYPE70 (and now in TYPE70PR as well).  On RMF's 
    Partition Data Report, IBM's "Logical Processors Total" is variable 
    LPCTnBY, and IBM's "Physical Processors Total" is PCTLnBY in dataset
    ASUM70PR for each LPAR, and the "Physical Processors Total" is the  
    variable PCTCPBUY in ASUM70PR.                                      
                                                                        
    Note:  I intend to revise this note as I learn more, especially for 
    millennium and/or MDF, in the near future. The purpose of this      
    much of the note was to document what is calculated by MXG and by   
    IBM when you try to compare RMF reports to MXG datasets, and to     
    point out basic problems if you have Dedicated or Wait Comp = YES.  
    Not only is there a problem in ASUM70PR in that we do not know the  
    true CPU busy time, we also have assumed the "capacity" was the     
    DURATM of the interval, but that is not always the case, especially 
    when LPAR weighting is taken into account.  No single percentage    
    value can be used, as it depends on your perspective.  ASUM70PR     
    reports usage percentages of the "dispatch" capacity, while TYPE70  
    still must be used to understand what is happening inside each MVS. 
                                                                        
 2. FAT32 file system reduces space needed for MXG from 139MB to 68MB.  
                                                                        
    On Windows 95 and Windows NT with FAT File Systems, the MXG Source  
    Library directory DIR command shows 3549 files totaling 57.7 MB,    
    but the files in that directory actually required 139.1 Megabytes   
    of disk space!  The 2GB disk drive with 32K cluster size wastes     
    space if the file is less than 32KBytes, and as only 272 of MXG's   
    source files are over 32K in size, the other 3277 small files waste 
    lots of disk space with large cluster size under FAT file systems.  
                                                                        
    Well that is a dead problem with the newer FAT32 file system that   
    virtually eliminates the space waste problem.  That same source     
    library required only 68.23 MegaBytes on a 9GB FAT32 disk drive!    
                                                                        
                                                                        
III. MVS Technical Notes.                                               
                                                                        
 1. APAR OW25609 corrects a stoppage of SMF type 30 interval records    
    (subtypes 2 & 3) and type 23 records, after a serialization problem.
    The APAR applies to MVS/4.3 thru OS/390 2.4.                        
                                                                        
 2. APAR OW28289 changes counts in type 30 variables TAPNMNTS/TAPSMNTS  
    (SMF30PTM/SMF30TPR).  In DF/SMS 1.2 and earlier, tape mount counts  
    were the number of physical mounts (actually, a count of volumes    
    that were verified by OPEN/CLOSE/EOV via a loadpoint read of the    
    VOL1 tape label).  That was changed by an SPE to DF/SMS 1.2.0 (which
    was included in DF/SMS 1.3.0 and 1.4.0); IBM decided instead to     
    count logical volumes (i.e., increment the mount count when OPEN    
    processing is entered with the tape drive in a ready state and with 
    the mounted volume at loadpoint).  A document change was prepared   
    but never distributed, and now IBM is backing out the SPE's effect, 
    and with this APAR, the counts revert to physical mount counts.  The
    APAR's text is confusing, because it lists PTFs for DF/SMS releases 
    1B0, 1C0, and 1D0, which turn out to be DFSMS 1.2, 1.3, and 1.4,    
    respectively.  If you depend on the count of tape mounts in type 30 
    records, you will want to apply this PTF.                           
                                                                        
 3. APAR OW28613 corrects errors in the JES2 Type 26 Purge record in the
    SMF26OAG Accounting Section offset.  I earlier thought MXG would not
    fail, but without that APAR, MXG offset validation was insufficient,
    an INPUT STATEMENT EXCEEDED occurs.  Now, Change 15.330 circumvents 
    the wrong value for SMF26OAG, but the ACCOUNTn fields in TYPE26J2   
    will be blank until you install to APAR to correct IBM's error.     
    Fortunately, MXG only uses the TYPE26J2 ACCOUNTn fields for jobs    
    that do not produce type 30s (JCL Errors or Cancel before start).   
                                                                        
 4. APAR OW28256 reports invalid CPU times measured (once again!) in RMF
    type 72 field SMF72RCT (MXG Variable CPURCTTM, which is summed into 
    variable CPUTM); PTF was available November 14 1997.  This causes   
    the total CPU time captured in type 72 records to exceed the total  
    CPU busy time, causing the Uncaptured CPU time (misnamed as CPUOVHTM
    and labeled as "Overhead") to be negative in RMFINTRV.  This same   
    field was in error in 1992, fixed then by APAR OY51878.  MXG now    
    detects the negative value and prints this error message on the log:
      "ERROR. NEGATIVE CPU-UNCAPTURED-TIME (TYPE70-TYPE72)".            
    See text of Change 15.238 for more details.                         
                                                                        
 5. APAR OW26619 for OS/390 V2.4, in Goal Mode corrects WLM errors found
    by IBM during final function test, and corrects SMF values.         
                                                                        
 6. APAR OW26421 for OS/390 V1.3 is needed only for ASMTAPES. In OS/390 
    IBM created two 4-byte fields for Y2K support to replace the 3-byte 
    fields JCTSSD and JCTJMRJD (step and job start/init dates), but I   
    missed that change, so ASMTAPES still used the 3-byte fields.  But  
    IBM also zeroed the 3-byte fields, which caused INVALID DATA when   
    TYPETMNT was executed, and variable INITTIME has missing value.     
    This APAR restores the dates in the 3-byte fields, so INITTIME will 
    not be missing.  The ML-15 of the MXG ASMTAPES avoids the exposure  
    by using the 4-byte fields if they are present.                     
                                                                        
 7. SYNCSORT 3.6 can ABEND 0C9 during a PROC SORT; SYNCSORT fix SY49930 
    is the correction.                                                  
                                                                        
 8. APAR OW30153 corrects type 30 Measured Usage (MULC) segments.  There
    are multiple occurrences of the same product name and qualifier for 
    PRODNAME=CICS PRODQUAL=DFHKETCB in the interval records that should 
    have had only a single segment.  There are still other errors that  
    are not addressed in creating the subtype 4 and subtype 5 records   
    from the interval records.  One CICS job had 39 DHFKETCB segments in
    its interval records (subtype 2 and 3), but had 37 segments in its  
    step termination record (subtype 4) and then had only 36 segments in
    its job termination record (subtype 5).  Further, the job had 12    
    DFHSIP segments in the interval records but had 16 segments in both 
    step and job terminate.  Finally, the job had 2 DFHDUP segments in  
    the job term but none in either the interval or step term records.  
    A new problem has been opened with IBM on this error.               
    Note that old APAR OW16176, which consolidates MULC sections for    
    each product, should be installed.  Increasing SMF buffers with     
    APAR OW12836 is also recommended to minimize the problems with SMF  
    buffers, and especially specification of DDCONS=NO in SMFPRMxx in   
    SYS1.PARMLIB is strongly recommended to eliminate the SMF address   
    algorithm to consolidate DD segments.                               
    Note added Dec 30, 1997:                                            
    APAR PN80497 corrects a problem after applying UN84065 with Measured
    Usage (MULC) that can create millions of type 30 subtype 3 records  
    with the same product name in the MULC segment.  The problem        
    occurred with an IMS BMP that used MQ Series.  The excess records   
    could cause IEE979W SMF DATA LOST - NO BUFFER SPACE AVAILABLE.      
                                                                        
 9. APAR OW30059 (PTF available 12Dec97) reports type 42 values for     
    Direct Write and Direct Read SMF42DWB/SMF42DRB and this APAR is     
    likely the fix that was originally described in note 26 in MVS      
    Technical Notes in MXG Newsletter THIRTY-TWO for APAR OW20926.      
    When the channel program did single CI reads and writes, residual   
    data was left in the counter that was not used.                     
                                                                        
10. APAR PQ09396 (Target 26Dec97) for MQSERIES SMF type 116 reports     
    inconsistencies between 115 and 116 record's statistics.            
                                                                        
11. APAR PQ09083 is for subtype '51'x of the FTP SMF record (VMACFTP).  
    The text mentions SMF Record Type 51, but there is no type 51 SMF   
    record (yet).  The APAR corrects missing values in variables        
    DVGSETME/DVGSEDTE in dataset FTP51X.                                
                                                                        
12. Job Accounting for Started Tasks became available with MVS/ESA 5.1, 
    because you can now have a JOB card in the JCL for your STC's, and  
    can put ACCOUNT parameters in that JOB card that show up in MXG's   
    ACCOUNTn variables in PDB.JOBS/PDB.PRINT/PDB.STEPS datasets.  The   
    JCL Reference Manual Sections 7.2, 7.3, and 16.7 discuss how.       
                                                                        
13. What happens to measurements if I have a Y2K Test System in an LPAR?
                                                                        
    You can use the ASUM70PR dataset and select the observations from   
    your production LPAR (SYSTM='PROD') to measure the Y2K Partition's  
    resources, since the STARTIME of the records with SYSTEM='PROD'     
    will be your local time of day.                                     
                                                                        
    All of the records written on SYSTEM='Y2K' will have the year 2000  
    dates (although the READTIME value could be earlier if jobs were    
    read into the hold queue before IPLing with year 2000).  Since the  
    Y2K system will be re-IPLed repetitively with the same start value  
    (probably 31DEC99:23:45:00), RMF interval data will appear to have  
    duplicate data and the jobs/steps from all IPLs will be jumbled     
    together, because MXG sorts RMF data by STARTIME and job data by    
    READTIME.                                                           
                                                                        
    You can extract SYSTEM='Y2K' data for a specific "test run" by      
    finding the record number (_N_) of each SMF IPL record, using:      
       %INCLUDE SOURCLIB(VMACSMF);                                      
       DATA _NULL_;                                                     
       _SMF;                                                            
       IF ID=0 THEN PUT 'IPL RECORD FOUND ' _N_= SMFTIME=;              
    and then use the record number of the specific IPL to select only   
    the SMF records desired.  If you wanted the third run, and the third
    IPL record had _N_=8,000 and the next IPL record had _N_=10,000, you
    would use this logic:                                               
       %INCLUDE SOURCLIB(VMACSMF);                                      
       DATA _NULL_;                                                     
       _SMF;                                                            
       FILE SMFOUT DCB=SMF;                                             
       IF 8000 LE _N_ LE 9999 THEN PUT _INFILE_;                        
       IF _N_ EQ 10000 THEN STOP;                                       
    to write to //SMFOUT DD only those records for that test run.       
    There is an alternative.  You can use the IPL PROMPT feature to     
    require the operator to reply with the (local) time and the reason  
    (describe the test run) for each IPL, and there will be a SUBTYPE=8 
    observation in dataset TYPE90 with variables DTIME and IPLREASN with
    the operator's reply, so the TYPE90 dataset can be used to identify 
    the records in each test run (variable SMFRECNR, equal to _N_, was  
    added to the TYPE90 dataset by Change 15.267).                      
    You must have specified PROMPT(IPLR) or PROMPT(ALL) in member       
    SMFPRMxx in SYS1.PARMLIB dataset to prompt the operator for the     
    reply at each IPL.                                                  
                                                                        
14. Almost-Duplicate TYPE74 records, differing only by one second in the
    STARTIME, can be written by Boole & Babbage's CMF Product, if both  
    IPM and CPM modes are enabled.  This has happened recently as sites 
    installed OS/390.  In MXG's TYPE7xxx datasets, variable PRODUCT will
    be 'CMF-IPM' in one almost-duplicate record, and 'CMF-CPM' in the   
    other observation.  Boole does NOT recommend both modes!            
                                                                        
15. Channel Type variable CHANTYPE in dataset TYPE73 still exists, but  
    variable SMF73CPD provides a better description as it describes both
    ESCON and Parallel Channel types.  SMF73CPD was new in MVS/ESA 5.1. 
                                                                        
16. APAR OW27855 corrects PSF/MVS-written type 6 SMF records so that    
    they now contain the node number of the current node in field       
    SMF6ROUN, which MXG decodes into variable NODE and RMOTID in TYPE6  
    dataset.                                                            
                                                                        
17. APAR OW20844 enables JES2 job numbers greater than 32000, but has   
    no impact on MXG, since MXG has supported 5-digit JES Numbers thru  
    99999 from the JCTJOBID for several years.                          
                                                                        
IV.  DB2 Technical Notes.                                               
                                                                        
 1. There are no DB2 Technical Notes in this newsletter.                
                                                                        
V.   IMS Technical Notes.                                               
                                                                        
 1. Support for Boole's IMF 3.2 (for IMS 6.1) was added in MXG 15.09.   
    Candle has not informed me of any changes in their ITRF product.    
                                                                        
 2. Discussion of IMS Log support in MXG Software.                      
                                                                        
    I strongly recommend you use an IMS monitor (Boole or Candle)       
    that creates a transaction record, rather than attempt to use       
    IBM's IMS log for transaction response and resource measurement.    
                                                                        
    See MXG newsletter TWENTY-FIVE, IMS Technical Notes, for the MXG    
    position statement of the technical reasons why you cannot measure  
    the response time and resources (CPU, DL/I calls) for transactions  
    with only IBM's standard IMS log records.                           
                                                                        
    However, you CAN use the TYPEIMS7 MXG program to get accurate counts
    of transactions and resources by transaction, because it uses IMS 07
    and IMS 08 log records, written for each deschedule of an IMS       
    program, which contains the count of IMS transactions that were run 
    during that program schedule (can be 1, usually is at least 5       
    transactions per schedule, and be millions for WFIs), the           
    transaction name, and the total CPU time and DL/I calls for all     
    of those IMS transactions.  But you cannot get accurate resources   
    per transaction from the IMS 07/08 records.  At best, you can get   
    the "average" of each group of transaction processed if you are     
    willing to divide the CPU time by the number of transactions run,   
    and you'll get fractional numbers of DL/I calls per transaction!    
                                                                        
    MXG Member TYPEIMFL will read the IMS log and will select and create
    all possible datasets from any combination of Boole's IMF log       
    records (LCODE=FAx) IBM IMS log records (01,03,07,08,31x,36x,40x,   
    plus fastpath 59x subtypes 01,03,36x,37x,38x) and SAP IMS log       
    records (LCODE=AEx).  Members TYPEIMFL and TYPEIMS7 both use macros 
    that are defined in VMACIMS to decode those IMS log records, and    
    which are fully supported by MXG.                                   
                                                                        
    It is not the reading of the IMF, IBM, and SAP IMS log records that 
    is the problem, but rather it is the construction of the            
    many-records-per-transaction-without-a-merge-key into a single      
    transaction record with per-transaction resources and response that 
    is in principle impossible with IMS log records.                    
                                                                        
    Nevertheless if you still must try to get IMS response time with    
    only IBM's IMS log records, because your management still won't buy 
    you an IMS monitor tool, then, at your own risk, you can probably   
    get good results with the MXG assembly program ASMIMSL5 (IMS 5) or  
    ASMIMSLG (IMS 4) and their JCLIMSLG example.  The ASM program acts  
    like an IMS MPR and reads the log to figure out which records go    
    with which transaction, and writes a copy of the IMS log records    
    with an appendage to identify the transaction, and then the MXG SAS 
    programs invoked in JCLIMSLG read the extended IMS log records to   
    crate dataset IMSTRAN with observations on a per-transaction basis. 
    These transaction records will always contain only average CPU and  
    DL/I calls, but the response time for each transaction is usually   
    quite accurate, although a few transactions may not be perfectly    
    matched and can have very large response times (and sometimes the   
    output queue time is accurately very large!).  It is not guaranteed 
    that ASMIMSL6 will exist, but it is my hope to continue to provide  
    this crutch for IMS sites unwilling to purchase an IMS monitor.     
                                                                        
                                                                        
VI.  SAS Technical Notes.                                               
                                                                        
 1. There are no MXG problems using the Version 6.09 of the SAS System. 
    In fact, there have been no MXG problems with Version 6.08 at TS430 
    or later maintenance levels!  Perhaps that is because MXG Software  
    is now a standard part of the SAS Quality Assurance test stream?    
                                                                        
VII. CICS Technical Notes.                                              
                                                                        
 1. How can you use USER instead of TERMINAL to bill CICS transactions. 
                                                                        
    IBM note RTA000013242 Library item Q451666 answers the question,    
    "How can you use USER instead of TERMINAL to bill CICS transactions 
    in an ISC or MRO CICS environment (i.e., when using transaction     
    routing?", by pointing out that when you specify USERSEC=IDENTIFY   
    or ATTACHSEC(IDENTIFY) on the SYSTEM entry or CONNECTION definition,
    the USER field is then propagated into the records created in the   
    AOR and other regions observations in CICSTRAN.CICSTRAN.            
                                                                        
    If you are billing CICS and DB2 by transactions, you really should  
    look at the ASUMUOW member that summarizes CICSTRAN and DB2ACCT and 
    their CPU times into one record per Unit of Work, reducing the      
    number of "things" you have to count.  ASUMUOW keeps both TERMINAL  
    and USER as well as both CICS and DB2 CPU times plus CICS response  
    buckets in its output dataset PDB.ASUMUOW.  If you were using       
    ASUMCICS to create PDB.CICS summary data, you will find ASUMUOW     
    preserves the CICS resource and response fields from PDB.CICS and   
    adds in the DB2 information.  ASUMUOW replaces the earlier ANALDB2C 
    report program that merged DB2ACCT and CICSTRAN records.            
                                                                        
VIII. Windows NT Technical Notes.                                       
                                                                        
 1. Use  /B "Binary" switch on the COPY command to eliminate '3F'x.     
                                                                        
    Two sites had STOPOVER ABENDS on MVS reading NTSMF data that had    
    been COPYed under Windows NT Server before uploading to MVS.  The   
    hex dump showed a one-byte physical record containing a '3F'x.      
    Another site's TYPENTSM job failed with a 180 abend; the VMACNTSM   
    member had been COPYed, and an extra line containing '3F'x had been 
    appended to the source file.  It is apparently a documented fact    
    that the COPY command can add an ASCII End-of-File Character at     
    the end of a copy whenever multiple input files are copied into an  
    output file.  That ASCII End-of-File Character then becomes the     
    separate physical record on MVS after uploading and translation     
    from ASCII to EBCDIC with ftp.  Using the  /B  "Binary" switch on   
    the COPY command was found to eliminate the extra character.        
    To read the uploaded file with the short record without ABENDing,   
    you can change MXG's STOPOVER option to MISSOVER by using:          
         MACRO STOPOVER MISSOVER %                                      
    as your first SAS statement, before the %INCLUDEs in your SYSIN.    
                                                                        
IX.   Incompatibilities and Installation of MXG 15.15.                  
                                                                        
 1. Incompatibilities introduced in MXG 15.15 (since MXG 14.14):        
                                                                        
  a- IMACs that were changed (if they exist in your USERID.SOURCLIB, you
     must refit your tailoring, starting with the new IMAC member):     
                                                                        
     IMACPTF, if you install PTF UN98309 for CICS Transaction Server 1.1
                                                                        
  b- Other incompatibility changes:                                     
                                                                        
     Users of SAS ITSV V1 and V2.0 and SAS/CPE must install the two line
       circumvention described in the text of Change 15.320 to use MXG  
       Version 15.08 or later.  SAS ITSV Version 2.1 is compatible and  
       the circumvention is not required.                               
                                                                        
                                                                        
  c- These products were incompatibly changed by their vendor, and they 
     require MXG Version 15.xx as indicated:                            
                                                                        
      Boole's IMF 3.2 (for IMS 6.1)           MXG 15.09  Change 15.372  
      CICS TS V1.2                            MXG 15.06  Change 15.274  
      CICS TS V1.1 APAR UN98309               MXG 15.06  Change 15.258  
      Landmark TMON CICS 2.0                  MXG 15.06  Change 15.281  
      Landmark TMON MVS 2.0                   MXG 15.09  Change 15.346  
      NTSMF Version 2.1                       MXG 15.06  Change 15.249  
      255 Structures in a Coupling Facility   MXG 15.06  Change 15.226  
      BETA93 Release 1.3                      MXG 15.06  Change 15.237  
      IDMS 14.0                               MXG 15.05  Change 15.218  
      Coupling Facility more than 64 Structs  MXG 15.05  Change 15.226  
      APPC APAR OW16975 APAR-in-Error         MXG 15.05  Change 15.227  
      ObjectStar 3.0                          MXG 15.04  Change 15.195  
      NTSMF Version 2.0                       MXG 15.05  Change 15.220  
      DB2 Version 5.1.0 two SMF 102 IFCIDs    MXG 15.02  Change 15.095  
      Hitachi 7700 Cache R.R. records         MXG 15.01  Change 15.008  
                                                                        
 2. Installation and re-installation procedures are described in detail 
    in member INSTALL (which also lists common Error/Warning messages a 
    new user might encounter), and sample JCL is in member JCLINSTL.    
                                                                        
                                                                        
X.    Online Documentation of MXG Software.                             
                                                                        
    MXG Documentation is now described in member DOCUMENT.              
                                                                        
                                                                        
XI.   Changes Log                                                       
                                                                        
==========================Changes Log=================================  
                                                                        
 You MUST read each Change description to determine if a Change will    
 impact your site. All changes have been made in this MXG Library.      
                                                                        
 Member CHANGES of the MXG SOURCLIB will always be more accurate than   
 the printed changes in a Newsletter, because the software is normally  
 created after the newsletter is sent to the printer!  Member CHANGES   
 on the www.MXG.com homepage are the most timely, as they are updated   
 (sometimes) between MXG versions.                                      
                                                                        
 Member CHANGES always identifies the actual version and release of     
 MXG Software that is contained in that library.                        
                                                                        
 The actual code implementation of some changes in MXG SOURCLIB may be  
 different than described in the change text (which might have printed  
 only the critical part of the correction that can be made by paper).   
                                                                        
 Scan each source member named in any impacting change for any comments 
 at the beginning of the member for additional documentation, since the 
 documentation of new datasets, variables, validation status, and notes,
 are often found in comments in the source members.                     
                                                                        
Alphabetical list of important changes after MXG 14.14 now in MXG 15.15:
                                                                        
  Dataset/                                                              
  Member   Change    Description                                        
                                                                        
  Many     15.167  MXG now protects ALL date fields for year 2000.      
  Many     15.169  SAS inconsistencies between MVS and ASCII fixed.     
  Many     15.320  Hardcoded PDB. DDname externalized with &PDBxx macro.
  Many     15.354  All VMACs for SMF records start with IF ID=....      
  Many     15.356  New &MACxxxx macro variable added to all VMACs.      
  Many     15.170  Support for OS/390 Version 2 Release 4 (COMPAT).     
  None     15.373  Support for OS/390 Version 2 Release 5 (no changes). 
  ADOC1415 15.304  Using 14/15 records to determine dataset size.       
  ADOCTAND 15.119  Cannot use Tandem's ftp program to upload Measure.   
  AIXPDS   15.337  Support for AIX commands IOSTAT/PSSTAT/VMSTAT.       
  ANALAVAL 15.262  Availability analysis example with PROC CALENDAR.    
  ANALBATW 15.378  'Batch Window' graphical reports from PDB.JOBS/STEPS.
  ANALCISH 15.365  CICS reports CICNQG, CICSLGS, CICLGR are added.      
  ANALCNCR 15.126  New example counts Avg and Max Logged on TSO Users.  
  ANALCNCR 15.174  ANALCNCR with large INTERVAL had large WORK space.   
  ANALDB2R 15.191  ANALDB2R fails, ERROR 31-185 if no PLAN in SORTBY.   
  ANALDB2R 15.223  Some datetimes shifted right two positions, overlay. 
  ANALDB2R 15.279  APPARENT MACRO &SORTUOW NOT RESOLVED error.          
  ANALDBTR 15.259  Pairing DB2 IFCID 59 & 63 wrong if multiple 63s.     
  ANALDBXX 15.173  Merge DB2 102s with DB2ACCT and CICSTRAN example.    
  ANALDDCN 15.062  Analysis of impact of DDCONS(NO)'s duplicate bytes.  
  ANALMULT 15.367  Corrected values of EXCPNODD/IOTMNODD for MULTIDD=Y. 
  ASMIMSLG 15.229  Archaic pre-DFP 3.0 systems retrofit.                
  ASMRMFV  15.384  Support for RMF Monitor III CPU, PGP, ENC records.   
  ASMTAPES 15.047  ML-13 of ASMTAPES protects 0C4s, stays up, etc.      
  ASMTAPES 15.141  ASMTAPES ML-14 populates fields, protects 0C4s.      
  ASMTAPES 15.285  ML-15 adds dump suppression, OS/390 1.3 JCT changes. 
  ASMTAPES 15.381  ASMTAPES ML-16 supports four-digit UCBs.             
  ASMTAPES 15.291  MXG 15.06 did not contain ML-15; MXG 15.07 does.     
  ASMVVDS  15.302  Out of Storage eliminated, UCBs above 16MB           
  ASUMTALO 15.077  Exploitation of TALO Interval Records added by ML-12 
  ASUMTALO 15.301  Starting/Ending Interval counts include SPUN.        
  ASUMUOW  15.079  IRESPTM, ENDTIME corrected.                          
  ASUMUOW  15.221  Specific reference to TEMP01 caused error, removed.  
  ASUMUOW  15.307  MROTRAN count included "spun" observation counts.    
  ASUMUOW  15.315  ASUMUOW option to get real TRANNAME versus CPMI/CSMI.
  BUILDPD3 15.020  JES3 BUILDPD3 had extra observations created.        
  BUILDPD3 15.235  Duplicate step records might not be deleted.         
  BUILDPDB 15.235  Duplicate step records might not be deleted.         
  BUILDPDB 15.329  _CDExxxx macros reordered, now inside ELSE DOs.      
  CICINTRV 15.251  CICINTRV logic corrected, must use this version.     
  CLMXGSAS 15.084  Sample CLISTs for MXG and SAS execution under TSO.   
  CONFIG   15.194  MXG default for MEMSIZE raised from 48M to 64M       
  CONFIG   15.293  YEARCUTOFF=1960 is now MXG default, protects non-Y2K.
  DIFFDB2  15.070  DB2STATS values are negative in startup interval.    
  DIFFDB2  15.278  Variables B1HITRAT-B4HITRAT were wrong.              
  EXPDB30V 15.142  PDB exit EXPDB30V added for PDB.SMFINTRV.            
  FORMATS  15.057  New RACF events decoded by MG080EV.                  
  FORMATS  15.109  Format MGBYTRT (Byte per second) truncated on left.  
  FORMATS  15.152  Formats $MGHEX2H, $MGHEX4H, $MGHEX8H blanks '40'x.   
  FORMATS  15.175  CICS formats $MGCICDL,$MGCICDS corrected.            
  IHDR110  15.268  CICS Type 110 Header Exit for record selection.      
  IMACICBB 15.179  Support for Boole MainView for CICS stat records.    
  IMACICSM 15.157  Support for Shared Medical CICS Journal OASMON.      
  IMACKEEP 15.123  Member IMACKEEP is documented as archaic.            
  IMACPDB  15.002  Variable TERMIND added to PDB.STEPS.                 
  IMACPDB  15.048  Variables SMF6FDNM/SMF6PDNM (Formdef/PrintDef) kept. 
  IMACPDB  15.091  Variables ACTBYTES/ACTPAGES from TYPE26J2 in PDB.    
  IMACSHFT 15.151  Table of Holidays for SHIFT example added.           
  IMACUOW  15.221  SORT output destination, other options externalized. 
  IMACs    15.328  New _Sxxyyy "PROC SORT" macro defined in IMACs.      
  INSTALL  15.277  VM/CMS cannot use a MACLIB member for CONFIG option. 
  NTINTRV  15.255  Multi-processors properly summarized in NTINTRV.     
  RMFINTRV 15.138  Report RPGNs/Classes can be used in IMACWORK!!!      
  RMFINTRV 15.238  "ERROR. NEGATIVE CPU OVERHEAD TIME (TYPE70-TYPE72)". 
  RMFINTRV 15.250  Test CPUTM NE CPU72TM too strong due to truncation.  
  SMFPRM00 15.053  First draft of MXG recommendations for SMF parms.    
  TRND72GO 15.135  Trending for TYPE72GO WLM Goal Mode Service Classes. 
  TYPE102  15.113  DB2 Trace IFCID=125 logic revised.                   
  TYPE102  15.121  Negative values for DB2 fields decoded with format.  
  TYPE102  15.132A DB2 Trace dataset T102S106 now corrected.            
  TYPE102  15.216  DB2 Trace 102 subtype 140 INPUT STATEMENT EXCEEDED.  
  TYPE102  15.245  DB2 Type 102 Subtype 140 INPUT STATEMENT EXCEEDED.   
  TYPE102  15.245  Invalid Type 102 subtype 140 protection added.       
  TYPE103  15.313  Support for ICSS SMF type 103 (Lotus Domino).        
  TYPE110  15.133  Leap Seconds support correct "GMT" to local.         
  TYPE110  15.258  APAR UN98309 CICS TS V1.1 INCOMPATIBLE               
  TYPE110  15.269  UOWTIME duplicate values, UOWIDCHR added to resolve. 
  TYPE110  15.274  Support for CICS Transaction Server 1.2 INCOMPATIBLE.
  TYPE116  15.043  TYPE116 variable QWHCTNO remains numeric.            
  TYPE116  15.241  MQ Series type 116 blank CICS TASKNR, questions.     
  TYPE116  15.241  Type 116 INVALID DATA FOR QWHCTASK message           
  TYPE1415 15.124  Support for APAR OW25263 (for 3590s)                 
  TYPE1415 15.239  New variable LASTVOFL flags if this is Last Volume.  
  TYPE16   15.243  Support for DFSORT APAR PN71137 (COMPATIBLE).        
  TYPE16   15.243  Support for DFSORT APAR PN71337 added flag fields.   
  TYPE26J3 15.228  APAR OW26297 adds job account fields to JES3 type 26.
  TYPE26J3 15.273  JES3 ACCOUNT fields in type 26 were not read.        
  TYPE28   15.336  Support for NPM 2.3 and APAR OW17876.                
  TYPE28   15.362  NPM type 28 subtype 82 error corrected.              
  TYPE30   15.063  TYPE30OM for OMVS discoveries                        
  TYPE30   15.065  EXCP/IOTM for UCB addresses over '8000'x wrong.      
  TYPE30   15.133  Leap Seconds support converts "GMT" to local.        
  TYPE30   15.227  APAR OW16975 INCOMPATIBLY in error, APPC type 30.    
  TYPE37   15.385  Support for TME 10 Netview OS/390 1.1 SMF type 37.   
  TYPE42   15.106  Support for APAR OW20921 creates TYPE42VT (VTOC+).   
  TYPE42   15.112  Support for APAR OW26451/OW26453/OW26497 MAXRSPTM+.  
  TYPE42   15.358  TYPE42AU dataset was incorrectly built.              
  TYPE50   15.185  Support for VTAM 4.4 changes to SMF type 50.         
  TYPE6    15.009  Support for APAR OW25152 (PRINTWAY Print Queue Name) 
  TYPE6    15.015  Support for Anacom's Anastack spooler type 6 SMF.    
  TYPE6    15.016  Support for CA-DISPATCH Version 6 w/5-digit JSENR.   
  TYPE6    15.039  Invalid "MVS PSF DOWNLOAD" type 6 records, APAR.     
  TYPE6156 15.176  Support for Invalid Catalog Cell '05'x segment.      
  TYPE6156 15.193  Another invalid '04' Catalog Cell STOPOVER.          
  TYPE6156 15.222  INPUT STATEMENT EXCEEDED, Change 15.166 was wrong.   
  TYPE7072 15.004  OS/390 R3 type 72 INPUT STATEMENT EXCEEDED RECORD.   
  TYPE7072 15.013  Variable SSTORE72 (Shared Pages Bytes) created.      
  TYPE7072 15.023  TYPE70 variable PCTMVSBY wrong in MDF shared CPUs    
  TYPE7072 15.026  New variable VELONOIO calculates NO I/O Velocity.    
  TYPE7072 15.038  TYPE72GO PERFINDX, R723CIRC and R723CICT wrong.      
  TYPE7072 15.182  TYPE72GO VELOCITY wrong for Discretionary/System     
  TYPE7072 15.183  TYPE72GO was OUTPUT when NOACTVTY was zero.          
  TYPE7072 15.214  TYPE70 PCTMVSBY incorrect MXG 15.01-15.04.           
  TYPE7072 15.270  OS/390 R2.4 Goal MODE INVALID DATA FOR R723CIDT/CDQT 
  TYPE70PR 15.299  TYPE70PR had no obs for deactivated partition.       
  TYPE71   15.064  Variable SLOTUTIL added to TYPE71 - slot usage       
  TYPE72GO 15.297  VELOCITY variables are now multiplied by 100.        
  TYPE74   15.008  Support for Hitachi 7700 Cache Records (INCOMPAT)    
  TYPE74   15.011  Variable SMF744PN added to TYPE74CF to count CPUs.   
  TYPE74   15.058  Cache TYPE74CA clean up and new variables added.     
  TYPE74   15.226  Support for SMF type 74 CF more than 64 structures.  
  TYPE78   15.061  PCTDIRPT/PCTCUBSY in TYPE78CF wrong.                 
  TYPE80A  15.107  Dataset TYPE8025 now created for RACF Event 25.      
  TYPE80A  15.158  Support for RACFEVNT=22 and 59, repeated segments.   
  TYPE80A  15.309  RACF RVARY INPUT STATEMENT EXCEEDED 1.0.9.2 release. 
  TYPE88   15.257  Support for subtype 11 type 88 System Logger.        
  TYPE90   15.267  Variable SMFRECNR is now kept.                       
  TYPE91   15.213  Support for SMF type 91 subtype 21 SMARTBATCH data.  
  TYPE92   15.003  OMVS file GMT datetimestamps now converted to local. 
  TYPE94   15.073  Support for Virtual Tape Server additions to SMF 94. 
  TYPE94   15.130  TYPE94 variable SMF94ETO restored.                   
  TYPE99   15.165  Support for "Goal Mode SMF" type 99 subtype 6.       
  TYPE99   15.357  Support for APAR OW29790.                            
  TYPEACF2 15.197  ACF2JR dataset variable ACLFLDVL populated.          
  TYPEAIMR 15.311  Support for Fujitsu's AIM V20 AIM/RDBII SMF type 98. 
  TYPEBBMQ 15.263  Support for Boole & Babbage MQ Series VSAM file.     
  TYPEBETA 15.181  INVALID ARGUMENT in BETA93 SMF record *RELOAD*.      
  TYPEBETA 15.237  Support for BETA93 Release 3.1 (INCOMPATIBLE).       
  TYPECACH 15.008  Support for Hitachi 7700 Cache Records (INCOMPAT)    
  TYPECIMS 15.033  ABENDSYS/ABENDUSR in IMF 1.3+ is corrected.          
  TYPECIMS 15.082  Support for Boole and Babbage IMF 3.2 (for IMS 6.1.) 
  TYPECIMS 15.372  Support for Boole's IMF 3.2 (for IMS 6.1) INCOMPAT   
  TYPECMF  15.187  Variable C279SSI changed from numeric to character.  
  TYPECMF  15.376  CMF Subtype 15 now creates CMF16MAP & CMF16LPA.      
  TYPECMF  15.377  CMF Cache dataset CMF27CSC now contains CMF27C93.    
  TYPECMFV 15.380  Boole & Babbage CMF VSAM History File supported.     
  TYPECTCP 15.248  Support for Applied Expert Systems Clever TCP/IP.    
  TYPECTLG 15.166  Support for Catalog Cell 'E7' (Alias).               
  TYPECTLT 15.276  IOA/Control-T 5.0 variable DSEXPDT changed.          
  TYPECTLT 15.306  CONTROL-T vars DSUSECT/DSEXCP wrong, undoc bytes.    
  TYPEDB2  14.095  Support for DB2 Version 5.1.0 (COMPATIBLE).          
  TYPEDB2  15.133  Leap Seconds support correct "GMT" to local.         
  TYPEDB2  15.269  UOWTIME duplicate values, UOWIDCHR added to resolve. 
  TYPEDCOL 15.108  High Used RBA can be greater than Allocated Space.   
  TYPEDCOL 15.163  Support for DCOLLECT in DFSMS 1.4 (COMPAT).          
  TYPEDCOL 15.324  VOLSER added to DCOLLECT DCOLCLUS dataset.           
  TYPEDPPX 15.305  Support for DPPX/370 Performance Reporter output.    
  TYPEEDGR 15.140  Support for new fields in DFSMSrmm extracts.         
  TYPEEDGS 15.021  Variables EDGSADTE,EDGSARSD,EDGSASID, formats value. 
  TYPEEREP 15.246  EREP records past logical EOF were read from DASD.   
  TYPEFTEK 15.102  Support for Filetek Optical Disk SMF record          
  TYPEHMF  15.192  Support for HMF SMF Subtype 11 (DS3 Statistics).     
  TYPEHPTE 15.247  Support for HP MeasureWare for Terra Data OS.        
  TYPEHURN 15.195  Support for ObjectStar 3.0 (INCOMPATIBLE).           
  TYPEICE  15.134  Support for IXFP SMF subtypes 6 and 7                
  TYPEICE  15.215  IXFP subtypes 2,3,4 not output, MXG 15.02-15.04 only.
  TYPEIDMJ 15.363  Support for IDMS Journal format for IDMS V12.        
  TYPEIDMS 15.218  Support for CA's IDMS 14.0 (INCOMPATIBLE).           
  TYPEIDMS 15.264  IDMS 10.02 observations not output.                  
  TYPEIMFL 15.375  Read IMF + SAP + IBM IMF log records at one time.    
  TYPEIMSD 15.081  Support for IMS DBCTL transactions from IMS 07/08s.  
  TYPEM204 15.303  Support for MODEL204 Version 4.1 INCOMPATIBLE.       
  TYPEMEMO 15.071  Support for MEMO subtype 8, creates MEMODIST dataset 
  TYPEMIM  15.059  Segments not output after MIMCNT=0 with MIM V 3.     
  TYPEMON2 15.281  Support for Landmark's The Monitor for CICS/ESA 2.0. 
  TYPEMWSU 15.068  Revised support for HP's MeasureWare for SUN         
  TYPEMWTE 15.247  Support for HP MeasureWare for Terra Data OS.        
  TYPEMWUX 15.022  HP-MW and HP-PCS base date now JAN1970 vice JAN70.   
  TYPENSPY 15.067  Support for NETSPY Version 5.0 is in MXG 14.14.      
  TYPENSPY 15.069  ARSPHOST missing in NSPYLU dataset for NETSPY 4.4    
  TYPENSPY 15.168  Zero obs in NSPYTIC3 corrected.                      
  TYPENTSM 15.012  NTSMF records from NT 3.51 now supported.            
  TYPENTSM 15.027  NTSMF new objects created by COMPAQ hardware.        
  TYPENTSM 15.147  Support for NTSMF Version 2.0 (INCOMPAT).            
  TYPENTSM 15.147  Support for Windows NT 4.0 Service Pack 2 (INCOMPAT) 
  TYPENTSM 15.190  Support for five new NTSMF Objects.                  
  TYPENTSM 15.220  Support for NTSMF Version 2.1 (COMPAT), new objects. 
  TYPENTSM 15.249  Support for NTSMF Version 2.1 (INCOMPATIBLE).        
  TYPENTSM 15.265  NTSMF Version 2.0.H caused INPUT STATEMENT EXCEEDED. 
  TYPEOMVT 15.150  INPUT STATEMENT EXCEEDED Omegamon VTAM 200 IRNUM=12. 
  TYPEOMVT 15.296  Support for Omegamon for VTAM V400 (COMPATIBLE).     
  TYPEOPC  15.188  OPC 3.1 datasets OPC23, OPC29, OPC31 corrected.      
  TYPEOPC  15.256  OPC type 29 INPUT STATEMENT EXCEEDED error.          
  TYPEPW   15.010  Support for Landmark's Performance Works/Smart Agent 
  TYPEQAPM 15.052  Support for all OS/400 Release 3.7.0 records.        
  TYPEQAPM 15.105  Dataset QAPMAPPN has variables wrong.                
  TYPEQAPM 15.127  AS/400 variable AS400SYN missing if SYSTEM LT 8.     
  TYPEQAPM 15.316  Support for OS/400 Release 4.1.0 (INCOMPATIBLE).     
  TYPERACF 15.103  Support for RACF utility IRRDBU00's OMVS RACF data.  
  TYPERDS  15.144  Zero observations in TYPERDS1-TYPERDS7 datasets.     
  TYPERMFV 15.321  Some RMF III VSAM variables were corrected.          
  TYPERMFV 15.355  CSA and SQA values were wrong; should be &RB.4.      
  TYPEROSC 15.017  Support for CA-ROSCOE Version 6 SMF is verified.     
  TYPESARX 15.300  Support for SAR CA-VIEW SMF exit SARSRQUX.           
  TYPESFTA 15.030  SOFTAUDIT collect only at JOB record was deleted.    
  TYPESTC  15.186  STK 4400, STCLMU variables decoded.                  
  TYPESVCC 15.200  Support for Peregrine's Service Center SMF.          
  TYPETCP  15.234  Support for TCP/IP 3.2 API Calls record changes.     
  TYPETMDB 15.114  TMON/DB2 subtype "DW" now supported.                 
  TYPETMDB 15.184  Support for TMON/DB2 record type "DE".               
  TYPETMNT 15.077  Support for new fields added by ML-12 of ASMTAPES.   
  TYPETMNT 15.110  Enhancements in preparation for ASMTAPES ML-14.      
  TYPETMO2 15.353  Landmark TMON for CICS V2 variables renamed.         
  TYPETMON 15.001  File counts incorrect in TYPETMON datasets.          
  TYPETMON 15.054  Variables SYSTEM/SYSID truncated to only one byte.   
  TYPETMON 15.139  Landmark CICS fix TT00032 creates one bad record.    
  TYPETMON 15.266  MXG 15.04-MXG 15.05 only. CREATIME, other dates wrong
  TYPETMON 15.294  SYSID was length five instead of length four.        
  TYPETMS5 15.199  Support for CA-1/TMS Release 5.2 (COMPATIBLE).       
  TYPETMV2 15.346  Landmark for MVS V2 INPUT STATEMENT EXCEEDED.        
  TYPEVLFC 15.230  Support for VLF Catalog activity from SYSLOG.        
  TYPEVM   15.189  Support for VM ADSM Account Records in VM/ESA.       
  TYPEWWW  15.086  Support for World Wide Web Common Log Format records 
  TYPEXPSM 15.172  Support for Xerox's XPSM Version 2 SMF records.      
  TYPEZARA 15.074  Support for Altai's ZARA Tape Management Release 1.2 
  TYPEZARA 15.323  Packed Decimals protected, DATELU corrected.         
  UDSKCONT 15.388  Utility to report PC Disk File sizes.                
  UDUMPEBC 15.085  Utility to produce MVS-like LIST; hex dump on ASCII. 
  UTILCONT 15.056  Now a %MACRO - displays SAS dataset sizes (in MB).   
  UTILUOW  15.335  CICS MRO - which CICSTRAN record has real TRANNAME.  
  UVBSNRDW 15.242  Utility to re-create SMF VBS with no RDW/BDWs.       
  UVBSNRDW 15.242  Utility to recreate VBS from data with no RDW/BDW.   
  VMAC80A  15.289  RACF DTP EV44xxxx variables added for RACFEVNT=13.   
  VMACIMSA 15.275  SAP IMS timestamp SAPTIMTR is Start of Transaction.  
  VMACSTC  15.364  Support for StorageTek's VSM SMF records.            
  VMACUCB  15.125  VIO detection conflict with DEVNR='7FFFF'x.          
  VMXGCOMP 15.100  %MACRO utility to compare SAS Data Libraries         
  VMXGOPTR 15.099  %MACRO to reset (most) SAS Options.                  
  VMXGSUM  15.098  Enhancement to protect OBS=0, and USER= options.     
  WEEKBLDT 15.115  Dataset TYPE77 causes failure, wrong BY list.        
  YEAR2000 15.045  DATETIMExx won't display yyyy if truncated.          
  YEAR2000 15.167  MXG now protects ALL date fields for year 2000.      
  YEAR2000 15.293  MXG cannot protect all non-Y2K-compliant dates.      
                                                                        
Inverse chronological list of all Changes:                              
                                                                        
NEXTCHANGE: Version 15                                                  
                                                                        
======Changes thru 15.391 were in MXG 15.15 dated Feb 23, 1998======    
                                                                        
Change 15.391  Zero observations in MIMTAPE dataset, because somewhere  
VMACMIM        along the way, the variable MIMCNT, which used to be the 
Feb 20, 1998   sample count, is now zero in the MIM SMF record.  MXG had
               heuristically only invoked the EXTYMIM exit if the record
               had "samples" but now no observations were created.  The 
               two DO groups around the %INCLUDE SOURCLIB(EXTYMIM); that
               tested MIMCNT GT 0 were eliminated, so all MIM segments  
               will be output.                                          
   Thanks to Joseph Montana, Acxiom, USA.                               
                                                                        
Change 15.390  Three variables in these two members still had DATE7 as  
ANALDB2P       their format, but are now changed to DATE9 so that all   
ASUMIDMS       four digits of year will be displayed.                   
Feb 20, 1998                                                            
   Thanks to Pete Gain, SAS UK, ENGLAND.                                
                                                                        
Change 15.389  Reading type 42 records directly from the SMF VSAM file  
VMAC42         caused INPUT STATEMENT EXCEEDED because some of the new  
Feb 20, 1998   subtypes did not have "+OFFSMF" added when their offsets 
               were calculated.  The code worked fine with dumped SMF   
   Thanks to Ken Williams, Sun Life of Canada, ENGLAND.                 
                                                                        
Change 15.388  New utility program that reports PC Disk File sizes and  
UDSKCONT       disk space required by directory and high-level directory
Feb 20, 1998   names.   To use, from the root directory, you issue:     
                   DIR *.* /S >> C:\DISKFARM                            
               which creates the listing of all files in "DISKFARM",    
               and then, under SAS, you issue:                          
                  %UDSKCONT                                             
               and the reports will show the total disk space required  
               (assuming 32K worst-case cluster size for FAT) and the   
               file bytes in each directory, and then a summary report  
               shows filesize and space required by highlevel dir name. 
                                                                        
Change 15.387  Support for TME 10 Netview for OS/390 1.1 SMF type 39    
VMAC39         will not fail with the new records, but there are two    
Feb 18, 1998   segments (accounting and availability data section and   
               APPN route data section) that are added to the existing  
               subtypes, and there are two new subtypes:                
                  007 - Init Failure Record                             
                  008 - Storage and Event Counter Record                
               If you have these records, see member SENDDATA and email 
               me a few hour's worth so I can validate the enhancement. 
                                                                        
Change 15.386  Support for TME 10 Netview for OS/390 1.1 SMF type 38    
VMAC38         is NOT included in MXG; the type 38 record was completely
Feb 18, 1998   restructured and I need test data records to enhance it. 
               There are now three subtypes that now exist in type 38:  
                  001 - Command Authorization Table                     
                  002 - Task Resource Utilization Table                 
                  003 - Span Authorization Table                        
               First glance shows lots of interesting fields.  If you   
               have type 38's from Version 1.1, see member SENDDATA and 
               email me a few hours worth, and I can enhance MXG with   
               these three new datasets.                                
                                                                        
Change 15.385  Support for TME 10 Netview for OS/390 1.1 SMF type 37    
VMAC37         record IS already included in MXG, as there were no      
Feb 18, 1998   changes to the type 37 record, although the table numbers
               were changed in documentation: "TME 10 Netview for OS/390
               Application Progrmmer's Guide Version 1 Release 1, pub   
               number SC31-8223-00 (but don't look for that order number
               on the publication itself; only on the Readers Comment   
               Form could I find the pub number!).  IBM saves ink???    
               That publication documents SMF 37, 38, and 39 records.   
                                                                        
======Changes thru 15.384 were in MXG 15.09 dated Feb 17, 1998======    
                                                                        
Change 15.384  Support for RMF Monitor III VSAM file adds support for   
ASMRMFV        new record types of CPU, PGP, and ENC, but I have not had
ASMRMFV        test data (ASMRMFV, when assembled, converts the RMF III 
Feb 17, 1998   compressed files into flat records for TYPERMFV to read),
               so output records from ASMRMFV with CPU, PGP, or ENC     
               enabled needs to be verified with TYPERMFV.  In addition,
               the support for the CSR records cannot be finished until 
               we can get a hex dump of the ASMRMFV program when it     
               tries to read a CSR record.  We have created a special   
               version of ASMRMFV, named ASMRMFVX, that will Abend S0C3 
               when it tries to read a CSR record; if you have those    
               enabled and can generate the S0C3 Abend Dump, please send
               it (tape or printed) to Merrill Consultants so we can    
               decode that RMF III record as well.                      
                                                                        
Change 15.383  MXG 15.09 only.  Comma missing at end of INCODE= caused  
TRNDRMFI       error.  This was caught in my QA test, but I failed to   
Feb 17, 1998   copy the change from the QA library back into the master!
                                                                        
====Changes thru 15.382 were printed in MXG Newsletter THIRTY-THREE==== 
                                                                        
Change 15.382  NPM variables STARTIME, ENDTIME, and DURATM had missing  
VMAC28         value in dataset NPMINRTM from SMF type 28 subtype '30'x.
Feb 16, 1998   Valid STARTIME and ENDTIME were INPUT in the STT section 
               processing, but the SAA section also INPUT STARTIME and  
               ENDTIME, and when there were no timestamps in the SAA    
               section, their missing value overrode the valid STT      
               values.  To correct, the calculation of STARTIME and     
               ENDTIME in the AOFTYPE='SAA' section is performed by     
               IF STARTIME=. THEN DO;  and IF ENDTIME=. THEN DO;        
               logic so that valid STARTIME/ENDTIME will be preserved.  
   Thanks to ???, Spar Handels AG, GERMANY.                             
                                                                        
Change 15.381  ASMTAPES Maintenance Level ML-16 now writes records for  
ASMTAPES       devices with four-digit UCBs.  (We thought we had added  
ZSMTAPES       that support long ago, but testing uncovered our error.) 
Feb 17, 1998   In addition, ML-16 corrects the "TEST" SYSPARM which did 
               not work as advertized.  Note that "TEST" (which writes  
               to a flat file instead of SMF), does not support the WLM 
               (Workload Manager Fields) that ARE supported in non-TEST.
   Thanks to Mark Schmitt, First Card, USA.                             
                                                                        
Change 15.380  Major enhancement to support for Boole & Babbage CMF     
EXCMFVAL       VSAM History File.  MXG Previously decoded a dozen or    
EXCMFVCD       so subtypes, but this massive user contribution added    
EXCMFVCF       fourteen completely new datasets and their exits, and    
EXCMFVCS       creates variables in ten existing datasets that were only
EXCMFVDC       a skeleton dataset before this change.                   
EXCMFVDV                                                                
EXCMFVGL       The bulk of this change was written by                   
EXCMFVHD          Pino Todesco, Boole and Babbage, Australia.           
EXCMFVMP                                                                
EXCMFVMS       This text will be updated with correct name, etc.        
EXCMFVMV                                                                
EXCMFVRV       As test data is received from interested sites for the   
EXCMFVSO       subtypes not yet decoded, MXG will be enhanced to also   
EXCMFVST       support those subtypes.                                  
VMACCMFV                                                                
Feb 15, 1998   This is also called "Mainview" by Boole.                 
   Thanks to Pino Todesco,Boole & Babbage, AUSTRALIA.                   
                                                                        
Change 15.379  Two new reports for "Batch Window" analysis, one based on
ANALBATW       PDB.STEPS as input, and the second based on PDB.JOBS were
Feb 15, 1998   written by Grant and contributed by Ken.                 
   Thanks to Grant Mackay, Standard Life, SCOTLAND                      
   Thanks to Ken Williams, Southern Electric, UK.                       
                                                                        
Change 15.378  Some simple reports of Data Set activity based on the SMF
ANAL42         type 42 record's dataset TYPE42DS were contributed by    
Feb 15, 1998   Ken from a previous lifetime.                            
   Thanks to Ken Williams, Standard Life, SCOTLAND.                     
                                                                        
Change 15.377  Boole's CMF Cache Stats were split into two CMF datasets 
VMACCMF        CMF27CSC and CMF27C93, but there were no merge variables 
Feb 15, 1998   with which to combine them, so the internal logic was    
               redesigned, so now the CMF27CSC dataset contains both    
               sets of variables. The CMF27C93 dataset is still built as
               before (so your old reports won't fail), but you should  
               now use CMF27CSC for Cache reporting (and you can then   
               use your EXCMFC93 exit member to turn of creation of obs 
               in the now-archaic CMF27C93 dataset.  Use CMF27CSC!      
   Thanks to Neil Ervin, Banc One Services Corporation, USA.            
                                                                        
Change 15.376  Boole CMF subtype 16 record now creates two new datasets 
EXCMF16M       CMF16MAP (Virtual Storage Map) & CMF16LPA (LPA Modules)  
EXDMF16L       thanks to this significant user contribution.            
VMACCMF                                                                 
Feb 13, 1998                                                            
   Thanks to Paul Hill, Midland Bank, UK.                               
                                                                        
Change 15.375  IMS Log records from Boole's IMF and from SAP and IBM's  
TYPECIMS       IMS log records can now be processed in one pass of the  
TYPEIMFL       IMS log.  Member VMACIMS had internal variable MSGDRRN   
VMACCIMS       (a numeric variable) replaced by CMSGDRRN (a character)  
VMACIMS        to avoid conflict between CIMS and IMS member, and some  
Feb 13, 1998   lines were relocated in both VMACCIMS and VMACIMS, and   
               macro _IMS in member VMACIMS now creates the variables in
               the header that VMACCIMS expected, and new macro _CHAIN  
               is defined in member VMACCIMS, replacing the inline code 
               that handled Chained Transactions in member TYPECIMS, so 
               the end result is that new member TYPEIMFL contains:     
                    %INCLUDE SOURCLIB(VMACCIMS,VMACIMS);                
                    DATA  _VARCIMS  _VARIMS ;                           
                     _IMS ; _CDECIMS  _CDEIMS ;  _CHAIN ;               
               so TYPEIMFL creates all 25 datasets from IMF, IMS, and   
               SAP's IMS log records in one pass of the IMSLOG tape:    
                   CIMSTRAN CIMSDBDS CIMSDB2 CIMSPROG                   
                   IMS01    IMS01M   IMS03   IMS03P   IMS07    IMS08    
                   IMS31I   IMS31O   IMS35I  IMS35M   IMS35O   IMS35P   
                   IMS36    IMS36M   IMS5901 IMS5903  IMS5936  IMS5937  
                   IMS5938A                                             
                   SAPIMSBA SAPIMSON SAPIMSSP                           
               And if you don't want to create all 25 datasets, you can 
               use MXG's new &MACxxxx macro variable (Change 15.356) to 
               redefine the _Lxxxxx dataset macros to  _NULL_   for the 
               unwanted data sets, and they won't be created:           
                                                                        
                 %LET MACIMS=                                           
                     MACRO _LIMS01  _NULL_ % MACRO _LIMS01M _NULL_ %    
                     MACRO _LIMS03  _NULL_ % MACRO _LIMS03P _NULL_ %    
                     MACRO _LIMS07  _NULL_ % MACRO _LIMS08  _NULL_ %    
                     MACRO _LIMS31I _NULL_ % MACRO _LIMS31O _NULL_ %    
                     MACRO _LIMS35I _NULL_ % MACRO _LIMS35M _NULL_ %    
                     MACRO _LIMS35O _NULL_ % MACRO _LIMS35P _NULL_ %    
                     MACRO _LIMS36  _NULL_ % MACRO _LIMS36M _NULL_ %    
                     MACRO _LIMS591 _NULL_ % MACRO _LIMS593 _NULL_ %    
                     MACRO _LIMS596 _NULL_ % MACRO _LIMS597 _NULL_ %    
                     MACRO _LIMS598 _NULL_ %                            
                 ;                                                      
                 %INCLUDE SOURCLIB(TYPEIMFL);                           
                                                                        
               would only create the 4 IMF and the 3 SAP datasets.      
   Thanks to Reinhard Kelm, GRZ, GERMANY.                               
   Thanks to Friedhelm Danne, GRZ, GERMANY.                             
                                                                        
Change 15.374  There was no KEEPs example that worked with ASUMUOW, but 
IMACCICS       comments implied there was.  Now the three examples show 
Feb 12, 1998   the KEEPs for CICSTRAN that are required for ASUMCICS,   
               ASUMCICX, and ASUMUOW.  The actual KEEPs examples use    
               the DROP= statement in the _K macro to control keeping.  
   Thanks to Tom Weiland, Phoenix Home Life Mutual Insurance Co, USA.   
                                                                        
Change 15.373  Support for OS/390 Version 2 Release 5 is contained in   
none           MXG 15.04 or later, as there were no changes to the SMF  
Feb 12, 1998   records between OS/390 2.4 and OS/390 25., and MXG Change
               15.270 added support for Version 2 Release 4 in 15.04.   
                                                                        
Change 15.372  Support for Boole's IMF 3.2 (for IMS 6.1) INCOMPATIBLE   
VMACCIMS       because 400 bytes were inserted at the end of the fixed  
Feb 12, 1998   portion of the record, causing DBD counts to be wrong    
               without this change.  The 400 bytes added only four new  
               fields: GMT Adjustment, UTCA, Checkpoints/Syncpoints     
               CTCKPNTS, Maximum Locks Held MAXLOCKS and Total Locks    
               Held, TOTLOCKS.                                          
   Thanks to Reinhard Kelm, GRZ, GERMANY.                               
   Thanks to Friedhelm Danne, GRZ, GERMANY.                             
                                                                        
Change 15.371  The new BLDNTPDB macro provides simple daily/weekly/     
BLDNTPDB       monthly dataset building and reporting from NTSMF data   
Feb 12, 1998   records.  This macro does everything for you, or you     
               can override its options.  It even supports reruns!      
               Especially for new users who are not familiar with the   
               PDB architecture, this runs-only-on-ASCII-SAS example    
               should make life simple.  More documentation on how to   
               use this facility will be forthcoming, and this is still 
               in development.                                          
   Thanks to Marti Henley, Matridigm, USA.                              
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.370  Concurrency analysis routine ANALCNCR has new MYTIME=    
ANALCNCR       argument for sites that want to specify a non-standard   
Feb 12, 1998   time period for summarization.  (Note: the MYTIME=       
               specification is not used to "sync" the intervals, and   
               SYNCINTV=YES is ignored if INTERVAL=MYTIME is used.      
   Thanks to Tom Parker, CSC FSG Banking Division, USA.                 
                                                                        
Change 15.369  Trending for the ASUMUOW using the PDB.ASUMUOW dataset   
TRNDUOW        daily as input, rather than building ASUMUOW weekly, is  
Feb 12, 1998   recommended for sites that need to analyze CICS MRO with 
               or without DB2 by UOWID, i.e., by Unit of Work ID, due   
               to potential large volumes of data, CPU time, work space 
               and I/O operations if the trending were done from the    
               weekly PDB.                                              
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.368  New argument DURATM=INTERVAL will cause variable DURATM  
ASUMCICS       to be created in VMXGSUM's output dataset, and DURATM    
ASUMDB2A       will contain the duration specified on INTERVAL (for the 
ASUMDB2B       "real" durations of QTRHOUR, HALFHOUR,HOUR, and DATE), to
ASUMHSM        be consistent with MXG design intentions of having DURATM
ASUMJOBS       in all interval datasets.  The eight ASUMxxxx members    
ASUMPRTR       listed are the first to exploit this new DURATM=INTERVAL 
ASUMTMNT       argument for VMXGSUM.   In addition, both VMXGSUM and    
VMXGDUR        VMXGDUR now contain new argument MXGWEEK= that allows    
VMXGSUM        you to change your "first day of the week" in Trending   
Feb 12, 1998   datasets from MXG's default of MONday.                   
   Thanks to Chris Weston, SAS ITSV Cary, USA.                          
                                                                        
Change 15.367  The EXCPNODD and EXCPTODD counts in step and job records 
ANALMULT       with MULTIDD='Y' (i.e., there were so many DD segments   
Feb 12, 1998   that MVS created multiple type 30 records for a step)    
               are incorrect, because they are created for each step    
               record and are not summed across all of the multiple     
               records.  Since these MULTIDD='Y' jobs are almost always 
               data center work (like SAR/RMDS/etc spoolers) the error  
               has not had any real effect, but this user has provided  
               a series of macros that will start with the raw SMF data 
               and correctly calculate EXCPNODD and EXCPTODD for these  
               MULTIDD='Y' tasks.  Because it must sort lots of records,
               and takes appreciable CPU and IO resources, I have no    
               plans to add the logic to BUILDPDB, but it is here if    
               you need it!                                             
   Thanks to Dr. Alexander Raeder, Karstadt, GERMANY.                   
                                                                        
Change 15.366  Member ANALUOW as announced in Change 15.205, but it did 
ANALUOW        not get copied into the MXG library until MXG 15.09, and 
Feb 12, 1998   it was cleaned up and enhanced now as well.              
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.365  CICS DFHSTUP "Shutdown" reports CICNQG, CICLGS, and      
ANALCISH       CICLGR have been added to member ANALCISH.               
Feb 20, 1998                                                            
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
                                                                        
Change 15.364  Support for StorageTek VSM SMF records adds 17 new data  
EXSTCV09-      sets for HSC subtypes 09 thru 26.  The datasets are      
EXSTCV25       named STCVSM09 thru STCVSM26 and they provide significant
VMACSTC        measurements, including bytes read/written, duration of  
Feb 12, 1998   mount, dismount, recall, migrate, etc., etc., etc!       
Feb 20, 1998   The code has been syntax checked and subtypes 13, 14, 15 
               and 21 records have been processed.                      
                                                                        
Change 15.363  IDMS Journal Format Performance Records were apparently  
TYPEIDMJ       changed in IDMS Version 12, and the old Journal support  
VMACIDMJ       failed.  This revision heuristically skips over the non  
Feb 11, 1998   performance segments and has been tested with real data. 
               Unfortunately, the quick solution was to create VMACIDMJ 
               that knows about the idiosyncrasies of the Journal data, 
               but this means dual maintenance in VMACIDMS/VMACIDMJ with
               each new version of IDMS!                                
   Thanks to Alfred Mueller, ABN-AMRO Services Co., USA.                
                                                                        
Change 15.362  NPM type 28 subtype 82 caused INPUT STATEMENT EXCEEDED   
VMAC28         because 36 bytes were input when there were only 24.  The
Feb 10, 1998   statement ELSE IF LENAOF GE 172 AND NPMSUBTYP NE 83X     
                            THEN INPUT +36 @;                           
               must be changed to ELSE  .... THEN INPUT +24 @;          
   Thanks to Mel Hitchings, British Telecom, WALES.                     
                                                                        
Change 15.361  Creation of the WKnnPCPU, WKnnPPRV, and WKnnPUSR percent 
NTINTRV        values in the NTINTRV dataset was revised to convert the 
Feb 10, 1998   percentages to durations, sum the durations, and recalc  
               the percentage values.  If the DURATM of all PROCESS     
               intervals is the same, the new and old calculations are  
               identical, but the old calculations were wrong if there  
               were dissimilar values of DURATM in the PROCESS dataset. 
   Thanks to Wayne Holzback, Reynolds Metal Company, USA.               
                                                                        
Change 15.360  Variable OTHRPUSR was not in the RETAIN list in member   
NTINTRV        NTINTRV, causing that variable to be missing from the    
Feb 10, 1998   NTINTRV dataset.                                         
   Thanks to Marti Henley, Matridigm Corporation, USA.                  
                                                                        
Change 15.359  DCOLLECT variables DDCXSYS and DDCXREG were reversed in  
VMACDCOL       the input statement; DDCXSYS should have been first and  
Feb 10, 1998   then DDCXREG second, as it was in DCOLLECT 1.2.  In 1.3  
               the documentation reversed the order, but tests with     
               data confirm the real order is XSYS and then XREG.       
   Thanks to Mike Blocker, Fidelity Investments, USA.                   
                                                                        
Change 15.358  The TYPE42AU (Audit ACTIVATE, ENF, or VARY SMS events)   
VMAC42         was not input correctly, but the record is also wrong!   
Feb 10, 1998   MXG errors: insert  +16   between INPUT and SMF42ETY.    
                           change  +72 to +88       before SMF42ESD.    
               IBM error: there are only 31 total bytes between SMF42ETY
                          and SMF42EVL, instead of the 32 documented.   
                          I changed the +22 after SMF42ENM to +21 while 
                          we sort out IBM's error.                      
   Thanks to Michael E. Friske, Fidelity Investments, USA.              
                                                                        
Change 15.357  Support for APAR OW29790 adds variables PGOALPCT and     
VMAC99         SERVER01-SERVER05 and SERVPN01-SERVPN05 to the TYPE99_6  
Feb 10, 1998   dataset to track service classes served.                 
                                                                        
Change 15.356  This enhancement adds a  &MACxxxx  macro variable in each
DOC            VMACxxxx member so that you can dynamically override the 
VMXGINIT       IMACxxxx member without having to EDIT and save an IMAC! 
Feb  8, 1998   In each VMACxxxx member, a new line with "&MACxxxx;" was 
               added immediately after the %INCLUDE SOURCLIB(IMACxxxx). 
               For example, in member VMACHSM, the statements are:      
                   %INCLUDE SOURCLIB(IMACHSM);                          
                   &MACHSM;                                             
               Each of the &MACxxxx macro variables are initialized to  
               a null string, and GLOBALed, in member VMXGINIT.         
                                                                        
               So in your program, you can set the value of the &MACxxxx
               macro variable equal to the old-style macro definition   
               syntax  ("MACRO macro-name  macro-text  %" to thus change
               the definition of the _L,_K dataset tailoring macros:    
                  MACRO _Lxxxxxx  -  tailor Libref and Dataset Name     
                  MACRO _Kxxxxxx  -  tailor KEEP/DROP list of vars      
               or to change the new _S PROC SORT macro added in 15.328: 
                  MACRO _Sxxxxxx  -  PROC SORT and BY statements        
               or in a future version, change the planned _E Exit macro:
                  MACRO _Exxxxxx  -  will allow you to override the     
                                       %INC SOURCLIB(EXxxxxxx) exit.    
               and thus have complete dynamically tailoring for each    
               individual dataset.  For example, for SMF 30, you could: 
                                                                        
                   %LET MAC30=                                          
                      MACRO _LTY30U1 _NULL_ %                           
                      MACRO _LTY30U4 MYDD.TYPE30_4 %                    
                      MACRO _LTY30U5 _NULL_ %                           
                      MACRO _LTY30UV _NULL_ %                           
                      MACRO _LTY30UD _NULL_ %                           
                      MACRO _LTY30U6 _NULL_ %                           
                      MACRO _LTY30MU _NULL_ %                           
                      MACRO _LTY30OM _NULL_ %                           
                    ;                                                   
                    %INCLUDE SOURCLIB(TYPE30);                          
                                                                        
               to create only the dataset TYPE30_4 from the subtype     
               4 record, and it would be written to the //MYDD library. 
                                                                        
               For a User-SMF record, where you must set the SMF record 
               ID in the MACRO _IDxxxx in the IMACxxxx for the product, 
               you can now redefine the _ID macro with the &MACxxxx.    
               For example, to process the HSM User SMF record and put  
               all HSM datasets in the //WORK library, you could use:   
                                                                        
                   %LET MACHSM=                                         
                      MACRO _IDHSMDS 240 %                              
                   ;                                                    
                   %INCLUDE SOURCLIB(TYPEHSM);                          
                                                                        
               For those not familiar with the syntax of the %LET, you  
               use  %LET MACxxx=  before the old-style macro statements 
               and then you end the %LET statement with a semi-colon.   
               If the text contains semi-colons, you can instead use    
                   %LET MACxxx= %QUOTE( whatever-with-semicolons) ;     
                                                                        
               For those not familiar with the syntax of the old-style  
               MACRO statement, it is simply                            
                   MACRO  macro-name  macro-text                        
               and then a single percent-sign ends the definition.      
               If the macro text has a percent-sign, then double it:    
                   MACRO _EXXXXXX  %%INCLUDE SOURCLIB(EXYYYY);  %       
                                                                        
               This new &MACxxxx architecture is a significant piece of 
               the complete redesign to allow external control of all   
               MXG datasets.  Because the &MACxxxx enhancement is safe  
               and can be used to override existing IMAC definitions, it
               is added in MXG 15.09.  The remaining pieces of this big 
               change will be implemented after MXG 15.15 has shipped!  
                                                                        
Change 15.355  Variables ASICSAA, ASISQAA, ASIECSAA and ASIESQAA were   
VMACRMFV       horifically large, because they should have been read in 
Feb  5, 1998   with &RB.4. informat instead of &PIB.4.                  
   Thanks to Peggy Dunne, Depository Trust Company, USA.                
                                                                        
Change 15.354  All VMACs that process SMF records were made consistent, 
VMACSMF        by locating the "IF ID = ..." statement immediately after
BUILD606       the MACRO _CDExxxx statement.  All new VMACs have been   
BUIL3606       written that way, but some old VMACs had LABEL statements
Feb  5, 1998   between the macro definition and the IF test.  Now that  
               the _CDExxxx macros for SMF records all start with the IF
               test for record IDs, the efficiency improvements of MXG  
               Change 15.329 are revised again.  Instead of the logic   
                   ELSE IF ID=xx THEN DO;                               
                     _CDExxxx                                           
                   END;                                                 
               now, the logic                                           
                   ELSE   _CDExxxx                                      
               can be used, eliminating the extra test imposed by the   
               external IF statement.                                   
               The VMACs whose IF statement was relocated are:          
               VMAC25 VMAC7072 VMAC71 VMAC73 VMAC74 VMAC75 VMAC76       
               VMAC77 VMAC78   VMACCTCP VMACEDGS VMACF127 VMACFTEK      
               VMACHSM VMACODS VMACSYNC VMACTSOM                        
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.353  Support for Landmark's TMON for CICS Version 2 (MXG1506) 
VMACTMO2       conflicted with ITSV because some variables were changed 
Feb  5, 1998   incorrectly by MXG, and some variables were not created. 
               Variable MONIMANT is now created, variable TATASKNN is   
               re-spelled TATASKNR, variable CICSLV is renamed to be    
               CICSLEV (Landmark changed it from PIB1 to $CHAR4 so I    
               had no choice), and variable FACTYP is changed back to   
               PIB1 and formatted as it was in prior versions.          
   Thanks to Rod Gaas, Eagle Star, UK.                                  
                                                                        
Change 15.352  MXG 15.08.  The label for variable S1ELEMLO was typed as 
VMAC110        S1ELEMLO='LOWEST*FREE*ELEMENTS*='/  but SAS did not die  
Feb  4, 1998   or produce an error message!  The extraneous characters  
               are now removed.  Also, macro _CICSTCMN was added to the 
               KEEP= list for dataset CICSSMED so the common variables  
               (in particular, SYSTEM and SMFTIME) will now be kept.    
   Thanks to Chris Weston, SAS ITSV, USA                                
                                                                        
Change 15.351  Cosmetic.  Variable LCSLOV1 label should have been       
VMAC28         'OVERFLOW*FLAG*BYTE'.                                    
Feb  4, 1998                                                            
   Thanks to Ley Teng, QANTAS, AUSTRALIA.                               
                                                                        
Change 15.350  The explicit dataset names TYPE72 and TYPE6 were replaced
ASUMPRTR       with _LTY72 and _LTY6 macro names instead, so that if you
Jan 31, 1998   re-direct either dataset from the default of "WORK", MXG 
               will find it where you put it.                           
   Thanks to Chris Weston, SAS ITSV, USA.                               
                                                                        
Change 15.349  The example "reptprod" file to control fields extracted  
ADOCMWAI       from HP's MeasureWare for AIX is now provided in the     
Jan 28, 1998   ADOCMWAI member.                                         
   Thanks to Lorenzo Wright, NCCI, USA.                                 
   Thanks to Thierry Van Moer, Comparex, BELGIUM.                       
                                                                        
Change 15.348  Member VMACTRNS was a copy of VMACTRSN that had been     
VMACTRSN       saved under the incorrect VMACTRNS name, so the member   
Jan 27, 1998   VMACTRNS has been deleted.                               
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.                
                                                                        
Change 15.347  The VMXGFOR references in the commented out example that 
RMFINTRV       can be used to read SMF directly must all be %VMXGFOR.   
Jan 27, 1998   Only if you remove the comment block to read SMF direct  
               would you see this error.                                
   Thanks to Jim Chappell, Pacific Power and Light, USA.                
                                                                        
Change 15.346  Support for Landmark for MVS Version 2 segments that were
VMACTMV2       not available for testing in MXG 15.08.  New segments    
Jan 26, 1998   that have now been data-validated are:  JD, LM, and TR.  
               These record subtypes caused INPUT STATEMENT EXCEEDED.   
   Thanks to Jonathan McVey, Lowe's Company, USA.                       
   Thanks to Mark Derreks, Hershey's, USA.                              
                                                                        
Change 15.345  MXG 15.08 only.  The new MACRO _SCICEXC should have had  
IMACCICS       &PDB..CICSEXCE instead of &PDB.CICSEXEC.  Fortunately,   
Jan 20, 1998   the new macro is not (yet!) used in MXG code, so there   
               was no execution error.                                  
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
Change 15.344  Variable NTVERSP was truncated to 12 positions, so it    
VMACNTSM       had only "Service Pack" instead of "Service Pack 3".     
Jan 20, 1998   Move the NTVERSP in the line with $12 to the next line,  
               with $32, so it will be 32-bytes long.                   
   Thanks to Marty Henley, Matridigm, USA.                              
                                                                        
Change 15.343  MXG 15.08 only, JES2 only.  Change 15.329 reordered the  
BUILD606       _CDE macros for performance, but putting _CDE30 ahead of 
Jan 20, 1998   _CDE26J2 caused variable JOBCLASS to be 8 bytes instead  
               of 1 byte.  (JES2 has a one byte JOBCLASS, JES3 has three
               bytes kept, but the variable is input at $EBCDIC8 in the 
               type 30 logic.)  By placing the _CDE26J2 processing prior
               to the _CDE30 processing for the JES2 BUILDPDB, the      
               JOBCLASS variable will be 1 byte in JES2 and 8 in JES3.  
   Thanks to Tom Parker, CSC Hogan Systems, USA.                        
                                                                        
Change 15.342  MXG 15.08 only.  Change 15.330 was not correct, causing  
VMAC26J2       type 26 ACCOUNTn fields to be not input.  The test       
Jan 20, 1998     (SMF26OAG+SMF26LAG-1 LE LENGTH) should have been       
                 (SMF26OAG+SMF26LAG-4 LE LENGTH).                       
   Thanks to Tom Parker, CSC Hogan Systems, USA.                        
                                                                        
Change 15.341  Support for 'DD'x NPM record did not input the VCD data. 
VMAC28         Change the test that sets COFTYPE='VCD' to read:         
Jan 19, 1998     ELSE IF 0D0X LE NPMSUBTY LE 0DBX OR                    
                       NPMSUBTY EQ 0DDX  THEN COFTYPE='VCD';            
   Thanks to Mel Hitchings, British Telecom, WALES.                     
                                                                        
======Changes thru 15.340 were in MXG 15.08 dated Jan 15, 1998======    
                                                                        
Change 15.340  Cosmetic.  Extra variables were kept in NPMINFRP because 
VMAC28         the KEEP= list contained _VA28ACD, but that should have  
Jan 15, 1998   been _VA28NCD, which is the shorter configuration record 
               that is in NPMINFRP.  Variable names that were misspelled
               are corrected: LFRPOBOL is LFRPOBQL, LXLKTSLP/LXLKRSLP is
               LXLKTLSP/LXLKRLSP and LXPUTSLP/LXPURSLP is ....TLSP/RLSP.
   Thanks to Ley Teng, QANTAS, AUSTRALIA.                               
                                                                        
Change 15.339  The first MXG 15.08 tapes dated Jan 14, 1998 contained an
UTILUOW        error: the member UTILUOW was added at the last minute,  
Jan 15, 1998   and I failed to change its "./" IEBUPDTE control cards   
               to "XY", so when IEBUPDTE read the tape to create your   
               source library, those "./" cards in UTILUOW overwrote    
               all of the (previously unloaded successfully!) EXCICxxx  
               members.  Replacement tapes with Jan 15, 1998 date (and  
               with XY vice ./) were shipped to the 23 sites getting the
               bad tape, but you could copy the tape and delete lines   
               864,653 thru 865,135 inclusive, and then use that copy as
               input to IEBUPDTE.                                       
   Thanks to Freddie Arie, Texas Utilities, USA.                        
                                                                        
======Changes thru 15.338 were in MXG 15.08 dated Jan 14, 1998======    
Change 15.338  Further cleanup and enhancements to eliminate unneeded   
ANALCISH       datasets (the INT, EOD, USS, RRT, and REQ datasets are   
Jan 14, 1998   not used by any ANALCISH report, so they are no longer   
               created when PDB=SMF is specified, for example).  You    
               can select from more than one PDB library for input with 
               the PDB=TUE WED THU,  syntax, and handling of the many   
               WORK.TRANSxx merges was revised.                         
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
                                                                        
Change 15.337  Support for AIX commands IOSTAT, PSSTAT and VMSTAT       
AIXPDS         has been revised and enhanced from the original unix     
Jan 14, 1998   examples in member VMACRSxx.  Those members and new      
               ones, including JCL examples for FTPing the unix data    
               to MVS, are provided in this find enhancement authored   
               and contributed by Joe.  See the comments to expand the  
               member into a separate MXG.RX6000.SOURCLIB library.      
               Using the unix commands to measure unix performance is   
               marginal at best, but if you do not have a monitor       
               product for unix, you can get useful information by      
               running the PSSTAT, IOSTAT and/or VMSTAT commands and    
               using this code to turn them into MXG datasets.          
   Thanks to Joe Faska, Depository Trust, USA.                          
                                                                        
Change 15.336  Support for NPM APAR OW17876 and NPM Version 2.3 added   
EX028VTT       variables to the CSL, FRP, GBL, TRI, VCD, VEN, VGB, and  
IMAC28         VVR segments, and new dataset NPMVSVTT is created from   
VMAC28         from new subtype 'DD'x record.  Many new variables       
Jan 14, 1998   provide HPR counts (frames/bytes sent/rcv/discarded).    
               These changes were COMPATIBLY made by IBM, so earlier    
               versions of MXG will not fail with NPM 2.3 records, but  
               this change is required to capture the new fields.       
   Thanks to Melanie Hitchings, British Telecommunications, WALES.      
                                                                        
Change 15.335  Utility to examine CICSTRAN observations from MRO CICS   
UTILUOW        to determine which transaction record contains the real  
Jan 13, 1998   transaction name for each unit-of-work.  With the output 
               of UTILUOW, you can edit IMACUOW to tell MXG which name  
               to keep, so that dataset ASUMUOW will have the "correct" 
               TRANNAME name for the UOW.  Read the member's comments.  
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.334  Cosmetic.  Temporary dataset KEEPERS was not deleted when
VMXGSUM        there were no observations in the input dataset, but now 
Jan 13, 1998   it is always deleted.                                    
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.333  Support for type 79 subtype 15 (IMS Long Lock) record has
EXTY79F        only been visually tested, as no IMS site has sent any   
IMAC79         test data.  For each Long Lock, you get the IRLM lock    
VMAC79         structure name and Lock Name, as well as identity of the 
Jan 11, 1998   IMS subsystem and even CICS task name (if CICS).         
                                                                        
Change 15.332  All ADOC members have been updated to list all variables 
ADOCx          as of MXG 15.07; this is the output of an extensive piece
Jan  9, 1998   of work by Freddie that merge new variables and datasets 
               into the existing ADOC members, while preserving the text
               descriptions, tutorials, discussions, and the sample PROC
               PRINT and MEANS output.  This iteration makes all of the 
               ADOCs conform to the format described in ADOCxxxx, so    
               that this process can be fully automated and will soon be
               an automated part of the MXG QA jobstream.               
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
Change 15.331  OMEGAMON FOR VTAM 400, Change 15.296 was not complete,   
VMACOMVT       amd caused MXG to loop on an INPUT statement.  All byte  
Jan  9, 1998   related variables are now formatted with MGBYTES.  MXG   
               now creates new interval rate, or "Per Sec", variables   
               for each pair of ACCUM/PREVIOUS counters.  These new     
               variables, suffixed with R, should be most useful.       
               The ACCUM/PREVIOUS counters could be dropped if space    
               becomes an issue.  However, the OMVTMPCS pair ON08BCT    
               and ON08BCTP for one interval produced a negative value  
               for the "Per Sec" value, ON08PCTR, because the ACCUM of  
               104,425 was less than the PREVIOUS of 108840!  This will 
               be investigated with Candle.                             
   Thanks to Joseph E. Darvish, Farmers Insurance Group, USA.           
   Thanks to Robert S. Miller, Farmers Insurance Group, USA.            
                                                                        
Change 15.330  APAR OW28613 corrects an error in SMF26OAG; without the  
VMAC26J2       APAR, MXG had INPUT STATEMENT EXCEEDED error condition.  
Jan  8, 1998   To circumvent the error until you get the APAR installed 
               change the test of SMF26OAG to read as follows:          
                 IF SMF26OAG GT 0 AND SMF26LAG GT 0 AND SMF26NAG GT 0   
                    AND (SMF26OAG+SMF26LAG-1 LE LENGTH) THEN DO;        
               (The bad record I saw has LENGTH=417 but SMF26OAG=439!)  
               Only variables ACCOUNTn in dataset TYPE26J2 (which are   
               new additions) are affected by the error, and the will be
               blank until you install the APAR.  Furthermore, MXG uses 
               the type 30 ACCOUNTn fields in BUILDPDB normally, and    
               will use the new type 26 fields only for job's with JCL  
               errors that did not execute.                             
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
                                                                        
Change 15.329  The BUILDPDB logic for the SMF processing phase is now   
BUILDPDB       more efficient, as the _CDExxxx macros are reordered to  
BUILDPD3       process the most frequent records first (the order is    
BUILD606       110, 30, 74, 100-101 and then the rest), and the _CDExxxx
BUIL3606       macros are now inside ELSE IF ID= xxx then DO; blocks.   
BUILD001       This will result in significant reductions in CPU time!  
EXTYID         Also, the ID dataset that was hardcoded in BUILPDx code  
IMACID         has been externalized so it can be tailored to contain   
TYPEID         additional variables (in IMACID's _KTYID macro) or can   
VMACID         contain zero observations (by commenting out the OUTPUT  
Jan  7, 1998   statement in member EXTYID).  See Change 15.354, which   
               redesigned this change for more efficiency.              
                                                                        
Change 15.328  New macros _Sxxyyyy are defined in IMACs that will let   
IMACs          you sort individual datasets exactly as that dataset is  
Jan  7, 1998   sorted into the PDB library in BUILDPDB/BUILDPD3.  The   
               _Sxxyyyy name matches the _L, _K macro names and the     
               EXxxyyyy exit member naming conventions.  The sort macro 
               is needed by sites that have so much SMF data that they  
               have to split their SMF data into parallel SMF files. An 
               example of their use would be for a site that split their
               type 74 RMF records to a separate SMF file.  To create   
               the TYPE74 and TYPE74CA datasets into separate SAS data  
               libraries they could now use:                            
                                                                        
                //SMF      DD DSN=SMF.TYPE74.ONLY,DISP=SHR              
                //TYPE74   DD DSN=YOUR.TYPE74.PDB,DISP=NEW              
                //TYPE74CA DD DSN=YOUR.TYPE74CA.PDB,DISP=NEW            
                      %INCLUDE SOURCLIB(TYPE74);                        
                      %LET PDB74=TYPE74;                                
                      _STY74                                            
                      %LET PDB74CA=TYPE74CA;                            
                      _STY74CA                                          
                                                                        
               The _STY74 macro definition (in member IMAC74) is:       
                   MACRO _STY74                                         
                     PROC SORT NODUP DATA=_LTY74                        
                                     OUT=&PDB74..TYPE74 ;               
                     BY SYSTEM STARTIME DEVNR SMFTIME;                  
                   %                                                    
                                                                        
               so it uses the _LTY74 name to get the location of the    
               unsorted TYPE74 dataset, and sorts it into the new       
               &PDB74 macro for the DDname that was just added by       
               Change 15.320.                                           
                                                                        
               (The %VMXGFOR macro, needed so that PROC SORT's FORCE    
               option is used so that you can SORT when OBS= is not     
               OBS=MAX, has double percent signs because it is inside   
               an old-style MACRO definition).                          
                                                                        
               A later MXG Technical note will discuss other examples.  
               Only those IMACs for products that are in the default    
               BUILDPDB/BUILDPD3 now have _Sxxxyyy macros, but over time
               I hope to provide an _S macro with the MXG "recommended" 
               sort order for every MXG dataset.  At the present time,  
               none of the _S macros are used in the BUILxxxx members.  
   Thanks to Billy Westland, Litton Computer Services, USA.             
                                                                        
Change 15.327  APAR OW28921 adds a volume segment to type 42 subtype 11 
VMAC42         XRC (eXtended Remote Copy) SMF records, but the volume   
Jan  7, 1998   data is present only if the volume being copied is in a  
               duplex state.  I need sample data records before I can   
               proceed to add support for that APAR, so if you can send 
               sample data for a duplexed volume copied with XRC, do it!
                                                                        
Change 15.326  Cosmetic.  Labels were added for variables DCSNAME and   
NTINTRV        PRODTYPE and NRCPUS, andNRCPUS is now kept in dataset    
VMACNTSM       NTCONFIG. In NTINTRV, variables DCPQUED and DCPRATE are  
Jan  7, 1998   now correctly spelled as DPCQUED and DPCRATE.            
                                                                        
Change 15.325  The number of RACF DTP (44) segments kept is increased   
VMAC80A        from 6 to 12 for RACFEVNT 10 and 13, and the MXG message 
Jan  7, 1998   was relocated so the total count in the record is now    
               printed.  See Change 15.289.                             
   Thanks to Tom Parker, Hogan Systems, USA.                            
                                                                        
Change 15.324  DCOLLECT cluster records do not contain a VOLSER, but the
VMACDCOL       Variable DCDVOLSR is now RETAINed from the preceding     
Jan  7, 1998   dataset record (DCURCTYP='D', for DCOLDSET dataset) so   
               that dataset DCOLCLUS now contains DCDVOLSR.             
   Thanks to John W. Etter, StorageTek, USA.                            
                                                                        
                                                                        
Change 15.323  All packed decimal inputs are now protected with ?? input
VMACZARA       modifier so that hex zeros won't create a SAS log note.  
Jan  5, 1998   The file record contains System ID at location 295, so   
               new variable FILESYST is now created.  Both statements   
                IF FILEDATL=0 THEN DATECR=.; were typos and now read:   
                IF FILEDATL=0 THEN DATELU=.;                            
   Thanks to Harry Olschewski, DeTeCSM/SES, GERMANY.                    
                                                                        
Change 15.322  MXG 15.07 only.  Remove SMTNTASK from the KEEP statement 
ANALCISH       91 lines after DATA &MXGDS1.  Change SMTRANI to SMSTRNI  
Jan  3, 1998   in all 57 occurrences.                                   
                                                                        
Change 15.321  Some variables in RMF III VSAM processing were wrong.    
VMACRMFV      -In dataset ZRBASI, variables ASITOTSV, ASISVINR, ASIGSPPI
Jan  3, 1998   and ASIGASPD were wrong because ASICUSE, ASITOTD, and    
               ASISRVO should have been input as &PIB.4. instead of as  
               &PIB.2.  New variables ASIOREPL, ASIOTOTU, and ASIIOU    
               (new with OS/390 R1.1) are now created in ZRBASI.        
              -In dataset ZRBGEI, variables GEIWLMTK and GEISPLXI should
               be input $EBCDIC8. instead of $CHAR8. (but under MVS the 
               results are the same; only if you run MXG under ASCII SAS
               would you have noticed the error). Variable PCTCPUBY is  
               now always missing, as its source field GEICPUOL is now  
               reserved in OS/390.                                      
   Thanks to Joe Faska, Depository Trust, USA.                          
   Thanks to Peggy Dunne, Depository Trust Company, USA.                
                                                                        
Change 15.320  All hardcoded references to "PDB" as a DDNAME are now    
DOC            replaced with a macro variable, &PDBxxxx, so that each   
VMXGINIT       datasets can be re-directed to a different DD if needed. 
Jan  2, 1998   For example, if you want to write the TYPE74 dataset to  
Jan 12, 1998   a separate DDname of MY74, you would use:                
                 %LET PDB74=MY74;  %INCLUDE SOURCLIB(BUILDPDB);         
               to create dataset MY74.TYPE74 in the MY74 Libref.        
               A separate &PDBxxxx macro exists for each dataset in the 
               PDB architecture. The macro &PDB and "PDB." were changed 
               to &PDBMXG macro name.  All of the &PDBxxxx macros have a
               default value of "PDB".  VMXGINIT defines these macros:  
                                                                        
               %MACRO VMXGINIT(DEFAULT=PDB);                            
                 %LET PDBMXG =&DEFAULT;                                 
                 %LET PDB0   =&DEFAULT; /*TYPE0 >> PDB.IPLS */          
                 %LET PDB0203=&DEFAULT; /*TYPE0203 */                   
                 %LET PDB6   =&DEFAULT; /*TYPE6 */                      
                 %LET PDB21  =&DEFAULT; /*TYPE21 >> PDB.TAPES */        
                 %LET PDB25  =&DEFAULT; /*TYPE25 (JES3 ONLY) */         
                 %LET PDB30UD=&DEFAULT; /*TYPE30_D >> PDB.DDSTATS*/     
                 %LET PDB30UV=&DEFAULT; /*TYPE30_V >> PDB.SMFINTRV*/    
                 %LET PDB30U1=&DEFAULT; /*TYPE30_1 */                   
                 %LET PDB30U4=&DEFAULT; /*TYPE30_4 */                   
                 %LET PDB30U5=&DEFAULT; /*TYPE30_5 */                   
                 %LET PDB30U6=&DEFAULT; /*TYPE30_6 */                   
                 %LET PDB30OM=&DEFAULT; /*TYPE30OM */                   
                 %LET PDB30MU=&DEFAULT; /*TYPE30MU */                   
                 %LET PDB70  =&DEFAULT; /*TYPE70 */                     
                 %LET PDB70PR=&DEFAULT; /*TYPE70PR */                   
                 %LET PDB71  =&DEFAULT; /*TYPE71 */                     
                 %LET PDB72  =&DEFAULT; /*TYPE72 */                     
                 %LET PDB72GO=&DEFAULT; /*TYPE72GO */                   
                 %LET PDB72DL=&DEFAULT; /*TYPE72DL */                   
                 %LET PDB72MN=&DEFAULT; /*TYPE72MN */                   
                 %LET PDB72SC=&DEFAULT; /*TYPE72SC */                   
                 %LET PDB7204=&DEFAULT; /*TYPE7204 */                   
                 %LET PDB73  =&DEFAULT; /*TYPE73 */                     
                 %LET PDB73L =&DEFAULT; /*TYPE73L */                    
                 %LET PDB73P =&DEFAULT; /*TYPE73P */                    
                 %LET PDB74  =&DEFAULT; /*TYPE74 */                     
                 %LET PDB74CA=&DEFAULT; /*TYPE74CA */                   
                 %LET PDB74CF=&DEFAULT; /*TYPE74CF */                   
                 %LET PDB74ST=&DEFAULT; /*TYPE74ST */                   
                 %LET PDB74TD=&DEFAULT; /*TYPE74TD */                   
                 %LET PDB75  =&DEFAULT; /*TYPE75 */                     
                 %LET PDB77  =&DEFAULT; /*TYPE77 */                     
                 %LET PDB78  =&DEFAULT; /*TYPE78 */                     
                 %LET PDB78CF=&DEFAULT; /*TYPE78CF */                   
                 %LET PDB78CU=&DEFAULT; /*TYPE78CU */                   
                 %LET PDB78IO=&DEFAULT; /*TYPE78IO */                   
                 %LET PDB78PA=&DEFAULT; /*TYPE78PA */                   
                 %LET PDB78SP=&DEFAULT; /*TYPE78SP */                   
                 %LET PDB78VS=&DEFAULT; /*TYPE78VS */                   
                 %LET PDBTMNT=&DEFAULT; /*TYPETMNT */                   
                 %LET PDBTSWP=&DEFAULT; /*TYPETSWP */                   
                 %LET PDBTALO=&DEFAULT; /*TYPETALO */                   
                 %LET PDBNJEP=&DEFAULT; /*PDB.NJEPURGE*/                
                 %LET PDBJOBS=&DEFAULT; /*PDB.JOBS */                   
                 %LET PDBSTEP=&DEFAULT; /*PDB.STEPS*/                   
                 %LET PDBPRIN=&DEFAULT; /*PDB.PRINT*/                   
                 %LET PDBRMFI=&DEFAULT; /*PDB.RMFINTRV*/                
                                                                        
               The &DEFAULT macro argument in VMXGINIT exists so that   
               SAS ITSV product can send all datasets to the //WORK     
               file and then later copy them to their //DIRECT libref.  
               This eliminated the needs discussed in Change 15.272.    
               It is unlikely anyone else will need to use that option. 
                                                                        
               Since the default value for all of these macros is "PDB",
               the change should be completely transparent to MXG users.
                                                                        
               However, users of SAS ITSV Version 2.0 and SAS/CPE must  
               install this circumvention with MXG 15.08 or later:      
                  The following two lines of code must be inserted      
                  immediately before any %CMPROCES invocation:          
                     %INCLUDE SOURCLIB(VMXGINIT);                       
                     %VMXGINIT(DEFAULT=WORK);                           
               Version 2.1 of ITSV does not need this circumvention.    
                                                                        
Change 15.319  Cosmetic.  Data set Labels were added to VMAC members to 
BUIL3005       label datasets TYPE0203, TYPE7, TYPE21, TYPE75, and      
BUILD005       TYPE7204, and Labels for datasets PDB.JOBS, PDB.STEPS,   
BUILDPD3       PDB.PRINT, PDB.SMFINTRV and (JES2-only) PDB.NJEPURGE were
BUILDPDB       added in the BUILxxxx members.  The labels in BUILxxxx   
DIFFDB2        members now contain BUILDPDB/BUILDPD3/BUILD005/BUIL3005  
RMFINTRV       so you can tell exactly which member created your PDB    
VMAC0203       library! Data set Label for RMFINTRV was added, and in   
VMAC21         DIFFDB2 labels were added for the de-accumulated         
VMAC7          statistics datasets (and they too indicate DEACCUM versus
VMAC7072       the RAW tag now used in VMACDB2 for those same datasets).
VMAC75         Data set labels are passed from input to output by PROC  
VMACDB2        SORTs, so only DATA steps were labeled.                  
Dec 31, 1997                                                            
   Thanks to Lindsay Oxenham, IBM Global Services, AUSTRALIA.           
                                                                        
Change 15.318  Cosmetic.  Comments were updated to list all of the MXG  
IMACACCT       members that contain account fields and thus include     
Dec 31, 1997   member IMACACCT:                                         
                 VMAC20   VMAC26J2 VMAC26J3 VMAC30   VMAC33   VMAC434   
                 VMAC535  VMACBETA VMACDB2  VMACNAF  VMACORAC VMACSFTA  
                 VMACTSOM VMACXPSM XTYPEMVT XTYPEVS1                    
   Thanks to Charlie Bloemker, Lockheed-Martin, USA.                    
                                                                        
Change 15.317  ML-15 of ASMTAPES does not run under MVS/ESA 4.2 or any  
ASMTAPES       earlier release of MVS; in fact, the monitor program     
Dec 31, 1997   will loop under that archaic release.  If you are still  
               stuck with a back level MVS, use the back level ASMTAPES 
               or ASMTMNT until you upgrade your MVS.                   
   Thanks to Scott Snyder, First Data Merchant Services, USA.           
                                                                        
Change 15.316  Support for OS/400 Release 4.1.0 (INCOMPATIBLE in three  
VMACQAPM       datasets - QAPMETH, QAPMIDLC, and QAPMLAPD, because field
Dec 30, 1997   lengths were changed and/or reserved fields were deleted)
               but the other "important" datasets were not changed.     
               This support is based on examination of DSECTS, but has  
               not been absolutely verified with AS400 4.1 data yet.    
   Thanks to Len Marchant, Coca Cola, USA.                              
                                                                        
Change 15.315  Major enhancement in architecture of ASUMUOW program that
ASUMUOW        merges/sums CICSTRAN and DB2ACCT into one observation for
IMACUOW        each unit of work.  Member IMACUOW now defines new macro 
Dec 30, 1997   _TRANUOW that allows you to determine which CICS trans   
               record is used to supply TRANNAME in the PDB.ASUMUOW data
               set that is created by ASUMUOW.  For some environments,  
               the TRANNAME wanted is the first transaction to end, but 
               with CICS under OS/2, the first transaction name is CPMI 
               and that mirror name is not the desired transaction name.
               Comments in IMACUOW and ASUMUOW discuss the three choices
               that now exist, and other tailoring options.             
               Note that while ASUMUOW is automatically included in the 
               JCLPDB6 example, so that dataset PDB.ASUMUOW will be     
               created by default, the dataset PDB.ASUMUOW will contain 
               zero observations until you tailor member IMACUOW; that  
               way, there is no sort of CICSTRAN and DB2ACCT until you  
               tell MXG you want to create observations in PDB.ASUMUOW. 
   Thanks to Richard S. Ralston, Whirlpool Corporation, USA.            
                                                                        
Change 15.314  Cosmetic corrections (duplicate variable name in KEEP,   
DOC            FORMAT, INFORMAT, or incorrect comment statement naming  
Dec 30, 1997   dataset OUTPUT, etc., were corrected in members:         
               EXAIMRA  EXAIMRD  EXAIMRP  EXAIMRR  EXAIMRT  EXAMIRS     
               EXHPTEAP EXHPTECO EXHPTEDS EXHPTEGL EXHPTELA EXHPTEPR    
               VMAC102  VMAC110  VMAC7072 VMAC99   VMACAIMR VMACCMFV    
               VMACCTCP VMACDCOL VMACEREP VMACHBUF VMACHURN VMACNSPY    
               VMACOMVT VMACSARX VMACTCP  VMACTMO2 VMACTUX  VMACVMXP    
               VMACXPSM                                                 
   Thanks to Fredie Arie, Lone Star Gas, USA                            
                                                                        
Change 15.313  Support for ICSS SMF type 103 (Internet Connection Secure
DIFF103        Server, V2R2, but soon it will be renamed to Domino GO   
EXTY1031       Webserver V2R4, with no change in the record format).    
EXTY1032       Two new datasets are created for this webserver:         
IMAC103          Subtype   Dataset Name   Description                   
TYPE103            1       TYPE1031       ICSS Configuration            
VMAC103            2       TYPE1032       ICSS Performance              
VMACSMF        Many Configuration Values are decoded by formats.        
Dec 20, 1997   Member VMACSMF had to be updated, because the SMF 103    
Jan 14, 1998   record does not correctly set the second bit in the      
Feb 20, 1998   first byte ("record has subtype field" bit).  The        
               TYPE1032 Performance record contains request counts like 
               bytes received/sent, but there is no interval duration in
               the IBM record. As a result, member DIFF103 was required 
               (it is automatically invoked by TYPE103) to create the   
               interval duration variable DURATM.  Although the record  
               default interval is 15 minutes when the logging queue is 
               full, if the server activity is minimal the logging      
               queue fills more slowly and the DURATM will be much      
               longer than the expected 15 minutes                      
                                                                        
               Note that if you add 103 processing to BUILDPDB, you will
               need to %INCLUDE the DIFF103 member in your EXPDBOUT     
               member to create DURATM in dataset TYPE1032.             
                                                                        
               The TYPE1032 Performance Data is actually an SNMP MIB    
               with an SMF header; I suspect we will see many future    
               SMF records based on Simple Network Measurement Protocol 
               Measurement Information Blocks!                          
                                                                        
               New information Feb 20, 1998:  IBM is fixing the problem 
               in the SMF 103 records and the fix should be in Lotus    
               Domino Go Webserver 5.0 (LDGW) with GA in May, 1998.  As 
               I don't have the DSECT changes yet, you will need to get 
               the then-current version of MXG to process the revised   
               records (which should eliminate the need for DIFF103).   
   Thanks to Peter Skov, Jyske Bank, DENMARK.                           
                                                                        
Change 15.312  MXG 15.07 only. In VMXGINIT, a semi-colon is missing     
ChangeS        after '15.07' in the %LET MXGVERS=15.07 statement, which 
VMXGINIT       causes an ERROR message and variable MXGVERSN in TYPE70  
Dec 19, 1997   to be missing. Also, the date in CHANGES was 17Dec97,    
               but the real date (in VMXGINIT) was 18Dec97.             
                                                                        
======Changes thru 15.311 were in MXG 15.07 dated Dec 17, 1997======    
                                                                        
Change 15.311  Support for Fujitsu's AIM Version V20 SMF records adds   
VMACAIM2       several fields to the existing AIM and AIM/NDB records,  
VMACAIM6       and new datasets from AIM/RDBII's type 98 SMF record     
VMACAIM7       with member TYPEAIMR.  Datasets are now labeled and      
VMACAIMR       alphabetized, and INPUT statements were collimated, but  
TYPEAIMR       the real logic changes were discovered and contributed   
IMACAIMR       by the cited codesharks!                                 
EXAIMRT        Logic changes (i.e., incompatibilities between V12 and   
EXAIMRS        V20) were made in VMACAIM2 and VMACAIM6 and the new      
EXAIMRP        VMACAIMR.  The other VMACs were changed only by adding   
EXAIMRD        existing variables to the KEEP= list or deleting dead    
EXAIMRB        variables from the KEEP= list.                           
EXAIMRR                                                                 
EXAIMRA                                                                 
Dec 18, 1997                                                            
   Thanks to Ian Heaney, Toyota Australia, AUSTRALIA.                   
   Thanks to D. Ackland, Toyota Australia, AUSTRALIA.                   
                                                                        
Change 15.310  In ANALCISH reports, "Wait on String - Peak" value was   
ANALCISH       not the maximum, because it was in the SUM= argument.    
Dec 16, 1997   Move variable name A17DSHSW from the SUM= to MAX=.       
   Thanks to Dale Slaughter, Allied Group Insurance, USA.               
                                                                        
Change 15.309  RACF record from 1.0.9.2 caused INPUT STATEMENT EXCEEDED 
VMAC80A        record, because 3 bytes were documented in Table 4 for   
Dec 16, 1997   Event Code 25 (19x), RVARY, but this record contained    
               only two bytes, so the third byte is now conditionally   
               input.  Change the INPUT to read:                        
                       KW25OVIO   $CHAR1. /*FLAGS FOR*OTHER*VIOLATIONS*/
                 @;                                                     
                 IF RACFDLN GE 3 THEN INPUT  /* UNDOC RACFDLN=1 FOUND */
                       KW25ADSP   $CHAR1. /*OTHER*KEYWORDS*SPECIFIED*/  
   Thanks to Len Rugen, University of Missouri-Columbia, USA.           
                                                                        
Change 15.308  I changed the CICSEXCE exception dataset when CICS/ESA   
IMACCICS       was introduced, but I can't find where I really discussed
Dec 16, 1997   the changes to variables.  Non-ESA CICS (2.1 & earlier)  
               had specific variables for each exception, and those only
               the variables specific to an exception were non-missing  
               in a particular observation.  But these specific vars    
               are always missing with CICS/ESA or CICS/TS:             
                  ISAMFILE MSREQWT  MSWAITCN MSWAITTM PGMCMPTM          
                  PGMCMPCN SCWTECN  SCWTETM  TSREQWT  TSWAITTM          
                  TSWAITCN VSAMBUFF VSAMFILE VSWAITTM VSWAITCN          
               because CICS/ESA has one set of variables and their      
               values describe the exception event and durations:       
                  EXWAITTM - Duration of the exception wait.            
                  EXCMNRTY - Exception Resource Type:                   
                             STORAGE    FILE       TEMPSTOR             
                  EXCMNRID - Exception Resource Identification:         
                             UDSA       GLLCLAS    FDED                 
                  EXCMNTYP - Exception Type (format MG110EX.):          
                             'X01:WAIT (EXCMNWT)'                       
                             'X02:BUFFER WAIT (EXCMNBWT)'               
                             'X03:STRING WAIT (EXCMNSWT)'               
                                                                        
                                                                        
                                                Exception     Exception 
                                                Resource       Resource 
                  Exception Type                Type        Identication
                  EXCMNTYP                      EXCMNRTY        EXCMNRID
                                                                        
                 'X01:WAIT (EXCMNWT)'           STORAGE         UDSA    
                 'X02:BUFFER WAIT (EXCMNBWT)'   FILE            B0INDEX 
                 'X03:STRING WAIT (EXCMNSWT)'   TEMPSTOR            FDED
               This allows for new exception events to be created by IBM
               with no need to create new variables for each exception. 
   Thanks to Dale Slaughter, AMCO Insurance, USA.                       
                                                                        
Change 15.307  ASUMUOW could produce missing value for MROTRAN count, as
ASUMUOW        "spun" observations were not properly reintroduced in the
Dec 16, 1997   next run.  Logic involving several lines was revised.    
   Thanks to Larry Nova, First Card, USA.                               
                                                                        
Change 15.306  CONTROL-T variables DSUSECT and DSEXCP in CTLTDSN dataset
VMACCTLT       were wrong; there are three undocumented bytes before the
Dec 14, 1997   DSUSECT field.  Add +3 after INPUT before DSUSECT:       
                  INPUT   +3   DSUSECT &PIB.4. ....                     
   Thanks to Joseph G. Ogurchak, Westfield Companies, USA.              
                                                                        
Change 15.305  Support for DPPX/370 (Release 4) Performance Reporter    
TYPEDPPX       creates eleven datasets in this user contribution, by    
Dec 14, 1997   reading and decoding the report output as MXG input.     
               DPPX/370 (Distributed PRocessing Programming Executive)  
               runs on ES/9000 series and was written by IBM, originally
               for 8100, then 9370, and then 9221.  Release 4 is the    
               last release and goes out of service in 1998/1999.       
   Thanks to Mark Robbins, W.H. Smith LTD, ENGLAND.                     
                                                                        
Change 15.304  Using 14/15 records to determine the size of datasets    
ADOC1415       is not straightforward.  Descriptions in ADOC1415 have   
Dec 14, 1997   been revised based on Richard's discoveries:             
                                                                        
               I've recently completed a study where I used TYPE1415    
               data to analyze our tape use and develop a model for     
               sizing a VTS subsystem we are considering.  In the course
               of this, I found myself looking at BLKSIZE, BLKCOUNT,    
               TRKSALOC, and TRKREL to develop a size in megabytes for  
               these files.  Multi-volume files, both tape and disk,    
               presented a challenge to correctly accumulate the        
               multiple type 15 records generated into a single record  
               representing the creation of the entire file.            
                                                                        
  RECIND1, bit 1  x'40'  'Record written by EOV'                        
     This bit is ON for records written for a change-in-volume (written 
     by "End-of-Volume", LASTVOFL=' ' if ON), and this bit is OFF for   
     records written by close (LASTVOFL='Y' if OFF).  When ON (EOV),    
     this is normally a volume switch within a multi-vol dataset.       
        Rick thinks this may also occur for file 1 through n-1 for a    
        sequence of n datasets concatenated on a single DDname, but has 
        not seen that in his data, and he has not prove whether or not  
        this bit would be on for the first of two files concatenated    
        together, which happened to reside on the same volume.          
        If you can confirm/deny his thesis, I will update this note.    
                                                                        
  TRKSALOC                                                              
     This is the number of tracks allocated *on the current volume* to  
     this dataset.  This must be accumulated across multiple TYPE15s    
     when RECIND1, bit 1 is on.                                         
                                                                        
  TRKREL                                                                
     This is the number of tracks released at close.  In the case of    
     RECIND1, bit 1, this will be zero for all but the last record.     
     Note however, that this last record does *not* have the EOV bit on.
                                                                        
  BLKSIZE                                                               
     No surprise here.  Same for all related records.                   
                                                                        
  BLKCNT                                                                
     Again, these represent the block count  written on the current     
     volume only.  Must be accumulated to get accurate file size.       
                                                                        
  Performing the accumulation.                                          
     Because of the fact that the last record for a given step/DD does  
     *not* have the EOV bit on, this flag is really not useful to group 
     records to accumulate.  I finally arrived at the following PROC    
     SUMMARY to accomplish the task:                                    
                                                                        
          PROC SORT  DATA=TYPE1415;                                     
          BY JOB OPENTIME DSNAME SMFTIME;                               
          /*ELIMINATE DUPLICATE RECORDS (MULTI-VOL INTERMEDIATE EOV)*/  
          PROC SUMMARY DATA=TYPE1415 NWAY;                              
           BY JOB OPENTIME DSNAME;                                      
           VAR SMFTIME BLKCNT TRKSALOC TRKREL;                          
           ID AVGBLK ID DEVICE BLKSIZE ;                                
           OUTPUT OUT=SUM1415                                           
                  MAX(SMFTIME)= SUM(BLKCNT TRKSALOC TRKREL)=;           
          DATA SUM1415; SET SUM1415;                                    
           IF AVGBLK NE 0 THEN MBUSED = AVGBLK * BLKCNT;                
                          ELSE MBUSED = BLKSIZE * BLKCNT;               
           FORMAT MBUSED MGBYTES.;                                      
                                                                        
           (AVGBLK is usually zero, so BLKSIZE is usually used.)        
   Thanks to Richard T. Green, Comerica Incorporated, USA.              
                                                                        
Change 15.303  Revised text, 14May2003:  MXG's default _M204VER value in
VMACM204       member VMACM204 (4.1, since 1997) is also valid for 5.xt 
Dec 14, 1997   Release, as there were no changes to their SMF records.  
May 14, 2003   Original Change text, slightly revised.                  
               Support for MODEL204 Version 4.1 or later added two bytes
               at the end of the header.  Version-based logic was added 
               to skip over the bytes, and MXG updated VMACM204 so that 
               the default is now 4.1.   Also, a number of variables    
               added by Version 3.2 were added to the KEEP= list for the
               M24SINCE dataset.  The new version is INCOMPATIBLE due to
               the insertions in the record.                            
   Thanks to Lindsay Oxenham, IBM Global Services, AUSTRALIA.           
   Thanks to Carole J. Storby, Lockheed Martin, USA.                    
                                                                        
Change 15.302  With very large DASD farms, ASMVVDS could run out of     
ASMVVDS        storage, because it FREEMAINed less than it GOTMAINed.!  
Dec 14, 1997   Not only was that corrected,, but also optional supports 
               UCBs above the 16M line, and now executes in AMODE 31.   
               Additional cleanup of this old programs for sites that   
               need detail VVDS info (or don't have DCOLLECT).          
   Thanks to Skip Abadie, MBNA, USA.                                    
                                                                        
Change 15.301  The counts in the starting/ending intervals were usually 
ASUMTALO       wrong, because spun records ("inflight allocations") were
Dec 14, 1997   kept after output and were counted by the summary logic! 
               This caused MAXDRVS to be greater than installed devices.
               Fortunately, the effect was only for the beginning and   
               ending interval of the analysis, so the effect should    
               have been minimal on your analysis.                      
              -After IF ALOCEND GT &LOWTIME THEN OUTPUT SPIN.SPINTALO;  
               insert  ELSE DO;  and then after fourteen lines, insert  
               END;  before the PROC SORT DATA=TALOSUM1....;            
               This corrects the basic error in logic.                  
              -Additionally, LASTTIME was used as a temporary variable, 
               but was not dropped, and then used in adjusting for clock
               synchronization.  Now it's DROPped:                      
                 After  RETAIN HOLDEND LASTTIME 0;                      
                 insert  DROP LASTTIME;                                 
              -In addition, the PROC PRINT DATA=TALOSUM1, WHERE, and VAR
               statements left for debugging were deleted.              
   Thanks to Anthony P. Lobley, EDS, ENGLAND.                           
                                                                        
Change 15.300  Support for SAR CA-VIEW Selection Request Exit SARSRQUX  
EXTYSARX       SMF record creates new dataset SARSRQUX.                 
IMACSARX                                                                
TYPESARX                                                                
VMACSARX                                                                
Dec 14, 1997                                                            
   Thanks to Tim Haiar, Citicorp, USA.                                  
                                                                        
Change 15.299  TYPE70PR PR/SM dataset did not contain an observation for
VMAC7072       partitions that were deactivated (LPARCPUS=0), and some  
Dec 13, 1997   sites have needed an observation for that LPARNAME for   
               configuration reports.  Replace DO J=1 TO LPARCPUS; with 
                IF LPARCPUS=0 THEN DO; %%INCLUDE SOURCLIB(EXTY70PR);END;
                ELSE DO J=1 TO LPARCPUS;                                
               If you do NOT want observations for deactived partitions,
               you could delete the obs with LPARCPUS=0 in EXTY70PR!    
   Thanks to Harmuth Beckmann, Karstadt AG, GERMANY                     
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.                
                                                                        
Change 15.298  ERROR: VARIABLE TERMINAL NOT FOUND in these sample CICS  
ANALCICS       reports occurs when _LCICTRN sends CICSTRAN to //WORK    
Dec 13, 1997   instead of to the //CICSTRAN DD, because the report code 
               used OUT=CICSTRAN for the first PROC SORT with a KEEP=   
               statement, so a later reference to _LCICTRN got the OUT= 
               dataset instead of the original CICSTRAN data.  Change   
               CICSTRAN to SORTTRAN (four places) to correct this error.
               I also added KEEP= logic to each input of _LCICTRN to    
               reduce input data read, but the reports will be re-done  
               using ANALCNCR to much more expeditiously count the CICS 
               concurrent users.                                        
   Thanks to Doug Jungels, Fingerhut Corporation, USA.                  
   Thanks to James Lieser, Fingerhut Corporation, USA.                  
                                                                        
Change 15.297  Variables VELOCITY, VELOCCPU, and VELOCIOD were 0 to 1 in
ANALRMFR       TYPE72 and TYPE72GO datasets, but were multiplied by 100 
TRND72GO       in ANALRMFR reports where they matched IBM report values.
VMAC7072       But I now realize they should be 0 to 100 in both the IBM
Dec 13, 1997   report and the MXG datasets, so their values are changed.
              -In VMAC7072, four lines VELOCITY=... are VELOCITY=100*...
               and ELSE VELOCIOD= is now ELSE VELOCIOD=100*             
               and PERFINDX=R723CVAL/VELOCITY; has its 100* removed.    
              -In ANALRMFR, the VELOCITY=100*VELOCITY; was removed.     
              -In TRND72GO, 100* was added to VELOCITY= and the 100*    
               was removed in the denominator of PERFINDX= calculation. 
   Thanks to Ken Williams, Southern Electric, ENGLAND.                  
                                                                        
Change 15.296  Support for Omegamon for VTAM V400 (COMPATIBLE, but new  
EXOMVX2L       subtypes and exceptions will print "invalid" messages on 
EXOMVX2M       the SAS log).  Three new subtypes create datasets:       
EXOMVX2V         Subtype  Dataset    Description                        
IMACOMVT           15     OMVTX2MC   X.25 MCH Link                      
VMACOMVT           16     OMVTX2VC   X.25 VC                            
Dec  4, 1997       17     OMVTX2LU   X.25 LU                            
               There are also nineteen new exceptions, 0939-0957 that   
               are now decoded.                                         
   Thanks to Joseph E. Darvish, Farmers Insurance Group, USA.           
                                                                        
Change 15.295  The ACCOUNTn variables in DB2ACCT did not decode skipped 
VMACDB2        fields correctly.  DB2 replaces the comma delimiters in  
Dec  3, 1997   the job card with 'FF'x, and (TOMP,9999,XXX,,,ACCT6) had 
               variable ACCOUNTn = 'FFFF'xACCT6.  Each of the nine      
               DO groups in VMACDB2 that read:                          
                 IF LOC LE 1 THEN DO;LENACCTn=ACCTLEFT;ACCTLEFT=0;END;  
               were replaced with                                       
                 IF LOC EQ 1 THEN DO;LENACCTn=0;ACCTLEFT=ACCTLEFT-1;END;
                 ELSE IF LOC LT 1 THEN DO; LENACCTn=ACCTLEFT;ACCTLEFT=0;
                 END;                                                   
               to properly parse the 'FF'x delimiter.                   
   Thanks to Tom Parker, CSC Financial Services Group, USA.             
                                                                        
Change 15.294  Change 15.054 intended to have four blanks after SYSTEM  
TYPETMON       and SYSID, but ended up with five, so SYSID became length
Dec  3, 1997   five instead of four.                                    
   Thanks to Jim Wertenberger, Medical Mutual of Ohio, USA.             
                                                                        
Change 15.293  SAS Option YEARCUTOFF=1960 is MXG's default specification
CONFIG         in member CONFIG, as this makes MXG more robust in its   
YEAR2000       attempt to protect non-Y2K-compliant dates.  In MXG 15.05
YEAR2000       I added code to protect records written in 2000 that do  
Dec  3, 1997   not have the "century value" in julian dates, or still   
               have only 2 year digits in YYMMDD-type date fields.      
                                                                        
               I thought I could protect non-Y2K-compliant fields after 
               the input of the date, by detecting that the year was    
               pre-1960, and then I could add the number of days between
               1900 and 2000 to move the non-Y2K date into the second   
               millennium.                                              
                                                                        
               I now know it is impossible to correct all cases after   
               the field has been INPUT, because some date values will  
               be missing after INPUT, because some dates that are valid
               in 2000 were invalid in 1900:                            
                                                                        
                 non-Y2K value         Informat       Y2K date          
                 000229                YYMMDD6.       29FEB2000         
                 '000000000000366F'x   SMFSTAMP8.     31DEC2000         
                                                                        
               The YYMMDD6 is in error because there was no leap year   
               day in 1900, and the SMFSTAMP8 is in error because there 
               were only 365 days in the year 1900.                     
                                                                        
               The YYMMDD6 error can be eliminated by changing the SAS  
               default YEARCUTOFF=1900 to YEARCUTOFF=1960, because then 
               SAS will accept 000229 as Feb 29, 2000; this will also   
               eliminate the need for the MXG protection logic.         
                 I had been reluctant to base MXG's support of the year 
                 2000 on any SAS option, believing I could provide safer
                 protection that would function independent of the SAS  
                 YEARCUTOFF option's value.  However, it now appears    
                 that the best choice is to make YEARCUTOFF=1960 the    
                 value set in MXG's CONFIG member, and that was done.   
                                                                        
               The SMFSTAMP8 error cannot be eliminated because the     
               YEARCUTOFF option does not apply to those julian date    
               informats, and making it apply is likely to cause more   
               exposure to error than it is worth.  However, SAS        
               Institute will consider enhancing the SMFSTAMP, RMFSTAMP,
               etc., formats to provide this functionality internally,  
               and it may be available (in a future TS-level maintenance
               release).                                                
                                                                        
               Fortunately, the logic added by Change 15.167 (that will 
               be removed) has no impact on present dates and thus      
               causes no errors until after 1999.                       
               These notes are just for the record:                     
                                                                        
                  Change 15.167 used 36524 as the constant number of    
                  days between 1900 and 2000 for YEARSECS, but it turns 
                  out that the number of days to add is not a constant: 
                   For dates in 2000:                                   
                     01JAN1900 + 36524 = 01JAN2000                      
                     01MAR1900 + 36524 = 29FEB2000                      
                     That '29FEB2000' might look wrong, but the 60th    
                     julian date of 1900 was 01MAR1900, and the 60th    
                     julian date of 2000 is 29FEB2000, so it is ok!     
                   For dates in 2001                                    
                     01JAN1901 + 36524 = 31DEC2000                      
                     which is definitely wrong; a value of 36525 should 
                     have been used for years after 2000!               
   Thanks to Nico Lenaerts, SAS Institute, BELGIUM.                     
   Thanks to Michel Laublin, GIB, BELGIUM.                              
                                                                        
Change 15.292  The example extract command for HP MeasureWare from HPUX 
ADOCMWUX       statements GBL_BYDISK_ID_LIST and GBL_BYLAN_ID_LIST that 
Dec  1, 1997   caused "unknown metrics" error; the statements should    
               not have been in the example and were deleted.           
   Thanks to Thierry Van Moer, Procter & Gamble, BELGIUM.               
                                                                        
Change 15.291  MXG 15.06 did not contain ML-15 of ASMTAPES.  While the  
ASMTAPES       comments in the member said it was ML-15, in fact it was 
Dec  1, 1997   still ML-14 with only comments changed, and when Started 
               it said it was ML 14!  The wrong member was copied into  
               15.06 and then its comments were edited.  This change    
               really is the ML-15 that was promised, and when it is    
               Started it actually says that it is ML-15!               
   Thanks to Glenn Harper, Memorial HealthCare System, USA.             
   Thanks to Mark Smith, First Card, USA.                               
                                                                        
Change 15.290  Documentation only.  Minor corrections to variables in   
ADOCNTSM       datasets RASPORT (CONNTOTL did not belong in list),      
Dec  1, 1997   NETWINTR (INTRNAME was not listed), IMAGE (IMAGFILE and  
               IMAGNAME are CHAR 32), and IP (DEVNAM did not belong).   
   Thanks to Bob Gauthier, American Stores Company, USA.                
                                                                        
Change 15.289  MXG keeps only one RACF DTP (44) segment's variables     
VMAC80A        until multiple segments are actually found in RACF data, 
Dec  1, 1997   and then the (usually unimportant) EV44xxxx variables    
               are added to the KEEP= list for that event.  This change 
               adds six sets of EV44xxxx variables for RACFEVNT=13 (six 
               were previously kept for RACFEVNT=10), and clarifies the 
               text of the message printed when new segments are found. 
               All of this, just to save a little disk space!           
   Thanks to Gerald Lawrence, ABN AMRO Bank NV, THE NETHERLANDS.        
                                                                        
Change 15.288  MXG 15.06 only.  Label for variables LOSMCNTR & LOIOCOMP 
VMAC16         were too long, causing warning on SAS log but no error.  
Nov 26, 1997                                                            
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
======Changes thru 15.287 were in MXG 15.06 dated Nov 24, 1997======    
                                                                        
Change 15.287  Local and Remote IP addresses are now decoded into their 
VMACCTCP       dec.dec.dec.dec format in Clever TCP/IP's SMF record, and
Nov 24, 1997   are changed from numeric to character variables.         
                                                                        
Change 15.286  Dataset TYPE30_6 is interval data for address spaces that
VMAC30         do not go thru full function startup (examples of JOBs   
Nov 24, 1997   that create observations in TYPE30_6 are RASP,ALLOCAS,   
               IEFSCHAS,CONSOLE,SMXC,GRS,SYSBMAS,TRACE,PCAUTH,OMVSSTFS),
               but the interval start times (SMF30ISS,SMF30IST) from    
               which GMT offset is calculated are missing, so SYNCTIME  
               in TYPE30_6 was always on the GMT clock.  This change    
               uses a heuristic comparison of SMFTIME and SYNCTIME      
               to correct the hour-part of SYNCTIME if there is a       
               difference (inserted before the %INCLUDE of EXTY30U6):   
             SYNCTIME=SYNCTIME+3600*FLOOR((SMFTIME-SYNCTIME+1800)/3600);
               but having the real GMT offset in the record             
               would have been better!                                  
   Thanks to Harmuth Beckmann, Karstadt AG, GERMANY                     
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.                
                                                                        
Change 15.285  ML-15 of ASMTAPES MXG Tape Mount and Tape Allocation     
ASMTAPES       Monitor has two enhancements:                            
Nov 20, 1997  -Dump suppression.  When MXGTMNT intercepts internal      
               ABENDS (usually do to a logically address space changing 
               states, often 0C4 or 0E0 ABENDS), now the SVC dump will  
               be suppressed, unless you enable the 'DEBUG=YES' option, 
               which will cause an SVC dump to be taken.  However, a    
               logrec record will be created for all ABENDs, so it will 
               be possible to get some information if required.         
              -Step start date (INITTIME) year 2000 support relocated   
               the date from the ASID's JCT to the JCT Extension in     
               OS/390 Release 1.3 and above.  If you are at OS/390 R1.3 
               or higher, you will need to change the default of 'ES5'  
               to 'ES6' when you assemble ASMTAPES to pick up the step  
               start date from the JCT Extension.                       
                                                                        
Change 15.284  INPUT STATEMENT EXCEEDED with an EREP record, CLASRC=40, 
VMACEREP       but flag bits indicate that the record was truncated, so 
Nov 20, 1997   those bits are now tested before the INPUT statement so  
               the STOPOVER abend is eliminated.                        
                                                                        
Change 15.283  Additional CICS DFHSTUP "Shutdown" reports have been     
ANALCISH       added/revised in this iteration:                         
Nov 20, 1997  -CICSMDSA, CICSMS, and CICSMT "Storage Manager Statistics 
               were updated.                                            
              -CICDS uses CICS release SMFPSRVR for decision logic.     
              -CICAUSS adds new CICS 4.1 fields to detail/summarys.     
              -CICFCR  "Files" report is complete.                      
   Thanks to Steve Colio, CIGNA, USA.                                   
                                                                        
Change 15.282  Variables BYTEREAD and BYTEWRIT in TYPE21 (which is      
VMAC21         renamed to PDB.TAPES) are now formatted MGBYTES.         
Nov 19, 1997                                                            
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.281  Support for Landmark's The Monitor for CICS/ESA 2.0, a   
ANALMONI       completely INCOMPATIBLE reformatting of their records.   
EXMONARQ       You must now use program TYPETMO2 instead of TYPETMON to 
EXMONAWT       process the new records, but the MONITASK dataset that   
EXMONCMX       MXG creates should be compatible as only a few old       
EXMONDBD       variables were removed by LANDMARK, although there are   
EXMONDSA       many new ones.                                           
EXMONDSP       Landmark notes that the TD,TF,TM,TP,TS,TT,T2 and TX data 
EXMONEXP       is based on CICS statistics, while the TR record is part 
EXMONIDS       based on CICS stats and part based on data collected by  
EXMONIRQ       TMON; the TR record contains much of the non-volatile    
EXMONIWT       data previously written in the TI record.  The MONISYST  
EXMONMRO       dataset may also be compatible, but some variables may   
EXMONSYS       have moved to the TR-record datasets, and some variables 
EXMONT2        may be spelled differently if I did not recognize them!  
EXMONT2E                                                                
EXMONTSK       The meaning of the TI interval data has been changed.    
EXMONTDQ       Previously, data was posted to the interval as it was    
EXMONTFI       collected, leading to a highly accurate picture of the   
EXMONTMC       activity during that interval, but increasing the        
EXMONTP        collection overhead.  Instead, in Version 2.0, the TI    
EXMONTPD       data is collected by rolling up the TA (Transaction End) 
EXMONTPG       event records into the interval in which they ended, so  
EXMONTR        the accuracy of each interval is lost!  Landmark claims  
EXMONTS        "over time this results in the same statistics, but the  
EXMONTSQ       distribution across intervals may be different. In a busy
EXMONTTR       CICS region the difference will be very small.  In a     
EXMONTX        small test region discrepancies may be more noticeable". 
EXMONTXN          I seriously question the utility of interval data that
EXMONUSR          does not represent the interval.  It is not the       
EXMONUTG          busyness of the region but the long-running           
EXMONXMC          transactions that end from time-to-time that corrupt  
IMACTMO2          their interval data, so all of the datasets created   
TYPETMO2          from the TI record may be inaccurate.                 
VMACTMO2                                                                
Nov 19, 1997   Thirty MXG datasets are created from the new records:    
                                                                        
                   Record Description                                   
                    TA - Transaction Performance Record                 
                    TD - Transient Data Interval Record                 
                    TF - File Interval                                  
                    TI - Transaction Activity Interval Record           
                    TM - MRO/ISC Interval Record                        
                    TP - Program Interval Record                        
                    TR - Region Interval Record                         
                    TS - Temporary Storage Interval Record              
                    TT - Terminal Interval Record                       
                    TX - Transaction Interval Record                    
                    T2 - DB2 Interval for CICS Record                   
                                                                        
                    Record   Segment   MXG Dataset                      
                      TA       ARQ        MONIARQ                       
                               AWT        MONIAWT                       
                               DSP        MONIDSP                       
                               DBD        MONIDBDS                      
                               MRO        MONIMRO                       
                               USR        MONIUSR                       
                               UTG        MONIUTG                       
                               TAS        MONITASK                      
                      TD       TDQ        MONITDQ                       
                      TF       TFI        MONITFI                       
                      TI       SYS        MONISYST                      
                               CMX        MONICMX                       
                               IDS        MONIIDS                       
                               IRQ        MONIIRQ                       
                               IWT        MONIIWT                       
                      TM       TMC        MONITMC                       
                      TP       TP         MONITP                        
                               TPD        MONITPD                       
                               TPG        MONITPG                       
                      TR       TR         MONITR                        
                               DSA        MONIDSA                       
                               EXP        MONIEXP                       
                               XMC        MONIXMC                       
                      TS       TS         MONITS                        
                               TSQ        MONITSQ                       
                      TT       TTR        MONITTR                       
                      TX       TX         MONITX                        
                               TXN        MONITXN                       
                      T2       T2         MONIT2                        
                               T2E        MONIT2E                       
              -ANALMONI's example reports using MONISYST were disabled  
               because many old variables no longer exist, and the old  
               examples weren't all that good, anyhow!                  
                                                                        
Change 15.280  Landmark's The Monitor for MVS Version 2.0 INCOMPATIBLE. 
VMACTMV2       Essentially all records have been tested and do not fail.
IMACTMV2       Not all datasets have all variables decoded; as users    
TYPETMV2       request them, they will be built.  You must use member   
Nov 19, 1997   TYPETMV2 instead of TYPETMVS for Version 2 records.      
   Thanks to Chris Taylor, VF, USA.                                     
                                                                        
Change 15.279  MXG 15.04-MXG 15.05.  DB2 report PMTRN01 caused APPARENT 
ANALDB2R       MACRO &SORTUOW UNRESOLVED, because Change 15.173 added a 
Nov 18, 1997   new option to %ANALDBTR (UOWSORT=, that creates &SORTUOW 
               as a local macro variable), but old-style macro _TRANSIT 
               that is also defined in member ANALDBTR is also invoked  
               in ANALDB2R, but the &SORTUOW was local to %ANALDBTR and 
               did not exist when _TRANSIT was invoked.  &SORTUOW is not
               actually used by _TRANSIT, so the correction is to insert
               %LET SORTUOW=;   immediately before the  _TRANSIT  line. 
   Thanks to Tom Elbert, John Alden, USA.                               
                                                                        
Change 15.278  Calculation of B1HITRAT,B2HITRAT,B3HITRAT, and B4HITRAT  
DIFFDB2        had mis-located parenthesis; there was no syntax error,  
Nov 18, 1997   but the value was wrong.  (Variable BPHITRAT was fine.)  
               The four calculations for the BnHITRAT variables need to 
               look like this                                           
         B1HITRAT=(QB1TGET-(QB1TSIO+QB1TDPP+QB1TLPP+QB1TSPP))/QB1TGET;  
               with all of the parens in the numerator.                 
   Thanks To Yao-Chun Rickert, First National Bank of Chicago, USA.     
                                                                        
Change 15.277  Under VM/CMS SAS, it is not possible to specify a MACLIB 
INSTALL        member in the CONFIG option, so the INSTALL instructions 
Nov 18, 1997   for MXG under CMS were revised; now you can create the   
               CONFIGVM SAS A file from the copy file, and then use     
               SAS (NODMS CONFIG=CONFIGVM syntax.                       
   Thanks to Sue Kent, CHEVRON, USA.                                    
                                                                        
Change 15.276  IOA/Control-T 5.0 input of variable DSEXPDT was changed. 
VMACCTLT       If DSEXPTYP is 'C' or 'L', DSEXPDT is INPUT as PIB.4, as 
Nov 18, 1997   if 'C' it is a numeric with the number of active cycles, 
               or if 'L' it is a numeric with the number of days since  
               last access;  if 'D' or 'J' it is INPUT as PD4. as then  
               it is a date value.                                      
   Thanks to Joseph G. Ogurchak, Westfield Companies, USA.              
                                                                        
Change 15.275  SAP IMS timestamp SAPTIMTR must be used as the Start of  
VMACIMSA       Transaction, and the true End time is SAPTIMTR+SAPELTI.  
Nov 17, 1997   Subtracting the SAPELTI from the Log Time produced bad   
               results; there appears to be a delay between the true    
               End time and the Log Time that is being examined.        
               The LABEL for SAPTIMTR now indicates "START TIME..."     
   Thanks to Cary Jones, Philip Morris, USA.                            
                                                                        
Change 15.274  Support for CICS TS 1.2 a/k/a CICS Transaction Server 1.2
EXCICD2G       is INCOMPATIBLE because IBM inserted new fields into the 
EXCICD2R       middle of the Type 110 Subtype 1 Monitor (Transaction)   
EXCICXQ1      record, instead of adding them at the end of the record!  
EXCICXQ3       You must install this Change to process TS 1.2 records.  
EXCICXQ3       In addition, new variables were added to CICSLGS Stats   
FORMATS        dataset, and five new (and important) interval statistics
IMACEXCL       data sets are created with CICS TS 1.2, described below: 
VMAC110          Dataset  STID  Description                             
Nov 15, 1997     CICD2G    102  DB2 Global Statistics                   
                 CICD2R    103  DB2 Resource Statistics                 
                 CICXQ1    121  Shared TS Queue Server Coupling Facility
                 CICXQ2    122  Shared TS Queue Server Buffer Statistics
                 CICXQ3    123  Shared TS Queue Server Storage Stats.   
                                                                        
              -New variables added to CICSTRAN dataset:                 
                 BRDGTRAN='BRIDGE*TRANSACTION*ID'                       
                 CPUTM   ='TOTAL*CPU TIME*CAPTURED'                     
                 ICTOTCN ='IC START*CANCEL*DELAY*RETRIEVE*REQUESTS'     
                 PCLURMCN='LINK URM*REQUESTS'                           
                 WTDWIOCN='DISPATCHABLE*WAIT*GIVE UP*DELAY*COUNT'       
                 WTDWIOTM='DISPATCHABLE*WAIT*GIVE UP*DELAY*DURATION'    
                 WTICIOCN='INTERVAL*CONTROL*DELAY*COUNT'                
                 WTICIOTM='INTERVAL*CONTROL*DELAY*DURATION'             
                 WTLMIOCN='LOCK*MANAGER*DELAY*COUNT '                   
                 WTLMIOTM='LOCK*MANAGER*DELAY*DURATION'                 
                 WTOTIOTM='TOTAL*OTHER*WAIT*TIME*DURATION'              
                 WTSHIOCN='SHARED*TEMP STORE*DELAY*COUNT'               
                 WTSHIOTM='SHARED*TEMP STORE*DELAY*DURATION'            
                 WTTOIOTM='TOTAL*I/O*WAIT TIME*DURATION'                
                 WTUNIOTM='UNCAPTURED*WAIT*TIME*DURATION'               
                 WTWCIOCN='WAIT*CICS/EVENT*WAIT*DELAY*COUNT'            
                 WTWCIOTM='WAIT*CICS/EVENT*WAIT*DELAY*DURATION'         
                 WTWEIOCN='WAIT*EXTERNAL*WAIT*DELAY*COUNT'              
                 WTWEIOTM='WAIT*EXTERNAL*WAIT*DELAY*DURATION'           
                                                                        
               -The CPUTM is TASCPUTM + RLSCPUTM, the sum of TCB and SRB
                CPU time used by the transaction.                       
                                                                        
               -Three very useful new Wait variables WTTOIOTM, WTOTIOTM 
                and WTUNIOTM are created in CICSTRAN based on IBM's     
                equations in the CICS Performance Guide an help explain 
                why a CICS transaction is waiting:                      
                                                                        
                 WTTOIOTM = Total I/O Wait Time, is the sum of:         
                         WTTCIOTM+  Terminal Control I/O Wait           
                         WTTSIOTM+  Temporary Storage I/O Wait          
                         WTSHIOTM+  Shared Temporary Storage I/O Wait   
                         WTTDIOTM+  Transient Data I/O Wait             
                         WTJCIOTM+  Journal Control I/O Wait            
                         WTFCIOTM+  File Control I/O Wait               
                         WTRLIOTM+  RLS File I/O Wait                   
                         WTIRIOTM+  Interregion (MRO) I/O Wait          
                         LU61IOTM+  LU 6.1 TC I/O Wait                  
                         LU62IOTM+  LU 6.2 TC I/O Wait                  
                         SZWAIOTM   FEPI Suspend I/O Wait               
                 WTOTIOTM = Total Other Wait Time, is the sum of:       
                         DSPDIOTM+  First Dispatch Delay (MXT+TRANCLASS)
                         ENQDIOTM+  ENQ Delay                           
                         WTICIOTM+  Interval Control Delay              
                         WTLMIOTM+  Lock Manager Delay                  
                         WTWEIOTM+  Wait External Wait                  
                         WTWCIOTM+  Wait CICS/Event Wait                
                         WTDWIOTM+  Dispatchable or Give Up Wait        
                         RMISIOTM   RMI Suspend                         
                 WTUNIOTM = Uncaptured Wait Time, is calculated as:     
                         WTUNIOTM=SUSPNDTM-(WTTOIOTM+WTOTIOTM);         
                                                                        
                 The uncaptured time (time unexplained by any variable  
                 in CICS) is the suspend time minus the DB2/IO wait time
                 and the CICS wait time.  What can this uncaptured time 
                 be? We have found in SAP/CICS MRO that if 2            
                 transactions (an update task and dialog task) are      
                 running in tandem, then the dialog task may wait until 
                 the update task is complete and so this wait time is   
                 uncaptured wait time due to it waiting for another task
                 to complete -  monitor this closely, but in most       
                 instances WTUNIOTM is zero.                            
                                                                        
              -New variables added to CICLGS Statistics dataset:        
                 LGSAUTOD='DATA*AUTO*DELETE*FLAG?'                      
                 LGSDONLY='DASD*ONLY*FLAG'                              
                 LGSMAXBL='MAXIMUM*BLOCK*LENGTH'                        
                 LGSRETPD='DATA*RETENTION*PERIOD'                       
                 LGSSTRUC='CF*STRUCTURE*NAME'                           
                 LGSSYSLG='SYSTEM*LOG*FLAG'                             
                                                                        
              -New dataset CICD2G DB2 Global Statistics contains:       
                 D2GABORT='ABORTS'                                      
                 D2GACCOU='ACCOUNTREC*SETTING'                          
                 D2GATHID='STATIC*AUTHID'                               
                 D2GATHTY='AUTHTYPE'                                    
                 D2GCALLS='CALLS*USING POOL'                            
                 D2GCOMIT='COMMITS'                                     
                 D2GCONGM='CONNECT*TIME*GMT'                            
                 D2GCONLO='CONNECT*TIME*LOCAL'                          
                 D2GDB2ID='DB2*SYSID'                                   
                 D2GDB2RL='DB2*RELEASE'                                 
                 D2GDBCON='NAME*OF THE*DB2CONN'                         
                 D2GDISGM='DISCONNECT*TIME*GMT'                         
                 D2GDISLO='DISCONNECT*TIME*LOCAL'                       
                 D2GDSNAT='DSNC*STATIC*AUTHTYPE'                        
                 D2GDSNAU='DSNC*STATIC*AUTHID'                          
                 D2GDSNCC='DSNC*COMMAND*CALLS'                          
                 D2GDSNCU='DSNC*CURRENT*NUMBER OF*THREADS'              
                 D2GDSNLM='DSNC*LIMIT*NUMBER OF*THREADS'                
                 D2GDSNOV='DSNC*OVERFLOWS*TO POOL'                      
                 D2GDSNPK='DSNC*PEAK*NUMBER OF*THREADS'                 
                 D2GDSNSI='DSNC*SIGNONS'                                
                 D2GDSNTT='DSNC*THREAD*TERMINATES'                      
                 D2GPLEXI='PLANEXIT*NAME'                               
                 D2GPLNAM='STATIC*PLAN NAME'                            
                 D2GRDQCU='NUMBER OF*TASKS ON*READYQ'                   
                 D2GRDQPK='PEAK NUMBER*OF TASKS*ON READYQ'              
                 D2GSIGNO='SIGNONS'                                     
                 D2GSPCMM='SINGLE*PHASE*COMMITS'                        
                 D2GTCBCU='CURRENT*NUMBER*OF TCBS'                      
                 D2GTCBFR='CURRENT*NUMBER OF*FREE*TCBS'                 
                 D2GTCBHW='HIGH*WATER*MARK*OF TCBS'                     
                 D2GTCBLM='LIMIT*NUMBER*OF TCBS'                        
                 D2GTHRCU='CURRENT*NUMBER OF*THREADS'                   
                 D2GTHRLM='LIMIT*NUMBER OF*THREADS'                     
                 D2GTHRPK='PEAK*NUMBER OF*THREADS'                      
                 D2GTHRPR='THREAD*PRIORITY'                             
                 D2GTHRRE='THREAD*REUSES'                               
                 D2GTHRTE='THREAD*TERMINATES'                           
                 D2GTHRWA='THREAD*WAITS'                                
                 D2GTHWSE='THREADWAIT*SETTING'                          
                 D2GTRQCU='NUMBER OF*TASKS ON*TCB*READYQ'               
                 D2GTRQPK='PEAK NUMBER*OF TASKS*ON TCB*READYQ'          
                 D2GTSKCU='CURRENT*NUMBER OF*TASKS'                     
                 D2GTSKPK='PEAK*NUMBER OF*TASKS'                        
                 D2GTSKTO='TOTAL*NUMBER OF*TASKS'                       
                                                                        
              -New dataset CICD2R DB2 Resource Statistics contains:     
                 D2RABORT='ABORTS'                                      
                 D2RACCOU='ACCOUNTREC*SETTING'                          
                 D2RATHID='STATIC*AUTHID'                               
                 D2RATHTY='AUTHTYPE'                                    
                 D2RCALLS='CALLS*USING*DB2ENTRY'                        
                 D2RCOMIT='COMMITS'                                     
                 D2RDBENT='NAME*OF THE*DB2ENTRY'                        
                 D2RPLEXI='PLANEXIT*NAME'                               
                 D2RPLNAM='STATIC*PLAN NAME'                            
                 D2RRDQCU='NUMBER OF*TASKS ON*READYQ'                   
                 D2RRDQPK='PEAK NUMBER*OF TASKS*ON READYQ'              
                 D2RSIGNO='SIGNONS'                                     
                 D2RSPCMM='SINGLE*PHASE*COMMITS'                        
                 D2RTHPCU='CURRENT*NUMBER OF*PROTECTED*THREADS'         
                 D2RTHPLM='LIMIT*NUMBER OF*PROTECTED*THREADS'           
                 D2RTHPPK='PEAK*NUMBER OF*PROTECTED*THREADS'            
                 D2RTHRCU='CURRENT*NUMBER OF*THREADS'                   
                 D2RTHRLM='LIMIT*NUMBER OF*THREADS'                     
                 D2RTHRPK='PEAK*NUMBER OF*THREADS'                      
                 D2RTHRPR='THREAD*PRIORITY'                             
                 D2RTHRRE='THREAD*REUSES'                               
                 D2RTHRTE='THREAD*TERMINATES'                           
                 D2RTHRWA='THREAD*WAITS*OR OVERFLOWS'                   
                 D2RTHWSE='THREADWAIT*SETTING'                          
                 D2RTSKCU='CURRENT*NUMBER OF*TASKS'                     
                 D2RTSKPK='PEAK*NUMBER OF*TASKS'                        
                 D2RTSKTO='TOTAL*NUMBER OF*TASKS'                       
                                                                        
              -New dataset CICXQ1 CICS Shared Temporary Storage Queue   
               Server Coupling Facility Statistics (i.e., how much of   
               the CF does each structure use) contains:                
                 S1ASYCT ='ASYNCHRONOUS*REQUESTS'                       
                 S1CNNAME='NAME FOR*CONNECTION*TO STRUCTURE'            
                 S1CRLCT ='CREATE*LIST*FOR A BIG*QUEUE'                 
                 S1DLLCT ='DELETE*LIST*1 PER*OVERALL*DELETE'            
                 S1DLQCT ='DELETE*QUEUE*INDEX*ENTRY'                    
                 S1ELEMCT='CURRENT*ELEMENTS*IN USE'                     
                 S1ELEMHI='HIGHEST*ELEMENTS*IN USE'                     
                 S1ELEMLN='DATA*ELEMENT*SIZE'                           
                 S1ELEMLO='LOWEST*FREE*ELEMENTS*='/                     
                 S1ELEMMX='MAX ELEMENTS*RETURNED BY*IXLCONN'            
                 S1ELEMPE='MAXIMUM*ELEMENTS*PER ENTRY'                  
                 S1ELEMPW='DATA*ELEMENT*SIZE*POWER OF 2'                
                 S1ELEMRT='ELEMENT*SIZE OF*ENTRY*ELEMENT*RATIO'         
                 S1ENTRCT='CURRENT*ENTRIES*IN USE'                      
                 S1ENTRHI='HIGHEST*ENTRIES*IN USE'                      
                 S1ENTRLO='LOWEST*FREE*ENTRIES'                         
                 S1ENTRMX='MAX ENTRIES*RETURNED BY*IXLCONN'             
                 S1ENTRRT='ENTRY*SIZE OF*ENTRY*ELEMENT*RATION'          
                 S1FREECT='ENTRIES*ON*FREE LIST'                        
                 S1FREEHI='HIGHEST*ENTRIES*IN*QUEUE INDEX'              
                 S1HDRS  ='MAXIMUM*NUMBER OF*LIST*HEADERS'              
                 S1HDRSCT='HEADERS*USED FOR*CONTROL*LISTS'              
                 S1HDRSQD='HEADERS*AVAILABLE*FOR QUEUE*DATA'            
                 S1INDXCT='ENTRIES*IN*QUEUE INDEX'                      
                 S1INDXHI='HIGHEST*ENTRIES*ON*USED LIST'                
                 S1INLCT ='INQUIRE*ON*LIST*ENTRY'                       
                 S1INQCT ='READ*QUEUE*INDEX*STATUS*ONLY'                
                 S1NAME  ='FULL NAME*OF LIST*STRUCTURE'                 
                 S1RDLCT ='READ*LIST*ENTRY'                             
                 S1RDQCT ='READ*QUEUE*INDEX*ENTRY'                      
                 S1RRLCT ='REREAD*LIST*DATA*FOR FULL*LENGTH'            
                 S1RRQCT ='REREAD*INDEX*DATE*FOR FULL*LENGTH'           
                 S1RSP1CT='RESPONSES*NORMAL*EVERYTHING*OK'              
                 S1RSP2CT='RESPONSES*BUFFER*LENGTH*TOO SHORT'           
                 S1RSP3CT='RESPONSES*NO*MATCHING*ENTRY'                 
                 S1RSP4CT='RESPONSES*ENTRY*VERSION*NO MATCH'            
                 S1RSP5CT='RESPONSES*LIST*AUTHORITY*MISMATCH'           
                 S1RSP6CT='RESPONSES*MAX LIST KEY*REACHED'              
                 S1RSP7CT='RESPONSES*STRUCTURE*OUT OF SPACE'            
                 S1RSP8CT='RESPONSES*OTHER*IXLLIST*RTRN CODE'           
                 S1RWLCT ='REWRITE*LIST*ENTRY'                          
                 S1SIZE  ='STRUCTURE*SIZE'                              
                 S1SIZEMX='MAXIMUM*STRUCTURE*SIZE'                      
                 S1USEDCT='ENTRIES*ON*USED LIST'                        
                 S1USEDHI='HIGHEST*ENTRIES*ON*USED LIST'                
                 S1WRACT ='WRITE*QUEUE*INDEX*ADUUNCT*AREA ONLY'         
                 S1WRLCT ='WRITE*LIST*ENTRY'                            
                 S1WRQCT ='WRITE*QUEUE*INDEX*ENTRY'                     
                                                                        
              -New dataset CICXQ2 CICS Shared Temporary Storage Queue   
               Server Buffer Statistics measures the queue index buffer 
               pool and contains:                                       
                 S2BFACTS='ACTIVE*BUFFERS*OWNED*BY TASKS'               
                 S2BFEMPS='EMPTY*BUFFERS*ON*FREE CHAIN'                 
                 S2BFENTH='BUFFERS*USED*SO FAR'                         
                 S2BFFNOS='FREE ERRORS*BUFFER*NOT OWNED'                
                 S2BFFRES='FREES*PUT BACK*BUFFER*AS EMPTY'              
                 S2BFGETS='GET*REQUESTS'                                
                 S2BFGFRS='GETS*WHICH USED*A FREE*BUFFER'               
                 S2BFGLRS='GETS*WHICH*USED*THE LRU*BUFFER'              
                 S2BFGNBS='GETS*WHICH*RETURNED*NO*BUFFER'               
                 S2BFGNWS='GETS*WHICH*USED*A NEW*BUFFER'                
                 S2BFHITS='GET*WHICH FOUND*A VALID*BUFFER'              
                 S2BFKEPS='KEEPS*PUT BACK*BUFFER*AS MODIFIED'           
                 S2BFLRUS='VALID*BUFFERS*ON*LUR CHAIN'                  
                 S2BFLWTS='GET*WAITS*ON*BUFFER*LOCK'                    
                 S2BFPNFS='PURGES*WITH NO*MATCHING*BUFFER*FOUND'        
                 S2BFPNOS='PURGE ERRORS*BUFFER*NOT OWNED'               
                 S2BFPURS='PURGES*MARK*BUFFER*INVALID'                  
                 S2BFPUTS='PUTS*PUT BACK*BUFFER*AS VALID'               
                 S2BFPWTS='WAITS*ON*BUFFER POOL*LOCK'                   
                 S2BFQTY ='TOTAL*BUFFERS*DEFINED'                       
                                                                        
              -New dataset CICXQ3 CICS Shared Temporary Storage Queue   
               Storage Statistics measure usage of AXMPGANY & AXMPGLOW  
               storage pool areas, with:                                
                 S3ANYFR ='FREE PAGES*IN THE*STORAGE*ANY POOL'          
                 S3ANYLO ='LOWEST*FREE PAGES*ANY POOL*SINCE RESET'      
                 S3ANYMX ='TOTAL PAGES*IN THE*STORAGE*ANY POOL'         
                 S3ANYNAM='POOL*NAME*AXMPGANY'                          
                 S3ANYPTR='ADDRESS OF*STORAGE*ANY POOL*AREA'            
                 S3ANYRQC='ANY*COMPRESS*DEFRAGMENTATION*ATTEMPTS'       
                 S3ANYRQF='ANY GETS*FAILING*TO OBTAIN*STORAGE'          
                 S3ANYRQG='ANY POOL*STORAGE*GET*REQUESTS'               
                 S3ANYRQS='ANY POOL*STORAGE*FREE*REQUESTS'              
                 S3ANYSIZ='SIZE OF*STORAGE*ANY POOL*AREA'               
                 S3ANYUS ='USED PAGES*IN THE*STORAGE*ANY POOL'          
                 S3LOWFR ='FREE PAGES*IN THE*STORAGE*LOW POOL'          
                 S3LOWLO ='LOWEST*FREE PAGES*LOW POOL*SINCE RESET'      
                 S3LOWMX ='TOTAL PAGES*IN THE*STORAGE*LOW POOL'         
                 S3LOWNAM='POOL*NAME*AXMPGLOW'                          
                 S3LOWPTR='ADDRESS OF*STORAGE*LOW POOL*AREA'            
                 S3LOWRQC='LOW*COMPRESS*DEFRAGMENTATION*ATTEMPTS'       
                 S3LOWRQF='LOW GETS*FAILING*TO OBTAIN*STORAGE'          
                 S3LOWRQG='LOW POOL*STORAGE*GET*REQUESTS'               
                 S3LOWRQS='LOW POOL*STORAGE*FREE*REQUESTS'              
                 S3LOWSIZ='SIZE OF*STORAGE*LOW POOL*AREA'               
                 S3LOWUS ='USED PAGES*IN THE*STORAGE*LOW POOL'          
                                                                        
              -Formats MGCICDA, MGCICDT, and MGCICDP are created.       
                                                                        
              -Eight STIDs are no longer created in CICS TS 1.2, so     
               these datasets(STID) will have zero observations:        
               CICAUSS(22), CICDLIG(72), CICDLIR(70), CICDLIR(73)       
               CICDQR (43), CICDTB (33), CICIRCB(75), CICJCR (49).      
               The table of Dataset/STID/DSECT/etc. has been updated in 
               member ADOC110.                                          
                                                                        
Change 15.273  MXG 15.05 only.  Change 15.228 did not input the ACCOUNT 
VMAC26J3       fields because   IF SMF26IND='.......1........' THEN DO; 
Nov 14, 1997   should have been IF SMF26IND='.......1........'B THEN DO;
               the "B" at the end of the bit test was missing, so SAS   
               did a character comparison, which was never satisfied.   
               Additionally, JES3 sites must install APAR UW41108, or   
               you will get INPUT STATEMENT EXCEEDED RECORD LENGTH on   
               ID=26 record; without that APAR, the bit in SMF26IND was 
               turned on, but the data segment was not present! This    
               was for JES3 running with OS/390 Release 1.3.            
   Thanks to John Allender, National Computer Systems, USA.             
                                                                        
Change 15.272  This Change was not implemented.  A future change will   
XUILD005       change hardcoded PIB. references to a global macro, and  
XUIL3005       that will eliminate the need to keep WORK.STEPS.         
Nov 14, 1997   The original text of the change was:                     
Nov 21, 1997   For ITSV, dataset WORK.STEPS is no longer deleted from   
               the //WORK library in these two "Phase-Five" members that
               are used by ITSV and some smart users in place of the    
               "All Phases" members BUILDPDB/BUILDPD3.  The ITSV product
               needs the STEPS dataset to be kept in addition to the    
               "PDB.STEPS" dataset, and ITSV actually has been modifying
               the MXG source code during execution to remove the PROC  
               DATASETS that deleted STEPS!  By now leaving the STEPS   
               dataset in the work library, ITSV will no longer need to 
               modify the MXG source code.  "STEPS" is first renamed to 
               "REALSTEP" where it was previously deleted (because the  
               SPUNJOBS member creates a dataset named STEPS so that the
               macro _PDBSUMS can summarize PDB.JOBS and PDB.SPUNJOBS), 
               and after SPUNJOBS has been run, "REALSTEP" is then      
               renamed back to "STEPS".                                 
                                                                        
               I did not include this logic in the BUILDPDB/BUILDPD3    
               members that do all five phases in one step, because ITSV
               does not use those members, and leaving the STEPS dataset
               instead of deleting it requires somewhat more DASD space 
               in the work library.  Sites that have created their own  
               PDB job using the "phase" members may want to add a      
               delete of the WORK.STEPS dataset after their include of  
               members BUILD005 or BUIL3005 if more members are included
               subsequently in the same SAS step execution.             
   Thanks to Chris Weston, SAS Institute Cary, USA.                     
                                                                        
Change 15.271  Further consistency enhancements.  All interval datasets 
VMAC23         should have SYSTEM DURATM STARTIME (especially for ITSV) 
VMAC24         and these didn't:                                        
VMAC94         TYPE23 - STARTIME variable created and kept.             
Nov 14, 1997   TYPE24 - SYSTEM variable kept.                           
               TYPE94 - DURATM variable created and kept.               
   Thanks to Chris Weston, SAS Institute Cary, USA.                     
                                                                        
Change 15.270  OS/390 R2.4, Goal Mode Only.  INVALID DATA FOR R723CIDT  
VMAC7072       or R723CDQT error.  The SMF Manual showed R723CTSA as    
Nov 14, 1997   four-byte binary, but the DSECT shows it is eight-byte   
               floating point!  Change PCTEXTSA &PIB.4. to &RB.8. and   
               three lines earlier change LENSCS GE 432 to GE 436 and   
               fourteen lines later change SKIP-48 to SKIP-52.          
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
                                                                        
Change 15.269  The eight-byte variable UOWTIME (created by INPUTing the 
ADOCDB2        first six bytes of UOWID with PIB6.6 and then dividing by
ANALDB2C       sixteen to convert time units into seconds) can have the 
ANALDBTR       same value for two unique values of the six-byte UOWID!  
ASUMUOW        Since UOWTIME is used to combine CICS MRO observations   
IMACEXCL       for the same unit-of-work, and is used to combine the    
VMAC102        CICSTRAN and DB2ACCT data by unit-of-work, only members  
VMAC110        that used UOWTIME (ANALDB2C,ANALDBTR, and ASUMUOW) were  
VMACDB2        directly affected; the duplicate values lumped different 
VMACDB2H       units-of-work's transactions into one observation.       
Nov 13, 1997                                                            
               I had believed that any 6-byte field could be input,     
               converted, and stored with full resolution in a SAS      
               8-byte variable, but in an eight-byte floating point     
               non-integer, SAS can only store 15 digits on MVS and     
               only 14 digits on ASCII.  In UOWTIME, it happens that    
               16 digits are required to resolve adjacent unitary       
               changes in the 6-byte UOWID value; one unit change in    
               UOWTIME is one third of a microsecond, so 8 digits are   
               needed for the seconds of DATETIME since 1960, and 7     
               fractional digits were not enough as shown in the table: 
                                                                        
               The table shows duplicate DIVIDED BY 16 values for the   
               different UOWID input values, and shows that adjacent    
               UOWID values could not be resolved:                      
                                                                        
                UOWID 6-bytes     INPUT PIB6.6         DIVIDED BY 16    
                                  (15 digits)          (15 digits)      
                                                                        
                 DDDDDDDDE100   243974979.816704      15246561.2385440  
                 DDDDDDDDE101   243974979.816705      15246561.2385440  
                 DDDDDDDDE102   243974979.816706      15246561.2385441  
                 DDDDDDDDE103   243974979.816707      15246561.2385441  
                 DDDDDDDDE104   243974979.816708      15246561.2385442  
                 DDDDDDDDE105   243974979.816709      15246561.2385443  
                 DDDDDDDDE106   243974979.816710      15246561.2385443  
                 DDDDDDDDE107   243974979.816711      15246561.2385444  
                 DDDDDDDDE108   243974979.816712      15246561.2385445  
                 DDDDDDDDE109   243974979.816713      15246561.2385445  
                 DDDDDDDDE10A   243974979.816714      15246561.2385446  
                                                                        
               This error wasn't seen earlier in "real" CICS systems    
               because UOWTIME was the real time of day when a real     
               transaction started, and real microseconds occurred      
               between successive events, so UOWTIME values resolved to 
               unique values for different units-of-work.  But clients  
               like CICS/OS2 and AS/400 now send transactions into CICS,
               and these originators store not a timestamp in UOWID,    
               but rather a counter value that is incremented for each  
               transaction, and as one counter unit is one third of a   
               microsecond, MXG's choice of storing the six-byte UOWID  
               token as an eight-byte datetimestamp is now proven to be 
               incorrect to resolve adjacent counter values.            
                                                                        
               The solution is to create a new 6-byte character variable
               UOWIDCHR in both CICSTRAN and DB2ACCT datasets containing
               the first six bytes of UOWID, and then to insert UOWIDCHR
               after UOWTIME in each BY statement so BY NETSNAME UOWTIME
               becomes BY NETSNAME UOWTIME UOWIDCHR to guarantee unique 
               instances are correctly merged. The logic in ASUMUOW was 
               revised to protect the SPIN library against a variable   
               UOWIDCHR NOT FOUND error.                                
   Thanks to Carol Arnold, Brown Brothers Harriman & Co., USA.          
   Thanks to John Krall, Brown Brothers Harriman & Co., USA.            
                                                                        
Change 15.268  The new IHDR110 "Type 110 Header Exit" member can be     
IHDR110        used to select CICS records by APPLID or other fields,   
VMAC110        since the exit is taken after the header of the CICS     
Nov 13, 1997   record has been input.  It can save lots of time if you  
               have lots of Test CICS Regions whose SMF data you want   
               recorded (for problem determination) but whose records   
               you do not want in your daily CICS PDBs, because you can 
               use IHDR110 to delete all records from your test regions.
               See the IHDR110 member for the list of fields that exist 
               in the Subtype 0/1/2, for Journal/Transaction/Statistics.
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.267  Variable SMFRECNR was added to KEEP= list for TYPE90     
VMAC90         dataset.  See Technical note on Y2K Test System's SMF    
Nov 13, 1997   data in MXG Technical Newsletter THIRTY-THREE.           
   Thanks to Carol Arnold, Brown Brothers Harriman & Co., USA.          
                                                                        
Change 15.266  MXG 15.04-MXG 15.05.  Current dates in CREATIME, STRTTIME
TYPETMON       ENDTIME, UOWTIME, TIESDATE, and TIREDATE were wrong.  The
Nov  6, 1997   three lines  IF O LE YY LE 1959 THEN YY=YY+2000; should  
               have been IF 0 LE YY LE 59 THEN YY=YY+2000;              
               This error caused 1997 TMON dates to be in the year 2097.
   Thanks to Colin J. Fester, Engen Petroleum, SOUTH AFRICA.            
                                                                        
Change 15.265  NTSMF version 2.0.H caused INPUT STATEMENT EXCEEDED for  
VMACNTSM       the 0,0 (Discovery) record.  The quick circumvention is  
Nov  3, 1997   to replace STOPOVER with MISSOVER by using               
               MACRO STOPOVER MISSOVER % as the first statement, before 
               the %INCLUDE statement.  The fix is contained in 15.06.  
   Thanks to Howard Glassetter, Weyerhaeuser, USA                       
                                                                        
Change 15.264  IDMS 10.02 observations were not OUTPUT in the IDMSTAS   
VMACIDMS       dataset; the statement IF '1201' LE SMFHVER LT '1400' ...
Nov  3, 1997   that is immediately before %INCLUDE SOURCLIB(EXIDMTAS);  
               must be changed to IF '1002' LE SMFHVER LT '1400' ... if 
               you still have records from archaic IDMS 10.02 release.  
               It is possible there will be no obs in IDMSBUF and INT,  
               with 10.02 as well.                                      
   Thanks to Jill Billings, First Data, USA.                            
                                                                        
Change 15.263  Support for Boole & Babbage MQ Series 1.1.4 MVMQS 1.2.0  
EXBBMQBP       VSAM file of statistics records adds 3 new MXG datasets: 
EXBBMQPS           RTIN    MXG DATASET    VARS    DESCRIPTION           
EXBBMQQM           'E1'x     BBMQQMGR      125    Queue Manager Record  
IMACBBMQ           'E2'x     BBMQBUFF       96    MQ Buffer Pool Record 
TYPEBBMQ           'E3'x     BBMQPAGE       16    MQ Page Set Record    
VMACBBMQ       This Boole product is also called MainView for MQSeries, 
Nov  2, 1997   and the MXG support reads their online historical files. 
                                                                        
Change 15.262  Availability Analysis example using PROC CALENDAR and the
ANALAVAL       PDB.SMFINTRV dataset (must be enabled in IMACINTV) is    
Nov  1, 1997   provided in this nice user contribution.                 
   Thanks to Rob Wunderlich, USS/POSCO Industries, USA.                 
                                                                        
Change 15.261  Cosmetic.  APAR OW15518 is the IBM APAR that added the   
YEAR2000       year 2000 support to all SMF-owned SMF records; the      
Nov  1, 1997   member YEAR2000 incorrectly typo'ed OW16518.             
   Thanks to Don Friesen, B.C. Systems, CANADA.                         
                                                                        
Change 15.260  Cosmetic.  Change @28 QWACRINV MGDB2RC16. to MGDB2RC15.  
ANALDB2R       and there will be a space between the reason and the     
Nov  1, 1997   count of SELECTs and so it doesn't look overlaid.        
   Thanks to Bob Gauthier, American Stores Company, USA.                
                                                                        
Change 15.259  Pairing DB2 type 102 59 and 63 records was wrong when    
ANALDBTR       there were multiple 63s due to lots of SQL text.  The    
Oct 31, 1997   correction is to only increment PAIRNR in the BEGIN63    
               logic  IF QWHSSTCK NE OLDTME63 THEN PAIRNR+1; and add    
               OLDTME63 to the RETAIN and DROP statements, and to set   
               OLDTME63=QWHSSTCK; just before the OUTPUT statement.     
               This affected the S064058 file because PAIRNR was being  
               incremented by more than the one count MXG expected in   
               the  IF HOLD63 AND HOLD64 logic block.  This correction  
               was diagnosed and the fix coded by its discoverer.       
   Thanks to Ken Michalik, Kraft Foods, USA.                            
                                                                        
Change 15.258  Support for CICS APAR UN98309 (INCOMPATIBLE) which       
IMACPTF        adds new field RLSCPUT (MXG variables CPURLSTM and       
VMAC110        CPURLSCN) to dataset CICSTRAN.  You must update member   
UTILCICS       IMACPTF to enable macro _UN98309 if you install this     
Oct 31, 1997   PTF, because there is no way to tell from the SMF        
               record that the PTF is installed.  If you use any        
               of the "User" fields, or have any optional segments      
               (e.g., those created by Candle or Boole & Babbage)       
               those data will be wrong with this PTF until you both    
               install the MXG 15.06 or later version and update the    
               IMACPTF member.  Sorry, but this is what happens when    
               IBM adds data to the type 110 transaction record without 
               changing version numbers (and there is no maintenance    
               level flag for them to update, either!).                 
               MXG utility UTILCICS was updated and it will now detect  
               that APAR UN98309 has been installed on any of your CICS 
               regions; see its comments for instructions and output.   
   Thanks to Martin Peck, CA-IT/Capacity Management, GERMANY.           
                                                                        
Change 15.257  Support for type 88 subtype 11 (System Logger Alter      
EXTY8811       Structure) data creates new dataset TYPE8811.            
IMAC88         Also, variable SMF88EDO is now input and created in      
VMAC88         the TYPE88 dataset.                                      
Oct 31, 1997                                                            
   Thanks to Pat Quinnette, Principal Mutual Life Insurance, USA.       
                                                                        
Change 15.256  OPC segmented type 29 records caused INPUT STATEMENT     
VMACOPC        EXCEEDED error; MXG only inputs the EQE control block    
Oct 31, 1997   fields, which does not exist in the segmented records,   
               so now MXG verifies both the length and EQE eyecatcher   
               before decoding type 29 records.                         
   Thanks to Randy Shumate, LEXIS-NEXIS, USA.                           
                                                                        
Change 15.255  Windows NT on a multiprocessor (two or more engines) was 
NTINTRV        not summarized correctly; each engine created a separate 
Oct 30, 1997   observation in the NTINTRV dataset.  This revision will  
               correct that MXG design error by summing INTPROR before  
               the merge and creating NRCPUS variable to count engines. 
               Most of the fields from the PROCESOR record exist in the 
               SYSTEM record, but the percentage values are slightly    
               different between the records.  Variable ACPBYPAS in the 
               SYSTEM record appears to be half of the sum from the     
               PROCESOR records with two engines, so the (believed!)    
               more correct value from PROCESOR is used, rather than the
               values from the SYSTEM record, by moving INTPROR to the  
               end of the MERGE statement (so its values will override  
               variables of the same name).                             
                                                                        
Change 15.254  Of no real impact, because adding zeros has none, but MXG
VMAC30         created additional observations in TYPE30_V/30_4/30_5 if 
Oct 29, 1997   there were type 30 records containing only MULC or OMVS  
               segments.  These observations had MULTIDD='Y', a flag    
               that this step record contained only EXCP segments, and  
               had zeroes for all resource variables, because resources 
               in the MULC (Measured Usage) and OMVS (Open Edition/MVS) 
               segments are output in TYPE30MU or TYPE30OM datasets.    
               Prior to MXG 15.05, when there was more than one multiple
               record from a step, they were identical and MXG's NODUP  
               in PROC SORT deleted all but one.  But Change 15.235 in  
               MXG 15.05 added variable EXTRMULC to be kept, and as its 
               value was not the same in each multiple record, MXG did  
               not delete any dupes, and comparison of MXG 15.03 and MXG
               15.05 showed different messages on the SAS Log about     
               duplicates.  While they were still zero and had no       
               impact, they should not have been output in the first    
               place.  So MXG has now added a test                      
                 IF MULTIDD='Y' AND NUMDD=0 THEN DELETE;                
               so that only multiple records due to EXCP segments will  
               be output into the TYPE30_V/TYPE30_4/TYPE30_5 datasets.  
               In TYPE30MU dataset, INITTIME will be the job or step    
               initiate time for subtype 4 and 5 records, but it is now 
               set equal to INTBTIME in the subtype 2 and 3 interval    
               records so that duration of the interval can be known.   
                                                                        
               There can be multiple records created due to too many    
               ARMS (Automatic Restart) segments, but I have no data    
               with ARMS segments to investigate what I should do with  
               those records.  Variable EXTRARMS will be nonzero if you 
               have ARMS segments causing multiple records, and it is   
               kept in TYPE30_V/_4/_5 datasets.  In fact, only the data 
               in the first ARMS segment is actually input by MXG.      
   Thanks to Tom Elbert, John Alden Systems Company, USA.               
                                                                        
Change 15.253  Text of Change 12.255 now points to revision in Change   
ChangeSS       15.061, whose text was also revised to TYPE78CF rather   
Oct 29, 1997   than TYPE74CF!                                           
   Thanks to Jack Fausti, EDS, USA.                                     
                                                                        
Change 15.252  The example for pre-CICS 4.1 GMT protection should have  
ADOC110        spelled STRTTIME instead of STTRTIME.                    
Oct 29, 1997                                                            
   Thanks to Rey Marquez, General Accident, USA.                        
                                                                        
Change 15.251  The CICINTRV logic was still wrong after Changes 15.219  
CICINTRV       and 15.092.  The first interval was dropped when it was  
Oct 14, 1997   valid, the COLLTIME value was reset to the start time of 
Oct 29, 1997   the interval, variable STARTIME was not propagated into  
               the PDB.CICINTRV dataset, and the HALFHOUR default value 
               for MACRO _CICINTV produced strange results in DSGCNT if 
               15 minute interval data was input.  To correct the logic,
               DURATM and STARTIME were added to the KEEP= list in the  
               one-per-interval datasets (i.e., the ones that are not   
               VMXGSUMed), the DROP of SMFSTRQT was removed (to help in 
               debugging), and the major logic changes were in both the 
               big MERGE step (to not drop first interval, and to create
               STARTIME) and in the final VMXGSUM (which now uses the   
               STARTIME rather than COLLTIME to cluster records.  This  
               has been tested with broken data (i.e., an interval with 
               only FCR (file close) records, which will happen when SMF
               is dumped before the end of the interval) as well as with
               USS/REQ/EOD records interleaved with INT records, and now
               the data looks correct.                                  
               Note that an observation in PDB.CICINTRV with missing for
               DURATM is a "broken data" interval in which only event   
               data was found, and STARTIME will equal COLLTIME since   
               there is no interval duration in the event records.      
               It was invalid values for DSGCNT (Current Nr of Tasks)   
               in Dan's reports that led to this revision, so I also    
               moved DSGCNT from the MEAN= list to the MAX= list as it  
               is more useful as the maximum number of current users    
               when multiple intervals are summarized than the average. 
                                                                        
               Sites with SAS IT Service Vision (ITSV) should install   
               MXG 15.06 or later if they want to use PDB.CICINTRV      
               table.  With MXG 14.07 thru MXG 15.05, SAS ITSV will     
               generate a warning message because variable DATETIME     
               was not found in PDB.CICINTRV.  You could delete the     
               statement  DROP DATETIME  in member CICINTRV in those    
               earlier versions and ITSV will populate its tables,      
               but only the MXG 15.06 version of member CICINTRV        
               creates a legitimate PDB.CICINTRV dataset.               
                                                                        
               This change did remove the   DROP DATETIME;  statement   
               that was added in MXG 14.07.  Eventually, the variable   
               DATETIME will be deleted, because STARTIME is the name   
               that should be used, but both are now kept to protect    
               ITSV until it is updated to use STARTIME.                
                                                                        
               Early versions of VMXGSUM created variable DATETIME, but 
               that was not my intention; instead, the original named   
               variable (i.e., the one used in the DATETIME= argument)  
               is intended to be used for the summarized datetime value.
   Thanks to Dan Gilbert, Bergen Brunswig, USA.                         
   Thanks to Ken Whitehead, Bank of New York, USA.                      
                                                                        
Change 15.250  The test IF CPUTM NE CPU72TM in RMFINTRV that validates  
RMFINTRV       that the sum of your work definitions (CPU72TM) is equal 
Oct 13, 1997   to the sum of real work (CPUTM, all non-report perfgrps  
               or service classes) was too strong.  Truncation effects  
               caused fractional differences (1E-9) when totals really  
               were equal.  In the worst case, with 1000 numbers summed 
               at .01 second resolution, if all lost the max of .001,   
               a maximum difference of 1 second could exist, so the test
               was revised to report error only:                        
                 IF ABS(CPUTM-CPU72TM) GT 1 THEN DO;                    
               This test only comes in to play if you have enabled      
               IMACWORK to use both control/report performance groups   
               or service/reporting classes to define workloads.        
   Thanks to David Ehresman, University of Louisville, USA.             
                                                                        
Change 15.249  Support for NTSMF Version 2.1 Final Changes (INCOMPAT).  
VMACNTSM       In the final Beta Tests of NTSMF Version 2.1, we have    
Oct 13, 1997   decided to make a structural change in the timestamps of 
               NTSMF records that can affect the NTINTRV dataset, so    
               now, MXG 15.06 (or at least Change 15.249) is required   
               for NTSMF Version 2.1.  Prior versions are not affected. 
                                                                        
               Prior to 2.1, all NTSMF records for a interval had the   
               same SMFTIME timestamps and DURATM durations, because    
               only one call to the Registry for all objects was made.  
               A single call sometimes generated 300K bytes of data,    
               which the Registry did not handle well, but in using just
               one call to the registry we got back every counter in    
               every object, and we had wanted to allow the collection  
               of only some counters in some objects.                   
                                                                        
               So NTSMF 2.1 now will issue multiple calls (one per      
               object) so you can tailor which counters are collected.  
                                                                        
               But the multiple calls create records with slightly      
               different SMFTIME timestamps, varying by the milliseconds
               it takes NTSMF to get from the first to the last object, 
               and since NTINTRV uses STARTIME=SMFTIME-DURATM to collect
               all of the records for an interval, STARTIME would not be
               constant for each interval, which would cause multiple   
               obs in dataset NTINTRV for each real interval.           
                                                                        
               That is the incompatibility which is eliminated by this  
               change.  NTSMF 2.1 writes a configuration record with    
               OID=0, OBJECT=0 (which contains fields that used to be in
               each record's header that were moved to this record as   
               part of 2.1's "reduced header" redesign to reduce data   
               volume, as well as configuration information).  This 0,0 
               record is now written at the start of each call sequence,
               its DURATM is the duration since the last call sequence, 
               and MXG now uses the 0,0 record's SMFTIME-DURATM as      
               the retained STARTIME value for all records until the    
               next 0,0 record is read.  So STARTIME will be constant   
               for each interval, NTINTRV will be correct, and each     
               individual record's timestamps, SMFTIME, can be examined 
               to see how long it takes NTSMF to write a set of data!   
             - This change also creates variable PRODTYPE (Server/WS)   
               and DSCNAME (NTSMF data set collection that was used)    
               from the 0,0 configuration record.                       
                                                                        
Change 15.248  Support for Applied Expert System's Clever TCP/IP SMF    
ADOCCTCP       record creates two new datasets:                         
EXCTCPPR         CTCPPERF - Clever TCP/IP Performance Statistics        
EXCTCPWL         CTCPWORK - Clever TC/IP Workload Statistics            
IMACCTCP                                                                
TYPECTCP                                                                
VMACCTCP                                                                
Oct 13, 1997                                                            
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.247  Support for HP MeasureWare for Terra Data Operating      
ADOCMWTE       System creates six new datasets:                         
EXHPTEAP         HPTEAPPL - HP-MWA TERRADATA APPLICATION RESOURCES      
EXHPTECO         HPTECONF   HP-MWA TERRADATA CONFIGURATION              
EXHPTEDS         HPTEDSK    HP-MWA TERRADATA DISK ACTIVITY FROM DISK    
EXHPTEGL         HPTEGLOB   HP-MWA TERRADATA GLOBAL ACTIVITY            
EXHPTELA         HPTELANS   HP-MWA TERRADATA LANS                       
EXHPTEPR         HPTEPROC   HP-MWA TERRADATA PROCESS RESOURCES          
IMACMWTE      The Report Macro for Terra Data extract is contained in   
TYPEMWTE      member ADOCMWTE.                                          
VMACMWTE                                                                
Oct 13, 1997                                                            
   Thanks to Alfred Holz, Medco Data Corporation, USA.                  
                                                                        
Change 15.246  When you used TYPEEREP to read the DASD (i.e. online)    
ADOCEREP       SYS1.LOGREC file, MXG read the entire file, all the way  
IMACEREP       to End-of-File, but the DASD file contains old records   
VMACEREP       that should not have been read.  The first record of the 
Oct 12, 1997   DASD file is a header record that contains the pointer   
               LASTTR to the last record written.   IBM utilities CLEAR 
               SYS1.LOGREC by updating LASTTR and leave all the records 
               where they were.  Now, MXG detects that there is a header
               record and uses its LASTTR value to STOP the input from  
               SYS1.LOGREC after that logical end of file record.  (If  
               you should ever want to read the entire DASD LOGREC file,
               new macro _READALL in IMACEREP will let you change the   
               MXG default)  Note that this was only a problem if you   
               read the DASD SYS1.LOGREC file; the dumped file contains 
               only the valid records, and there is no header record in 
               the dumped file, so MXG reads dumped data to end-of-file.
                                                                        
               An old IBM reference, RTA000138425 dated 11/13/1996 has  
               more discussion, including pointing out that SYS1.LOGREC 
               and EREP may not necessarily point to the same file!     
                                                                        
               This MXG change only applies if you use TYPEEREP to read 
               the online, DASD, SYS1.LOGREC, as only it contains the   
               header record.  If you were reading the dumped EREP data 
               records, on tape or DASD, there are no dead records nor  
               any header, and reading to end-of-file is what you want! 
   Thanks to Christophe Faure, ATOS Group, FRANCE.                      
                                                                        
Change 15.245  DB2 Type 102 Subtype (IFCID 140) INPUT STATEMENT EXCEEDED
VMAC102        error due to trashed record.  The data thru QW0140UR is  
Oct 11, 1997   valid for the Object-Type=Plan record, but the XL8 field 
               QW0140HO contains '40ffff4040404040'x, and QW0140LL has  
               '4000'x, (indicating 16,384 bytes of SQL text follows),  
               but QWT02R1L is only 82 bytes (and there are 9 bytes in  
               the segment following QW0140LL). It looks to me that the 
               QW0140HO field was filled with 9 bytes rather than 8, and
               it overlaid the first byte of QW0140LL.  MXG previously  
               added protection for this IFCID=140 record when there was
               no SQL text in Change 15.216; this Change makes the line 
                  IF QW0140LL GT 2 THEN                                 
               look like this:                                          
                  IF QW0140LL GT 2 AND COL+QW0140LL-3 LE LENGTH THEN    
               The site will pursue the bad record with IBM.            
   Thanks to Michael Oujesky, MBNA, USA.                                
                                                                        
Change 15.244  New variable CPU72TM was formatted TIME12.2 before it was
RMFINTRV       output, but was not formatted in the step in which it was
Oct 11, 1997   created and in which it was PUT in an error message, so  
               it is now FORMATed when created.                         
   Thanks to David Ehresman, University of Louisville, USA.             
                                                                        
Change 15.243  DFSORT APAR PN71337 added flag fields (Compatibly) which 
VMAC16         are new variables in MXG TYPE16 dataset:                 
Oct  9, 1997     LOSMCNTR='LOCALE PROCESSING*SORT MERGE*CONTROL FIELD?' 
                 LOIOCOMP='LOCALE PROCESSING*INCL OMIT*COMPARE FIELD?'  
                 EQUALUSE='EQUALS*WAS USED*FOR SORT*OR MERGE?'          
                                                                        
Change 15.242  Utility program to re-create SMF VBS data records from a 
UVBSNRDW       downloaded SMF file that had BDW and RDW stripped.  If   
Oct  9, 1997   you don't download correctly (see member SENDDATA), you  
               can end up with an SMF file of only records; the BDW/RDW 
               are removed when you download from a RECFM=VBS instead of
               using the RECFM=U copy.  This has happened enough times  
               that I wrote this utility to reconstruct the original SMF
               record, adding the missing BDW (Block Descriptor Word)   
               and RDW (Record Descriptor Word).  As written, the logic 
               only works for SMF records that have only one instance of
               SYSTEM per record (DB2 and CICS qualify); it would need  
               to be extended for records like JES type 26 that has the 
               SYSTEM repeated in several places, but it worked so I was
               able to reconstruct the problem in the site's SMF data,  
               and to discover their error had been previously fixed!   
                                                                        
Change 15.241  MQ Series type 116 SMF record with blank for CICS Task Nr
VMAC116        caused INVALID DATA FOR QWHCTASK message.  The input of  
Oct  7, 1997   QWHCTASK was protected by adding the double questionmark:
               QWHCTASK ?? &PD.4.  to suppress the error message and the
               hex dump of the record.  QWHCTASK was input only if CICS 
               attach (QWHCATYP=1 in MQ Series), but MXG did not expect 
               records with blank values.                               
                                                                        
               MQ Series SMF type 116 record questions answered by IBM: 
                                                                        
               1. I have SMF type 116 record subtype 0 with QWHCATYP=1  
                  (CICS), but the Thread Cross Reference Data is all    
                  blanks (i.e., the CICS "thread number" QWHCCTNO,      
                  "transaction name" QWHCTRN, and the CICS "task number"
                  are hex 40's).  The CPU time field is hex zeroes, as  
                  are all of the GET/PUT counts.                        
                                                                        
                  MQSSeries System Management Guide for Version 1.1.4   
                  SC33-0806-04 page 343 discusses that there may be up  
                  to 9 records containing zero CPU time.  Do the blank  
                  values in the CICS fields only occur in these records 
                  with zero CPU time, and is a record with zero CPU time
                  always going to have blanks for the CICS fields, or is
                  the zero CPU and the blank CICS fields unrelated      
                  conditions.  Aren't blanks an error?                  
                                                                        
                  IBM ANSWER: Regarding records with zero cpu time on   
                              CICS adapter related records, the null    
                              records relate to the main CICS TCB and   
                              8 MQ-related CICS TCBs.  Depending on the 
                              activity in the queue manager, these null 
                              records will be written.                  
                                                                        
               2. There is a third, undocumented self-defining section  
                  in type 116 records that contains non-zero values,    
                  including two TODSTAMP fields.  The Offset of the     
                  triplet is 36 decimal, and the note in Table 25 states
                  "other self-defining sections refer to data for IBM   
                  use only".  However, the data values may be of        
                  significant value to our customers but I need         
                  confirmation of their meaning, as well as the other   
                  fields in the undocumented section:                   
                   - The two TOD stamp fields at the beginning of the   
                     section look to be a start time and an endtime, and
                     as there is no other start time in the record, it  
                     should be kept to measure event duration.          
                   - The end timestamp has more resolution than the .01 
                     seconds to which the SMF record timestamp is       
                     truncated.  Additionally, there is yet another     
                     undocumented TODSTAMP field in the record, in the  
                     Message Manager Accounting record QWHS section, as 
                     the first eight bytes of the reserved field at     
                     decimal offset 16, and this is also an ending      
                     timestamp, but it is 26 microseconds later than the
                     ending timestamp in the undocumented section, so it
                     is clearly the timestamp of a third event.         
                                                                        
                Start Time in Undefined Section  05OCT97:04:15:42.970238
                SMF Record time stamp            05OCT97:12:50:25.43    
                End   Time in Undefined Section  05OCT97:12:50:25.438630
                Reserved Time in QWHS Section    05OCT97:12:50:25.438656
                                                                        
                  By understanding what events are being timestamped,   
                  the delta-time between them can often be used to      
                  characterize short term problems and long term trends,
                  so I request information as to their meaning.  In     
                  addition, there are a number of fields in the         
                  undocumented section that are non-zero; since they    
                  exist in the site's SMF record, knowing what they     
                  count so that they can be decoded would help our      
                  mutual customers to better measure their MQ Series    
                  systems.                                              
                                                                        
                The sample 116 record in SC33-0806-04 on pp 344-346 has 
                similar data, with SMF time of 29MAR94:16:43:15.17, its 
                start at 16:43:13.500017, and its two end times are at  
                16:43:15.174748 and 16:43:15.175460, for a delta of 712 
                microsec! What is happening during that delta duration? 
                                                                        
                I am aware that while the SMF time stamp is on the local
                clock, all three undocumented TOD stamps are on the GMT 
                clock.  The delta between SMF time and the end time will
                let me discover the GMT offset to convert to local for  
                comparison with other SMF data records from CICS IMS,   
                etc.                                                    
                                                                        
                IBM ANSWER:  The additional data is not strictly just   
                             for IBM use; it's just that the additional 
                             data is not used for any purpose by MQ.    
                             Part of this core code for MQ is based on  
                             DB2, and while MQ cannot guarantee any of  
                             the information in the additional section, 
                             the layouts for DB2 Accounting Data may    
                             indicate the contents of this section.     
                                                                        
               BARRY's STATUS: If you want to look deeply into MQ Series
                               with type 116 records, send me some data 
                               records and I will decode the extra data 
                               segment to see if it really is useful.   
   Thanks to Ken Whitehead, The Bank of New York, USA.                  
                                                                        
Change 15.240  Variables that had duplicate entries in LABEL statements 
several        were removed from members VMAC42, VMAC7072, VMAC79,      
Oct  4, 1997   VMAC80A, VMAC99, VMACICE, VMACMWUX, and VMACXPSM. These  
               caused no error, but should not have been repeated.      
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
Change 15.239  New variable LASTVOFL "IS THIS*THE*LAST*VOLUME?" is added
VMAC1415       to dataset TYPE1415 to flag whether an individual 14/15  
Oct  4, 1997   record is the last volume, by decoding '40'x in RECIND1. 
               See Change 15.304.                                       
                                                                        
======Changes thru 15.238 were in MXG 15.05 dated Oct  2, 1997======    
                                                                        
Change 15.238  "ERROR. NEGATIVE CPU-UNCAPTURED-TIME (TYPE70-TYPE72)" is 
RMFINTRV       printed by RMFINTRV when MXG detects bad CPU time values 
Oct  2, 1997   in type 72 records.  Back in 1992, IBM APAR OY51878 found
               bad values in CPURCTTM (SMF72RCT), and now APAR OW28256  
               reports bad values again!  When CPURCTTM is corrupted,   
               CPUOVHTM (actually the "Uncaptured CPU Time" rather than 
               overhead) becomes negative because the total CPU in type 
               72 records exceeds CPU Active time for the box!  This is 
               because MXG includes CPURCTTM in CPUTM in building the   
               TYPE72/TYPE72GO datasets, and in RMFINTRV calculations.  
               You can correct this error in advance by inserting in the
               EXTY72/EXTY72GO exit members:                            
                     CPUTM=CPUTM-CPURCTTM;                              
               so that TYPE72/TYPE72GO and RMFINTRV will not include the
               CPURCTTM (Region Control Task, mostly TSO Quiesce/Resore)
               in the total CPU time captured, and then remove this     
               workaround when you install the PTF for the APAR OW28256.
               Note: for Boole's CMF, APAR BPM6782 is reportedly also a 
               requirement.  29May98.                                   
   Thanks to Thomas Heitlinger, FIDUCIA IT AG, GERMANY.                 
                                                                        
Change 15.237  Support for BETA93 Release 3.1.3 (INCOMPATIBLE) inserted 
VMACBETA       fields in the header, and changed the length of many of  
Oct  2, 1997   the fields.  Unfortunately, I only received subtype 21   
               records, so only that subtype is supported in MXG 15.05. 
               In fact, all other subtype will produce a hex dump of the
               first record of each unsupported subtype and prints an   
               MXG message to please send that dump to me so I can add  
               support for those subtypes.  (If the BETA93 vendor had   
               documented their alignment bytes in their DSECT, I could 
               have delivered the code for all subtypes, but the subtype
               21 record proved their documentation is inadequate.  I   
               presume that since only the subtype 21 records were sent,
               that that is the most important record for BETA92, and I 
               hope this change will get you through the nite!).        
   Thanks to Manfred Thomas, BHF-Bank, GERMANY.                         
                                                                        
Change 15.236  DFHSTUP-like CICS Shutdown Reports have been enhanced to 
ANALCISH       match new IBM reports, but not all reports were finished 
Oct  2, 1997   in time for MXG 15.05 (notably, CICFCR).  See notes in   
               the member for additional status.                        
   Thanks to Steve Colio, CIGNA, USA.                                   
                                                                        
Change 15.235  Duplicate step records might not be deleted by SAS NODUP 
BUILDPDB       option, but only for steps with more than one physical 30
BUILDPD3       record for a step (eg., steps with many DD segments, aka 
BUILD005       MULTIDD='Y' steps).  The sort order for TYPE30_4 did not 
BUIL3005       include MULTIDD EXTRADD variables, and if the multiple 30
VMAC30         records had exactly the same TERMTIME, the sort did not  
Oct  2, 1997   place them adjacent, and the NODUP only deletes duplicate
               records that are adjacent.  The correction is to change  
               the BY list for PROC SORT NODUP DATE=TYPE30_4 ... ;      
               to  BY READTIME JOB JESNR TERMTIME MULTIDD EXTRADD;      
                 Of course, if you never have duplicate SMF data        
                 (which can ONLY happen when a failure in SMF dump      
                  AND an incorrect human recovery occurs) you will      
                 not have cause for concern!                            
               The impact was that two observations were created in     
               PDB.STEPS, and the job's CPU time was doubled.           
              -Variables EXTRARMS, EXTRMULC, and EXTROMVS are now kept  
               in the TYPE30_V and TYPE30_4 records, as they may be     
               needed for additional protection.                        
              -Member ADOC30 has been updated with a discussion of the  
               existence of multiple step records that was written in   
               reply to a request from IBM to review SMF documentation  
               on how to know whether a physical step record was the    
               first, last, or in-between record for a step terminate.  
   Thanks to Steve Donahue, Blue Cross and Blue Shield of Texas, USA.   
                                                                        
Change 15.234  Support for TCP/IP 3.2 API Calls SMF record increased the
VMACTCP        length of the API Call record (on which MXG depends to   
Oct 01, 1997   sort out API from FTP from TELNET), relocated APIJOBNM,  
               and added new variables APIJOBID (JCTJOBID) and APISTART 
               (JES Start Time) for HPNS applications (where the HPNS   
               enabled interfaces are                                   
                 - C sockets API (including C sockets for CICS)         
                 - Sockets Extended APIs:                               
                    - Macro Interface                                   
                    - Call Instruction Interface, including Call Instr  
                      for CICS and IMS).                                
   Thanks to Harmut Richter, BASF Computer Services GmbH, GERMANY.      
                                                                        
Change 15.233  The discussion of documentation of MXG Software, the     
DOC            MXG books, etc., is now contained in member DOCUMENT.    
Sep 30, 1997   There are several "tables of contents" of ACHAPxxx and   
               ADOCxxx members (this consolidates and enhances the old  
               "Online Documentation" section of member CHANGES).       
                                                                        
Change 15.232  Enhancements to process EASMON/EASMAP data from VM/ESA   
EXXAMSYT       were contributed to add new XAMSYT and XAMSYU datasets,  
EXXAMSYU       and to correct "IF SKIP GE 20... SKIP=SKIP-20;" before   
IMACXAM        the INPUT TCMXIDSZ to ..GE 16 ...SKIP-16" so that the    
VMACXAM        fields are actually input.  Datasets XAMSYT and XAMSYU   
Sep 30, 1997   report LPAR dispatch and management time from VM/ESA.    
   Thanks to Anthony P. Lobley, EDS, ENGLAND.                           
                                                                        
Change 15.231  Deaccumulation of the NPMINPMT dataset in member DIFF28  
DIFF28         (added by Change 15.206) now creates variable DURATM     
Sep 30, 1997   instead of DELTATM, and creates variable STARTIME to     
               be consistent with other interval datasets.              
   Thanks to Chris Weston, SAS Institute Cary, USA.                     
                                                                        
Change 15.230  VLF Activity for CATALOGs can be generated in SYSLOG     
TYPEVLFC       with the F CATALOG,REPORT,VLF command that creates the   
Sep 30, 1997   messages IEC359I.  This program will read //SYSLOG and   
               create dataset PDBVLFC.VLFCATLG from those reports and   
               also trends the new and old reports in PDBVLFC.TRNDVLFC. 
               Note that the report values are cumulative: the command  
               must have been issued at least twice to produce data.    
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.229  These IMS Log Processing Assembly programs were revised  
ASMIMSLG       in MXG 14.07, but the revisions did not support archaic  
ASMIMSL5       pre-DFP 3.0 systems, and there was at least one MXG site 
Sep 30, 1997   at that level that encountered an 0C4, so the programs   
               were revised to support the earlier QSAM level.          
   Thanks to Skip Abadie, MBNA, USA.                                    
                                                                        
Change 15.228  IBM APAR OW26297 for JES3 add a new triplet section and  
VMAC26J3       Job Account fields at the end of the purge record (though
Sep 30, 1997   the original APAR text made it look like it was inserted 
               in the middle of the record, it was in fact added at the 
               end).  There was already a 42-byte accounting field in   
               the JES3 purge record, but IBM added the new section to  
               support all Job accounting fields.  MXG previously used  
               the 42-byte field to decode only variable ACCOUNT1, but  
               with the new section, MXG will decode ACCOUNT1-ACCOUNTn  
               (where the number of fields kept is set in your IMACACCT 
               tailoring member).  All of this is relatively unimportant
               since MXG needs the Purge record account fields only for 
               jobs that did not initiate (i.e., JCL errors or cancel   
               before execution); account fields are normally taken from
               the type 30 records.                                     
                                                                        
Change 15.227  IBM APAR OW16975, reported in MXG Newsletter THIRTY-TWO, 
VMAC30         is in error, and when installed causes APPC-using flushed
Sep 30, 1997   steps to fill your log with hex dumps, and causes MXG to 
Dec 13, 1997   delete those step records.  The APPC section was removed 
               by the APAR, but the triplet values were not zeroed.     
               This circumvention will print only one instance message  
               on the log, will skip the non-existent APPC section, but 
               will then output the type 30 record, and when the APAR   
               error is fixed, the circumvention will be passive.       
               Dec 13 update:  APAR OW30802 is the new fixing APAR that 
               will make this circumvention passive.                    
   Thanks to Bill Shanks, BR Business Systems, ENGLAND.                 
                                                                        
Change 15.226  Support for APAR XXnnnnn, which increases the number of  
ANALRMFR       structures in a Coupling Facility from 64 to 255.  The   
VMAC74         SUBSCRIPT OUT OF RANGE error will occur if you install   
Sep 29, 1997   the PTF without this change.  This change also eliminates
               four sets of variables QSTR01-QSTR64, QSIZ01-QSIZ64,     
               QFLG01-QFLG64, and QVER01-QVER64 from dataset TYPE74CF.  
               That information was already stored in TYPE74ST dataset, 
               which has one observation per structure, and those fields
               should not have been kept in TYPE74CF anyhow!            
               Reports in ANALRMFR have not been updated for more than  
               64 structures, and Total Size of Structures Allocated    
               value will be missing until the CF Reports are revised.  
               This change also corrected INPUT STATEMENT EXCEEDED error
               with type 74 subtype 4 records with NRTRIPLT=8.          
               There is still an open problem with IBM for this APAR, as
               pointer R744CDSI is sometimes wrong, pointing beyond the 
               end of the data record; MXG now conditionally inputs the 
               R744CDSI extension fields, pending a fix from IBM.       
   Thanks to Dennis Pugh, BMC Software, USA.                            
                                                                        
Change 15.225  This report for Cached DASD Controllers now will use the 
ANALCACH       PDB.TYPE74CA and/or PDB.CACHE90 dataset, and will not    
Sep 26, 1997   fail if either dataset does not exist.  (TYPE74CA has    
               replaced the old CACHE90 dataset created from CRR.)      
   Thanks to David Ehresman, University of Louisville, USA.             
                                                                        
Change 15.224  Variable TAPEBYTE was not in the KEEPIN= LIST, causing   
DAILYDSN       variable SPACE5 (Non-HSM Tape) to be missing and causing 
Sep 26, 1997   UNINITIALIZED VARIABLE TAPEBYTE message on the log.  The 
               DAILYDSN program is used in JCLDAYDS example to measure  
               the size of all of your datasets (DASD/TAPE/HSM) using   
               DCOLLECT, CA-1, and HSM records.                         
   Thanks to Robert Miles Standish, Dean Witter Trust Company, USA.     
                                                                        
Change 15.223  Some reports may have timestamps shifted right two bytes,
ANALDB2R       causing Authid to be overlaid.  I changed DATETIME16. to 
Sep 26, 1997   DATETIME18. expecting to show all four digits of year,   
               but did not check to see there was space on the line for 
               the two extra positions.  (Worse, DATETIME18 does not    
               print the four digit year, it justs shifts right and then
               prints two digits of year!).  Therefore, change all of   
               the occurrences of DATETIME18. to DATETIME16.  (Note the 
               datetimes printed at the top of the page use DATETIME21.2
               so you will see the four digit year on each page!)       
   Thanks to Brian Hawthorne, Mutual of New York, USA.                  
                                                                        
Change 15.222  MXG 15.04 only.  Catalog Cell 'E7' in TYPE6156 record had
VMAC6156       INPUT STATEMENT EXCEEDED error, because Change 15.166 was
Sep 25, 1997   not correct.  In the block  ELSE IF CLTYPE='E7'X THEN DO;
               delete these two lines after the INPUT statement:        
                 ALICELN    &PIB.2. /*LENGTH OF ALIAS INCLUDING ITSELF*/
                 ALITYPE  $EBCDIC1.                                     
               and then change  ALIRESV $EBCDIC1. to ALIRESV $EBCDIC2.  
   Thanks to Lawrence Jermyn, Fidelity Systems Company, USA.            
                                                                        
Change 15.221  The new ASUMUOW in MXG 15.04 fails with LIBNAME TEMP01   
ASUMUOW        not found.  Test code that should have been removed had  
IMACUOW        the specific reference.  You can change TEMP01.CICSTRAN  
Sep 24, 1997   to CICSTRAN in both places to circumvent.  However, this 
               revision changes the MXG defaults so that                
                 PDB.ASUMUOW will always have zero observations, until  
                 you enable it in member IMACUOW.                       
               I create dataset PDB.ASUMUOW by default in JCLPDB6, but  
               the default sets OPTIONS OBS=0 at the beginning and then 
               resets OBS back to the original value (using VMXGOPTR) at
               the end of member ASUMUOW, so no data will be sorted or  
               merged until you turn it on.  I really think that large  
               CICS and DB2 shops will find PDB.ASUMUOW better than its 
               predecessor PDB.CICS, but it can use lots of CPU & DASD, 
               so I think it safer to make you enable it.  In addition, 
               IMACUOW now externalizes the output of the PROC SORTs so 
               you can send them to tape and save DASD space as well.   
               The options are documented in comments in both members.  
   Thanks to Mike O'Brien, McKesson General Medical, USA.               
                                                                        
Change 15.220 -Support for NTSMF Version 2.1, COMPATIBLE with 15.03 or  
EXNTCNRS       later (MXG 15.03 was required for NTSMF Version 2.0).    
IMACNTSM      -Support for new Object 'Content Replication Service' adds
VMACNTSM       creation of new dataset CONTRPSV.                        
Sep 26, 1997  -Existing dataset CONTNFI (Content Index Filter) has been 
               validated with data, with new CNFINAME instance.         
              -Existing CONTINDX (Content Index) has been validated with
               data, with new CNINNAME instance.                        
              -Existing IMAGE (Image) has been validated with data, with
               two instance variables IMAGNAME and IMAGFILE.            
              -Existing MSEXCHMS (MSExchangeMSIM) object is validated,  
               and will have observations (if you change the misspelling
               in IF UPCASE(OBJECT)='MXEXCHANGEMSIM' from  MXEX.... to  
               MSEX...., even earlier versions of MXG will have obs!).  
              -Many new variables in CMPQxxxx datasets (from COMPAQ)    
               were not in the INFORMAT statement, which would cause    
               their values to be off by a factor or 100.               
              -The _BNTxxxx macros were not defined for all datasets,   
               and not all datasets were in the _SRTPRNL and _SRTPRNV   
               print macros.                                            
              -Member ADOCNTSM's list of datasets and Instance Variables
               has been updated to include recently added objects.      
              -Variables CPUNUM1, FAMILY1, and MANUFAC1 and CPUSPED1 are
               now decoded from the "0.0 configuration record" (new in  
               NTSMF 2.1).                                              
              -The location of the calculation of SMFTIME was relocated 
               so it does not generate "MISSING VALUES" message with 2.1
               data; the value was re-calculated later and was never    
               actually missing.                                        
   Thanks to Jim Quigley, Con Edison, USA.                              
   Thanks to Carmen Vitullo, Boeing, USA.                               
                                                                        
Change 15.219 -In CICINTRV, variables DSGAMXTL, DSGICVSD, DSGICVT, and  
CICINTRV       DSGTL are static values and should not have been DIF()   
VMAC110        (as was DSGTL), and should not have been in SUM= nor     
Sep 22, 1997   MEAN= statements, and are now in the ID= statement.      
               In spite of their mis-location, most of the time they    
               yielded correct values, so the error was overlooked.     
               (Note DSGTL only existed in CICS 3.3 and earlier)        
              -In VMAC110, the new A04 variables in the INPUT statement 
               begining with A04RDINT were all incorrectly labeled, and 
               the two time durations, A04RDINT and A04RDIDL had wrong  
               values with no TIME12.2 format.                          
              -The SKIP=SKIP-220 for archaic CICS 3.1.0 if there were no
               index segments and its INPUT +220 were changed to 218, to
               suppress an "UNEXPECTED DATA" message that, while        
               harmless, could be eliminated.                           
   Thanks to Dan Gilbert, Bergen Brunswig, USA.                         
                                                                        
Change 15.218  Support for CA's IDMS 14.0 (INCOMPATIBLE) splits existing
EXIDMDGB       subtypes 1 and 16, adds new subtype 16 for new dataset   
IMACIDMS       IDMSDBG, and adds variables to IDMSBUF, IDMSINT, IDMSRUS,
VMACIDMS       IDMSTAS, and IMDSTAW.                                    
Sep 22, 1997                                                            
   Thanks to Terry Heim, ECOLAB, USA.                                   
   Thanks to Martin Wieland, Neckermann B.V., THE NETHERLANDS.          
                                                                        
Change 15.217  The default SMF TYPE in all IMAC members is normally the 
IMACDALO       the impossible value of 512 (so that JCLTEST6 does not   
IMACENDV       try to read the wrong record type), but these three IMAC 
IMACSVCC       members had values left over from testing; all are now   
Sep 20, 1997   set to the 512 default value.                            
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.216  DB2 Trace SMF type 102 Subtype 140 INPUT STATEMENT       
VMAC102        EXCEEDED if there was no SQL text in the Audit record.   
Sep 19, 1997   between  NRSQLSEG=CEIL(( ....   and  DO SEGSQLT=1...     
               insert   IF QW0140LL GE 2 THEN                           
               so that the loop is only executed when there's text.     
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.215  IXFP records, MXG 15.02-MXG 15.04 only.  A line was      
VMACICE        dropped by change 15.134, causing zero observations      
Sep 16, 1997   for subtypes 2, 3, and 4 (datasets ICEBRGCH,DV,DR).      
               In the DO group for subtypes 1 thru 4, between the       
               INPUT of ICEVERS and COLLID, insert a line with  +2      
               to skip over the two reserved bytes that were dropped    
               when ICEVERS's input was added by Change 15.133.         
   Thanks to Angela Mulcahey, Summit Bank, USA.                         
                                                                        
Change 15.214  MXG 15.01-MXG 15.04.  Variable PCTMVSBY in TYPE70 is     
ACHAP10        wrong.  The new algorithm used by MXG in Change 15.023   
VMAC7072       should only have been used for Wait Completion = Yes,    
Sep 16, 1997   and although I think it is a better way to look at the   
Sep 20, 1997   MVS busy time for WC=Yes, I decided to revert back to    
               match IBM's number while I do more research on the whole 
               subject of PR/SM, MDF, and MLPF instrumentation.         
              -Member ACHAP10, the MXG Chapter on Processor Utilization 
               has been revised to describe how PR/SM, MDF, and MLPF    
               can be measured, and includes description of how IBM     
               calculates PCTCPUBY and PCTMVSBY and PCTLnBY on their RMF
               CPU Activity and Partition Data Reports.  Numeric values 
               for Dedicated, Shared Wait=Yes, and Shared Wait=No LCPUs 
               are now provided.  This article will be in the next MXG  
               Technical Newsletter and was posted to MXG-L Listserv.   
              -The test IF CPUWAIT GT 0 THEN DO;   ... END;  was removed
               because CPUEFFTM and PCTMVSBY/PCTCPUBY were missing if an
               LPAR was 100% busy in all LCPUS (the case noted was a    
               single LPAR); the test was unneeded because the block of 
               code is already inside the LPAR processing section.      
              -Calculation of PCTCPUBY and PCTMVSBY in TYPE70PR dataset 
               is made only in the TYPE70PR observation for the LPAR in 
               which that MVS System executed, because only that LPAR's 
               TYPE70PR observations knows what ORIGWAIT, the MVS Wait  
               time, was recorded for that LPAR's LCPUs.  They will be  
               missing in TYPE70PR observations for other LPARs in that 
               type 70 record.                                          
              -Added variable NEWWAIT to TYPE70PR.  NEWWAIT contains    
               the "wait" time that was actually added to CPUWAIT for   
               the calculation of CPUACTTM=CPUUPTM-CPUWAITM and for     
               the calculation of PCTCPUBY in TYPE70 dataset.  This new 
               field may be useful to some sites with Dedicated or      
               Wait Completion=Yes to match some RMF calculations.      
   Thanks to Carl Downing, Blue Cross Blue Shield of Minnesota, USA.    
   Thanks to Jan Tits, Amdahl, BELGIUM.                                 
                                                                        
Change 15.213  Support for type 91 SMF record new subtype 21, written by
EXTY9121       SMARTBATCH at data set close for each VSAM or non-VSAM   
IMAC91         data set processed by the Data Accelerator component.    
VMAC91         New MXG dataset TYPE9121 contains a wealth of statistics 
Sep 12, 1997   and activity information for this new component.         
                                                                        
Took real vacation to celebrate Judy and her twin's 50th birthday!      
                                                                        
Change 15.212  Values for R744SSIZ (Structure Size) are now in 4096 byte
VMAC74         units, rather than the 4000 byte unit discussed in Change
Sep  3, 1997   14.328, probably beginning with OS/390 Release 1.2, so   
               the three lines multiplied by 4000 are now by 4096.      
               Note that R744SSIZ rather than R744QSIZ is used by RMF in
               its reports as the allocated structure size.             
   Thanks to Tim VanderHoek, Fidelity Systems Company, USA.             
                                                                        
Change 15.211  Candle's CL-Supersession PTF QLG1073 (Y2K support) sets  
VMACNAF        a value of yyyydddF (instead of 0cyydddF) for SMFSTAMP8  
Sep  4, 1997   fields, causing 1997 dates to be in year 3897!  While    
Sep 26, 1997   Candle's choice is not illegal, SAS's SMFSTAMP8 informat 
               expected IBM's documented century-bit format, so it used 
               that first byte as the number of centuries after 1900.   
               While SAS has agreed to change their SMFSTAMP8 format to 
               support both yyyydddF and 0cyydddF formats, that fix     
               won't be available on all platforms until next year,     
               and as Candle's PTF creates the problem today, all 15    
               internal timestamps in VMACNAF are now protected by:     
                  CENT=FLOOR(YEAR(DATEPART(datetime))/100);             
                  IF CENT GE 38 THEN                                    
                    datetime=datetime-59958230400+(CENT-38)*86400;      
               (The SMFTIME field in byte 3 of Candle's record was      
               not changed by their PTF, so it needed no protection!)   
               Update 26Sep97:  Candle now says that if you put all of  
               these PTFs on: QLS1303,1304,1305,1306,1307,1308,1310 and 
               QLV1465, that their dates will conform to IBM's use of   
               the century bit.                                         
   Thanks to Joe Faska, Depository Trust, USA.                          
                                                                        
Change 15.210  Replaced by Change 15.218.                               
                                                                        
Change 15.209  MXG 15.04 only.  TRNDTALO fails if TREND.TRNDTALO does   
TRNDTALO       not exist in your TREND library.  Add the statement      
Sep  2, 1997   OPTIONS NODSNFERR NOVNFERR;  at the beginning of the     
               member to correct.  Note that if you were previously     
               creating the TRNDTALO member, the new code did not       
               fail, so only first-time users of TRNDTALO got hit.      
               Note also that TRNDTALO requires that ASUMTALO be in     
               your WEEK library, so you will need to update your       
               WEEKBLD to propagate ASUMTALO before you can use the     
               trending in TRNDTALO.                                    
                                                                        
Change 15.208  Cosmetic:  comments   /* _Lxxyyyy OUTPUTS TYPExxxx */    
EXVMADSM       are after each %INCLUDE SOURCLIB(EXxxyyyy);  statement   
VMACNTSM       name the default MXG dataset for each _Lxxyyyy macro, to 
VMAC80A        make the MXG source code documentation, but seven new    
VMAC99         datasets had wrong names or no comment.  I block copy and
VMACSVCC       revise when I can, but sometimes I overlook the comments.
Aug 31, 1997   But Freddie's sophisticated analysis of my source code   
               uncovered seven inconsistencies in MXG 15.04, and I plan 
               to add his QA to my QA before I build the next version!  
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
Change 15.207  CA-1/TMS 5.2 Change 15.199 had one incorrect new variable
VMACTMS5       DEFEXPOO.  The second occurrence in the KEEP, LABEL, and 
Aug 30, 1997   assignment should have been NRESTAPE.                    
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
===Changes thru 15.206 were included in MXG 15.04 dated Sep 01, 1997=== 
===Changes thru 15.206 were published in MXG NEWSLETTER THIRTY-TWO===== 
                                                                        
Change 15.206  NPM dataset NPMINPMT contained accumulated fields that   
DIFF28         were deaccumulated inside VMAC28, but when SMF data was  
TYPE28         sorted before MXG processing, wrong results occurred!    
VMAC28         In addition, not all variables were deaccumulated that   
Aug 28, 1997   should have been.  This change adds new member DIFF28    
               that externally and correctly deaccumulates NPMINPMT.    
               DIFF28 is included by member TYPE28, but if you have     
               added type 28 processing to your BUILDPDB, then you must 
               add the statement   %INCLUDE SOURCLIB(DIFF28);           
               in member EXPDBOUT to properly deaccumulate NPMINPMT.    
   Thanks to Steve Donahue, Blue Cross and Blue Shield of Texas, USA.   
                                                                        
Change 15.205  Alternative CICS Summarization, especially for MRO.      
ANALUOW       -Member ASUMUOW combines all of the pieces of CICS MRO    
ASUMCICX       transaction (i.e., TOR, AOR, and FOR records for the     
ASUMUOW        same Unit-of-Work are combined, and the correct TRANNAME 
IMACCICS       is picked up), and (if the transaction called DB2) also  
TRNDCICX       merges in all of the DB2ACCT records to create dataset   
Aug 28, 1997   PDB.ASUMUOW that gives a complete picture of each CICS   
               unit-of-work.  This revision to ASUMUOW adds CICS wait   
               durations/counts to PDB.ASUMUOW so you can determine the 
               cause of poor CICS reponse time.                         
              -Member ANALUOW is a parameter driven report to examine   
               why CICS transactions were delayed, using PDB.ASUMUOW.   
              -Member ASUMCICX is an alternative summary member, like   
               ASUMCICS to create dataset PDB.CICS, but member ASUMCICX 
               will use dataset PDB.ASUMUOW as its input, and also keeps
               the wait durations/counts.                               
              -Member TRNDCICX is an alternative trending member, like  
               TRNDCICS, but it keeps the wait durations/counts.        
                                                                        
               If you have CICS MRO and/or CICS talking to DB2, you     
               should change the %INCLUDE SOURCLIB(ASUMCICS) in your    
               BUILDPDB job to %INCLUDE SOURCLIB(ASUMUOW,ASUMCICX) so as
               to build both PDB.ASUMUOW and the enhanced PDB.CICS.     
               The JCLPDB6 example has been updated to build both.      
               The example macro _KCICTRN in member IMACCICS that keeps 
               only the variables needed by ASUMCICS has been revised   
               to keep the original ASUMCICS set or the new ASUMCICX    
               set of variables, to reduce the size of CICSTRAN.        
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.204  Tape Capacity Planning graphs based on TREND database    
GRAFTAPE       and MXG ASMTAPES tape allocation and trending records,   
Aug 27, 1997   and also the HSC and LSM data from an STK silo.          
               If you saw Chuck's paper at CMG94, this is the code that 
               generated those graphs.                                  
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.203  Trending of NTSMF's NTINTRV dataset creates summarized   
TRNDNTIN       TREND.TRNDNTIM for long term trending of NTSMF systems   
Aug 27, 1997   with minimal storage required.                           
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.202  Enhanced measurement of Tape Allocation uses the Interval
TRNDTALO       Allocation record created by ASMTAPES at ML-13, MXG 15.02
Aug 27, 1997   or later, so you must have installed ML-13 before you can
               use this enhancement.  The interval record eliminates any
               undercounting of devices still allocated and improves the
               accuracy of tape allocation counting.                    
               TRNDTALO assumes you have created WEEK.ASUMTALO in your  
               WEEKBLD/WEEKBLDT member from your daily PDB.ASUMTALO data
               sets; you will need to add the data step in your weekly. 
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.201  Related members in a way.                                
ASUMCACH       ASUMCACH creates the union of the TYPE74_1 and TYPE74_5  
ANALEMC        data (device level and cache reporter).  This is useful  
EMCRANK        in figuring out problems in the IO subsystem but it will 
EMCMAP         also be part of the "I/O Stimulator" that will generate  
Aug 27, 1997   control cards for Stress Test based on your RMF data.    
                                                                        
               ANALEMC takes the ASUMCACH data and carries it a step    
               closer to the hardware by using a series of formats to   
               map the logical to the physical in an EMC world. It will 
               also do this for Spectris and HDS 7700 boxes but no      
               formats are required. It creates datasets RANK, RAIDVOL, 
               EMCMAP, and VOLUMES.  Each is a slightly different level 
               of summarization except for EMCMAP which is used to apply
               labels to graphs with the annotate facility of SAS/GRAPH.
                                                                        
               EMCRANK and EMCMAP use the output of ANALEMC to build    
               graphs of the performance of EMC boxes. This is a grid   
               8*12 where each box represents on physical SCSI disk     
               on the inside of the box. Each box contains the VOLSER,  
               RANK, and DEVNR of the logical MVS volumes and EMCRANK   
               applies colors to represent IO rates.  EMCMAP leaves all 
               of the boxes empty of everything except text to make the 
               text a little easier to read.  Find the line that says if
               text=:'EM' then color='ORANGE'; This is used to alter the
               color of the text. In this code, volumes that contain no 
               data start with EM in the VOLSER.  Making those volumes  
               ORANGE makes them stand out and is a quick visual        
               indicator of available capacity.                         
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.200  Support for Peregrine's Service Center SMF record creates
EXTYSVCC       new dataset TYPESVCC with one set of variables and two   
IMACSVCC       subtypes, which can be identified by variable SVCCTYPE:  
TYPESVCC         SVCCTYPE  Description                                  
VMACSVCC            1      Service Center Statistics                    
Aug 27, 1997        2      Service Center User Termination              
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.199  Support for CA-1 aka TMS Release 5.2 (COMPATIBLE) adds   
TYPETMS5       new flag variables to both DSNB and Volume records:      
VMACTMS5       Dataset TMSREC:                                          
Aug 25, 1997     Variable  Description                                  
                 ADDLFILS='ADDITIONAL*FILES*EXIST IN*VOLSET?'           
                 COPYCAT ='CREATED*BY*COPYCAT?'                         
                 DEFEXPOO='DEFAULT*EXPDT*USED AT OPEN*OUTPUT?'          
                 DEFEXPOO='NON*RESIDENT*TAPE?'                          
                 DEGAUSSD='TAPE*HAS BEEN*DEGAUSSED?'                    
                 EMVREL  ='RELEASED*BY EXTERNAL VAULT*MANAGER?'         
                 ERASEREQ='DATASET*ERASE*REQUIRED?'                     
                 FILEISCA='FILE*ON OS*CATALOG?'                         
                 SMSEXPIR='EXPIRED*BY SMS*MAX RETENTION?'               
                 VAULTREQ='VAULT*SPECIFIC*REQUEST?'                     
                 VOLACTV ='ACTUAL*VOLSER*IN USE?'                       
               Dataset DSNBREC:                                         
                 Variable  Description                                  
                 DSNBABND='CLOSED* BY ABEND*PROCESS?'                   
                 DSNBDFXU='DEFAULT*EXPDT*USED?'                         
                 DSNBECAT='EXPIRED* BY CATLG*INTERFACE?'                
                 DSNBISCA='FILE IS*ON OS*CATALOG?'                      
                 DSNBLBL ='B1*SECURITY*LABEL?'                          
                 DSNBTMSI='EXPIRED* BY TMS*INTERFACE?'                  
                 DSNBWSCA='FILE WAS*ON OS*CATALOG?'                     
               The Release 5.2 data records show that TMS julian        
               dates in year 2000 are supported.  The 311th day         
               in year 2000 will have julian data of 100311.            
   Thanks to Xiaobo Zhang, Insurance Services Office, Inc, USA.         
                                                                        
Change 15.198  CICS reports were updated to add new data step for CICLDR
ANALCISH       processing to calculate the "average fetch time" where   
Aug 25, 1997   previously the "total fetch time" was printed.           
   Thanks to ???, ???, USA.                                             
                                                                        
Change 15.197  ACF2 dataset ACF2JR did not populate variable ACLFLDVL   
VMACACF2       if ACLARCFL=02x, because that field type had not been    
Aug 24, 1997   previously seen.  The data value is a hex string rather  
               than the EBCDIC characters normally stored in ACLFLDVL,  
               but rather than creating yet another variable for the    
               hex representation, I chose to use ACFLLDVL, but to      
               convert it to the printable-hex value using:             
                 SUBSTR(ACLFLDVL,1,2*ACLFLDLG)=PUT(ACLFLDVL,$HEX100.);  
               so the three-byte data value of '010203'x in the ACF2    
               record will cause ACLFLDVL to contain six bytes 010203   
               as printable characters.                                 
   Thanks to Peter J. Lines, NatWest Bank, ENGLAND.                     
                                                                        
Change 15.196  New utility old-style MACRO _SMFGOOD defined in VMACSMF  
VMACSMF        was needed to read an SMF tape with truncated records at 
Aug 24, 1997   the end of each block followed by a trashed record at the
               start of the next block.  As an example of its use:      
                 MACRO STOPOVER MISSOVER %                              
                 %INCLUDE SOURCLIB(VMACSMF,VMAC80A);                    
                 DATA _VAR80A; _SMFGOOD ; _SMF ; _CDE80A ; RUN;         
               deletes the trashed records and prevents invalid-smftime 
               error messages and hex record dumps from being printed,  
               while the MISSOVER prevents input-statement-exceeded     
               errors from causing stopover on the truncated records.   
               At the same time, variable SMFRECNR is now created in the
               _SMF macro, so it can be added to a _Kxxxyyy macro if you
               need to know which SMF record created an observation.    
               Very few users will need to use these enhancements!      
                                                                        
Change 15.195  Support for ObjectStar 3.0 SMF record.  While the record 
VMACHURN       changes themselves were compatibly made, you must change 
Aug 23, 1997   VMACHURN to read them.  Change IF SMFHVR EQ 02X THEN DO; 
Aug 26, 1997   to read IF SMFHVR LT 02X THEN DO; and MXG will tolerate  
               (i.e., process the records correctly) Version 3.0, but to
               exploit (i.e., pick up the new fields) you will need this
               change.                                                  
               New dataset HURN06 Lock Manager Statistics is created for
                  both subtype 22 (Interval) and subtype 6 (Termination)
                  as both records are identical in structure.           
               New fields were added to existing datasets:              
                 Control Region Start Time  variables HU50CRTM, HU51CRTM
                   HU52CRTM HU60CRTM HU61CRTM HU62CRTM and HU72CRTM are 
                   added to HURN501 HURN511 HURN521 HURN601 HURN611     
                   HURN621 and HURN721 datasets.                        
                 Control Region Session Identifier variables HU60UNQI   
                   HU61UNQI HU62UNQI HU72UNQI are added to HURN602      
                   HURN612 HURN622 and HURN722 datasets.                
   Thanks to Trevor Ede, Bank of New Zealand Ltd, NEW ZEALAND           
   Thanks to Glenn Bowman, Wakefern Food Corporation, USA.              
                                                                        
Change 15.194  The MXG default for MEMSIZE was raised to 64M (from 48M) 
CONFIG         because if you add lots of additional record processing  
Aug 22, 1997   (DMON,ENDV,FOCU,HSM,IDMS,28,NSPY,NTCP,PROS,80A,SASU,     
               STC,SYNC, and X37, for example!), you will need slightly 
               more than 48M of virtual addressability.  Since there is 
               no cost to large virtual storage limit for programs that 
               do not need it, changing the MXG Maximum Default may save
               someone diagnostic time to resolve OUT OF MEMORY errors. 
               The symptoms were that the IEF374I message on SYSLOG had:
                   VIRT = 1572K  SYS = 308K  EXT = 47316K  SYS=10768K   
               the EXT value suggested a 48M limit was set somewhere!   
               Why 64M?  Why not 80M?  No good reason.                  
              -z/OS 1.12 message IEF032I/33I replaced IEF374I/276I.     
   Thanks to Susan Walters, Michelin Tires, USA.                        
                                                                        
Change 15.193  Another invalid '04' Catalog Cell requires protection.   
VMAC6156       Add the IF SKIP GE 2 THEN DO;  and  END; statements      
VMACCTLG       around the two statements to end up with:                
Aug 22, 1997     IF SKIP GE 2 THEN DO;                                  
                   INPUT VOLHKYLN &PIB.2. @;                            
                   SKIP=SKIP-2;                                         
                 END;                                                   
               The '04' cell had nulls for VOLSER, and only had a low   
               key range; the high key range was non-existent.          
   Thanks to Dave Millard, Southern California Edison, USA.             
                                                                        
Change 15.192  Support for HMF SMF record Subtype 11 (DS3 Statistics)   
DIFFHMF        adds new dataset TYPEHMFB, with 44 counter and endpoint  
EXTYHMFB       values for each link (HMFBUSNO) during each polled       
IMACHMF        interval.  Since the HMF counters are accumulated, the   
VMACHMF        dataset TYPEHMFB must be de-accumulated by logic added   
Aug 21, 1997   to DIFFHMF.  Sep 2 update: all non-endpoint counters     
Sep  2, 1997   are protected for wrapping.                              
   Thanks to Anne Robbins, Bank of New York, USA.                       
                                                                        
Change 15.191  ANALDB2R fails with ERROR 31-185 if the SORTBY list did  
ANALDB2R       not contain PLAN.  The error was because variable PACKID 
Aug 19, 1997   was not initialized as character; as long as PLAN was in 
               the SORTBY list, PACKID's definition was picked up by the
               assignment IF ... THEN PACKID=PLAN;  but that statement  
               was not generated when SORTBY did not list PLAN.         
               To correct:  Find   %MACRO PMACC02;   and then find      
               RETAIN PAGENUM; (about 957 lines later) and then insert  
               LENGTH PACKID $18;  after that RETAIN statement.         
   Thanks to John Shuck, SunTrust Companies, USA.                       
                                                                        
Change 15.190  Support for 5 new NTSMF Objects, validation of untested  
ADOCNTSM       objects and some new counters, and utility for Discovery 
EXNTCNME       Records.                                                 
EXNTFULC      -Five new NTSMF Objects create six new datasets:          
EXNTPEP5         Dataset    Object Name                                 
ENNTSNAA         CONECTME   Connect-ME                                  
EXNTSNAC         FULCRUM    Fulcrum Server                              
EXNTWBSS         SNAADAPT   SNA ADAPTER SNAD1c1                         
IMACNTSM         SNACONN    SNA Connections                             
VMACNTSM         WEBPRSRV   WEB Proxy Server Service                    
Aug 19, 1997     PENTP5     PENTIUM   (see next note)                   
Aug 25, 1997  -Two forms of the PENTIUM object exist. For PENTIUM PRO P6
               processors, the record contains the expected 68 fields to
               output in the PENTIUM dataset, but for PENTIUM P5, there 
               there are only 58 fields, with completely different field
               names, so the new PENTP5 dataset is now created from     
               PENTIUM objects with only 58 fields.  Instead of sensible
               variable names, variables PENTP501-PENTP548 are created  
               (its a lot quicker, and I expect little need for these   
               counters); there are only 48 variables because ten of the
               fields are place-holders.                                
               Mark has discovered that for either Pentium object, only 
               two pairs of Pentium counters can be enabled at a time,  
               and the counter values are accumulated so that you will  
               need to subtract adjacent observations to calculate the  
               delta using SAS's DIF() function until MXG provides a    
               de-accumulation member, but this support is probably all 
               that is needed for this hardware-level data.             
              -Five untested NTSMF records have been validated; three   
               have instance names (cannot tell without test data, as   
               the Discovery records do not identify instances):        
                 Dataset    Object Name                    Instance     
                 MSEXCHIP   MSEXCHANGE INTERNET PROTOCOLS  PROTNAME     
                 MSEXCHIS   MSEXCHANGEIS                   3 new vars   
                 MSEXCHMC   MSEACHANGEMTA CONNECTIONS      CONNNAME     
                 MSEXCHPU   MSEXCHANGEIS PUBLIC            35 new vars  
                 NETWSEGM   NETWORK SEGMENT                SEGMNAME     
              -The new utility macro, _UNTDISC, that can be used to     
               print the Discovery records, is defined in VMACNTSM,     
               and comments before the MACRO definition show how to     
               use the utility to find new counters and new objects.    
              -In Microsoft's NT Resource Kit, there is a utility       
               \PerfTool\CntrTool\Cntrlist.exe that will provide detail 
               explain text for all counters; unfortunately it does not 
               always work in decoding new objects and has been known to
               abend, and Microsoft does not support their ResKit, but  
               now you know it is there.                                
   Thanks to Jim Quigley, Consolidated Edison, USA.                     
                                                                        
Change 15.189  Support for new ADSM VM Account Records from VM/ESA.     
IMACVM         New dataset VMADSM matches the TYPE42AD dataset created  
TYPEVM         from type 42 subtype 14 SMF records on OS/390 and MVS.   
VMAC42         While MVS puts the data in one SMF record, VM Accounting,
Aug 15, 1997   forever limited to an 80 byte physical card image record,
               has broken new ground by defining subtype and sequence   
               numbers so that more than 80 bytes can be recorded for an
               account event.  The subtype 1 and subtype 2 of the 'C0'  
               must be found in sequence in the VM Accounting input, or 
               MXG will Delete with Error Message.  Since Multiple User 
               products can create 'C0' VM Accounting Records, the User 
               ID Name of the ADSM Server must be hardcoded in TYPEVM;  
               MXG expects the name to start with DSMSERV or records    
               will not be recognized by MXG as ADSM-created.  The new  
               variable CLSESTYP is now created also in TYPE42AD; that  
               location was a reserved field in original ADSM SMF doc.  
               VM also creates a subtype 3 ADSM record, but I need test 
               data to decode and validate that record.                 
               I took this opportunity to update the VM Accounting      
               Support in MXG; the _KVMxxxx macros defined in IMACACCT  
               are now actually referenced in the TYPEVM Data Statement 
               and labels for the data sets were clarified:             
                VMID   Dataset   Description                            
                01/C1  VMSESSN   Virtual Machine Resource Usage         
                02/C2   none     Dedicated Devices                      
                03/C3   none     Temporary Disk Space                   
                04     VMLOGON   Invalid LOGON Password                 
                05     VMDISK    LINK to Not-Owned Protected Disk       
                06     VMLINK    Invalid LINK Password                  
                07     VMVCNA    SNA/CCS Logoff/Disconnect              
                08     VMLOGOFF  User Logoff/Disconnect/Shutdown/Force  
                09      none     ACNT ALL - ISFC Accounting             
                                 ISFC Initialization ISFI Accounting    
                                 ISFC Conversation Accounting           
                                     ISFS - Conversation Start          
                                     ISFA - Conversation Active         
                                     ISFE - Conversation End            
                                 ISFC Link Statistics ISFL              
                                 ISFC Termination Accounting ISFT       
                0B     VMDEVICE  Virtual Disk in Storage                
                C0     VMADSM    USER=:DSMSERV  ADSM Accounting         
                       VMRSCS    USER=:RSCS     RSCS Accounting         
                       VMSQLxxx  USER=:SQLDBA   SQL Accounting          
                                      VMSQLINI  SQL INIT                
                                      VMSQLSYS  SQL SYSTEM              
                                      VMSQLTRM  SQL TERM                
                                      VMSQLUSR  SQL LOCAL USER          
                                      VMSQLRMT  SQL REMOTE USER         
                       VMUSRDAT  USER=other     USER Data               
                                                                        
               The datasets listed as "none" will be created when test  
               data is provided.  The VM/ESA Account records still do   
               not contain four-digit years (except in new ADSM record) 
               but MXG's Change 15.167 does protect VM Account Records  
               for the year 2000.                                       
               Note: CHANGE 28.157 Added Support for the 09 record.     
   Thanks to Ned Hammond, American Management Systems, USA.             
                                                                        
Change 15.188  OPC 3.1 dataset OPC31 had bad values in some variables   
VMACOPC        because 19 reserved bytes after ETCNAME were not skipped.
Aug 15, 1997  -Insert +19 between ETCNAME and ETCDESC to correct.       
              -Dataset OPC23 only had obs for TRLEVT23='C' (Completed)  
               or 'E' (Error).  Now, events 'S' (Start) and 'X' (Reset) 
               are also output, but date variable TRLDUR23 is nonmissing
               only for the 'C' and 'E' events.                         
              -Invalid OPC29 records have been observed, but are thought
               to be an IBM problem, which is under investigation.      
   Thanks to Randy Shumate, LEXIS-NEXIS, USA.                           
                                                                        
Change 15.187  CMF. Variable C279SSI in dataset CMF27C93 was INPUT as   
VMACCMF        &PIB.2., while variable C279CSSI in dataset CMF27CSC was 
Aug  7, 1997   INPUT as $CHAR2., but both variables are Subsystem ID,   
Aug 28, 1997   and should be the same so they can be MERGED.  Therefore 
               add variable C279SSI to the $HEX4. format list, and      
               change C279SSI &PIB.2.  to C279SSI $CHAR2.               
              -Aug 28: New variable C279DDIC is created by adding the   
               Base address to the Device ID and converting to character
               so that new variable C279DDIC matches CMF27UA1 in the    
               CMF27CSC dataset, because merging datasets CMF27CSC and  
               CSC27C93 must be done BY both SSI and DDI.               
                  C279DDIC=SUBSTR(PUT(INPUT(CMF27CCU,S370FPIB2.)+       
                  INPUT(C279DDI,S370FPIB1.),HEX8.),5,4);                
   Thanks to Neil Ervin, Banc One Services Corporation, USA.            
                                                                        
Change 15.186  STK 4400 SMF records.  STCLMU dataset character variables
VMACSTC        LSBECON1 and LSBECON2 were $CHAR6 fields, but are now    
Aug  6, 1997   replaced with four variables:                            
                  LSBELSM1='PASSTHRU*PORT 1*CONNECTED TO*LSM'           
                  LSBEPAN1='PASSTHRU*PORT 1*CONNECTED TO*PANEL;         
                  LSBELSM2='PASSTHRU*PORT 2*CONNECTED TO*LSM'           
                  LSBEPAN2='PASSTHRU*PORT 2*CONNECTED TO*PANEL'         
   Thanks to Bob Gauthier, American Stores Company, USA.                
   Thanks to Bruce Sloss, PNC Financial Corporation, USA.               
                                                                        
Change 15.185  ACF/VTAM. Type 50 produced zero observations because the 
VMAC50         records are now greater than 78 bytes (although I still  
Aug  6, 1997   can find no documentation of the IBM change). The test   
               LENGTH EQ 78+OFFSMF must be LENGTH GE 78+OFFSMF.  Also,  
               variable NCPSLOWS may be defective, as it has values of  
               zero or 7FFFFFFx (which I am also pursuing with IBM).    
               Note added Sep 30:  It is not possible to distinguish    
               between an XCF MPC Group Record and a non-XCF MPC Group  
               record using ATTCHTYP or VERSNO, but for an XCF MPC      
               Group record, both DEV and BSIZE will be zero, while for 
               a non-XCF MPC Group record, at least one will be nonzero.
   Thanks to Bill Feeney, Hennepin County, USA.                         
                                                                        
Change 15.184  TMON/DB2. Change 15.114 did not properly handle the "DE" 
VMACTMDB       record, which only has part of the standard header.  Also
Aug  6, 1997   the dates input with MMDDYY informat were changed to use 
               &NUM.2 so that VMACTMDB will correctly execute under     
               ASCII systems as well as under MVS.                      
   Thanks to Luc Gariepy, Regie des rentes du Quebec, CANADA            
                                                                        
Change 15.183  Dataset TYPE72GO could have observations OUTPUT that had 
VMAC7072       no resource consumption for that period, because the MXG 
Aug  4, 1997   variable NOACTVTY was not reset to 0 for the second and  
               subsequent periods within a Service Class.  The new test 
               for _I_ GE 2 was added to zero NOACTVTY (which is then   
               used in EXTY72GO to control execution of the OUTPUT):    
                 DO _I_=1 TO NRSCS;                                     
                   IF _I_ GE 2 THEN NOACTVTY=0;                         
                   INPUT @COLSCS                                        
   Thanks to Ove Dall-Hansen, CODAN Insurance, DENMARK.                 
                                                                        
Change 15.182  Variable VELOCITY in TYPE72GO was wrong for service class
VMAC7072       periods with Discretionary or System goals; the value was
Aug  4, 1997   carried forward from prior periods.  Since neither System
               nor Discretionary goals have velocity, the variable is   
               now set missing with:                                    
                 ELSE IF R723CRGF='S' OR R723CRGF='D' THEN DO;          
                   PERFINDX=.;                                          
                 END;                                                   
   Thanks to Brenda Rabinowitz,                                         
                                                                        
Change 15.181  INVALID ARGUMENT TO FUNCTION INPUT in BETA93 SMF record  
VMACBETA       is caused by a value of '*RELOAD*' in the JCTJOBID field 
Aug  4, 1997   from which MXG extracts the job's JES Number JESNR, for  
               the BETA93 RELOAD step.  Adding two question marks:      
                 JESNR=INPUT(SUBSTR(JCTJOBID,4,5), ?? 5.);              
               to the INPUT function supresses the NOTE and the hex dump
               of the input record.  With or without the question-mark  
               modifiers, JESNR will be a missing value.                
   Thanks to Winfried Waldeyer, BHF-Bank Frankfurt, GERMANY.            
                                                                        
Change 15.180  SAS Compiler Error under Windows 95 and Windows NT when  
VMACVMON       old-style macro has text in column 1 is circumvented in  
VMACVMXA       MXG by ensuring a blank is in column one in the MXG code 
VMACXAM        members that worked under MVS but failed under Windows.  
ANALDBTR       This error was seen long ago, when initially testing MXG 
Aug  3, 1997   on ASCII platforms; it showed up now as I began testing  
               of all of MXG under Windows.  The symptom was a SAS error
               message "Variable ACTIVEDSVMAXUS longer than 8 bytes",   
               (even though ACTIVE and DVSMAXUS were on separate source 
               lines), but the variable names are in an old-style macro 
               and the variable name started in column one! Inserting a 
               blank in column eliminates the compiler's confusion in   
               these members previously untested on ASCII platforms.    
                                                                        
Change 15.179 -Boole & Babbage MainView for CICS (was CICS Manager) will
IMACICBB       support the year 2000 in MV for CICS Release 5.2.  Their 
YEAR2000       date yymmdd0F will be changed INCOMPATIBLY to yyyymmdd,  
Aug  1, 1997   so you will need MXG 15.04 or later before you install   
               that release (late 1997?), if you have enabled IMACICBB  
               to process their statistics segments in type 110 SMF     
               records.  MXG tests the 0F byte to determine the format. 
              -Boole & Babbage MainView for IMS (was IMF) will support  
               the year 2000 in Release 3.2, using yyyydddF format in   
               place of 00yydddF, but MXG already supported that format 
               so there was no MXG change to TYPECIMS code.             
              -Boole informed me that CONTROL-D is a New Dimension Co   
               product (although it is marketed by Boole in Europe), so 
               I have updated that product, as well as Boole's products 
               in member YEAR2000.                                      
   Thanks to whoever told Boole marketing about YEAR2000 on www.MXG.com!
                                                                        
Change 15.178  Example macro definitions for _KCICTRN that will keep    
IMACCICS       only CICSTRAN variables that are needed for ASUMCICS or  
Aug  1, 1997   ASUMUOW have been added to member IMACCICS (although they
               are commented out).  See CICS Technical Note in MXG      
               Newsletter THIRTY-TWO or comments in IMACCICS itself.    
   Thanks to Mark Cohen, DTS, ITALY.                                    
                                                                        
Change 15.177 -Typos:  after DDD=MOD(MVLCDATE ... change IF 0 LE DDD to 
VMACEDGS       IF 0 LT DDD.  Remove the second occurrence of MVEXPDT in 
Aug  1, 1997   the FORMAT statement.                                    
              -Logic change.  DFSMS/rmm variables MVEXPDT and MKDELDAT  
               can have value 1999366 as a "never expire" date, but that
               is an invalid SAS date.  MXG's DCOLLECT algorithm is now 
               used for these values, and the date is set to the future 
               date in year 2099 (and the original value is available in
               character variable MVEXPDTO for MVEXPDT, although there  
               is no corresponding character variable for MKDELDAT):    
                 IF DDD GT 366 OR (YY=99 AND DDD GE 365) THEN DO;       
                   MVEXPDT='31DEC2099'D;                                
                 END;                                                   
   Thanks to Peter Young, University of Toronto, CANADA.                
                                                                        
Change 15.176  Invalid Catalog Cell '05'x caused INPUT STATEMENT EXCEED 
VMACCTLG       error.  The cell began at byte 279, with Length of Cell  
VMAC6156       '2E'x (46) bytes, and at byte 284 the count of four-byte 
Aug  1, 1997   segments following is '5C'x (92), so MXG attempted to    
               read 92*4=368 bytes of GAT segments, but there were only 
               40 bytes left in the record.  To circumvent this IBM     
               error, MXG had to add code to validate that the number of
               segments is consistent with the cell length:             
               Change    DO _I_=1 TO GATCNT;                            
               to        IF GATCNG*4 LE SKIP THEN DO _I_=1 TO GATCNT;   
               and after the END; statement for that DO group, insert:  
                  ELSE DO;                                              
                    INPUT +SKIP @;                                      
                    SKIP=0;                                             
                    NB615605+1;                                         
                    IF NB615605=1 THEN DO;                              
                      PUT // ' *** INVALID CATALOG CELL 05 SKIPPED.'/   
                      _N_= SMFTYPE= SYSTEM= JOB= LENTHIS= GATCNT= COL= ;
                      LIST;                                             
                    END;                                                
                  END;                                                  
   Thanks to Shana Bereznay, Southern California Edison, USA            
                                                                        
Change 15.175  CICS formats $MGCICDL and $MGCICDS that decode variables 
FORMATS        LDGDSAIN, SMDDSAIN, SMSDSAIN, and SMTDSAIN printed trash 
Jul 29, 1997   because the syntax 01X= was used (a numeric hex value)   
               instead of the '01'X syntax that is needed for character 
               values.  SAS could not raise an error condition, because 
               (due to legacy considerations) both quoted and unquoted  
               strings are valid syntax.  Adding quotes corrects.       
   Thanks to Larry Gray, Lowe's Companies, Inc, USA.                    
                                                                        
Change 15.174  Using ANALCNCR with an INTERVAL greater than 24 hours    
ANALCNCR       produced valid results, but cause a very large number of 
Jul 29, 1997   unnecessary observations to be created in the work file, 
               because SYNCINTV=YES was set by default.  Now, the large 
               interval value will be recognized and SYNCINTV=NO will be
               forced (and a note to that effect printed on the log).   
   Thanks to Clark Jennings, Reynolds Metals Company, USA.              
                                                                        
Change 15.173  A question on MXG-L concerning how to merge DB2 Trace    
ANALDBTR       records with DB2ACCT and CICSTRAN data has resulted in   
Jul 29, 1997   an new example program in member ANALDBXX.  The example  
               uses ANALDBTR, but an new options, UOWSORT, had to be    
               created in ANALDBTR.  UOWSORT=YES causes variables       
               NETSNAME and UOWTIME to be kept in all dataset pairs     
               created by ANALDBTR, and also causes those variables to  
               be added to the BY list in each sort.  This example will 
               likely become a new option in ANALDB2R in the future,    
               but this working example is provided for use now.        
               Member ANALDBXX removed when ANALDB2R was updated.       
   Thanks to Michael Frey, COMLAB GmbH, GERMANY.                        
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.172  Support for Xerox's XPSM Version 2 (Xerox Print Services 
VMACXPSM       Manager) Host Accounting Record (INCOMPATIBLE).  The new 
ZMACXPSM       record is a complete restructure of the original record, 
Jul 29, 1997   but contains much new and useful information if you are  
               using XPSM.  Among the major additions are:              
                - The record now contains all fields in IBM's type 6    
                  record for PSF, and MXG uses the same variable names  
                  that you know from TYPE6 processing                   
                - Unlike IBM's type 6, the XPSM V2 record contains the  
                  Account Fields from the Job card, plus a "Department  
                  Account", so it is not necessary to merge TYPEXPSM    
                  with type 30 data to charge back XPSM printing, and   
                  you can account for jobs printed after the job purge  
                  record has been created (e.g., output sent to remote  
                  print servers).                                       
                - Repeated segments contains multiple names of Forms,   
                  Overlays, Fonts, Images, Templates, and Colors.       
                  MXG keeps first eight values (three for colors).      
                - Printer setup names JDL and JDE used.                 
                - Remote Server section provides timestamps of begin and
                  end of transmission and begin/end of printing.        
                - MVS Host CPU time (TCB,SRB,RCT,IPT,HPT) are captured. 
                - MVS I/O SSCH counts and spool size for each DASD and  
                  Printer device used are available, although MXG has   
                  only implemented capture of the totals (a dataset for 
                  each DD will be implemented when requested).          
                - CPU of cost of data stream transformation (eg, LCDS to
                  PCL) is captured.                                     
                - Outage and change of state information is provided.   
   Thanks to Dan Kaberon, Hewitt Associates, USA.                       
                                                                        
Change 15.171  HSM dataset DGN's variable DGNDCL was blank because the  
JCLHSM         INPUT DGNDCI should have been INPUT DGNDCL.  Several     
VMXGHSM        non-existent variables were removed from the KEEP= list  
Jul 28, 1997   for datasets MCP and DGN.  The now-nonexistent option    
               DQUOTE was removed from JCLHSM.  The %VMXGHALL macro     
               used in the MXG QA job, was updated so that all of the   
               HSM datasets are created; this accounts for new datasets 
               BCR, BVR, DCL, DCR, DGN, MCB, MCC, MCM, MCP, MCPDGN, and 
               MCT now being listed in member DOCVER.                   
   Thanks to Peter Young, University of Toronto, CANADA.                
                                                                        
Change 15.170  Support for OS/390 Version 2 Release 4.                  
VMAC1415      -TYPE1415: Variables PROGRAM and STEPNAME were added:     
VMAC26J2       (MXG's ANALDSET, which is still needed to correctly de-  
VMAC30         accumulate EXCP counts from 14/15's has always picked up 
EXTY4237       PROGRAM and STEPNAME, but having them directly in these  
IMAC42         records is long overdue!).                               
VMAC71        -TYPE26J2: New workload management section added:         
VMAC7072         JOBMODE0='JOB RAN*IN*MODE=WLM?'                        
VMAC42           JOBMODE1='JOB RAN*BECAUSE*OF  $S J?'                   
VMAC74           SMF26WCL='SERVICE*CLASS AT*EXECUTION'                  
Jul 23, 1997     SMF26WIN='JOB*INDICATORS'                              
                 SMF26WJC='JOB*CLASS'                                   
                 SMF26WOC='ORIGINAL*SERVICE*CLASS'                      
                 SMF26WSE='SCHEDULING*ENVIRONMENT'                      
              -TYPE30: datasets TYPE30_V, TYPE30_4, TYPE30_5 and        
                TYPE30_6 have important new data:                       
                -New DASD-only Connect/Disconnect/Pending time plus     
                 SSCH counts for ASID plus Dependent Enclaves and for   
                 Independent Enclaves (added by OS/390 R1.3).           
                  SMF30AIC='DASD CONNECT*ASID PLUS*DEPENDENT'           
                  SMF30AID='DASD DISCONNECT*ASID PLUS*DEPENDENT'        
                  SMF30AIS='DASD SSCH*ASID PLUS*DEPENDENT'              
                  SMF30AIW='DASD PEND+CU*ASID PLUS*DEPENDENT'           
                  SMF30EIC='DASD CONNECT*INDEPENDENT*ENCLAVES'          
                  SMF30EID='DASD DISCONNECT*INDEPENDENT*ENCLAVES'       
                  SMF30EIS='DASD SSCH*INDEPENDENT*ENCLAVES'             
                  SMF30EIW='DASD PEND+CU*INDEPENDENT*ENCLAVES'          
                -CPU for Dependent Enclaves is recorded:                
                  CPUDETTM='DEPENDENT*ENCLAVE*CPU TIME'                 
                -Residency time in Page-Seconds in ESTORE was added,    
                 but CSTORE residency is not (yet?) provided:           
                  RESESFTM='ESTORE*RESIDENCY*PAGESECS'                  
                -New Scheduling Environment (when WLM owns Initiators   
                 and adds/drains INITs to meet Service Objectives!)     
                 add several important durations and flags:             
                  SMF30HQT='JOB*HOLD*TIME'                              
                  SMF30JQT='JOB*PREPARATION*TIME'                       
                  SMF30PFF='JOB INIT*WAS FORCED*BY OPERATOR?'           
                  SMF30PFL='SCHEDULING*ENVIRONMENT*NAME'                
                  SMF30PFR='SRVCLASS*WAS MODIFIED*DURING*EXECUTION?'    
                  SMF30PRJ='SRVCLASS*WAS MODIFIED*PRIOR TO*INIT?'       
                  SMF30RQT='INELIGIBLE*FOR*EXECUTION*TIME'              
                  SMF30RTR='JOB*HAS*BEEN*RESTARTED?'                    
                  SMF30SQT='ELIGIBLE*FOR*EXECUTION*TIME'                
              -TYPE42: new subtype 9 creates new dataset TYPE4237       
               for every B37/D37/E37 (out of space) ABEND.  The record  
               is useful for tracking these abends, but I have asked    
               for the record to be (optionally) written when datasets  
               are extended (so you could track those jobs/datasets that
               are going to abend before they do!).  Variables are:     
                 DISP    ='DISPOSITION'                                 
                 DSNAME  ='DATA SET NAME'                               
                 DSORG   ='DSORG'                                       
                 JOB     ='JOB NAME*OR*TSO USER'                        
                 LOCLINFO='LOCAL*INSTALLATION*FIELD'                    
                 READTIME='READ-IN*OR LOGON*EVENT'                      
                 S42ABEND='S42FLAGS*B37 OR*D37 OR*E37?'                 
                 S42ADRLH='S42ADRLH*AVERAGE*BLOCK*LENGTH'               
                 S42ASSAT='S42ASSAT*SECONDARY*ALLOCATION*AMOUNT'        
                 S42ASYID='S42ASYID*SYSTEM*ID'                          
                 S42DCNME='S42DCNME*DATA*CLASS*NAME'                    
                 S42MCNME='S42MCNME*MANAGEMENT*CLASS*NAME'              
                 S42NEXT ='S42NEXT*NUMBER OF*EXTENDS*THIS VOL'          
                 S42SCNME='S42SCNME*STORAGE*CLASS*NAME'                 
                 S42TNTRK='S42TNTRK*TOTAL*TRACKS*THIS VOLUME'           
                 S42UCBTP='S42UCBTP*UCB*TYPE'                           
                 STEPNR  ='STEP*NUMBER'                                 
                 VOLSER  ='VOLUME*SERIAL*NUMBER'                        
              -TYPE71: new counts of frames in CSTORE/ESTORE includes   
               available, and low/medium/high impact frames in memory:  
                 CSFRAVMN='SMF71CAM*MIN*CSTORE*FRAMES*AVAILABLE'        
                 CSFRAVMX='SMF71CAX*MAX*CSTORE*FRAMES*AVAILABLE'        
                 CSFRAVAV='SMF71CAA*AVE*CSTORE*FRAMES*AVAILABLE'        
                 CSFRLOMN='SMF71CLM*MIN*CSTORE*LOW IMPACT*FRAMES'       
                 CSFRLOMX='SMF71CLX*MAX*CSTORE*LOW IMPACT*FRAMES'       
                 CSFRLOAV='SMF71CLA*AVE*CSTORE*LOW IMPACT*FRAMES'       
                 CSFRMEMN='SMF71CMM*MIN*CSTORE*MED IMPACT*FRAMES'       
                 CSFRMEMX='SMF71CMX*MAX*CSTORE*MED IMPACT*FRAMES'       
                 CSFRMEAV='SMF71CMA*AVE*CSTORE*MED IMPACT*FRAMES'       
                 CSFRHIMN='SMF71CHM*MIN*CSTORE*HIGH IMPACT*FRAMES'      
                 CSFRHIMX='SMF71CHX*MAX*CSTORE*HIGH IMPACT*FRAMES'      
                 CSFRHIAV='SMF71CHA*AVE*CSTORE*HIGH IMPACT*FRAMES'      
                 ESFRAVMN='SMF71EAM*MIN*ESTORE*FRAMES*AVAILABLE'        
                 ESFRAVMX='SMF71EAX*MAX*ESTORE*FRAMES*AVAILABLE'        
                 ESFRAVAV='SMF71EAA*AVE*ESTORE*FRAMES*AVAILABLE'        
                 ESFRLOMN='SMF71ELM*MIN*ESTORE*LOW IMPACT*FRAMES'       
                 ESFRLOMX='SMF71ELX*MAX*ESTORE*LOW IMPACT*FRAMES'       
                 ESFRLOAV='SMF71ELA*AVE*ESTORE*LOW IMPACT*FRAMES'       
                 ESFRMEAV='SMF71EMM*MIN*ESTORE*MED IMPACT*FRAMES'       
                 ESFRMEMN='SMF71EMX*MAX*ESTORE*MED IMPACT*FRAMES'       
                 ESFRMEMX='SMF71EMA*AVE*ESTORE*MED IMPACT*FRAMES'       
                 ESFRHIMN='SMF71EHM*MIN*ESTORE*HIGH IMPACT*FRAMES'      
                 ESFRHIMX='SMF71EHX*MAX*ESTORE*HIGH IMPACT*FRAMES'      
                 ESFRHIAV='SMF71EHA*AVG*ESTORE*HIGH IMPACT*FRAMES'      
                 Note of Sep 16, 1997:  IBM will not publish the UIC    
                 values that define High, Medium, or Low Impact,        
                 because "the UIC ranges depend on whether the system   
                 is in goal or compatibility mode and several OPT       
                 settings.  These are values that may change in the     
                 future.  The idea of reporting these buckets was       
                 just to get a high level view of how much stress       
                 there is on the system's storage."                     
              -TYPE72: support for WLM Managed Initiators added new     
               total sample count that includes batch queue delays,     
               so the calculation of VALDSAMP now also includes any     
               batch queue delays; batch queue delay is measured as are 
               three components, and the DASD IOS Queue Time is also    
               measured in dataset TYPE72GO:                            
                 PCTDLTDQ='TOTAL*(INCLUDES BATCH)*DELAY*SAMPLES'        
                 PCTEXTSA='TOTAL*EXECUTION*SAMPLES'                     
                 R723CDQT='TOTAL*BATCH*QUEUE*DELAY*TIME'                
                 R723CADT='INELIGIBLE*AFFINITY*DELAY TIME'              
                 R723CIQT='INELIGIBLE*OTHER RESOURCE*DELAY TIME'        
                 R723CCVT='JCL*CONVERSION*DELAY TIME'                   
                 R723CIOT='DASD*IOS*QUEUE TIME'                         
                And dataset TYPE72DL has one new variable:              
                 R723RWNL='STATE WITH*WAIT FOR*NEW LATCH'               
              -TYPE74: Coupling Facility dataset TYPE74CF now has the   
               model, version and level information:                    
                 R744FMOD='COUPLING*FACILITY*MODEL'                     
                 R744FVER='COUPLING*FACILITY*VERSION'                   
                 R744VLVL='COUPLING*FACILITY*LEVEL'                     
               An additional change to BUILDPDB to add the new hold     
               delays (from which TYPRUN=HOLD time can be calculated)   
               will be available in the next version of MXG.            
               Revised, Nov 11, 1998:  Enhancements to System Logger SMF
               type 88 and OAM SMF type 85 records were supported in    
               MXG 16.06, Changes 16.265 and 16.255.                    
                                                                        
Change 15.169  Inconsistencies between MVS and ASCII versions of SAS    
VMACOPC        prevented some MXG members from being executable on the  
VMXGINIT       ASCII platform.  While these members are not likely to   
VMXGVTOC       be used on the ASCII platforms, by making their code     
Jul 22, 1997   transparently execute on all SAS platforms, I can run    
               the MXG QA stream anywhere, so changes were made:        
              -ASCII SAS does not accept RECFM=VBS, and MVS SAS does    
               not accept RECFM=S370VBS, so macro variable VMXGVBS      
               is now defined in member VMXGINIT to allow member        
               VMACOPC to execute.  All other usage of VBS was already  
               protected by other means.                                
              -ASCII SAS does not accept INFILE options CCHHR VTOC so   
               a local %MACRO VMXGCHR is created in VMXGVTOC (even      
               though that is a very archaic member).                   
                                                                        
Change 15.168  No observations in NETSPY dataset NSPYTIC3 because the   
VMACNSPY       logic inside NSPYREC='N' code to identify subtype used   
Jul 22, 1997   either NSPNRECI or NSPNSUBT values, but the value '01'x  
               for NSPNSUBT exists in both Ethernet and TIC3 records, so
               TIC3 observations were erroneously OUTPUT in NSPYETHR.   
               Now, all tests use ONLY variable NSPNRECI, but changing  
                ELSE IF NSPNRECI='06'X OR NSPNSUBT='01'X THEN ..        
                ELSE IF NSPNRECI='06'X THEN ...                         
               will correct the immediate problem.                      
               Also, the last alert in each record was not output in the
               NSPYALRT dataset, and the second and later were corrupted
               because the statement:                                   
                OFFNSPY=OFFNSPY-10;                                     
               that was just before the INCLUDE SOURCLIB(EXNSPYAL);     
               should not have been there and must be deleted.          
   Thanks to Mrs. Silvia Hug, RWG GmbH, GERMANY.                        
   Thanks to Mr. Karl-Heinz Placht, RWG GmbH, GERMANY.                  
                                                                        
Change 15.167  MXG now protects all two-digit YY dates for year 2000.   
IMACICBB       Since IBM and other vendors have not expanded all of the 
TYPEDMS        two-digit YY dates, and since it is likely that some MXG 
TYPEMON8       sites will still be back level on some of those products 
TYPEMONI       that are not year-2000 compliant, and since I could cover
TYPEPDL        for the negligent products, I have extended Change 15.050
TYPETMON       and have added logic to "Window" all dates that are not  
TYPEVM         year-2000 compliant.  Years 00-59 will be set to 20xx    
VMAC28         while years 60-99 will be set to 19xx.                   
VMACCTLD       In some members, this protection was added using:        
VMACIPAC        IF YEAR(DATEPART(datetime)) LE 1959 THEN                
VMACNSM                               datetime=datetime+YEARSECS;       
VMACNSPY       where RETAIN YEARSECS 3155673600; is used to store the   
VMACODS        number of seconds between 1Jan1900 and 1Jan2000.         
VMACOPC        In other cases, the protection was added using:          
VMACQTRT        IF YEAR(date) LE 1959 THEN date=date+YEARDAYS;          
VMACRMDS       where RETAIN YEARDAYS 14610 is used to store the number  
VMACROSC       of days between 1Jan1900 and 1Jan2000.                   
VMACSAR                                                                 
VMACTMDB       Member YEAR2000 has been updated to show which dates     
VMACVMXP       are truly year 2000 compliant (and the APAR which made   
VMACXAM        them so) and to show which dates are not compliant but   
YEAR2000       are now protected by MXG Logic to support the year 2000. 
Jul 20, 1997                                                            
                                                                        
Change 15.166  Support for Catalog Cell 'E7'x ("X" - Alias Cell) is now 
EXCTLGE7       added to VMACCTLG so as to create new dataset CTLGE7 obs 
IMACCTLG       for each alias cell.  In addition, the E7 cell will now  
VMACCTLG       be decoded in the optional logic in VMAC6156 (which only 
VMAC6156       prints catalog cells on the SAS log).                    
Jul 18, 1997                                                            
   Thanks to Michael Ayers, Wyeth Labratories, USA.                     
   Thanks to Brian Cooper, Wyeth Labratories, USA.                      
                                                                        
Change 15.165  Support for new subtype 6 type 99 record creates new data
EXTY99U6       set TYPE99_6, called the "Goal Mode SMF" record by BGS.  
VMAC99         The new subtype contains no new data (everything in it is
Jul 18, 1997   already in other subtypes of the type 99), but the new   
               record compacts the needed data in one subtype so that   
               you can afford to write that subtype 6 record and can    
               supress all other subtypes to reduce data volume.        
                                                                        
Change 15.164  Variable MSGXRST is missing value because the ARRAY and  
TYPEIMSA       the DROP statement must be changed to read:              
Jul 17, 1997      ARRAY CTR{54} CTR01-CTR54 ;                           
                  DROP CTR01-CTR54 I ;                                  
               i.e., change the 53's to 54's in those two lines.        
   Thanks to Kenneth D. Jones, SHL Systemhouse, NOVA SCOTIA.            
                                                                        
Change 15.163  Support for DFSMS 1.4 adds (COMPATIBLY!) new fields:     
VMACDCOL      -Type 'A' - Dataset DCOLCLUS new variables:               
Jul 17, 1997     DCACISZ ='NUMBER OF*BYTES IN*A CI'                     
                 DCACACIC='NUMBER OF*CI-S IN*A CA'                      
              -Type 'V' - Dataset DCOLVOLS new variable:                
                 DCVDPTYP='PHYSICAL*DEVICE*TYPE'                        
              -Type 'M' - Dataset DCOLMIGS new variable:                
                 DCVDPTYP='PHYSICAL*DEVICE*TYPE'                        
              -Type 'B' - Dataset DCOLBKUP new variable:                
                 UBFRVOL ='1ST SOURCE*VOL*OF BACKUP DATA'               
              -Type 'DC' - Dataset DCOLDC                               
                 Fifteen new DDCxxxxx construct variables.              
              -Type 'SG' - Dataset DCOLSG                               
                 Sixty-four status flags decoded & DSG32NAM corrected.  
              -Type 'VL' - Dataset DCOLVL                               
                 Ninety-six status flags decoded & DVL32NAM corrected.  
              -Type 'BC' - Dataset DCOLBC                               
                 Ninety-six status flags decoded & DBC32NAM corrected.  
              -Type 'DR' - Dataset DCOLDR                               
                 Sixty-four status flags decoded.                       
              -Type 'LB' - Dataset DCOLLB                               
                 Sixty-four status flags decoded.                       
                                                                        
Change 15.162  Minor.  Variable CPUSERF wasn not kept, and variable     
RMFINTRV       CPUHPTTM was not FORMATed nor LENGTHed.                  
Jul 16, 1997                                                            
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
                                                                        
Change 15.161  Optional Omegamon/CICS DB2 variables OMBDESCN/OMBDESTM & 
IMACICOB       OMBEXECN/OMBEXETM were not labeled, nor were they kept in
VMAC110        CICSTRAN dataset.                                        
Jul 15, 1997                                                            
   Thanks to Harald Seifert, HUK-Coburg, GERMANY.                       
                                                                        
Change 15.160  ASUMUOW/IMACUOW are enhanced to allow large sites to send
IMACUOW        the temporary sorted output of CICSTRAN/DB2ACCT to a     
ASUMUOW        DDname other than //WORK.  Comments explain how.         
Jul 15, 1997                                                            
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.159  IBM APAR OW13754 documents type 14/15 CRDATE and EXPDT   
YEAR2000       support for year 2000 by allowing those one-byte binary  
Jul 15, 1997   fields to have values 100 thru 255 to correspond to year 
               2000 thru 2155 (giving our descendants the opportunity   
               to make big bucks fixing the "Year 2155" problem).  MXG  
               had assumed this solution, so no MXG code fix is needed. 
               Note that these julian dates will now print at 99363,    
               99364, 99365, 100001, 100002, etc.                       
                                                                        
Change 15.158  RACF type 80 RACFEVNT=22 and 59 are now supported, with  
EXTY8022       new datasets TYPE8022 and TYPE8059.  Segments for DTP for
EXTY8059       RACFTYPE=22, 24, 39, 40, 41, and 44 are now decoded.  New
EXTY8X13       formats $MG080AF and $MG080UA are created by FORMATS.    
EXTY8Y13       FORMAT MG808IA was updated so INTENT/ALLOW value 5 is now
EXTY8X24       decoded, TYPE8010 and TYPE8013 has SECLEVEL added.       
FORMATS        Dataset label for TYPE8018 is now PASSWORD COMMAND.      
IMAC80A        Several KW24xxxx variables were also corrected.          
VMAC80A                                                                 
Jul 14, 1997   For some RACF events, repeats of segments 21, 33, 34, 39,
Aug 24, 1997   40, 41, 42, and 44 are possible, but MXG kept only the   
               last instance.  To repeat variables in the base TYPE80nn 
               or to create new TYPE8xnn dataset(s) depends on how many 
               repeats occur for a specific RACFEVNT; support for repeat
               is added on a case-by-case basis when I receive test data
               with multiple segments.  Thus far, these instances of    
               repeated segments are supported as described:            
                                                                        
              -The many repeats of segment 21 in RACFEVNT=24 (SETROPTS) 
               are supported by observations in new TYPE8X24 data set,  
               keeping JOB READTIME SMFTIME SYSTEM as keys back to the  
               parent TYPE8024 dataset.  The SETROPTS command creates   
               hundreds of repeated segments of questionable utility,   
               so creating an "Extra" dataset will save space.          
              -The second repeat of segment 33 in dataset TYPE8004 is   
               added as new variable RESNAME2 in that dataset.  This    
               is a newname/oldname event, so only a second instance    
               needs to be supported.                                   
              -The six repeats of segment 44 in dataset TYPE8010 are    
               added as variables EV44FLG1-EV44FLG6, SEGNAME1-SEGNAME6, 
               and EV44TXT1-EV44TXT6, if more than 6 are found in the   
               RACFEVNT=10 record, a message will be put on the log.    
               For the other RACFEVNT's (11,12,13,20,21,22) only one    
               segment 44 has been observed, so only one is kept, but   
               a message will be put on the log if more are found.      
              -The many repeats of segments 40 and 41 in TYPE8013 create
               new dataset TYPE8X13 for segment 40's (maximum of 20 has 
               been observed) and new dataset TYPE8Y13 for segment 41's 
               (maximum of 4 has been observed).                        
   Thanks to Peter J. Lines, NatWest Bank, ENGLAND.                     
   Thanks to Len Rugen, University of Missouri-Columbia, USA.           
   Thanks to Joe Faska, Depository Trust, USA.                          
                                                                        
Change 15.157  Support for Shared Medical Services CICS application's   
IMACCICS       OASMON (SMS Online Architecture System) journal segments 
IMACICSM       creates new dataset CICSSMED.  Observations are created  
VMAC110        when records are found, with no user action required.    
EXCICSME       CICSSMED contains the OAS stack or program name and the  
Jul 11, 1997   response time in type 110 subtype 0 SMF records without  
               having to enable CICSTRAN monitoring in your MCT.        
   Thanks to Kristyann Manske, University of Wisconsin-Milwaukee, USA.  
   Thanks to Kevin Hurst, Shared Medical Systems, USA.                  
                                                                        
Change 15.156  Variable DEVNR is now added to dataset TYPE74CA and is   
VMAC74         equal to DEVN.  The DEVN spelling was kept from the old  
Jul 11, 1997   CACHE90 predecessor dataset so your old reports would    
               run from TYPE74CA, but DEVNR is the more common name in  
               all other MXG datasets, and is the variable name to use. 
   Thanks to MH, Allied Irish Bank, IRELAND.                            
                                                                        
Change 15.155  Cosmetic.  Duplicate label statements were deleted in the
DOC            members VMAC102, VMAC110, VMACAPAF, VMACCTLG, VMACHPSU,  
Jul 10, 1997   VMACHPUX, VMACMWSU, VMACMWUX, VMACODS, VMACQAPM,         
               VMACTPX, and VMACXAM.                                    
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
Change 15.154  Archaic members VMXGVTOC and VMXGVTOF did not create the 
VMXGVTOC       ZDATE variable in datasets INFO and VTOCINFO, but now the
VMXGVTOF       variables are created.  Both members were effectively    
Jul 10, 1997   replaced by DCOLLECT: see TYPEDCOL/JCLDAYDS, although    
               the archaic members are still useful, especially if you  
               need to know the physical location of extents, since the 
               DCOLLECT records only contain total sizes of datasets.   
   Thanks to Mark Zelden, CIBER Network Services, Inc, USA.             
                                                                        
Change 15.153  Cosmetic.  The LABELs for LPAR variables are now grouped 
ASUM70PR       by LPAR number, so all variables for LPAR 0 are together 
Jul  9, 1997   for ease in viewing; the global CPU and Percentages are  
               also grouped together, as the 1st variables in ASUM70PR. 
   Thanks to Jean Quinkert, Inland Steel, USA.                          
                                                                        
Change 15.152  Formats $MGHEX2H, $MGHEX4H, and $MGHEX8H are added to    
FORMATS        MXG to print hex character variables's blank values as   
Jun 29, 1997   blanks instead of '40's.  See MXG Tech Note, NL 32.      
                                                                        
===Changes thru 15.151 were included in MXG 15.03 dated Jun 30, 1997=== 
                                                                        
Change 15.151  Installation tailoring code that defines your SHIFT value
IMACSHFT       has added an example of a table of holiday's dates that  
Jun 29, 1997   can be used to change Prime/Non-Prime Shift observations 
               to Weekend Shift, if that is what your manager says to   
               do because the numbers are skewed.  (Personally, I prefer
               to leave the shift asis, and observe the week-to-week    
               difference between weeks with holidays and weeks without,
               but MXG is all about freedom and doing it your way!)     
               The example is commented out, so this change did not     
               really change anything except comments in IMACSHFT.      
   Thanks to Mark Zelden, CIBER Network Services, Inc, USA.             
                                                                        
Change 15.150  INPUT STATEMENT EXCEEDED with Omegamon VTAM 200 IRNUM=12 
VMACOMVT       record; variables ON12OQ, ON12SP, and ON12SS must be     
Jun 28, 1997   INPUT as &PIB.4. instead of &PIB.8., and variable ON12DX 
               must be INPUT as $EBCDIC4. instead of &PIB.8.  This is   
               the first instance of anyone processing this subtype.    
   Thanks to Rich Anderson, SAS Institute Cary, USA.                    
                                                                        
Change 15.149  MXG 15.03 corrections uncovered in final final tests:    
TESTWWW       -Step TESTOTHR of JCLTEST6 fails because of the extra     
DIFFDB2        close-parenthesis in the DATA statement in member TESTWWW
TRND72GO       (twice I caught this and thought I had fixed it!).       
NEWSLTRS      -"UNINITIALIZED VARIABLE BHHITRAT" in building DB2STATB;  
EXNTCMBU       BPHITRAT was spelled BHHITRAT in one LABEL statement in  
IMACEXCL       member DIFFDB2, causing variable BPHITRAT to be created  
Jun 28, 1997   without a label. See Change 15.xxx.                      
              -TRND72GO statement LENGTH SERVICE 8 MSOUNITS; caused a   
               very strange %MACRO compiler error; but the correct      
               statement should be LENGTH SERVICE MSOUNITS 8;           
              -Four Thousand lines were deleted from member NEWSLTRS;   
               The text of changes in the Change Log in Newsletters     
               TWENTY-SEVEN and TWENTY-EIGHT should have been removed   
               from member NEWSLTRS, as that text is kept in member     
               CHANGESS, and a redundant copy is not needed!            
              -Comment in EXNTCMBU changed to CMPQCMBU vice CMPQBUSU.   
              -Comments in IMACEXCL were clarified extensively.         
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
===Changes thru 15.148 were included in MXG 15.03 dated Jun 26, 1997=== 
                                                                        
Change 15.148  Omegamon BSC data had incorrect GMTOFFTM calculated;  The
IMACICOC       variable OMGMTCHR was truncated to only one byte because 
Jun 26, 1997   it was in the INFORMAT ... $NOTRAN. statement; it should 
               be removed from that INFORMAT statement.                 
   Thanks to Dale Wiles, Perdue Farms, USA.                             
                                                                        
Change 15.147  NTSMF Version 2.0.d requires MXG 15.03 dated Jun 26, or  
VMACNTSM       at least MXG 15.02 plus this change.  MXG coding errors  
Jun 26, 1997   will cause error messages "UNEXPECTED INSTANCE FIELDS" or
               INVALID DATA FOR MO IN LINE .... and/or STOPOVER ABEND.  
              -The LENGTH statement   VERSION     $4.  must be changed  
                                 to   VERSION     $5.                   
              -The two tests for Reduced or Extended Header must be     
               changed to read:                                         
               IF VERSION GE : '2.1' THEN INPUT     /*REDUCED HEADER*/  
               and                                                      
               IF '2' LE : VERSION LT : '2.1' THEN INPUT /*EXTENDED*/   
               instead of the tests for '2.0.d' and LE '2.0.c'.         
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.146  IBM Item RTA000099957 (see DB2 Technical Note 2 in NL 32)
DIFFDB2        states that the calculation of Buffer Pool Hit Ratio     
ANALDB2R       is (QBSTGET-(QBSTSIO+QBSTDPP+QBSTLPP+QBSTSPP))/QBSTGET;  
Jun 26, 1997   whereas MXG used QBSTRIO instead of QBSTSIO in ANALDB2R. 
               I have added variable BPHITRAT to the DB2STATB dataset,  
               and variables B1HITRAT-B4HITRAT to the summary DB2STATS  
               dataset.  I expect to alter ANALDB2R but want to verify  
               first (and its an extensive change).  See the discussion 
               of why you can get negative values for Hit Ratio in DB2  
               Technical Note in Newsletter THIRTY-TWO.                 
                                                                        
===Changes thru 15.145 were included in MXG 15.03 dated Jun 25, 1997=== 
                                                                        
Change 15.145  Minor cosmetic changes were made to TRND72GO (Labels, and
TRND72GO       DROPs), and 3 documentation-only members: ACHAP99, DOCVER
Jun 25, 1997   and DOCVER15 were updated with 15.03 dataset contents,   
               and counts in AAAAAAAA & COPYRITE now are for the real   
               MXG 15.03 dated Jun 25, 1997.  Only ten tapes to trusted 
               sites carried the Jun 24, 1997 date.                     
                                                                        
===Changes thru 15.144 were included in MXG 15.03 dated Jun 24, 1997=== 
                                                                        
Change 15.144  TYPERDS records created 0 observations; these corrections
VMACRDS        were required: INPUT of H15FTP is &PIB.2. vice &PIB.4.,  
Jun 24, 1997   the INPUT of H15HSQ is &PIB.4. vice &PIB.2., and the     
               test IF H15FOS+H15FL GT ... must be changed to           
               IF H15FOS+H15FL-1 GT ....                                
   Thanks to Shana Bereznay, Southern California Edison, USA.           
                                                                        
Change 15.143  This change was NOT made.  After planning the change and 
BUILDPDB       writing the change text, I realized I could not make the 
BUILDPD3       change as described without a negative impact on existing
BUILD005       MXG BUILDPDB/BUILDPD3 users:  BUILDPDB deletes the STEPS 
BUIL3005       dataset from WORK as soon as PDB.STEPS is created (so its
Jun 24, 1997   workspace can be reused), but keeping WORK.STEPS would   
               require more WORK space - an existing daily job could    
               ABEND, needing more //WORK space, if I made the change.  
               I will revise the change and revise its description when 
               I can figure out how to meet IT Service Vision's request 
               without impact on existing MXG BUILDPDB jobs.            
                                                                        
               For IT Service Vision.  After MXG's BUILDPDB logic has   
               created the PDB.STEPS dataset, SAS's IT Service Vision   
               uses the WORK.STEPS dataset left in the WORK file.  But  
               then MXG logic to create PDB.SPUNJOBS replaces the real  
               WORK.STEPS with only the spun steps, because I reuse the 
               _PDBSUM macro that is defined in IMACPDB.  I considered  
               changing that macro in IMACPDB to use a symbolic for its 
               output dataset, but that implementation would have caused
               incompatibility for any user that had tailored IMACPDB!  
                                                                        
               Instead, by adding PROC DATASETS to rename WORK datasets:
                  PROC DATASETS NOLIST; CHANGE STEPS=REALSTEP;          
                  %INCLUDE SOURCLIB(SPUNJOBS);                          
                  PROC DATASETS NOLIST; CHANGE STEPS=SPUNSTEPS;         
                  PROC DATASETS NOLIST; CHANGE REALSTEP=STEPS;          
               both WORK.STEPS and WORK.SPUNSTEP will now exist after   
               BUILDPDB runs.  By making this change in MXG, IT Service 
               Vision installers will have one less option to tailor.   
                                                                        
               Again, this change was NOT made.  These are notes only,  
               that will likely be revised in the future.               
                                                                        
Change 15.142  New exit EXPDB30V is added to the BUILDPDB/BUILDPD3 logic
EXPDB30V       to allow tailoring of the PDB.SMFINTRV after TYPE30_V has
BUILDPDB       been merged with the Accounting Information.  While the  
BUILDPD3       IMACINTV exit can be used to tailor TYPE30_V (which      
BUILD005       becomes PDB.SMFINTRV), the accounting fields do not exist
BUIL3005       when IMACINTV is invoked, so the new exit allows for     
Jun 23, 1997   more flexible tailoring.                                 
   Thanks to Diane Eppestine, Southwestern Bell, USA.                   
                                                                        
Change 15.141  ASMTAPES ML-14 populates fields in the Tape Mount record 
ASMTAPES       (COMPATIBLY) and provides some enhancements to the AR    
Jun 23, 1997   mode code to prevent the S0C4 abends with swapped out    
               address spaces.  It does not completely conceal the S0C4 
               abends (that is still planned) but this should improve   
               the situation significantly.                             
               Change 15.110 describes the corresponding changes to the 
               VMACTMNT member to process the newly populated fields,   
               but as the record format was not changed by the monitor, 
               earlier versions of MXG can read the ML-14-created SMF   
               records compatible.  You will want to use VMACTMNT from  
               MXG 15.03 or later to exploit and decode the new fields: 
                  The ALOCSTRT is of value when working with tape mounts
                  for DFHSM where some DDNAMEs (eg., RESIN1, RESIN2,...)
                  are re-used many times (dynamically allocated) within 
                  one (long-running) step.  The DDNAME is of value when 
                  working with tape mounts for DFHSM were some devices  
                  are allocated multiple times with different DDNAMEs   
                  within a step.                                        
               Mark also provided corrections for truncation of JESNR to
               four digits in the mount record processing; he found that
               the ASMTAPES logic did not replace ALCSTIME with ALISTIME
               for INTERVAL records cut after a day boundary has been   
               crossed; he provided his ASM and SAS code to to add the  
               above fields; and he found a nit in one series of tests! 
               Mark is a fine example of an MXG CodeShark!              
   Thanks to Mark Keimig, VF Information Technology Services Inc, USA.  
                                                                        
Change 15.140  Support for new fields in the DFSMSrmm TYPEEDGR extracts 
FORMATS        that were COMPATIBLY added at some time in the past.     
VMACEDGR       Dataset EDGRDEXT has new variables:                      
Jun 23, 1997    RDABEND  RDCAT    RDCRTJBN RDDCNAME RDDDNAME RDDSSIZE   
Jun 26, 1997    RDLABNO  RDMDMVID RDRETDAT RDSCNAME RDSGNAME RDSTEPNM   
                RDVRSJBN RDVRSNAM RDVRSR   RDVRSTYP                     
               and new format $MGEDGRT is added to member FORMATS.      
               Dataset EDGRSEXT has new variable RSBMEDN.               
               Dataset EDGRVEXT has new variables:                      
                 RVABEND  RVACTERA RVACTINI RVACTNOT RVACTREP RVACTRET  
                 RVACTSCR RVBMEDN  RVDSNREC RVHOMTYP RVLUDEV  RVMVMODE  
                 RVNEXTYP RVNLOC   RVOBMEDN                             
               27Jun97: Variables RVNVOL RVNPVOL and RVMDMVID were      
               labelled and added to KEEP for EDGRVEXT dataset.         
   Thanks to Sam Bass, McLane Co., USA.                                 
                                                                        
Change 15.139  When Landmark maintenance TT00032 was applied after the  
TYPETMON       March cum tape was installed (to fix a Landmark 0C4 in   
TYPEMON8       their dump program), the dump program creates a garbage  
Jun 23, 1997   first record, causing MXG to USER ABEND 1099.  The bad   
               record can be deleted by changing the test for dictionary
               record deletion to include this garbage record:          
                 IF TMMDREC='DD' OR (TMMDPROD='00'X AND TMMDREC='0081'X)
                   THEN DELETE;                                         
   Thanks to Marcia Ketchersid, Price Waterhouse LLP, USA.              
                                                                        
Change 15.138  Report Performance Groups or Reporting Classes now CAN be
IMACWORK       used in member IMACWORK to define workloads in dataset   
RMFINTRV       PDB.RMFINTRV.  This redesign separately sums the Control 
Jun 22, 1997   Performance Groups (Compat Mode) or the Service Classes  
               (Goal Mode) into the existing variable CPUTM, and then   
               sums all of the CPU times from your workload definitions 
               into new variable CPU72TM.  If CPU72TM does not exactly  
               match CPUTM, then either you have double accounting      
               (CPU72TM GT CPUTM), or you have failed to map all of your
               workloads in your IMACWORK logic (CPUTM GT CPU72TM); MXG 
               will print an error message on the SAS log if the times  
               do not match.  The new design relocated the DELETE logic 
               from member RMFINTRV into the revised IMACWORK (since you
               will have to change that delete logic if you want to use 
               RPGNs or Reporting Classes in your workload definitions),
               but you do not have to change your IMACWORK member until 
               you want to use the new facility.  The new RMFINTRV will 
               detect that you are still using an "old" IMACWORK member,
               and will continue to delete Report Performance Groups and
               Reporting Classes until it detects you are using the new 
               IMACWORK member. Thus this change is compatibly made!    
               The optional code to directly read SMF records that is   
               commented out in RMFINTRV was updated to match BUILDPDB. 
                                                                        
Change 15.137  Pre-15.03-QA job found missing labels for variables in   
VMACSTRS       these members.                                           
TRNDDB2S                                                                
VMACTMDB                                                                
VMACLMS                                                                 
TYPEIMS                                                                 
ASUMDB2A                                                                
ASUMDB2B                                                                
Jun 22, 1997                                                            
                                                                        
Change 15.136  This member for reading Web Proxy logs in Common Log     
TYPEWWW        Format was revised to conform to MXG style (LABELs,      
Jun 22, 1997   FORMATS, LENGTH, and name changes of temporary fields,   
               and some statements were consolidated.  Variable RDRTS   
               was renamed WWWRDRTS to avoid name conflict.             
                                                                        
Change 15.135  Trending for Workload Manager Goal Mode Service Class    
TRND72GO       dataset TYPE72GO into TREND.TRND72GO now exists, in      
Jun 20, 1997   this preliminary version.  A revision that will map your 
Jun 25, 1997   old TRND72 Performance Group data into the new TRND72GO  
               is planned so you can track before/after Goal Mode.      
               Jun 25 note: Cosmetic revisions (LABELs, DROPs) added    
               after first (Jun 24) MXG 15.03 was created.              
   Thanks to Mike Billy, Banc One, USA.                                 
                                                                        
Change 15.134  Support for IXFP (Iceberg/IBM RVA) new subtype 6 and 7   
EXICEDDS       creates three new datasets:                              
EXICESNP         Subtype   Dataset     Description                      
EXICEUTL            6      ICEBRGSN    SNAPSHOT - EXTENTS SNAPPED       
IMACICE             6      ICEBRGDD    SNAPSHOT - DDSR EXTENTS          
VMACICE             7      ICEBRGUT    Space Utilization                
Jun 19, 1997   Note that APAR OW25126 corrects errors in subtype 7 in   
Mar 30, 1998   sites when Snapshot microcode is installed on an RVA     
               (RAMAC Virtual Array) subsystem.  Put its PTF on!        
   ===>>>      Text updated March 30, 1998.  This change created an     
               INCOMPATIBILITY in dataset ICEBRGDE.  Before this change,
               variable ICEVERS was a numeric and stored in 4 bytes, but
               this change (in MXG 15.04) changed ICEVERS to character  
               of length one in dataset ICEBRGDE, and then created new  
               new variable ICEVERSN as a numeric stored in 4 bytes in  
               datasets ICEBRGSN and ICEBRGDD.  In retrospect, exactly  
               why I did it this way is unclear, but I suggest for now, 
               simply drop the variable ICEVERS from ICEBRGDE, since it 
               really is not needed to be kept (it's a record version,  
               but I think there's only been one and it's always a 1?). 
               Edit member IMACICE and replace the MACRO _KICEDEL %     
               null definition with                                     
                MACRO _KICEDEL DROP=ICEVERS %                           
               to drop the variable from dataset ICEBRGDE to avoid the  
               conflict.  I think ITSV and SAS/CPE can tolerate the     
               absence of ICEVERS better than its conflicting presence. 
               This is a preliminary answer, and will be updated if it  
               does not resolve the conflict.                           
   Thanks to Dan Almagro, Automobile Club of Southern California, USA.  
   Thanks to Ken Williams, Sun Life of Canada, ENGLAND.                 
                                                                        
Change 15.133  In sysplex, timestamps converted from "GMT" to "LOCAL"   
VMAC30         were off by the number of "leap seconds", currently 20.  
VMAC110        These "GMT" time values are actually "Absolute" values   
VMACDB2        that include leap seconds; MXG erroneously "floored" the 
Jun 18, 1997   delta value to get only the GMT offset hours to convert  
               "GMT" to "Local".  Now, MXG keeps the full delta between 
               "Absolute" and "Local" to properly convert to local; if  
               the GMT offset value itself is not exact, it shows the   
               number of leap seconds in your system (CVTLOS).          
                 Records    GMT Offset           Comment                
                  30's       SMF30IST-INTBTIME  Calculated, leap seconds
                  42 st 6    S42JDGMO           Provided, leap seconds  
                  72         GMTOFFTM           Provided, leap seconds  
                 100-102     SMFTIME-THISSTCK   Calculated, leap seconds
                 110         MCTMNTAD           Provided, leap seconds  
               Unless you were comparing events with your wrist watch,  
               you might not have noticed this 20 second error in the   
               timestamps, but see the discussion in MVS Technical Notes
               in Newsletter THIRTY-TWO for synchronization impact.     
                                                                        
               In addition, this change now converts SYNCTIME to local  
               time in type 30; it was already converted from Absolute  
               to local in RMF datasets, so now it is consistent!       
                                                                        
Change 15.132  MXG 15.01 or MXG 15.02 cosmetic errors.  TESTOTHR brings 
VMXGHSM        TYPEWWW in, but the FILENAME statement causes dataset not
TYPEWWW        found under MVS, so it was commented out.  Uninitialized 
Jun 18, 1997   variable MCTFLG3 message was corrected by spelling it as 
               MCTFLGS in the LABEL statement.                          
   Thanks to James McCullough, Economical Mutual Insurance Co., USA.    
                                                                        
Change 15.132A DB2 Trace dataset T102S106 was not correct for new fields
VMAC102        added to QWP4 section in DB2 3.1, 4.1, and 5.1.  The new 
Jun 17, 1997   fields include MXG-constructed QWSU_SEC Service Unit per 
               CPU-Second value of the machine on which this DB2 Subsys 
               is executing!                                            
   Thanks to Jon Fritz, Levi Strauss & Co., USA.                        
                                                                        
Change 15.130  Variable SMF94ETO existed in MXG 14.14 but did not exist 
VMAC94         with MXG 15.01 or 15.02, while variable SMF94EPM had the 
Jun 17, 1997   TOTAL*EJECTS but was labeled POST*EJECTS.  The real IBM  
               documentation now shows that only SMF94ETO should exist  
               and is the TOTAL*EJECTS, so MXG variables are no longer  
               created.                                                 
   Thanks to Robert Miles Standish, Dean Witter Trust Company, USA.     
                                                                        
Change 15.129  Label for DB2 QBSTDMC and QBnTDMC variables is now       
VMACDB2        QBSTDMC='DATA MANAGER*THRESHOLD*REACHED'.                
Jun 17, 1997                                                            
   Thanks to Joseph Fordham, UPS, USA.                                  
                                                                        
Change 15.128  Dataset TYPE116 MQ Series variable QWHCTNO is now labeled
VMAC116        QWHCTNO='CICS*THREAD*IDENTIFICATION*ADDRESS' instead of  
Jun 17, 1997   Thread Number, as IBM now explains it is a control block 
               address of the thread, so '004dF3D4'x is a valid value.  
               The address can be reused, so it is not a unique value.  
   Thanks to Helmut Roese, COM Gmbh, GERMANY.                           
                                                                        
Change 15.127  AS/400 variable AS400SYN is missing if length of SYSTEM  
VMACQAPM       is less than 8 characters.  The original logic is now:   
Jun 16, 1997      ELSE IF GKEY=' S' THEN DO;                            
                    LENSYS=MIN(LENGTH-6,8);                             
                    INPUT @7  GDESS   $VARYING8.  LENSYS @;             
                    AS400SYN=GDESS;                                     
                    CALL SYMPUT('AS400SY',AS400SYN);                    
                  END;                                                  
   Thanks to Len Marchant, Coca Cola Enterprises, USA.                  
                                                                        
Change 15.126  Counting the Average and Maximum Logged On TSO Users each
ANALCNCR       15 minutes (using PDB.JOBS TSO Session records) is done  
Jun 15, 1997   in a new example in the comments in member %ANALCNCR.    
   Thanks to Dan Gilbert, Bergen Brunswig, USA.                         
                                                                        
Change 15.125  The detection of VIO was based solely on DEVNR='7FFF'x   
VMACUCB        but as this could now be a legitimate device address with
Jun 15, 1997   4-digit UCBs, the test for VIO in VMACUCB was changed to 
               require DEVCLASS='00'x also.  For type 30 DD segments,   
               the DEVCLASS for VIO is zero, but in type 14/15 records, 
               the DEVCLASS is whatever device was installation defined 
               for VIO space calculations.  Fortunately, there is a bit 
               set in type 14/15 records for VIO, which MXG uses to set 
               DEVICE='VIO' even though DEVCLASS is non-zero.           
                                                                        
Change 15.124  Support for APAR OW25263 adds variables JFCTDSI1 (bits   
VMAC1415       for 128 track mode, "1/2 inch/320 meter particle media", 
Jun 15, 1997   and JFCTDSI2 (bits for Compaction=YES) for 3590's.       
                                                                        
Change 15.123  Comments were revised to describe IMACKEEP as archaic;   
IMACKEEP       its function was replaced by the MXG Exit Facility that  
Jun 15, 1997   is described in Change 10.175.                           
   Thanks to Thierry Van Moer, Comparex Information Systems, BELGIUM.   
                                                                        
Change 15.122  Label for variable R744SCN should have been spelled      
VMAC74         CONTENTIONS.                                             
Jun 15, 1997                                                            
   Thanks to Bob Gauthier, American Stores Company, USA.                
                                                                        
Change 15.121  DB2 Trace IFCID=125.  Variables QW0125NR and QW0125RI are
FORMATS        now INPUT as "&IB.4." instead of "&PIB.4." and formats   
VMAC102        MGD125N and MGD125R decode their negative values:        
Jun 15, 1997      VALUE  MGD125N                                        
                   -2  = '-2:NO STG OR MAX EXCEEDED'                    
                  ;                                                     
                  VALUE  MGD125R                                        
                   -1  = '-1:RETRIEVE NOT ATTEMPTED'                    
                   -2  = '-2:NO STG AVAILABLE'                          
                   -3  = '-3:NUM RIDS EXCEEDED MAX LIMIT'               
                  ;                                                     
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.                
   Thanks to Harmuth Beckmann, Karstat AG, GERMANY.                     
                                                                        
Change 15.120  Change 14.300 (which only affected old RMDS 1.3 and 1.4) 
VMACRMDS       was not made as documented, causing variables RMDSARN and
Jun 12, 1997   RMDSARI to be missing; the change is now made!           
   Thanks to Steve Colio, CIGNA Corp, USA.                              
                                                                        
Change 15.119  You cannot use Tandem's ftp program to upload Measure's  
ADOCTAND       "Structured" data files because Tandem's ftp sends the   
UTANDSTR       entire file including header, data records, and trailer. 
Jun 17, 1997      Products like BCOM and Connect Direct do understand   
                  Tandem's structured files and will send only the data 
                  records, so they don't have this problem!             
               If you are stuck with Tandem's ftp, you will have to     
               convert the Structured file into an Unstructured file    
               and then you can use their ftp to upload that data.      
               Member ADOCTAND has been updated with a Tandem-supplied  
               example that will create an unstructured file from the   
               structured MEASCOM data files using Tandem utilities.    
                  In addition, although I hope you never need it, member
                  UTANDSTR will create Unstructured Measure files from  
                  Structured ones that have already been shipped to MVS.
                  You will have to supply the LRECL of each file in the 
                  program, and will have to EDIT the dataset names, and 
                  you must use RECFM=FB and LRECL=4096 when you upload  
                  their structured file with their ftp.                 
               If Tandem ever changes their ftp program to recognize    
               their own records, the double processing can go away.    
   Thanks to Tim Crocker, AT&T UCS, USA.                                
   Thanks to Jack Driscoll, Tandem, USA.                                
                                                                        
Change 15.118  TYPE94 record without APAR OW27369 caused INVALID AUDIT  
VMAC94         SECTION error; the test IF SMF94SDL GE 76 THEN INPUT must
Jun  6, 1997   be changed to IF SMF94SDL GE 84 THEN INPUT.              
   Thanks to Will Evans, Consolidated Freightways, USA.                 
                                                                        
Change 15.117  Changes in NPM that were overlooked long ago:            
VMAC28        -LCSLxxxx variables added to CSL segment for HPR bytes and
Jun  4, 1997   frames transmitted, received, and discarded, and LCSLCON5
               thru LCSLCON7 flag bytes are now kept.                   
                                                                        
Change 15.116  TLMS 5.3 (archaic, 5.4 has been out for some time) dates 
VMACTLMS       were not converted completely; the conversion code from  
Jun  4, 1997   the 5.4 code was moved to the 5.3 section of VMACTLMS    
   Thanks to Jim Van Arsdale, IBM Global Services, USA                  
                                                                        
Change 15.115  MONTHBLD failed for dataset TYPE77, because WEEKBLDT did 
WEEKBLDT       not have the correct BY list (but WEEKBLD was correct!). 
Jun  4, 1997   WEEKBLDT now matches BUILDPDB/WEEKBLD/MONTHBLD.          
   Thanks to Mike Rouncville, Rose's Stores, Inc, USA                   
                                                                        
Change 15.114  TMON/DB2. Previously un-tested subtypes "DE" and "DW" had
VMACTMDB       coding errors that surfaced when real data was read.     
Jun  4, 1997  -The "DW" record INPUT was realigned, DWWLRTME was changed
Jun 24, 1997   from TIME8 to HH &NUM.2 and DWWLRDAT's JULIAN input was  
               revised so the code will work under EBCDIC or ASCII SAS, 
               and the variable text is now correctly input.            
              -The "DE" record has the common header; the test          
                IF LMRKREC='DA' OR LMRKREC='DB' THEN INPUT              
               was expanded to also test OR LMRKREC='DE'.               
   Thanks to Tricia Dudley, SAS Institute Cary, USA.                    
   Thanks to Luc Gariepy, Regie des rentes du Quebec, CANADA            
                                                                        
Change 15.113  DB2 Trace SMF type 102 subtype 125.                      
VMAC102       -The +2 after QW0125MR must be +1.  This error affected   
Jun  5, 1997   only variable QW0125NR.                                  
              -The DO OFFSET=QWT02R2O in the IFCID 125 section was      
               replaced with DO _I_=1 to QWT02R2N logic from IFCID 172. 
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.                
   Thanks to Harmuth Beckmann, Karstat AG, GERMANY.                     
                                                                        
Change 15.112  Support for APAR OW26451/OW26453/OW26497 added fields for
VMAC42         MAXRSPTM and MAXSRVTM (Max Response/Service Time) to data
Jun  3, 1997   set TYPE42DS.  Other minor changes were made.            
                                                                        
Change 15.111  Support for TANDEM D42/D43/D44/G02 releases.             
VMACTAND       Documentation indicates compatibility, in that new data  
Jun  3, 1997   fields are added at the end of the record, but you will  
Jun 20, 1997   still find it INCOMPATIBLE, because you will have to     
               change the LRECL of each MVS dataset into which the data 
               records are sent when you install the versions with new  
               data.  Initially, it appears there is no problem with    
               D42, but I need to review the later three systems and    
               will update this note when I know more.                  
   Thanks to Tim Crocker, AT&T Universal Card Services, USA.            
                                                                        
Change 15.110  Enhancements so MXG Tape Mount records that will be in   
VMACTMNT       ML-14 of ASMTAPES (see later Change) are coded now:      
Jun  2, 1997  -New variables are added to TYPETMNT:                     
                DEVFLGS, UCBSTAT, UCBFL1, UCBSTAB, DDNAME, STEPNR,      
                ALOCSTRT, and TMNTMAIN.                                 
              -Existing unpopulated variables will be populated by the  
               changes in ASMTAPES at ML-14:                            
                READTIME, INITTIME                                      
              -Variable JESNR now supports 5-digit JES numbers.         
              -The interval start value did not replace ALCSTIME with   
               the interval-start time for interval records created     
               if a job spans a day boundary; in error, the allocation  
               timestamp of the original allocation was stored.         
   Thanks to Mark Kemig, VF Services, Inc, USA.                         
                                                                        
Change 15.109  Format MGBYTRT (bytes-per-second) truncates on the left  
FORMATS        (1099KB/Sec prints as 99KB/Sec) because the DEFAULT=8 in 
May 30, 1997   the PICTURE MGBYTRT statement must be DEFAULT=10.        
               After making that change, you need only to re-build your 
               format library by %INCLUDE SOURCLIB(FORMATS); (with the  
               //LIBRARY DD allocated with DISP=OLD under MVS).         
   Thanks to Leigh Ann Payne, Wachovia Operational Services Corp, USA.  
                                                                        
Change 15.108  DCOLLECT variable DCASRCI (dataset DCOLCLUS) is relabeled
VMACDCOL       to 'USE HARBC/HURBC*INSTEAD OF*HARBA/HURBA?' to flag that
May 29, 1997   variables DCAHARBC and DCAHURBC, according to IBM, should
               be used for VSAM space (high RBA) allocated and used in  
               place of DCAHARBA/DCAHURBA variables.  Also, variables   
               DCAHARBC and DCAHURBC are now formatted MGBYTES.         
               In merging DCOLDSET and DCOLCLUS for VSAM datasets (to   
               get HLQ classifications by storage group with accurate   
               allocated/used statistics), John noted that sometimes,   
               the High Used RBA was greater than the Allocated Space   
               (i.e., DCAHURBC GT DCDALLSP).  Chuck tracked this to obs 
               for the Index component for VSAM datasets which used     
               IMBED or REPLICATE; it appears that the index bytes that 
               are imbed/replicated in the Data Component are being     
               counted in the RBA for the Index Component, causing it to
               appear to have more "used" than "allocated".             
   Thanks to John Astle, National Australia Bank, AUSTRALIA.            
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.107  New TYPE8025 dataset is now created for RACF Event 25,   
EXTY8025       RACF RVARY Command.  Variable RACFTYPE was removed from  
IMAC80A        the KEEP= list, as it contained the TYPE value of only   
VMAC80A        the last segment in a type 80 record.  (Variable TYPSTRNG
May 29, 1997   lists all segment types found in each record).           
   Thanks to Joe Faska, Depository Trust, USA.                          
                                                                        
Change 15.106  Support for APAR OW20921 which created TYPE42VT dataset  
EXTY42VT       with response time statistics like TYPE42SR, but for the 
IMAC42         VTOC, VTOC Index, and VVDS for each volume.  This APAR   
VMAC42         also added stripe count and flag variables to TYPE42DS.  
May 28, 1997   In the new TYPE42VT, there are occasional observations   
               with AVGIOQMS less than zero (-.127 maximum), indicating 
               that the data is not exact.                              
   Thanks to Tim Vanderhoek, Fidelity Systems Company, USA.             
                                                                        
Change 15.105  Variables in dataset QAPMAPPN read in after ANDBE8 were  
VMACQAPM       wrong; the offset 1464 was incorrectly repeated in two   
May 27, 1997   lines.  Subsequent offsets have now been corrected.      
               Variable ATCSDR is INPUT @558 vice @588 now.             
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
Change 15.104  Duplicate variable names were corrected.                 
VMACPW        -VMACPW: TOIOOPCT should have been TOIOPCRT, first        
VMAC102        SWINOPCT is now SWINCTCT and first SWOUOPCT is SWOUCTCT. 
VMACSTRS      -VMAC102: second QW0221AN was removed                     
May 26, 1997  -VMACSTRS: second TOTSERV was removed                     
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
===Changes thru 15.103 were included in MXG 15.02 dated May 23, 1997=== 
                                                                        
Change 15.103  Support for RACF data for OMVS RACF using IBM's IRRDBU00 
EXRAC120       unload utility creates two new datasets, thanks to this  
EXRAC270       user-contributed enhancement.  New datasets are:         
IMACRACF         Dataset   Description                                  
VMACRACF         RACF0120  Group OMVS Data                              
May 22, 1997     RACF0270  User OMVS Data                               
   Thanks to Ben Cowan, University of Nevada System, USA.               
                                                                        
Change 15.102  Support for Filetek's Optical Disk SMF record creates    
EXFTEKIC       three new datasets:                                      
EXFTEKID         Dataset   Description                                  
EXFTEKGL         FILTEKIC  IC Command Link Task Record                  
IMACFTEK         FILTEKID  ID Data Transfer Task Record                 
TYPEFTEK         FILTEKGL  GL Global Statistics Record                  
VMACFTEK       This is preliminary; the Global record is not complete.  
May 22, 1997                                                            
   Thanks to Joe Faska, Depository Trust, USA.                          
                                                                        
Change 15.100  A new macro that compares two SAS Data Libraries and     
VMXGCOMP       lists datasets in one and not in the other, and then     
May 22, 1997   generates PROC COMPARE on all datasets that are common   
               to both Data Libraries.  The observations compared are   
               limitable via an option.                                 
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.099  A new macro that resets the setting of most SAS Options  
VMXGOPTR       (those whose name is 8 bytes or less and which can be    
May 22, 1997   changed after SAS Initialization).  The current setting  
               is kept so that MXG can change it and then reset it to   
               the original value (Change 15.098 uses it in VMXGSUM to  
               reset the OBS= option).  Documentation is in the member. 
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.098  Enhancement to VMXGSUM that uses the new VMXGOPTR macro  
VMXGSUM        to examine SAS Options to detect that OBS=n (as opposed  
May 22, 1997   to the default OBS=MAX) was specified.  OBS=0 causes the 
               PROC CONTENTS (used to determine which variables to keep)
               to have no observations, so the list of kept variables is
               wrong.  (Even OBS=n will cause trouble, if n is less than
               the number of variables to be kept).  With this new      
               enhancement, VMXGSUM detects the OBS=value, sets OBS=MAX 
               for the Keep-Variable-Create phase, and then resets OBS  
               to its original value. This greatly improves MXG QA runs,
               which use OBS=0, by eliminating unnecessary messages!    
               Additionally, VMXGSUM now allows use of USER= and the    
               TEMP01/TEMP02/TEMP03 options.                            
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.097  RACF "SKIPPED SEGMENT RACFEVNT=xx:desc RACFTYPE=nn ...." 
VMAC80A        messages are normally harmless; they indicate that your  
May 22, 1997   RACF record contained a segment (RACFTYPE=SMF80DTP=nn)   
               that MXG did not know about in creating TYPE80A dataset. 
               (The event causing the type 80 record is RACFEVNT, which 
               might not even be an event of interest to you!).         
               You can look at Table 2. Relocate Section Variable Data  
               in Chapter 4 in "RACF Macros and Interfaces" SC23-3732   
               to see a) is the DTP value documented, and b) do you     
               care!  If the segment contains data of interest, when I  
               get a hex dump of a record with the new segment, I will  
               decode the segment and add new variable(s) to the event  
               dataset; if the data is of no interest, I add logic:     
                  WHEN (91) DO; /*FOUND IN 27:GENERAL AUDIT, NO DOC*/   
                    INPUT +RACFDLN @;                                   
                  END;                                                  
               to member VMAC80A to bypass the segment without notice.  
               (the example skips the un-documented DTP=91 value found).
   Thanks to Bruce Hewson, CITICORP, SINGAPORE.                         
                                                                        
Change 15.096  Inconistency analysis uncovered these flaws:             
VMACNSPY      -Variable APLUIDR in VMACNSPY is now format $HEX8 (the    
VMACLMS        length was only two bytes because $HEX4. preceded its    
VMACOMCI       INPUT statement).                                        
VMACRMDS      -Variable TDBSYS in VMACLMS is now initialized to a value 
May 21, 1997   of 'TMS     ' so the kept length is eight bytes.         
               Variable ISITSL in VMACLMS is LENGTH $3, and the INPUT   
               @53 is changed to ISITSLX, as are following five IF's.   
              -Variable EWAITDC in VMACOMCI was removed from $NOTRAN    
               informat list (because INFORMAT was seen before INPUT,   
               variable had kept length of only one).                   
              -Variable RMDSFORM is set LENGTH $9 because later code    
               INPUTs as 9, but first occurrence was for 8.             
   Thanks to Chris Weston, SAS Institute Cary, USA.                     
                                                                        
Change 15.095  Support for DB2 Version 5.1.0.                           
FORMATS        New formats $MGD022A, MGD022Q, and $MGD221M were added.  
VMACDB2        Type 101 Record (DB2ACCT) Compatibly changed.            
VMAC102          Eight new variables added:                             
May 21, 1997      QWACSUCV='THIS CPU SU_SEC*SERVICE*UNITS PER*SECOND'   
                  QXCOORNO='PARGROUPS*EXECUTED*COORD PARM NO'           
                  QXCRGTT ='CREATE*GLOBAL*TEMPORARY*TABLES'             
                  QXISORR ='PARGROUPS*EXECUTED*REPEAT*READ'             
                  QXSTREOP='REOPTIMIZATION*OCCURRENCES'                 
                  QXXCBPNX='PARGROUPS*INTENDED*RUN*DATASHARE'           
                  QXXCSKIP='BYPASSED*DB2S*NOT ENUF BUFFERS'             
                  QBGADG  ='CF UNREGISTER*PAGE*REQUESTS'                
               Type 100 Subtype 0. DB2STAT0.  Compatibly Changed.       
                 One new Q9STxxxx variable, three QDSTxxxx variables,   
                 and six QXxxxxxx variables added.                      
               Type 100 Subtype 1. DB2STAT1.  Compatibly Changed.       
                 Twelve QBGLxx variables added.                         
               Type 100 Subtype 1. DB2GBPST.  Compatibly Changed.       
                 Twelve QBGLxx variables added.                         
               Type 100 Subtype 2. DB2STAT2.  Compatibly Changed.       
                 One variable, QDBPXSQT, added.                         
               Type 100 Subtype 3. DB2GBPAT.  Compatibly Changed.       
                 One variable, QBGBGAS, added.                          
               Type 102 Record.  Only IFCIDs listed have been validated.
               IFCID 022. INCOMPATIBLY changed. Record restructured     
                 Fifteen new variables added.                           
               IFCID 221. INCOMPATIBLY changed. INPUT STATEMENT EXCEEDED
                 Record restructured.  Ten new variables added.         
               IFCID 222. Compatibly changed. Three new variables.      
                 However, MXG created Pipe Duration in variable QW0222SM
                 by subtraction, but now IBM uses that name, so Pipe    
                 Duration time is now calculated in variable QW0222PD.  
               IFCID 231. Compatibly changed.  Five new variables.      
   Thanks to Ted Blank, IBM, USA.                                       
                                                                        
Change 15.094 -Variable R723TYPE was kept as LENGTH $23 because it was  
VMAC7072       not in the LENGTH $1 statement, so SAS took it's length  
VMAC110        from the MGRMFTY format.  Now it is kept as LENGTH $1.   
VMAC74        -Variable LDGDSAIN was listed both as $1 and $2, but is   
May 21, 1997   now only in the $1 list.                                 
              -Variable R744QSIZ is now formatted MGBYTES; the variable 
               R744QFLG is formatted $HEX2. and added to $NOTRAN.       
              -Variable MCDFLG3 (IF '1.......'B, DATASET is KB) is now  
               input @291 MCDFLG3 &PIB.1.  in the MCD section, formatted
               HEX2., labeled, and kept.                                
   Thanks to Neville Wright, Telstra, AUSTRALIA.                        
   Thanks to Lindsay Oxenham, Telstra, AUSTRALIA.                       
                                                                        
Change 15.093  Comments were revised to explain why the error messages: 
JCLPDB6         ERROR: ALL VALUES MISSING FOR PLOT OF xxx               
May 21, 1997    ERROR: THERE ARE NO VALID OBSERVATIONS FOR VARIABLE yyy 
               may print on the SAS log when you run the JCLPDB6 sample 
               job to build the PDB, and why they actually tell you the 
               BUILDPDB run was successful. (Briefly, they are from the 
               ANALxxxx members, and to have gotten that far is to have 
               successfully built the PDB library; they occur because of
               "shotgun" reports that include old and new variables so  
               everybody gets some sample report output.)               
   Thanks to Robin Mitchell, SmithKline Beecham, USA.                   
                                                                        
Change 15.092  MXG 15.01 only.  An incomplete CICINTRV member was sent  
CICINTRV       in MXG 15.01 (last minute changes to add READTIME were   
May 20, 1997   tested but not migrated); now I realized that the change 
               was redundant, as CICSSTCK is logically the READTIME!    
               Note that the DURATM variable in PDB.CICINTRV is the sum 
               of the durations of the discrete intervals that were     
               summed into this observation, and might not be the delta 
               between COLLTIME values.  MXG defaults to HALFHOUR, but  
               if you are only recording USS records, and you took the  
               IBM default interval, your records will be written every 
               three hours, so PDB.CICINTRV will have an obs with the   
               COLLTIME of the half hour preceding the end of that      
               interval, but the DURATM value will be the 3 hours       
               represented by the actual data in that observation.      
   Thanks to Ben Cowan, University of Nevada System, USA.               
                                                                        
Change 15.091  Variables ACTBYTES and ACTPAGES from TYPE26J2 are added  
IMACPDB        to macro _PDB26J2 in IMACPDB so that they will be kept in
May 20, 1997   dataset PDB.JOBS.  The ACTBYTES is the total number of   
               bytes of SYSOUT text that was created by each job, and is
               useful in determining the JES2 Track Group Size.         
   Thanks to Clark Jennings, Reynolds Metal, USA.                       
                                                                        
Change 15.090 -Support for Microsoft Windows NT 4.0 Service Pack 2 which
EXNTACSR       INCOMPATIBLY inserted a null field in the Process record,
EXNTCNFI       and support for Version 5.0 of MS Exchange, which added  
EXNTCNIN       (need I say INCOMPATIBLY) eight real fields and 33 null  
EXNTHTIN       fields to MSEXCHDS and MSEXCHPR datasets.  NRDATA count  
EXNTMSIM       was corrected for MSEXCHDB dataset.                      
EXNTMSIP      -Support for NTSMF Version 2.0.  Change 15.027/MXG 15.01  
EXNTMSWB       did not (in spite of saying so) handle the new records.  
EXNTWBPR      -Support for several new datasets (new objects):          
EXNTWSPR          Dataset    Object                                     
IMACNTSM          ACTVSRVR   Active Server Pages                        
VMACNTSM          CONTINDX   Content Index                              
May 20, 1997      CONTINFI   Content Index Filter                       
                  HTTPINDX   Http Contents Index                        
                  MSEXCHIM   MS Exchange Internet Mail Service          
                  MSEXCHIP   MS Exchange Internet Protocols             
                  MSEXCHWB   MX Exchange WEB Component                  
                  WEBPROXY   WEB Proxy Server Cache                     
                  WINPROXY   WinSock Proxy Server                       
              -Of the 68 objects now supported, all but 16 have been    
               tested with data records.                                
                                                                        
Change 15.089  MXG 15.01 only.  INPUT STATEMENT EXCEEDED for type 94 SMF
VMAC94         record.  SMF94VR3 should be +2 vice +1, while variables  
May 17, 1997   SMF94VDC,VDX,VDN and VDA should be &PIB.1. vice &PIB.2.  
               This only affected the new section added for VTS.        
   Thanks to Pat Quinette, Principal Mutual Life Insurance Co., USA     
                                                                        
Change 15.088  MXG 15.01's new ANALDDCN member inadvertently contained  
ANALDDCN       "./" IEBUPDTE control cards for several IMACxxxx members,
PROCSRCE       so when you unloaded the IEBUPDTE file to create your MXG
May  8, 1997   SOURCLIB, those "./"s created those IMACs from ANALDDCN  
               (and by design they DROPed most variables from type 30s).
               But fortunately, the real "./" cards for those IMACxxxx  
               members were found later on in the MXG tape, so they     
               successfully replaced the incorrect members, so your     
               SOURCLIB was correctly built!                            
                                                                        
               Thank you Heavenly Father: if the member name had been   
               ZNALDDCN, your SOURCLIB would have been wrong!).         
                                                                        
               It used to be that IEBUPDTE set a CC=4 when a new member 
               replaced an existing member, but no longer; the IEBUPDTE 
               set CC=0.  The only clue is in the print message "IEB816I
               MEMBER NAME FOUND IN NM DIRECTORY. TTR IS NOW ALTERED"   
               (but IEB messages print to the //SYSPRINT DD, which is DD
               DUMMY because it is hugh (1,005,099 print lines, 126 MB, 
               because IEBUPDTE prints all 980,991 lines of MXG 15.01,  
               plus 8 lines of IEBxxxx messages and blank lines for each
               of MXG's 3,200 members, plus pages and the JES log!).    
                                                                        
               I have revised PROCSRCE to ERROR ./ cards found in its   
               input while creating the IEBUPDTE format file, so this   
               error should not be seen again.                          
   Thanks to Freddie Arie, Lone Star Gas, USA.                          
                                                                        
===Changes thru 15.087 were included in MXG 15.01 dated May 6, 1997===  
                                                                        
Change 15.087  QA tests for MXG 15.01 generated these corrections:      
JCLQAJOB      -CICINTRV. Variables SDGTSUPR/SDGTTKN were misspelled and 
May  6, 1997   are now SDGSSUPR/SDGSTKN.                                
              -VMACDALO. Variables DALODDN/CODE/JFCB are now labeled.   
              -DIFFDB2.  Variables PREVGN,DIFDB21,PREVBPID are dropped, 
                         and dropped only once.                         
              -VMACIMS.  Many unlabelled variables are now labeled, and 
                         LABEL statements consolidated.                 
                                                                        
Change 15.086  Support for World Wide Web Proxy logs in Common Log      
TYPEWWW        Format to track an installation's access frequency and   
May  4, 1997   destinations for URLs and IP addresses via the WWW is    
               provided in this user contribution, which is based on    
               Dan Squillace's CMG96 paper.  Comments in TYPEWWW by     
               Brian document his approach to decoding the log into     
               new MXG dataset TYPEWWW.                                 
   Thanks to Brian Farley, Reliastar Life Insurance Co., USA.           
                                                                        
Change 15.085  A new utility for ASCII platforms that produces a hex    
UDUMPEBC       dump like the LIST; statement on MVS, with characters    
May  4, 1997   decoded as EBCDIC rather than ASCII (so you can read the 
               hex dump of your SMF record on your PC!).  This utility  
               was written and contributed by Dan (but I actually made  
               it into a %MACRO with arguments!).                       
   Thanks to Dan Kaberon, Hewitt Associates, USA.                       
                                                                        
Change 15.084  Sample CLISTs for MXG and SAS execution under TSO.       
CLMXGSAS                                                                
May  4, 1997                                                            
   Thanks to ???, ????, USA.                                            
                                                                        
Change 15.083  Documentation.  The discussion of why you get fractional 
ADOC26J2       priorities in variable ONPRTY in PDB.JOBS or TYPE26J2 now
May  4, 1997   matches the code in VMAC26J2.  The old documentation said
               that MXG FLOORed ONPRTY to an integer, but it never did; 
               ONPRTY has always been a real, rather than an integer.   
   Thanks to Brian Sanger, Eagle Star Group Services Ltd., ENGLAND      
                                                                        
Change 15.082  Support for Boole and Babbage IMF 3.2 (for IMS 6.1) is   
VMACCIMS       already in place in MXG.  The changes were a) increase   
May  4, 1997   in maximum DBD segments in a record (from 50 to 500, and 
               associated record length increase) but MXG always reads  
               whatever segments are in the record, and b) IMF 3.2 now  
               supports the year 2000 (by documenting dates as yyyyddd) 
               but MXG support was also already in place for that too!  
               No code was changed by this change.                      
                                                                        
Change 15.081  This user contribution is a revision of TYPEIMS7 (which  
IMACIMSD       reads IMS log records 07/08 for transactions and BMPs),  
TYPEIMSD       for IMS DBCTL, because TYPEIMS7 threw away DBCTL events. 
May  4, 1997   The documentation of the significant logic necessary to  
               capture IMS DBCTL from the IMS log is provided also by   
               Bruce, in the comments in member TYPEIMSD.               
   Thanks to Bruce Galle, Talbots, Inc, USA.                            
                                                                        
Change 15.080  The revisions in Change 14.349 to support Stress Test's  
VMACSTRS       enhancements in Release 3.3.6 accidentally failed to     
May  4, 1997   INPUT some variables from the earlier version.           
                                                                        
Change 15.079  ASUMUOW combines CICS and DB2 transactions by UOW, or    
ASUMUOW        unit of work, but IRESPTM was kept from the last CICS    
May  4, 1997   transaction physically encountered, rather than the      
               first (initiating) transaction.  The ENDTIME should have 
               been a MAX() rather than MIN(), and QWHCATYP is now in   
               the DROP list as it is unneeded after first step.        
   Thanks to Tom Elbert, John Alden, USA.                               
                                                                        
Change 15.078  DB2 variable QWHCATYP printed a value of '41' when a     
FORMATS        value of 11 decimal or 0Bx was found.  (I now know that  
May  4, 1997   the 0Bx value is for "DB2 Utilities" and the MGDB2TY     
May  9, 1997   format that decodes QWHCATYP was updated May  9, 1997,   
               but at the time, the value 0Bx was not in the format.)   
               Why did MXG print 41 when the value was actually '0B'x?  
               Because there was a logical error in the MGDB2TY format  
               for undefined values; the OTHER format was $HEX2, but it 
               should have been HEX2, because QWHCATYP is a numeric     
               variable!  Using $HEX for a numeric variable in the OTHER
               operand of PROC FORMAT is a SAS "feature" that prints not
               the hex of the data value, but rather prints the hex of  
               the internal representation of the numeric value (as     
               stored by each platform).  Since numerics are internally 
               stored as floating point numbers, the '41'x printed was  
               the hex value of the first byte of MVS's internal value  
               of '41B00000'x, where the '41' is the exponent and 'B0'  
               is the mantissa.  But under Windows, a '00' was printed, 
               because Intel stores eleven as '00002640' with its       
               exponent in the last byte.  In any event, using HEX2     
               instead of $HEX2 correctly shows the 0B value under MVS  
               or Windows. (This was the single instance of $HEX for a  
               numeric in FORMATS.)                                     
   Thanks to Roman Jost, Gjensidige, NORWAY.                            
                                                                        
Change 15.077  The MXG Tape Allocation Monitor records had new fields   
ASUMTALO       added in ASMTAPES in MXG 14.14 that are now INPUT into   
VMACTMNT       tape allocation dataset TYPETALO by member VMACTMNT:     
ZSUMTALO          ALEERROR='ALLOCATION*ERRORS*RECORDED'                 
May  3, 1997      RESGROUP='RESOURCE*GROUP*NAME'                        
                  RPTCLASS='REPORTING*CLASS*NAME'                       
                  SRVCLASS='SERVICE*CLASS*NAME'                         
                  TMNT008I='TMNT008I*MESSAGE*ISSUED?'                   
                  TMNTTYPE='TYPE*OF*MOUNT*OR ALLOCATION*EVENT'          
                  WLMNAME ='WORKLOAD*NAME'                              
                  XMEMABND='CROSS*MEMORY*ABENDS'                        
               In addition, ML-12 added the new subtype 5 interval-end  
               record (to keep track of long-running allocations) but   
               MXG 14.14's VMACTMNT skipped over the subtype 5 record.  
               With this change, VMACTMNT now OUTPUTS the subtype 5     
               into TYPETALO, and this requires a new ASUMTALO member   
               that exploits these interval observations to improve the 
               accuracy of counts if you have long-running allocations. 
               This logic is more accurate than prior ASUMTALO, but may 
               not be perfect until the ASMTAPES ML-14 monitor provides 
               time-synchronized subtype 5 records.  I have copied the  
               MXG 14.14 ASUMTALO member into ZSUMTALO and modified it  
               so that subtype 5 records are deleted, so you could use  
               the new VMACTMNT with the (renamed) member ZSUMTALO in   
               case you have problems.  Check the counts closely.       
                                                                        
               NOTE: YOU MUST IMPLEMENT MXG 15.01 MEMBERS TYPETMNT AND  
                     ASUMTALO SIMULTANEOUSLY - IF YOU HAVE A TAILORED   
                     ASUMTALO MEMBER IN YOUR USERID.SOURCLIB, YOU MUST  
                     RETROFIT YOUR TAILORING INTO THE 15.01 ASUMTALO.   
                     (Or use the ZSUMTALO as described above).          
                                                                        
               The ASUMTALO enhancements use SPIN-type logic as well as 
               determining which system's SMF had the earliest cutoff of
               SMF data (earliest last datetime).  Data is "spun" to    
               SPIN.SPINTALO if it is after the cutoff or if it is the  
               last observation for an allocation event and it is also  
               an interval record (we have to adjust the start time of  
               the real allocation record during the next day's ASUMTALO
               so that we don't count the same drive-interval twice.    
   Thanks to Chuck Hopf, MBNA, USA.                                     
                                                                        
Change 15.076  SAS Warning: ARGUMENT 3 TO MACRO FUNCTION %SUBSTR IS     
VMXGTAPE       MISSING OR OUT OF RANGE when the length of the DSN= macro
May  3, 1997   argument was three characters or less, but now will work 
               with any length DDNAME.  (VMXGTAPE is a %MACRO to find   
               out if a DDNAME or SAS DATASET is on tape.)              
                                                                        
Change 15.075  Validation of Change 15.061 uncovered opportunities.     
ANALRMFR      -Updates were made to logic for IOQU reports              
May  3, 1997  -Incorrect paging, added array IOPI(9) IOPINSTL, added    
               RETAIN for IOP, ACTIVITY RATE and AVG Q LNGTH variables  
               during MERGE.                                            
              -MXGCHAN, changed PS=&PGS back to PS=66, because with     
               PS=&PGS and N=PS (to arrange the contents of an entire   
               printed page) does not work correctly.                   
              -MXGSMRY moved SWAPRATE=. and PRT=. to SUMRPT dataset to  
               eliminate "MISSING VALUES" messages.                     
                                                                        
Change 15.074  Support for Altai's ZARA Tape Management Release 1.2.    
TYPEZARA       Well, almost.  I have created all of the new variables   
VMACZARA       in datasets ZARADSN and ZARAVOL, an enhanced TYPEZARA's  
May  3, 1997   back-end logic to also keep the new variables, but I do  
               not have the DSECT for the header yet, nor do I have any 
               test data yet, to the new code is in a never-execute DO  
               group (IF RECTYP= -99 THEN DO;)  Check for an update to  
               this change when actual support has been tested.  Note in
               this rare instance, the documentation is done before the 
               code changes are complete!                               
               Changes to ZARADSN dataset:                              
                 Variables added:                                       
                   FILABEND FILCONT  FILCRSID FILENEXT FILEXPIR FILRCFM 
                   FILTPSTK                                             
                 FILRECFM was replaced by FILRCFM, now is CHARACTER     
                 FILFLAG1 was replaced by FILABEND FILCONT FILEXPIR     
               Changes to ZARAVOL dataset:                              
                 Variables added:                                       
                   VOLAPERR VOLATRER VOLATWER VOLCBLVL VOLCHECK VOLCLEN 
                   VOLCREAT VOLFILEA VOLLABEL VOLLOCK  VOLSTAT1 VOLSTAT2
                 Variables no longer created in Version 1.2:            
                   VOLSECUR VOLAPPID VOLGRPID VOLOBOX  VOLFLG1  VOLFLG2 
                   VOLPOOL                                              
                 VOLLABL was replaced by VOLLABEL, now is CHARACTER     
   Thanks to ???, Nissan Motor Manufacturing (UK) Limited, ENGLAND.     
                                                                        
Change 15.073  Support for Virtual Tape Server additions to SMF type 94 
VMAC94         provide an excellent set of measures for VTS physical and
May  2, 1997   logical volume activity, including counts of mounts,     
               by type, lots of min/max/avg for times to mount physical/
               logical volumes, time virtual drives were mounted, the   
               number of concurrent physical/virtual drives mounted, and
               bytes read/written to host channel/from tape devices!!   
                                                                        
Change 15.072  Variable FTPCLHST in ILKAST20 and ILKAST21 datasets from 
VMACILKA       Interlink has always been wrong. The "FTPCRHS3" in the   
May  2, 1997   create for FTPCLHST should have been "FPTCLHS3".         
   Thanks to Chris Weston, SAS Institute Cary, USA.                     
                                                                        
Change 15.071  Support for MEMO subtype 8 record creates new MEMODIST   
EXTYMEMD       dataset; subtype 8 records are written by MEMO during a  
VMACMEMO       distribution by an internal process.                     
May  2, 1997                                                            
   Thanks to Thomas Peiper, Enator, SWEDEN.                             
                                                                        
Change 15.070  The start-up observation in DB2STATS and other DB2 Stats 
DIFFDB2        datasets will have lots of negative values, and there are
May  2, 1997   two observations with QWHSISEQ=1 created for each real   
               startup.  You can delete both the good and the bad start 
               up record with IF QWHSISEQ=1 THEN DELETE; to clean up    
               your reports quickly, but the logic error fixed by this  
               change applied to each of the Stats datasets and involved
               creating an OUTFLAG=1 before the DO group for the first  
               OUTPUT, then setting OUTFLAG=0 inside that DO group, and 
               then adding AND OUTFLAG=1 to the subsequent IF QWHSISEQ  
               test for the second OUTPUT.                              
               This error was introduced by Change 14.231.              
   Thanks to Trevor Nightingale, SAS Institute Cary, USA.               
                                                                        
Change 15.069  Variable ARSPHOST in dataset NSPYLU for NETSPY 4.4 was   
VMACNSPY       frequently missing when it should have had value.        
Apr 30, 1997   Variable LUNRSPSS was to be INPUT if NSPYENTL GE 112, but
               the NETSPY 4.4 record had NSPYENTL=108, so LUNRSPSS was  
               not INPUT and hence missing, and LUNRSPSS is used to     
               calculate ARSPHOST.  The existing test IF NSPYENTL GE 112
               must be change to IF NSPYENTL GE 108 and then between the
               INPUT lines for LUNRSPSS and LUATTCHS, insert:           
                      @;                                                
                      IF NSPYENTL GE 112 THEN INPUT                     
               to always INPUT thru LUNRSPSS.  MXG was unaware of the   
               shorter length segment.  This error was noticed moving   
               from MXG 13.02 to 14.14 with NetSpy 4.4; I do not think  
               there is a problem with 4.5 and later, as I think its    
               segments are always NSPYENTL=112 or greater.             
   Thanks to Mark Zelden, Newark Electronics,USA.                       
                                                                        
Change 15.068  Revised support for HP's MeasureWare for Sun systems has 
ADOCMWSU       restructured the code to match the default REPORT macro, 
VMACMWSU       and was validated with data.  Examples of moving data via
Apr 29, 1997   ftp are provided in ADOCMWSU's comments.                 
   Thanks to Steve Corson, Cincinatti Bell Information Service, USA.    
   Thanks to Gary Alexander, BMC, USA.                                  
                                                                        
Change 15.067  Support for NETSPY Version 5.0 is included in MXG 14.14, 
VMACNSPY       (there was no real change between NETSPY 4.7 and 5.0, and
Apr 29, 1997   4.7 support was added in MXG 14.03).  The DSECT shows    
               fields added compatibly to the type 'X' (Alert) record,  
               but this is not a primary subtype, so until I have test  
               data (and a site that needs the new data in this fairly  
               obscure subtype) I won't add the new fields.             
                                                                        
Change 15.066  Variable AVGXETTM in TYPE72GO was wrong; the divisor must
VMAC7072       be TRANSEXC (transactions completing "execution phase"   
Apr 29, 1997   during the interval) instead of TRANS (transactions that 
               completed during the interval).                          
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
                                                                        
Change 15.065  EXCP and IOTM count in TYPE30/PDB.JOBS/PDB.STEPS datasets
VMACEXC2       for devices with 4-digit UCB addresses of 8000x or higher
Apr 29, 1997   were put in variables EXCPMSS/IOTMMSS (instead of the    
               EXCP3390 or EXCP3480 device-type buckets), and these IOs 
               were also not included in EXCPDASD or EXCPTAPE, although 
               they were counted in EXCPTODD and EXCPTOTL variables.    
               The old logic for the now defunct Mass Storage System,   
               MSS has now been commented out, but it tested the first  
               bit of DEVNR to identify MSS devices, causing this error.
                                                                        
Change 15.064  Variable SLOTUTIL is added to dataset TYPE71 to measure  
VMAC71         the percentage of local page dataset slots that are in   
Apr 28, 1997   use.  Find the maximum value of SLOTUTIL during the month
               to make sure you have enough page dataset slots defined. 
               SLOTUTIL should always be less than 25% (because the     
               ASM's contiguous slot allocation algorithm can move 30   
               pages in one SSCH only when there are 30 contiguous free 
               slots, and at utilizations above 25%, ASM begins to not  
               find 30 slots, so it tries to find 15, then 8... which   
               causes lots of extra SSCHs to your page volumes at the   
               very worst possible time - those few times when paging   
               becomes a performance problem!).  I have preached this   
               concept, but had not provided the variable (and the value
               I used in class turns out to need to be changed):        
                 SLOTUTIL=(SLOTLOMN-SLOTUNMN)/SLOTLOMN;                 
               compares the minimum number of defined local slots with  
               the minimum number of unused local slots to calculate the
               maximum utilization of slots during the interval.        
   Thanks to Jean Quinkert, Inland Steel Company, USA.                  
                                                                        
Change 15.063  I have begun to analyze the OMVS data in TYPE30OM.       
EXTY30OM       The variable OMVSEXNP (OMVS Program Name, "grep", "find",
VMAC30         etc) is now 16 instead of 8 bytes.                       
Apr 27, 1997                                                            
               TYPETASK='A   ', originally for APPC/ASCH type 30 records
               (other TYPETASK values are JOB/TSU/STC, taken from the   
               JCTJOBID), is now also used for OMVS type 30 records, so 
               there is no direct way to separate OMVS from APPC/ASCH   
               in type 30 records.  However, Goal Mode records contain  
               WLMNAME and SRVCLASS names, which may be useful along    
               with TYPETASK to group type 30 records.                  
                                                                        
               Dataset TYPE30OM contains an observation for every OMVS  
               segment, and there can be segments in interval subtypes  
               2 and 3, in step termination subtype 4, and in job term  
               subtype 5, but there is only one slot per record for the 
               OMVSEXNP Program Name, so the subtype 5 observations are 
               useless for analysis.  Here's what I observed:           
                                                                        
              SUBTYPE INIT     TERM   STEPNAME SUBSTEP OMVSEGNR OMVSEXNP
                 3   59:02.16  02.29  STEP1       0        1      find  
                 4   59:02.16  02.30  STEP1       0        1      find  
                 3   59:02.30  02.51  *OMVSEX     1        1      grep  
                 4   59:02.30  02.51  *OMVSEX     1        1      grep  
                 5   59:02.16  02.52              0        1            
                 5   59:02.16  02.52              0        2            
                                                                        
               Subtypes 3 & 4 have OMVS program name in interval and    
               step records.  The single subtype 5 job record has two   
               OMVS segments, representing the two OMVS invocations (one
               per each step, in this instance), but the OMVS segments  
               in subtype 5 cannot be associated with their program     
               name.  As a result, I no longer output obs in TYPE30OM   
               from subtype 5 records (although you can change my new   
               default in member EXTY30OM).                             
                                                                        
Change 15.062  Analysis of impact of DDCONS(NO) versus DDCONS(YES) with 
ANALDDCN       regard to the number of duplicate DDs that are written to
Apr 27, 1997   SMF when the (recommended) DDCONS(NO) option is          
               specified.  This analysis proves how little duplicates   
               there are and refutes arguments that lots of additional  
               SMF records will be created.  See MVS Technical Note in  
               Newsletter 32.                                           
                                                                        
Change 15.061  Variables PCTDIRPT and PCTCUBSY in TYPE78CF dataset were 
VMAC78         incorrect. The calculation of PCTDIRPT was changed:      
Apr 26, 1997   Variable R783DPB is now INPUT where PCTDIRPT was, and    
May  3, 1997   now the calculation of PCTDIRPT is changed to            
                  IF (CHPIDTKN+R783DPB+PCTCUBSY) GT 0 THEN              
                    PCTDIRPT=100*R783DPB/(CHPIDTKN+R783DPB+PCTCUBSY);   
                    ELSE PCTDIRPT=.;                                    
               and the calculation of PCTCUBSY was changed to:          
                 IF SUM(CHPIDTKN,R783DPB,PCTCUBSY) GT 0 THEN            
                   PCTCUBSY=100*PCTCUBSY/SUM(CHPIDTKN,R783DPB,PCTCUBSY);
                 ELSE PCTCUBSY=.;                                       
               The SUM() statement is needed for PCTCUBSY calculation to
               protect for missing values (old versions of RMF do not   
               have all three variables), but is not needed for PCTDIRPT
               because that calculation is inside loops which guarantee 
               the existence of the three variables.                    
   Thanks to Thomas Neurauter, Fidelity Systems, USA.                   
                                                                        
Change 15.060  For CICSEXCE observations from CICS/ESA, variables       
VMAC110        DURATM and STARTIME were always missing, but now both    
Apr 26, 1997   variables are created in CICSEXCE for consistency.       
   Thanks to Trevor Nightingale, SAS Institute Cary, USA.               
                                                                        
Change 15.059  If a MIM record segment contained MIMCNT=0, Version 3    
VMACMIM        segments after the zero were not read, because the line  
Apr 26, 1997   IF MIMCNT = 0 THEN DELETE; deleted the record.  For the  
               Version 4 record, that statement had been commented out. 
               This change puts  IF MIMCNT GT 0 THEN DO; ... END;       
               around both of the OUTPUT statements for both versions,  
               so only records with samples are output, but so that     
               a zero segment doesn't stop the scan for other segments. 
   Thanks to David L. Dittmar, IBM Global Services, USA.                
                                                                        
Change 15.058  Variable R745CINT is now kept, formatted TIME12.3 and    
FORMATS        labeled in dataset TYPE74CA; it is the Cache interval    
VMAC74         and is used in all rate calculations (instead of the     
Apr 25, 1997   RMF variable DURATM).  The IF CSCSS1='...1....'B line    
               misspelled CSCSDFM0='N', should be CSCSDFM1='N'.  The    
               variables CSDEVPI and DEVPI have been incorrectly decoded
               by format MGCACPI, which was replaced by MGCACPD.  New   
               variables CSDPIDAT/CSDPIFAI/DEVPIDAT/DEVPIFAI are now    
               replacements for CSDEVPI and DEVPI.  Format values for   
               MGCACRC format (for variable RCOL) were enhanced; this   
               field/format describes record level caching mode.        
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
                                                                        
Change 15.057  New RACF events are now decoded by format MG80EV, with   
FORMATS        new Open Edition events, process actions, etc.  It is    
Apr 25, 1997   worth your while to read the list of possible events!    
   Thanks to Jens Schlatter, Independent Consultant, GERMANY.           
                                                                        
Change 15.056  This utility is now a %MACRO which can be invoked with:  
UTILCONT          %UTILCONT(PDB=WORK);                                  
Apr 25, 1997   to show the size (Megabytes, Observations, etc) of each  
               SAS dataset in the PDB= Data Library, with one line per  
               dataset.  And it now works under Windows as well as MVS! 
               It still requires an //INSTREAM or FILENAME INSTREAM to  
               write to and read from (ok, it's crude, but it works,    
               especially when I have filled my WORK file and need to   
               see which datasets are big and which are small).         
               This is a structural revision of the earlier UTILCONT.   
   Thanks to Vickie Drake, Levi Strauss & Co.                           
                                                                        
Change 15.055  Inconsistency analysis of MXG code found several errors: 
ASUM70PR      -ASUM70PR. In the calculation of TOTSHARE=SUM(LP0SHARE,.. 
CICINTRV       variable LPESHARE was repeated; the first instance of    
DIFFTMDB       LPESHARE should be LPDSHARE.                             
VMAC42        -VMACQAPM. Variable OS2CT16 should have been divided by   
VMACQAPM       1000 and formatted TIME12.3, just like variable OS2CT14, 
VMACTMDB       and now it is.  Variables ASBRCV ASBTRN LSBRCV LSBTRN    
Apr 25, 1997   SDBRCV SDBREX SDBXMT SYBRCV SYBREX SYBXMT are now        
               formatted with MGBYTES.  Variables ending with PWT in    
               QAPMSNA are formatted TIME12.3 now.                      
              -VMAC42.  Variables SMF42JNC and SMF42JND are now length  
               8 with format DATETIME21.2, and variable SMF42JNE is     
               format TIME12.3.                                         
              -VMACTMDB.  Numerous previously unlabelled variables are  
               now labeled, and several DA9STCTx variables that were not
               kept in TMDBDA2 dataset, now are.                        
              -DIFFTMDB. Datasets TMDBDAB, TMDBDA2 and TMDBDAF are now  
               SORTed and Deaccumulated to create DURATM and ENDTIME    
               variables for these interval datasets.                   
              -CICINTRV. The first statement A06TEOT=DIFTEOE  should be 
               A06TEOE=DIFTEOE.  The VMXGSUM for INDATA=SRTDLIR had     
               INVOKEBY comment of INTDBU instead of INTDLIR.  Variable 
               A10IDQN appeared twice in KEEP= list for SORT of CICDQR. 
               Variable A17DSTSW was misspelled as A17DTSW.             
   Thanks to Chris Weston, SAS Cary, USA.                               
                                                                        
Change 15.054  TMON/CICS variables SYSTEM and SYSID were truncated to   
TYPETMON       only one byte as a result of Change 14.342.  Statement:  
Apr 25, 1997    IF SYSTEM=' ' AND SYSID=' ' AND TMMDREC='TA' ....       
               inserted by that change  must be changed to read:        
                IF SYSTEM='    ' AND SYSID='    ' AND TMMDREC='TA' .... 
               (i.e., four blanks instead of one blank for SYSTEM &     
               SYSID).  The inserted statement became the first         
               assignment of the two variables, so SAS used it to set   
               their length, in place of the later INPUT statements     
               that had previously defined the variable's lengths.      
   Thanks to Henry Schreiber, Amdahl, USA.                              
                                                                        
Change 15.053  First draft of MXG recommendations for SMF parameters    
SMFPRM00       that are specified in member SMFPRM00 of SYS1.PARMLIB.   
Apr 24, 1997   Extensive discussion of why options are recommended.     
               Will be expanded into discussion of                      
                 to synchronize or not to synchronize                   
                 to DDCONS(YES) or to DDCONS(NO)                        
                 system delays during the SMF interval pop.             
   Thanks to Henry Pomorski, Harris County, USA.                        
   Thanks to Robert Rudd, Harris County, USA.                           
   Thanks to Cheryl Watson Walker, Watson & Walker, USA.                
                                                                        
Change 15.052  Support for all AS/400 OS/400 Release 3.7.0 records. MXG 
VMACQAPM       had earlier supported only the critical records (CONF,   
Apr 22, 1997   SYS,JOBS, and DISK), and had coded many new variables    
Apr 25, 1997   added to the end of the records, but the incompatible    
               insertion of IOPRN (IOP RESOURCE NAME) was overlooked    
               until hit with test records.  These datasets were        
               incompatibly changed between 3.6 and 3.7 by the insertion
               of IOPRN:  QAPMHDLC,ASYN,BSC,X25,ECL,STNL,ETH,STNE,DDI,  
               DDI,STND,FRLY,STNY,CIOP,DIOP,LIOP,MIOP,RESP,RWS,LAPD,IDLC
               and QAPMIOPD.  In addition, IBM incompatibly changed the 
               field lengths in QAPMPOOL, and fields were removed from  
               QAPMRESP, QAPMX25, & QAPMRWS.  Existing variables named  
               CIDMAO/CIDMAI/DIDMAO/DIDMAI are now named CIKBY0/CIKBYI/ 
               DIKBY0/DIKBYI, but MXG kept the original names and uses  
               conversion from KBytes back to bytes so MGBYTES format   
               will print same magnitudes before and after 3.7.0!       
   Thanks to Len Marchant, Coca Cola Enterprises, USA.                  
   Thanks to Cheryl Howard, NationsBank, USA.                           
                                                                        
Change 15.051  Change 14.321 (CF Structures) added trap if number of QO 
VMAC74         and SO sections were not equal (trap prints MXG DISCOVERY
Apr 21, 1997   NO STRUCTURE MATCH on log), but trap springs if there was
               no QO section at all.  While unexpected, I have added    
               protect for SMF744QN=0 while we talk with IBM to find out
               why the record has Request Data sections but had no      
               corresponding Structure Data Section.                    
   Thanks to Joe Schwartz, Cigna, USA.                                  
                                                                        
Change 15.050  Protection for products that do not support year 2000 has
YEAR2000       been added in MXG Software.  Windowing (00-59=20yy, 60-99
Apr 20, 1997   =19yy) has been added during INPUT of JULDATE fields if  
               the century bit is not enabled (i.e., where the record   
               vendor does not support the year 2000, MXG can still do  
               the right thing and create the correct year 2000 date.   
               A more extensive note and update to member YEAR2000 will 
               be written and this text will be revised.                
               As of May 5, JULDATEs have been windowed, but there are  
               other forms to be protected, and member YEAR2000 has not 
               yet been updated to identify the new category of products
               that are now "MXG-protected".                            
                                                                        
Change 15.049  TIC_UTIL is now added to NPMLANOD and NPMINTRI datasets. 
VMAC28         (It was calculated but not kept in NPMINTRI, and the     
Apr 17, 1997   units of time-per-byte were corrected to nanoseconds in  
               NPMLANOD).                                               
   Thanks to Ian Hindshaw, Standard Bank of South Africa, SOUTH AFRICA. 
                                                                        
Change 15.048  Variables SMF6FDNM (Form Def) and SMF6PDNM (Print Def)   
IMACPDB        are added to dataset PDB.PRINT, as they are often used to
Apr 17, 1997   determine print characteristics in analysis. They were   
               always captured in TYPE6 dataset, but were not in the    
               list of variables (in IMACPDB) to be kept into PDB.PRINT.
   Thanks to Jerry Maier, First Chicago NBD, USA.                       
                                                                        
Change 15.047  ML-13 of ASMTAPES contains enhancements to provide error 
ASMTAPES       recovery for the mount monitor's AR code.  ML-13 will not
Apr 17, 1997   correct these problems, but it will recover from them so 
               the monitor stays up.  In addition, when the monitor is  
               run in "DEBUG" mode, an ABEND in ML-13 will generate an  
               SVC dump of both address spaces (monitor and monitored)  
               which will hopefully provide enough diagnostics data that
               the next iteration will eliminate these errors.  In      
               addition, there are two other fixes: ML-13 prevents S0C4 
               ABENDS when the TCBTIO is zero, and ML-13 corrects the   
               ALESERV return code in the TMNT008I message.             
   Thanks to Ruth Whitney, CITICORP, USA.                               
   Thanks to Tom Parker, Hogan Systems, USA.                            
   Thanks to Will Evans, Consolidated Freight, USA.                     
                                                                        
Change 15.046  Change 14.345 added code, but the 4DIGITUCB comment was  
FMXGUCBL       coded into column 72, causing an ASSEMBLY errors such as 
Apr 13, 1997   BEGIN-TO-CONTINUE COLUMNS NOT BLANK.  Move left one col. 
   Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.                
   Thanks to Harmuth Beckmann, Karstadt AG, Germany                     
                                                                        
Change 15.045  Datetime variables that had DATETIME18. formats are now  
DOC            DATETIME20., so as to display all four digits of years.  
YEAR2000       I also observed that truncated DATETIME formats will not 
Apr 13, 1997   display four-digit year for the date, hour, minute or    
               second truncations - I hoped DATETIME9 could be enhanced 
               to show the yyyy, but as it now prints seven positions,  
               and increase could cause existing applications to fail   
               (the wider field would shift right or overlay), so SAS   
               Institute cannot make the change.                        
                                                                        
                  value printed         DATETIMExx.     truncation      
                  01FEB84                7-8-9          date,daily      
                  01FEB84:22            10-11-12        hourly          
                  01FEB84:22:33         13-14-15        minutely        
                  01FEB84:22:33:59      16-17-18        secondly        
                  01FEB1984:22:33:59    19-20-21-22     secondly,yyyy   
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
                                                                        
Change 15.044  Format $MGCICLO did not decode values 08x,09x,0Ax values 
FORMATS        but now it does into 08X:SDSA, 09X:ESDSA, and 0AXRDSA.   
Apr 13, 1997                                                            
   Thanks to Helmut Roese, COM Gmbh, GERMANY.                           
                                                                        
Change 15.043  Change 15.037 changed TYPE116 variable QWHCTNO from      
VMAC116        &PIB.4. to &NUM.4., but data values that are not EBCDIC  
Apr 13, 1997   numbers (eg., 004DF3D4x), so the input is changed back   
               back to &PIB.4., is now formatted as HEX8., and is now   
               kept as LENGTH 5 (to display all four bytes numeric, an  
               extra byte must be kept).  I could have changed to a     
               character variable of length 4 with $HEX8 format, but    
               then prior TYPE116 datasets would be incompatible with   
               newly build TYPE116, so I kept the variable as numeric.  
               I am also asking IBM if these values are expected for    
               the CICS Thread Number - their answer was that it really 
               is a token and is not necessarily a number.              
   Thanks to Helmut Roese, COM Gmbh, GERMANY.                           
                                                                        
Change 15.042  Tandem Disk Drive subtype 30 is now 30:4GB/4260.         
FORMATS        (It was decoded as 30:3GB before format MGTANDS was      
Apr 13, 1997   corrected by this change).  Tandem Disk Drives type      
Apr 25, 1997   4245,4255,4265,4560, and 4570 are now decoded.           
   Thanks to Hannu Koski, SJ Data, SWEDEN.                              
                                                                        
Change 15.041  Cosmetic.  The JCL example for the //CONTENTS DD did not 
UTILCONT       have BLKSIZE=, but now it does.                          
Apr  1, 1997                                                            
   Thanks to Vickie Drake, Levi Strauss & Co., USA.                     
                                                                        
Change 15.040  IBM can write type 72 subtype 2 (TYPE72MN - RMF III MON) 
VMAC7072       records with zero for DURATM, which caused DIVISION BY   
Apr  1, 1997   ZERO error, so protection was added to protect PGINRATE: 
                  IF DURATM GT 0 THEN PGINRATE=MONPGIN/DURATM;          
               These zero duration records occurred under MVS/ESA 5.2.2 
               and have strange values for SWAPDLUS and SWAPDLIC but    
               other variables have reasonable values, and the STARTIME 
               was 15:20:00.00, SYNCTIME 14:27:54.81, and the SMFTIME   
               was 15:27:59.91, so why DURATM is zero is unknown.       
   Thanks to Martin Peck, CA-IT/BM, AUSTRIA.                            
                                                                        
Change 15.039  IBM's "MVS PSF DOWNLOAD" product created invalid SMF type
VMAC6          6 records (SMF6LN3/SMF6LN6 are located two bytes beyond  
Apr  1, 1997   where they should be).  APAR OW23937 reports the error,  
               and PTF UW34926 corrects the error, but bad records can  
               be read by MXG by conditionally INPUTing the two LENx    
               fields as PIB4 instead of PIB2 by inserting:             
                IF LENGTH=274 THEN INPUT @OFTONXT SMF6LN3 &PIB.4. @;    
                ELSE                                                    
               before the existing:                                     
                  INPUT @OFTONXT SMF6LN3 ..... statement                
               and by inserting                                         
                IF LENGTH=274 THEN INPUT @OFTONXT SMF6LN6 &PIB.4. @;    
                ELSE                                                    
               before the existing:                                     
                  INPUT @OFTONXT SMF6LN6 ..... statement                
               NOTE: This Change was NOT made to MXG Software, but is   
               only printed here for temporary circumvention to read    
               records created prior to the installation of the PTF.    
   Thanks to Hal Merritt, Texas Commerce Bank, USA.                     
                                                                        
Change 15.038 -Dataset TYPE72GO variable R732CIRC is now R723CIRC to be 
VMAC7072       consistent with other subtype 3 type 72 variables.       
Apr  1, 1997  -The calculation of NRPTRANS was incorrect, which also    
               caused the calculation of PERFINDX for Percentile Goals  
               to be incorrect.                                         
               The equation that was: NRPTRANS=TRANS*TRANEXEC/100;      
               is now:                NRPTRANS=TRANS*R723CPCT/100;      
              -IBM's RMF report calculation of PERFINDX for Percentile  
               Goal Service Classes can be wrong, producing a value that
               is greater than true, especially when the number of TRANS
               is small.  IBM sums transactions until the sum is GT the 
               percentage goal, but the definition in the SRM (and now  
               in MXG) should stop when the sum is GE.  For example,    
               with 10 transactions and a 70% goal value                
                 bucket:  1  2  3  4  5  6   7   8   9   10  11 12 13   
                 RTSMAP: .5 .6 .7 .8 .9 1.0 1.1 1.2 1.3 1.4 1.5  2  4   
                 RTSTRN:  3  0  1  2  1  0   1   0   0   0   0   1  1   
               RMF counts to the 7th bucket, setting PERFINDX=1.1, but  
               MXG and the SRM stop at the 5th bucket, PERFINDX=.9,     
               because 7 out of 10 transactions did meet the goal!      
               The equation     IF SUMPTRAN GT NRPTRANS THEN DO;        
               was changed to   IF SUMPTRAN GE NRPTRANS THEN DO;.       
                                                                        
              -26Jun97: The following error was originally documented   
               here in April, 1997, but now has been corrected by APAR  
               OW26609.  See MVS Technical Note 22 in Newsletter 32:    
                 Variable R723CIRC appears very right in lots of cases, 
                 but is very wrong in some Service Class data (notable, 
                 TSO, which has multiple periods) when compared to      
                 TYPE30 interval data. This is still under investigation
                 but it is most likely an IBM error in RMF              
                 daccumulation in multiple period service classes for   
                 this new variable.  The numbers on the RMF report look 
                 fine, because RMF only prints the avg time per I/O     
                 (R723CICT/R723CIRC); it looks like both fields are each
                 wrong!  For 5 periods of TSO in a 30 minute interval:  
                 R723CIRC R723CICT   R723CIWT   R732CIDT  ACTIVETM TRANS
                 23179776 15:45:17.81 2:18:18.80 6:23:29.81 0:01:28 1309
                   177746  0:07:53.98 0:01:07.03 0:03:24.63 0:01:22  358
                   342664  0:13:54.80 0:02:06.71 0:05:55.51 0:04:44  378
                    10639  0:00:29.34 0:00:04.83 0:00:02.56 0:00:49   10
                     5180  0:00:13.68 0:00:01.76 0:00:00.94 0:02:19    6
                 That is 16 hours of connect time in 30 minutes (or 32  
                 I/O concurrently transferring data during the entire   
                 interval) or is 13,000 SSCH per second?  I think not!  
              Clearly, APAR OW26609 must be installed to correct!       
   Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.  
   Thanks to Dale Mattison, Shared Medical Systems Corporation.         
                                                                        
Change 15.037  The INPUT of TYPE116 variable QWHCTNO must be changed    
VMAC116        from &PIB.4. to &NUM.4. (since the value is an EBCDIC    
Mar 29, 1997   number) and the INPUT of variable QWHCTASK must be       
               changed from &PIB.4. to &PD.4.  But see Change 15.043.   
   Thanks to Helmut Roese, COM GmbH, GERMANY.                           
                                                                        
Change 15.036  Duplicate.                                               
                                                                        
Change 15.035  The INPUT of TYPE80A variable ACEEUSER was increased from
VMAC80A        $VARYING20. to $VARYING30., as data of length 25 was     
Mar 29, 1997   found at one site, and an MXG note prints on the SAS log 
               if a longer length string is found in your data.  lmut   
   Thanks to HeRoese, COM Gmbh, GERMANY.                                
                                                                        
Change 15.034  CICS Statistics variable A08BKHSW must be INPUT &PIB.2.  
VMAC110        and +2 instead of &PIB.4., as it is only a half-word that
Mar 29, 1997   is followed by two reserved bytes.                       
   Thanks to Helmut Roese, COM Gmbh, GERMANY.                           
                                                                        
Change 15.033  Change 12.264 for IMF variables ABENDSYS and ABENDUSR was
VMACCIMS       only correct for old IMF 1.2, and only for ABENDSYS. The 
Mar 29, 1997   revised algorithm to decode the two intermingled fields  
               (stored as xxSSSUUU in four bytes) now reads:            
          @117+OFFIMS                 +1  /*SKIP OVER XX OF XXSSSUUU: */
          @118+OFFIMS ABENDSYS    &PIB.2. /*OVERLAY 117 118  119  120 */
          @119+OFFIMS ABENDUSR    &PIB.2. /*        XX   SS   SU   UU */
                                          /*        +1  ABENDSYS      */
                                        . /*        +1  +1   ABENDUSR*/ 
               The first byte is skipped, the second two bytes are input
               into ABENDSYS as PIB2., the third and fourth bytes are   
               INPUT in ABENDUSR as PIB2.  Then, after the INPUT ends,  
               in both the old 1.2 and later 1.3 groups, this code:     
                   ABENDUSR=MOD(ABENDSYS,16)+ABENDUSR;                  
                   ABENDSYS=FLOOR(ABENDSYS/16);                         
               creates ABENDSYS=0013x and ABENDUSR=0000x from 00013000x 
               (ABENDUSR must be done first, because it uses ABENDSYS   
               which then stores into itself).                          
   Thanks to M. Nicolas, BNP, FRANCE.                                   
                                                                        
Change 15.032  Variable SERVUNIT was only length 4 in PDB.STEPS and in  
BUILD005       PDB.SPUNJOBS, but it should have been length 5 (since    
BUIL3005       Change 14.214).  The LENGTH statement following PDB.STEPS
BUILDPDB       now has    SERVUNIT  5    added in the BUILxxxx members, 
BUILDPD3       as does the LENGTH statement following PDB.SPUNJOBS in   
SPUNJOBS       member SPUNJOBS.                                         
Mar 27, 1997                                                            
   Thanks to Trevor Ede, Bank of New Zealand, NEW ZEALAND.              
                                                                        
Change 15.031  Warning message that datasets WORK.INTxxx don't exist is 
BUILD004       because the datasets were deleted in both CICINTRV and   
BUILDPDB       the BUILD004/BUILDPDB/BUILDPD3 members.  Since these are 
BUILDPD3       CICS only datasets, the DELETE belongs in CICINTRV and   
Mar 27, 1997   they are removed from the DELETE in the three BUILDxxx   
               members.                                                 
   Thanks to Martin Peck, CA-IT/BM, AUSTRIA.                            
                                                                        
Change 15.030  When SOFTAUDIT is enabled to collect data only at the JOB
VMACSFTA       level, the record is only 115 bytes long, so the test    
Mar 27, 1997     IF LENM=131 THEN DO; must be changed to:               
                 IF LENM=115 OR LENM=131 THEN DO;                       
   Thanks to Rick Green, Comerica, Inc, USA.                            
                                                                        
Change 15.029 -Error in MXGCHAN macro caused RMF Channel Reports to fail
ANALRMFR       with a syntax error.  The statements &PDB..TYPE73  ;  and
Mar 27, 1997   &&PDB&I...TYPE73 ;   must have those semicolons removed. 
              -All of the "PROC PRINT"s and their TITLE statements      
               should have been deleted (they were debugging prints) to 
               save paper (or at least SPOOL space!).                   
   Thanks to Michael Creech, Alltel Information Services, USA.          
                                                                        
Change 15.028  Variable RVDSNAM1 (FIRST FILE*DATASET*NAME) is now INPUT 
VMACEDGR       (immediately after RVMEDATR) and kept in RMM dataset     
Mar 27, 1997   TYPEEDGR; I'm not sure when this field was added by IBM. 
   Thanks to Ben Cowan, UCCSN System Computing Services, USA.           
                                                                        
Change 15.027  NTSMF discovered new objects created by COMPAQ so four   
EXNTCMBU       new datasets are now created from these objects:         
EXNTCMCN         CMPQBUSU  Compaq EISA/PCI Bus Utilization              
EXNTCMDV         CMPQCTLR  Compaq 32-Bit SCSI-2 Controllers             
EXNTCMNF         CMPQDEVS  Compaq 32-Bit SCSI-2 Devices                 
IMACNTSM         CMPQCMNF  Compaq NetFlex-3 Network Driver              
VMACNTSM       I note that the Controllers record appears to have a per-
Mar 26, 1997   controller record with CTRLNAME containing the name of   
Apr 28, 1997   the controller (eg. \\.\Scsi0) and a second interval     
               record with CTRLNAME blank (which I assume is an interval
               total, but have not had two controllers' data for        
               verification).  Revised Apr 28:  NTSMF Version 2.0 adds  
               two new fields NTVERSN (NT VERSION, 4.0) and NTVERSP (NT 
               SERVICE PACK, SPK1) to the header of each NTSMF record.  
               The variables are kept in the PROCESOR dataset and in    
               dataset NTINTRV (although they will be blank until you   
               install NTSMF Version 2.                                 
   Thanks to Richard Clary, Entergy, USA.                               
                                                                        
Change 15.026  The new VELOCITY calculation for OS/390 Release 3        
VMAC7072       includes I/O delay time if it was enabled (see Change    
Mar 25, 1997   14.318), but some sites may need to know the old or new  
May 29, 1997   velocities before they are enabled, so two new variables 
               were introduced:                                         
                VELOCCPU 'CPU ONLY*EXECUTION*VELOCITY'                  
                VELOCIOD 'I/O DELAY*EXECUTION*VELOCITY'                 
               and are kept in both TYPE72 and TYPE72GO datasets. The   
               variable VELOCITY will continue to contain the actual    
               velocity, and variable R723VELI='Y' will flag whether or 
               not the value of VELOCITY contains I/O DELAY time.       
               Text of this change was incorrect until May 29, 1997, but
               the above change was made to the code in March.          
   Thanks to Cheryl Watson Walker, Watson & Walker, USA.                
                                                                        
Change 15.025  A typo had real impact - variable BATCHMAX was renamed to
TRNDRMFI       MATCHMAX.  The correct spelling is BATCHMAX.             
Mar 25, 1997                                                            
   Thanks to Dave Schultz, First Card, USA.                             
                                                                        
Change 15.024  A typo had minor impact - a FORMAT statement was absorbed
TYPEIMSB       as a comment because a comment was not terminated.  The  
Mar 25, 1997   INFILE IMSSUMS0 END=END; /* comment ....  text *         
               should have ended with */                                
   Thanks to Kristyann Manske, University of Wisconsin-Milwaukee, USA.  
                                                                        
Change 15.023  TYPE70 variable PCTMVSBY was wrong (although it did match
VMAC7072       IBM RMF report values) for Amdahl MDF domains with some  
Mar 25, 1997   shared and some dedicated CPUs.  The MXG equation was    
               (CPUUPTM-MVSWAITM)/CPUUPTM=58:56-16:00/58:56=43/59=72.8%,
               but that assumed the total dispatch time of all CPUs was 
               CPUUPTM=NRCPUS*DURATM or 59 minutes, when in fact the    
               true dispatch time was only 46 minutes, and the true CPU 
               busy time was 30 minutes, and not 43 minutes as shown    
               below:                                                   
                                                                        
               The MDF partition had DURATM=14:44.05 with CPUs 0 and 3  
               given 100% target allocation but CPUs 1 and 2 were shared
               with only 55% target allocation for this partition:      
                                                                        
                  LCPUn   CPUPDTMn  CPUWAITn  MVSWAITn  MVSBUSYn        
                    0     14:43.99   5:42.42   5:42.37   9:01.62        
                    1      8:35.56   8:22.62   2:14.13   6:21.43        
                    2      8:35.18   8:19.20   2:10.34   6:24.84        
                    3     14:43.92   5:53.71   5:53.59   8:50.33        
                                                                        
                          CPUPDTTM  CPUWAITM  MVSWAITM  CPUACTTM        
                  total   46:38.65  28:17.97  16:00:43  30:38.22        
                                                                        
                CPUACTTM has 30:38 minutes of actual CPU seconds for the
                partition, and CPUPDTTM has 46:30 minutes of dispatch,  
                so the true PCTMVSBY (percent of dispatch time when this
                MVS was busy) is 30/46 or 65.7% (versus IBM's 72.8%) so 
                the revised MXG equation is now:                        
                   PCTMVSBY=100*CPUACTTM/CPUPDTTM;                      
                (IBM footnotes that their value is the arithmetic mean, 
                which if correct if each LCPU is dispatched equally as  
                is the case with their PR/SM, so they implied you should
                be wary, but apparently IBM won't modify its RMF reports
                for MDF idiosyncrasies - but MXG does!).                
                                                                        
                The variable CPUUPDTM (total partition dispatch time) is
                also now calculated and kept in TYPE70 dataset.         
                                                                        
                This site also enabled the old Amdahl MDF option "Wait  
                Complete=No Reporting" (see Change 12.289), but that    
                option appears to be useless when engines are shared    
                between domains; while the real CPU usage is known, that
                option loses the domain dispatch time, so you can never 
                know what was the capacity available to each            
                domain/partition.                                       
   Thanks to Kirk Poore, Union Electric, USA.                           
                                                                        
Change 15.022  Old HP-PCS and new HP-MW code still had date litterals of
VMACHPAI       JAN70 (the epoch of the Unix Clock) that are now changed 
VMACMWAI       to JAN1970.  (With YEARCUTOFF default, SAS would have set
Mar 19, 1997   the correct date, but it is MXG's intention to support   
               the year 2000 intrinsicly, rather than thru YEARCUTOFF). 
   Thanks to Graeme Yeandle, British Telecom, ENGLAND.                  
                                                                        
Change 15.021 -Variables EDGSADTE and EDGSARSD are added to DATE9 format
FORMATS        and the ELSE was removed from ELSE IF after the INPUT of 
VMACEDGS       EDGSAFLG in the ID=_IDEDGUS logic block (because records 
Mar 19, 1997   from SMF were not INPUT due to the extraneous ELSE).     
Mar 29, 1997  -Variable EDGSASID must be input as $EBCDIC4. instead of  
               $EBCDIC8. in the EDGSSECU dataset - not only was EDGSASID
               wrong, but all following fields were too, but fortunately
               the EDGSSECU data set is just now being investigated!    
              -Value  18:SAF CALL was added to the MGACFDA format in    
               member FORMATS for ACF2.                                 
   Thanks to Pete Young, University of Toronto, CANADA.                 
                                                                        
Change 15.020  JES3 BUILDPD3 created additional PDB.JOBS/PDB.STEPS obs  
BUILDPD3       that contained only TAPEMNTS TAPFETCH SMFTIME, because   
BUIL3005       multiple TYPE25 observations were inadvertently created. 
Mar 19, 1997   In the logic following DATA ONE25;, find the statement   
                TAPEMNTS=MOUNT; and insert the statement  OUTPUT;       
               immediately following (and before the END;).             
   Thanks to Neal Musitano, Jr., Department of Veterans Affairs, USA.   
                                                                        
Change 15.019  Variable ULOGADAE was changed to be INPUT as &PIB.4.3    
VMACCOMP       in only one statement, but there were two overlooked     
Mar 19, 1997   statements for ULOGADAE that are now also changed.       
   Thanks to Jens Schlatter, Independent Consultant, GERMANY.           
                                                                        
Change 15.018 -The Label for dataset TYPE8011 should be ALTDSD and not  
VMAC80A        ADDUSER.                                                 
Mar 19, 1997  -Variable USERID was inadvertently removed from TYPE8014  
               dataset in MXG 14.14, so USERID was added to KEEP= list  
               for dataset TYPE8014, and the 1st occurrence of USEROWNR 
               after ELSE IF RACFEVNT=14 THEN DO; after WHEN (6) was    
               changed back to USERID, so both USERID and USEROWNR will 
               be kept in TYPE8014 dataset.                             
   Thanks to Jens Schlatter, Independent Consultant, GERMANY.           
                                                                        
Change 15.017  Support for CA-ROSCOE Version 6 SMF Record has been      
VMACROSC       verified (i.e., the V6 records do not cause MXG to fail  
Mar 18, 1997   although I have not yet verified with the DSECT).        
   Thanks to Bob Bunt, NYSEG, USA.                                      
                                                                        
Change 15.016  Support for CA-DISPATCH Version 6 and five-digit JESNR.  
IMACCADI       CA relocated the five-digit JESNR to a new area at the   
VMAC6          end of the record, and new fields CADIARCH and CADIBUND  
Mar 14, 1997   are now created (only if you enable CADI support in the  
               IMACCADI tailoring member).                              
   Thanks to Kenton O'Brien, Barclays, ENGLAND.                         
                                                                        
Change 15.015  Support for Anacom's Anastack product (spools data to    
VMAC6          microfiche, etc.) which writes a type 6 SMF record.  The 
Mar 14, 1997   record is an "External Writer" record (DEVICE='EXT WTR') 
               so many of the JES-only and PSF-only fields will be      
               missing, but the event, JOB, and number of lines are     
               captured.  No code was changed in MXG, since external    
               writer records are already supported.                    
   Thanks to Dave Crandall, Farmers Group, USA.                         
                                                                        
Change 15.014  Change 14.245 (added variables to some BY statements to  
WEEKBLD        better protect for duplicate SMF records in BUILDPDB) was
WEEKBLDT       not fully implemented in WEEKBLD and WEEKBLDT, so the BY 
Mar 12, 1997   lists are not exactly the same, but there should be no   
               execution error.  Now, the BY lists are consistent.      
   Thanks to Tom Parker, Hogan Systems, USA.                            
                                                                        
Change 15.013  Variable SSTORE72 (Shared Pages Bytes) is now created in 
VMAC7072       dataset TYPE72GO, for consistency with variables         
Mar 12, 1997   CSTORE72 ESTORE72 TSTORE72 that were added earlier.      
   Thanks to Bruce Widlund, Merrill Consultants, USA.                   
                                                                        
Change 15.012 -NTSMF records from NT 3.51 for SQLSERVER, SQLSERVER-LOCKS
IMACNTSM       and SQLSERVER-LOG have fewer fields than NT 4.0; now that
VMACNTSM       I have raw records, MXG was enhanced to support these NT 
Mar 12, 1997   3.51 records.                                            
   Thanks to Richard Clary, Entergy, USA.                               
                                                                        
Change 15.011  Variable SMF744PN was added to dataset TYPE74CF to count 
VMAC74         the number of processors in this Coupling Facility. You  
Mar 11, 1997   you could have derived the number from CFNUM01-CFNUM16,  
               by counting, but you should not have to!.                
   Thanks to Rick Poliak, Amdahl, USA.                                  
                                                                        
Change 15.010  Support for Landmark's "Performance Works/Smart Agents   
ADOCPW         for UNIX" dumped output (see ADOCPW for syntax of their  
EXPWACCT       dump command) creates twenty new PWPxyyyy datasets:      
EXPWCPUP       From Product Detail records:                             
EXPWDEVD          Dataset Name       Description                        
EXPWDEVS           PWPDACCT          PROCESS ACCOUNTING                 
EXPWFSL            PWPDFSL           LOCAL FILE SYSTEM CAPACITY         
EXPWFSR            PWPDFSR           REMOTE FILE SYSTEM RECORD          
EXPWMESS           PWPDPD            PROCESS DETAIL                     
EXPWNCO            PWPDPDI           PROCESS DETAIL INTERVAL            
EXPWNIND           PWPDPDS           PROCESS SUMMARY                    
EXPWNINS           PWPDPGM           PROGRAM RECORD                     
EXPWNSO            PWPDTERM          TERMINAL SUMMARY RECORD            
EXPWPD             PWPDUFSQ          QUOTAS RECORD                      
EXPWPDI            PWPDUFSS          USER FILE SYSTEM STORAGE           
EXPWPDS            PWPDUSER          USER SUMMARY RECORD                
EXPWPGM        From Product Interval records:                           
EXPWPI            Dataset Name       Description                        
EXPWTERM           PWPICPUP          PROCESSOR RECORD                   
EXPWUFSQ           PWPIDEVD          DEVICE USAGE INTERVAL              
EXPWUFSS           PWPIDEVS          DEVICE USAGE SUMMARY               
EXPWUSER           PWPINCO           NFS CLIENT OVERVIEW                
IMACPW             PWPININD          NETWORK INTERFACE INTERVAL         
JCLPW              PWPININS          NETWORK INTERFACE SUMMARY          
TYPEPW             PWPINSO           NFS SERVER OVERVIEW                
VMACPW             PWPIPI            SYSTEM SUMMARY RECORD              
Mar 11, 1997   From Product Log records:                                
                  Dataset Name       Description                        
                   PWPLMESS          CONSOLE MESSAGES TEXT              
               Landmark's initial response to documentation was to use  
               the "ODBC" interface to their database, but this could   
               only work if you intended to run SAS on the UNIX system  
               you are measuring, so MXG's more general solution is to  
               use their ASCII dump of the data store, so you can ship  
               the raw ASCII data (convert to EBCDIC during transfer) to
               OS/390 for processing there like your other "SMF" data.  
               (The MXG code will also work fine on UNIX or WINDOWS to  
               directly process the dumped ASCII.)                      
                                                                        
               Unfortunately, their dump has no selectivity of fields,  
               so you must dump all fields of each record (the CPUP has 
               32 fields in the Data Model, but 105 fields in their data
               store!).  And you cannot select the interval; you get all
               all six drawers: minute,hour,day,week,month,and year.    
               And of course, being typically-UNIX, the drawer values   
               are m,H,d,w,M,Y, with upper and lower case "m" in use for
               two different drawers - a nice exposure to coding errors 
               that mandates VMACPW must be in mixed-case!!!!! In spite 
               of these deficiencies, the process does work so that you 
               can monitor your UNIX resources with Landmark's PW       
               replacement for The Monitor for Unix, formerly TYPETUX.  
   Thanks to Dan Sedorik, SmithKlein Beecham, USA.                      
                                                                        
Change 15.009  Support for APAR OW25152 that adds PRINTWAY Print Queue  
VMAC6          Name SMF6PRTQ to TYPE6 dataset, compatibly made.  I have 
Mar  7, 1997   assumed a maximum name length of 16 to save storage.  The
Jul 14, 1999   PRINTWAY internal subsystem value of SMF6SBS='0009'x is  
               used by MXG to set SUBSYS='TCP' for PRINTWAY records.    
               See Change 17.171 for PRINTWAY impact on TYPETASK.       
                                                                        
Change 15.008 -Wrong values for CSCONF,CSAVAIL,CSOFFL,CNCONF,CNPINNED   
VMACACHE       and CSSTAT with Hitachi 7700, probably due to bad IBM    
VMAC74         SMF documentation rather than Hitachi.  In the SMF manual
Mar  7, 1997   CSSTAT='....1111'B is the 3990-6 Enhanced Mode flag, and 
               that is the value in IBM 3990 records, but IBM's Storage 
               Control manual GA32-0274 documents CSSTAT='.......1'B as 
               the expected value, and that is the value in Hitachi 7700
               records (which are in fact in Enhanced Mode format)!  To 
               support both IBM and Hitachi, MXG's test is changed to:  
                 IF CSSTAT='.......1'B THEN DO;                         
               (The storage sizes are in units of 1024 bytes in the     
               3990-Enh format records, or are in bytes if not.)        
              -In VMAC74, the label for CSSTAT is 3990-6 (vice 3880-6!).
              -A second HDS 7700 problem: with 3GB of cache, 4080GB of  
               cache is reported! (Raw data value is 'FF040000'X).  PTF 
               UW36274 may address, but Hitachi is investigating and    
               this note will be updated when more is known.            
   Thanks to Miller Dickson, DST Systems Inc, USA.                      
                                                                        
Change 15.007  Analysis of APAF Shared processors used NUMLP (the number
ANALAPAF       of total engines) to calculate PHY_BUSY, but using number
Mar  7, 1997   of engines available to this domain, LINUMLPS, makes more
               sense.                                                   
   Thanks to Gary Strohminger, AT&T Transtech, USA.                     
                                                                        
Change 15.006  ERROR: WORK.CICINTRV.DATA DOES NOT EXIST if you changed  
CICINTRV       IMACCICS to write CICS Statistics to the //WORK DD.      
Mar  7, 1997   Move the PROC DATASETS; DELETE CICINTRV; to the bottom   
               of member CICINTRV to correct my error.                  
   Thanks to Fred Kaelber, Pacific Bell, USA.                           
                                                                        
Change 15.005  Cosmetic.  Label for variable SMF42EAC should have been  
VMAC42         ACTIVATE*ENF OR*VARY SMS (instead of VARY SMF).          
Mar  7, 1997                                                            
   Thanks to Solomon Baker, Prudential, USA.                            
                                                                        
Change 15.004  OS/390 V 1 Rel 3 type 72 record INPUT STATEMENT EXCEEDED 
VMAC7072       RECORD LENGTH error.  The statement SKIP=SKIP-24; that   
Mar  1, 1997   is after the statement R723CIDT=128*R723CIDT; must be    
               changes to SKIP=SKIP-68;                                 
   Thanks to Perry Gibson, Candle Corporation, USA.                     
                                                                        
Change 15.003  All OMVS File Activity datetimestamps were in GMT, but   
VMAC92         are now converted from GMT to local (using the same      
Feb 27, 1997   algorithm introduced in Change 14.311).  In TYPE9210, the
               close time, SMF92CTC, is often .01 seconds later than the
               SMFTIME value, which in theory should not happen, but is 
               valid because SMFTIME informat is truncated to .01 sec   
               resolution while TODSTAMP (SMF92CTC) informat has micro  
               second resolution that is rounded to .01 seconds by the  
               DATETIME21.2 format.  A true time of .026 seconds will   
               be .02 input as SMFTIME and .026 if input as TODSTAMP,   
               but will print as .02 and .03 respectively with the      
               DATETIME21.2 format (increasing that format to 22.3      
               would show the .026 value).                              
   Thanks to Perry Gibson, Candle Corporation, USA.                     
                                                                        
Change 15.002  Variable TERMIND was added to the _PDB30_4 macro so it is
IMACPDB        now kept in PDB.STEPS, as enhancement for ABEND decoding,
Feb 27, 1997   in case of multiple bits.                                
   Thanks to Dan Adams, Facilities Systems Office (FACSO), USN, USA.    
                                                                        
Change 15.001  File counts were not properly decoded in TYPETMON, and   
TYPETMON       one MXG 14.14 change made it worse!  The statement       
Feb 22, 1997     FILECOL=TAFATOFF+6+LOC-LENMONI;    must be changed to  
                 FILECOL=TAFATOFF+1;                                    
               In addition, MXG 14.14 added a block of code             
                 LOC=COL;  INPUT SYSID .... SYSTEM $EBCDIC4 @LOC @;     
               but both "LOC"s must be changed to "TLOC".               
   Thanks to Bob Hall, USA Group, USA.                                  
                                                                        
LASTCHANGE: Version 15