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

CHANGE 21.21

 
=========================member=CHANGE21================================
 /* COPYRIGHT (C) 1984-2004 MERRILL CONSULTANTS DALLAS TEXAS USA */

Final    MXG Version 21.21  is dated Feb 11, 2004, thru Change 21.320
Annual   MXG Version 21.21 was dated Feb  6, 2004, thru Change 21.319
Last     MXG Version 21.08 was dated Jan 28, 2004, thru Change 21.292
First    MXG Version 21.08 was dated Jan 25, 2004, thru Change 21.289
Final    MXG Version 21.07 was dated Dec  2, 2003, thru Change 21.247
First    MXG Version 21.07 was dated Nov 30, 2003, thru Change 21.245
Final    MXG Version 21.06 was dated Nov 12, 2003, thru Change 21.230
Second   MXG Version 21.06 was dated Nov 10, 2003, thru Change 21.228
First    MXG Version 21.06 was dated Nov  7, 2003, thru Change 21.226
         MXG Version 21.05 was dated Sep 22, 2003, thru Change 21.183
First    MXG Version 21.05 was dated Sep 18, 2003, thru Change 21.181
         MXG Version 21.04 was dated Aug 25, 2003, thru Change 21.159
         MXG Version 21.03 was dated Jul 28, 2003, thru Change 21.133
         MXG Version 21.02 was dated Jun  9, 2003, thru Change 21.101.
Second   MXG Version 21.02 was dated Jun  5, 2003, thru Change 21.094.
First    MXG Version 21.02 was dated Jun  3, 2003, thru Change 21.091.
         MXG Version 21.01 was dated Mar 24, 2003, thru Change 21.051.
Annual   MXG Version 20.20 was dated Feb  7, 2003, thru Change 20.341.
         MXG Newsletter FORTY-TWO was dated Feb 8, 2003.

Contents of member CHANGES:

  Member NEWSLTRS (and the Newsletters frame at http://www.mxg.com) now
  contain the current MXG Technical Notes that used to be put in member
  CHANGES between Newsletters.  New Technical Notes are now added (and
  now dated!) in NEWSLTRS/Newsletters with each new MXG Version.

I.    MXG Software Version 21.21 was shipped to all sites by Feb 13.
II.   Incompatibilities and Installation of MXG 21.21.
III.  Online Documentation of MXG Software.
IV.   Changes Log

=======================================================================

I.  MXG Software Version 21.21, the Annual Version, was sent by Feb 13.

  MXG 21.21 supports every new version of every new product that you are
  likely to install this year, especially for MVS systems, including new
  z/OS 1.5, CICS/TS 2.3, DB2 V8.1, and IMS V8.1 products, and new data
  added by PTFs, and data for those releases from the monitor vendors
  IBM, ASG, BMC, Candle, CA, etc.  And for ASCII system there are new
  objects in existing products (NTSMF, TNG) and more support for "sar"
  and AIX Performance Tool for unix systems. Details provided below.

  MXG 21.21 has been tested under SAS Version 9.1 and runs fine; use the
  CONFIGV9 member and MXGSASV90 JCL Procedure member for z/OS execution;
  for ASCII, use the current AUTOEXEC file.  See Change 21.290.

  And replacing your existing version of MXG is easy; as there are no
  structural changes, you shouldn't have to change any of your current
  MXG "Tailoring"; you build the Source Library, create/update the MXG
  Format Library, change the DSNAME/DIRECTORY name to use MXG2121, and
  run your acceptance test.  That's all that should be required.

    Major enhancements added in MXG 21.21

  all      21.310  Support for z/OS 1.5.
  AUTOEXEC 21.290  Option defaults changed for SAS V 9.1 for ASCII.
  CONFIGV9 21.290  Option defaults changed for SAS V 9.1 for EBCDIC.
  ASMTAPEE 21.304  New MXG Tape "Event" Mount/Allocate/Recvr Monitor.
  TYPE120  21.294  Support for JVM Heap sizes in SMF 120 st 1 and 3.
  TYPEBE97 21.312  Support for Beta97 User SMF record.
  TYPEOMVT 21.311  Support for Omegamon/VTAM subtypes 29 and 30.
  UNIXSAR1 21.309  Support for "sar", "acctcom", "ps" for AIX/SUN unix.
  UNIXTOP  21.314  Support for "top" unix report.
  DAILYDSR 21.293  Support for DFSMS/rmm+DCOLLECT in JCLDAYDS example.
  EMAIL    21.308  Example to email a PROC PRINT to a list of users.
  SYSLOG   21.307  Example program to read SYSLOG for job events.

    Major enhancements added in MXG 21.08

  SAS V9.1 21.289  Note 49-169 blanks inserted to eliminate note
  TYPEDB2  21.281  Support for DB2 Version 8.1, COMPATIBLE back to 20.20
  TYPE42   21.288  Support for Type 42 Subtype 10 TYPE42VS Vol Sel Fail
  TYPENDM  21.286  Support more NDM/Connect Direct subtypes, 26 new dset
  TYPENTSM 21.285  Support for Web Service Cache, WSRM objects.
  PROCCOPY 21.279  Use MT=DATA with PROC COPY + SELECT for performance.
  TYPETPMX 21.271  Major enhancement/validation of ThruPut Manger SMF
  TYPETNG  21.269  Major enhancement/validation of new TNG objects.
  TYPENETM 21.263  Support for UniCenter NetMaster Automate Services SMF
  TYPE115  21.262  WebSphere MQ Version 5.3 SM115REL added.
  TYPE116  21.262  WebSphere MQ Version 5.3 SM116REL added.
  TYPEDB2  21.259  Using VMXGTIME with DB2 caused GMTOFFDB/QWACBSC wrong
  BLDSMPDB 21.255  New BLDSMPDB builds SMF PDB Jobstream, weekly, etc.
  VMXGINIT 21.253  Global macro variables TRENDOLD/TRENDNEW/TRENDINP.
  RMFMON   21.252  Free Interactive RMF control block monitor.
  TYPESASU 21.251  Support for SAS SMFEXIT adds SAS Version/User/JOBID.
  ANALALL  21.250  ANALALL/ANALJOBN/VMXGPRAL job counting SMF records.

    Major enhancements added in MXG 21.07

  TYPEOMDB 21.243  Support for Candle Omegamon II for DB2 Historical.
  TYPEOPFT 21.233  Support for Fujitsu Siemens openFT ftp SMF record.
  TYPE110  21.240  Support for new S4RSP7CT in STID=124 CICS record.
  TYPEMWUX 21.241  Revised support for HP Measureware for HPUX.
  ASUMCICS 21.242  Protection for OPERATOR/TERMINAL variable not found.
  TYPE74   21.238  Dataset TYPE74DU (RMF DUPLEX CF) was trashed.
  ANALDB2R 21.239  Ability to read multiple PDBs in ANALDB2R restored.
  ASUMUOTT 21.237  New ASUMUOTT combines TMDBDB2 and MONITASK datasets.
  ASMRMFV  21.236  Wrong member replaced; this has change 21.186 code.
  UTILBLDP 21.231  USERADD=80/90 create TYPE80A or TYPE90A execution.

    Major enhancements added in MXG 21.06

  ASUMUOW  21.220  FLASH: MXG 21.06 required to have all errors fixed.
  TYPETSMF 21.210  Support for IBM Tivoli Storage Manager Acct Records.
  TYPE102  21.175  Support for IFCIDs 217 and 254.
  TYPETNG  21.160  Support for TNG Version 7 (INCOMPAT, Header changed).
  TYPE99   21.217  Support for SMF 99 subtype 7 PAV Device record.
  TYPE80A  21.215  Support for EKC's ETF/R FIRECALL SMF 80 data.
  TYPEORAC 21.213  Support for Oracle V9.x, no changes.
  TYPE110  21.212  Support for CMODNAME='MQSeries' CICSTRAN segment.
  TYPE110  21.152  Support for CICS/TS 2.3 (INCOMPATIBLE)in MXG 21.05+.
  TYPE80A  21.211  Support for RACF segment RACFDBP=44, new variables.
  TYPECIMS 21.205  Support for Shared Message Queue Group in SMQGROUP.
  TYPEEXCH 21.195  Support for Microsoft Exchange Server 5.5 Log file.
  TYPE119  21.190  Support for APAR PQ77633, corrects FTPREPLY.
  none     21.184  Support for 3592 Tape Drives, they look like 3590s.
  TYPESYNC 21.192  Up to 255 SORTWORKs supported in z/OS 1.1 SMF record.
  RMFINTRV 21.225  RMF WORKLOAD name can be used to define workloads.
  TYPE70   21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  RMFINTRV 21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  TYPEDB2  21.200  Negative values for DB2TCBTM if QWACEJST small.
  TYPE110  21.198  Missing value for STRTTIME in CICSTRAN possible.
  VMXGSUM  21.185  New INTERVAL=SECOND now supported.
  CONFIGV8 21.168  SORTSEQ=EBCDIC or SORTSEQ=ASCII forced default.
  RMFINTRV 21.216  z990 CPUTYPE 2084 NOT IN TABLE with OS/390 R2.10.
  TYPE6    21.210  Support for several ESS segments '34x,35x,37x,47x'.
  TYPEDB2  21.208  QWACBSC/QWACESC missing in DB2ACCTP, some packages
  ASUMCACH 21.197  Enhanced to keep I/O by LPAR in PDB.ASUMCACH.
  TYPE110  21.189  New 110 St=1 MNSEGCL=5 caused INVALID DO LOOP CONTROL

    Major enhancements added in MXG 21.05

  TYPE70   21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  RMFINTRV 21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  TYPE110  21.176  New TSQUEUE SMF 110 CL 5 INPUT STATEMENT EXCEEDED.
  TYPE110  21.165  STID=126 UNEXPECTED data corrected.
  TYPE102  21.175  Support for IFCIDs 217 and 254.
  TYPE116  21.173  Subtype 0 SMF 116 INVALID PRODUCT SECTION message.
  TYPE119  21.162  IFDURTM was incorrectly divided by 496 vice 4096.
  TYPETNG  21.160  Support for TNG Version 7 (INCOMPAT, Header changed).
  TYPEWWW  21.166  IIS Web Log with missing fields now supported
  CONFIGV8 21.168  SORTSEQ=EBCDIC or SORTSEQ=ASCII forced default.
  MONTHBLD 21.163  Enhancement for un-sorted input, or NOT SORTED ERROR.

    Major enhancements added in MXG 21.04

  TYPE7072 21.149  Support for z990 - INCOMPATIBLE - REQUIRED.
    While the support for z990s was in MXG 21.04, it was not
    realized that MXG 21.04 is REQUIRED for z990s until 16Sep.
  ASUM70PR 21.149  Major LPAR Measurement Enhancement: PDB.ASUM70LP.
  ASMTAPES 21.137  ASMTAPES new Allocation Recovery event record.
  UTILBLDP 21.148  Enhancement to the "Build your own PDB" utility.
  TYPEEDGR 21.158  Support for z/OS 1.4 DFSMS/rmm EDGRXEXT (INCOMPAT)
  TYPECTLL 21.156  Support for Control-D Log file.
  TYPENSPY 21.155  Doc: support for NetSpy V6 or V7 in MXG 20.10+.
  TYPECIMS 21.153  Support for BMC MVIMS IMF 3.3.0 (COMPAT)
  TYPE120  21.150  Support for CPU Time in WASserver APAR PQ74463.
  ASUMUOW  21.147  Near-constant value STRTTIME error in PDB.CICS.
  TYPENTSM 21.146  Support for Windows 2003 Server MEMORY object.
  TYPEHMF  21.143  Support for HMF Subtype 29,30,32,33 changes.
  TYPETCP  21.142  TYPETCPS contained accumulated, not interval data.
  FORMATS  21.141  $MG070CP updated for MSU for CPUTYPE 084 table.
  TYPEDB2  21.140  PDB.DB2STATS QBGLxxxx wrong, negative B3HITRAT.
  TYPE7072 21.138  R723Rxxx vars now kept in TYPE72DL vice TYPE72SC.
  TYPENTSM 21.136  SMPTSERV for Windows 2000 had accumulated values.
  ANALSTK  21.135  Report using STK SMF + MXGTMNT to track Virtual tape.
  ANALDB2R 21.157  Accounting Summary Class 2 were totals, not avgs.

    Major enhancements added in MXG 21.03

  TYPE7072 21.130  Support for APAR OW56656 for RMF for z990 (COMPAT).
  TYPE102  21.121  Support for IFCID 251, 257, corrections for 21.
  TYPE103  21.115  Support for APAR PQ71799 HTTP Server SMF 103 data.
  TYPE120  21.107  Support for WebSphere APAR PQ74463 - adds CPU time.
  TYPETMMQ 21.129  Support for ASG-Landmark TMON for MQ Series.
  TYPENDM  21.133  Support for NDM Release 4.3 (INCOMPATIBLE).
  TYPEENTX 21.124  Support for EntireX user SMF accounting record.
  TYPEICE  21.102  Support for STK IXFP SMF L2P00A2/LZP00A9 (COMPAT)
  TYPEQACS 21.118  Support for TCP and TCPIEF objects for AS/400.
  TYPEMVCI 21.117  Support for Mainview for CICS 5.6 CMRDETL (INCOMPAT).
  TYPEAIX  21.116  Major revision to AIX PTX Support - new datasets.
  VMXGRMFI 21.125  Different SRVCLASS definitions can map to same WORK.

  Incompatible revision:
      If you used ASUMCICS to read ASG-TMON/CICS MONITASK to create
      PDB.CICS, you must now instead use ASUMCICT.  But MXG recommends
      you no longer use either ASUMCICS nor ASUMCICT, but instead you
      should use ASUMUOW/ASUMUOWT to create PDB.ASUMUOW, and then create
      PDB.CICS using ASUMCICX to properly measure CICS.  See the
      discussion in Change 21.105 text.
  ASUMCICS 21.105  Reads only CICSTRAN, creates PDB.CICS, don't use.
  ASUMCICT 21.105  Reads only MONITASK, creates PDB.CICS, don't use.
  ASUMCICX 21.105  Reads PDB.ASUMUOW; use instead of ASUMCICS/ASUMCICT.
  ASUMUOW  21.105  Combines CICSTRAN,DB2ACCT, creates PDB.ASUMUOW, use!
  ASUMUOWT 21.105  Combines MONITASK,DB2ACCT, creates PDB.ASUMUOW, use!

    Major enhancements added in MXG 21.02

  TYPE7072 21.065  Support for more than 16 CPUs or LPARs.
  TYPE74   21.058  Support for APAR OW54347 CMR Command Response time
  TYPETMS5 21.097  Support for PDC # QI30130 new variables.
  TYPEIMS7 21.064  Support for IMS Version 8.1, some changes.
  ASMIMSL6 21.064  Support for IMS Version 8.1; just reassemble L6.
  IMAC6ESS 21.082  Support for additional GPARMKY values in SMF 6 ESS.
  IMAC6ESS 21.096  Support for GEPARMKY=001B.
  TYPE30   21.086  Support for IDMS/R PerfMon type 30 subtype 3 per tran
  TYPENTSM 21.063  Support for NTSMF 2.4.5 (INCOMPATIBLE).
  TYPENTSM 21.053  Support for NTSMF BlackBerry Server object.
  TYPETNG  21.095  Support for six new TNG objects, new fields.
  EXUTILEX 21.069  Exit for UTILEXCL for non-standard "User" field.
  VMXGRMFI 21.067  Examples to invoke RMFINTRV twice, general cleanup.
  ASUMUOW  21.062  Revised SPINUOW logic, forward sequence of times.
  ASUMUOW  21.093  Blank SYSTEM in PDB.ASUMUOW for CICS-only fixes.
  TYPE102  21.061  Support for dataset T102S196 (locks) validated.
  TYPE74   21.059  TYPE74ST negative values corrected, QSIZ retained.
  FORMATS  21.057  RACF MG080QU,TY formats updated for z/OS 1.2-1.4.
  BUILDPDB 21.056  Exit EXPDBSPJ created for local variables for spin.
  UTILEXCL 21.054  Variables KY8DISTM/KY8CPUTM corrected.
  MICSMXG  21.089  New member documenting MICS replacement by MXG.

    Major enhancements added in MXG 21.01

  ASMRMFV  21.002  Improved processing of RMF III data.
  CLRMFIII 21.002  CLIST for batch execution to read all RMF III data.
  DOCLRMFV 21.002  Documentation of CLRMFIII CLIST.
  GRAFTRND 21.040  New plots of Peak to Average Utilization ratio.
  MXGSASV8 21.009  Symbolic parm WORKVOL= added, default 5 volumes
  SAS V9   21.028  Early V8-V9 comparisons flawed, V9 is better.
  TYPE108  21.018  Support for Domino Server Relase 6.0.0 new data.
  TYPECTLT 21.026  Support for Control-T Release 6.0/6.1(INCOMPATIBLE).
  TYPEQACS 21.033  AS/400 5.2 file's LRECLs have been validated.
  TYPETNG  21.024  Support for TNG "Enterprise Cubes", Processes, plus.
  TYPEXAM  21.023  Support for TCP/Linux/etc, plust lots of cleanup.

  See member NEWSLTRS or the Newsletters frame at www.mxg.com for
  current MXG Technical Notes that used to be in CHANGES.

  MXG New Version QA tests are executed on OS/390 & z/OS with SAS V8.2,
  V9.0 and (archaic) V6.09, and on Windows 2000 & XP with V8.2 and V9.1
  on Intel platforms.  Additional tests have been run with SAS V8.2 on
  Linux RH 7.2 on Intel, with V9.1 on Solaris v2.8 model v880, and V9.1
  on HP-UX v11.11 model rp5470, confirming full compatibility.  So MXG
  executes under SAS V8.2 or later on every possible SAS platform!
  Each new version is also tested with SAS/ITSV by ITSV development.


  All of these enhancements are described in the Change Log, below.

    Availability dates for the IBM products and MXG version required:

                                       Availability     MXG Version
      Product Name                     Date              Required

      MVS/ESA 4.1                      Oct 26, 1990         8.8
      MVS/ESA 4.2                      Mar 29, 1991         9.9
      MVS/ESA 4.2.2                    Aug 15, 1991         9.9
      MVS/ESA 4.3                      Mar 23, 1993        10.10
      MVS/ESA 5.1.0 - compatibility    Jun 24, 1994        12.02
      MVS/ESA 5.1.0 - Goal Mode        May  3, 1995        13.01
      MVS/ESA 5.2.0                    Jun 15, 1995        13.05
      MVS/ESA 5.2.2                    Oct 19, 1995        13.09
      OS/390  1.1.0                    Feb 22, 1996        14.01
      OS/390  1.2.0                    Sep 30, 1996        14.05
      OS/390  1.3.0 Compatibility Mode Mar 28, 1997        14.14
      OS/390  1.3.0 WLM Goal Mode      Mar 28, 1997        15.02
      OS/390  2.4.0                    Sep 28, 1997        15.06
      OS/390  2.5.0                    Feb 24, 1998        15.06
      OS/390  2.6.0                    Sep 24, 1998        16.04
      OS/390  2.7.0                    Mar 26, 1999        16.09
      OS/390  2.7.0 APAR OW41317       Mar 31, 2000        18.03
      OS/390  2.8.0                    Aug 24, 1999        16.09
      OS/390  2.8.0 FICON/SHARK        Aug 24, 1999        17.08
      OS/390  2.8.0 APAR OW41317       Mar 31, 2000        18.03
      OS/390  2.9.0                    Mar 31, 2000        18.03
      OS/390 2.10.0                    Sep 15, 2000        18.06
      OS/390  PAV                      Oct 24, 2000        18.09
      z/OS    1.1                      Mar 30, 2001        18.11
      z/OS    1.1 on 2064s             Mar 30, 2001        19.01
      z/OS    1.1 with correct MSU     Mar 30, 2001        19.02
      z/OS    1.2                      Oct 31, 2001        19.04
      z/OS    1.1,1.2 APARs to 78      Oct 31, 2001        19.05
      z/OS    1.2, IRD enhancements    Apr 26, 2002        20.01
      z/OS    1.2+ APAR OW52227        Apr 26, 2002        20.02
      z/OS    1.3+ APAR OW52227        Apr 26, 2002        20.02
      z/OS    1.2 JESNR Z2 MODE        Apr 26, 2002        20.03
      z/OS    1.3 JESNR Z2 MODE        Apr 26, 2002        20.03
      z/OS    1.4 Tolerate             Sep 27, 2002        20.03
      z/OS    1.4 Support              Sep 27, 2002        20.06
      z/OS    1.4 Over 16 CPUs/LPARs   May 29, 2003        21.02
      z/OS    1.4 DFSMS/rmm, RACF      Aug 29, 2003        21.04
      z990 CPUs - CPUTYPE '2084'x      Aug 25, 2003        21.04
      z/OS    1.5                      Mar 31, 2004        21.21
      CICS/ESA 3.2                     Jun 28, 1991         9.9
      CICS/ESA 3.3                     Mar 28, 1992        10.01
      CICS/ESA 4.1                     Oct 27, 1994        13.09
      CICS/ESA 5.1 aka CICS/TS V1R1    Sep 10, 1996        14.07
      CICS-Transaction Server V1R1     Sep 10, 1996        14.07
      CICS-TS V1R1 with APAR UN98309   Sep 15, 1997        15.06
      CICS-TS V1R2  CICS/TS 1.2        Oct 27, 1997        15.06
      CICS-TS V1R3  CICS/TS 1.3        Mar 15, 1999        17.04
      CICS-TS for Z/OS Version 2.1     Mar 15, 2001        18.11
      CICS-TS for Z/OS Version 2.2     Jan 25, 2002        19.19
         CICSTRAN subtype 1 support only                  *19.19
         CICSTRAN subtype 2 completed                     *19.08
      CICS-TS for Z/OS Version 2.3     Dec 19, 2003        21.04
      DB2 2.3.0                        Oct 28, 1991        10.01
      DB2 3.1.0                        Dec 17, 1993        13.02A
      DB2 4.1.0 Tolerate               Nov  7, 1995        13.07
      DB2 4.1.0 Full support           Sep 11, 1996        14.07
      DB2 5.1.0 Tolerate               Jun 27, 1997        14.14
      DB2 5.1.0 Full support           Jun 27, 1997        15.02
      DB2 6.1.0 initial support        Mar 15, 1999        16.09
      DB2 6.1.0 all buffer pools       Mar 15, 1999        18.01
      DB2 6.1.0 parallel DB2           Mar 15, 1999        19.19
      DB2 7.1.0 parallel DB2           Mar 31, 2001        19.19
      DB2 7.1.0 corrections            Mar 31, 2001        20.06
      DB2 8.1 Tolerate                 Mar 31, 2004        20.20
      DB2 8.1 New Data Supported       Mar 31, 2004        21.08
      DFSMS/MVS 1.1                    Mar 13, 1993        11.11
      DFSMS/MVS 1.2                    Jun 24, 1994        12.02
      DFSMS/MVS 1.3                    Dec 29, 1995        13.09
      DFSMS/MVS 1.4                    Sep 28, 1997        15.04
      DFSMS/MVS 1.4 HSM                Sep 23, 1998        16.04
      DFSMS/MVS 1.5                    ??? ??, 1999        16.04
      MQM 1.1.2, 1.1.3, 1.1.4          Apr 25, 1996        14.02
      MQ Series 1.2.0                  May 26, 1998        16.02
      MQ Series 2.1.0                  Oct  2, 1999        17.07
      MQ Series 5.2                    Dec 16, 2000        18.10
      MQ Series 5.3                    Dec 16, 2002        21.05
      NETVIEW 3.1 type 37              ??? ??, 1996        14.03
      NPM 2.0                          Dec 17, 1993        12.03
      NPM 2.2                          Aug 29, 1994        12.05
      NPM 2.3                          ??? ??, 1996        15.08
      NPM 2.4                          Nov 18, 1998        17.01
      NPM 2.5                          Feb ??, 2000        18.02
      NPM 2.6                          Nov ??, 2001        19.06
      RMDS 2.1, 2.2                    Dec 12, 1995        12.12
      RMDS 2.3                         Jan 31, 2002        19.11
      TCP/IP 3.1                       Jun 12, 1995        12.12
      TCP/IP 3.4                       Sep 22, 1998        16.04
      WebSphere 5.0 APAR PQ7463        Aug 19, 2003        21.04
      DOS/VSE POWER V6.3.0             Dec 19, 1998        16.08
      VM/ESA  2.0                      Dec 23, 1992        10.04
      VM/ESA  2.1                      Jun 27, 1993        12.02
      VM/ESA  2.2                      Nov 22, 1994        12.06
      VM/ESA  2.3                      Jun  1, 1998        16.08
      VM/ESA  2.4                      Mar  1, 2001        19.03
      z/VM    3.1                      Mar  1, 2001        19.03
      z/VM    3.1 DATABYTE=0           May  2, 2002        20.02
      z/VM    4.2 ??                   May  2, 2002        20.02
      IMS log 4.1                      Jul  4, 1994        12.02
      IMS log 5.1                      Jun  9, 1996        14.05
      IMS log 6.1                      ???  ?, 199?        20.03
      IMS log 7.1                      ???  ?, 200?        20.03
      IMS log 8.1                      May 21, 2003        21.02
      AS400 3.7.0                      Nov  1, 1996        15.01
      AS400 4.1.0                      Dec 30, 1996        15.08
      AS400 4.2.0                      Apr 27, 1998        16.02
      AS400 4.4.0                      Sep 27, 1999        17.07
      AS400 4.5.0                      Jul 27, 2000        18.07
      AS400 5.2.0                      Jul 23, 2003        21.03

    Note: An asterisk before the version number indicates that this
          entry was changed to a later version of MXG being required,
          after it was found that the previous version did not support
          the listed product level, usually the result of an APAR to
          the product that modified the products data records.
          Or a coding error in MXG could be the reason for the change!

    Availability dates for non-IBM products and MXG version required:

                                                        MXG Version
      Product Name                                       Required

      SAS Institute
       MXG executes best under SAS Version 8.2, with 82BA77 HOTFIX for
         MVS-OS/390-z/OS which includes Critical fixes; see NEWSLTRS.
         It has executed succesfully under SAS Version 9 Beta on both
         MVS and Windows platforms.
       See Newsletters for expanded discussion of other versions.
       Read member NEWSLTRS (search 'V8') for SAS Version 8 notes.

      Demand Technology
       NTSMF Version 1 Beta                                14.11
       NTSMF Version 2.0                                   15.05
       NTSMF Version 2.1                                   15.06
       NTSMF Version 2.2                                   16.04
       NTSMF Version 2.3                                   17.10
       NTSMF 2.4.4                     Aug  9, 2002        20.04
       NTSMF 2.4.5   INCOMPAT          Apr  1, 2003        21.02
      Landmark
       The Monitor for DB2 Version 2                       13.06
       The Monitor for DB2 Version 3.0                     16.02
       The Monitor for DB2 Version 3.1                     20.04
       The Monitor for CICS/ESA 1.2 -                      12.12
       The Monitor for CICS/ESA 1.3 -                      15.01
       The Monitor for CICS/ESA 2.0 -                      15.06
       The Monitor for CICS/ESA 2.1 -                      20.04
       The Monitor for CICS/ESA 2.2 - 20.335, 21.134       21.04
       The Monitor for MVS/ESA 1.3  -                      12.05
       The Monitor for MVS/ESA 1.5  -                      12.05
       The Monitor for MVS/ESA 2.0  -                      15.09
       The Monitor for MVS/ESA 3.0  -                      19.19

      Candle
       Omegamon for CICS V200 User SMF                     12.05
       Omegamon for CICS V300 User SMF                     13.06
       Omegamon for CICS V400 User SMF                     16.02
       Omegamon for CICS V400 type 110 segments            16.02
       Omegamon for CICS V500 User SMF                     18.01
       Omegamon for IMS V110 (ITRF)                        12.12
       Omegamon for IMS V300 (ITRF)                        14.04
       Omegamon for MVS V300                               13.05
       Omegamon for MVS V400                               13.06
       Omegamon for DB2 Version 2.1/2.2                    13.05
       Omegamon for VTAM V160                              12.04A
       Omegamon for VTAM V400                              15.15
       Omegamon for VTAM V500                              18.08
       Omegamon for SMS V100/V110                          12.03
      CA
       ACF2 6.2                                            16.04
       ASTEX 2.1                                           14.04
       NETSPY 4.7                                          14.03
       NETSPY 5.0                                          14.03
       NETSPY 5.2                                          16.05
       NETSPY 5.3                                          18.03
       NETSPY 6.0                                          20.10 20.305
       NETSPY 7.0                                          20.10 20.305
      Boole & Babbage
       IMF 3.1 (for IMS 5.1)                               12.12
       IMF 3.2 (for IMS 6.1 only)                          15.09
       IMF 3.2 (for IMS 5.1 and 6.1+)                      16.04
      Memorex/Telex
       LMS 3.1                                             12.12A
      Amdahl
       APAF 4.1, 4.3                                       16.08


II.   Incompatibilities and Installation of MXG 21.03.


 1. Incompatibilities introduced in MXG 21.06 (since MXG 20.20):

  a- Changes in MXG architecture made between 21.06 and 20.20 that might
     introduce incompatibilities.

      ASUMCICS: If you used ASUMCICS to read ASG-LANDMARK MONITASK CICS
                data to create PDB.CICS, you must now use ASUMCICT.
                See Change 21.105.


 2. Installation and re-installation procedures are described in detail
    in member INSTALL (which also lists common Error/Warning messages a
    new user might encounter), and sample JCL is in member JCLINSTL.

    MXG Definitions with regard to MXG Software Changes:

    COMPATIBLE   A change in a data record which did not alter either
                 the location or the format of all of the previously-
                 kept MXG variables is COMPATIBLE, and you can continue
                 to run the old version of MXG software, which will read
                 the new records without error, but none of any new data
                 fields or any new record subtypes will be created/kept
                 until you install the MXG Version with this change.
                 A change that alters any previously kept variable is
                 INCOMPATIBLE, and requires the new version to be used.

    TOLERATE     In other words, the old MXG Version TOLERATES the new
                 data records, if they are COMPATIBLY changed.

    EXPLOIT      Once you use the new MXG Version to read the changed
                 records, all of the new fields, subtypes, etc, that are
                 described in this change will be created in the MXG
                 datasets, so the new MXG Version EXPLOITS the new data,
                 and you have full support of the new data records.

    INCOMPAT     A change in a data record that causes the current MXG
                 version to fail, visibly or invisibly, with or without
                 error conditions or messages, and the output datasets
                 may contain wrong values and incomplete observations,
                 and/or observations may have been lost.

                 You MUST install the new MXG Version with this change
                 to process data records that have been INCOMPATIBLY
                 changed by their vendor.

    OBSERVATION COUNT CHANGE: xxxxxxxx more/fewer observations.
      This new note will be the last line of new Changes that alter the
      number of observations MXG creates in dataset xxxxxxxx.

III.  Online Documentation of MXG Software.

    MXG Documentation is now described in member DOCUMENT.
    See also member INDEX, but it may be overwhelming.


IV.   Changes Log

--------------------------Changes Log---------------------------------

 You MUST read each Change description to determine if a Change will
 impact your site.  All changes have been made in this MXG Library.

 Member CHANGES always identifies the actual version and release of
 MXG Software that is contained in that library.

 The CHANGES selection on our homepage at http://www.MXG.com
 is always the most current information on MXG Software status,
 and is frequently updated.

 Important changes are also posted to the MXG-L ListServer, which is
 also described by a selection on the homepage.  Please subscribe.

 The actual code implementation of some changes in MXG SOURCLIB may be
 different than described in the change text (which might have printed
 only the critical part of the correction that need be made by users).

 Scan each source member named in any impacting change for any comments
 at the beginning of the member for additional documentation, since the
 documentation of new datasets, variables, validation status, and notes,
 are often found in comments in the source members.



Alphabetical list of important changes after MXG 20.20 now in MXG 21.06:

  Dataset/
  Member   Change    Description

  many     21.131  &OPSYS now consistently used in place of &SYSSCP.
  many     21.289  Note 49-169 in SAS V9.1 is harmless.
  none     21.310  Support for z/OS 1.5.
  none     21.184  Support for 3592 Tape Drives, they look like 3590s.
  ANALALL  21.250  ANALALL/ANALJOBN/VMXGPRAL job counting SMF records.
  ANALDB2R 21.015  Using %ANALDB2R(PDB=SMF) caused syntax errors.
  ANALDB2R 21.157  Accounting Summary Class 2 were totals, not avgs.
  ANALDB2R 21.239  Ability to read multiple PDBs in ANALDB2R restored.
  ANALSTK  21.135  Report using STK SMF + MXGTMNT to track Virtual tape.
  ASMIMSL6 21.064  Support for IMS Version 8.1; just reassemble L6.
  ASMRMFV  21.002  Improved processing of RMF III data.
  ASMRMFV  21.236  Wrong member replaced; this has change 21.186 code.
  ASMTAPEE 21.304  New MXG Tape "Event" Mount/Allocate/Recvr Monitor.
  ASMTAPES 21.004  Using //EXCLUDE DD with highest DEVNR cause 0C4.
  ASMTAPES 21.137  ASMTAPES new Allocation Recovery event record.
  ASUM70PR 21.149  Major LPAR Measurement Enhancement: PDB.ASUM70LP.
  ASUMCACH 21.197  Enhanced to keep I/O by LPAR in PDB.ASUMCACH.
  ASUMCICS 21.105  Reads only CICSTRAN, creates PDB.CICS, don't use.
  ASUMCICS 21.242  Protection for OPERATOR/TERMINAL variable not found.
  ASUMCICT 21.105  Reads only MONITASK, creates PDB.CICS, don't use.
  ASUMCICX 21.105  Reads PDB.ASUMUOW; use instead of ASUMCICS/ASUMCICT.
  ASUMUOTT 21.237  New ASUMUOTT combines TMDBDB2 and MONITASK datasets.
  ASUMUOW  21.062  Revised SPINUOW logic, forward sequence of times.
  ASUMUOW  21.105  Combines CICSTRAN,DB2ACCT, creates PDB.ASUMUOW, use!
  ASUMUOW  21.147  Near-constant value for STRTTIME in PDB.CICS.
  ASUMUOW  21.194  Variables added to PDB.ASUMUOW
  ASUMUOW  21.220  FLASH: MXG 21.06 required to have all errors fixed.
  ASUMUOWT 21.035  ASUMUOWT failed with BY VARIABLES NOT SORTED.
  ASUMUOWT 21.105  Combines MONITASK,DB2ACCT, creates PDB.ASUMUOW, use!
  AUTOEXEC 21.290  Option defaults changed for SAS V 9.1 for ASCII.
  BLDNTPDB 21.103  Relocated copying of WEEKn.
  BLDSMPDB 21.255  New BLDSMPDB builds SMF PDB Jobstream, weekly, etc.
  BUILDPDB 21.056  Exit EXPDBSPJ created for local variables for spin.
  CLRMFIII 21.002  CLIST for batch execution to read all RMF III data.
  CONFIGV8 21.168  SORTSEQ=EBCDIC or SORTSEQ=ASCII forced default.
  CONFIGV9 21.290  Option defaults changed for SAS V 9.1 for EBCDIC.
  DAILYDSR 21.293  Support for DFSMS/rmm+DCOLLECT in JCLDAYDS example.
  DOCLRMFV 21.002  Documentation of CLRMFIII CLIST.
  DOCMXG   21.132  ERROR: NO DATA SET OPEN TO LOOK UP VARIABLES cause
  EMAIL    21.308  Example to email a PROC PRINT to a list of users.
  EXUTILEX 21.069  Exit for UTILEXCL for non-standard "User" field.
  FORMATS  21.057  RACF MG080QU,TY formats updated for z/OS 1.2-1.4.
  FORMATS  21.141  $MG070CP updated for MSU for CPUTYPE 2084 table.
  GRAFTRND 21.040  New plots of Peak to Average Utilization ratio.
  IMAC6ESS 21.014  Multiple 6-ESS "0031" USERDATA segments supported.
  IMAC6ESS 21.082  Support for additional GPARMKY values in SMF 6 ESS.
  IMAC6ESS 21.096  Support for GEPARMKY=001B.
  MONTHBLD 21.163  Enhancement for un-sorted input, or NOT SORTED ERROR.
  MXGSASV8 21.009  Symbolic parm WORKVOL= added, default 5 volumes
  PROCCOPY 21.279  Use MT=DATA with PROC COPY + SELECT for performance.
  RMFINTRV 21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  RMFINTRV 21.216  z990 CPUTYPE 2084 NOT IN TABLE with OS/390 R2.10.
  RMFINTRV 21.225  RMF WORKLOAD name can be used to define workloads.
  RMFMON   21.252  Free Interactive RMF control block monitor.
  SAS V9   21.028  Early V8-V9 comparisons flawed, V9 is better.
  SAS V9.1 21.289  Note 49-169 blanks inserted to eliminate note
  SYSLOG   21.307  Example program to read SYSLOG for job events.
  TYPE102  21.061  Support for dataset T102S196 (locks) validated.
  TYPE102  21.121  Support for IFCID 251, 257, corrections for 21.
  TYPE102  21.175  Support for IFCIDs 217 and 254.
  TYPE103  21.115  Support for APAR PQ71799 HTTP Server SMF 103 data.
  TYPE108  21.018  Support for Domino Server Relase 6.0.0 new data.
  TYPE110  21.100  CICSTRAN RTYPE='S' or 'F' decoded.
  TYPE110  21.101  CPURLSTM wrong with CICS/TS 1.1 or later
  TYPE110  21.165  STID=126 UNEXPECTED data corrected.
  TYPE110  21.176  New TSQUEUE SMF 110 CL 5 INPUT STATEMENT EXCEEDED.
  TYPE110  21.189  New 110 St=1 MNSEGCL=5 caused INVALID DO LOOP CONTROL
  TYPE110  21.198  Missing value for STRTTIME in CICSTRAN possible.
  TYPE110  21.212  Support for CMODNAME='MQSeries' CICSTRAN segment.
  TYPE110  21.240  Support for new S4RSP7CT in STID=124 CICS record.
  TYPE115  21.183  SMF 115 ST 2 INPUT STATEMENT EXCEEDED corrected.
  TYPE115  21.262  WebSphere MQ Version 5.3 SM115REL added.
  TYPE116  21.173  Subtype 0 SMF 116 INVALID PRODUCT SECTION message.
  TYPE116  21.262  WebSphere MQ Version 5.3 SM116REL added.
  TYPE119  21.162  IFDURTM was incorrectly divided by 496 vice 4096.
  TYPE119  21.190  Support for APAR PQ77633, corrects FTPREPLY.
  TYPE120  21.107  Support for WebSphere APAR PQ74463 - adds CPU time.
  TYPE120  21.150  Support for CPU Time in WASserver APAR PQW74463.
  TYPE120  21.294  Support for JVM Heap sizes in SMF 120 st 1 and 3.
  TYPE30   21.086  Support for IDMS/R PerfMon type 30 subtype 3 per tran
  TYPE42   21.010  SMF 42 offsets subtype 20,21 wrong in IBM doc, fixed.
  TYPE42   21.288  Support for Type 42 Subtype 10 TYPE42VS Vol Sel Fail
  TYPE6    21.210  Support for ESS segments '34x,35x,37x,47x'.
  TYPE6    21.226  Support for GEPARMKY=000B in ESS, variable ESSDEFAU.
  TYPE6156 21.123  Non-duplicate (Data/Index) TYPE6156 were NODUPed.
  TYPE70   21.170  NRCPUs in TYPE70 redefined to Average Online for IRD.
  TYPE7072 21.065  Support for more than 16 CPUs or LPARs.
  TYPE7072 21.130  Support for APAR OW56656 for RMF for z990 (COMPAT).
  TYPE7072 21.138  R723Rxxx vars now kept in TYPE72DL vice TYPE72SC.
  TYPE7072 21.275  SMF70CIN/LPARCPUS wrong if VSAM SMF read
  TYPE7072 21.287  NRCPUS=ROUND(NRCPUS,.001); for 2.00000040 value.
  TYPE70PR 21.108  LPnNSW - Percent When Soft Capped variables added.
  TYPE71   21.218  TYPE71 variables had AVAILABLE...USED, USED removed.
  TYPE73   21.007  PCHANBY missing for 'CFS/CFP/CBP/CBS/IFP' TYPE73.
  TYPE73   21.098  Some TYPE7204 "SUM OF" variables weren't.
  TYPE74   21.058  Support for APAR OW54347 CMR Command Response time
  TYPE74   21.059  TYPE74ST negative values corrected, QSIZ retained.
  TYPE74   21.238  Dataset TYPE74DU (RMF DUPLEX CF) was trashed.
  TYPE79   21.003  Variable R791FMCT needed to be multiplied by 4096.
  TYPE80A  21.201  Protection for SMF80DTP=53 (RUKTN) with wrong len.
  TYPE80A  21.211  Support for RACF segment RACFDBP=44, new variables.
  TYPE80A  21.215  Support for EKC's ETF/R FIRECALL SMF 80 data.
  TYPE85   21.104  OAM SMF 85 from R85PRVM 1.3.0 caused STOPOVER.
  TYPE90   21.196  INVALID DATA FOR VERSN90 has no impact.
  TYPE94   21.191  Variable SMF94VCZ recalculated when it is zero.
  TYPE99   21.217  Support for SMF 99 subtype 7 PAV Device record.
  TYPEAIX  21.116  Major revision to AIX PTX Support - new datasets.
  TYPEBE97 21.312  Support for Beta97 User SMF record.
  TYPECIMS 21.153  Support for BMC MVIMS IMF 3.3.0 (COMPAT)
  TYPECIMS 21.205  Support for Shared Message Queue Group in SMQGROUP.
  TYPECTLL 21.156  Support for Control-D Log file.
  TYPECTLT 21.026  Support for Control-T Release 6 (INCOMPATIBLE).
  TYPEDB2  21.006  Negative values in DB2STATB after stop/start DB2.
  TYPEDB2  21.140  PDB.DB2STATS QBGLxxxx wrong, negative B3HITRAT.
  TYPEDB2  21.187  PDB.DB2GBPST occasionally had invalid (large) values.
  TYPEDB2  21.200  Negative values for DB2TCBTM if QWACEJST small.
  TYPEDB2  21.208  QWACBSC/QWACESC missing in DB2ACCTP, some packages
  TYPEDB2  21.259  Using VMXGTIME with DB2 caused GMTOFFDB/QWACBSC wrong
  TYPEDB2  21.281  Support for DB2 Version 8.1, COMPATIBLE back to 20.20
  TYPEEDGR 21.158  Support for z/OS 1.4 DFSMS/rmm EDGRXEXT (INCOMPAT)
  TYPEEDGS 21.122  MACRO _LNEDGS resolves STOPOVER with rmm data.
  TYPEENTX 21.124  Support for EntireX user SMF accounting record.
  TYPEEXCH 21.195  Support for Microsoft Exchange Server 5.5 Log file.
  TYPEHMF  21.143  Support for HMF Subtype 29,30,32,33 changes.
  TYPEICE  21.102  Support for STK IXFP SMF L2P00A2/LZP00A9 (COMPAT)
  TYPEIMS7 21.064  Support for IMS Version 8.1, some changes.
  TYPEMVCI 21.117  Support for Mainview for CICS 5.6 CMRDETL (INCOMPAT).
  TYPEMWUX 21.241  Revised support for HP Measureware for HPUX.
  TYPENDM  21.133  Support for NDM Release 4.3 (INCOMPATIBLE).
  TYPENDM  21.286  Support more NDM/Connect Direct subtypes, 26 new dset
  TYPENETM 21.263  Support for UniCenter NetMaster Automate Services SMF
  TYPENSPY 21.155  NetSpy Version 6 and 7 already supported since 20.10.
  TYPENTSM 21.053  Support for NTSMF BlackBerry Server object.
  TYPENTSM 21.063  Support for NTSMF 2.4.5 (INCOMPATIBLE).
  TYPENTSM 21.136  SMPTSERV for Windows 2000 had accumulated values.
  TYPENTSM 21.146  Support for Windows 2003 Server MEMORY object.
  TYPENTSM 21.193  Variable BYTEAVAI can be zero.
  TYPENTSM 21.285  Support for Web Service Cache, WSRM objects.
  TYPEOMDB 21.243  Support for Candle Omegamon II for DB2 Historical.
  TYPEOMVT 21.311  Support for Omegamon/VTAM subtypes 29 and 30.
  TYPEOPC  21.202  INPUT STATEMENT EXCEEDED.
  TYPEOPFT 21.233  Support for Fujitsu Siemens openFT ftp SMF record.
  TYPEORAC 21.019  Oracle ASID, ELAPSTM corrected.
  TYPEORAC 21.213  Support for Oracle V9.x, no changes.
  TYPEQACS 21.013  INVALID DATA for QAPMDISK file corrected.
  TYPEQACS 21.033  AS/400 5.2 file's LRECLs have been validated.
  TYPEQACS 21.118  Support for TCP and TCPIEF objects for AS/400.
  TYPEQACS 21.224  New QAPMCONF GDESIL/IT/PU were missing values.
  TYPESARR 21.223  INPUT STATEMENT EXCEED for CA-VIEW SMF record.
  TYPESASU 21.251  Support for SAS SMFEXIT adds SAS Version/User/JOBID.
  TYPESYNC 21.192  Up to 255 SORTWORKs supported in z/OS 1.1 SMF record.
  TYPETCP  21.142  TYPETCPS contained accumulated, not interval data.
  TYPETMMQ 21.129  Support for ASG-Landmark TMON for MQ Series.
  TYPETMO2 21.134  MONITASK UOW variables were incorrect.
  TYPETMS5 21.097  Support for PDC # QI30130 new variables.
  TYPETNG  21.024  Support for TNG "Enterprise Cubes", processes, plus.
  TYPETNG  21.095  Support for six new TNG objects, new fields.
  TYPETNG  21.160  Support for TNG Version 7 (INCOMPAT, Header changed).
  TYPETNG  21.269  Major enhancement/validation of new TNG objects.
  TYPETPMX 21.209  New fields supported.
  TYPETPMX 21.271  Major enhancement/validation of ThruPut Manger SMF
  TYPETSMF 21.210  Support for IBM Tivoli Storage Manager Acct Records.
  TYPEWWW  21.166  IIS Web Log with missing fields now supported
  TYPEWWW  21.221  Web Log INVALID ARGUMENT with negative GMT offset.
  TYPEXAM  21.023  Support for TCP/Linux/etc, plus lots of cleanup.
  UNIXSAR1 21.309  Support for "sar", "acctcom", "ps" for AIX/SUN unix.
  UNIXTOP  21.314  Support for "top" unix report.
  UTILBLDP 21.148  Enhancement to the "Build your own PDB" utility.
  UTILBLDP 21.231  USERADD=80/90 create TYPE80A or TYPE90A execution.
  UTILEXCL 21.054  Variables KY8DISTM/KY8CPUTM corrected.
  VMACSMF  21.127  Variable INFILENM contains input DSNAME or dir/file.
  VMXGINIT 21.253  Global macro variables TRENDOLD/TRENDNEW/TRENDINP.
  VMXGRMFI 21.067  Examples to invoke RMFINTRV twice, general cleanup.
  VMXGRMFI 21.094  Corrections to MSU4HRAV calculation.
  VMXGRMFI 21.113  Parsing of more than 99 service class names.
  VMXGRMFI 21.125  Different SRVCLASS definitions can map to same WORK.
  VMXGRMFI 21.234  Test for '2084'x CPUTYPE, only needed S/390 R2.10.
  VMXGSUM  21.185  New INTERVAL=SECOND now supported.
  VMXGSUME 21.277  Enhanced alternative, tolerates non-present variables
  VMXGUOW  21.093  PDB.ASUMUOW corrected, blank SYSTEM plus others.
  WEEKBLDT 21.045  WEEKBLDT fails under SAS Version 6.

Inverse chronological list of all Changes:

NEXTCHANGE: Version 21.

====== Changes thru 21.320 were in MXG 21.21 dated Feb 10, 2004=========

Change 21.320  MXG 21.21 final QA corrections/incompatibilities:
CLRMFV        -SEQENGINE=V6SEQ changed to V8SEQ/V9SEQ in CONFIGV8/V9.
CONFIGV8       See MXG Tech Note 4.A in Newsletter FORTY-FOUR, 10Feb04.
CONFIGV9      -VMACDB2. Remove line 8259: PUT _N_= 'HAVE 239 ';
EXTMNSTS      -UTILEXCL. Add a second percent-sign to change line 218 to
IMACTMNT                   %%INCLUDE SOURCLIB(IMACZDAT);
UTILEXCL      -CLRMFV. Cosmetic. A "NOT" and EQUAL symbols slipped thru
VMAC90         and were changed to "NE"; NOTs don't translate well among
VMACDB2        platforms, and were removed back in Change 8.093
VMACTMNT      -Only if you received MXG on CD: Change line 57 in member
VMXGINIT       VMACTMNT, removing  "DEVNR", changing the line to be:
Feb 10, 2004           MACRO _BTYSTS SYSTEM SHIFT INTBTIME %
              -The CD-only VMACTMNT error was caused by my accidental
               copying of support for the new TYPESTAT statistics data
               from the subtype 6 ASMTAPEE ML-30 SMF record, after the
               ftp and tape files were built.  TYPESTAT was validated,
               but I didn't use TYPSTMNT to test its sort macro. Member
               EXTMNSTS was added and VMXGINIT updated for TYPESTAT and
               the sort has been tested in this final iteration.
              -Variables SMF9029N,SMF9029A,SMF9030I in archaic VMAC90
               were renamed A, N, and Y, only in case someone foolishly
               uses both VMAC90 and VMAC90A in same step.  Use VMAC90A.
   Thanks to George Canning, Abbey National Plc, ENGLAND.
   Thanks to Vernon Kelley, IBM, USA.

====== Changes thru 21.319 were in MXG 21.21 dated Feb  6, 2004=========

Change 21.319  Variables PARTNCPU and CPCMSU were added to the new
VMXG70PR       PDB.ASUM70LP dataset so the hardware attributes of
Feb  6, 2004   the number of engines and MSU capacity are kept.
Feb 10, 2004
   Thanks to Una Cho, CIGNA, USA.

Change 21.318  The label for DB2 variable QLACRBND should be
VMACDB2          SQL STATEMENTS*BOUND FOR*REMOTE ACCESS insteadd of
Feb  5, 2004   ... REMOVE ....
   Thanks to Marnel Groebner, State of Washington, USA

Change 21.317  IBM changed the contents of SMF64BMH; its new label is
VMAC64            SMF64BMH='REQUEST HITS*FROM RLS BMF*BUFFER POOL'
Feb  5, 2004   the number or requests obtained from the local shared
               buffer pool, and not the old VSAM LSR pool.
   Thanks to Thomas R. Coccia, Bank One, USA.
   Thanks to Hari Maramraju, Bank One, USA.
   Thanks to Raymond G. Seeley, IBM OS/390 Support, USA.

Change 21.316  Updates for SMF record from Serena Ultimizer fix an INPUT
VMACULTM       EXCEEDED error and revised INPUT logic have been tested
Feb  4, 2004   with Version R313, but the DSECT indicates no changes
               since R310.
   Thanks to Scott Barry, SBBWorks, Inc., USA

Change 21.315  PDB.TYPE70PR data with STARTIME 10:13:59 and 10:14:00
VMXG70PR       caused multiple observations in PDB.ASUMCEC; the logic
Feb  4, 2004   to force STARTIME across the CEC to the nearest minute
               was changed to   STARTIME=60*FLOOR((STARTIME+30)/60);
               and now those two observations are correctly combined.
               Why the STARTIME are off by a full second in a SYSPLEX
               is not known at this time.  See Change 23.070 redesign.
    Thanks to Alan Gray, Carefirst, USA.

Change 21.314  Support for "top" unix command in this user contribution.
UNIXTOP        This member contains input for IEBUPDTE to create a PDS
Feb  4, 2004   or directory of the sample program.
               This code is not yet "MXG-structured".
               Comments in the members tell you what to do!
   Thanks to Xiaobo Zhang, ISO, USA.

Change 21.313  Error IEC143I 213-04 on STEPLIB DD with the SAS JCL PROC,
MXGSASV8       after you have executed MXGSASVx JCL Proc, tells you to
MXGSASV9       change your SAS proc to //NULLPDS DD DISP=(NEW,DELETE),
Feb  4, 2004   to matches MXG's discovery that (NEW,DELETE) is safer for
               all sites than (MOD,PASS) - see text of Change 20.076.
               And SAS intends to change their default to match MXG.
                  However, if you do NOT have CA-11, and you are not the
                  SAS installer, you can circumvent this error by making
                  //NULLPDS in MXGSASxx PROC use the archaic (MOD,PASS).
               This change is doc only; nothing was changed in MXG.
   Thanks to Allana Jacob, IBM CANADA LTD, CANADA.

Change 21.312  Support for Beta97 creates new datasets in this user
EXTYB970       contribution.
EXTYB972
EXTYB974
EXTYB97L
IMACBE97
VMACBE97
VMXGINIT
Feb  4, 2004
   Thanks to Stephen Bell, Sparkassen Informatik, GERMANY.

Change 21.311  Support for Omegamon for VTAM subtype 29/30 additions and
VMACOMVT       protection for INPUT STATEMENT EXCEEDED error, and for
Feb  3, 2004   records that are too short to contain all IRECS.
   Thanks to Manfred Engelhart, Candle GmbH, GERMANY.

Change 21.310  Support for z/OS 1.5 (V 1 Release 5) is already in place
all            in MXG 21.04 and later (required for z/OS 1.4 PTFs), so
Feb  3, 2004   no new MXG changes are required.  Minor additions in data
               fields that were reserved were compatibly made by IBM.

Change 21.309  Enhanced support for "sar", "acctcom", and "ps" reports
UNIXSAR1       for AIX & SUN unix platforms, in this user contribution.
Feb  3, 2004   In addition to the existing UNIXSAR example, this member
               contains four SAS members and two Perl scripts that you
               can use to process "sar" data.  You need to install the
               daemons in the SUN and AIX operating systems; collect the
               data in each system, ftp or nfs the data to MXG, and then
               process the sar data with the SAS programs.
               This member contains input for IEBUPDTE to create a PDS
               or directory of the sample program.
               This code is not yet "MXG-structured".
               Comments in the members tell you what to do!
   Thanks to Uriel Carrasquilla, NCCI. USA.

Change 21.308  Member EMAIL previously contained examples to send an
EMAIL          email from SAS; this enhancement defines %MACRO EMAIL
Feb  3, 2004   that will send a PROC PRINT of any SAS dataset via a
               list of email addressees.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.307  Example program that reads z/OS SYSLOG file for specific
SYSLOG         events; an excellent starting place for additional event
Feb  3, 2004   analysis.  Please send your updates for other events.
               This example tracks these SYSLOG events:
                AQ/HQ       Activate/Hold JES2 input job queue
                SI/TI/PI    Start/Modify/Purge Initiators
                TJ          Modify a job - class, scheduling environment
                SJ          Force a job to start, disregard class limits
                T JOBCLASS  Modify characteristics of a job class
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.306  This change was rewritten.  There is no new "87F3x" flag
VMACVMXA       (which was actually a typo, the value was "873Fx") and
Feb  3, 2004   MONWRITE was not changed.  However, if you ftp MONWRITE
Mar 22, 2004   data, and translate it from EBCDIC to ASCII, instead of
               using a BINARY ftp transfer, you will find the incorrect
               0000873Fx value instead of 00008709x at the start of the
               data file, and you'll get *ERROR* PROBABLE DATA LOSS DUE
               TO MONWRITE FAILURE messages.  Always ftp MONWRITE as
               BINARY, (i.e., NOASCII NOCRLF if using IND$FILE, etc.)
               Aug 20, 2004:  If you send VMACCT data and translate it
               from EBCDIC to ASCII, CPUMODEL='3F84'x results, which is
               the cause of INVALID DATA error for a '2084'x CPU.
   Thanks to Dwain Majak, ACS, USA.
   Thanks to Sudie Wulfert-Schickedanz, Anheuser-Busch Companies, USA.

Change 21.305  UNDECLARED ARRAY REFERENCED: ICSRDQU error precedeed by
VMXGINIT       an APPARENT SYMBOLIC WCICRDQ NOT RESOLVED error was due
Feb  3, 2004   to back-level VMXGINIT in tailoring that didn't define
               &WCICRDQ.  The text   &WCICRDQ..CICSRDQU (KEEP=  without
               the macro var was parsed to      ISCRDQU (KEEP=  which
               looks just like an array reference to SAS compiler.
               Real purpose of this note is to suggest to always take
               care of the first SAS error first, and then rerun to see
               if that also took care of subsequent SAS errors during
               compile of complicated programs.
   Thanks to Michael Cosentino, Rohm & Haas, USA.

Change 21.304  New MXG Tape "Event" Mount/Allocate/Recovery monitor sees
ASMTAPEE       all tape events, no longer samples for mounts, and gets
VMACTMNT       back all of the JOB-level data lost when we gave up XMEM.
Feb  5, 2004   ASMTAPEE is a complete redesign that executes in a mount
               exit in the address space of the job, so we not only see
               all mount events, but no longer have to use Cross Memory
               Services.  The new design had one field test iteration
               last year, and only one graceful failure (i.e., only an
               ABEND of the monitor program, no impact to the system)
               when two concurrent allocation recovery events for the
               same device occurred, which is now protected.
               However, please test this new design with extreme care;
               this text will be updated when we have had confirmed
               field tests and feed back from new users.  See comments
               in the ASMTAPEE member for more information.

               Since ASMTAPEE will eventually replace ASMTAPES, this
               is "ML-30" of the MXGTMNT program.

               When MXIT=YES is used, then the mount exit monitoring is
               used instead of interval sampling.  MXIT=NO is default;
               you must change that default to create the exit monitor.

               The new MXIT=YES exit monitor (like the recently added
               allocation recovery monitor logic) runs in a subtask of
               MXGTMNT to keep it separate and independent.  If an
               unrecoverable error occurs in the MXIT=YES subtask, it
               will shut itself down and switch back to using the old
               interval sampling method, so that records won't be lost.
               New variable TMNTFLAG='1.......'B is set in records that
               are created by the new exit monitor.

               The tape allocation monitoring function still uses
               interval sampling.

               Most of the fields that were removed when we disabled
               XMEM processing are populated by the exit monitor, and
               these new variables are created in TYPETMNT dataset:
                  ASID    ='ASID'
                  DDNAME  ='DD NAME'
                  DSNAME  ='DSNAME NAME'
                  JOBCLASS='JOB*CLASS'
                  PGMRNAME='PROGRAMMER*NAME'
                  RACFGRUP='RACF*GROUP*NAME'
                  RACFTERM='RACF*TERMINAL*NAME'
                  RACFUSER='RACF*USER*NAME'
                  STEPNAME='STEP*NAME'
                  TMNTACTN ='MNTFLG: 80 04 02 01'
                  TMNTDEVC='DEVICE*NUMBER AS*CHARACTER'
                  TMNTEDUR ='EVENT*DURATION'
                  TMNTFLAG ='MNTFLG: 80 04 02 01'
                  TMNTRCN ='RELATIVE*CONCATENATION*NUMBER'
   Thanks to "asmguy@mxg.com".

Change 21.303  Variable ZARCHMDE, "System is running in z/Architecture"
VMAC7072       is now kept in TYPE70 dataset, since it has been found to
Feb  2, 2004   be a useful discriminant when activating Z/Arch mode.
   Thanks to Cheryl Watson Walker, Watson & Walker, Inc., USA.

Change 21.302  DB2 SMF 102 IFCID=22 variable QW0022OS was negative when
VMAC102        the &RB.4. field contained 'FFFFFFFF'x, an invalid float
Feb  2, 2004   value.  MXG now tests and detects and sets QW0022OS to a
               missing value instead of -7.237E75.  There is no IBM note
               describing why the SQL cost was not validly populated.
   Thanks to Frank d'Hoine, National Bank of Belgium, BELGIUM.

Change 21.301  Ahh, what we have to do to keep MXG running under SAS V6!
VMXGCICI       VARIABLE S2ACT S2TCT IS UNINITIALIZED because their names
Jan 30, 2004   DS2ACT and DS2TCT started in column 1 of the ORDER= stmt,
               and the preceding label's ending quote was in column  72,
               and the V6 parsing was imperfect.  Inserting a blank has
               corrected this V6.09-only error, caught in our QA.
                 P.S. The only impact without this change was that the
                 real variables DS2ACT/DS2TCT had blank labels.
   Thanks to Freddie Arie, TXU, USA.

Change 21.300  The calculated EXPORTIM was incorrect for hour 0; the
VMACHPxx       logic was revised to protect that hour of the day.
VMACMWxx
Jan 30, 2004
   Thanks to Nick Johns, Sainsburys, ENGLAND.

Change 21.299  PARTNCPU was zero for z800s running in basic mode.   MXG
VMXGRMFI       tested SMF70WLA, the image size, to determine what data
Jan 30, 2004   is present, because on OS/390 R2.10 or lower, SMF70WLA
               was zero or missing.  But when basic mode or LPAR mode is
               running with OS/390 R2.10 or z/OS, SMF70WLA is populated
               with the image size in MSUs.  When there are no LPARS,
               PARTNCPU was zero, so using CPCNRCPU=PARTNCPU was wrong.
               The test was revised to use SMF70LAC, which is zero on
               basic machines, but nonzero for LPARs.
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.

Change 21.298  Nearly cosmetic; all variables were kept in TYPE30_4 when
ANAL30         four were needed; the MACRO _KTY30U4 V1 V2 V3 V4 %  was
Jan 29, 2004   replaced with  MACRO _VTY30U4 KEEP= V1 V2 V3 V4 %
   Thanks to Diane Eppestine, SBC, USA.

Change 21.297  Variable ZDATE added to the list of variables kept in the
UTILEXCL       PDB.CICSDICT dataset, for possible use.
Jan 29, 2004

Change 21.296  Does MXG support the VM Performance Tool Kit data file?
TYPEVMXA       There is a VM Perf took kit that apparently creates its
Jan 29, 2004   own output data file, but that file is not supported in
               MXG, because MXG's TYPEVMXA member supports all of the
               monitor data from the IBM-supplied CMS MONWRITE command,
               rather than the tool kit's subset of the monitor data.

               I thought there might be an actual MONWRITE execution as
               part of the tool kit's process, so that you would only
               have to find and read that intermediate file,
                  and if you find there is one, please let me know,
                  or if you find there is tool kit data not in MONWRITE,
                     then I'll consider supporting the tool kit file,
               but one user found it easier just to create a virtual
               machine and run MONWRITE in it to monitor all of the VMs
               on that system (including each of the Linux machines!);

               His virtual machine had these directory statements:
                 IUCV *MONITOR MSGLIMIT 255 NAMESAVE MONDCSS
               and then he can issue the "start" command:
                 MONWRITE MONDCSS *MONITOR DISK
               command which will cause the MONWRITE records to be
               copied from the monitor to this virtual machine and
               written on its a-disk.  Then the command
                 MONWSTOP
               is issued to close the file and then reissue the "start"
               command to start the monitor back up.
               As he said, "it's crude, but it works."
   Thanks to Jerry Ellis, Liberty Mutual, USA.

Change 21.295  Documentation of /VIEW limitation.  This simple program
doc            should read SMF type 110 records, create dataset CICSTRAN
Jan 29, 2004   as a view (to skip a write and read of CICSTRAN), and at
               the same time, create all of the CICS Statistics datasets
               in the //WORK file, then PROC SORT each of the CICS stats
               datasets to the //PDB by the _S110ST macro, and then the
               _SUOWCIC macro will PROC SORT the CICSTRAN view to create
               the PDB.ASUMUOW dataset.   This program fails:
                      %INCLUDE SOURCLIB(VMAC110,VMACSMF,IMACKEEP...);
                      DATA
                      _VAR110 /VIEW=_WCICTRN;
                      _SMF
                      _CDE110
                      _S110ST
                      _SUOWCIC
               because of the /VIEW operand.  Remove the /VIEW= and the
               program works as expected.  Why?  Because the existence
               of a /VIEW defers the execution of that data step until
               that dataset is referenced, but the _S110ST macro starts
               with PROC SORT DATA=CICAUSS, so ERROR: CICAUSS NOT FOUND
               results since that dataset hasn't yet been create; what's
               really confusing is that the INFILE SMF messages are not
               on the log, and SMF was never opened.
               However, reordering the macro references:
                      DATA
                      _VAR110 /VIEW=_WCICTRN;
                      _SMF
                      _CDE110
                      _SUOWCIC
                      _S110ST
               the program works just fine, because the CICSTRAN gets
               referenced first, the data step runs, and _SUOWCIC runs,
               and the CICS Statistics Data Sets are SORTed at the end.
                 Okay, since VIEW= is for performance, putting the Sort
                 of CICS Stats after _SUOWCIC means those stat datasets
                 will be occupying //WORK space until after _SUOWCIC
                 ends, which might itself be a bigger performance issue
                 than the write/read of CICSTRAN saved with the VIEW.
                 An alternative that writes those CICS Statistics Data
                 Directly to the PDB library, without the PROC SORT, so
                 no duplicates will be detected, but without the extra
                 copy, was described in Change 18.152:
                     //SYSIN DD *
                       %INCLUDE SOURCLIB(VMAC110,VMACSMF,IMACKEEP...);
                       %LET CICSTAT=PDB;
                       _CICSTAT;
                       ... rest of your program


Change 21.294  Support for new JVM Heap data in SMF 120 subtype 1 and 3:
EXT120SH
EXT120SR        Subtype dddddd   dataset   description
IMAC120           1     T120SH   TYP120SH  server region heap
VMAC120           3     T120SR   TYP120SR  server region intervval heap
VMXGINIT       Has been tested with only one heap per server region, so
Jan 29, 2004   have not validated with multiple heaps and code is nasty.
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.

Change 21.293  Support for DFSMS/rmm + DCOLLECT in the JCLDAYDS example.
DAILYDSR       The original JCLDAYDS, for "Daily Data Set Accounting"
JCLDAYDS       used DCOLLECT for DASD space accounting and TMS/CA-1 for
Jan 29, 2004   tape storage; this enhancement will use IBM's DFSMS/rmm
               instead of TMS for your tape storage accounting.
   Thanks to Diane Eppestine, SBC, USA.

====== Changes thru 21.292 were in MXG 21.08 dated Jan 28, 2004=========

Change 21.292  Jan 26 21.08: ERROR: VARIABLE R0723AX NOT FOUND TYPE7002,
VMAC7072       when sorted; correct name is R7023AX in the _BTY7002
Jan 28, 2004   macro definition.
   Thanks to Craig Loubser, Winn-Dixie, USA.

Change 21.291  If your "PDB" Data Libraries were built by V6, reusing
TYPE102        that old V6 PDB under SAS V8/9 to create MXG datasets
Jan 27, 2004   with "long length character variables", i.e, those with
               "LENGTH varname $ &SASCHRLN;" in their VMACxxxx member,
                 like SQL text variable QW0063ST in T102S063 dataset,
               will fail.  You must write those V8 SAS datasets to V8
               data libraries; you cannot write them to a V6 library.
               Create a new data library with SAS V8, and if you need
               any of the old datasets as input, the use PROC COPY to
               copy from the old V6 library to the new V8 library.
                 In this specific case, the error that surfaced was that
                 variables SEG10263 and LEN10263 were missing; they were
                 counts of 200-byte segments of SQL text under SAS V6.
   Thanks to Frank d'Hoine, National Bank of Belgium, BELGIUM.

====== Changes thru 21.290 were in MXG 21.08 dated Jan 26, 2004=========

Change 21.290  Changes in OPTIONS for SAS V9.1.
AUTOEXEC      -The options for printing statistics on the SAS log have
CONFIG9        been enabled and made consistent; benchmarks with V9.1
JCLTEST9       show there is no longer a CPU cost associated with these
MXGSASV9       options, now the default, as their informatiopn on the
Jan 27, 2004   log has been very useful in execution problem resolution.
Jan 31, 2004   -ASCII:  AUTOEXEC  STIMER FULLSTIMER
               -EBCDIC: CONFIGV9  STIMER FULLSTIMER DLEXCPCOUNT MEMRPT
                                  FULLSTATS
                 Under Windows, SAS V9.1 FULLSTIMER increased run time
                 by only 14 seconds in a 5 minute execution.
              -New options DTRESET added to both AUTOEXEC and CONFIGV9,
               to print the current date/time on the SAS log and SAS
               listings (rather than the constant step initiate time on
               every page!).
              -See also Newsletter FOURTY-FOUR, which contains benchmark
               comparisons of SAS V9.1, along with other notes
               concerning using 9.1.

====== Changes thru 21.289 were in MXG 21.08 dated Jan 25, 2004=========

Change 21.289  Execution tests with SAS Version 9.1 caused NOTE 49-169
VMAC6156        "NOTE 49-169: The meaning of an identifier after a
IMACICBB         quoted string may change in a future SAS release.
VMACX37          Inserting white space between a quoted string and the
VMACEREP         succeeding identifier is recommended."
ANALDB2R       V9.1 fixed the 9.0 spurious 49 problem, so 9.1 notes were
ANALRMFR       used to find the 7 members and 14 lines of MXG code that
ANAL94         needed a blank to be inserted to support for this future
Jan 25, 2004   SAS version now, and make these notes go away.
               Because you may have similar now-non-recommended-syntax,
               these are the statements that were flagged and revised.
                Member      Statement    Text
                VMAC6156    PUT         '***'JOB
                IMACICBB    LABEL     'ID*(='23'x)'
                VMACX37     IF     EQ 'X37 3'OR PRODREL
                VMACEREP    LABEL      '...('YY'X)'
                ANALDB2R    PUT     ...text='QW0020PC' text'
                            PUT     ...text='QW0020AN' text'
                            PUT     ...text='QW0023PD' text'
                            PUT     ...text='QW0024PD' text'
                            PUT     ...text='QW0025PD' text'
                ANALRMFR    PUT           "*"LPARNAME"*"
                            PUT      PERIOD='PERIOD
                ANAL94      PUT     'S94TVCS'GB'       3 times

Change 21.288 -Support for Type 42 Subtype 10, Volume Selection Failure'
EXTY42VS       because of insufficient space when allocating a dataset
IMAC42         creates new TYPE42VS dataset.
VMAC42        -Type 42 subtype 3 TYPE42AU SMS AUDIT with SMF42EAC='VARY'
VMXGINIT       needed +22 instead of +21 after SMF42ENM, causing vars
Jan 25, 2004   SMF42EVL/ESY/EST to be incorrect by one byte.
   Thanks to Chris Edwards, Defence Computing Bureau, AUSTRALIA.

Change 21.287  Calculation NRCPUS=SMF70ONT/DURATM had value 2.00000040
VMAC7072       when IRD was not in use, and that fractional value had
Jan 25, 2004   impact on PCTRDYWT and CPUUPTM calculations.  Calculation
               now uses    NRCPUS=ROUND(SMF70ONT/DURATM,.001);
               to keep three decimal accuracy after that calculation.
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.

Change 21.286  Enhancement to support many NDM/Connect Direct subtypes
EXNDMCS        that were previously skipped, with/without log messages.
EXNDMEI        All known NDMRTYPEs are now recognized and will be output
EXNDMEV        in their corresponding NDMxx dataset; those for which I
EXNDMFA        could find DSECTS have additional variables INPUT, and
EXNDMIP        those for which I had test records have been validated.
EXNDMJX        The ACCOUNT/DATASET name offsets are decoded, but the
EXNDMLS        offset not yet exploited, since no one has actually asked
EXNDMMF        for any of this new data; users just observed the log
EXNDMPE        messages that these new types existed in their SMF data.
EXNDMPX        Fully Decoded:
EXNDMQE            Dataset  NDMRTYPEs Output
EXNDMQT             NDMPS - PS or SW
EXNDMRE             NDMPX - PX
EXNDMRO             NDMQE - QE QH QT QW
EXNDMS2             NDMSY - SY: NO DSECT, ADDL DATA EXISTS.
EXNDMSC             NDMAE - AE DU,IU,SU,UM
EXNDMSD             NDMSD - SD
EXNDMSH             NDMCI - CI CE TI JI
EXNDMSP             NDMDT - DT SP FT IB SS SN IS IA ID IP IF IX VP
EXNDMSY        Header Only Decoded:
EXNDMTR                 CS FA GO IF JX LS MF NL PE PI RE RO S2 SB
EXNDMUM                 SC SH SY TP TR WS XO
EXNDMWS        The Header Only subtypes are output, but only with header
EXNDMXO        variables; MXG prints a message and hex dump of the first
IMACNDM        of each new subtype, up to 10 new subtypes.  If you have
VMACNDM        the DSECT documentation of those Header Only subtypes,
Jan 25, 2004   please send them so I can fully decode those subtypes.
               If you want to suppress those MXG messages from NDM, use:
                   //SYSIN DD *
                   %LET MACFILE= %QUOTE( RETAIN NDMNEWST 99;  );
                   %INCLUDE SOURCLIB(TYPSNDM.... );
                 (or you can put that  RETAIN NDMNEWST 99; in IMACFILE).

Change 21.285  New NTSMF Objects supported:
EXNTWBSC         dddddd    Dataset     Object
EXNTWSRR         NTWBSC    WEBSRVCA    NT WEB SERVICE CACHE
EXNTWSRC         NTWSRR    WSRMPRMC    NT WSRM PROCESS MATCHING CRITERIA
EXNTWSRY         NTWSRC    WSRMPROC    NT WSRM PROCESS
VMACNTSM         NTWSRY    WSRMPLCY    NT WSRM POLICY
Jan 22, 2004  -New NRDATA=40 in Active Server Pages supported
Feb 18, 2004  -Variables CIINNAME in dataset CITRIXIN and SQBPNAME in
               dataset SQLBUFPT were changed from numeric to character,
               as they are Instance Name, and their original numeric
               definition was wrong.  If you build Week-to-Date, or
               combine NTSM datasets built before and after this change,
               you will get  VARIABLE SQBPNAME HAS BEEN DEFINED BOTH AS
               CHARACTER AND NUMERIC  (or VARIABLE CIINNAME ....).
               You must drop the old variable before combining the old
               and new datasets.
   Thanks to Terry Heim, ECOLAB, USA.

Change 21.284  TYPE99 variables S99TLPI and S99TSPI were 100 times too
VMAC99         large; they should have been input &PIB.4.2 instead of
Jan 22, 2004   &PIB.4.
   Thanks to Adam Warkow, Cicigroup, USA.

Change 21.283  TYPE119 Variables UCRPORT/UCLPORT and CTLPORT/CTRPORT are
VMAC119        now kept as Port Number in numeric variables, instead of
Jan 22, 2004   the variables with suffix C (from which they are created,
               but which should not have been kept).
               Variables UCLLIP and NILLIP's translate statement typos
               that had RIP instead of LIP were corrected.
               Some labels were also revised.
   Thanks to Thomas Heitlinger, Fiducia, GERMANY.

Change 21.282  Change 21.277 created VMXGSUME to tolerate non-present
ASUMDSDB       variables, but it ABENDed with several sample ASUM/TRND
ASUMHSM        members that ran just fine with its predecessor design.
MNTHDB2S
MNTHDBAS       In each case, the VMXGSUM arguments coded in the example
TRNDDB2S       were actually in error, and the output dataset created by
VMXGSUME       the old version were never correct nor as expected. but
Jan 22, 2004   the old VMXGSUM did not fail.

              -ASUMDSDB had DATETIME=QWACBSC, but variable QBACBSC was
               not in the SUMBY= argument list.  This caused 22-322 and
               180-322 errors underscoring DATETIME=&DATETIME with the
               new code as only clue as to the real error.

               ASUMDSDB was corrected with QWACBSC in place of QWHSSTCK
               in the SUMBY.

              -ASUMHSM did not create SHIFT in the INCODE for HSMINTRV,
               but SHIFT was in the SUMBY, and BY SHIFT was used in the
               step after than %VMXGSUM execution.  The old design would
               create the non-present SHIFT variable, but the design of
               the revised VMXGSUM built its SUMBY without SHIFT, so the
               VMXGSUM executed correctly, but then the following step
               failed when it found no SHIFT variable.
               ASUMHSM was corrected to create SHIFT in the INCODE, as
               it did in the other steps of that example, with IMACSHFT.

              -MNTHDB2S had the token "DATETIME" in the SUMBY list, and
               not the correct variable name.  Replaced DATETIME in the
               SUMBY list with the STRTTIME variable (i.e, the variable
               that was in the DATETIME= argument).  However, MNTHDB2s
               also had two datasteps in the INCODE=, which required a
               change to VMXGSUM to support.  Finally, however, because
               "DATETIME" as a token in the SUMBY= list was the original
               recommended syntax for %VMXGSUM, and probably is around
               in lots of existing jobs, the enhanced VMXGSUM was again
               enhanced, and with this revision:
                  If "DATETIME" string is in the SUMBY= list, and
                  it is NOT ALSO the DATETIME= variable name, and
                  the length of the DATETIME= variable name is not 0,
                  then the SUMBY uses the DATETIME= variable name
                  instead of the name DATETIME.
                  But because the use of "DATETIME" token in the SUMBY
                  is archaic, and so you know what we've done, there is
                  a log message that we found this archaic usage.
              -MNTHDB2S - Variable QWHSSTCK not found.
              -TRNDDB2S - Restructured.

Change 21.281  Support for DB2 Version 8.1, COMPATIBLE.  MXG 20.20 or
VMACDB2        later will read V8 SMF 100 and 101 records without errors
Jan 21, 2004   ("MXG 20.20+ TOLERATES DB2 V8"); this change adds support
               for the new fields added at the end of existing segments.
                New variables in DB2ACCT:
                 QXCRESEQ='CREATE*SEQUENCES'
                 QXALTSEQ='ALTER*SEQUENCES'
                 QXDROSEQ='DROP*SEQUENCES'
                 QXPRRESI='PREPARES*RESTRICTED*PENDING*INDEX'
                 QXALTVW ='ALTER*VIEWS'
                 QLACOFF1='OFFSET TO*REST OF*TRUNCATED*QLACLOCN'
                 QBGAP1  ='P-LOCK*LOCK REQS FOR*SPACE MAP*PAGES'
                 QBGAP2  ='P-LOCK*LOCK REQS FOR*DATA*PAGES'
                 QBGAP3  ='P-LOCK*LOCK REQS FOR*INDEX LEAF*PAGES'
                 QBGAU1  ='P-LOCK*LOCK REQUESTS'
                 QBGAS1  ='P-LOCK*LOCK SUSPND FOR*SPACE MAP*PAGES'
                 QBGAS2  ='P-LOCK*LOCK SUSPND FOR*DATA*PAGES'
                 QBGAS3  ='P-LOCK*LOCK SUSPND FOR*INDEX LEAF*PAGES'
                 QBGAWS  ='WRITE AND*REGISTER*WAR*REQUESTS'
                New variables in DB2STATS:
                 QBSTLPL ='TIMES WHEN*PAGES ADDED*TO LPL'
                 QTGSFLMG='FALSE*CONTENTIONS*ENCOUNTERED'
                 Q3STHWIB='IDBACK*THREAD*HIGHWATER*MARK'
                 Q3STHWIF='IDFORE*THREAD*HIGHWATER*MARK'
                 Q3STHWCT='CTHREAD*THREAD*HIGHWATER*MARK'
              -Apr 18, 2005: Version 8.1 is "almost" COMPATIBLE; some of
               the data fields can be in "UNICODE UTF-8" format; an MXG
               ERROR message will be printed if one is encountered, and
               MXG 23.03, Change 23.082, supports QWHSLOCN in UNICODE.
              -This change also inserted QBGAGG=TBGAGG to correct the
               value in QBGAGG.
   Thanks to Steve Cunningham, DST Systems, Inc., USA.

Change 21.280 -Variable LGMGEN was input as $EBCDIC8., but that field is
VMACPDSM       actually a one byte number with range 1-99.  New variable
Jan 20, 2004   LGMGENNR as numeric is now created, and LGMGEN is not.
Jan 23, 2004  -The logic for 'FF'x values and reset to blank values were
               removed; that reset is needed for EBCDIC text fields, but
               these fields are all $HEX formatted, so changing 'FF'x to
               '40'x or '20'x is undesired.
              -The FORMAT LGPSRRC LGJRC $HEX1. was changed to $HEX2., as
               should be all MXG one-byte character variables containing
               hex data; it makes no sense to display just the first hex
               nybble.  I assumed it was a typo, but a search of all of
               MXG found $HEX1 in VMACXXXX, of all places, in VMACIMS,
               and in XLOGREC members, which were changed to $HEX2.
               However, HEX1. without the dollar-sign is validly used as
               an INFORMAT for numeric variables, and was not changed.
   Thanks to Peter Lines, RBS, UK.

Change 21.279  Using PROC COPY + SELECT dataset(s) to copy from a tape
many           data library should specify MEMTYPE=DATA to minimize the
Jan 19, 2004   run time and the I/O resources.  PROC COPY with a SELECT
               statement without MT=DATA reads the entire tape dataset
               (which could be multi-volume!!), and does not stop when
               the last dataset in the SELECT list has been found.
               Because PROC COPY can copy more than just datasets, it
               continues to read for other entries (Graphs, Catalogs)
               with the same name.  By adding MT=DATA (or MEMTYPE=DATA),
               SAS will stop reading the input when the last dataset has
               been read, reducing CPU and elapsed time and I/O.
               All PROC COPY statements in MXG that copy datasets now
               have MEMTYPE=DATA or MT=DATA specified.

Change 21.278 -NTSMF Active Server Pages object has NRDATA=36, was 34,
ADOCNTSM       but both new metrics are named "ASP.NET.V1.1.4322", and
EXNTIP4D       added at the end of the record. Temp protection reads 34.
EXNTIP4I      -Web Service object has NRDATA=86, was 81, with five new
IMACNTSM       fields with "COUNTER NAME MISSING" inserted in 4 places.
VMACNTSM       Temporary protection added second INPUT for know 81 vars.
VMXGINIT      -Four new Objects are supported:
Jan 18, 2004      DDDDDD     DATASET     Object
                  NTASPN     ASPNET      ASP.NET Apps v1.1.4322
                  NTASPA     ASPNETAP    ASP.NET v1.1.4322
                  NTIP4D     IPV4SDRV    IPSEC v4 Driver
                  NTIP4I     IPV4SIKE    IPSEC v4 IKE
              -Some recently added new variables, most from new objects,
               were not listed in the (required) INFORMAT 16.2 list,
               which would cause values to be 100 times too high.
               PROC CONTENTS was used to identify those variables with
               no informat and the list was updated (although there are
               some counters, notably in the headers, that are integers
               and correctly do not belong in the INFORMAT 16.2 list.
              -Internal notes and instructions describing how to update
               the MXG VMACNTSM code to add support for new object and
               new variables were revised, and skeleton code examples
               added to make my next revision more procedural.

Change 21.277 -VMXGSUME is an enhanced VMXGSUM, designed to tolerate
VMXGSUME       dropped variables from a dataset that are expected by an
Jan 17, 2004   invocation of VMXGSUM, if a variable was in the SUMBY=
               list, the VMXGSUM execution failed, or if the variable
               was in one of the other lists, that variable with missing
               value was created in the output dataset.   This change
               reads one observation of the input dataset and invokes
               in INCODE argument to get the full list of all variables
               that exist, and compares that with the variables in all
               of the VMXGSUM arguments, and rebuilds the SUMBY=, etc.,
               to use only the existing variables.
                 Specific example:  Many sites drop OPERATOR from their
                 CICSTRAN dataset, but ASUMCICS has that variable in its
                 SUMBY= list, so previously you had to EDIT an ASUMCICS
                 to remove the references to OPERATOR.  Now, that is
                 done automatically.
              -Performance issues if the input dataset is on tape.
               There will be multiple tape mounts on the job log; two if
               KEEPALL=YES, and three if KEEPALL=NO, as we must open the
               input dataset to determine variables that exist.
               If this is a single-SAS-data-set tape library, the extra
               mounts should not cause any delay, as only repositioning
               is needed on real tape, especially if the tape is a VTS.
               However, if the input tape data library contains multiple
               SAS datasets, on multiple tape volumes, we must at least
               open and read the data library sequentially twice to read
               one observation, and then a final time to actually read
               the full input dataset, and that could cause an increase
               in the elapsed time.
                 You might consider PROC COPY; SELECT xxxxxxx; from tape
                 to disk before executing VMXGSUM, but initial test show
                 that is may not be any better, the copy must write the
                 full dataset with all variables, but VMXGSUM brings in
                 only the variables it will need, and write is much more
                 expensive than read.
                 Adding a PROC COPY step may increase, or may decrease
                 the execution time.
                 Note:  This is a big performance hit, just discovered:
                     Always use MEMTYPE=DATA on PROC COPY with SELECT
                     statement from tape data libraries.
                     With MEMTYPE=DATA, SAS stops reading the input tape
                     library when it finds the last SELECTed dataset.
                     Without MEMTYPE=DATA, the PROC COPY doesn't know
                     you only want data entries, so it continues to read
                     the entire tape data library, because there could
                     be a different entry (Graphs,Catalogs,etc) with the
                     same name!
               Because the enhanced VMXGSUM can cause errors in working
               code, it is not used by default anywhere in MXG.  But you
               can use the enhanced macro defined in the VMXGSUME member
               simply by using %INCLUDE SOURCLIB(VMXGSUME); as the first
               statement in your //SYSIN stream, as that will compile
               the Enhanced-but-named-the-same %VMXGSUM macro that will
               be used by SAS for that job.

Change 21.276  Typos caused UNINITIALIZED VARIABLE message for WATSBACT
ANAL116        (s/b WTASBATC) and WTASPSEO (s/by WTASPSE-zero).
Jan 17, 2004

Change 21.275  Reading Active (undumped) VSAM SMF files caused TYPE70PR
VMAC7072       dataset variable SMF70CIN to be blank, which then caused
Jan 16, 2004   variables LPARCPUS, PARTNCPU, and NRIFCPU to be wrong.
               The +OFFSMF (needed to read VSAM SMF transparently) was
               not added to the OFFCPUID calculation.
   Thanks to Melanie Hitchings, BT, ENGLAND.

Change 21.274  Protection for truncated SMF 110 record (LENGTH=76) was
VMAC110        added, testing the APS/ASS triplets before INPUTing the
Jan 15, 2004   rest of the record.  Record was truncated because ACS
Jan 21, 2004   rules for Eagle tape drives forced LRECL=80, and the
               ACS rule overrode the Model DSCB in the DD statement.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.273  Variable NTLIP, Local IP Address, was incorrect, typo.
VMAC119        The NTLIP=COMPRESS(NTRIP); should have been (NTLIP).
Jan 14, 2004
   Thanks to Raff X. Rushton, Kaiser Permanente, USA.

Change 21.272  Typos corrected; MVSWAIT3=CPUWAITE is MVSWAITE=CPUWAITE
VMAC7072       and MVSWAITW=MVSWAITX is MVSWAITX=MVSWAITX twice.
Jan 12, 2004
   Thanks to Hugh Lapham, RCMP, CANADA.

Change 21.271 -Enhancement decodes INSYSAF bit map to create variables
IMACTPMX       JBAFF1-JBAFF32 for the System Affinities of each JOB, but
VMACTPMX       you must EDIT the IMACTPMX member, which now defines two
Jan 11, 2004   formats ($MXTPMPX and $MXTPMBT) that map your SYSTEM IDs
Jan 12, 2004   to your SYSPLEXes, and that maps the bits in INSYSAF for
Jan 13, 2004   each SYSPLEX to the AFFINITY SYSTEM's name.  If you do
Jan 20, 2004   not update your IMACTPMX, the values in JBAFFn variables
Jan 22, 2004   will be wrong, or more likely, always blank.
              -The INPUT(INSYSAFF,$EBCDIC)/TRANSLATE statements for the
               INSYSAFF were deleted:  i.e., it was "un-EBCDIC'd".  That
               pair of functions are used only for variables containing
               EBCDIC text characters.  INSYSAFF contains hex bit string
               data as characters, and is formatted $HEX8.
              -Variables NRACCTFL and ACCOUNT1-ACCOUNT9 are now created
               from the ACCT field, decoding with your IMACACCT member
               that determines how many fields are actually kept.  As
               old variable ACCT contains both binary numbers and EBCDIC
               text, it is "un-EBCDIC'd", and is formatted $HEX32.
              -CURREC5, current time of day, was incorrect; it is now
               input as hhmmssth in four PK1. fields, and converted to
               a SAS time value and formatted TIME12.2.  I created new
               variable CURRENT from CURRECn, but then found it was
               exactly equal to SMFTIME, so I chose to not keep CURRENT.
              -Variable JALSYJ is not labeled; it appears to be the
               same as SYSTEM.
              -Variable RD is not labeled; it has value 'NC' in five obs
               and is blank in the other five thousand observations.
              -Variable RDRDATE is formatted DATE9.
              -In testing, you cannot set OBS= to less than 634, because
               there are 634 input records for the CNTLLIN for the token
               table look up.  You get TOKEN NOT FOUND with OBS=100.
              -Variables JTSDATE and JTSTIME were missing because their
               informats were incorrect; now they are populated.
              -Variable CA7DD was incorrectly input.
              -Variable CA7DT was created as a character variable, but
               that field is a time duration, so variable CA7DTM is now
               created as numeric and formatted.  I cannot change CA7DT
               from char to numeric without causing someone's perfectly
               running weekly or monthly job that combines TPMX data to
               ABEND due to a variable conflict, and since CA7DT was not
               ever correct, it can safely be replaced by CA7DTM.
              -Variables CA7JCL, CA7SCHID formatted Z3. to print 001.
              -Variable CPU formated TIME12.2.
              -Variable CURPRIO now INPUTs only first for bits.
              -Variables DISPLD1 formatted DATE9, DISPLD2 corrected.
              -Variable INPRIO input BITS4.0.
              -Variable INRMT is input $EBCDIC8, but the field changed
               to numeric in 5.2.1; new numeric INRMTNR variable is now
               created and input PIB.2., but INRMT is still created.
              -Variable INSEI input $EBCDIC8 instead of 4.
              -Variable JXCPUCA should have been name of JCXPUCA; both
               variables now exist, but use only JXCPUCA.
              -New variables JES3M26,JESM27,JES3M28 and JES3M29 were
               replaced with JLSENQ, JLSENQN, JLSLIMTT and JLSLIMTN,
               as they had nothing to do with JES3.
              -User character variables TPMUC1-TPMUC99 and user numeric
               variables TPMUN1-TPMUN99 are now supported, but none are
               kept by default; you remove comments in the EXTYTPMX to
               choose which user variables you want kept, and you code
               LENGTH and FORMAT statements for character variables to
               control their stored lengths and protect any $HEX data.
               You also blank out the variable's name from the DROP code
               in that member.  The example also shows how you can
               create variables from any binary fields in your character
               fields, and how to use MACRO _KTYTPMX to also keep them.
   Thanks to Lawrence Jermyn, Fidelity Systems, USA.
   Thanks to Kelly Vogt, Humana, USA.

Change 21.270  Short CMRDETL record caused INPUT STATEMENT EXCEEDED
VMACMVCI       and STOPOVER condition; test now validates the record
Jan  8, 2004   is at least 277 bytes, prints error messages and dump of
               first two short records, but no longer ABENDs.
   Thanks to Mike Kevlin, CSC, AUSTRALIA.

Change 21.269 -Support for many new TNG objects from AIX, NT,and SOLARIS
EXTAI013                  dddddd   dataset    description
  thru                    TAI013    AI013     CA CPU GROUP
EXTAI024                  TAI014    AI014     CA DISK GROUP
EXTSO016                  TAI015    AI015     CA FILE SYSTEM
  thru                    TAI016    AI016     CA INTERFACE GROUP
EXTSO026                  TAI017    AI017     CA KERNEL CONFIG GROUP
FORMATS                   TAI018    AI018     CA KERNEL GROUP
IMACTNG                   TAI019    AI019     CA MEMORY GROUP
VMACTNG                   TAI020    AI020     CA NETWORK GROUP
VMXGINIT                  TAI021    AI021     CA PER CPU GROUP
Jan  6, 2004              TAI022    AI022     CA SWAP GROUP
Jan  7, 2004              TAI023    AI023     PRINTER QUEUE
Jan 14, 2004              TAI024    AI024     USERS
                          TSO016    SO016     CA CPU GROUP
                          TSO017    SO017     CA DISK GROUP
                          TSO018    SO018     CA FILE SYSTEM
                          TSO019    SO019     CA INTERFACE GROUP
                          TSO020    SO020     CA KERNEL CONFIG GROUP
                          TSO021    SO021     CA KERNEL GROUP
                          TSO022    SO022     CA MEMORY GROUP
                          TSO023    SO023     CA NETWORK GROUP
                          TSO024    SO024     CA PER CPU GROUP
                          TSO025    SO025     CA SWAP GROUP
                          TSO026    SO026     USERS
                          TNT051    NT051     NTMSSQL$IN01:ACCESS ME
                          TNT052    NT052     NTMSSQL$IN01:BUFFER MA
                          TNT053    NT053     NTMSSQL$IN01:BUFFER PA
                          TNT054    NT054     NTMSSQL$IN01:CACHE MAN
                          TNT055    NT055     NTMSSQL$IN01:DATABASES
                          TNT056    NT056     NTMSSQL$IN01:GENERAL S
                          TNT057    NT057     NTMSSQL$IN01:LATCHES
                          TNT058    NT058     NTMSSQL$IN01:LOCKS
                          TNT059    NT059     NTMSSQL$IN01:MEMORY MA
                          TNT060    NT060     NTMSSQL$IN01:SQL STATI
                          TNT061    NT061     NTMSSQL$IN01:USER SETT
                          TNT062    NT062     NTMSSQL$IN01:BACKUP DE
                          NOTE: DATASETS NT051-NT062 CONTAIN DATA
                                FOR ALL SERVER='IN01' thru 'IN07'
               Twelve MSSQL Server Objects are created for each unique
               Server Name ("IN01"-"IN07"), so with 7 servers there are
               84 unique objects, but only twelve datasets are needed.
               Datasets NT051-NT062 contain data for all servers, with
               variable SERVER="IN0n" identifying the server.
                 Capturing the server name from object name, and mapping
                 84 objects to 12 datasets required new algorithms, and
                 this implementation is specific to those server names.
                 Arrays nt063-nt134 are used for "IN02"-"IN06".
              -The array sizes directly impact the REGION size needed.
               Now, you can change array sizes directly with %LETs in
               SYSIN, before the %INCLUDE SOURCLIB(TYPSTNG); statement.
               One very large NT site, had to set:
                 //SYSIN DD *
                    %LET NT005I=21;
                    %LET NT007I=999;
                    %LET NT013I=75;
                    %LET NT014I=625;
                    %LET NT017I=625;
                    %LET NT035I=2000;
                    %INCLUDE SOURCLIB(TYPSTNG);
               This works now, because all of the TNG macro variables
               (MAXROWS,AInnnI,AInnnV,NTnnnI,NTnnnV,SOnnnI,SOnnnV,etc)
               definition %LETs were moved to VMXGINIT and GLOBALed.
                 You cannot use  %LET MACTNG=  to redefine the array
                 size macro variables; you can't %LET a %LET.  You can
                 define a MACRO _MYSIZE  %%LET NT035I=2000; % and use
                 %LET MACTNG= _MYSIZE ;  %INCLUDE SOURLIB(TYPSTNG); ,
                 but you cannot define  MACRO _MYSIZE in your SYSIN
                 stream - that causes a recursion error.
              -By default TYPETNG reads all cube types, and MXG default
               array sizes (set so that I can read all test data sent
               thus far) requires a REGION=225M.  Region is NOT a real
               resource, but some sites artificially constrain REGION
               size. You can save some virtual storage by reading only
               one cube type at a time, and also using MACTNG to specify
               the _AIONLY, _SOONLY, or _NTONLY macro, to set unwanted
               array sizes to a value of one.
                  //SYSIN DD *
                   %LET MACTNG=  _NTONLY  ;
                   %INCLUDE SOURCLIB(TYPSTNG);
                       With _NTONLY   REGION=120M
                       With _SOONLY   REGION= 66M
                       With _AIONLY   REGION= 30M
              -SAS V8.2 and MXG 21.07 defaults required REGION=100M on
               z/OS 1.4; the same program used 86M Total Memory when run
               with SAS V9.0 under Windows 2000.
              -If there are any observations in the UNKNOWN dataset, it
               means there were new objects and/or new metrics that are
               not yet supported, and when there are obs in UNKNOWN, it
               is possible that MXG will not output any observations
                (when the last object in a group is unknown, the output
                 of the entire cube never occurs).
               Adding support for all new objects and metrics causes the
               observations to be output.
              -An ARRAY EXCEEDED error messaged, because AI007V should
               have been 7 instead of 2.
              -Some of the new "CA.." objects have identical metrics in
               both Solaris and AIX cubes, but other datasets, notably,
               the SO016, 020, 021, 022, and SO023 have a different set
               of variables than their AIX counterparts; always use the
               variable's LABEL, and not the NAME, to match AIX data to
               Solaris data in those dataset.
              -Major enhancements in error detection and reporting of
               array size issues were added; the number of instances
               and the number of variables in your data are compared
               to the array limits, and messages print which object's
               value in which array is too small, and by how much.

   Thanks to Ralton R. Van Heerden, CSC South Africa, SOUTH AFRICA.
   Thanks to Peter Krijger, National Bank of New Zealand, NEW ZEALAND.

Change 21.268  The PDB.ASUMCACH variable IORATE was wrong, because both
ASUMCACH       TYPE74 and TYPE74CA datasets have a variable IORATE, and
VMAC74         both values were being summed.  But in investigating the
Jan  6, 2004   error, I found that the TYPE74 IORATE variable is often
               a very different value than IORATE in TYPE74CA:
                 In TYPE74, the SIO74CNT variable is directly used:
                    IORATE=SIO74CNT/DURATM;     in TYPE74 dataset.
                 But in TYPE74CA, as there is no SIO count variable, the
                 I/O request counts RDREQS+WRREQS+ICLR+BPCR are added
                 to get the total I/O request count, SIO74CA:
                   IORATE=SIO74CA/DURATM;      in TYPE74CA dataset.
               Both SIO74CNT and SIO74CA variables are in PDB.ASUMCACH,
               so you can see the differences in your own data. One test
               had TYPE74 with 4,635,246, while TYPE74CA had 18,425,069.
              -In VMAC74, variable SIO74CA is created in TYPE74CA data
               set, for direct comparison with TYPE74 data.
              -In ASUMCACH, the IORATE variable is now calculated in the
               OUTCODE= argument, using IORATE=SIO74CNT/DURATM, since
               the TYPE74 IORATE existed long before cache controllers,
               but also, new variable IORATECA=SIO74CA/DURATM is created
               so that you can compare the two I/O rates directly.
              -The local variables IORATEA-IORATEZ were also removed.
   Thanks to Kasandra Natzke, Infores, USA.

Change 21.267 -Syntax of the redefinition of old-style "dataset" MACRO
ASUMUOWT       names _LDB2ACC _LMONTSK, _LCICTRN and _INMQ had hardcoded
VMXGUOW        DDnames of DB2ACCT, MONITASK, CICSTRAN, and PDB, but now
VMXGUOWT       have &PDB2ACC, &PMONTSK, &PCICTRN, and &PTY116 (&Pdddddd)
Jan  7, 2004   macro variable names for the LIBNAME/DDNAME, so they can
               be easily overridden, and to be consistent.
              -ERROR: OLD-STYLE MACRO NAME MUST CONTAIN ... in ASUMUOWT
               was corrected by redefining each old-style macro name to
               itself immediately before the %LET MACKEEP= statement.
               (see Change 21.244).
              -PSUUOW macro variable is no longer re-set in ASUMUOWT.
   Thanks to Chris Weston, ITRM Development, USA.

Change 21.266  Calculation of CPCMSU in PDB.RMFINTRV and PDB.ASUM70PR
VMXGRMFI       and PDB.ASUMCEC is now rounded to an integer, to more
VMXG70PR       closely match the IBM values.
Jan  5, 2004   CPCMSU - Announced MSU alue, calculated from SMF70CPA.
               CPCFNAME - MXG-created "standard" long name for the box.
               SU_SEC   - SRM "constant" value in SMF 72 record, changes
                          when the LPAR configuration is changed, cannot
                          be used to exactly calculate CPCMSU.
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.

Change 21.265  Variable SMF70LAC (IBM's 4-hr-avg-MSU) was incorrectly
VMAC7072       output in every observation in PDB.TYPE70PR, which made
Jan  5, 2004   the LPnLAC values identical for all LPARs.  This change
               recognizes SMF70LAC is a "this-partition-only" value and
               it is now non-missing only in PDB.TYPE70PR dataset from
               the 'this-partition' records, which will correct values
               of LPnLAC in PDB.ASUM70PR and PDB.ASUMCEC.  However, MXG
               must read the raw SMF type 70 records from each LPAR
               for the LPnLAC values to be completely non-missing.
   Thanks to Richard Ralston, Humana, USA.

Change 21.264  New utility %VGETSORT macro reads the contents of a SAS
VGETSORT       data library, and, for each dataset in that library, will
Jan  5, 2004   build a macro variable that contains the member name and
               the SORTEDBY variables,or UNSORTED if there is no SORTBY.
               This will be used to dynamically build a WEEKBLD/MONTHBLD
               process that will preserve the default sort order.

Change 21.263  Support for UniCenter NetMaster Automation Services SMF
EXNETM22       record with Event View, Resource View, and Server View
EXNETM30       Statistics creates two new datasets:
IMACNETM         DDDDDD Dataset  Description
TYPENETM         NETM22 NETM2200 Subtype 2000, 2200 Event View
TYPSNETM         NETM30 NETM3000 Subtype 3000, Resource/Service View
VMACNETM       Some problems exist with datetimestamps that are under
VMXGINIT       investigation, and no 2200/2000 data has been tested.
Jan  4, 2004
   Thanks to Andy Creet, Defence Computing Bureau, AUSTRALIA.

Change 21.262  WebSphere MQ Version 5.3 new variables SM115REL/SM116REL
VMAC115        with Version and Release ("531") is now kept in all MQ
VMAC116        datasets.  However, as there are no other changes in 5.3
Jan  3, 2004   DSECTS, except for these two new Release variables, MXG
Jan 23, 2004   21.05 or later supports MQ Version 5.3 SMF 115/116s.
              -Label for QPSTDMC is now SYNC, it was incorrectly ASYNC,
               a very important difference in this case, since Sync page
               writes can significantly delay transactions.
   Thanks to Don Deese, Computer Management Services, USA.

Change 21.261  Dataset TYPE74CF could have multiple observations, when
VMAC74         more than one SMF 74 subtype 4 record was written (due to
Jan  2, 2004   a large number of structures).  The MXG logic test to
               output TYPE74CF included variable SMF744SN, which has
               been removed, and only if the XN, GN, and PN segments are
               present in this SMF 74 record will TYPE74CF be output.
   Thanks to Art Cuneo, Health Care Service Corporation, USA.

Change 21.260  Macro compilation ERROR: A CHARACTER OPERAND .... is
UTILBLDP       corrected; this error was introduced in Change 21.231.
Jan  2, 2004
   Thanks to Scott Barry, SBBWOrks, Inc., USA.

Change 21.259  Using VMXGTIME to shift timezones caused MXG's calculated
VMACSMF        GMTOFFDB GMT offset to be wrong, and so QWACBSC/QWACESC
VMACDB2H       were also wrong.  DB2 has no GMT offset value in the SMF
VMAC110        records, but all timestamps are on the TODCLOCK, so MXG
VMACOMCI       compared SMFTIME with TODSTAMP values to create the GMT
Jan  2, 2004   offset, and then shift the DB2 timestamps to local zone.
               But when VMXGTIME is enabled, the SMFTIME was shifted in
               VMACSMF, before the GMT offset calculation in VMACDB2H,
               causing this error.  Variable UNMODSMF is now created and
               it contains the un-modified SMFTIME value, and UNMODSMF
               is used in VMXGDB2H to calculate the GMT Offset for DB2.
              -SMFTIME was also used in the calculation of UOWTIME, to
               find the FRSTBASE (epoch) of the 205-day-wrapping-clock.
               While that exposure is extremely small, UNMODSMF is
               also now used in that calculation.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.258  Label for variable ESFRLSAV in TYPE71 dataset revised to
VMAC71         ESTORE vice CSTORE, and ESFRLSAV=. is now set instead of
Dec 17, 2003   CSFRLSAV when ESFRLSAV is LT 0 (line 1412).
   Thanks to Jennifer C. Chu, State Street Corporation, USA.

Change 21.257  Output statement for ZRBSVPP dataset was relocated to
VMACRMFV       after the segment has been input, causing variables to be
Dec 17, 2003   populated.

Change 21.256  Variable CECSER now kept in PDB.TYPE70LP dataset.
VMXG70PR
Dec 17, 2003
   Thanks to Hugh Lapham, RCMP, CANADA.

Change 21.255  New BLDSMPDB builds an executable "BUILDPDB jobstream"
BLDSMPDB       that executes under either ASCII or EBCDIC SAS, reads an
Dec 16, 2003   SMF file to create the MXG recommended, enhanced, Daily
               "SMF" PDB library, optionally copies that daily PDB to
               the appropriate one-of-seven day-of-week PDBs, optionally
               updates the current Week-To-Date PDB library, optionally
               creates the Weekly PDB library from the seven dailies on
               the first day of your week, optionally creates the
               Monthly PDB on the 1st day of the month, and optionally
               updates your TREND PDBs.  First draft, to be revised.

               This program effectively implements the suggestions in
               the (still out of date documentation) ACHAP35 member.
   Thanks to Joe Key, BOC, ENGLAND.

Change 21.254  Revised.
TRNDDB2A
Dec 16, 2003

Change 21.253  New GLOBAL macro variables TRENDOLD, TRENDNEW, TRENDINP
VMXGINIT       default to TREND, TREND, and WEEK respectively, and will
Dec 16, 2003   be used in place of those hard-coded DDNAME/LIBNAMEs in
               the MXG Trend Members.

Change 21.252  Two ways to see RMF control blocks, happy values, SU_SEC:
RMFMON         one uses the LIST subcommand of the TSO TEST command,
Dec 16, 2003   a better one uses the SAS PEEK() function specifically to
               display the SU_SEC value in your z/OS system.

Change 21.251  SAS has a new SMFEXIT that adds SAS Version/Release, User
VMACSASU       and JOBID to the SAS User SMF record; those fields are
Dec 16, 2003   now input as variables SASVEREL, SASUSER, and SASJOBID.
               The revised SMFEXITs are available from SAS Institute at:
                http://ftp.sas.com/techsup/download/mvs/SMFEXIT.ASMSRC
   Thanks to David Heiniluoma, Commonwealth of Massachussets, USA.
   Thanks to Rich Anderson, SAS Institute, USA.

Change 21.250 -New ANALJOBN reads all job-related SMF records to count
ANALALL        how many records of which type and subtype were written
ANALJOBN       by each JOB, so you can track down which runaway JOB
VMXGPRAL       filled your SMF file.
Dec 12, 2003  -Existing ANALALL member (prints all variables and all
Dec 15, 2003   observations for all job-related datasets created by
               selected jobnames) was revised so only datasets with
               JOB name are created.
              -The VMXGPRAL utility (invokes PROCs PRINT or PROC MEANS
               against all datasets in a SAS data library:
                 %VMXGPRAL(DDNAME=WORK,NOBS=50);
               was enhanced with the NOFREQ= option used by ANALJOBN.
              -The confusing SAS NOTE on the log when VMXGPRAL was run:
                 "The variable NOBS exists on an input dataset, but was
                  also specified on an I/OI statment option. The
                  variable will not be included on any output data set."
               was eliminated, thanks to Charley.
   Thanks to Adam Floro, Southern Illinois University, USA.
   Thanks to Charley Mullin, SAS Technical Support, SAS Institute.

Change 21.249  TIC_UTIL in the NSPYTIC3 dataset was missing because the
VMACNSPY       wrong time per frame variables were used in the equation.
Dec 10, 2003   Jan 17: Typo NSPYTMFS corrected to NSPVVTMFS.
Jan 17, 2004
   Thanks to Steve Donahue, BCBS of Texas, USA.

Change 21.248  MWUX GLOB records with missing delimiter after the field
VMACMWUX       "Process Queue Histogram" and before "Process Waiting"
Dec  5, 2003   caused INPUT STATEMENT EXCEEDED RECORD LENGTH error.
               Circumvention coded while the vendor is being contacted.
   Thanks to Miguel Fernandez, Information Services International, USA.

====== Changes thru 21.247 were in MXG 21.07 dated Dec  2, 2003=========

Change 21.247  Support for MVS Solution's ThruPut Manager now supports
VMACTPMX       all of the fields created as of their latest version,
Dec  2, 2003   TMT5210, adding 259 new variables to TYPETPMX dataset.
   Thanks to Lawrence Jermyn, Fidelity Systems, USA.
   Thanks to Nancy DiFilippo, MVS Solutions Inc., CANADA.

Change 21.246  Cosmetic, sort of.  Text was added to two error messages
VMXGRMFI       to clarify their known causes:
Dec  1, 2003
              -If your workload definitions are incorrect:

           ***ERROR.RMFINTRV. WORKLOAD CPU TIMES DO NOT MATCH REAL CPU.
           YOU HAVE CPUTM=00:30:00 REAL CPU TIME IN SMF 72, BUT HAVE
           CPU72TM=00:45:00 CPU TIME IN YOUR WORKLOAD DEFINITIONS.
           AT STARTIME=30NOV2003:00:02:30.00 FOR SYSTEM=SYS1.
           THIS IS A SERIOUS ERROR IN YOUR TAILORING IN IMACWORK, OR
           IN RMFINTRV MEMBERS.  ALL OF YOUR WORKLOAD VARIABLES
           (BATXXXX, TSOXXXX, CICSXXXX AND THEIR SUMS
           (CPUTCBTM,CPUSRBTM,CPUHPTTM,CPU72TM) ARE WRONG.
           SEE TEXT OF CHANGE 15.138.

              -If MXG detects NEGATIVE UNCAPTURED CPU TIME in 70 vs 72:

           *** ERROR. NEGATIVE UNCAPTURED-CPU-TIME (TYPE70-TYPE72).
           *** ERROR. NEGATIVE UNCAPTURED-CPU-TIME (TYPE70-TYPE72).
           *** ERROR. NEGATIVE UNCAPTURED-CPU-TIME (TYPE70-TYPE72).
              FIRST: LOOK AT THE VALUES OF CPUTM AND CPU72TM, BELOW.
                     IF THEY ARE NOT EQUAL, THERE WAS AN EARLIER ERROR
                     MESSAGE:    ERROR.RMFINTRV. WORKLOAD CPU TIME...
                     TELLING YOU THIS ERROR IS DUE TO TAILORING OF YOUR
                     WORKLOAD DEFINITIONS IN IMACWORK OR RMFINTRV.
                     THIS MESSAGE IS PRINTED HERE FOR REINFORCEMENT.
             SECOND: LOOK AT THE VALUES OF CPUACTTM AND CPUEFFTM,
                     BELOW, IN THIS MESSAGE.  IF CPUEFFTM IS MORE
                     THAN CPUACCTM, THEN READ APAR II10549 ABOUT
                     SLOW COUPLING FACILITY AND HARDWARE PROBLEMS.
                     YOUR CE NEEDS TO OPEN A HARDWARE PMH TO FIX.
                     SEARCH MXG NEWSLTRS FOR II10549 FOR MORE INFO.
             THIRD:  IF NEITHER, THEN YOU HAVE BAD DATA IN YOUR 70/72
                     RECORDS. BMC CMF PRODUCT NEEDS CMF PTF BPM6782.
                     IBM RMF APARS OW28256 (1997) OR OY51878 (1992).
                     ONLY 2 INSTANCES OF THIS MESSAGE ARE PRINTED.
                     READ TEXT OF CHANGE 15.238 IN MEMBER CHANGES.
           *** ERROR. THIS IS A SERIOUS ERROR**********************
              CPUOVHTM=-00:00:01.40
              SYSTEM=PRD2 STARTIME=30NOV2003:00:30:00
              CPUACTTM=0:05.22.35 CPUEFFTM=0:05:59.77
              CPUTM=0:05:23.75 CPU72TM=0:05:23.75
               and you can see this error was for the Second case.

   Thanks to Hugh Lapham, RCMP, CANADA.

====== Changes thru 21.245 were in MXG 21.07 dated Nov 30, 2003=========

Change 21.245  Revisions to resolve errors and inconsistencies.
ASUMUOW
ASUMUOWT
ASUMUOTT
VMXGUOW
VMXGUOWT
VMXGUOTT
Nov 30, 2003

Change 21.244  Cosmetic cleanup after first MXG 21.07 QA runs:
ANALCNCR      -ANALCNCR.  UNINITIALIZED VARIABLE NEXTINTV/LASTINTV
VMXGTPFI       messages had no impact on the results, but have been
VMACOMDB       eliminated.
ANAL16        -VMXGTPFI revised to remove unneeded sorts and messages
Nov 28, 2003   about MXGSUM2.
              -VMACOMDB minor revisions to remove duplicate variables in
               FORMAT statement, and $CHAR instead of $EBCDIC for $HEX.
              -ANAL16 following INCLUDE of TYPE16 failed with message
                ERROR: OLD-STYLE MACRO NAME MUST CONTAIN ONLY LETTERS.
               because ANAL16 used %LET MACKEEP to redefine old-style
               macros.  Redefinition (MACRO _KTY16 _KTY16 %) inserted
               ANAL16 before the %LET MACKEEP re-definition, as noted in
               the DOCMXG comments related to use of %LET MACKEEP.

Change 21.243  Support for Candle Omegamon II for DB2 Historical D2540
EXDB0010       file creates 312 new datasets, based on the SAS code that
...310 more    Candle provided with the product.  This iteration
EXDB3370       supports DB2 V7.1; only forty-two of the datasets have
IMACOMDB       been populated with observations, and only cursory
TYPEOMDB       validation of formats, labels, etc., has been completed.
TYPSOMDB
VMACOMDB
Nov 24, 2003

Change 21.242  JCLTEST8 fails with VARIABLE OPERATOR NOT FOUND if your
ASUMCICS       CICS guru has Excluded OPERATOR or TERMINAL from CICSTRAN
JCLTEST8       dataset, because those two variables are historically in
Nov 24, 2003   in the default SUMBY list in MACRO _BSUCICS.
               - See Change 21.105: We no longer recommend ASUMCICS be
                 used, since it summarizes transaction segments instead
                 of unit-of-work transactions.
                 Instead, you should create PDB.ASUMUOW and then use the
                 ASUMCICX program to create PDB.CICS summary dataset:
                     %INCLUDE SOURCLIB(ASUMUOW,ASUMCICX);
                 (and you need to tailor IMACUOW - read its comments).

               - You should always use ASUMUOW, even if you don't have
                 DB2 data, to combine CICS MRO segments together to get
                 correct TRANNAME, etc.  If you do not create the
                 PDB.DB2ACCT dataset, you can create a zero-observation
                 DB2ACCT dataset to satisfy ASUMUOW, using:
                    OPTIONS OBS=0;
                    %INCLUDE SOURCLIB(TYPEDB2);
                    RUN;
                    OPTIONS OBS=MAX;RUN;
                    &INCLUDE SOURCLIB(ASUMUOW,ASUMCICX);

               - If you still must create PDB.CICS from CICSTRAN, you
                 can re-define the old SUMBY list "instream":
                 //SYSIN DD *
                   %LET MACKEEP=
                        MACRO _BSUCICS APPLID USER STRTTIME TRANNAME
                                       SYSTEM SHIFT %
                    ;
                    %INCLUDE SOURCLIB(ASUMCICS);
                 to remove the OPERATOR and TERMINAL variables.
               - But so you don't get blindsided during testing with my
                 defaults,
                   One site with excluded fields had never used ASUMCICS
                   but their "clean running" JCLTEST8 job failed.
                 this change added "compiler fakers' in ASUMCICS to
                 create one-byte OPERATOR/TERMINAL variables when they
                 do not exist in your CICSTRAN.
               Jan 25, 2004 Update: You can now use the VMXGSUME member
               created in Change 21.277, and not have to modify ASUMCICS
               or ASUMUOW to deal with dropped variables.

Change 21.241  Revised support for Hewlett Packards MeasureWare for HPUX
VMACMWUX       now a/k/a OVPA.
Nov 22, 2003  -DISKKBYT,KBYTRATE,PREADKBS,PWRITKBS are mult by 1024.
              -GLOBAL Transaction variables no input by default
              -The REPORT ALL command in ADOCMWUX is the command to use
               that creates the MXG-expected data fields.
              -Many TRAN fields were removed as they are not in the HP
               default REPTALL, and I had no test data to validate with.
   Thanks to Tony Steward, Royal Mail, ENGLAND.
   Thanks to Miguel Fernandez, Information Services International, USA.

Change 21.240  Support for new S4RSP7CT in STID=124 CICS Statistics data
VMAC110        record.  Caused "FOUND WITH SKIPPED FIELDS" warning with
Nov 21, 2003   STID=124,SKIP=4,STILEN=120, but no error.
   Thanks to Tim Vanderhoek, Fidelity Systems, USA.

Change 21.239  The ability to read multiple PDB libraries was lost in a
ANALDB2R       prior change, but has been restored, so you can again use
Nov 20, 2003   the documented syntax PDB=MON TUE WED THU FRI SAT SUN,
               to read multiple PDBs as input to ANALDB2R.
   Thanks to Bill Bonfitto, MassMutual Financial Group, USA.

Change 21.238  Dataset TYPE74DU (RMF DUPLEX COUPLING FACILITY) was trash
VMAC74         because the offset SMF744RO is unlike other RMF offsets.
Nov 20, 2003   It is from the first data byte and not from the RDW, so
               SMF744RO=SMF744RO-3 used to calculate the byte location
               had to be deleted.  And with data to look at, the two sum
               of squares R744RSSS and R744RSSD are actually &PIB.8 and
               not the &RB.8 that I had assumed.
   Thanks to Tom Draeger, Aurora Health Care, USA.

Change 21.237  New ASUMUOTT member creates new PDB.ASUMUOTT from the
ASUMUOTT       ASG-Landmark DB2 TMDBDB2 dataset and ASG-Landmark CICS
EXTMDDB2       MONITASK dataset.  The output is named PDB.ASUMUOTT,
IMACUOTT       even though it is logically the same as PDB.ASUMUOW,
JCLUOTT        because the TMDBDB2 variable names are used instead of
VMACTMDB       the DB2ACCT names.
VMXGUOTT      -Member VMACTMDB was modified to create the DB2PARTY
Nov 19, 2003   variable, to identify DB2 Parallel event records (see
Nov 30, 2003   Change 14.287).
               Formats MGDB2RC and MGDB2LM applied to RINV/PREC vars.
               All ACE vars are now all numeric, $HEX8. &MXGBYLN.
               All /4096 are now formatted TIME12.2.
              -Member EXTMDDB2 was revised to use DB2PARTY to delete
               events that should not be output (see Change 19.027).
              -Member JCLUOTT is a standalong example to read the raw
               TMON CICS and TMON DB2 files to create PDB.ASUMUOW.
              -Member VMACDB2, variable QWACLRAB now formatted MGBYTES.
               Nov 30:
               New member ASUMUOWT and VMXGUOWT created to support the
               combination of MONITASK.MONITASK and DB2ACCT.DB2ACCT.
   Thanks to Hamid Tavakolian, CSC, USA.

Change 21.236  The ASMRMFV member in MXG 21.06 was an earlier iteration
ASMRMFV        that did not include the enhancements in Change 21.186.
Nov 18, 2003   I copied the wrong member into the source library.  The
               ASMRMFV at Change 21.236 dated Nov 18, 2003 (or later)
               contains that major revision to the ASM program for the
               RMF III VSAM data; Change 21.228 added VMACRMFV support.

Change 21.235  Variable CPCFNAME, the CPC FULL NAME (2064216) created in
VMXG70PR       PDB.RMFINTRV, is now also created in PDB.ASUM70PR and in
Nov 18, 2003   PDB.ASUM70LP datasets.
   Thanks to Kenneth D. Jones, xwave, CANADA.

Change 21.234  Test for '2084'X added, but only needed if  OS/390 R2.10
VMXGRMFI       with SMF70WLA=. (i.e., do not have the APAR that added
Nov 18, 2003   SMF70WLA installed) is running on a z990.

Change 21.233  Support for Fujitsu Siemens openFT file transfer propgram
FORMATS        user SMF record creates new OPENFT dataset for each SMF
EXOPENFT       event record.
IMACOPFT
TYPEOPFT
TYPSOPFT
VMACOPFT
VMXGINIT
Nov 17, 2003
   Thanks to Wolfgang Prescher, Itellium, GERMANY

Change 21.232  Replaced change.

Change 21.231  Now, USERADD=80 USERADD=90 cause the TYPE80A or TYPE90A
UTILBLDP       code to be generated, and not TYPE80 nor TYPE90, which
Nov 17, 2003   were replaced by their "A" counterparts.  MXG's original
               logic for RACF TYPE80 and OPERATOR COMMAND TYPE90 created
               one TYPE80/TYPE90 dataset with hundreds of variables; the
               "A" replacements create many TYPE80nn/TYPE90nn datasets,
               one for each event with only that event's variables kept.
               You can see what events occurred, just by looking at the
               non-zero observation counts for each dataset on the log.
                  Previously: "USERADD=90," created obs in TYPE90, but
                  "USERADD=90 90A," generated both _CDE90 and _CDE90A
                  segments, and that first  ELSE IF ID=90 ...  in _CDE90
                  prevented _CDE90A from being executed, so there were
                  never any obs in any of the TYPE90nn datasets.
   Thanks to Gadi Ben-Avi, Malam Systems Ltd, ISRAEL.

====== Changes thru 21.230 were in MXG 21.06 dated Nov 12, 2003=========

Change 21.230  SAS V6 Only.  OUT OF MEMORY error with MXG 21.04+ because
VMXGCICI       the ORDER= argument "clean up" by Change 21.152 increased
Nov 11, 2003   the number of lines which exceeded the maximum size of a
               SAS V6 macro argument.  Compacting the lines reduced the
               total bytes and the code now executes under V6 or V8+.
   Thanks to Kelvin Wells, ScaleOn GmbH, GERMANY.

Change 21.229 -Variable CPUTM=SUM(PRODTCB,PRODSRB) added to TYPE89 data
VMAC89         set for consistency; MXG datasets with multiple CPU Time
Nov 11, 2003   measurements were intended to always have variable CPUTM
               as the total, unoverlapped, billable, etc., CPU time, but
               TYPE89 was overlooked.
   Thanks to Jake M. Drew, MBNA, USA.

====== Changes thru 21.228 were in MXG 21.06 dated Nov 10, 2003=========

Change 21.228  Support for RMF III ASMRMFV data added by Change 21.186.
EXZRBRCB        - CFI segment creates ZRBCFI dataset
EXZRBRCD        - RCD segment creates multiple datasets:
EXZRBRCP           ZRBRCB     ZRBRCDB   RMFIII RESPONSE TIME BUCKETS
EXZRBRCR           ZRBRCS     ZRBRCDS   RMFIII SERVICE CLASS
EXZRBRCS           ZRBRCR     ZRBRCDR   RMFIII REPORT CLASS
EXZRBRCT           ZRBRCP     ZRBRCDP   RMFIII PERIOD
EXZRBSVG           ZRBRCT     ZRBRCDT   RMFIII RESPONSE TIME COUNTS
EXZRBSVP           ZRBRCD     ZRBRCDD   RMFIII SUBSYSTEM DELAY
EXZRRCFI        - SVP segment creates multiple datasets:
EXZRRSVC           ZRBSVP     ZRBSVPP   RMFIII SERVICE POLICY
EXZRRSVR           ZRBSVW     ZRBSVPW   RMFIII SERVPOLICY WORKLOAD DEFN
EXZRRSVW           ZRBSVC     ZRBSVPC   RMFIII SERVPOLICY SRVCLASS DEFN
EXZRRSVZ           ZRBSVZ     ZRBSVPZ   RMFIII SERVPOLCY SRVCLASS PERIOD
IMACRMFV           ZRBSVR     ZRBSVPR   RMFIII SERVPOLICY REPORC CL DEFN
VMACRMFV           ZRBSVG     ZRBSVPG   RMFIII SERVPOLICY RESOURCE GROUP
VMXGINIT        - UWD segments produce warnings (first five) that will
Nov  9, 2003      will be investigated, and only cursory validation of
                  all of the new data has been accomplished.  Some back
                  end merges/unions may be necessary, and/or there may
                  be some variables that need to be carried forwared,
                  but that awaits someone who really wants to use these
                  new data segments, but lots of the data is already in
                  the TYPE7xxx RMF Monitor I data.

Change 21.227  Final Cleanup after full QA runs:
ANALDBTR      -ANALDBTR updated to include all pairs datasets; I183R183
ANALDB2R       was changed to S183S183 for consistency in pair names.
CONFIG        -Archaic CONFIG member for SAS V6 specifies MEMSIZE=128M.
JCLTEST6      -VMAC6,IMAC6ESS ESSPIMSG/ST spellings corrected, all vars
IMAC6ESS       in DROP and KEEPs.
VMAC6ESS
Nov  8, 2003
   Thanks to Freddie Arie, TXU, USA.
   Thanks to Bruce Widlund, Merrill Consultants, USA>

====== Changes thru 21.226 were in MXG 21.06 dated Nov  7, 2003=========

Change 21.226  Support for GEPARMKY=000B in Extended SMF 6 ESS data now
IMAC6ESS       creates ESSDEFAU variable if IMAC6ESS is enabled to
VMAC6          decode those optional ESS data fields.
Nov  7, 2003
   Thanks to Engelbert Smets, Provinzial Rheinland Versicher, GERMANY

Change 21.225 -PDB.RMFINTRV workload definitions can now be based on the
VMXGRMFI       WORKLOAD name, variable WKLDNAME, instead of a long list
Nov  7, 2003   of Service Class Names, by this enhancement that adds an
               eight value to the WORK= argument.
                Caveats:  USECNTRL must be YES or GOAL, or nothing will
                        be found.  And if you mix up workloads, service
                        classes, and reporting classes, the UTILRMFI
                        can't help you figure out what you've done wrong
                        because WORKLOAD doesn't exist in TYPE30 SMF.
              -The SPIN logic to detect existence was enhanced.
              -Note that if both SRVCLASS and WORKLOAD are specified,
               that WORKnn workload will include all observations that
               match either the SRVCLASS or the WORKLOAD names, so you
               must be careful to avoid any overlap.
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.
   Thanks to ??? who actually asked for it earlier.  Identify yourself.

Change 21.224  New QAPMCONF variables GDESIL/GDESIT/GDESPU were missing
VMACQACS       values because they were not in the RETAIN statement, and
Nov  6, 2003   the configuration file has one record per parameter; all
Nov 10, 2003   GDESxxxx variables are now RETAINed.
              -New variables GDESIL/GDESIT/GDESDL/GDESDT had incorrect
               values; they are now input as PIB2.1 instead of PIB4.1;
               I misread the OS/400 description of B(4,1) as being a
               four byte field.
              -New variable GDES18 decodes the GDESKEY='18' record.
              -Variables GDESAP and GDESAT are addresses, and are now
               formatted as MGBYTES (so they print 255G for 255 GBytes).
              -Variable GDESI, interval value, was multiplied twice by
               60, causing an incorrect value.
   Thanks to Jim Wertenberger, Antares Management Solutions, USA.
   Thanks to Al Kadowaki, IBM Corporation, USA.

Change 21.223  CA-VIEW TYPESARR user SMF records caused INPUT STATEMENT
VMACSARR       EXCEEDED RECORD LENGTH error because MXG used $VARYING40.
Nov  6, 2003   but one instance had 45 characters.  Now use $VARYING80.,
               and protection was added if the text length is greater
               than 80.  Then I realized these character variables were
               not even output (probably because I didn't have any data
               with index data), so the subtype 30/31 datasets now have
               variables SV30/31INAM,SV30/31IVAL,SV30/312VAL,SV30/313VAL
               with the Index name and the first three index values.
   Thanks to John Rivest, TDS, USA.

Change 21.222  SAS Version 6 ERROR 29-185 WIDTH INVALID $EBCDIC255 when
VMAC102        MXG was executed under SAS V6, which limited character
VMAC110        variables to 200 bytes.  While execution under SAS V8.2
VMXGINIT       or later is STRONGLY RECOMMENDED, it was my intention to
Nov  3, 2003   support execution under V6 for all of the "standard" code
Nov 27, 2003   members, so this oversight was corrected with a new macro
               variable &EBC255 that will input $EBCDIC200. +55 for V6.
               These new products require execution under SAS V8:
                 TYPEAIX    -  AIX Performance Tool
                 TYPETMTC   -  TMON ASG-Landmark TCP/IP monitor
                 TYPEWWW    -  Web Logs
                 TYPEOMDB   -  Omegamon II for DB2 Historical File
              -In addition, a $VARYING250 in VMAC102 was changed to only
               read in the first 200 bytes with $VARYING200.
   Thanks to Kevin Wells, ScaleOn Gmbh & Co KG, GERMANY.

Change 21.221 -MXG Web Log processing of data with negative GMT offset
VMACWWW        caused INVALID ARGUMENT messages, and causing variable
Oct 31, 2003   GMTOFFTM to be missing, but ENDTIME was correct.
Nov  5, 2003  -ELAPSTM was missing value in IIS logs due to typo, and
               is now formatted TIME8.
   Thanks to Robert Gauthier, Albertsons, USA.

Change 21.220  FLASH: MXG 21.07 is required for PDB.ASUMUOW to have all
ASUMCICX       reported errors fixed.  If you use JCLUOWV from an
ASUMUOW        earlier MXG version, or use VMXGUOW, ASUMUOW, ASUMUOWT on
ASUMUOWT       Landmark MONITASK data to build PDB.ASUMUOW, you're at
JCLUOWP        risk of having incorrect data, like missing values for
JCLUOWV        STRTTIME, or your perfectly running BUILDPDB can ABEND
VMACTMO2       with DATASET DB2ACCT NOT SORTED or with the VARIABLES NOT
VMXGUOW        FOUND error condition.  We have had a series of
Oct 30, 2003   architectural revisions to correct the sort sequence for
Nov 30, 2003   LU 6.2 transactions, and corrections to that redesign,
               and restructured into ASUMUOW for IBM CICSTRAN and
               ASUMUOWT for ASG MONITASK data, to eliminate double
               mounts of tape libraries, and only now does it appear
               we've fixed everything or at least documented that you
               must use the JCLUOWV or JCLUOWP members from MXG 21.06,
               due to these changes:
                 Change 21.194 - Added Variables
                 Change 21.147 - Populated STRTTIME
                 Change 21.134 - MONITASK fixed
                 Change 21.093 - SYSTEM blank, cleanup
                 Change 21.076 - Stored Procedure vars added
                 Change 21.062 - SORT ORDER CHANGED, vars dropped
                 Change 21.237 - ASUMUOWT fixed
               This change is only documenation of the INCOMPATIBLE
               changes that have been made to this very-important MXG
               program that we strongly suggest you use to put the DB2
               and CICS transaction data together.
   Thanks to Larry Nova, Transamerica, USA.

Change 21.219  Support for IBM Tivoli Storage Manager Accounting Records
EXTSMACC       creates new TSMACCT dataset when data files are
IMACTSMA       transferred, with counts of transactions and bytes
TYPETSMA       transferred.
TYPSTSMA
VMACTSMA
VMXGINIT
Oct 27, 2003
   Thanks to Simone Niemczura, Sungard, USA.

Change 21.218  Six variables in TYPE71 had "AVAILABLE ..USED" in the
VMAC71         label, but the "USED" did not belong, as all count the
Sep 24, 2003   number of available, not used, frames:
                AVLEXTAV AVLEXTMN AVLEXTMX PVTAFCAV PVTAFCMN PVTAFCMX
   Thanks to Tom Buie, Southern California Edison, USA.

Change 21.217  Support for SMF 99 subtype 7 PAV Device data creates new
EXTY99U7       TYPE997 dataset.  Observations are only output if there
IMAC99         were activity counts for the device.
VMAC99
VMXGINIT
Oct 23, 2003
   Thanks to Randolph Shumate, LexisNexis, USA.

Change 21.216  z990 CPUTYPE 2084 with OS/390 R2.10 caused CPU NOT IN
VMXGRMFI       TABLE error; this member should have been updated by
Oct 23, 2003   Change 21.149, but my z990 test data was z/OS and the
               VMXGRMFI test was overlooked.
   Thanks to Peter Giles, Centrelink, AUSTRALIA.

Change 21.215  Support for EKC's ETF/R FIRECALL SMF 80 optional data
EXTY80EK       segment creates two new MXG datasets:
EXTY8XEK         TYPE80EK - Contains fixed data plus first EKC80FRD.
IMAC80A          TYPE8XEK - Contains any additional EKC80FRD relocate
VMAC80A                     data segments.
VMXGINIT       This change requires execution under SAS Version 8 to
Oct 23, 2003   input the full length (up to 1024 bytes) in EKC80FRD; the
Nov  2, 2003   code executes under SAS V6 without error, but variable
               EKC80FRD will be truncated to 200 bytes.
   Thanks to Jim Holloway, MetLife, USA.

Change 21.214  Cosmetic.  The FORMAT statement in MACRO _VMRPT3 (for
VMACVMXA       "report three" listed the variables from _VMRPT2, but
Oct 22, 2003   there is no need for those variables in _VMRPT3.
   Thanks to Thom Kight, Fidelity Investment Systems Co, USA.

Change 21.213  Support for Oracle V9.x SMF data is already in MXG, as
VMACORAC       there were no changes in their SMF record; you need to
Oct 20, 2003   set the record ID macro, and the Subsystem macro, but
               they can be set "instream" after your //SYSIN DD *
                 %LET MACKEEP=
                      MACRO _IDORAC  200  %
                      MACRO _IDORACO  SUBSYSID EQ 'TGW9'  %
                 ;
                 %INCLUDE SOURCLIB(TYPSORAC);
   Thanks to Ralf-Henning Glomb, BMW, GERMANY

Change 21.212  Support for optional CMODNAME='MQSeries' CICSTRAN data
UTILEXCL       fields from ????????????????'s product ?????????????
VMAC110        creates variables MQGETWTM,MQGETWCN,MQREQS,MQWTCBUS,
Oct 20, 2003   MQONTCBU, and MQREQUS.  This support requires that you
               use UTILEXCL to create an IMACEXCL for those variables to
               exist in CICSTRAN dataset.
               I still don't know where these fields come from.
   Thanks to Ricke Godehard, Itellium, GERMANY.

Change 21.211  Support for RACF segment RACFDTP=44 decodes the value of
VMAC80A        the command into new variables EV44VAL1-EV44VALF and
Oct 20, 2003   stores only the name (PROC,ACCTNUM,SIZE,MAXSIZE, NOUNIT,
Oct 28, 2003   and COMMAND) in the existing EV44TXT1-TXTF variables.
Oct 29, 2003
   Thanks to John McDermott, Blue Cross Blue Shield of Florida, USA.

Change 21.210  Support for several new ESS segments (34x,35x,37x,47x)
IMAC6ESS       and for GEPARMNR more than 1 for 21x and 2Fx added in
VMAC6          (optional) IMAC6ESS, also adds new variables to TYPE6
Oct 14, 2003   (but only if comment block in IMAC6ESS is opened, and the
               DROP= statement is edited in that member to keep the new
               variables).
   Thanks to Engelbert Smets, Provinzial Rheinland Versicher., GERMANY.

Change 21.209  New fields added by ThruPut Manager are now supported:
VMACTPMX        ADDRSA  CA7  CONVEC  CURMSC  CURREC1-CURREC6
Oct 14, 2003   observations in dataset DB2ACCTP if the package data
   Thanks to Lawrence Jermyn, Fidelity, USA.

Change 21.208  Variables QWACBSC and QWACESC are missing in package
VMACDB2H       observations in dataset DB2ACCTP if the package data came
Oct 13, 2003   from SMF 101 Subtype 1 (IFCID=239) records, as those
               records do not contain the QWAC segment.
                  The SMF 101 Subtype 0 IFCID=3 Accounting Record
                  contains the first ten package executions, each of
                  which is output in DB2ACCTP; the SMF 101 Subtype 1
                  IFCID=239 records contains the rest of the package
                  segments when there are more than 10 per plan.
               It is also not possible to retain the QWACBSC/ESC from
               the prior SMF 101 Subtype 0 (IFCID=3) record, because IBM
               in their infinite wisdom decided to write the 239 record
               first (even though QWHSSTCK time in that first IFCID=239
               record is later than QWHSSTCK time in the following
               IFCID=3 record).  Only with dual sorts of DB2ACCT and
               DB2ACCTP plus a massive merge, could the QWACBSC/QWACESC
               timestamps of the account record be added to the DB2ACCTP
               package dataset, and that's a lot of cost for very little
               value.  The DB2ACCTP dataset variables QPACSCB & QPACSCE
               are datetimestamps of the "entry to, and exit from" DB2,
               like a start/end of the package call, but they are also
               inconsistent:
                 QPACSCE always has a non-missing datetime value
                 QPACSCB is always missing in all IFCID=239 records, and
                         is only non-missing in the first package
                         segment in IFCID=3 records.
                 When QPACSCB is missing, you could consider calculating
                 variable PSEUDOSCB=QPACSCE-QPACSCT, to estimate the SCB
                 start time (by subtracting the execution duration from
                 the end datetime).  PSEUDOSCB was slightly earlier than
                 QPACSCB when QPACSCB existed.
               This change added disabled debugging PUT statements that
               were used to examine these records, in in case they are
               needed for future investigations.
   Thanks to Daniel O. Russo, Vanguard, USA.

Change 21.207  The test for NTSMF Object MSEXCHANGECCMC replaced the
VMACNTSM       incorrect spelling (MSEXCHANGECMCC).
Oct 10, 2003
   Thanks to Philip Henning, Demand Technology, USA.

Change 21.206  Variables QW0125PC QW0125PL QW0125PN QW0125SN QW0125TS
VMAC102        are now input and kept in DB2 102 IFCID=125 T102S125.
Oct 10, 2003   dataset.
   Thanks to Ron Alterman, PG&E, USA.

Change 21.205  MXG Support for BMC's IMF/CIMS IMS already includes the
VMACCIMS       variable SMQGROUP, the IMS Shared Message Queue Group
Oct  9, 2003   Name, so that you can summarize BY SMQGROUP to see the
               total response and resources of the entire group.  This
               change is only for documentation (because I didn't know
               what the heck an IMS Shared Message Queue Group was,
               either)!
                  A Shared queues group is just a group if IMS systems
                  (an IMS Plex) that share incoming transactions with
                  their shared message queue stored as a structure in a
                  couling facility.  A transaction arrives at any IMS
                  System but can be executed anywhere in the Plex.  Only
                  one 'FA'x IMF Transaction record is created, even
                  though IMSA may have put the message on the Q and IMSB
                  executed the transaction (and IMSB will be where the
                  FA record was written).
   Thanks to Ulrich DIllenberger, BMC, GERMANY.

Change 21.204  If you use %LET MACSHFT= syntax to replace or override
IMACSHFT       the SHIFT definitions in your tailored IMACSHFT member,
Oct  8, 2003   the input temporary variable DATETIME will have been
               changed by IMACSHFT logic to the start-datetime of the
               shift, so that MXG Summarization and Trending datasets
               have a common STARTIME value.  The addition of &MACSHFT
               support was done only for consistency with other IMACs,
               but I never considered that anyone would ever want to
               pass static definitions, like SHIFT, thru %LET MACSHFT!
               This change stores the original value in DATETIME when
               IMACSHFT was invoked into temporary variable SHFTTIME,
               so that if you do use %LET MACSHFT, and don't tailor the
               default MXG IMACSHFT member, you can set
                 DATETIME=SHFTTIME;
               as your first statement in MACSHFT=, and then redefine
               the shifts.  However, your MACSHFT= logic must also
               the DATETIME variable to the beginning of the shift,
               to protect for later summarization in that job.
   Thanks to Klaus Messer, COMLAB, GERMANY.

Change 21.203  Variable RESIND should have been formatted HEX2 as it
VMAC77         contains individual bit values regarding the enqueue.
Oct  7, 2003
   Thanks to Doug Medland, IBM Global Services, CANADA.

Change 21.202  INPUT STATEMENT EXCEEDED due to invalid OPC record that
VMACOPC        had LENGTH=83 but TRLLENGT (expected length) of 420.  OPC
Oct  7, 2003   records have new data inserted, currently the new fields
               are skipped, pending documentation.
   Thanks to Andrew Phillip Davis, Abbey, ENGLAND.

Change 21.201  Protection for SMF80DTP=53 (RUKTN) with SMF80DLN=76.
VMAC80A        Segment is documented for z/OS 1.2 SecureWay as DLN=80.
Oct  9, 2003   Caused INPUT STATEMENT EXCEEDED RECORD LENGTH error.
               This change circuvents by skipping over the segment.
               This data segment is created by the add-on ETFR product
               (EKC Tools for RACF is an extension to RACF.ETF/R that
               selectively grants extended privileges under emergency
               situations), and that vendor will be advised of their
               invalid record.
   Thanks to John Grasing, MetLife, USA

Change 21.200  Negative values for DB2TCBTM occur if QWACEJST (ending
VMACDB2        CPU time) is smaller than QWACBJST (starting CPU time).
Oct  5, 2003   Out of 9,000 transactions, four transactions were neg:
                   QWACBJST QWACEJST  QWACRINV
                   1.61     0.00452     10
                   0.12     0.00458     10
                   0.25     0.00415     10
                   3.63     0.00436     10
               IBM notes that BJST or EJST are zero when CPU timing is
               not available; MXG only calculated the difference when
               when both are non-zero; this change adds a test to only
               calculate the difference if EJST is greater than BJST,
               while IBM investigates further.
                 PQ71119 is a correction for Tivoli that mentions why
                 EJST may be zero: rrs commit request can be issued in a
                 different address space than the original attach so DB2
                 does not have the original TCB; their solution was to
                 force a zero value, as was done here by MXG.  However,
                 MXG adds QWACSPCP and QWACTRTE to the delta so you
                 could have DB2TCBTM non-zero even if the EJST-BJST
                 difference is not calculated.
               Note added Jan 21, 2004:  This note is also in NEWSLETTER
               FORTY-FOUR, MVS Technical Note 2.:
                 APAR PQ79622 corrects error that caused QWACBJST to be
                 greater than QWACEJST, which caused negative DB2TCBTM.
                 The error occurred when an SQL statement fired a
                 trigger and that trigger called either a UDF or a
                 stored procedure, so that class 1 non-nested CPU time
                 could erroneously be a negative value.

   Thanks to Roger L. Rush, Nav-International, USA.
   Thanks to Richard L. Steele, Nav-International, USA.

Change 21.199 -IMACxxxx members with incorrect spelling of the DDDDDD
IMAC119        values in the comments, or that were missing new data
IMAC28         sets were revised. Only documentation was changed.
IMAC42        -VMAC members _Nxxxx and _Sxxxx Null/Sort macros had
IMAC74         tokens added for new datasets that had been overlooked.
IMAC85
IMAC94
IMACAIX
IMACDOS
IMACILKA
IMACMVTP
IMACNDM
IMACNSPY
IMACNTSM
VMAC90A
VMACMWAI
VMACNTCP
Oct  5, 2003

Change 21.198  A missing value for STRTTIME in CICSTRAN can occur if you
VMAC110        have optional data segments in your transaction SMF
Oct  5, 2003   records, but you did copy and remove the comment block
               in the IMACICxx member for those optional segments.
               The UTILEXCL program lists all optional data segments
               and lists the IMACICxx members you must tailor.  If
               you don't tell MXG about the data, its INPUT gets out
               of alignment, and if STRTTIME happens to have all hex
               zeros, a missing value results.  Since STRTTIME is the
               Start Time of the transaction, it must always exist in
               your CICS records.  A new message is now printed if
               STRTTIME is missing.

Change 21.197 -ASUMCACH enhanced to keep track of I/O by LPAR (in the
ANALCACH       variables IORATEA, IORATEB,...) in PDB.ASUMCACH that it
ASUMCACH       creates.
Oct  2, 2003  -Second example Analysis Report added to ANALCACH that
Nov  6, 2003   reads the PDB.ASUMCACH dataset, and uses two formats
               (that you EDIT in your program) that map your DASD UCB
               addresses to Raid Groups and HDS Rank, so that you can
               report and measure I/O activity down to the Raid Group
               within RAIDBOX.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.196  INVALID DATA FOR VERSN90 message had no impact on the
VMAC90         created dataset, but it and associated hex dump are
Oct  2, 2003   prevented by the insertion of ?? in the INPUT.
   Thanks to Jim Petersen, Washington Mutual, USA.

Change 21.195  Support for Microsoft Exchange Server 5.5 Log file
EXEXCHLG       creates EXCHANGE dataset from INFILE EXCHLOG.  This
IMACEXCH       support is preliminary and covers all fields, but parsing
TYPEEXCH       of sub-fields is contemplated where needed, creating new
TYPSEXCH       variables eventually.
VMACEXCH
VMXGINIT
Oct  2, 2003
   Thanks to Bob Gauthier, Albertsons, USA.

Change 21.194  Variables added to _KUOWCIC (CICSTRAN) into PDB.ASUMUOW
ADOCUOW           STORHWMH STORHWMK SYNCDLTM SYNPTCN
VMXGUOW           ENQDIOCN ENQDIOTM LU62IOCN LU62IOTM
Oct  1, 2003   Variables added to _KUOWCIX (Max):
Oct 22, 2003      STORHWMH STORHWMK
               ADOCUOW was updated to be consistent with VMXGUOW.
               Oct 22: End Comment before ENQDIOCN =.; was added.
   Thanks to Paul Gillis, ColesMeyer, AUSTRALIA.

Change 21.193 -Variable BYTEAVAI can be zero if AVAILMEM or AVAILMEK is
EXNTIPV4       zero (still under investigation). The MXG statement
EXNTTCV4         BYTEAVAI=AVAILMEM; is now replaced by the statement
EXNTUDV4         BYTEAVAI=MAX(BYTEAVAI,AVAILMEM,AVAILMEK); to cover all
IMACNTSM       possibilities of values in the three fields.
VMACNTSM      -Support for new IPV4, TCPV4, and UDPV4 objects create
VMXGINIT       three datasets of the same name.
              -Pending DISCOVERY Records, new data added to ACSR 0/36
               and WEBS 1/86 are not yet supported.
   Thanks to Barry Neff, Infores, USA.

Change 21.192  SYNCSORT for z/OS 1.1 can have 255 SORTWORKs, but MXG
VMACSYNC       only outputs details on the first 99, and would have
Oct  1, 2003   failed (ARRAY OUT OF RANGE) if you had more than 99.
               This change protects for more than 99, but only by
               printing a message that more were found, and to contact
               support@mxg.com, if you really have a need for details on
               the 100th+ sort work area.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.191  SMF 94 variable SMF94VCZ (Average MB per Logical Vol) is
ADOC94         recalculated when it is zero in the IBM record but
VMAC94         SMF94VBA/SMF94VLA is non-zero.     Many of the SMF94Vxx
Sep 30, 2003   variables are zero if SMF94VNO='FF'x (Composite), some
               are the composite of all AX0's if VNO='FF'X, and some are
               non-zero only if VNO='FF'x.  ADOC94 was updated to
               identify the "Note 1 and Note 2" variables in TYPE94.
   Thanks to Art Hunter, Penn Mutual, USA.

Change 21.190  Support for APAR PQ77633, which corrects FTPREPLY code in
VMAC119        FTP client records; it should have been a three digit RFC
Sep 29, 2003   code in left-justified EBCDIC, but the SMF 119 record had
Mar  2, 2004   a binary value prior to this APAR.  See Change 22.019.

Change 21.189  CICS SMF 110 subtype 1 MNSEGCL=5 records caused ERROR:
VMAC110        INVALID DO LOOP CONTROL INFORMATION because I forgot that
Sep 23, 2003   DO _I_=1 TO MNR5LEN3;  fails if MNR5LEN3=., and the third
               triplet is not always present.  Change to IF MNR5LEN3 GT
               0 THEN DO _I_=1 TO MNR5LEN3 to fix.
   Thanks to Pat Curren, SuperValu Inc., USA.

Change 21.188  NDM SMF user record subtypes 'IP','JI','QH','QW', and
VMACNDM        'WS' are still not undecoded, until an MXG user wants
Sep 23, 2003   those data, but the UNKNOWN RECORD messages are now no
               longer printed for those subtypes.
   Thanks to Trevor Ede, EDS, NEW ZEALAND.

Change 21.187  Data values in PDB.DB2GBPST were occasionally way too
VMACDB2        large; the logic to deaccumulate did not test the
Sep 23, 2003   SEQCHECK variable, and thus missed restarts/resets.  The
               test for SEQCHECK was also added to the logic for
               PDB.DB2STATR and PDB.DB2STATB, although neither had any
               reports of bad data values.
   Thanks to Lori A. Masulis, Fidelity Systems, USA.

Change 21.186  Another major enhancement for RMF III VSAM support now
ASMRMFV        adds support for six new RMF III data tables:
Sep 23, 2003          CFI (Coupling Facility Information Table)
Nov 18, 2003          RCD (Resource Collection Data Table)
                      SVP (Service Policy Data)
                      SHD (Sample Header Data)
                      RED (Resource Data Record)
                      UWD (Use/Wait Record)
               See change 21.228 for updates to VMACRMFV to support the
               new data added by this change to ASMRMFV.
               See Change 21.236.
   Thanks to Jerry Urbaniak, Acxiom, USA.

Change 21.185  INTERVAL=SECOND in VMXGSUM, VMXGDUR, and ANALCNCR is
ANALCNCR       added to MINUTE HOUR etc values to set the interval in
ANALCNCR       summarization and concurrency analysis (e.g. counting
VMXGSUM        concurrent NT processes in each second).     But use the
VMXGDUR        INTERVAL=SECOND value with care, as it can require
Sep 23, 2003   workspace that is many times the size of the input data.
Sep 30, 2003
   Thanks to Art Morelock, CheckFree, USA.

Change 21.184  Support for 3592 Tape Drives already exists in MXG, as
none           they are still 3590s (UCBTY34='8083'x) in SMF    records.
Sep 23, 2003   The specific type and model is contained in the    TYPE74
               for each device in variable SMF74NID='003592J....'.
   Thanks to MP Welch, SPRINT, USA.

====== Changes thru 21.183 were in MXG 21.05 dated Sep 22, 2003=========

Change 21.183  SMF 115 Subtype 2 INPUT STATEMENT EXCEEDED because the
VMAC115        protection in Change 21.161 was incomplete.
Sep 21, 2003
   Thanks to Bruce Widlund, Merrill Consultants, USA.

Change 21.182.  Support for z/OS 1.4 Feature 1 (COMPATIBLE) that adds
VMAC89          SMF89LP3 variable with one or two digit LPAR ID value.
Sep 19, 2003    Feature 0 is "z/OS V1.4 z999 Compatibility Support".
Feb 13, 2004    Feature 1 is "z/OS V1.4 z990 Exploitation Support".
                Feature 2 is "z/OS V1.4 Consoles Enhancements".

====== Changes thru 21.181 were in MXG 21.05 dated Sep 18, 2003=========

Change 21.181  TMS/CA1 Release 5.2 (finally!) lets you block the TMC
TYPETMS5       file to half-track blocksize of its 340 byte records, so
Sep 18, 2003   the MXG recommendation to use BUFNO=200 on //TMC is
               withdrawn when you have enabled half-track blocksize.
               That large a BUFNO with half-track blocksize could cause
               an 80A out-of-virtual-memory ABEND.  Reblocking the TMC
               to half-track reduced the MXG run time of TYPETMS5 from
               6.5 minutes to only 2.5 minutes.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.180 -Example to build Weekly PDB from Daily PDBs on tape to
JCLWEEKD       eliminate backspace/rewind/remount wasted time, using the
WEEKBLDD       same technique as MONTHBLD: copy the selected PDB
WEEKBL3D       datasets from tape to temporary DASD and build WEEKLY
Sep 17, 2003   from those disk copies rather than by reading tapes.
   Thanks to Ron Lundy, AHOLDUSA, USA.
   Thanks to Bruce Widlund, Merrill Consultants, USA.

Change 21.179 -TYPE50 records contain interval data, but there is no
FORMATS        interval value in the record; this enhancement creates
VMAC50         new variable DELTATM as the delta between SMFTIMEs for
Sep 16, 2003   the same instance; however, DELTATM will be missing in
               the first record for each instance, even though the rest
               of the data is valid in those first-per-day data.
              -Format MG050AT was updated for 3:Read Write Subchannel
   Thanks to Alexander Raeder, Itellium, GERMANY.

Change 21.178  Variable STARTIME is now created in TPXINTRV dataset in
VMACTPX        the _STPXINT (DIFFTPX) deaccumulation logic.
Sep 16, 2003
   Thanks to Alexander Raeder, Itellium, GERMANY.

Change 21.177  Cosmetic; suppressed printing of temporary datasets that
VMXGPRAL       were created by a prior run of VMXGPRAL.
Sep 12, 2003

Change 21.176 -Support for CICS APAR PQ76703 new Transaction Resource
EXCICDSR       Class Monitoring TSQUEUE segment in SMF 110 Subtype 1
EXCICDST       with MNSEGCL=5, which caused INPUT STATEMENT EXCEEDED
EXCICRDQ       error: the new triplet and class were unexpected.  You
VMAC110        can confirm this error by seeing MNSEGCL=5 in the list of
VMXGINIT       variables after the error is printed.  The new data
Sep 12, 2003   tracks Temporary Storage at the transaction level with ts
               queue name, and is output in new CICSRDQU dataset.  The
               DFHMCT TYPE=INITIAL TSQUEUE=4 default captures four
               queues, a maximum of TSQUEUE=32 is allowed, and if
               TSQUEUE=0, no data segments will be created and the
               CICSRDQU dataset will have zero observations.
              -New STID=64 and STID=65 for DSR and DST DSECTS create two
               new CICDSR and CICDST Statistics Datasets.  These
               segments were added by IBM APAR PQ76697.
   Thanks to David Klein, DOITT - City of New York, USA.
   Thanks to Eileen Barkow, DOITT - City of New York, USA.

Change 21.175  Support for DB2 102 IFCID=217 (Storage Manger Pool)
EX102T17       creates four datasets:
EX102U17         T102S217   QW0217HE DSECT - Storage Available
EX102V17         T102T217   QW02172  DSECT - Storage each QW0217PH
VMAC102          T102U217   QW02173  DSECT - Storage each QW02173H
VMXGINIT         T102V217   QW02174  DSECT - Dictionary Storage
Sep 10, 2003   for initial investigation of the new data.  These data
               records are strange, with the 2nd,3rd,& 4th triplet's
               segments containing different DSECTs in different SMF
               records, so logic using Segment Length is required to
               determine exactly which DSECT is in which triplet! The
               only unique variable in T102T217 and T102U217 is the
               undocumented "Serviceability" token, QW0217PH and
               QW02173H.  Revision is possible if a better way seen!
              -Support for IFCID=254 (Group Buffer Pool) adds 22 new
               variables to the T102S254 with only common variables.
               existing T102S254
   Thanks to Phil Parker, TNT Post Group, ENGLAND.

Change 21.174  The PROC FREQ in _RPDBID failed, if you used _STYID in
BUILD001       EXPDBOUT (to sort WORK.ID to PDB.ID), because MXG hard
BUIL3001       coded the DATA=_WTYID token, so SAS only looked for ID in
BUILDPDB       the Work Lib. Instead, the %VMXGWORL macro is used to
BUILDPD3       determine where you left that dataset, populating macro
Sep  9, 2003   variable &MXGWORL ("W or L") with its location:
                     %VMXGWORL(DDDDDD=TYID);
                     PROC FREQ DATA=&MXGWORL;
               This should have been done when %VMXGWORL was created.
   Thanks to Hugh Lapham, RCMP, CANADA.

Change 21.173  SMF 116 Subtype 0 records with QWHS header LENQWHS=36
VMAC116        caused INVALID PRODUCT SECTION message, and were then
Sep  9, 2003   deleted (and hence not output in MQMACCT dataset).
               LENQWHS=36 segment is now decoded, up thru QWHSMTN, but
               QWHSLOCN/NID/LUNM/LUUV/LUCC/QWHSLUCN are all missing
               values in MQMACCT short QWHS segment observations.
              -Input of QWHCCV was changed to $CHAR12 from $EBCDIC12.,
               to support execution under ASCII.  See Change 22.089.
   Thanks to Jacob Nudel, Thompson BETA Systems, USA.

Change 21.172  Variable PROCNAME in HPSUPROC dataset was not in the
VMACMWSU       LENGTH $32 statement, so it defaulted to only 8 bytes.
Sep  9, 2003   It is now $32 bytes, as process names can be long.
   Thanks to Chris Morgan, UFI, ENGLAND.

Change 21.171  ASCII execution only.  RACF variables INTENT and ALLOW
VMAC80A        were incorrect when MXG executed under ASCII SAS; the
Sep  7, 2003   INPUT of INTENTCH and ALLOWCH should be $CHAR1.
   Thanks to Matthew T. Chappell, Queensland Transportation, AUSTRALIA.

Change 21.170 -TYPE70 variable NRCPUS is redefined to be the Average
VMAC7072       Number of CPUs that were Online, because IRD can vary
VMXGRMFI       CPUs On and Off dynamically, and the original NRCPUS was
Sep  7, 2003   the integer number of CPUs online at interval end that
               had not been varied, which is incorrect for IRD.
               SMF70ONT, the Online Time from PR/SM segment is now
               summed across all of the LCPUs in this MVS System, and
               that sum is then used to recalculate NRCPUS
                  NRCPUS=SMF70ONT/DURATM
               to now be the Average Number of Online CPUs, and its
               Label changed.  SMF70ONT is also now output in TYPE70,
               and MXG percentages based on NRCPUS in TYPE70 were moved
               to use the Average NRCPUS value in calculations.  One
               visible impact will be that NRCPUS will no longer be an
               integer value!
              -RMFINTRV was revised, adding new SMF70ONT variable and
               with NRCPUS recalculated to be Average Number of CPUs.
   Thanks to Cheryl Watson Walker, Watson & Walker, Inc.

Change 21.169  Specifying KEEPALL=YES in %VMXGSUM invocation in these
BUILD005       three members improves performance, and eliminates
BUIL3005       confusing messages if you happen to test with OBS=1.
SPUNJUOBS
Sep  7, 2003
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.168  ERROR: DATASET WORK.MXGSUM2 IS NOT SORTED IN ASCENDING
AUTOEXEC       may occurs if your SAS installation's SORTSEQ= option is
CONFIGV8       not SORTSEQ=EBCDIC or SORTSEQ=ASCII, as documented in SAS
Sep  7, 2003   Note SN-07151, which has no fix yet.  So to eliminate the
               exposure with MXG jobs, the appropriate SORTSEQ=EBCDIC or
               SORTSEQ=ASCII is now set in MXG's defaults.
   Thanks to Brian Sanger, Zurich Financial Services, ENGLAND.

Change 21.167  Support for multiple uniquely-named CICS user fields is
EXUTILEX       added by the new _UNIQUE macro defined in member
UTILEXCL       EXUTILEX, allowing you to create your own named variables
Sep 19, 2003   in CICSTRAN from your user data fields.
   Thanks to Terry Fox, Principal Insurance, USA.

Change 21.166  IIS Web Log data caused  UNRECOGNIZED HEADER and ARRAY
VMACWWW        SUBSCRIPT OUT OF RANGE because MXG expected all 21 IIS
Sep  4, 2003   fields were present.  Logic to recognize the end of
               fields and protect for non-existent fields was added.
   Thanks to Mike Penlington, Westpac, NEW ZEALAND.

Change 21.165  CICS/TS 2.2 STID=126 UNEXPECTED DATA due to STILEN=284
VMAC110        because MXG didn't INPUT variable S6RSP9CT, but now it
Sep  3, 2003   does and the variable is kept in dataset CICCFS6D.
   Thanks to Allen Mayer, Prudential Securities, USA.

Change 21.164  Typos caused unprintable characters in MXG 21.04.  In
DOCLRMFV       member DOCLRMFV ASCII '85'x "dashes" were converted to
IMAC6ESS       EBCDIC '25'X, but 'real dash' is '2D'x ASCII, '60'X on
Sep  3, 2003   EBCDIC.  In member IMAC6ESS, there is a '0D'x that should
               have been '40'X on EBCDIC, '20'x on ASCII.
   Thanks to Scott Barry, SBBWorks, USA.

Change 21.163  Enhancement permits un-sorted datasets in MONTHBLD and
MONTHBLD       circumvention for the (very rare) NOT-SORTED ERROR if you
MONTHBL3       build a monthly from daily/weekly PDBs that were created
MONTHBLS       with two different MXG versions that spanned a change in
Sep  3, 2003   MXG sort order (last time this happened was when SYSPLEX
               had to be added to RMF sort order!).  Now, inserting this
               statement:
                 MACRO _BY  %   MACRO _SORTBY  %
               before the _MNTHBLD invocation, both the expectation that
               the input dataset is sorted, and the assertion that the
               output dataset is sorted, are both disabled.

               The building-in-sort-order by MXG is only for the
               performance of your report programs, so that if you PROC
               SORT in the same (recommended) order, SAS will bypass the
               unnecessary sort.  Nothing else in MXG requires datasets
               be sorted.

               Once you have nulled those macros, all subsequent
               invocations of _MNTHBLD will be unsorted in and out.
   Thanks to Caron Knox, Willis Corroon, ENGLAND.

Change 21.162  Typo of IFDURTM/496 instead of IFDURTM/4096 caused
VMAC119        invalid value for IFDURTM.
Sep  3, 2003
   Thanks to Elisabeth Ballet, Michelin, FRANCE.

Change 21.161  MQ V5.3 CF dataset MQMCFMGR with MQ 5.3 has very large
VMAC115        values.  MXG assumed QESTLL of 64, as documented, but
Aug 27, 2003   protection for longer QESTLL was added to see if that
               could account for the problem.  Await SMF test data.
   Thanks to Ruud van Zundert, UBS, ENGLAND.

Change 21.160  Support for TNG Version 7 (INCOMPAT, due to insertion of
VMACTNG        one field in the CAPMPCM HEADER record).
Aug 27, 2003
   Thanks to Colin Bowen, CSC, SOUTH AFRICA.

====== Changes thru 21.159 were in MXG 21.04 dated Aug 25, 2003=========

Change 21.159  Variable SYNCTIME in TYPE23 is on the GMT time zone, so
VMAC23         it should have had ",GMT" at the end of its
Aug 21, 2003   %VMXGTIME(SYNCTIME,SYSTEM,GMT); statement.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.158  Support for new DFSMS/rmm EDGRXEXT data eliminates MXG
VMACEDGR       "LESS THAN 545 BYTES" messages and incorrect data.  New
Aug 20, 2003   variables in 'X' record, EDGRXEXT dataset:
                  RDLABNO ='LABEL NUMBER LABEL=(XX,LL) NEW'
                  RDLABNOX
                  RVALVERS='ANSI*LABEL*VERSION'
                  RVDCRSID='FIRST*FILE*CREATION*SYSTEM ID'
                  RVDSNNO ='LABEL*NUMBER OF*FIRST FILE*ON VOLUME'
                  RVEXPTKN='EXPORT*TOKEN'
                  RVLABNO1='LABEL*NUMBER OF*FIRST FILE*ON VOLUME'
                  RVOLTYPE='VOLUME*TYPE'
                  RVPERCNT='VOLUME*FULL*PERCENTAGE'
                  RVRBYSET='VOLUME*RETAINED*BY SET?'
                  RVSTKVCN='STACKED*VOLUME*COUNT'
                  RVSTKVLE='STACK*VOLUME*RECORD*ENABLED?'
               New variables in 'D' & 'X' record, EDGRDEXT & EDGRXEXT
               datasets:
                  RDDEFRET='DEFAULT RETPD USED'
                  RDDSNSEQ='DATA SET SEQUENCE NUMBER NEW'
                  RDEXPDT ='DATA SET EXPIRATION DATE'
                  RDEXPDTO='ORIGINAL D/S EXPIRATION DATE'
                  RVDSTBIN='DESTINATION BIN NUMBER'
                  RVDSTMED='DESTINATION BIN MEDIA NAME'
                  RVMVDSN1='FIRST DSNAME OF A VOLUME SET'
                  RVVOL1  ='VOL1 LABEL VOLSER'
               The two separate code blocks for the DEXT/RDEXT data was
               consolidated into a single block and linked to.
   Thanks to James D. Lieser, United Health Group, USA.

Change 21.157  DB2PM-like reports DB2 Accounting Summary had totals
ANALDB2R       instead of averages for Class 2 Elapsed, Class 2 CPU, and
Aug 20, 2003   Lock Suspensions.  Now they match DB2PM averages.
   Thanks to Dr. Yao-Chun Rickert, Bank One, USA.

Change 21.156  Support for Control-D Log file creates 9 new datasets
EXCTLOGA       reading their log records from the INFILE name CTLLLOG to
EXCTLOGB       create a dataset for each record type:
EXCTLOGC          MXG       MXG
EXCTLOGD          DATASET   DATASET                    LOG
EXCTLOGE          NAME      LABEL                      TYPE
EXCTLOGF
EXCTLOGL          CTLDOGA   CTLD CONTROL REGION         A
EXCTLOGM          CTLDOGB   CTLD ARCHIVE                B
EXCTLOGX          CTLDOGC   CTLD USER                   C
FORMATS           CTLDOGD   CTLD DAILY                  D
IMACCTLL          CTLDOGE   CTLD AMF                    E
TYPECTLL          CTLDOGF   CTLD DECOLLATE              F
TYPSINIT          CTLDOGL   CTLD AUX REGION             L
VMACCTLL          CTLDOGM   CTLD MIGRAION               M
VMXGINIT          CTLDOGX   CTLD OTHER LOG TYPES        ?
Aug 20, 2003   The "C" and "F" datasets contain the variables decoded
Nov 27, 2003   from the Log Message Text; for now, the other datasets
               just contain the full LOGMSG text.  If the CTLLLOG file
               is to be sent to an ASCII platform for MXG execution, the
               file must be sent as binary, as it contains both EBCDIC
               text and binary values that cannot be translated to
               ASCII.  The correct DCB is RECFM=F,LRECL=6400, and that
               is specified in the MXG program.
              -Nov 27: Missing STARTIME in CTLDLOGF when log on/off time
               stamps were identical corrected by revised SORT order.
   Thanks to Elisenda Masacana, la Caixa, SPAIN.

Change 21.155  Support for Netspy Versions 6 and 7 already exists in MXG
VMACNSPY       since MXG 20.10.  Test V7 data was read without errors
Aug 18, 2003   nor any indications of inserted fields.
               This change is documentation only; no change was made.
   Thanks to Ron Byers, British Energy, ENGLAND.


Change 21.154  WARNING:LABELS EXCEED LENGTH 40 NOT SUPPORTED BY V6SEQ
ASUMCICS       AND ARE BEING TRUNCATED had no impact, as it was only the
ASUMCICT       DSNLABEL= argument revised in Change 21.090 that was too
ASUMCICX       long.
Aug 18, 2003
   Thanks to Pat Curren, SuperValu Inc., USA.

Change 21.153 -Support for BMC's MVIMS 3.3.0 (COMPAT) adds new data in
VMACCIMS       reserved fields in 'FA'x IMS log record that are created
Aug 18, 2003   in these new variables in TYPECIMS dataset:
                  ABENDSYS='SYSTEM*ABEND*CODE'
                  ABENDUSR='SYSTEM*ABEND*CODE'
                  SAPEXTP1='SAP*EXIT*PASS*1?'
                  SAPEXTP2='SAP*EXIT*PASS*2?'
                  SAPTRNCD='SAP*TRANSACTION*CODE'
                  SMQFLAG ='SHARED*MESSAGE*QUEUE*ENVIRONMENT?'
                  SMQGROUP='SHARED*MESSAGE*QUEUE*GROUP NAME'
                  SRVCLASS='SERVICE*CLASS*NAME'
                  UOWTRANS='UOW*FOR*TRANSACTION'
               The ABENDSYS/ABENDUSR variables already existed in the
               CIMSPROG (program deschedule) dataset, they were added to
               record Transaction Abends in CIMSTRAN dataset.
              -Variables COREALOC/COREUSED are converted to bytes,
               labeled  'BYTES*AVAILABLE/BYTES*USED' and formatted as
               MGBYTES to "print pretty".  Previously they contained the
               count of 2K blocks.
   Thanks to Fabio Massimo Ottaviani, DTS Italia, ITALY.

Change 21.152.  Support for CICS/TS 2.3 (INCOMPATIBLE):
CICINTRV          - New variables were inserted into CICSTRAN Subtype 1.
EXCICPGR          - Two new CICS TCBs, 'J9' and 'JM' added, supported in
EXCICSJR            Subtype 2 CICDS and CICINTRV datasets.
IMACEXCL          - New Subtype 2 vars added to STID=2 and STID=117.
UTILEXCL          - New Subtype 2 STID=118 and STID=119 create datasets.
VMAC110        -While you can use TYPE110/TYPS110/BUILDPDB to create the
VMXGCICI        CICSTRAN dataset, we strongly recommend that you use the
VMXGINIT        UTILEXCL program to read your CICS Dictionary records to
Aug 22, 2003    create an IMACEXCL tailoring member that will input and
Sep  1, 2003    keep only the CICSTRAN variables in your CICS records,
Sep  9, 2003    as that can reduce MXG runtime and save disk space.
Sep 10, 2003       UTILEXCL is required if you have excluded any fields
Nov 11, 2003       from your Performance Class (Subtype 1) records.
               -New fields are inserted in SMF 110 Subtype 1 creating 17
                new variables in CICSTRAN dataset:
                   CBSRVRNM='CORBA*SERVER*NAME'
                   DSMMSCCN='MVS*STORAGE*NO TCB*WAIT*COUNT'
                   DSMMSCTM='MVS*STORAGE*NO TCB*WAIT*TIME'
                   DSTCBMCN='TCB*MISMATCH*ELAPSED*WAIT*COUNT'
                   DSTCBMTM='TCB*MISMATCH*ELAPSED*WAIT*TIME'
                   EJBCRECT='EJB*BEAN*CREATION*CALLS'
                   EJBMTHCT='EJB*BEAN*METHOD*CALLS*EXECUTED'
                   EJBREMCT='EJB*BEAN*REMOVAL*CALLS'
                   EJBSACCT='EJB*BEAN*ACTIVATIONS'
                   EJBSPACT='EJB*BEAN*PASSIVATIONS'
                   EJBTOTCT='EJB*TOTAL*REQUESTS'
                   J9CPUTCN='USER TASK*J9 MODE*CPU TCB*COUNT'
                   J9CPUTTM='USER TASK*J9 MODE*CPU TCB*TIME'
                   KY9CPUCN='USER-TASK*KEY 9*TCB CPU*COUNT'
                   KY9CPUTM='USER-TASK*KEY 9*TCB CPU*TIME'
                   KY9DISCN='USER-TASK*KEY 9*TCB DISPATCH*COUNT'
                   KY9DISTM='USER-TASK*KEY 9*TCB DISPATCH*TIME'
               -Two new TCBs, 'JM' and 'J9' are created in the CICDS and
                CICINTRV datasets from the STID=60 Dispatcher Statistics
                110 subtype 2 record, creating new DSExxxxx and DSFxxxxx
                variables for those 14th and 15th TCBs.  MXG input based
                on TCB Number is no longer valid, as IBM uses the same
                TCB number for different named TCBs; the TCB name is now
                used to store TCB data into the correct set of variables
                and the MXG Variable label accurately identifies what
                TCB is stored in each set of MXG variables:
                   Prefix:     DSG DS2 DS3 DS4 DS5 DS6 DS7 DS8 DS9
                   TCB Name:    QR  RO  CO  SZ  RP  FO  SL  SO  J8
                   Prefix:     DSA DBB DSC DSD DSE DSF
                   TCB Name:    L8  S8  H8  D2  JM  J9
               -The VMXGCICI member was revised to include the two new
                TCBs in the PDB.CICINTRV dataset.
               -New variables added from STID=2 DFHSMSDS to CICSMDSA:
                   SMSWAITM='TOTAL*TIME*WAITING FOR*MVS STORAGE'
                   SMSWAICN='NUMBER OF*REQUESTS*CAUSING*WAITS'
               -New variables added from STID=117 DFHSJGDS to CICTCPSJ:
                   SJGCUWCJ='JVM*CURRENT*WORKER CACHE*JVMS'
                   SJGMXWCJ='JVM*PEAK*WORKER CACHE*JVMS'
                   SJGRQWCJ='JVM*REQUESTS*CLASS*CACHE'
               -New CICSJR dataset created from STID=118 DFHSJRDS with
                the JVMPROFILE Resource Statistics, one observation per
                Storage Key for each Profile/Path:
                   SJRJVCRE='SJR*NEW*JVMS*CREATED'
                   SJRJVDES='SJR*JVMS*DESTROYED*SOS'
                   SJRJVHWM='SJR*JVM*HEAP*HWM'
                   SJRJVRES='SJR*JVMS*RESETTABLE'
                   SJRLEHWM='SJR*LE*HEAP*HWM'
                   SJRMMSTE='SJR*MISMATCH*STEALER'
                   SJRMMVIC='SJR*MISMATCH*VICTIM'
                   SJRPRCLC='SJR*PROFILE*CLASS*CACHE*SETTING'
                   SJRPRCUR='SJR*CURRENT*PROFILE*USE COUNT'
                   SJRPRFRQ='SJR*PROFILE*REQUESTS'
                   SJRPRHWM='SJR*PEAK*PROFILE*USE*COUNT'
                   SJRPRNAM='SJR*PROFILE*NAME'
                   SJRPRPTH='SJR*PROFILE*PATH*NAME'
                   SJRPRXMX='SJR*PROFILE*XMX*VALUE'
                   SJRSTOKY='SJR*STORAGE*KEY'
               -New CICPGR dataset created from STID=119 DFHPGRDS with
                the JVM Program Resource Statistics, one obs per record
                Storage Key:
                   PGRJVCLS='JVMPROGRAM*JVMCLASS*NAME'
                   PGRJVKEY='JVMPROGRAM*CICS/USER*KEY'
                   PGRJVPGM='JVMPROGRAM*NAME'
                   PGRJVPRO='JVMPROGRAM*PROFILE'
                   PGRJVUSE='JVMPROGRAM*USE*COUNT'
               -The new and changed STIDs have been validated with data.

               -Note: Several new fields in the SMF records can have up
                to 255 characters; for now, MXG only inputs the first
                200 characters, so that MXG can still execute under SAS
                Version 6, with its 200-byte limit.  But as soon as any
                MXG customer actually has a name field that is 201 bytes
                of text, I will revise those INPUTs to $EBCDIC256, and
                the SMF 110 code will have to be executed under SAS V8.
                   P.S. New stuff, like WebSphere, that is not in the
                        default BUILDPDB already requires SAS V8!

                   CICS/TS 2.3 Documentation Errors:

                   1. In the Data Areas, the SJGDS description does not
                      show "117" for the STID of that segment, so you
                      cannot find that SJGDS is the DSECT for that STID.
                   2. The first SJRDS description is actually the PGRDS
                      descrption for the STID=119 segment; the bold face
                      title and the index entry need to be changed to
                      PGRDS.  The ID field does not show "119".
                   3. The second SJRDS description is correct for the
                      STID=118 segment The ID field does not show "118".

Change 21.151  Total CREATES in DB2 reports was incorrect; the second
ANALDB2R       occurrence of QXCRTAB in CREATES=SUM( ... ) should have
Aug 15, 2003   been QXCTABS.
   Thanks to Dr. Yaou-Chun Rickert, Bank One, USA.

Change 21.150 -Support for CPU Time fields in SMF 120 WASserver that
VMAC120        were put in the SMF record by APAR PQ74463, but were only
Aug 13, 2003   documented in the HOLDDATA section of the PTF; Change
Aug 19, 2003   21.107 added support for the other new fields.
                 Dataset TYP120WI:
                   SM120WJ4='AVERAGE*CPU TIME'           TIME13.6
                   SM120WJ5='MINIMUM*CPU*TIME'           TIME13.6
                   SM120WJ6='MAXIMUM*CPU*TIME'           TIME13.6
                 Dataset TYP120WA:
                   SM120CPU='CPU*TIME'                   TIME13.6
                   Variable SM120CPU was added by Change 21.107, but
                   units were undocumented; I assumed divide by 4096,
                   but the HOLDDATA documentation says microseconds,
                   so the divide was removed.

              -Spurious "UN READ DATA FOUND" messages from SMF 120 were
               due to incorrect calculation of SKIP, now fixed.

   Thanks to Jan ter Laak, Rabobank, THE NETHERLANDS.

Change 21.149 -Support for z990 CPUs. INCOMPATIBLE: Variables in data
VMAC7072       sets TYPE70PR (LPARCPUS) and ASUM70PR (LPnNRPRC) have
VMXG70PR       the total number of engines, rather than the number of
VMXGINIT       online engines in RMF data with new CPUTYPE='2084'x.
Aug 13, 2003   MXG tests in VMAC7072 had to be revised for that new
Aug 15, 2003   value.  The code was corrected in August in MXG 21.04.
Aug 22, 2003  (This note was not in the original change; it was
Sep 16, 2003   added Sep 16, 2003 to document the requirement).
              -New PDB.ASUM70LP dataset for LPAR Reporting is easier and
               safer to use than either the detail PDB.TYPE70PR dataset
               or the summarized PDB.ASUM70PR dataset.
                TYPE70PR - Most Detail - One obs for each LCPUADDR in
                           each LPARNAME, so CPs, ICFs, PHYSICALs, and
                           Linux engines are included; reporting must
                           select which obs to use, how/what to
                           summarize, and the criteria keeps changing
                           with IBM hardware or OS level, making your
                           report maintenance complex and exposed.  Once
                           PDB.ASUM70PR existed, MXG has always
                           recommended its use, but many user reports
                           were written using TYPE70PR before there was
                           a PDB.ASUM70PR.

                ASUM70PR - "Platform" summary - All LPARs measured in a
                           single observation, with a set of vars
                           (LP0NAME,LP0DUR,PCTL0BY,LP0MSUHR...) for 32
                           LPARs.  Summarized from TYPE70PR with MXG
                           logic keeping track of what to count,
                           calculating percentages and MSU variables,
                           plus the totals for the "Platform".  Very
                           Very accurate and useful, but having all
                           those different variable names makes for very
                           messy coding in your reportings, so:

                ASUM70LP - A "vertical" dataset built from ASUM70PR.
                           For each online LPAR, one observation is
                           created in ASUM70LP for each LPARNAME, and
                           with only one set of variable names, so you
                           can select and sort and report easily.  (This
                           is probably how ASUM70PR should have been
                           originally structured!)
                  You still must select the "production" SYSTEM whose
                  observations are used; each SYSTEM creates obs in
                  all three of the above datasets.

              -Corrections/enhancement for PDB.ASUM70PR/PDB.ASUMCEC were
               made in both VMAC7072 and VMXG70PR:

              .Variables LPnDUR and LPCTnBY in PDB.ASUM70PR/ASUMCEC were
               sometimes incorrect, perhaps since Change 19.189! Obs
               with SMF70ONT=0 in PDB.TYPE70PR were included in LPnDUR,
               so it to be much greater than DURATM*LPnNRPRC, and LPnDUR
               is used to calculate LPCTnBY percentage.

              .The VMAC7072 logic to creates SMF70ONT was revised
                 SMF70ONT - missing -  Pre 2064, does not have ONT
                 SMF70ONT - zero    -  ONT valid and zero
                 SMF70ONT - nonzero -  ONT valid and non-zero
               to be more robust and consistent across hardware, and
               then VMXG70PR logic that decides to sum this LPARDUR was
               revised to include old and new but not spares:
                 IF      SMF70ONT=.    THEN LPARDUR=DURATM;
                 ELSE IF SMF70ONT GT 0 THEN LPARDUR=SMF70ONT;
                 ELSE                       LPARDUR=0;
              .For LPARs with no CPUs (LPnNRPRC=0), these LPnXXXXX
               variables LPnDUR,LPnBDA,LPnLAC,LPnMSU70,LPnNSW,LPnWST are
               now set missing when LPnNRPRC=0, (i.e, when the LPAR had
               no CPUs assigned) to be consistent with the other
               variables that were already missing.
              .Divide by zero error was corrected in ASUM70PR.
              -Correction in VMAC7072 for PDB.TYPE70PR var SMF70CIN
               which could be blank for observations after an offline
               LPAR, because MXG's test to set SMF70CIN should have been
               IF NRCIXGTO (instead of NRICFCPU) as the flag that
               OW37565 was installed.
              -The CSTORE storage, SMF70CSF, is added for each LPAR in
               PDB.ASUM70PR, PDB.ASUM70LP, and PDB.ASUMCEC.  (ESTORE is
               a thing of the past; SMF70ESF not added.)
               See also Change 21.216 if you are back-level on OS/390 or
               early z/OS and SMF70WLA is not populated in SMF 70.
   Thanks to Brian Cummings, Federal Reserve Information Technology USA
   Thanks to Shirley Fung, HSBC, HONG KONG.
   Thanks to Joe Key, BOC Gases, ENGLAND.

Change 21.148  This UTILBLDP enhancement honors your %LET MACKEEP=
UTILBLDP       tailoring when you execute %UTILBLDP "instream", i.e.,
VMXGINIT       when you invoke %UTILBLDP to create an OUTFILE= and then
Aug 12, 2003   %INCLUDE that file to execute the BUILD program.
Aug 14, 2003   (Previously, UTILBLDP disregarded any tailoring that you
Aug 18, 2003   tried to use in a %LET MACKEEP= statement).

               - If you execute UTILBLDP "instream" with this syntax:
                     %LET MACKEEP=   ... tailoring code  ... ;
                     %UTILBLDP(..,OUTFILE=zzzzzzzz,...);
                     %INCLUDE zzzzzzzz;
                 the text in your %LET MACKEEP statement text will be
                 stored in the new &MACBLDP macro variable, which is
                 executed by a new &MACBLDP invocation appended to the
                 end of the %LET MACKEEP= statement in zzzzzzzz.
                    - So to execute %UTILBLDP a second time in the same
                      data step to create a different zzzzzzzz program
                      (not sure that you'd ever want or need to), you
                      need to null MACKEEP, or set to a new value,
                      before each %UTILBLDP execute.

                - If instead you don't want to run the zzzzzzzz code in
                  this step, but you want to tailor it later with %LET
                  MACKEEP= logic, then you must have a non-blank
                  &MACKEEP when you run %UTILBLDP to create zzzzzzzz,
                  and then you must use %LET MACBLDP= instead of the
                  %LET MACKEEP= statment to pass your tailoring to the
                  zzzzzzzz program.
                      %LET MACBLDP=  ... your MACKEEP text ...  ;
                      %INCLUDE zzzzzzzz;

                - If MACKEEP is blank when %UTILBLDP creates zzzzzzzz
                  there is no &MACBLDP statement created in zzzzzzzz.

                - The %UPCASEs of macro variables OUTFILE, EXPDBOUT, and
                  IMACKEEP was removed because unix permits mixed case
                  file names.  (This is not an exposure under Windows,
                  which sees the same name regardless of the case in its
                  file and directory names).

                - If you have specified BUILDPDB=NO, but you want the
                  program to contain the _EPDBOUT invocation, you can
                  specify  EXPDBOUT= _EPDBOUT,  to create that text.
                     A later iteration of UTILBLDP may let you put SAS
                     statements in its EXPDBOUT= argument.

                - Several dataset sort macros for type 30 datasets were
                  misspelled and should have been _STY30xx.
   Thanks to Scott Barry, SBBWorks, INC, USA.

Change 21.147  MXG 21.02-21.05 Change 21.062 caused variable STRTTIME in
VMXGUOW        dataset PDB.ASUMUOW to be wrong, although temporary
Aug 11, 2003   internal variable TIMESTMP (which should not have been
Sep 23, 2003   kept) was correct and could be used for STRTTIME. The
               variables HOLDSTRT and HOLDEND were not initialized, but
               now they are, and so STRTTIME will always equal TIMESTMP.
               I'd should also drop the redundant variable TIMESTMP, but
               since you may have used it, I'll hae to continue to keep
               both STRTTIME and TIMESTMP variables.  Note: This change
               was not in MXG 21.04 nor 21.05.  You can correct those
               versions by inserting
                 HOLDSTRT=TIMESTMP;
                 HOLDEND=TIMESTMP;
               after EARLIEST=TIMESTMP;
   Thanks to Pat Curren, SuperValu Inc., USA.

Change 21.146  Support for Windows 2003 Server MEMORY object, which has
VMACNTSM       NRDATA=31 with one new variable added.
Aug  9, 2003
   Thanks to Roger Zimmerman, Hewitt Associates, USA.

Change 21.145  MXG 21.02-21.03, Change 21.090 made variable DATETIME not
ASUMCICS       exist in the PDB.CICS dataset.  Variable STRTTIME should
ASUMCICT       be used in reports, and it was just fine.  Even though
ASUMCICX       variable DATETIME is a temporary variable that is created
Aug  7, 2003   inside VMXGSUM logic, and should not have been kept, it
               was accidentally added to some datasets, and since some
               users have used it instead of STRTTIME, it is again
               created in PDB.CICS so your existing reports that still
               uses DATETIME won't fail.
   Thanks to Pat Curren, SuperValu Inc., USA.

Change 21.144  Protection for truncated (invalid) SMF 119 subtype 7
VMAC119        record with offsets for 32760 bytes of data, but the
Aug  6, 2003   maximum SMF data bytes are 32756.  This invalid SMF
               record caused INPUT STATEMENT EXCEEDED RECORD LENGTH
               error condition. There either is, or will be, an APAR to
               correct the SMF 119 record, but this type of bad record
               is now recognized and the last segment is not input.
     Thanks to Dan Doan, Verizon, USA.

Change 21.143  Support for HMF Release 2.7 (INCOMPAT) changed the
EXTYHMFW       subtype 29 and 30 records, and added subtype 32 and 33
EXTYHMFX       that create new TYPEHMFW and TYPEHMFX datasets.
IMACHMF        See Change 22.162, which corrected this change.
VMACHMF
VMXGINIT
Aug  6, 2003
   Thanks to John Mitchell, IBM Global Services, USA.

Change 21.142  SMF 118 TCP Statistics TYPETCPS dataset values are not
VMACTCP        interval values, like in the other TYPETCPx datasets.
Aug  6, 2003   The _STYTCPS dataset sort macro is revised to sort and
               deaccumulate the TYPETCPS variables.  And to ensure you
               don't overlook this need, the _STYTCPS dataset sort macro
               is added in the TYPETCP member; if you have added TCP
               processing to your BUILDPDB and have added either _STCP
               (to sort all dataset) or at least the one _STYTCPS sort
               macro, then your BUILDPDB-built TYPETCPS data will
               contain legitimate interval values.
   Thanks to Brian Crow, BT, ENGLAND.

Change 21.141  With S390/R2.10 on z990 processors, CPU NOT IN TABLE
FORMATS        message for CPUTYPE=2084 is printed; R2.10 does not
Aug  6, 2003   contain SMF70CPA, so MXG must use a table lookup in the
Aug 17, 2003   $MG070CP format table.  The message only impacts the
               CECSUSEC and MSU variables, and is eliminated by adding
               the new CPUTYPE and CPCMODEL to the format.  The $MG070CP
               has been updated for the CPCMODEL=307.  17Aug03: FORMATS
               updated for all 2084's by Al.
   Thanks to Jim Horne, Lowe's Companies, USA.
   Thanks to Al Sherkow, I/S Management Strategies, Ltd., USA.

Change 21.140 -Dataset PDB.DB2GBPST DB2 Global Buffer Pool has always
VMACDB2        had correct values for the QBGLxxx variables for each
Aug  6, 2003   Global pool, but the summarization of those data into the
Aug 24, 2003   QBGLxxx variables in PDB.DB2STATS was never right.  MXG
               summed those variables by interval as SMF data was read,
               but that logic can never work because the data is
               accumulated by buffer pool within each interval.  Since
               those variables in PDB.DB2STATS have never been valid,
               all QBGLxxx variables were removed from both PDB.DB2STAT1
               and PDB.DB2STATS datasets.
              -Dataset PDB.DB2STATB DB2 Buffer Pool has always had
               correct values for the QBSTxxx variables for each of the
               buffer pools, but their sum in PDB.DB2STATS into the four
               QB1Txxx/QB2Txxx/QB3Txxx/QB4Txxx variable sets were only
               correct when there was only one buffer pool in a variable
               set.  Those variables are no longer created in DB2STAT1
               during SMF read, but are created by summarization of the
               PDB.DB2STATB dataset after it as been built by the
               _SDB2STB macro in SUMSTATB temp dataset that is then
               merged in _SDB2STS macro to add those variables back into
               PDB.DB2STATS.
              -Some old variables that have not existed for several DB2
               versions were going to be dropped, but their absence
               caused TRNDDB2S/MNTHDB2S to die with VARIABLE NOT FOUND
               errors, so they are added back in, but are always missing
               value:
                QBnTBPX QBnTPFDC QBnTPID QBnTPWU QBnTSWU QBnTWMAX.
              -B3HITRAT had negative value, due to QBnTxxx errors.
              -To document in one place, the four buffer sets are:
                 QB1T=BP0     QB2T=BP1      QB3T=BP2-49 (other 4K)
                 QB4T=BP80-89 (32K) BP100-109 (16K) BP120-129 (8K)
              -And in DB2 V7.1, data for a buffer pool can just stop,
               perhaps when a pool is no longer used, and that caused
               MXG's deaccumulation logic to require refinement.
   Thanks to Sim Williams, Fidelity, USA.

Change 21.139 -Variable SU_SEC was missing in the optional TYPE6ENH
ASUMPRTR       dataset with Goal Mode; TYPE72GO was added to the SET
Aug  5, 2003   statement to populate SU_SEC.
              -The second ELSE THRUPUT=.; is now ELSE PCTAFP=.;
   Thanks to Diane Eppestine, SBC, USA.

Change 21.138  Change 20.069 created new variables, but added them to
VMAC7072       the wrong KEEP= list.  These variables:
Aug  4, 2003    R723RAPP R723RW01 R723RW02 R723RW03 R723RW04 R723RW05
                R723RWRR R723RWRT R723RWST
               are now relocated to the MACRO _VTY72DL's KEEP list for
               the TYPE72DL datasets, instead of TYPE72SC's list.
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 21.137  ASMTAPES enhancement detects Allocation Recovery of tape
ASMTAPES       devices, creates new SMF subtype to record which job was
EXTMNTAR       delayed for how long and which tape devices, real or
IMACTMNT       virtual, were unavailable for allocation. The new subtype
VMACTMNT       creates observations in new dataset TYPETARC.
VMXGINIT       The MXG Allocation Recovery Monitor, "ARCV", feature of
Aug  4, 2003   the MXG Tape Mount and Tape Allocation Monitor is created
Oct 23, 2003   as a sub-task of the MXGTMNT monitor's main task.  ARCV's
               purpose in life is to establish, under Main Console
               Services, an Extended MCS console whose purpose is to
               look at those specific console messages that are related
               to device allocation recovery.  When an allocation
               recovery event starts, information related to that event
               is maintained for the duration of the event.  When the
               event concludes (device allocated or request cancelled),
               an SMF record containing information about the event is
               written.

               This feature is implemented as a separate subtask within
               the existing MXGTMNT address space, both for isolation
               from the current functionality, and to exploit MVS
               multiprocessing.

               The "ARCV" function can be enabled in the ASMTAPES source
               before assembly with the DOARCV flag (default is
               ARCV=NO), or the ARCV=YES/NO can be specified in a PARM=
               or via a Modify operator command, so it can be enabled or
               disabled at any time without having to restart the
               MXGTMNT address space.

               To clean out ASUMTAPES codewebs that were there only for
               seriously-old-releases of MVS, ML-29 eliminated exposures
               in archaic code by eliminating the archaic code; ML-29 of
               ASMTAPES now requires a minimum OS level of OS/390 2.8.
               Six sites have had ML-29 for several weeks and none have
               reported any failures, but then none have reported they
               have tested it yet, either.  22Aug03.

               Oct 23: Just discovered that ASMTAPES in MXG 21.04 and
                       MXG 21.05 did NOT contain ML-29 version.  Now
                       it does.

Change 21.136  NTSMF dataset SMTPSERV, Windows 2000 and later, didn't
VMACNTSM       input CATQUELN, causing the subsequent 85 variables to be
Aug  1, 2003   incorrect.
               And with test data, I found that these variables
                  BYTESRCV BYTESSNT BYTETOTL CONNERRS CONNINBD
                  CONNOUBD MSBYSRCV MSBYSSNT MSBYTOTL MSGRCVD
                  MSGSENT  MSGTOTS
               are accumulated values, rather than interval values; the
               _SNTSMTP sort macro now does the deaccumulation of those
               variables.  (Others variables may also need to be
               deaccumulated, but only when I have non-zero data values
               can I determine what needs to be deaccum'd.) And the
               Instance Name is only one character long in the NTSMF
               record - being investigated by NTSMF.
   Thanks to Xiaobo Xhang, ISO, USA.

Change 21.135  Sample daily reporting from StorageTek SMF (TYPESTC) and
ANALSTK        MXGTMNT (TYPETMNT) datasets to track STK Virtual Tape
Aug  1, 2003   activity. Documented in comments in the member.  Note
               that all of the internal timestamps in the STC records
               are on GMT; you may need to enable VMXGTIME to set the
               GMT times back to local time zone before running these
               reports.
   Thanks to Chuck Hopf, MBNA,  USA.

Change 21.134  ASG-TMON V2.2 only.
VMACTMO2       Dataset MONITASK, variables NETSNAME UOWID and UOWTIME
Jul 31, 2003   were incorrectly input, and TALOUOWID was not input at
               all.  Only critical if you use ASUMUOWT to create
               PDB.ASUMUOW from MONITASK data.
               Dataset MONIUTG, variable TAUTGICT was not input, and
               variable TAUTSTIM has been removed, since it does not
               exist.
   Thanks to Shantha Hallett, CGEY, ENGLAND.

====== Changes thru 21.133 were in MXG 21.03 dated Jul 28, 2003=========

Change 21.133  Support for NDM Release 4.3 has been tested with most
VMACNDM        existing subtypes, but only partial documentation has
Jul 26, 2003   been found.  New subtypes exist and are protected, but
               until users require the new subtypes, and their DSECTS
               are located, the new subtypes are skipped.  See the
               comments in member VMACNDM as to status of individual
               NDM subtypes.
   Thanks to Thomas Heitlinger, FICUCIA Karlshruhe, GERMANY.

Change 21.132  Tailoring MXG to only create some datasets can cause
ADOCDB2           ERROR: NO DATA SET OPEN TO LOOK UP VARIABLES
DOCMXG         which is the result of trying to PROC SORT a dataset that
Jul 25, 2003   doesn't exist.  This can happen even when you use _Nxxxx
               "product null" macro to null out all datasets, redefine a
               _Wdddddd "work dataset" macro for each one you want, and
               redefine the _Sxxxx "product sort" macro to list only the
               _Sdddddd "dataset sort" macros for those datasets that
               you created:  if a later part of your job has an _Sdddddd
               macro invoked.
                 Most MXG programs use the _Sxxxx product macro, but
                 there are some cases where the individual _Sdddddd
                 macro is invoked, and the SAS/ITSV "BUILDPDB" job
                 invokes several _Sdddddd members, because they were
                 created in MXG before the more-recent _Sxxxx product
                 sort macro was created.
               The _Nxxxx,_Sxxxx,_Sdddddd etc macros are documented
               in the DOCMXG member.

               This example for either MXG or ITSV will keep only the
               DB2ACCT.DB2ACCT and PDB.DB2STATS datasets.
               Mar 4, 2004:  The earlier example, below, was replaced.
                             See the text of Change 22.020.

               //SYSIN DD *
                   %LET PDB2ACC=DB2ACCT;
                   %LET PDB2ST0=WORK;
                   %LET PDB2ST1=WORK;
                   %LET PDB2STB=WORK;
                   %LET MACKEEP=
                     %QUOTE(
                           _NDB2
                           MACRO _WDB2ACC _LDB2ACC %
                           MACRO _WDB2ST0 DB2STAT0 %
                           MACRO _WDB2ST1 DB2STAT1 %
                           MACRO _WDB2STB DB2STATB %
                           MACRO _SDB2 _SDB2STB _SDB2STS %
                           MACRO _SDB2ACP %
                           MACRO _SDB2ACB %
                           MACRO _SDB2ACG %
                           MACRO _SDB2PAT %
                           MACRO _SDB2ST2 %
                           MACRO _SDB2STR %
                           MACRO _SDB2PST %     );
                   %INCLUDE SOURCLIB(TYPSDB2);
                   RUN;
   Thanks to Chrisa Neven, KBC, BELGIUM.

Change 21.131  The value in SAS macro variable &SYSSCP is the operating
VMXGINIT       system of this execution, and it returns "OS", "CMS", or
VMXGGETM       "others" (listed in comments in VMXGINIT).  MXG copies
VMXGTAPE       &SYSSCP into &OPSYS, and tests for "OS", "CMS", or ELSE,
VMXGVTOC       creating different code on different execution platforms.
VMXGTAPE       I was misinformed that SAS had changed values of &SYSSCP,
VMXGSUM        and in revising my code, found inconsistent testing for
VMXGDSNL       both &OPSYS and &SYSSCP, so all logic now uses only the
VMXGDEL        MXG-created &OPSYS macro variable, whose value is set in
VMXGVMXA       VMXGINIT.  Then my mis-informant RTFM and discovered that
VMACVMON       it was not the macro &SYSSCP, but instead macro &SYSSCPL
VMACUNIK       that SAS changed ("MVS" became "OS/390" or "z/OS", with a
VMACTPF        lower case z!), but MXG never uses &SYSSCPL, so this
VMACTAND       change was not actually required.  But consistent coding
VMACOPC        is the end result, and I consider the time well spent.
VMACMVCI
VMACEREP
VMACDCOL       See SAS Notes SN/004/004358, SN/006/006346 on &SYSSCPL.
VAXPDS            Note: If you did want to test &SYSSCPL for that new
UTILBLDP          "z/OS" value, in macro language, the syntax is
PRINTNL           %IF %QUOTE(%UPCASE(&SYSSCPL)) EQ %QUOTE(Z/OS) %THEN ..
GRAFWRKX
BLDNTPDB
ANALDB2R
ANALCISH
VMXGRMFI
Jul 24, 2003

Change 21.130  Support for APAR OW56656 for RMF for z990 family adds
VMAC7072       variables to existing datasets:
VMAC73         - TYPE70X2 dataset
VMAC74            R7024EN   /*NUMBER OF*CRYPTO*ENGINES*/
VMAC78         - TYPE73 dataset
VMAC79            SMF73CSS  /*CHANNEL*SUBSYSTEM*ID*/
Jul 23, 2003      SMF73SFL  has new bit 2 value
                            Hardware Allows Multiple Channel Subsystems
                  SMF73FG4, MXG variable CHANINDY, has new bit 5 value
                            Chan Characteristics Changed in Interval
               - TYPE74 dataset
                  SMF74ENF  (not kept, has new bit 0 "Extended Mode")
               - TYPE78 dataset
                  R783GFLG  MXG variable IOPIFLG has new bit 6 value
                            Initial-Command-Response measure supported
               - TYPE78CU dataset new variables:
                  R783CBTM='CU BUSY*TIME FOR*DCM MANAGED*CHANS'
                  R783CMRM='CMR*TIME FOR*DCM MANAGED*CHANS'
                  R783SBSM='SWITCH*BUSY COUNTS*FOR DCM*MANAGED'
                  R783CSST='CHANNEL*SUBSYSTEM*WAIT*TIME'
               - TYPE78CF dataset new variables:
                  R783CBT ='CU BUSY*DELAY TIME'
                  R783CMR ='INITIAL*COMMAND*RESPONSE*TIME'
                  R783CPXF='CHANNEL*PATH*EXTENDED*FLAGS'
                  R783SBS ='SWITCH*BUSY*COUNTS*ALL PARTITIONS'
               - TYPE799 dataset
                  R799CNX - new bit 3 value.
               - TYPE79C dataset
                  R79FLAG - new bit 5 value.
                  New variable:
                  R79CCSS ='CHANNEL*SUBSYSTEM*ID'
                  R79CFG3 - new bit 5 value.
               - TYPE79E dataset
                  IOPIFLG (R79EGFLG) new bit 6 value.
                  New Variables:
                  R79ECBT ='CU BUSY*DELAY*TIME'
                  R79ECMR ='CMR*TIME'
                  R79ESBS ='SWITCH*BUSY*COUNT'
                  R79ECPXF='CHANNEL*PATH*EXTENDED*FLAGS'
                  R79ECBTM='CU BUSY*DELAY*TIME'
                  R79ECMRM='CMR*TIME'
                  R79ESBSM='SWITCH*BUSY*COUNT'
                  R79ECSST='CHANNEL*SUBSYSTEM*WAIT*TIME'

Change 21.129  Support for ASG-Landmark's TMON for MQ-Series creates
EXTMQQC        these new MXG datasets from the TMMQIN infile:
EXTMQQE           Dataset    Description
EXTMQQH           TMMQQC    CHANNEL STATISTICS
EXTMQQMA          TMMQQE    EVENT
EXTMQQMB          TMMQQH    DEAD LETTER QUEUE (DLQ) PROCESSOR ACTIVITY
EXTMQQMD          TMMQQMA   QUEUE MANAGER - ASID DATA
EXTMQQML          TMMQQMB   QUEUE MANAGER - BUFFER MANAGER
EXTMQQMM          TMMQQMD   QUEUE MANAGER - DATA DATA
EXTMQQS           TMMQQML   QUEUE MANAGER - LOG MANAGER
EXTMQQT           TMMQQMM   QUEUE MANAGER - MESSAGE MANAGER
EXTMQQU           TMMQQS    PAGE SET STATISTICS
EXTMQQV           TMMQQT    THREAD INTERVAL
EXTMQQX           TMMQQU    QUEUE STATISTICS INTERVAL
IMACTMMQ          TMMQQV    DLQ PROCESSOR ACTIVITY SUMMARY
TYPETMMQ          TMMQQX    EXCEPTION
TYPSTMMQ
VMACTMMQ
VMXGINIT
Jul 23, 2003

Change 21.128  If you used UTILEXCL (for CICS Excluded Fields) to create
IMACEXCL       an IMACEXCL member, or if you tailored the MXG IMACEXCL
UTILEXCL       member, variables SC24CHWM and SC31CHWM were wrongly
Jul 23, 2003   divided by 4 million (4E06 in floating point syntax),
               and variables SC23COCC and SC31COCC were wrongly not
               divided by 4E06.  Using the un-modified VMAC110 produced
               correct values for all four variables.
   Thanks to Art Cuneo, BlueCross Blue Shield of Illinois, USA.

Change 21.127  The INFILE SMF statement has FILENAME=INFILENM added, and
VMACSMF        LENGTH INFILENM $64; so that INFILENM will contain the
Jul 21, 2003   MVS DSNAME or the ascii directory/filename of the input
               SMF file that is being read.  INFILENM is NOT kept in any
               MXG datasets, but is available as each record is read,
               and could be used to track what DSNAMEs have been read.
               Although MVS DSN is only $44, I picked $64 because of the
               typical size of ascii directory and filenames.
   Thanks to Dr. Alexander Raeder, Karstat AG, GERMANY.

Change 21.126  TYPE74CA variable R745DCIR is now reserved; variables
VMAC74         R745CUID (from "CO" segment) and R745DCID (from "DO")
Jul 21, 2003   are documented by IBM as "Control Unit ID", but when
               only two unique values ('1B'x=2105s and '15'x=3390-6s)
               were found in RMF data, IBM was queried and confirmed
               that the fields actually contain a unique code for the
               cache controller type; IBM documentation will be revised.
               Variable R745DCID is now formatted HEX2.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.125  You can now map different SRVCLASS from different SYSTEM
VMXGRMFI       or SYSPLEXes into a single workload in PDB.RMFINTRV.
Jul 22, 2003   You use two WORKnn statements, with different nn values,
               but with the same first two arguments (workload name,
               label text), and then the SYSTEM or SYSPLEX arguments
               control which SRVCLASS observations from TYPE72/TYPE72GO
               are included in this workload name.  For example
                 WORK01=TSOP/TSO Prod//TSOPROD/2//PLEXA,
                 WORK02=TSO/TSO//TSO/2//PLEXA,
                 WORK03=TSO/TSO//TSOPROD/2/PLEXB,
               would create two workloads, TSO containing SRVCLASS
               TSOPROD from PLEXA, and TSOP containing SRVCLASS TSO from
               PLEXA and SRVCLASS TSOPROD from PLEXB.
               Because PERIODS=2 is specified, the "PERIODS" response
               variables for two periods will be created for each
               of these workloads, comprising these variables:
                  TSOP1RSP TSOP1SWP TSOP1TRN
                  TSOP2RSP TSOP2SWP TSOP2TRN
                  TSO1RSP TSO1SWP TSO1TRN
                  TSO2RSP TSO2SWP TSO2TRN
               In addition, because the workload name starts with TSO,
               the "TSO" response variables for the entire system:
                  TRIVRESP TSO2RESP TSO3RESP TSO4RESP
                  TRIVTRAN TSO2TRAN TSO3TRAN TSO4TRAN
                  TRIVSWAP TSO2SWAP TSO3SWAP TSO4SWAP
                  (Note: Previously, only the workload 'TSO' exactly was
                         in these "TSO" response variables, but now, all
                         workloads with XXXX starting with "TSO" are
                         included in the "TSO" response variables, and
                         you can use the "PERIODS" response variable for
                         the individual TSO workloads if more than one.
               The comments documenting the VMXGRMFI arguments was also
               revised by this change.
               Note: To use these enhancements, you MUST execute MXG
               with SAS Version 8.2 or later.
   Thanks to Shirley Fung, HSBC, HONG KONG.

Change 21.124  Support for EntireX user SMF accounting EXXACTR record
EXENTIRX       creates ENTIREX dataset.
FORMATS
IMACENTX
TYPEENTX
TYPSENTX
VMACENTX
VMXGINIT
Jul 18, 2003
   Thanks to John Cousins, Bristol City Council, ENGLAND.

Change 21.123  Non-duplicate TYPE6156 records were deleted by the NODUP
VMAC6156       in MXG's PROC SORT, because all of the kept variables in
Jul 17, 2003   TYPE6156 were identical.  However, the two records were
               different, only in the catalog segment E3 (TRUENAME), and
               one record was for Data, the other for Index, so variable
               TRUETYPE and TRUEDSN are now decoded from the 'E3'x data,
               and are kept in TYPE6156, and are added to the _BTY6156
               by list, so the non-duplicate records are not duplicates
               any more.
   Thanks to Art Cuneo, BlueCross Blue Shield of Illinois, USA.

Change 21.122  The +58 in Volume Record from MVSRECLV=01 RMM records
VMACEDGS       was changed to +122 by Change 19.284, but now records
Jul 16, 2003   have been found with MVSRECLV=01 that still have only
               +58 bytes to skip between MVDCRSID and MVDSN1L, and
               I can find no flag that indicates how many bytes need to
               be skipped.  Using +122 with +58 record causes STOPOVER,
               while using +58 with +122 causes no error (and only the
               variables listed in Change 19.284 to be in error), so I
               have changed the default back to +58, and have created
               a new "old-style"    MACRO _LNEDGS +58  %   in VMACEDGS
               that can be changed externally, if you have +122 records,
               by inserting this statement as your first //SYSIN DD *:
                  %LET MACEDGS=   MACRO _LNEDGS +122  %   ;
   Thanks to Jim Bentley, AHOLD Information Services, USA.

Change 21.121  DB2 Trace IFCID=21 variable QW0021GS, input as $CHAR4.,
VMAC102        should have been variable QW0021GF, input as $CHAR1., and
Jul 14, 2003   variable QW0021CS should have been input as $CHAR1.  Both
               QW0021CS and QW0021GF are now formatted $HEX2. and
               variable QW0021GS is no longer kept in T102S021 dataset.
              -IFCIDs 251 and 257 internal QW0251xx and QW0257xx are now
               input, formatted, and kept.
   Thanks to Richard Link, BlueCross BlueShield of Illinois, USA.

Change 21.120  Condition Code variable NDMSCC is a character variable
VMACNDM        with $HEX8. format, so it prints '00000000' for a zero
Jul 14, 2003   and '00000008' for an 8, but that is messy for testing,
               so new variable NDMSCCNR, a numeric variable, is added to
               the NDM datasets that actually contain condition code:
                 AE CH CT DP DT FP GF MC RJ RT PS PT SI WO
               and is created with NDMSCCNR=INPUT(NDMSCC, &PIB.4.);
               Variable NDMSCC was incorrectly kept in these datasets:
                 CE CI FI GO IF NL PI SB TI TP
               that do not contain it, so it was removed from them.
   Thanks to George Canning, Abbey National, ENGLAND.

Change 21.119  One debugging "PUT" statement should have been removed,
TYPETHST       and the second one commented out.
TYPSTHST
Jul 11, 2003

Change 21.118  Support for AS/400 TCP and TCPIEF objects create two new
EXQAPTCP       datasets:
EXQAPIFC           dddddd   dataset   contents
IMACQACS           QAPTCP   QAPMTCP   TCP Statistics
VMACQACS           QAPIFC   QAPMIFC   TCP-IFC Statistics
VMXGINIT
Jul 11, 2003
Jul 23, 2003
   Thanks to Roger Zimmerman, Hewitt, USA.

Change 21.117  Support for MainView for CICS 5.6 CMRDETL file (INCOMPAT)
VMACMVCI       required changes to the T6ECPRID NE 'F4'x tests to GE as
Jul 10, 2003   the new version has T6ECPRID='F5'x.  There are a few new
Jul 16, 2003   variables that were added to the datafile, including the
Jul 17, 2003   GMT Time Zone offset, MVCVTTZ.  So with this change:
                 Variables STARTIME,ENDTIME,T6ETKSTR and T6ETKSTO are
                 now converted to Local Time Zone; previously, they were
                 in the GMT time zone.  Fortunatly, if you were using
                 datetime variables CMRLBEGN or CMRLENDT in reports,
                 the have always been on the local time zone.
              -A number of duration variables were not formatted with
               TIME12.2; all now are.
              -Variable T6EUCPUT was incorrectly read as PIB8; it is a
               pair of time and count PIB4 fields, T6EUCPUT & T6EUCPUC.
               Variable T6EUCPUT is now identical to existing T6ECPUR,
               and T6EUCPUC counts CPU dispatches.
              -File data is now correct; the file offset is now used to
               locate the file data.
   Thanks to Udo Froehling, Signal-Iduna, GERMANY.
   Thanks to Reinhold Lehmann, Signal-Iduna, GERMANY.

Change 21.116  Major revisions to AIX PTX support.  The original TYPEAIX
EXAIXCPN       member read the "SpreadSheet" format and created only the
EXAIXDSK       AIXPTX interval dataset, with cryptic variable names and
EXAIXFS        "room" for only 3 disk drives, etc., because that design
EXAIXFSV       requires a new variable name for repeated values. The new
EXAIXINT       code will continue to create AIXPTX from SpreadSheet
EXAIXIPN       format (recognizable by the text "TIMESTAMP" in 2nd
EXAIXLAN       record), but that format is no longer recommended and
EXAIXMEK       AIXPTX will be static (i.e., will be missing data).
EXAIXMER
EXAIXMEV       This re-design reads the "comma" PTX output format (has
EXAIXPRO       text "TIME=" in 2nd and following records), and creates
EXAIXPSP       multiple datasets, properly supporting an unlimited
EXAIXPSP       number of disks, lans, paging spaces, processes, etc.,
IMACAIX        for objects with multiple instances per interval.  New
VMACAIX        AIXMEMR, AIXMEMV, and AIXMEMK provide data for the MEM
VMXGINIT       Real, Virt, and Kmem records; other segments that are
Jul  9, 2003   written once per interval (CPU, PAGSP, PROC, SYSCALL and
               SYSIO, at present) are output in AIXINTRV dataset.

                  DDDDDD    MXG       MXG
                  DATASET   DATASET   DATASET
                  SUFFIX    NAME      LABEL

                  AIXDSK   AIXDSK    AIX DISK DATA
                  AIXFS    AIXFS     AIX FS DATA
                  AIXFSV   AIXFSV    AIX FS VOLUME GROUP DATA
                  AIXLAN   AIXLAN    AIX LAN DATA
                  AIXCPN   AIXCPUNR  AIX CPU/CPUNUMBR DATA
                  AIXIPN   AIXIPNET  AIX IP/NETIF DATA
                  AIXMER   AIXMEMR   AIX MEM/REAL DATA
                  AIXMEV   AIXMEMV   AIX MEM/REAL DATA
                  AIXMEK   AIXMEMK   AIX MEM/KMEM DATA
                  AIXPSP   AIXPAGSP  AIX PAGESP/PAGESPAC DATA
                  AIXPRO   AIXPROCS  AIX PROC/PROCESS DATA
                  AIXPSP   AIXPAGSP  AIX PAGESP/PAGESPAC DATA
                  AIXINT   AIXINTRV  AIX INTERVAL DATA
                                    (CPU/PAGSP/PROC/SYSCALL/SYSIO)

                  AIXPTX   AIXPTX    ARCHAIC "SPREADSHEET ONLY" INTERVAL
               Some data appears to be completely destroyed when names
               (process, file system, cpu number) are to long to fit in
               the output file's LRECL; other data is ambiguous when the
               three variables CPUACC, CPUMS, and CPUPCT are all trunc'd
               to two positions of 'CP' in the PROC/CPUNUMBR records!

               There are additional data (ICP/AREA, IP/ROUTING, IP/=,
               TCP/=, UDP/=, RPC/CLSERV, NFS/SERV, and RTIME) that will
               be supported (and create more datasets) when test data is
               received to validate those data.

               "INVALID OBJECT" messages with numbers for the object are
               created in the PTX output file for Java processes that
               have extremely long names; PTX cuts off the process name
               at a specific maximum assumed length, and important info
               is lost in the name pattern.  One solution is to have the
               application developer use shorter process names, but the
               issue is still being investigated in Nov, 2003.
   Thanks to Sam F. White, CocaCola, USA.
   Thanks to C. Tim Browning, Coca-Cola Enterprises, USA.

Change 21.115  Support for APAR PQ71799 HTTP Server SMF 103 record fixes
VMAC103        errors in data, adds new variables, and adds options to
Jul  7, 2003   "separate" and "sync" SMF 103 records.  See extensive
               notes in the APAR text.  Variables added to TYPE1032:
                  APLENVNM='APPLICATION*ENVIRONMENT*NAME'
                  CGIREQST='CGI*REQUESTS'
                  DNSLOKUP='DNS*LOOKUP*DIRECTIVE'
                  PROXYRES='PROXY*RESPONSES'
                  REQCOUNT='REQUEST*COUNTER'
                  SRVICPLG='SERVICE*PLUGINS'
                  SSLHANDS='SSL*HANDSHAKES'
                  SUBSYS  ='SUBSYSTEM*NAME'
               The first and last variables are also added to TYPE1031.

Change 21.114  The JCL example still had double single-quotes after each
JCLTEST6       MXG2102 that should have been a single single-quote.
JCLTEST8
Jul  7, 2003
   Thanks to Jim Horne, Lowe's Companies, USA.

Change 21.113 -Only the first 99 service class names were examine in the
UTILRMFI       VMXGRMFI parsing of its arguments, and arbitrary limit
VMXGRMFI       that is now increased to 999 names in each argument list.
Jun 27, 2003  -KEEPALL=NO is now specified for the TYPE70 logic, so that
               the new more-than-16-CPUs-in-TYPE70 logic in VMXGRMFI
               won't fail if you read an old PDB with VMXGRMFI.
   Thanks to Jay Brookover, First Citizens, USA.

Change 21.112  Variables CPUDETTM, Dependent Enclave CPU time, exists in
BUILD005       PDB.SMFINTRV, but it was not kept in PDB.STEPS, and was
BUIL3005       not summed into PDB.JOBS, until this change did so.
Jun 27, 2003
   Thanks to Brenda Rabinowitz, The Prudential Insurance Co., USA.

Change 21.111  Variables GBLCACSA and GBLCAC24 should have been divided
VMAC28         by GBLSAMPL, to get their average values in NPM dataset
Jun 26, 2003   NPMVSVGB (VTAM Global Resourcesd).
   Thanks to Andre D. Walker, Bank of America, USA.

Change 21.110  RMF type 78 subtype 2 "Job-Level Virtual Storage Monitor"
VMAC78         sections for "Early Address Spaces" may have invalid data
Jun 25, 2003   ('070E000000000000'x) for R782RDTM/R782RDDT, causing the
               INVALID DATA FOR READTIME messages and dumps on the log.
               This change adds the "??" modifier to the READTIME INPUT
               to suppress the message and hex dumps, so READTIME will
               still be missing, so you could identify which JOBs had
               invalid values in TYPE78PA.  You can identify your Early
               Address Spaces by looking JOB in TYPE30_6 dataset, as it
               only contains the obs for your Early ASID jobs.  If you
               find JOBs that are not Early ASIDs, then you probably
               have CA's CA-7 Job Scheduling Product (which modifies the
               read date/time of jobs under it's control) and you need
               to contact CA Technical Support to correct their error.
   Thanks to Josep Miquel, La Caixa, ESPAGNE.

Change 21.109  SYSTEM record with NRDATA=35 was unexpected; the record
VMACNTSM       was from an NT 4.0 system with Service Pack 6, and NTSMF
Jun 25, 2003   was at PRFSENVR=2.4.4 and VERSION=2.2.2.  The discovery
               records show that six fields (five %total xxxxx time and
               total interrupts) are repeated (just like NRDATA=32 case)
               so there was no new data, just another exception now
               covered!
   Thanks to Xiaobo Zhang, ISO, USA.

Change 21.108 -In VMXG70PR, new variables LPnNSW for each LPAR, labeled
VMAC7072         LP1NSW  ='LPAR  1*PERCENT WHEN*LPAR WAS*SOFT CAPPED'
VMXG70PR       are created in PDB.ASUM70PR and PDB.ASUMCEC datasets,
Jun 26, 2003   from SMF70NSW.
              -Labels for some capping-related variables were revised:
                In TYPE70PR dataset:
                  SMF70NSW='PCT WHEN*LPAR WAS SOFT CAPPED*BY WLM'
                In TYPE72GO dataset:
                  PCTDLCCA='RESOURCE*GROUP*CAPPING*DELAY*PERCENT'
                  PCTDLCDE='CPU*DELAY*PERCENT*INCLUDES*WLM CAP'
              -Labels for variables PCTLGBY and PCTLGOV were corrected
               to LPAR 16 and blank variables PCTLNBY and PCTLNOV are
               now labeled for LPAR 23.
   Thanks to Harry Price, Florida Power and Light, USA.
   Thanks to Freddie Arie, TXU, USA.

Change 21.107  Support for WebSphere APAR PQ74463 that adds CPU time to
VMAC120        SMF 120 Version 5.0 records; that APAR pointed to new SMF
Jun 24, 2003   record documentation, and I found many new fields were
               added by Version 5; all are now input and kept.
                 Datasets: TYP120SA,TYP120SI,TYP120JC,TYP120JI,TYP120WI:
                    SM120CEL='WEBSPHERE*CELL*NAME'
                    SM120NOD='WEBSPHERE*NODE*NAME'
                 Datasets TYP120JC and TYP120JI:
                    SM120JME='EJBLOAD*INVOCATIONS'
                    SM120JMF='EJBLOAD*AVG*EXECUTION*TIME'
                    SM120JMG='EJBLOAD*MAX*EXECUTION*TIME'
                    SM120JMH='EJBSTORE*INVOCATIONS'
                    SM120JMI='EJBSTORE*AVG*EXECUTION*TIME'
                    SM120JMJ='EJBSTORE*MAX*EXECUTION*TIME'
                    SM120JMK='EJBACTIVATE*INVOCATIONS'
                    SM120JML='EJBACTIVATE*AVG*EXECUTION*TIME'
                    SM120JMM='EJBACTIVATE*MAX*EXECUTION*TIME'
                    SM120JMN='EJBPASSIVATE*INVOCATIONS'
                    SM120JMO='EJBPASSIVATE*AVG*EXECUTION*TIME'
                    SM120JMP='EJBPASSIVATE*MAX*EXECUTION*TIME'
                    SM120JMQ='AVG*CPU*TIME'
                    SM120JMR='MIN*CPU*TIME'
                    SM120JMS='MAX*CPU*TIME'
                Dataset TYP120SA:
                    SM120WCP='TOTAL*WLM ENCLAVE*CPU TIME'
                Dataset TYP120SI:
                    SM120TEC='TOTAL*WLM ENCLAVE*CPU TIME'
                    SM120NHS='HTTP*SESSIONS*EXIST*AT END'
                    SM120NHA='HTTP*SESSIONS*ATTACHED*AND ACTIVE'
                    SM120BTH='BYTES*TO SERVER*FROM ALL*CLIENTS'
                    SM120BFH='BYTES*FROM SERVER*TO ALL*CLIENTS'

Change 21.106  Variable ENDTIME was incorrectly converted back to GMT;
VMACWWW        raw log values of:    [22/Jun/2003:23:32:54 +0400]  are
Jun 24, 2003   the local time followed by the delta to add to convert
               to GMT, but I thought the datetime was GMT and the +0400
               was the GMT offset, and so ENDTIME ended up back on GMT.
               The GMT conversion code was removed so ENDTIME is on the
               Local time zone; new variable GMTOFFTM is created in case
               you need to convert back to GMT or to know the zone.
                  The above example from Eastern Daylight Savings offset
                  of +0400 will have GMTOFFTM= -4 hours, consistent with
                  all GMT offset values, normally used in conversion:
                    LOCAL = GMT + GMTOFFTM;
                  So to convert WebLob ENDTIME back to GMT, you'd use:
                    ENDTIME = ENDTIME - GMTOFFTM;
   Thanks to Jim Agrippe, Cleveland Clinic Foundation, USA.

Change 21.105  MXG 20.20 ASUMCICS caused zero observations in PDB.CICS
ASUMCICS       if the input CICSTRAN was on tape.  ASUMCICS has always
ASUMCICT       caused two mounts (one open to test if CICSTRAN has data,
ASUMCICX       reading one record, then one open to read the data), but
Jun 25, 2003   MXG 21.02 caused the full dataset to be read twice.
               All of that complexity and exposure was so that ASUMCICS
               would figure out if you had IBM or Landmark CICS data to
               be used to create your PDB.CICS summary dataset.

               But I do not recommend that you use ASUMCICS; with MRO,
               CICS creates multiple observations in CICSTRAN/MONITASK
               for one "unit of work", so that a PDB.CICS built from
               CICSTRAN/MONITASK won't count user transactions, and all
               CPU time will be under the TRANNAME=CSMI,etc.

               Instead, you should have been using the ASUMUOW member
               (if you have CICSTRAN data), or the ASUMUOWT (if you
               have the MONITASK data), to first create PDB.ASUMUOW
               dataset (one obs per "unit of work", correct TRANNAME,
               etc) and use that for your CICS response measurement.
               Then include the ASUMCICX member, which used PDB.ASUMUOW
               as the input to create the PDB.CICS summary dataset.

               To eliminate the multiple opens and complexity, I have
               made an INCOMPATIBLE change, but only if you were using
               ASUMCICS to summarize Landmark's MONITASK data:
                 Instead of using ASUMCICS to read MONITASK data, you
                 must use new ASUMCICT to create PDB.CICS from MONITASK.
               If you were (wisely) using ASUMUOWT and ASUMCICX to
               create your PDB.CICS from Landmark MONITASK, there is
               no change required to your daily job.

               To summarize what these members do after this change:
               ASUMCICS - Reads only CICSTRAN, creates PDB.CICS.
               ASUMCICT - Reads only MONITASK, creates PDB.CICS.
               ASUMUOW  - Combines CICSTRAN,DB2ACCT, creates PDB.ASUMUOW
               ASUMUOWT - Combines MONITASK,DB2ACCT, creates PDB.ASUMUOW
               ASUMCICX - Reads only ASUMUOW, creates PDB.CICS.

               Verically: use ASUMCICS or ASUMCICT (left pair) if you
               need the "old" PDB.CICS ("CSMI" tranname, segment counts)
               but most sites should use one of the right pair, using
               ASUMUOW/ASUMCICX for IBM, or ASUMUOWT/ASUMCICX for ASG,
               to first create PDB.ASUMUOW (correct TRANNAME, counts a
               unit-of-work as a transaction), and then create PDB.CICS
               from that PDB.ASUMUOW data.

                  IBM       ASG            IBM     IBM      ASG     IBM
    dataset:   CICSTRAN   MONITASK       CICSTRAN  DB2    MONITASK  DB2
    program:   ASUMCICS   ASUMCICT          ASUMUOW         ASUMUOWT
    dataset:   PDB.CICS   PDB.CICS       PDB.ASUMUOW      PDB.ASUMUOW
    program:                                ASUMCICX        ASUMCICX
    dataset:                                PDB.CICS        PDB.CICS
               ===wrong TRANNAME===       ====correct TRANNAME=====
              ==obs per CICS segment=     ====obs per CICS UOW====
              ==not the recommended =     ====the recommended=====

   Thanks to Normand Poitras, IBM Global Services, CANADA.
   Thanks to Jim Horne, Lowes, USA.

Change 21.104  OAM SMF type 85 records R85PVRM '130' caused STOPOVER and
VMAC85         INPUT STATEMENT EXCEEDED error condition in subtype 74
Jun 23, 2003   records.  Four tests for R85PVRM GE '150' were changed
               to R85PVRM GE '130' as these new records contain those
               fields thought to have been added by their 1.5.0 level.
   Thanks to Andreas von Imhof, Rabobank, THE NETHERLANDS.

Change 21.103  The copying of WEEK4-WEEK5, WEEK3-WEEK4, WEEK2-WEEK1 and
BLDNTPDB       WEEK-WEEK2 was relocated to be just prior to building of
Jun 12, 2003   the new WEEK pdb on the first day of the week; it will
               also note on the log what is being done for you.
   Thanks to Terry Heim, ECOLAB, USA.

Change 21.102  STK IXFP Iceberg SMF records fix L2P00A2 and LZP00A9 are
VMACICE        already supported by MXG; the fix corrects a problem with
Jun  9, 2003   records being created that were greater than 32756 bytes;
               the fix creates multiple records when necessary, and has
               two new count fields added, but those fields are not
               needed for MXG to handle the multiple records, so there
               is no change to MXG needed for those fixes.
               Records with the fixes have been read and validated.
               However, SNAPDUR was corrected; it has always been wrong
               by a factor of ten, because the documentation had it in
               "hundredths" when it is actually in milliseconds.
   Thanks to Mikal W. Green, STK, USA.

====== Changes thru 21.101 were in MXG 21.02 dated Jun  9, 2003=========

Change 21.101  CICSTRAN variable CPURLSTM was not multiplied by 16 when
VMAC110        created by VMAC110 for CICS/TS 1.1 or later, but if you
Jun  9, 2003   used UTILEXCL, it correctly multiplied by 16 for all CICS
               versions.  VMAC110 was revised to correctly calculate the
               CPURLSTM for all versions. CPURLSTM is valid CPU time and
               is included in variable CPUTM; fortunately, CPURLSTM is
               usually small.
   Thanks to Vernon Kelly, IBM Global Services, USA.

Change 21.100  CICSTRAN variable RTYPE has two new values, 'F' and 'S',
FORMATS        that are now decoded by the $MG110RT format:
Jun  9, 2003     'C'='C:TERMINAL CONVERSE'
                 'D'='D:USER EMP DELIVER REQUEST'
                 'F'='F:FREQUENCY REQUEST'
                 'M'='M:SEMI-PERMANENT MIRROR SUSPEND'
                 'S'='S:SYNCPOINT'
                 'T'='T:TASK TERMINATION'
   Thanks to Diane Eppestine, SBC, USA.

Change 21.099  Support for ten new NDM subtypes; this is incomplete;
VMACNDM        only the skeleton set of variables is created for each
Jun  8, 2003   subtype, but all of the new members and VMXGINIT macros
               exist, so only VMXGNDM will likely need to be updated;
               just got DSECTs and no time to write the code today.
   Thanks to Peter Lines, Royal Bank of Scotland, SCOTLAND.

Change 21.098  These TYPE7204 variables that contained 'SUM OF ALL'
VMAC7072          R724ACTF       /*SUM OF ALL ACTIVE FRAMES*/
Jun  8, 2003      R724IDLE       /*SUM OF ALL IDLE FRAMES*/
                  R724SLOT       /*SUM OF ALL SLOTS USED*/
                  R724DIV        /*SUM OF ALL DIV FRAMES*/
                  R724FIX        /*SUM OF ALL FIXED FRAMES*/
               in their label are now divided by NRSAMPLE to change
               their value to the more useful and expected average
               value for the interval, and 'SUM OF ALL' was removed from
               their labels.

               These variables had correct values because MXG did divide
               by NRSAMPLES, but still had 'SUM OF ALL' in their labels:
                  R724TSV        /*SHARED PAGE VIEWS*/
                  R724VIN        /*VALID SHARED PAGES IN CSTOR*/
                  R724VLC        /*SHARED PAGE VALIDATIONS*/
                  R724GPI        /*SHARED PAGEINS FROM AUX*/
               which is now removed.

               And these variables were correct by accident, as they had
               the average value already, but MXG had 'SUM OF ALL':
                  R724USER    &PIB.4.   /*USERS*FOUND*/
                  R724ACTV    &PIB.4.   /*ACTIVE USERS*FOUND*/
               so only the label was changed and no division required.

               The IBM documentation in both the SMF Manual and DSECTS
               are incorrect for USER and ACTV variables; it took real
               RMF data to revise the code to decode the data.
   Thanks to Lawrence Jermyn, Fidelity, USA.

Change 21.097 -Support for CA/TMS PDC # QI30130 which adds 4 variables:
TYPETMS5       to the TYPETMS (Volume) dataset:
VMACTMS5          COMPRES ='PCT SPACE*SAVED*DUE TO*IDRC COMPRESS'
Jun  8, 2003      CTLGCNT ='NR TIMES*DATASET WAS*UNCATALOGED'
                  FILPERC ='PCT OF*PHYSICAL SPACE*USED BY*FILE'
                  VOLPERC ='PCT OF*PHYSICAL SPACE*ON VOL*IN USE'
               and adds the first 3 variables to the TYPEDSNB (file)
               dataset.
              -Support for TRTCH='EC'x,'ED'x decode for 3590-384T
               (standard) and 3590-384X (extended length cart) 3590
               devices with 384 tracks.
              -Variables B1INT and B1DIS were replaced by the new fields
               and no longer exist.
   Thanks to Len Rugen, University of Missouri, USA.

Change 21.096  Support for GEPARMKY=001B (PRTQUEUE) creates new variable
IMAC6ESS       ESSPRQUE in TYPE6 if IMAC6ESS is used to decode ESS data.
VMAC6ESS       The 001B also caused INPUT STATEMENT EXCEEDED error if
Jun  6, 2003   had a tailored, earlier IMAC6ESS in your USERID.SOURCLIB.
   Thanks to Reinhard Nitsch, Provinzial Versicherungen, GERMANY.

Change 21.095 -Support for six new TNG objects from NT:
EXTNT036         ACTIVE SERVER PAGES, DISTRIBUTED TRANSACTION,
EXTNT037         HTTP INDEXING SERVICE, INTERNET INFORMATION,
EXTNT038         PRINT QUEUE, and WEB SERVICE,
EXTNT039       that create NT036 thru NT041 datasets.
EXTNT040      -Support for new fields in LOGICALDISK, PHYSICALDISK,
EXTNT041       MEMORY, SYSTEM, and UDP objects.
FORMATS       -Support for 1-Header record, found only in a "Monthly"
IMACTNG        TNG Performance Cube.
VMACTNG
VMXGINIT
Jun  8, 2003
   Thanks to Peter Krijger, National Bank of New Zealand, NEW ZEALAND.

====== Changes thru 21.094 were in MXG 21.02 dated Jun  5, 2003=========

Change 21.094  Calculation of MSU4HRAV in PDB.RMFINTRV was revised.  It
VMXGRMFI       was incorrect in several instances: after a change in RMF
Jun  5, 2003   interval value, or after an IPL, and it was calculated
               when it should not have been, notably, if there was a gap
               in the data.  It can still be missing when SMF70LAC is
               not, and it can be different from SMF70LAC when there are
               not four hours of data available to MXG.
   Thanks to Frank De Bree, DEXIA, BELGIUM.
   Thanks to Mark Nouwen, DEXIA, BELGIUM.

Change 21.093  PDB.ASUMUOW corrections (SYSTEM could be blank) and logic
VMXGUOW        revisions more robustly handle CICS and DB2 data merge.
Jun  5, 2003  -Several variables, including QWACAJST added to SUM= list.
              -Added HOLDSTRT/HOLDEND to RETAIN, and a DATA step to get
               the FIRST.UOWIDCHR values, to correct an exposure that
               could have caused missing STRTTIME and wrong ELAPSTM.
              -Corrected LAST.UOWIDCHR logic that was assigning blanks
               for the SYSTEM variable for CICS-only work.
              -Moved &OUTCODE to the end of the DATA step, for safety.
              -Formatted WAITTOTM as TIME12.2.
              -If an OBS was SPUN, when it came back in, if any MIN/MAX
               variables had been specified, the values from SPIN were
               not used in the MIN/MAX calculation, but now are.
               These changes were suggested with implemenation examples!
   Thanks to Scott Barry, SBBWorks, Inc., USA.

Change 21.092  User records RMDS,SYNC,WYLA,WYLB,HSM,TSMO,COM,M204 might
UTILBLDP       have zero obs; those products have non-standard _aaaaID
Jun  4, 2003   macro names for their SMF IDs, or they create multiple
               multiple SMF records and they all require separate tests,
               but only 2 of 3 places had been fully updated to protect
               all of these special user records.  The error only
               occurred whenf %LET MACKEEP= was used.
   Thanks to Scott Barry, SBBWorks, Inc., USA.

====== Changes thru 21.091 were in MXG 21.02 dated Jun  3, 2003=========

Change 21.091  A major revision of support for RMF III VSAM files.
ASMRMFV        Changes to ASMRMFV in particular are to position the code
CLRMFV         for future upgrades to handle more RMF III tables.
DOCLRMFV      -When ENDTIME of a MINTIME interval was the same as the
Jun  3, 2003   STARTIME of the next MINTIME interval, it was incorrectly
               selected.  RMF III almost always has the same time for
               the end of one MINTIME interval and the start of the
               next.  Only noticed when testing for a single minute to
               be selected, but two were output.
              -Parameter processing completely rewritten to be table
               driven, allowing new keywords and keyword aliases to be
               easily added for new table support.
              -Parm keywords have shorter aliases to fit in the JCL
               limit of 100 characters for a parameter.  The full list
               of all alias names are given in the DOCLRMFV member.
               NOxxx names added to assist.
              -Max LRECL=32760 (increased from incorrect LRECL=32756).
              -Date selection formats expanded YYYDDD YYYDDD YYDDD YDDD
               DDD DD or D.
              -Time-based selection added, with FROMTIME/TOTIME= parm
               and HHMM, HMM, MM, or M formats, plus FROM/TO= nn, for
               relative number of days before or after today.
              -ASMRMFV output reports MXG Last Change Number in output,
               includes DSNAME and filtering counts, and a summary if
               multiple systems are processed, min/max times, etc.
               NODETAIL keyword will suppress the detail reports.
              -Debugging enhancement in RMFSKIP option.
              -ENC record outputs only one per enclave, correcting case
               where extensive use of Enclaves caused the RMF output
               record to exceed the output LRECL limit.
              -An (unexpected) Table ID mismatch will cause ASMRMFV to
               issue a message and then ABEND.

               Changes to the CLRMFV CLIST that executes ASMRMFV:
              -The changes in CLRMFV are not backwards compatible; this
               version must be used with the revised ASMRMFV program.
              -PARM keyword default is no PARM('-D'), equivalent to the
               old default of PARM('ALL,NODVT')
              -New keyword RMFSKIP(NO) to control optional debugging.
              -New keyword ONECALL(YES).  This allocates all RMF III
               Monitor Files for an LPAR first, and then calls ASMRMFV
               once to process all records from that LPAR.
                 (Code ONECALL(NO) to invoke ASMRMFV once for each file,
                  which is how it was in prior versions).
               The default YES should be best for typical use; ASMRMFV
               specifies FREE=CLOSE internally so that each RMF III file
               is freed after it was read, and the SHR enqueue released
               as soon as possible.  This produced a 9-11% reduction in
               elapsed and CPU time with ONECALL(YES) default.
              -Allocation messages show DDNAME
              -New keywords FROMTIME/TOTIME addes to support time based
               data selection in ASMRMFV.

               A special thanks to Acxiom management for allowing this
               MXG user to contribute these enhancements for others!
   Thanks to Jerry Urbaniak, Acxiom, USA.

Change 21.090  Multiple enhancements to CICS summarization:
ASUMCICS      -Macro _BSUCICS is used in the BY list instead of the
ASUMCICX       list of specific variables, to be consistent and in case
TRNDCICS       of future changes.  Aug 7: this change caused variable
TRNDCICX       DATETIME to not be created in PDB.CICS in MXG 21.02-03.
Jun  3, 2003   STRTTIME, which has always been the correct variable to
Jun  4, 2003   use, was not affected.  But Change 21.145 reinstated the
Aug  7, 2003   creation of variable DATETIME in PDB.CICS, so you would
               not have to cange your reports to use STRTTIME.
              -SHIFT and SYSTEM added to the BY list.
              -Modified to carry the values used to set the buckets in
               variables RESPVAL1-RESPVAL7, and comments placed around
               the place to reset the values for "User Change".
              -The FLOOR(IRESPTM) was removed, so that fractional values
               can be used for the RESPVALn bucket values.
              -ESUCICS is used to control the output of CICS dataset.
              -Macro variables SUCIVAL1-SUCIVAL7 are created so that the
               response buckets values can be set externally, and macro
               variable SUCIINTV externalizes the summarization interval
               (with HOUR as the default).  The chosen interval value is
               imbedded in the dataset label, while the response bucket
               values are imbedded in the variable labels for RESPBKTx.
              -For Trending, macro variable TRCIINTV sets the interval
               default of WEEK.

               Note:  We generally do NOT recommend the use of ASUMCICS
                      and TRNDCICS, based on CICSTRAN dataset, because
                      CICSTRAN has an obs for each segment of an MRO
                      unit of work; CICSTRAN observation are incomplete:
                        - the TOR obs has no CPU time, but has the real
                          TRANNAME and LUNAME
                        - the AOR obs has all of the CPU time, but its
                          TRANNAME is 'CSMI' (the mirror transaction).
                        - observation counts are not transaction counts.
                      Instead, we recommend you include ASUMUOW first,
                      to create the PDB.ASUMUOW "unit of work" dataset,
                      which has one observation for each UOW with the
                      correct TRANNAME, LUNAME, CPUTM, IRESPTM, etc,
                      and then include ASUMCICX, which reads ASUMUOW to
                      create a PDB.CICS dataset that summarizes UOWs.
   Thanks to Scott Barry, SBBWorks, Inc., USA.
   Thanks to Pat Curren, SuperValu Inc., USA.

Change 21.089  New MICSMXG member contains notes and comparisons from
MICSMXG        users who have replaced CA's MICS with MXG Software.
Jun  2, 2003

Change 21.088  Execution under ASCII only.
ANALCISH      -VMACDB2H.  NETSNAME was incorrectly TRANSLATEed; the
VMACCRAY       statement  TRANSLATE(NETSNAME,'00'X,'40'X); needs to be
VMACDB2H       TRANSLATE(NETSNAME,'00'X,' ');  to execute under ASCII,
VMACEREP       so that blanks (which are '20'x on ASCII) are converted
VMACSFS        to hex zeroes.
VMACTMDB      -All TRANSLATE() statements were examined, and these
VMACTMS5       members had similar incorrect-under-ASCII-only-syntax:
VMACTMVS         VMACCRAY, VMACEREP, ANALCISH, VMACSFS, VMACTMDB,
VMACTSOM         VMACTMS5, VMACTMVS, and VMACTSOM
Jun  2, 2003
   Thanks to Matthew T. Chappell, Queensland Transport, AUSTRALIA.

Change 21.087  New variable MPL74 is created in the TYPE74 dataset, as
ANALFIOE          MPL74=SUM(DEVCONTM,DEVDISTM)/DURATM;
VMAC74            LABEL MPL74='IO*MULTI*PROGAMMING*LEVEL'
Jun  3, 2003   an estimate of the concurrent I/Os to this device.
Jun  4, 2003
               New ANALFIOE member reads TYPE73, TYPE74 and TYPE78CF to
               create two new datasets:
                 TYPE74OE -  Sums the MPL74 for each LCU from TYPE74.
                 TYPE73OE -  The LCUs from FICON channels are selected,
                             and their I/O is uniformly distributed to
                             each CHPID in that LCU, and each CHPID's
                             concurrent "Open Exchange" variables are
                             estimated in these variables:
                               MPL73   ='ESTIMATED*FICON*OPEN*EXCHANGES'
                               IORATE  ='ESTIMATED*FICON*CHANNEL*IORATE'
                               OEDURATM='EST*OPEN*EXCHANGE*msec per io'
                             The TYPE73OE is just the original TYPE73
                             with these variables added for FICON CHPID.
               The MPL73, or "Open Exchanges" appears to be a useful
               new metric for detecting saturation in FICON channels;
               See http://www.perfassoc.com/publishedpapers for Pat's
               "Understanding FICON Channel Path Metrics" article.
   Thanks to Dr. H. Pat Artis, Performance Associates, USA.

Change 21.086  Support for IDMS/R Performance Monitor type 30 subtype 3.
IMACACCT       In addition to the user SMF record created by PERFMON,
VGETJESN       that CA product also creates SMF type 30 subtype 3
VMAC30         records at transaction end.  These are very-old-format
May 30, 2003   subtype 3 that do not contain JCTJOBID nor SUBSYS (fields
               SMF30JNM/SMF30WID) causing TYPETASK NOT DECODED messages.
                  The record has a (very old length=14) Product section,
                  a (very old length=124) ID Section (causing INTBTIME
                  to be, and which caused ITSV to error these records as
                  it uses INTBTIME for its DATETIME validation!), a
                  Completion section, and a Storage Section, but it does
                  not have the UREC, CPU, PERF, OPER or EXCP sections.
                  The record is identifiable because PRODUCT (SMF30PNM)
                  is 'PERFMON'.
               It does have useful information about each transaction,
               in the unique accounting fields, with different fields
               for batch, DC/UCF, and CICS access to IDMS.
              -VGETJESN recognizes PERFMON records, sets TYPETASK='STC'
               and SUBSYS='PERFMON'.
              -IMACACCT contains a comment block around the PERFMON code
               that creates these IDMS variables from the Account field
                  IDMSCPTM='IDMS*TRANSACTION*CPU*TIME'
                  IDMSTID ='IDMS*TASK*ID*NUMBER'
                  IDMSACT1='IDMS*BATCH*ACCOUNT*ONE'
                  IDMSACT2='IDMS*BATCH*ACCOUNT*TWO'
                  IDMSTRN ='IDMS*ERUS*TRANSACTION*ID'
                  IDMSTRM ='IDMS*ERUS*TERMINAL*ID'
                  IDMSOPR ='IDMS*ERUS*OPERATOR*ID'
                  IDMSTSK ='IDMS*DC/UCF*TASK*CODE'
                  IDMSLTE ='IDMS*DC/UCF*LTERM'
                  IDMSBLG ='IDMS*DC/UCF*BILLING*GROUP'
               and when you remove the comment block, those variables
               will then be output in TYPE30_V, PDB.SMFINTRV, XSMFINT
               datasets.  IMACACCT also populates INTBTIME if it is
               still missing in these PERFMON type 30 records.
              -VMAC30 was updated to output the IDMS variables if they
               have been created; unrelatedly, those LENACCT1-LENACCT9
               variables that exist will now be output in TYPE30_V; they
               should have been there all along!
   Thanks to Martin Legendre, Regie des rentes du Quebec, CANADA.

Change 21.085  Protection for 0 length records, which are not created by
VMACNTSM       NTSMF product, but have been unintentionally created by
May 27, 2003   user's SAS programs that copied raw data filed.  On MVS,
               the records actually have length 1.
   Thanks to Uriel Carrasquilla, NCCI, USA.

Change 21.084  Type 42 Subtype 8 (which is not yet documented in the SMF
VMAC42         manual) caused ERROR.VMAC42.CLLEN and hex dump of the SMF
May 23, 2003   record.  The record did not contain a CL segment, but MXG
               did not test NRCL to see there was no segment before it
               printed the error message.  However, the record was then
               deleted, whereas now it is output.
   Thanks to Rita Bertolo, Canadian Pacific Railway, CANADA.

Change 21.083  With either RUNWEEK=WEEK or RUNWEEK=WTD, the rolling of
BLDNTPDB       weekly datasets was occurring at the wrong time, causing
May 23, 2003   weeklies with no data.
   Thanks to Terry Heim, ECOLAB, USA.

Change 21.082  GPARMKY=002F segment in SMF 6 Extended ESS data is now
IMAC6ESS       recognized and decoded into new variable ESSNOTFY that
VMAC6          will be kept in TYPE6 dataset (only if IMAC6ESS has been
May 19, 2003   tailored and its commment block un-commented).  Some
May 23, 2003   misspellings were discovered and corrected, and all of
May 26, 2003   the $VARYING fields are now translated to $EBCDIC; a few
               had been overlooked.
              -GEPARMKY=002E segment decoded, ESSULIB1-ESSULIB4 for up
               to four DSNAMEs of USERLIBs.
              -GEPARMKY=002B, 002C decode OUTDISP NORMAL/ABNORMAL in the
               ESSOUTDB and ESSOUTDC flag variables.
              -GEPARMKY=001B is now correctly decoded with 001B instead
               of 000B in the IF test; variable ESSUCS is expanded to
               four bytes to match the size of the UCS field.
              -GEPARMKY=0021 is supported in ESSPMISG flag variable.
              -A 002C segment with unexpected GEPARMLN=0 was found, so
               all segments are protected for a zero length, and that
               segment's variables are not created.
   Thanks to Reinhard Nitsch, Provinzial, GERMANY.
   Thanks to Denny Wong, New York Life, USA.

Change 21.081  The Undocumented +2 bytes for alignment are after SMSMC,
VMACCTLT       not after DDSPOS, which caused wrong values for BLOCKCT
May 19, 2003   and DDSCSIZE thru DDSPOS.  The +2 statement was moved.
Jul  8, 2003  -The BLKSIZE field had been relocated to the end of the
Jul 25, 2003   record as a 4-byte field, but that was overlooked in the
Jul 28, 2003   MXG support - 8Jul03.
              -MXG 21.02 only: CTLT Version 5 created zero observations
               because it has LRECL=460; MXG logic changed to test for
                ... 400 LE LENGTH LE 460 ....
               in two places to read V4, V5, and V6 records. 25Jul03
   Thanks to Francesco Bragadin, Phoneix Spa, ITALY
   Thanks to Rob Gibson, CPR, AUSTRALIA.

Change 21.080  The example JCL procedure name of MXGSASV8 is now used in
JCLMNTH        place of the old MXGSAS example name, to point new users
JCLMONTH       to the correct, current JCL procedure example for SAS V8.
JCLWEEK
JCLWEEKT
May 19, 2003
   Thanks to Matthew Collier, Oklahoma State University, USA.

Change 21.079  SMF 80 with APPLNAME less than 8 caused INPUT STATEMENT
VMAC80A        EXCEEDED in RACFTYPE=20 segment, due to hard-coded input
May 19, 2003   with $EBCDIC8.  Now, the RACFDLN=7, etc is honored.
   Thanks to John Grasing, MetLife, USA.

Change 21.078  The optional CA-Dispatch variables are now automatically
IMACCADI       added to PDB.PRINT dataset, when you open the comment
May 14, 2003   block in your IMACCADI member.  By adding a %LET ADD6= ..
               statement, the BUILDPDB &ADD6 macro will be added to the
               KEEP= list for PDB.PRINT dataset.
   Thanks to Dan Adams, NITC, USA.

Change 21.077  Variables EXCPDASZ EXCPTAPZ IOTMDASZ IOTMTAPZ RACFUSRZ
ANALDSET       SELAPSTZ STEPTIME were not initialized, sometimes causing
May 14, 2003   their counterpart variables to be incorrect.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.076  Variables QWACSPEA QWACSPEB QWACSPNE QWACSPTT for Stored
VMXGUOW        Procedure activity are now included in the PDB.ASUMUOW
May  5, 2003   dataset.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.075  This TCP/IP report example was truncating leading chars
ANALTCP        of Host Name, and had additional revisions.
May  2, 2003
   Thanks to R. Wells, American General Finance, USA.

Change 21.074  IBM documentation for the raw units of time in RMF III's
VMACRMFV       DVT table was incorrect; instead of 128 microsecond units
May  2, 2003   the fields used to calculate CONNTM, PENDTM, DISCTM,
               DVBUSYTM, CUBUSYTM and SWPODLTM are in 2048 microsecond
               units, so those variables are now corrected in the ZRBDVT
               dataset.
   Thanks to Betty Wong, Bank of America, USA.

Change 21.073  Format MGPDSTY is updated for PDSMAN Version 7.41 which
FORMATS        has new value "E:EXEC', used in TYPEPDSM support.
May  2, 2003
   Thanks to Rob d'Andrea, Royal Bank of Scotland, SCOTLAND.

Change 21.072  ESAMAP v2.2 caused SHORT SEGMENT errors.  MXG code had
VMACXAM        not been tested with that earlier release.  MXG code in
May  2, 2003   XAMSYS for MTRMEM, SYTSYG, and STOASI, in XAMCPU for
               SYTRSP, and in XAMDEV for CONFIG and IODDEV was revised
               to read the shorter segments.
   Thanks to Tony Lobley, EDS, ENGLAND.

Change 21.071  If you used %VMXGTIME/TIMEBILD to shift time zones, you
VMAC30         could have negative RDRTM, and it was possible that
May  1, 2003   ALOCTIME and/or LOADTIME could have had the wrong date.
               The calculation of RDRTM was moved above the %VMXGTIME
               for REND, and the logic to set dates for ALOC/LOAD times
               was precedeed by %VMXGTIME with REVERSE=YES, and then all
               four datetimes (INIT,TERM,ALOC,LOAD) were un-REVERSED.
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.070  Variable RDRETDAT should have been FORMATed DATE9., and
VMACEDGR       now it is.
Apr 30, 2003
   Thanks to Barry McQueen, Department of Defence, AUSTRALIA.

Change 21.069  Exit member EXUTILEX allows you to process a non-standard
EXUTILEX       "User" segment (i.e., your CICS guru created a segment
UTILEXCL       but did not use "USER" for the CMODNAME/CMODHEAD entries.
Apr 25, 2003   Comments in EXUTILEX show how to reset the CMODNAME/HEAD
Nov  3, 2003   values to "USER" so that MXG will generate IMACICUS call.
               You will also, then, have to update IMACICUS to tell MXG
               the length of data to be kept in the USERCHAR variable.

               Nov 3, 2003 documentation update:
               Using this EXUTILEX member solved USERCHAR always blank.

               One site's Hogan data segment was named "HOGAN", and so
               the IMACEXCL member created by UTILEXCL did not contain
               the call to IMACICUS, where the site's code to decode the
               Hogan data was located, but the UTILEXCL program didn't
               see a "USER" segment, so it did not generate an include
               for the IMACICUS code, so USERCHAR was always blank.
               By using this (new) EXUTILEX exit, you can tell UTILEXCL
               to treat your "HOGAN" segment as if it were named "USER".

               An error "BY VARIABLES MUST BE IN FIRST 4096 BYTES" was
               seen with SAS Version 6, but not with SAS Version 8+, so
               run UTILEXCL under V8+ to be error-free.

   Thanks to Mike Creech, Fidelity Information Services, USA.
   Thanks to Herb Strozinsky,US Bank, USA.

Change 21.068  MXG variable VELOCIOD when I/O Priority Management is NOT
VMAC7072       enabled (i.e., R723VELI=' ') did not match IBM RMF report
Apr 24, 2003   value: MXG was including PCTDLTDQ (R723CTDQ) in the denom
               but IBM's calculation does not include that value.  MXG
               was changed to match the IBM reports, assuming they are
               correct.
   Thanks to Russell Dewar, National Australia Bank, AUSTRALIA.

Change 21.067 -SYSPLEX was not in the BY list for TRNDRMFI, but now is.
VMXGRMFI      -Variable PCTMVSBY is added to PDB.RMFINTRV and TRNDRMFI.
Apr 18, 2003  -In Trending logic, EXRMFINT is now invoked; without that
               logic, variables dropped from RMFINTRV in EXRMFINT were
               not being dropped in the TRNDRMFI dataset.
              -Invoking VMXGRMFI twice, using PDB=PDB logic to create
               two levels of summary (like RMFINTRV and RMFINTHR, as
               suggested in comments in the original RMFINTRV member)
               corrupted the SPINRMFI dataset so it did not keep enough
               data for correct calculations of MSU4HRAV.  The example
               is revised, and the TREND logic should be used for the
               second summary, to eliminate SPINRMFI corruption:
                 %VMXGRMFI(PDB=PDB,
                           OUTDATA=PDB.RMFINTRV,
                           INTERVAL=DURSET);
                 %VMXGRMFI(PDB=,TRENDIN=PDB.RMFINTRV,
                           TRENDOLD=,
                           TRENDOUT=PDB.RMFINTHR,
                           TRENDINT=HOUR);
                 %VMXGRMFI(PDB=,TRENDIN=PDB.RMFINTRV,
                           TRENDOLD=,
                           TRENDOUT=PDB.RMFINTDY,
                           TRENDINT=DATE);
               These examples assume the IMACWORK=YES default, i.e., the
               workload definitions are in your IMACWORK member.  If you
               instead invoke %VMXGRMFI with IMACWORK=NO and use its
               WORKnn= arguments to define your PDB.RMFINTRV workloads,
               then you must specify those same WORKnn= arguments when
               you use the VMXGRMFI to create TREND.TRNDRMFI dataset;
               otherwise, none of the extended varaibles will be in
               TREND.TRNDRMFI.
   Thanks to Scott Barry, SBBWorks, Inc., USA.

Change 21.066  TYPSZARA was revised to copy the ZARA datasets into the
TYPSZARA       PDB library; the ZARA support is unique in that it does
Apr 18, 2003   depend on the macro overrides in IMACZARA, so this was
               the safest change to copy ZARAxxxx datasets into the
               PDB ddname, and still preserve prior user's tailoring.
   Thanks to Bob Miller, Conseco, USA.

Change 21.065  Support for servers with more than 16 CPUs or LPARs.
VMAC7072      -TYPE70 Dataset: Support for 32 engines.
VMXGRMFI       The existing sets of 11 CPU-specific variables per CPUID
VMXG70PR          CAIx      CPUSERx  CPUWAITx CPUEDTMx CPUPDTMx IORATEx
May 29, 2003      PCTCPUBYx PCTTIPx  VFAFFTMx VMONx    MVSWAITx
               where suffix 0-9 and A-F are for CPUs 0-15, have 17 more
               suffixes, G-L and N-X, for CPUs 16 thru 32 (187 vars).
                  Note that the suffix letter "M" had to be skipped,
                  because variable CPUWAITM was already defined.
               Labels document which suffix is for which CPU number.
              -TYPE70PR Dataset:
               No change was needed for more than 16 LPARs; MXG stores
               the LPARNUM in four bytes.  Note, however, we recommend
               you use the MXG-build PDB.ASUM70PR or PDB.ASUMCEC dataset
               for your LPAR and CEC analysis, as those datasets know
               how to recognize and not count LCPUs that are ICFs or
               Linux partitions; if you use TYPE70PR, you'll have to
               make sure you understand how to recognize what's what.
              -RMFINTRV Dataset:
               CPU Serial variables CPUSERG-CPUSERL and CPUSERN-CPUSERX
               were added to the ID= operand for PDB.RMFINTRV dataset.
              -ASUM70PR,ASUMCEC datasets (built by member ASUM70PR):
               The existing sets of 22 LPAR-specific variables per LPAR
                  LPxNAME  LPxDUR   LPxUPDTM LPxUEDTM LPxMGTTM LPCTxBY
                  LPCTxOV  PCTLxBY  PCTLxOV  LPxNRPRC LPxBDA   LPxCAP
                  LPxCHG   LPxDED   LPxWAIT  LPxSHARE LPxLAC   LPxMSU
                  LPxMSUHR LPxMSU70 LPxONT   LPxWST
               where suffix 0-9 and A-G are for LPARs 0-16, have 16 more
               suffixes, H-O and Q-X, for LPARs 17 thru 32 (+352 vars).
                  Note that the suffix letter "P" had to be skipped,
                  because variable CPUWAITM was already defined.
               Labels document which suffix is for which LPAR number.
               This was "Feature 0" or "z/OS 1.4 z990 Compatibility".

Change 21.064  Support for IMS Version 8.1:
ASMIMSL6        -BMC's IMF, Candle's ITRF, Landmark's TIMS.
VMACIMS         -MXG's "Supported" TYPEIMS7 to create IMS0708 dataset
Apr 17, 2003    -MXG's ASMIMSL6/JCLIMSL6 to create IMSTRAN dataset.
May 21, 2003
              -BMC's IMF, Candle's ITRF, and Landmark's TIMS products
               write their own records that MXG reads, and none have
               changed in their output records, so MXG 20.20+ supports
               their products under all versions of IMS, including 8.1.

              -MXG's "Supported" TYPEIMS7 program to create the IMS0708
               dataset from 07 and 08 log records (has IMS resources by
               transaction name, but no response times) does work with
               IMS 8.1, but there are "INVALID DEQDATE" messages and hex
               dumps printed on the job log, because IBM incompatibly
               changed their 036x log record.  VMACIMS has been updated
               to support the non-fast-path IMS log records, and when
               fast path 8.1 records are available along with DSECTS,
               the VMACIMS code for them will be examined for changes.
                  The _IMSVERS macro default value in IMACIMS7 and
                  IMACIMS are left at 7.1, since some sites may be
                  exploiting that existing default; change to 8.1 to
`                 process IMS Version 8.1 records.

              -MXG's "pseudo-supported" ASMIMSL6 program and JCLIMSL6
               examples work just fine with IMS Version 8.1 records, as
               they do with IMS Version 7.1 records, but you must first
               re-assemble the ASMIMSL6 assembly program using the IMS
               Version 8.1 macro library to create the V 8.1 program,
               and you must run separate JCLIMSLx jobs to process the
               V7.1 and V8.1 data separately; you cannot concatenate
               the IMS logs from two versions and read with JCLIMSLx.
               MXG 20.03 contained the last change to this support.

              -Log record 31x with PSTNUMBR=0 are output in IMS31O in
               VMACIMS logic, and a FLAG2 test added for log record 36x.
   Thanks to Jane Huang, CIGNA, USA.

Change 21.063  NTSMF 2.4.5 new 0.10 record INPUT STATEMENT EXCEEDED due
VMACNTSM       to NRTRIPLT=1 but no triplets in that record.  Error is
Apr 16, 2003   circumvented by inserting a statement
                 IF OID=0 AND OBJECT NOT IN ('0','1') THEN DELETE;
               before the test for the NRTRIPLT input statement.
   Thanks to Roger Zimmerman, Hewitt Associates, USA.

Change 21.062  MXG 20.07 thru 21.01 may have filled SPIN.SPINUOW with
FIXASUOW       many observations that should not have been spun.  Change
JCLUOWP        20.221 did not expect cases when the DB2ACCT ending time
JCLUOWV        stamp was after the CICS end time, which caused TRANNAME
VMXGUOW        to be blank, causing that observation to be "spun".  And
Apr 15, 2003   because TRANNAME is now blank (and we will most likely
               never see another record for that unit of work) that
               record will spin up for 7 days (default in SPINUOW), and
               that increased the size of SPIN.SPINUOW.   This change
               now uses a forward sequence of the Start Time to put all
               the CICS and DB2 pieces together, and is not dependent on
               the end times.
              -If you wish to preserve the "spining" records currently
               in your SPIN.SPINUOW dataset, member FIXASUOW can be used
               to create a revised SPIN.SPINUOW dataset that can then be
               used with the revised VMXGUOW to create the corrected
               PDB.ASUMUOW.  That first execution will "clean out" many
               of the spinning transactions that should not have been
               spun in the first place.  Or, you can just delete your
               existing SPIN.SPINUOW and start fresh with the new code.
              -VMXGUOW has a new parmeter, TRACEUOW=YES (Default NO) to
               trace the UOW chain for diagnostic purposes (printing
               lots and lots of messages on the log).
   Thanks to Alfred Nardi, CMX Group, USA.

Change 21.061  Dataset T102S196 was never fully decoded, but now is, for
FORMATS        V6 and V7.  An observation is created for each holder of
VMAC102        this lock that caused a timeout for the "victim".  This
Apr  9, 2003   "victim" is identified in QWHCxxxx & QWHSxxxx variables.
Apr 14, 2003   The lock is identified in QW0196RH/RL/FR/KD/KP/K1-K7/WU
               /WS/WD/WF/TI and QW0196TC variables; those QWHC, QWHS, &
               QW0196xx variables repeat in subsequent observations if
               there was more than one holder (QW0196NU counts holders)
               segment in an SMF record.  The identity of the holder(s)
               are in the three sets of variables QW0196Hx, QW1196Hx, &
               QW21196Hx for up to 3 holders of the lock.  More than 3
               holder prints a note.
              -MGD044K format was expanded for new values.
   Thanks to Ron Alterman, Charles Schwab, USA.

Change 21.060  The row between 16M-2G was added to the Paging Report;
ANALRMFR       this row shows values only if your system is running in
Apr  6, 2003   ESAME mode; in ESA mode, the row will show 'N/A'.
               The Channel report READ(MB/SEC) and WRITE(MB/SEC) values
               in the IBM report are incorrect: IBM code divides the raw
               byte values by 1000*1000 to print as MegaBytes, but they
               should have used 1024*1024 to convert; the IBM values are
               about 5% too high.
   Thanks to David Kellerman, ADP, USA.

Change 21.059 -Type 74 Subtype 4 Structure data (TYPE74ST) has several
FORMATS        fields thate were negative, because IBM documented them
VMAC74         as floating point, but they contained binary data.  The
Apr  9, 2003   variables R744SPST,SPSS,SRST,SRSS,SCST,R744SCSS are now
Apr 22, 2003   correctly input as binary, and R744SLSV as TODSTAMP8.
Apr 24, 2003  -Some (but not all) observations in TYPE74ST had missing
               values for R744QSIZ, when there were a large number of
               structures.  The QSIZ (SMF744QN) segments are written at
               the beginning of one physical physical record, followed
               by as many SSIZ segments that can fit in that record,
               but additional SSIZ segments are in a separate physical
               record. Those additional SSIZ elements had missing QSIZ.
               By retaining the QSIZ array and storing the number of
               elements, the subsequent SSIZ segments are now populated
               with their QSIZ values.
              -But R744QSIZ will only be non-missing in records from the
               one system in a sysplex that "owns" the Coupling Facility
               i.e., the "Sysplex Master" system.  This is now discussed
               in IBM Information APAR II13172, which applies to both
               the RMF III data and the RMF 74 subtype 4 QSIZ segments.
              -Variable R744QFLG is now decoded by new $MG074QF format,
               which includes '00X: NOT SYSPLEX MASTER, NO QSIZ' value
               for TYPE74ST observations from non-master systems, and
               obs with R744QFLG='00'X will also have R744QSIZ missing.
   Thanks to Coen Wessels, Unicible, SWITZERLAND.

Change 21.058  Support for APAR OW54347 adds Command-Response (CMR) time
VMAC74         to RMF records and RMF Device Activity Reports, and sets
VMAC79         the existing Director Port Busy (DBP) and Control Unit
Apr  6, 2003   Busy (CUB) Delay fields to zero in SMF 74 and 79 records.
Apr 29, 2003   The CMR time for a start or resume function of the sub-
               channel is the time needed until the device indicates it
               has accepted the command; this allows distinction between
               real hardware errors versus workload spikes (contention
               in the fabric and at the destination port).
              -In dataset TYPE74, new variables DLYCMRTM and AVGCMRMS
               are created.  Variables DLYDIRTM, DLYCHATM, PCTPNDIR,
               DLYCUBTM, AVGPNCUB PCTPNCUB will all be zero when this
               APAR is installed.  And I've assumed that DLYCMRTM should
               also be subtracted from DEVPNDTM to calculate DLYOTHTM
               (since DLYCUBTM and DLYDIRTM were).
              -In dataset TYPE799, new variable R799CMR is created, and
               variables R799DPB and R799CUB will be zero with the APAR.
              -OW54347 documented that R799CMR was added at offset +92,
               but the original text of APAR OW31701 had R799TMS added
               at offset +92. IBM now confirms that OW31701's text was
               wrong, R799CMR is at +92, and that R799TMS does not exist
               in the RMF 79 record.
   Thanks to Ermanno Bewrtolotti, Banca Intesa, ITALY.

Change 21.057  Format MG080QU for RACFQUAL, and format MG080TY for
FORMATS        RACFTYPE are updated for new values in z/OS 1.2 and 1.4.
Apr  7, 2003
   Thanks to Chuck Hopf, MBNA, USA.

Change 21.056 -Enhancements to BUILDPDB/BUILDPD3. Exit member EXPDBSPJ
BUILD005       and old-style macro _EPDBSPJ are created so that local
BUIL3005       variables can be added to the PDB.SPUNJOBS dataset.
EXPDBSPJ      -Variable DATETIME (Start of Shift, equal to INTBTIME) is
SPUNJOBS       added to PDB.SMFINTRV for consistency.
Apr  4, 2003  -Variables SMF6LPGE and DOCLENFT are added to PDB.PRINT,
               and those variables plus PAGECNT are summed into the
               PDB.JOBS and the PDB.SPUNJOBS datasets.
   Thanks to Scott Barry, SBBWorks, USA.

Change 21.055  Support for FACOM SMF records 116 caused JCLTEST8 to fail
VMACAIMn       when ID=116 MQ Series records were in your test SMF data.
Mar 28, 2003   To avoid conflict, FACOM support was changed to use an
               _IDAIMn macro to set the SMF ID of FACOM records, and the
               default value is set to the impossible value of 512.  All
               FACOM users will have to redefine the appropriate macro
               in their IMACKEEP member to create observations in the
               FACOM datasets from the FACOM records:
                 FACOM Record    MXG MACRO NAME
                    110            _IDAIM0
                    111            _IDAIM1
                    112            _IDAIM2
                    113            _IDAIM3
                    116            _IDAIM6
                    117            _IDAIM7
                     98            _IDAIMR
               For example, to process the FACOM 116 record, you would
               put this statement
                  MACRO _IDAIM6  116 %
               in your IMACKEEP member.
   Thanks to Mike Hoiey, Ameren Services, USA.

Change 21.054  UTILEXCL created incorrect values in KY8DISTM & KY8CPUTM;
UTILEXCL       the KY8DISTM=16*KY8DISTM; after the IF CMODIDNT='263'...
Mar 28, 2003   should have been  KY8CPUTM=16*KY8CPUTM;
Jun 12, 2003  -Jun 12,2003:  Original change only changed the first
               instance, but there was a second instance in lines after
               CMODIDNT='263' that also needed to be changed.
   Thanks to Steve Yucha, Aetna, USA.
   Thanks to Tony Steward, Royal Mail, ENGLAND.

Change 21.053  Support for BlackBerry Server object.
EXNTBLKB
VMACNTSM
VMXGINIT
Mar 28, 2003
   Thanks to Jim Quigley, ConEd, USA.

Change 21.052 -Archaic V6 JCL example was revised to match MXGSASV8 with
MXGSAS         DISP=(NEW,DELETE) per Change 20.076.
MXGSASV8      -DISP was changed to NEW,DELETE in MXGSASV9 as it should
MXGSASV9       have been in MXG 20.20
Mar 27, 2003  -The WORK DD symbolic &WORK was not in parenthesis in V8
               example.
   Thanks to Yao Chun Rickert, Bank One, USA.
   Thanks to Jim Horne, Lowe's, USA.

====== Changes thru 21.051 were in MXG 21.01 dated Mar 24, 2003=========

Change 21.051 -Negative values for LOGNATMP & TOTANONS in WEBSERVR occur
VMACNTSM       because MXG de-accumulation did not recognize a stop and
Mar 23, 2003   start of the webserver.  Adding SEQCHECK=DIF(SEQNR) and
               testing SEQCHECK EQ 1 now correctly deaccumulates.
              -Support for SYSTEM object with 32 fields; that object has
               only 26 unique fields; the last six are repeats.
              -The Discovery Print macro _UNTDISC was updated to support
               multiple sets of discovery records.
   Thanks to Xiaobo Zhang, ISO, USA.

Change 21.050  Support for 2105 Cache Controller data in CMF User SMF
VMACMF         record adds variable CMF27MDL to dataset CMF27C93, which
Mar 21, 2003   will now contain both 2105 and 3390 observations; the
               2105 observations contain CMF27MDL='20', while 3990s have
               CMF27MDL='96'.
   Thanks to Kevin Batty, EMC Engineering, USA.

Change 21.049  MXG Execution under unix at SAS with early ports of V9.1
AUTOEXEC       suggested revisions for MXG's IEBUPDTE program, and found
IEBUPDTE       a workaround for a unix SASAUTOS error that is now fixed:
Mar 21, 2003  -MXG's IEBUPDTE program (IEBUDPTE for ASCII) needed these
Apr 10, 2003   revisions to work under unix:
               - LENGTH MEMBER $200; was added, as that becomes the full
                 member plus path name and 50 was too short as default.
               - Only the PDS_MEMBER is lower cased; previously, the
                 full path and member were lowcased, but unix path names
                 can be mixed case.
               - The suffix "sas" in the member is now lower case, so
                 that the files do not have to be re-cased.
              -The OPTIONS SASAUTOS=(SOURCLIB SASAUTOS) statement in the
               MXG autoexec.sas file did not correctly work under unix:
                 SAS Note SN-000444 - SASAUTOS fileref is not
                      automatically generated on unix platforms.
               The SASAUTOS is required, because MXG uses the associated
               MAUTOSOURCE options so that %MACROs references (%ANALDB2R
               %VMXGSUM, etc) are automatically resolved. A workaround
                   OPTIONS SASAUTOS=(SOURCLIB,
                      %scan(%sysfunc(getoption(sasautos)),1,%str(())));
               was added in MXG's AUTOEXEC member in MXG 21.01, which
               works on both unix and Wintel SAS platforms, but in April
               SAS unix developers fixed the problem, so that syntax is
               not required, and was removed in MXG 21.02.
   Thanks to Jan Squillace, SAS Institute, USA.

Change 21.048  INFO: CHARACTER VARIABLES DEFAULTED TO LENGTH OF 200 are
TYPEVLFC       printed if OPTIONS MSGLEVEL='I' is in effect; this has
VMAC6          been documented since V6, and  occurs when a character
VMAC6156       variable is defined by a function, and the variable is
VMACCTLG       not in a LENGTH/ATTRIB statement (unless the function is
VMACEAGL       SUBSTR - then, the length of the first argument is used).
VMACTNG        The longer length has no MXG impact, but the seven cases
Mar 21, 2003   where the message was produced are now protected with the
               variables now in a LENGTH statement, just to eliminate
               that possibly confusing message:
                Member      Variable
                 VMAC6    - PR
                 VMAC6156 - SYSPAR61 (was SYSPARM, but renamed).
                 VMACCTLG - SYSPARCL (was SYSPARM, but renamed).
                 TYPEVLFC - HITPCT
                 VMACEAGL - IDS, MSGIDC
                 VMACTNG  - TEXT
   Thanks to Stephen Bell, Sparkassen Informatik, GERMANY.

Change 21.047  Format $MGCICCL (applied to variable A17DTTYP in dataset
VMAC119        CICFCR) adds values for K:CFDT CONTENTION MODEL and
Mar 20, 2003   L:CFDT LOCKING MODEL'.
   Thanks to Don Deese, Computer Management Sciences, USA.

Change 21.046  Support for SMF 119 APAR PQ71376, which changes TICONNID
VMAC119        and TTCONNID from $EBCDIC8 to $CHAR4 with $HEX8 format.
Mar 19, 2003   Originally the CONNID fields had jobname, which was not
               unique; now they contain the unique hex Connection ID.
               Variable TISUBTSK was removed; it never really existed.

Change 21.045  The (LABEL= SORTEDBY= _BYLIST) fails under Version 6, and
WEEKBLDT       works fine under Version 8, but the LABEL= was not fully
Mar 18, 2003   implemented, so it can be removed if you're under V6.  I
               intended to have (LABEL= _LABEL SORTEDBY=_BYLIST) and
               set MACRO _LABEL 'this is the dataset label' for each of
               the weekly and monthly datasets, but didn't do that yet.
   Thanks to Jesse Gonzalez, CSC - NASA, USA.

Change 21.044  Using R70MAX to add maximum to the TRNDRMFI dataset did
VMXGRMFI       not work, because the &R70MAX statement was left out of
Mar 18, 2003   the Trending part of VMXGRMFI, and because the doc was
               not clear: to use the &R7xMAX= macro to "add" variables,
               you must list all existing variables in the default list,
               and then add you new variables in your invocation.
   Thanks to Rick Mansfeldt, IBM Global Services, USA.

Change 21.043  Variables JHSUBT and JHEXCP are calculated, and JHRFLAG1
VMACESPH       and JHRFLAG2 are decoded into individual variables.
Mar 18, 2003
   Thanks to Jesse Gonzalez, The Gap, USA.

Change 21.042  Variables QPPCTNOW and QPPCTLOW, the percent buffers are
VMAC115        full now, and full lowest, are created in MQMBUFFER.
Mar 18, 2003

Change 21.041  Both members now tolerate the complete absence of input
ASUMCICS       datasets while still creating a 0 obs output dataset with
ASUMCICX       all variables labelled and formatted.  Additionally, some
Mar 14, 2003   variables that were only output in ASUMCICX are now also
               created by ASUMCICS.
   Thanks to Diane Eppestine, SBC, USA.

Change 21.040  New graph plots the Peak to Average Utilization ratio at
GRAFTRND       the SYSTEM SHIFT level; the peak value of the shift is
Mar 14, 2003   compared to the average for that shift and plotted on a
               range of 1 to 2 by .1.  If the ratio exceeds 2, it is set
               to 2.
   Thanks to Cheryl Watson, Watson & Walker, USA.

Change 21.039  Cosmetic. LABEL was missing for NDMCPUTM.
VMACNDM
Mar 12, 2003
   Thanks to Khoan Dang, MBNA, USA.

Change 21.038  Protection for WORD7 to be the last word eliminated NOTE:
VMACWWW        INVALID THIRD ARGUMENT TO FUNCTION SUBSTR when processing
Mar 11, 2003   a WebSphere HTTP log file.
   Thanks to Craig Collins, State of Wisconsin, USA.

Change 21.037  Documentation.  Thou shalt not use a RENAME= statement in
VMXGSUM        your OUTCODE= argument to %VMXGSUM that renames variables
Mar 11, 2003   that are in the SORTEDBY= list; thy %VMXGSUM will fail
               with ERROR: VARIABLE xxxxx NOT SORTED and
               and  ERROR: INVALID VALUE FOR THE SORTEDBY OPTION.
   Thanks to Khoan Dang, MBNA, USA.

Change 21.036 -RSDA AUDIT error message was printed even though AUDHEXZR
VMACRSDA       was zero; the test should have been 0000X (numeric) but
Mar 11, 2003   was incorrectly coded as '0000'X (character, so the test
               failed when AUDHEXZR was zero).
              -But then View Records (AUDACT=04) caused INPUT STATEMENT
               EXCEEDED message, because those records do not have the
               Folder Name segment that MXG expected; a test was added
               to see that the Folder Name segment is present.
   Thanks to Christa Neven, KBC BankVerzekeringsHolding, BELGIUM

Change 21.035  Using ASUMUOWT to combine TMON and DB2 data failed with
VMXGUOW        BY VARIABLES ARE NOT SORTED ON WORK.TEMPCICS because the
Mar 10, 2003   BY list in MACRO _SUOWTMO was not updated in VMXGUOW.
   Thanks to Tom Heaton, Texas Legislative Council, USA.

Change 21.034  Protection for missing STARTDTE was added; records with
VMACXCOM       only ENDDTE populated caused INVALID DATA FOR STARTDTE
Mar 10, 2003   message, but no actual impact on the output XCOMDATA.
   Thanks to Mark Williams, Marks & Spencer, ENGLAND.

Change 21.033  Additional AS/400 5.2 files LRECL have been validated and
VMACQACS       are listed in the comments in VMACQACS.  Minor cosmetic
Mar  7, 2003   changes were made to suppress INVALID DATA messages for
Mar 17, 2003   reserved packed fields.  The data files had been sent to
               MVS with incorrect LRECLs, and when those MVS files were
               ftp'd to me, I discovered Padded Bytes added to the last
               record of each file; the bytes are all hex zeros and they
               caused invalid data messages when PD fields were input.
               So MXG tests the INTNUM packed decimal field and prints a
               message "PAD RECORD FOUND AND DELETED _N_= nnnn" on the
               log.  As long as the _N_= value is the same as the xx in
               the SAS NOTE: xx RECORDS READ, then the delete record was
               comprised of these pad bytes and there was no error.
   Thanks to Brian Keller, ConAgra Foods, USA.

Change 21.031 -Tests for FTPSTART xx FTPEND and FTPEND xx SMFTM were
ANALTCP        incorrect as GE, and are changed to the correct GT, and
Mar  7, 2003   two output columns were shifted one position.
Mar 14, 2003  -A sort step was added, required only when PDB=SMF.
   Thanks to Matt Martin, USPS, USA
   Thanks to Craig Collins, State of Wisconsin, USA.

Change 21.030  Protection added for subtype 8 record with NRSEGS=295
VMACICE        (295*128 = 37760, which cannot fit in 32760 LRECL) while
Mar  7, 2003   reporting site contacts STK for a fix.

Change 21.029  MXG Newsletter FORTY cited APAR PQ56039, which supposedly
VMAC116        corrected invalid values for many of the MQMQUEUE fields,
Mar  7, 2003   in particular the WQMAXLAT and WQTOTLAT fields.  However,
               data records with very large values (168 hours plus) at
               one site, and "large values" at another site are still
               under investigation, which uncovered these unrelated
               changes:  The label for WQTOTUSE was corrected to be
               WQTOTUSE='TOTAL*API CALLS*USING THIS*QUEUE', and the test
               for the three PMS fields tests is LENWQ GE 588 instead of
               the old test for 592.

Change 21.028  Early V8-V9 comparisons were flawed because CONFIGV8 did
CONFIGV9       not collect statistics, but CONFIGV9 enabled these:
Mar  7, 2003    DLEXCPCOUNT FULLSTATS FULLSTIMER STIMER MEMRPT
               This change disables those statistics options in CONFIGV9
               so that you should NOT see any increase in CPU time when
               you install SAS V9 and use the same options as SAS V8.

Change 21.027  Mostly documentation.  When you are using a SAS View to
JCLUOWV        pass data from a data step to PROC SORT, SAS cannot give
Mar  6, 2003   the SORT the estimated record count (because SAS does not
               know the observation count of a view), and thus the SORT
               cannot be optimized in its choice of SORTKWs and memory.
               In these cases, for SYNCSORT, you can use the $ORTPARM DD
               to pass the size estimates to the sort program:
                 //$ORTPARM DD *
                  VSCORE=756K,VSCORET=512M,FILSZ=E40000000
               which tells SYNCSORT to use 756K below the line (fixed)
               and 512M total (fixed) storage, and the estimated record
               count to be sorted is 40,000,000 records.
                 Previously, SORTSIZE=40000000 was used, but SYNCSORT
                 now ignores SORTSIZE= and instead uses the syntax of
                 FILSZ=Ennnnnnnn.  The E is required; without it, SORT
                 fails if the record count is not exactly nnnnnnnn.
                 Similar parameters can be passed to DFSORT; if you
                 tell me that syntax, I'll update this note.
               But note that the //$ORTPARM parameters apply to EVERY
               sort in the job-step, so use with care, especially
               because the memory will be fixed.
               The change replaced SORTSIZE= with FILSZ=E.
   Thanks to Chuck Hopf, MBNA, USA.
   Thanks to Steve Dunn, Mainframe Performance Products Pty., AUSTRALIA

Change 21.026  Support for Control-T Release 6.0.0 (INCOMPATIBLE).  New
VMACCTLT       data fields were inserted, and the LRECL was increased to
Mar  6, 2003   600 bytes in their new version.  Instead of feed, you get
Mar 27, 2003   bytes compressed/uncompressed for volume and datasets.
              -Mar 26:  Support for Control-T Release 6.1.0 (INCOMPAT,
               because the LRECL was increased to 660 bytes, and MXG had
               only protected for 600 bytes.  Three fields were added to
               their volume record by 6.1.
   Thanks to Craig Collins, State of Wisconsin, USA.
   Thanks to Stefano Baldi, Phoenix Spa, ITALY.

Change 21.025  Documentation only.  The removal of Cross Memory Calls in
ASMTAPES       ML-27 MXGTMNT causes these variables to be missing in the
Mar  6, 2003   TYPETMNT and ASUMTAPE datasets:
                 DDNAME INITTIME JOBCLASS PGMRNAME PROCSTEP PROGRAM
                 RACFGRUP RACFTERM RACFUSER RDRTM READTIME STEPNAME
               and these variables to be missing in TYPETALO/ASUMTALO:
                 ALOCSTRT DDNAME STEPNR
                   (ALOCSTRT is commented in the ASM code and it appears
                    it has never been populated in the SMF record).
               Stay tuned for a new algorithm that will merge TYPETALO,
               TYPETMNT, TYPE1415, and TYPE30TD to not only populate the
               missing fields, but enhance tape mount analysis with new
               data as well.  Maybe by the end of third quarter.

               Note that the removal of Cross Memory calls was to solve
               problems caused by VTS mounts; if your site does NOT
               (yet!) have any VTS devices (or VTS-simulating-software)
               so that all of your tape mounts are real mounts that take
               real time, then you can still have the above variables
               populated by MXGTMNT program, by re-assembling ASMTAPES
               with the XMEM=YES parameter enables.

Change 21.024 -Support for TNG "Enterprise Cubes", which contain data
EXTNT007       from multiple servers, required structural revision of
EXTNT034       the code, which had expected a CAPMPCM Header record
EXTNT035       betweeen each system.  This redesign has been tested
FORMATS        with TNGVERS 6 data from multiple systems.
IMACTNG       -New NT object NETWORK SEGMENT creates new NT034 dataset.
VMACTNG       -New variables were added to existing SYSTEM object in
VMXGINIT       dataset NT018.
Mar  7, 2003  -Support for NT PROCESS Object creates new NT035 dataset
Mar 19, 2003   and a major design change, because each process instance
Mar 27, 2003   does not record all process metris: out of 327 process
Apr  1, 2003   name records, only 175 had PROCESSOR TIME metric records,
               but 324 had ID Process, and 326 had Page File records.
               MXG presumed TNG recorded all metrics for each instance,
               but now a new context-based array (NT035INM) maps each
               process name to its metrics's location (INSTLOC), instead
               of assuming a sequential INSTNR for each process metric.
              -The arrays to support process data can require large
               virtual storage if there are very many process names.
               With NT035I=2000, NT007I=999, and MAXROWS=325, TYPETNG
               required about 180MB of virtual storage! The MXG defaults
               of NT035I=500, NT007I=100, MAXROWS=288 needs REGION=64M.
              -TYPETNG will ABEND with USER 1111 if it finds more unique
               process names than your chosen NT035I=value permits.
              -EXTNT035 now only outputs observations that have non-zero
               value of % PROCESSOR TIME; most processes are idle and do
               not record any time.  There were 2,448,576 observations
               created when all process records were output, but only
               31,320 observations had and CPU.  That logic was located
               in EXTNT035 in case you ever think you want to output all
               observations.
              -The process records for the Idle and _Total process names
               both have % PROCESSOR TIME of 100, so they should be
               removed in your analysis of process utilizations.
              -EXTNT007 now only outputs observations that have non-zero
               value of Total Bytes, i.e., that had activity.
   Thanks to Peter Krijger, National Bank of New Zealand, NEW ZEALAND.

Change 21.023 -Messages SHORT XAMSYS SEG FOUND, DELETED.... were caused
VMACXAM        by incorrect subtraction in line 2275, which should be
Mar  5, 2003   SKIP=SKIP-20; instead of SKIP=SKIP-24;  The error occurs
Mar 12, 2003   only in records with MTRSYS length of 164 or greater.
Mar 16, 2003  -Support for SYTCPC (Channel Activity) creates new dataset
Apr 22, 2003   XAMSYCPC with Channel Busy array HFCHB0-HFCHB255 (where
               the CHPID is the array suffix, and the array is populated
               with NBUSY entries), and Channel Simultaneous Bussy Array
               HFCHSI0-HFCHSI50 (populated with NBUSYSIM).
              -Support for TCP data files creates many new datasets from
               Linux, NT, Sun systems, as well as from VM Monitor:
                   UCD - From UCD-SNMP or NET-SNMP
                   HST - From ANY SNMP DAEMON supporting HOST MIB
                   TCP - From either VM MONITOR RECORD FOR VM, or SNMP
                   FAL - From VM MONITOR RECORDS, exclusive to VM
                OTHERS - SUBNET, TCPCON, TCPAPP come from either FAL
                         or a "NETSTAT" interface.
               The datasets have been validated, but this is preliminary
               support, and variable names may change slightly as the
               data is better understood.
              -Additional XAMDEV variables, including RDEVSER, VOLSER,
               are now decoded.  Apr 22, 2003.
   Thanks to Rebecca Cates, Merrill Lynch, USA.
   Thanks to Tom White, SPRINT, USA.

Change 21.022  All daily PDB datasets that are created in the JCLPDB8
WEEKBLD        example JCL are now copied into the WEEKLY PDB in the
WEEKBLDT       example WEEKBLD/WEEKBLDT members.  Most datasets were
WEEKBL3        copied into the weekly PDB, but many new datasets were
WEEKBL3T       created by BUILDPDB/BUILDPD3 that were not also copied
Mar  5, 2003   into the weekly that now are.
               Yes, this change could cause a perfectly good weekly MXG
               job to ABEND with an out of space condition, but that, I
               decided, was less painful than discovering later that the
               data you thought was in the weekly wasn't!
   Thanks to Ronald Lundy, AHOLD, USA.

Change 21.021  The Active Server Pages object's INPUT statement has been
VMACNTSM       incorrect, at least since NTSMF 2.2.2. ASMEMALO no longer
Mar  5, 2003   exists, and a DUMMYFLD was inserted after ASTMCAHT in the
               logic for NRDATA=34 for the ACTVSRVR dataset.
   Thanks to Chris Morgan, UFI, ENGLAND.

Change 21.020  Relocated the VMXGOPTR call that resets OBS= value to
VMXGSUM        earlier; if KEEPALL=NO and the first data step bypassed,
Mar  4, 2003   and you had changed OBS= to a small value, the original
               location was too late.  Seen only in unrelated test runs,
               has been that way for a long time and never reported, but
               is now corrected.

Change 21.019  Oracle variable ASID was not input and ELAPSTM was not
VMACORAC       created for Release 8.  Several variables no longer are
Mar  1, 2003   created in the Oracle SMF record with that release, and
Mar 13, 2003   will always have missing values:
                 CPUCICTM CPUSRBTM CPUTCBTM CPUTIMER DDLCOMIT DDLROLLS
                 ENDSRB   ENDTCB   ORACMSB  PCCOUNT  STRTSRB  STRTTCB
              -Cosmetic.  Text in labels had misspelled OSDI as ODSI and
               OSID are now all OSDI.
   Thanks to Forrest Nielson, State of Utah, USA.
   Thanks to Marvin Wapnitsky, TIAA-CREF, USA.


Change 21.018  Support for Domino Server Release 6.0.0 added five new
IMAC108        HTTP-related variables to the Subtype 1 record that are
VMAC108        now output in dataset TYPE1081:
Mar  1, 2003      DOMCACOM='DOMINO*CACHE*COMMAND*COUNT'
                  DOMCADES='DOMINO*CACHE*DESIGN*COUNT'
                  DOMCAREQ='DOMINO*CACHE*REQUESTS*TOTAL'
                  DOMCASES='DOMINO*CACHE*SESSION*COUNT'
                  DOMCAUSR='DOMINO*CACHE*USER*COUNT'
               Their existence was found in APAR PQ70810, which added
               the fields to IBM's TIVOLI product; that is what alerted
               me that there was a new Domino version to support.

Change 21.017  For devices with IORATE=0, variable DEVIOQTM was carried
VMAC74         from the preceding device that had non-zero IORATE.   The
Feb 28, 2003   missing DEVIOQTM=.; statement was inserted where it
               should have been, after the AVGIOQMS=.; statement.
   Thanks to Barry McQueen, Department of Defence, AUSTRALIA.

Change 21.016  Several "Wdddddd" macro variables were incorrectly %LET
VMXGINIT       to &DEFAULT instead of &MXGWORK: all for VMACLDMS and for
Feb 27, 2003   VMACMIM were wrong, as were two for VMACTAND.  This only
               surfaced as an actual error if you used the USER= option.
   Thanks to Ken Kelso, National Australia Group, SCOTLAND.

Change 21.015  Using %ANALDB2R(PDB=SMF); to get the default set of DB2
ANALDB2R       reports failed with 76-322 and other strange errors, due
READDB2        to changes made to READDB2 by Change 20.233.  The READDB2
Feb 27, 2003   calling logic in ANALDB2R was corrected.  However, using
                %ANALDB2R(PDB=SMF,IFCIDS=ACCOUNT);
               will circumvent the error.
              -READDB2 now detects that it was invoked without arguments
               and gracefully reports that error.
              -IFCIDS=ALL is now recognized.
   Thanks to D. J. Chen, State of Florida, USA.

Change 21.014  More than one type 6 ESS '0031'x USERDATA segment was not
IMAC6ESS       expected, causing INPUT STATEMENT EXCEEDED if comments in
VMAC6          IMAC6ESS were opened.  Multiple USERDATA now supported.
Feb 23, 2003
   Thanks to Ricke Godehard, Itellium, GERMANY

Change 21.013 -INVALID DATA messages reading QAPMDISK file because of
VMACQACS       ELSE INPUT INPUT in lines 3984 and 3985.  Remove one.
Feb 22, 2003  -Variable DSASPN 'ASP RESOURCE NAME' was not kept and was
Mar  5, 2003   not labeled, but now it is.
   Thanks to Paul E. Bennett, JPMorganChase, ENGLAND.

Change 21.012  The MNTH72GO example still had PERFGRP and PERFRPGN where
MNTH72GO       it should have had SRVCLASS and RPRTCLAS
Feb 22, 2003
   Thanks to Mike Kynch, International Paper, USA.

Taught the first tuition-free three-day class in Dallas to 64 students.

Change 21.011  The format MGSASPR had PARETO misspelled, and had several
FORMATS        procedure names that were longer than 8 characters that
Feb 18, 2003   are now truncated to 8 bytes so they will match the name
               in the TYPESASU dataset (from the SAS user SMF record).
               And SETINIT (BASE) was added to the list of procs.
   Thanks to Tom White, SPRINT, USA.

Change 21.010  SMF 42 offsets for subtype 20 and 21 are incorrect in the
VMAC42         z/OS SMF manual, but (without test records), I believed
Feb 17, 2003   the manual.  Offsets for SMF42KN1 thru SMF42KN3 and for
               SMF42LN1 thru SMF42LN6 should have started at decimal 36,
               but the manual showed them starting at dec 52 and dec 60.
               MXG printed error messages, but the job did not fail, but
               it did not output those subtypes, either!
               But the subtype 21 records that are only 176 bytes long
               have invalid offset SMF42LN4 (177) and number of SMF42LN6
               (1) for the Alias Names Deleted in Sympathy segments,
               causing MXG to print an error message.  It's not clear if
               there were Alias names that were not written, or whether
               the offset/number should have indicated there were no
               Alias names in the record. This will be purusued with IBM
               but this Change does correctly populate TYPE4221 dataset.
   Thanks to Karl Lasecki, Chemical Abstracts Service, USA.

Change 21.009  Symbolic parameter WORKVOL= is added to the MXGSASV8 JCL
MXGSASV8       procedure, defaulting to 5 volumes, and the WORK= parm
Feb 12, 2003   is (200,200) in CYL.  SAS only allocates what it needs,
               but this will reduce the probability of B37 ABENDS for
               new users.

Change 21.008  Documentation.  TYPE70PR PR/SM data for IFL Linux LPARs
VMAC7072       are not identified as such: they have SMF70CIN='ICF', so
Feb 12, 2003   you can't tell an IFL from an ICF partition, so you must
               use a table lookup of LPARNAME to select the Linux LPARs
               from PDB.TYPE70PR.  And only LCPUPDTM is non-zero; the
               LCPUEDTM is always zero.
   Thanks to Tony Steward, Royal Mail, ENGLAND.

Change 21.007  PCHANBY is missing for SMF73ACR='CBP/CBS/CFP/CFS/ICP'
VMAC73         Channels.  Originally corrected by Change 20.096, that
Feb 12, 2003   was overridden in Change 20.172, which reset it missing.
Feb 17, 2003   The initialization to prevent carry forward was moved to
               above the PCHANBY calculations.
   Thanks to John Gebert, Office Depot, USA.

Change 21.006  Negative values in DB2STATB variables occurred when a DB2
VMACDB2        subsystem was stopped and started, and the first record
Feb 11, 2003   after the start had QWHSISEQ=4, but MXG expected first
               record to have QWHSISEQ=1.  MXG's test to recognize start
               was revised to also test SEQCHECK GT 0 or ISEQ=1.  This
               may be an IBM error, but the MXG circumvention should be
               sufficient.
   Thanks to Tony Steward, Royal Mail, ENGLAND.

Change 21.005  Cosmetic.  The INVALID DEVICE messages now include the
VMACEXC2       PROGRAM name, making it easier to identify if they are
Feb 11, 2003   coming from the same program.
   Thanks to Paolo Uguccioni, UNICREDIT, ITALY.

Change 21.004  ML-28 corrects an 0C4 in ML-27 that occurred only with
ASMTAPES       the //EXCLUDE DD, and only if the tape drive with the
Feb 11, 2003   highest DEVNR was excluded.  Trivial to fix once seen,
Feb 17, 2003   hard to include in all combinations of our testing.
   Thanks to Anthony A. Ziegler, UMB, USA.

Change 21.003  Variable R791FMCT should have been multiplied by 4096 to
VMAC79         convert from frame count to bytes, which will be printed
Feb 11, 2003   as nnnnKB/MB/GB; the variable is formated with MGBYTES.
   Thanks to Tom Draeger, Aurora Health Care, USA.

Change 21.002  Major enhancements to MXG processing of RMF III VSAM data
ASMRMFV        includes revisions to the ASMRMFV assembly program, the
CLRMFV         new CLRMFV CLIST member that will read all of your RMF
DOCLRMFV       III VSAM files on all your system in one job (since you
Feb 13, 2003   cannot concatenate VSAM, and member DOCLRMFV to document
Feb 18, 2003   the CLRMFV CLIST, and provides JCL examples of how to
               use CLRMFV and ASMRMFV (which will create the RMFBSAM
               file that is then read with MXG's TYPERMFV to create all
               of the MXG RMF III datasets).  Enhancements in ASMRMFV:
              -Minimum and maximum LRECL output is now reported for each
               RMF III Table/Header.
              -Total Displays restructured to combine selection, input,
               output records written/skipped and output LRECL min/max.
              -CC=4 set when input records are skipped due to exceeding
               32756 LRECL or decompression errors; previous CC was 0.
              -Messages show FROM=/TO= keyword selection Time Stamps in
               Date/Time Format for each RMF III data set processed.
              -Messages show FIRST/LAST Sample Set Time Stamps
              -Messages assigned RMFVNNN with I=INFO,W=WARN,E=ERROR, and
               S=SEVERE ERROR suffixes.
              -Major performance improvement with Selection: entire RMF
               VSAM dataset is skipped if Data Set Header FIRST/LAST
               shows all sample sets are outside FROM=/TO= keywork.
              -Minor performance improvement: entire Sample Set bypassed
               if FIRST/LAST header is outside FROM/TO keyword range.
              -Table access validated by comparing eyecatcher.
              -If a specific table exceeds maximum LRECL, next table is
               processed; previously, remainder of this sample set was
               abandoned.
              -Internal ASM improvements; counters that used fullword
               Register to Storage arithmetic instructions replaced with
               Load Address or Branch on Count Register instructions.
              -Improved documentation in the program prologue.
              -Tables that are not processed by TYPERMFV (because no one
               has needed them)are skipped by ASMRMFV and documented.
              -Performance: processing 7 LPARs with 44 RMF III datsets
               (a total of 308) in a single job reduced Elapsed Time,
               CPU Time, and EXCP count by 70%
              -CLRMFV is run in batch and repetitively calls ASMRMFV
               for each RMF Monitor III dataset it finds, making ASMRMFV
               truly useful for bulk processing; without this CLIST a
               separate job step must be used for ASMRMFV, since VSAM
               does not support concatenation.
               The code, CLIST, and documentation were all written by
               and contributed to MXG by Jerry.
              -Feb 18: Use PGM=IKJEFT01 instead of PGM=IKJEFT1B, doc'd
               in member DOCLRMFV.  ASMRMFV now recognizes FROM= and/or
               TO= keywords for filtering.
   Thanks to Jerry Urbaniak, Acxiom CDC, USA.

Change 21.001  Archaic report example member ANALCICS caused V8 to 0C4
ANALCICS       ABEND in module VXBSM doing the autocall for %VMXGFOR,
Feb  8, 2003   now removed by MXG Change 20.327, but the cause was the
               old OPTIONS SASAUTOS=(SOURCLIB SASAUTOS) statement in the
               ANALCICS member, which as been unneeded for years, and
               now removed, as MXG sets SASAUTOS at MXG Initialization.
               But SAS had documented this problem before: "It is not
               advisable to change SASAUTOS during a SAS session.  If
               you change the SASAUTOS= specification in an ongoing SAS
               session, the SAS System will store the new specification
               only until you invoke an uncompiled autocall macro, and
               then SAS will close all opened libraries, and open all
               the newly specified libraries that it can open."

LASTCHANGE: Version 21.