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

CHANGE 27.27



        MXG Version 27.27  is dated Jan 20, 2010, thru Change 27.361
        MXG Version 27.27  is the   2010 "Annual Version".
        MXG Newsletter FIFTY-FIVE is  dated Jan 20, 2010
        MXG Version 27.11  is dated Dec 31, 2009, thru Change 27.337
        MXG Version 27.10  is dated Dec  6, 2009, thru Change 27.325
        MXG Version 27.09 was dated Oct 14, 2009, thru Change 27.283
        MXG Version 27.08 was dated Sep  1, 2009, thru Change 27.229
        MXG Version 27.07 was dated Aug 11, 2009, thru Change 27.195
        MXG Newsletter FIFTY-FOUR is  dated Aug 10, 2009
        MXG Version 27.06 was dated Jul 20, 2009, thru Change 27.167
        MXG Version 27.05 was dated Jun 29, 2009, thru Change 27.145
        MXG Version 27.04 was dated May 27, 2009, thru Change 27.107
        MXG Version 27.03 was dated May  4, 2009, thru Change 27.083
        MXG Version 27.02 was dated Apr 13, 2009, thru Change 27.066
        MXG Version 27.01 was dated Mar 17, 2009, thru Change 27.042
        MXG Version 26.26 was dated Feb 12, 2009, thru Change 26.326
        MXG Version 26.26 was the    2009 "Annual Version".
        MXG Newsletter FIFTY-THREE was dated Feb  3, 2009

Instructions for ftp download can be requested by using this form:
  http://www.mxg.com/ship_current_version
Your download instructions will be sent via return email.

Contents of member CHANGES:

I.    Current MXG Software Version 27.27 is available upon request.
II.   SAS Version requirement information.
III.  WPS Version requirement information.
IV.   MXG Version Required for Hardware, Operating System Release, etc.
V.    Incompatibilities and Installation of MXG 27.27.
VI.   Online Documentation of MXG Software.
VII.  Changes Log

  Member NEWSLTRS contains Technical Notes, especially APARs of interest
  and is updated with new notes frequently.  All Newsletters are online
  at http://www.mxg.com in the "Newsletters" frame.

  Member CHANGES contains the changes made in the current MXG version.
  Member CHANGESS contains all changes that have ever been made to MXG.
  All MXG changes are also online at http://www.mxg.com, in "Changes".

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


I.  MXG Version 27.27 dated Jan  20, 2010, thru Change 27.361.

    MXG Version 27.27 is the "Annual Version" for 2010.

    Major enhancements added in MXG 27.27, dated Jan 20, 2010

  VMXGCNFG 27.356  The standard SAS JCL Proc can be used for MXG.
                 // EXEC SAS,CONFIG='MXG.SOURCLIB(CONFIMXG)'
                 //MXGNAMES DD DSN=MXG.USERID(MXGNAMES),DISP=SHR
  TYPE112  27.358  Support for OMEGAMON ONDV SMF 112 SUBTYPE 0100X
  TYPEEDGR 27.349  Support for RMM APAR OA28930, RDBLKCNT/RDTOTAL.
  TYPEEDGR 27.349  Support for RMM APAR OA24025  RDDESKEY.
  TYPEEDGR 27.339  RVTxERR RVPxERR variables now numeric, incompatible.
  TYPE1415 27.361  MXG 27.06-27.11.  BUFNO always zero due to typo.
  TYPESRMH 27.340  SRM Thales Security PTF SL24010 INCOMPATIBLE support.
  VGETDDS  27.359  WAIT=N option protects for DSNAME already in use.
  VGETDDS  27.330  New DATEJUL= correctly generates julian dsnames.
  VMXGALOC 27.355  NOWAIT added, create/allocates are now conditional.
  READDB2  27.351  READDB2 didn't always invoke its EXdddddd members.
  TYPE80A  27.357  TYPE8066 dataset enhanced.
  TYPETMVT 27.347  TMON/VTAM "SI" record Interval variables now INPUT.
  ANAL307X 27.346  Analysis compares Hourly CPU in 70, 72, 30 interval.
  JCLCIDB2 27.345  UTILBLDP JCL example for CICS, DB2, and ASUMUOW+.
  ASUM70PR 27.344  Variables LPCTBY/PCTLPBY missing for PHYSICAL LPAR.
  VMXGSET  27.343  VMXGSET permits multiple datasets with APPEND=YES.
  VMACSMF  27.341  WARNING: SUBTYPE GT 255 message now not defaulted.
  TYPEIMSA 27.354  MXGNOTE now prints the value of _IMSVERS on the log.

    Major enhancements added in MXG 27.11, dated Dec 31, 2009

  EXPDBINC 27.334  MXG 27.10 ONLY. %UTILBLDP option USERADD= fails.
                   (Must remove &EPDBINC from EXPDBINC if you used the
                   %UTILBLDP to create your BUILDPDB source SYSIN code.)

  TYPETMNT 27.336  SYSLOG message text size increased to 32384 bytes.
  ANALRMFR 27.333  RMF Summary Report (REPORT=SMRY) was incorrect.
  ANALJOBE 27.332  Analysis of Job Events revised, JESNR test removed.
  TYPE80A  27.331  Protection for unknown TOKDANAM eliminates STOPOVER.
  TYPE82   27.330  SMF82PDK, SMF82RKN, SMF82PTA increased, corrected.
  TYPE110  27.329  MXG 27.10, CICIDNNR NOT FOUND, only if _S110ST used.
  ASUMMIPS 27.327  DUR70 created with actual vs expected DURATM.
  TYPEDB2  27.326  Variable QDSTQCIT now not deaccumulated.

    Major enhancements added in MXG 27.10, dated Dec  6, 2009

  TYPE0    27.325  Updated Support for z/OS 1.11, ID=0 now supported.
  TYPECDC  27.324  Support for IBM's InfoSphere Change Data Capture CDC
  TYPEDB2  27.319  Support for QMDAPTYP='JCC' (Type 4 JDBC Driver).
  TYPE7072 27.317  Support for APAR OA28670 RMF 70 Crypto Express3
  VMACORAL 27.306  Support for restructured ORACLE SMF records.
  TYPESYNC 27.289  Support for CPUZIPTM added in SYNCSORT SMF records.
  READDB2  27.322  IFCIDS= features (STATS, DB2ACCT, Dataset Name, etc)
  MRGDB2   27.321  MERGE of PDB.DB2ACCT and PDB.DB2ACCTP for DB2PARTY
  JCL40GIG 27.316  JCL example to split/parallelize BUILDPDB job.
  VGETDDS  27.310  New DATEJUL= created DSNAMES with Julian YYYDDD.
  VMXGDUR  23.308  SYNC59-NO/VMXGDUR/VMXGSUM (final?) enhancements.
  ASUMMIPS 27.305  ASUMMIPS now inflates MSU by system CAPTURE RATIO.
  TYPE110  27.303  CICS Total I/O and Total Other Wait updates.
  ALOCGOVO 27.299  Allocate GDG's with GOOVOO to minimize DSENQUEUE.
  TYPETIMS 27.298  Expensive algorithm to uncompress ASG/Landmark data.
  TYPENTSM 27.312  MXG 27.09 only. NTSMF Processing failed, RECFM.
  DAILYDSx 27.287  MXG 27.09 only.  TMC= should have been TAPEDATA=.
  TYPE74   27.287  MXG 27.09 only.  DEBUGGING PUT statement removed.
  CONFIGxx 27.294  MXG 27.08-27.09 only. Option MAUTOLOCDISPLAY removed.
  TYPEPROS 27.295  PRO/SMS SMF record misalignment corrected.
  ASUM70PR 27.294  IFL obs in ASUM70LP/ASUMCELP missing STARTIME fixed.
  ASUM70PR 27.292  First LPAR had missing values in LPSHAR/TOTSHARE.
  TYPE42   27.291  Variable S42DSRDD incorrect by factor of 10**6.
  ASMTAPEE 27.300  ASMTAPE ML-45 enhancements to TMNTnnnn messages.

    Major enhancements added in MXG 27.09, dated Oct 14, 2009

  TYPE110  27.260  TRANSPARENT UNCOMPRESS OF CICS/TS 3.2 RECORDS!!!
                   This means you do NOT have to assemble and install
                   the EXITCICS "infile" exit.
                    HOWEVER: VERY EXPENSIVE COMPARED TO EXITCICS.
                             SEE THE TEXT OF THE UPDATED CHANGE.

  MANY     27.277  Support for USER=DDNAME, "WORK" now "&MXGWORK".
  TYPE110  27.274  SORT Order for CICFCR changed, A17DSIXP/DTRDS fixed.
  CICINTRV 27.274  CICS DISPATCH INTERVAL LARGER THAN INTERVAL fixed.
  READDB2  27.272  READDB2 support for WANTONLY now works.
  TYPE110  27.270  CICS STID=115 should not exist.
  ASUM70GO 27.268  Example summarizes PDB.TYPE72GO, changing interval.
  TYPEVMXA 27.264  z/VM MONWRITE example processes only USER domain.
  TYPE74   27.263  R744FNAM not in TYPE74DU, ITRM sites need update.
  ASUMMIPS 27.262  MSU/MIPS for zIIPs and zAAPs added to CPs summary.
  TYPE120  27.255  WAS SMF1209FI/EV (CPU/Elapsed Times) corrected.
  RMFINTRV 27.252  Format missing for many duration variables, fixed.
  TYPEEDGR 27.251  RMM Dates - American/Euro/ISO/Julian - all supported.
  TYPETMDB 27.259  Support for TMON for DB2 BA/BJ/BK/BL/BM subtypes.
  TYPEACF2 27.258  Support for Subtype 'O' OPENEDITION record.
  TYPEQACS 27.256  Support for QACSLPAR dataset.
  TYPE120  27.255  SM1209 RETAINED, SM1209FI/EV corrected.
  RMFINTRV 27.252  Formats for durations added.
  TYPEEDGR 27.251  Support for all four RMM Date Formats
  TYPE80A  27.250  Protection for UNKNOWN TOKDANAM and RDEFINE CFIELD.
  TYPE74   27.249  R747PAVG AVERGAGE FRAME PACING matches RMF report.
  VGETDDS  27.248  Logic revised when DDNAMES= syntax is used.
  TYPEHBUF 27.247  FLAG1 tests for HyperBuf optional segments revised.
  DAILYDSN 27.246  Variables DSN DSNBACTV STPNAME had UNINIT messages.
  GRAFWRKX 27.245  zIIPs and zAAPs added to SAS/GRAPH hourly workloads.
  TYPE110  27.245  OTRANNUM right with IMACEXCL, wrong in VMAC110.
  FORMATS  27.243  OPTIONS NOCHARCODE reset at end of FORMATS.
  TYPE80A  27.241  RACFEVNT=79 EXTLNTYP=379 INPUT EXCEEDED error.
  WPS      27.239  WPS 2.4 GA has been tested, requires MXG 27.09.
  ANALDB2R 27.238  AUDIT report revisions, reduced processing time.
  VGETOBS  27.237  Enhancement if no DDNAME argument.
  TYPE116  27.235  Six datetimes are now converted to LOCAL, were GMT.
  VMXGSUM  27.234  Revision to eliminate OUTCODE= argument sometimes.
  TYPEDB2  27.232  TMON/DB2 created SMF 101 St 0 OFFQLAC invalid.
  TYPECIMS 27.230  Variable LASTCLAS in IMF CIMSPROG incorrectly INPUT.

    Major enhancements added in MXG 27.08, dated Sep  1, 2009

  Several  27.229  Support for z/OS 1.11, COMPATIBLE, except for ID=0.
  TYPE110  27.200  Support for CICS/TS 4.1 GA additions, new stats.
  BUILDPDB 27.213  HFS/zFS EXCPS are in EXCPTOTL, new USSEXCPS count.
  TYPENDM  27.222  Support for NDM-CDI NDMRTYPE 'SC' and 'S2' subtype.
  TYPEOSEM 27.221  Support for zOSEM Operating System Environment Mgr.
  TYPE16   27.211  Support for new z/OS 1.10 DFSORT variables.
  ANALDB2T 27.223  New "Top" DB2 Report ranks resource for corr,auth id.
  ANALCNCR 27.220  MXG 27.06-27.07. Failed if multiple INDATA= datasets.
  ANALCNCR 27.203  PDB.ASUMTALO had too few obs due to ANALCNCR error.
  ASUMTALO 27.203  PDB.ASUMTALO had too few obs due to ANALCNCR error.
  RMFINTRV 27.218  SMF70LAC was maximum value rather than average.
  RMFINTRV 27.214  RMFINTRV STARTIME could be early by an interval unit.
  ASUM70PR 27.214  ASUM70PR STARTIME could be early by an interval unit.
  TYPE7072 27.217  Blank SMF70CIN in PDB.TYPE70PR if last LPAR offline.
  TYPEXAM  27.216  Variable SYTLPNAM restored kept in XAMSYT dataset.
  TYPETMO2 27.215  TMON/CICS Version 3.1 INPUT EXCEEDED on 'TI' record.
  TYPEDCOL 27.212  Support for APAR OA30006, 8-byte DCOLDSET fields.
  TYPETMDB 27.209  TMON/DB2 BF record SQL text BF0142RL corrected.
  TYPEDB2  27.207  MXG 27.07. QSSTCONT,QSSTCRIT re-de-accumulated.
  TYPE92   27.204  Change 27.154 did not correct missing path section.
  ANALRMFR 27.198  ANALRMFR wrote TYPE7xxx to //PDB with PDBOUT= null.
  TYPE85   27.196  Heuristic in Change 27.138 did not correct EXCEEDED.
  VMXGDUR  27.214  New FLORCEIL=FLOOR/CEIL argument for begin/end calc.
  VMXGDUR  27.214  SYNC59=YES default with FLOOR, always safe.
  BUILDPDB 27.220  MSOUNITS,SERVICE corrected to always be LENGTH 8.

    Major enhancements added in MXG 27.07, dated Aug 11, 2009

  TYPEIOO  27.189  Support for Serena's StarTool IOO Product SMF.
  TYPENTSM 27.184  Support for 13 VMWARE objects captured by NTSMF.
  READDB2  27.169  MXG 27.04-27.06. T102Snnn datasets had zero obs.
  ASUMTAPE 27.181  Support for VOLSER='SCRTCH' from MXGTMNT monitor.
  TYPENMON 27.180  Support for CPU_PHYSICAL,CPU_ENTITLED TOPAS objects.
  TYPEITRF 27.177  Variable RECTOK was truncated to 12 bytes.
  TYPECIMS 27.176  Support for IMF 4.4 was incorrect for TRNxxxxx vars.
  TYPECIMS 27.176  BMC PTF BQI0695 corrects overlaid DBD segments.
  TYPEDB2  27.17x  Corrected, misspelled DB2 variables.
  ANALDB2R 27.172  Many tests IF x NE 0 replaced with IF x GT 0.
  ASUM70PR 27.178  Summary STARTIME now exact, based on SMF70GIE-DURATM.
  RMFINTRV 27.178  Summary STARTIME now exact, based on SMF70GIE-DURATM.

    Major enhancements added in MXG 27.06, dated Jul 20, 2009

  TYPE102  27.162  Support BMC APPTUNE SQL SMF 102 IFCIDs 8004x-8136x
  TYPEDB2  27.158  Support for UIFCIDS=YES, all "%U" DB2 fields revised.
  TYPEVMXA 27.156  Support for z/VM 6.1.0 in MXG 27.01+; no new data.
  TYPE1415 27.148  Support for APAR OA29428, identifies who closed file.
  TYPE7072 27.149  Labels for Counts of ZIP, IFA, CPs, clarified.
  TYPE42   27.155  Type 42-16 STOPOVER, 42-21/24 ICHRUTKN protect, APAR.
  TYPE92   27.154  Variable SMF92PPN blank in TYPE9201, was not INPUT.
  TYPE119  27.153  Variable NTBTRNBE input now as count and not a time.
  ANALZPCR 27.147  SCP too short for z/OS 1.10, wrong if multiple SCPs.
  TYPEDCOL 27.152  MXG 27.01-27.05. DCOLLECT UBALLSP is missing value.
  TYPEXAM  27.151  XAM TCP record INPUT STATEMENT EXCEEDED error.

    Major enhancements added in MXG 27.05, dated Jun 29, 2009

  TYPE30   27.122  Support for APAR OA26832 expands Service Unit fields.
  TYPERMVF 27.120  RMF III z/OS 1.10 new ASI fields (INCOMPATIBLE).
  MXGSASxx 27.108  &NULLPDB &LOAD &SASAUTOS symbolics REMOVED from JCL.
  ANALDB2R 27.131  DB2PM-like STATISTICS LONG report MAJOR updates.
  ANALZIPU 27.137  Analysis of zIIP used by JOB/PROGRAM/SRVCLASS etc.
  TYPETMMQ 27.145  Support for TMON for MQ record 'QA' (APPLICATION).
  TYPEQACS 27.134  More updates for IBM i, i5/OS, iSeries a/k/a AS400.
  TYPECTLL 27.129  Updates for CONTROL-D TYPE C User SMF record.
  JCLDAYDS 27.127  Support for CONTROL-T for "daily dataset billing".
  VMXGOPTR 27.124  Macro TRIM() function removed from VMXGOPTR.
  ASUM70PR 27.132  Revisions for missing values if IFL is last LPARNUM.
  TYPE1415 27.116  Non-zero JFCB BLKSIZE set to zero if SMF14LBS=0.
  TYPETMS5 27.111  New TMSLIB variable, support for multiple TMS cats.
  MXGWPSV2 27.110  Circumventions support MXG execution under WPS 2.3.5.
  COMPALL  27.109  Comparison of COMPALL under SAS and WPS.

    Major enhancements added in MXG 27.04, dated May 27, 2009

  This Version updates lots of DB2 stuff; the IFCID=225 variables are
  now added to PDB.DB2STATS, so that one dataset now has all of the
  DB2 Statistics variables from DB2STAT0, DB2STAT1, and DB2STAT4, and
  for DB2 V8 sites, you can also tell MXG to add the T102S225 variables
  to the PDB.DB2STATS dataset. See Change 27.097 text.
  And READDB2 was revised to match its documentation, and to read only
  the records that are needed for the IFCIDS= selection.

  READDB2  27.097  Redesign IFCID=225 (DB2STAT4,T102S225) processing
  TYPEDB2  27.097  Redesign IFCID=225 (DB2STAT4,T102S225) processing
  TYPEDB2  27.086  Some DB2STATS QISE variables incorrectly deaccum'd.
  IMACICOB 27.099  Optional Omegamon DB2 CICS/TS 3.2 times were wrong.
  TYPE119  27.106  Support for z/OS 1.10 storage metrics in SMF 119.
  TYPECIMS 27.107  Support for BMC'S IMF 4.4 (COMPATIBLE).
  TYPEACF2 27.105  ACF2VR dataset enhanced, DB2 activity identification.
  TYPE7072 27.089  Support for TYPE 72 Resource Delay Type Names R723RNx
  TYPEBVIR 27.088  Support for TS7700/BVIR Microcode 1.5.
  TYPEBVIR 27.104  BVIR TS7700 GMT times can be user-changed to LOCAL.
  VMXGDUR  27.103  New INTERVAL=THREEMIN or TWOMIN are supported.
  TYPE70PR 27.102  27.02-27.03. PARTNCPU missing, if last LPAR not z/OS.
  TYPERMFV 27.100  RMF III ZRBLCP dataset "trashed" with z/OS 1.10 data.
  TYPENMON 27.096  Nigel's Monitor MEM Object supported.
  TYPETPMX 27.093  TYPETPMX variable JESNR now 7-digits, was 5 digits.
  VMXGOPTR 27.092  SAS V8-ONLY: OVERFLOW HAS OCCURRED after SUMSTATB
  VMXGOPTR 27.092  SAS V9.2-ONLY: NO MATCHING %IF FOR %THEN.
  TYPETMO2 27.091  ASG TMON/CICS variables WTSCWTTM,WTSCWTCN reversed.
  TYPENMON 27.087  NMONBBBP blank values and wrong labels corrected.
  TYPEOMCI 27.085  ONDV datasets from subtype 203 had blanks for xTRAN.
  VGETDDS  27.083  Concatenate PDB libs, dynamically allocate them.

    Major enhancements added in MXG 27.03, dated May  4, 2009

  ASUM70PR 27.076  ASUM70PR enhancement adds zIIP, zAAP, and IFLs plus.
  ASUM70PR 27.074  Group Capacity ASUM70GC/GL wrong if multiple SYSTEMS.
  TYPE83   27.067  Support for LDAP Auditing ID=83 Subtype=3 SMF record.
  TYPEIMS7 27.078  Support for IMS Log 45X Interval Statistics record.
  TYPEIMSA 27.078  Support for IMS Log 45X Interval Statistics record.
  TYPEIMFL 27.078  Support for IMF+IMS 45X Interval Statistics record.
  TYPEDCOL 27.082  Support for z/OS 1.10 DCDOVERA 32-bit already in MXG.
  TYPE113  27.081  Support for APAR OA27623, CPU Speed, SM1132SP, added.
  TYPENMON 27.080  Protection for inconsistent NMON data counters.
  TYPEBVIR 27.077  BVIR variable GLIBSEQN can be ASCII or EBCDIC.
  TYPESTC  27.072  VTCS subtypes of STC/STK USER SMF record updated.
  VMXGSUM  27.071  VMXGSUM-using programs support DROPed variables.
  TYPEXAM  27.070  Variable DESCR truncated in XMHSTMEM, changed.
  TYPEULTM 27.069  Serena's Ultimizer user MV moved subtype location.
  IMACICDU 27.068  Optional USERCHAR in CICSTRAN was limited to 200.
  TYPE77   27.066  "Owner" variables incorrectly labeled as "Current".

    Major enhancements added in MXG 27.02, dated Apr 13, 2009

                   Errors (Only in MXG 27.01) corrected in 27.02:
  TYPEDCOL 27.057  MXG 27.01 ONLY. DCOLVOLS sizes WRONG by 1024 factor.
  TYPE42   27.054  MXG 27.01 ONLY. STARTIME/ENDTIME/etc missing value.
    Enhancements:
  TYPE42   27.062  VSAM RLS "ABOVE THE BAR" statistics, & APAR OA25559.
  TYPEEDGR 27.046  Major updates for RMM/EDGHSKP D,V,X records.
  TYPEDCOL 27.047  Support for EAV (large volumes) final correction.
  TYPECTCD 27.056  Support for Control-D "Decollating" SMF record.
  TYPE102  27.059  Some SMF 102 IFCID=108 variables were not INPUT.
  VMACSMF  27.058  SMF SUBTYPE GT 255 for BMC CICS subtype 2818/47874.
  TYPEHURN 27.055  OBJECTSTAR Subtype 13 INPUT STATEMENT EXCEEDED error.
  TYPE110  27.053  CICS SMF 110 Statistics STID=108 skipped data.
  ANALDB2R 27.052  PMACC01 had blank values; time formats match DB2PM.
  VMXGOPTR 27.051  %VMXGOPTR changed, CURRENT vs ORIGINAL value is used.
  VGETSYSI 27.049  New %VGETSYSI gets (z/OS only) SYSTEM, SU_SEC values.
  VMACDB2  27.045  DB2STATS QISTWFxx variables were incorrectly deaccum.
  TYPEMWAI 27.043  HP OpenView on AIX RELEASE/SOFTWARE/SYSID wrong.

    Major enhancements added in MXG 27.01, dated Mar 17, 2009

    These two changes were delivered in re-dated MXG 26.26 of Feb 12:
  READDB2  27.002  READDB2 might not create all datasets, in Feb refresh
  RMFINTRV 27.001  Negative PCTCPUBY, corrected in Feb 12 refresh.

  TYPE110  27.032  Support for CICS/TS 4.1.0 OPEN BETA (INCOMPATIBLE).
  TYPE111  27.011  Support for CTG V7.2 (INCOMPAT, new RECID=7 error).
  TYPE113  27.004  Support for SMF 113 Hardware Instrumentation Svc HIS.
  TYPEDCOL 27.034  Support for EAV, Extended Address Volume devices.
  TYPENTSM 27.038  Support for NTSMF/Performance Sentry 3.1.4 (MAJOR!).
  TYPE114  27.003  Support for Tivoli Automation SMF 114 record.
  TYPEULOP 27.029  Support for BMC's Ultra Op Product's User SMF record.
  TYPETMO2 27.042  Support for ASG TMON for CICS V3.2 native records.
  ANAL119  27.031  Sample TCP/IP analysis from IBM SMF ID=119 records.
  TYPEVMXA 27.008  z/VM 5.2 RECORD ERROR SYTSYP/STORSP/STOSXP/PRCPRP.
  BUILDPDB 27.005  PDB.SMFRECNT created to audit SMF record counts.
  WEEKxxxx 27.005  Weekly logic enhanced to support nonexistent dataset.
  MONTHxxx 27.005  Month logic enhanced to support nonexistent dataset.
  ANALDB2R 27.012  DB2PM-like report selection by DATABASE enhancement.
  UDB2GTF  27.015  Revised Support for processing DB2 GTF records.
  TYPEDB2  27.018  DB2 V9 variables added by IBM or overlooked, added.
  ANALDB2R 27.024  NOT SORTED ERROR if only PMACC04 was requested.
  TYPE42   27.016  Subtype 25 OLDMEMNM/NEWMEMNM were misaligned.
  TYPE42   27.027  TYPE42DS RESPTIME,MAXRSPTM,MAXSRVTM formats all same.
  TYPENMON 27.028  NMON record 'VM' support for both z/VM, and Intel.
  TYPENMON 27.028  IHDRNMON exit permits NMON record selection.
  TYPE88   27.026  SMF88LTD timestamp wrong as GMT offset misapplied.
  MANY     27.014  SAS option TRANSCODE=NO, &MXGNOTRA/&MXGNOTRB added.
  JCLIMSL6 27.033  Setting MACRO _IMSVERS externalized to JCL example.
  TYPEXAM  27.030  Only the last MDISK was kept in XAMDEV.


    Please read CHANGESS for the complete list of major enhancements.

  See member NEWSLTRS or the Newsletters frame at http://www.mxg.com for
  current MXG Technical Notes.


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

II.   SAS Version requirement information:

      MXG 27.27 executes best with SAS V9.2, or with SAS V9.1.3 with
      Service Pack 4, on any supported SAS platform.
        SAS Hot Fix for SAS Note 37166 is required to use a VIEW with
        the MXG EXITCICS/CICSFIUE CICS Decompression Infile Exit.

      And, only for z/OS 1.10 with SAS V9.1.3 with ANY version of MXG,
      the SAS Hot Fix for SN-35332 is REQUIRED (to be completely safe).
        Without this Hot Fix, "LIBREF XXXXXXXX IS NOT ASSIGNED" errors
        can occur even though //XXXXXXXX DD is a valid SAS Data Library.
        This error ONLY occurs with z/OS 1.10 and SAS V9.1.3; it does
        NOT occur with SAS V9.2 nor with z/OS 1.9.  It can be
        circumvented by adding a LIBNAME statement that specifies the
        ENGINE name. See the Technical Note in Newsletters for SN-35332.

      Old MXG code may continue to execute with SAS V8.2, but V8 is now
      "Level B" support from SAS Institute, and there are known errors
      in V8.2 that are only fixed in SAS V9.  PLEASE INSTALL V9.2 ASAP,
      FOR BOTH OF US, TO AVOID FIXED PROBLEMS.  MXG Software has not
      executed under SAS V6 in many years.

      The "PDB" libraries (i.e., SAS data libraries) must be created by
      one of those listed SAS versions, but any of those data libraries
      can be read or updated by any of those versions.


      For SAS Version V9.2 (TS1M0):

        Big Picture: SAS Version V9.2 is COMPATIBLE with MXG Software.

        On z/OS, SAS changed the DSNAMES for some of the SAS libraries,
        so you do need to use the new MXGSAS92 JCL Procedure for MXG.

        SAS Data Libraries are compatible for V8.2, V9.1.3, and V9.2.
        V9.2-created "PDBs" can be read/written by SAS V8.2 or V9.1.3,
        and vice versa.

        MXG Versions 26.03+ execute with SAS V9.2 with NO (new) WARNINGS
        and with NO ERRORS reported.
          Pre-MXG 26.03, SAS Hot Fix F9BA07 was required to suppress a
          new SAS V9.2 WARNING, that on z/OS, set CC=4 (condition/return
          code). That warning is harmless (to MXG code) and all MXG
          created SAS datasets were correct, even with that warning.
          The ONLY exposure was ONLY on z/OS, and ONLY if condition code
          tests are used in your MXG jobstreams.


      For SAS V9.1.3 on z/OS with Service Pack 4:

        On z/OS 1.10, Hot Fix SN-35332 is REQUIRED.

        CONFIGV9 now specifies V9SEQ instead of V6SEQ.  As V6SEQ does
        not support long length character variables, it can't be used.

       SAS V9.1.3 with current Service Pack 4 is STRONGLY RECOMMENDED.

       For (back-level!) SAS V9.1 or V9.1.2 on z/OS:
        SN-013514 is REQUIRED to be able to read datasets that were
          created by V6SEQ (tape) engine.
        SN-012437 is REQUIRED to prevent creation of corrupt/unreadable
          datasets with tape engines V7SEQ, V8SEQ, or V9SEQ.
        Both fixes ARE included in SAS V9.1.3, but V9.1 or 9.1.2 is NOT
          SAFE without those two hot fixes, and if you do NOT have those
          two fixes on 9.1 or 9.1.2, you MUST set V6SEQ in CONFIGV9.

        With MXG 23.02 or later, V9SEQ is the default sequential engine
        specified in CONFIGV9, but if you are back at SAS V9.1 or V9.1.2
        you MUST install the two hot fixes listed above.

       For SAS Version 8.2, HotFix Bundle 82BX08 (or later) is required
         to be completely safe.  No earlier Version 8's were supported.
         BUT, PLEASE INSTALL V9.x ASAP, FOR BOTH OF US. V8.2 IS ARCHAIC.

       Sequential Engine Status:
          V9SEQ was fixed in V9.1.3; it has been default in CONFIGV9.
          V8SEQ was always safe under SAS V8.2, but it wasted CPU time
            by always compressing when writing in tape format.
          V6SEQ, if used under V9.1.2, requires SN-013514, but V6SEQ
                 should no longer be used, as it does not support long
                 length variables.

      MXG QA tests have executed on z/OS with SAS V9.1.3 and V9.2 and
      also both V9.1.3 and V9.2 on Windows XP.
      (I can no longer run QA tests with "archaic" SAS Version 8.2.)

      Prior QA tests have been run with all SAS releases available at
      that time on Linux RH8 on Intel, on Solaris v2.8 on a Model V880,
      and on HP-UX v11.11 model rp5470, confirming full compatibility.

      MXG should execute under SAS V9.1.3 or V9.2 on every possible SAS
      platform without errors! Each new MXG version is also tested with
      the SAS ITSV/ITRM product by the ITRM developers.

III.  WPS Version requirement information:

      WPS Version 2.4   requires MXG 27.09 (see Change 27.239).
      WPS Version 2.3.5 required MXG 27.05.

      See NEWSLETTERS for WPS Support Statement.

IV.   MXG Version Required for Hardware, Operating System Release, etc.



    Availability dates for the IBM products and MXG version required for
    error-free processing of that product's data records:

                                       Availability     MXG Version
      Product Name                     Date              Required

      MVS/ESA 4.1                      Oct 26, 1990         8.8
      MVS/ESA 4.2                      Mar 29, 1991         9.9
      MVS/ESA 4.2.2                    Aug 15, 1991         9.9
      MVS/ESA 4.3                      Mar 23, 1993        10.10
      MVS/ESA 5.1.0 - compatibility    Jun 24, 1994        12.02
      MVS/ESA 5.1.0 - Goal Mode        May  3, 1995        13.01
      MVS/ESA 5.2.0                    Jun 15, 1995        13.05
      MVS/ESA 5.2.2                    Oct 19, 1995        13.09
      OS/390  1.1.0                    Feb 22, 1996        14.01
      OS/390  1.2.0                    Sep 30, 1996        14.05
      OS/390  1.3.0 Compatibility Mode Mar 28, 1997        14.14
      OS/390  1.3.0 WLM Goal Mode      Mar 28, 1997        15.02
      OS/390  2.4.0                    Sep 28, 1997        15.06
      OS/390  2.5.0                    Feb 24, 1998        15.06
      OS/390  2.6.0                    Sep 24, 1998        16.04
      OS/390  2.7.0                    Mar 26, 1999        16.09
      OS/390  2.7.0 APAR OW41318       Mar 31, 2000        18.03
      OS/390  2.8.0                    Aug 24, 1999        16.09
      OS/390  2.8.0 FICON/SHARK        Aug 24, 1999        17.08
      OS/390  2.8.0 APAR OW41317       Mar 31, 2000        18.03
      OS/390  2.9.0                    Mar 31, 2000        18.03
      OS/390 2.10.0                    Sep 15, 2000        18.06
      OS/390  PAV                      Oct 24, 2000        18.09
      z/OS 1.1                         Mar 30, 2001        18.11
      z/OS 1.1 on 2064s                Mar 30, 2001        19.01
      z/OS 1.1 with correct MSU        Mar 30, 2001        19.02
      z/OS 1.2                         Oct 31, 2001        19.04
      z/OS 1.1,1.2 APARs to 78         Oct 31, 2001        19.05
      z/OS 1.2+ APAR OW52227           Apr 26, 2002        20.02
      z/OS 1.3+ APAR OW52227           Apr 26, 2002        20.02
      z/OS 1.2 JESNR Z2 MODE           Apr 26, 2002        20.03
      z/OS 1.3 JESNR Z2 MODE           Apr 26, 2002        20.03
      z/OS 1.4 Tolerate                Sep 27, 2002        20.03
      z/OS 1.4 Support                 Sep 27, 2002        20.06
      z/OS 1.4 Over 16 CPUs/LPARs      May 29, 2003        21.02
      z/OS 1.4 DFSMS/rmm, RACF         Aug 29, 2003        21.04
      z/OS 1.5                         Mar 31, 2004        21.21
      z/OS IRD ASUM70PR/ASUMCEC        Sep 22, 2003       *24.10
      z/OS IRD TYPE70PR                Mar 11, 2004       *24.10
      z/OS IRD TYPE70,RMFINTRV         Mar 22, 2002       *24.10
      z/OS 1.6 - No IFAs               Sep 30, 2004       *22.09
      z/OS 1.6 - With IFAs             Sep 30, 2004       *22.11
      z/OS 1.7 (COMPATIBLE CHANGES)    Sep 30, 2005       *24.10
      z/OS 1.7 (SPLIT70 CORRECTION)    Sep 30, 2005       *24.10
      z/OS IFA data in RMF 79s         Sep 30, 2005        23.10
      z/OS 1.8 - ASMTAPEE assembly     Sep 30, 2005       *25.03
      z/OS 1.8 - SMF 119 INCOMPAT      Sep 30, 2005       *25.06
      z/OS More than 32 LPARs          Jan 30, 2006       *24.24
      z/OS SPLIT RMF 70 records        Jan 30, 2006       *24.24
      z/OS Dupe SYSTEMs in a SYSPLEX   Jan 30, 2006       *24.02
      z/OS IRD errors corrected        May 15, 2006        24.03
      z/OS ASUMCEC errors corrected    May 15, 2006       *24.24
      z/OS ASUM70LP errors corrected   Jun 13, 2006       *24.24
      z/OS zIIP Processor Support      Jun 22, 2006       *24.24
      z/OS Dedicated zIIP Support      Mar  8, 2008       *26.01
      z/OS Dedicated zAAP Support      Mar  8, 2008        26.01
      z/OS 1.8 (COMPATIBLE CHANGES)    Sep 20, 2006       *24.24
      z/OS 1.9 (INCOMPAT, 54 CPs)      Sep 27, 2007        25.10
      z/OS 1.9 MXGTMNT at ML-39 reASM  Sep 27, 2007        25.10
      z/OS new z10 variables           Mar  5, 2008        26.01
      z/OS 1.8 With HiperDispatch      Sep 15, 2008       *26.10
      z/OS 1.9 With HiperDispatch      Sep 15, 2008       *26.10
      z/OS 1.10 (INCOMPAT, MXG code)   Sep 15, 2008        26.07
      z/OS 1.10 With HiperDispatch     Sep 15, 2008       *26.10
      z/OS 1.10 RMF III, SMF 119       Jul 20, 2009        27.05
      z/OS 1.11                        Sep  2, 2009        27.08
      z/OS 1.11 TYPE 0 Correction      Dec  3, 2009       *27.10
      z990 CPUs - CPUTYPE '2084'x      Aug 25, 2003        21.04
      z890 CPUs - CPUTYPE '2086'x      Jun 24, 2004        22.07
      z9   CPUs - CPUTYPE '2094'x      Jul 20, 2005       *24.24
      z9EC CPUs - CPUTYPE '2094'x:
             with 64-bit z/OS - no change required        *24.24
             with 32-bit z/OS only:    Aug 26, 2006        24.06
      z9BC CPUs - CPUTYPE '2096'x:
             with 64-bit z/OS - no change required         24.01
             with 32-bit z/OS only:    Jul 27, 2006       *24.24
      z10  CPUs - CPUTYPE '2097'x      Dec  7, 2008        25.11
      z10  HiperDispatch/Parked Time   Mar  3, 2008       *26.10
      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 V2R2  CICS/TS 2.2        Feb  9, 2002        19.19
      CICS-TS V2R3  CICS/TS 2.3        Aug 13, 2004        22.04
      CICS-TS V3R1  CICS/TS 3.1        Jan 18, 2005        22.22
      CICS-TS V3R2  CICS/TS 3.2        Dec  6, 2007        25.11
      CICS-TS for Z/OS Version 2.1     Mar 15, 2001        18.11
      CICS-TS for Z/OS Version 2.2     Jan 25, 2002        19.19
       CICSTRAN subtype 1 support only                    *19.19
       CICSTRAN subtype 2 completed                       *19.08
      CICS-TS for Z/OS Version 2.3     Dec 19, 2003
       Using UTILEXCL to create IMACEXCL:                  21.04
       Reading un-Excluded CICS with TYPE110, no IMACEXCL:*22.04
      CICS-TS for Z/OS Version 3.1     Mar 15, 2005
       Using UTILEXCL to create IMACEXCL:                  22.13
       Reading un-Excluded CICS with TYPE110, no IMACEXCL: 22.22
      CICS-TS for Z/OS Version 3.2     Jun 29, 2007        25.03
      CICS-TS/3.2 Compressed Records   Nov  3, 2007        25.11
      CICS-TS/4.1 (CICSTRAN INCOMPAT)  Mar 13, 2009        27.01
      CICS-TS/4.1 (STATISTICS ST=2)    Sep 18, 2009        27.08
      DB2 2.3.0                        Oct 28, 1991        10.01
      DB2 3.1.0                        Dec 17, 1993        13.02A
      DB2 4.1.0 Tolerate               Nov  7, 1995        13.07
      DB2 4.1.0 Full support           Sep 11, 1996        14.07
      DB2 5.1.0 Tolerate               Jun 27, 1997        14.14
      DB2 5.1.0 Full support           Jun 27, 1997        15.02
      DB2 6.1.0 initial support        Mar 15, 1999        16.09
      DB2 6.1.0 all buffer pools       Mar 15, 1999        18.01
      DB2 6.1.0 parallel DB2           Mar 15, 1999        19.19
      DB2 7.1.0 parallel DB2           Mar 31, 2001        19.19
      DB2 7.1.0 corrections            Mar 31, 2001        20.06
      DB2 8.1 Tolerate, no packages    Mar 31, 2004        20.20
      DB2 8.1 New Data Packages wrong  Mar 31, 2004        21.08
      DB2 8.1 Support with Packages    Mar 31, 2004        23.09*
      DB2 8.1 with all zIIP Variables  Sep 30, 2006        24.08
      DB2 8.1 +PK47659                 Sep 12, 2008        26.08
      DB2 9.1 See Change 25.265.       Dec  7, 2007        25.11
      DB2 9.1 Full Support +PK/56356   Sep 12, 2008        26.08
      DFSMS/MVS 1.1                    Mar 13, 1993        11.11
      DFSMS/MVS 1.2                    Jun 24, 1994        12.02
      DFSMS/MVS 1.3                    Dec 29, 1995        13.09
      DFSMS/MVS 1.4                    Sep 28, 1997        15.04
      DFSMS/MVS 1.4 HSM                Sep 23, 1998        16.04
      DFSMS/MVS 1.5                    ??? ??, 1999        16.04
      DFSORT SMF V1R5                  Mar  1, 2006        24.02
      MQM 1.1.2, 1.1.3, 1.1.4          Apr 25, 1996        14.02
      MQ Series 1.2.0                  May 26, 1998        16.02
      MQ Series 2.1.0                  Oct  2, 1999        17.07
      MQ Series 5.2                    Dec 16, 2000        18.10
      MQ Series 5.3                    Dec 16, 2002        21.05
      MQ Series 6.0                    Feb 14, 2006        23.23
      MQ Series 7.0 (No Changes)       ??? ??, 2009        23.23
      NETVIEW 3.1 type 37              ??? ??, 1996        14.03
      NPM 2.0                          Dec 17, 1993        12.03
      NPM 2.2                          Aug 29, 1994        12.05
      NPM 2.3                          ??? ??, 1996        15.08
      NPM 2.4                          Nov 18, 1998        17.01
      NPM 2.5                          Feb ??, 2000        18.02
      NPM 2.6                          Nov ??, 2001        19.06
      RMDS 2.1, 2.2                    Dec 12, 1995        12.12
      RMDS 2.3                         Jan 31, 2002        19.11
      TCP/IP 3.1                       Jun 12, 1995        12.12
      TCP/IP 3.4                       Sep 22, 1998        16.04
      WebSphere 5.0 APAR PQ7463        Aug 19, 2003        21.04
      WebSphere 6.0                    Feb 18, 2006        23.23
      DOS/VSE POWER V6.3.0             Dec 19, 1998        16.08
      VM/ESA  2.0                      Dec 23, 1992        10.04
      VM/ESA  2.1                      Jun 27, 1993        12.02
      VM/ESA  2.2                      Nov 22, 1994        12.06
      VM/ESA  2.3                      Jun  1, 1998        16.08
      VM/ESA  2.4                      Mar  1, 2001        19.03
      z/VM    3.1                      Mar  1, 2001        19.03
      z/VM    3.1 DATABYTE=0           May  2, 2002        20.02
      z/VM    4.2 ??                   May  2, 2002        20.02
      z/VM    4.4                      Jan 22, 2005        22.22
      z/VM    5.1                      Jan 22, 2005        22.22
      z/VM    5.2                      Jan 22, 2006        24.01
      z/VM    5.3 TOLERATE             Jun  7, 2007        25.05
      z/VM    5.3 NEW VARIABLES        Sep 12, 2008        26.08
      z/VM    5.4 (COMPATIBLE)         Sep 12, 2008        27.01*
      z/VM    6.1 (NO CHANGES)         Jul  7, 2008        27.01
      IMS log 4.1                      Jul  4, 1994        12.02
      IMS log 5.1                      Jun  9, 1996        14.05
      IMS log 6.1                      ???  ?, 199?        20.03
      IMS log 7.1                      ???  ?, 200?        20.03
      IMS log 8.1                      May 21, 2003        21.02
      IMS log 9.1                      Mar 96, 2004        26.01*
      IMS log 10.0                     Mar 06, 2007        26.01*
      AS400 3.7.0                      Nov  1, 1996        15.01
      AS400 4.1.0                      Dec 30, 1996        15.08
      AS400 4.2.0                      Apr 27, 1998        16.02
      AS400 4.4.0                      Sep 27, 1999        17.07
      AS400 4.5.0                      Jul 27, 2000        18.07
      AS400 5.2.0 - Most records       Jul 23, 2003        21.03
      AS400 5.2.0 - QAPMMIOP           Jul 23, 2003        22.04
      AS400 5.3.0                      Jan 22, 2005        22.22
      AS400 5.4.0                      Aug 26, 2006        24.06
      AS400 6.1.0                      Jun 29, 2008        26.05

    Note: Asterisk before the version number means the Version number
          was changed (to the MXG version required), after an earlier
          MXG version was listed as supporting this product release,
          usually because an APAR modified the product's data records.
          Or a coding error in MXG could be the reason for the change!

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

                                                        MXG Version
      Product Name                                       Required

      Demand Technology
       NTSMF Version 1 Beta                                14.11
       NTSMF Version 2.0                                   15.05
       NTSMF Version 2.1                                   15.06
       NTSMF Version 2.2                                   16.04
       NTSMF Version 2.3                                   17.10
       NTSMF 2.4.4                     Aug  9, 2002        20.04
       NTSMF 2.4.5   INCOMPAT          Apr  1, 2003        21.02
       NTSMF 2.4.7                     Sep 30, 2004        22.08
       NTSMF 3.1.4                     Mar 15, 2009        27.01
      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 DB2 Version 4.0                     22.10
       The Monitor for CICS/ESA 1.2 -                      12.12
       The Monitor for CICS/ESA 1.3 -                      15.01
       The Monitor for CICS/ESA 2.0 -                      15.06
       The Monitor for CICS TCE 2.1 -                      20.04
       The Monitor for CICS TCE 2.2 - 20.335, 21.134       21.04
       The Monitor for CICS TCE 2.3 including CICS/TS 3.1  22.08
       The Monitor for CICS TCE 3.2 (almost all)           25.11
       The Monitor for CICS TCE 3.2 (almost all)           27.01
       The Monitor for MVS/ESA 1.3  -                      12.05
       The Monitor for MVS/ESA 1.5  -                      12.05
       The Monitor for MVS/ESA 2.0  -                      15.09
       The Monitor for MVS/ESA 3.0  -                      19.19
       The Monitor for CICS/TS V2.3 for CICS/TS 3.1        22.08

      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 IMS V550/V560 (ITRF)                   25.05
       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
       SAR/VIEW R11                                        23.07 23.196
      BMC, was Boole & Babbage
       IMF 3.1 (for IMS 5.1)                               12.12
       IMF 3.2 (for IMS 6.1 only)                          15.09
       IMF 3.2 (for IMS 5.1 and 6.1+)                      16.04
       IMF 3.3 (for IMS 7.1 and 8.1)                       22.08*
       IMF 4.1 (for IMS 9.1)                               26.02*
       IMF 4.4 (for IMS 9.1)                               27.07*
      Memorex/Telex
       LMS 3.1                                             12.12A
      Oracle V9, V10                                       24.06
      Amdahl
       APAF 4.1, 4.3                                       16.08
      Velocity Software
       XAMAP 3.4                                           22.10
       XAMAP 3406                                          24.03
       XAMAP 3.7                                           27.10

V.    Incompatibilities and Installation of MXG 27.27.


 1. Incompatibilities introduced in MXG 27.27:

  a- Changes in MXG architecture made between 27.27 and prior versions
     that can introduce known incompatibilities.


 2. Installation and re-installation procedures are described in detail
    in member INSTALL (which also lists common Error/Warning messages a
    new user might encounter), and sample JCL is in member JCLINST9 for
    SAS Version 9.1.3 (JCLINST8 for now-archaic SAS Version 8.2).

    MXG Definitions with regard to MXG Software Changes:

    COMPATIBLE   A change in a data record which did not alter either
    COMPAT       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.

    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.

    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.


VI.   Online Documentation of MXG Software.

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


VII.  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 in MXG 27.27 after MXG 26.26:

  Dataset/
  Member   Change    Description

  ALOCGOVO 27.299  Allocate GDG's with GOOVOO to minimize DSENQUEUE.
  ANAL119  27.031  Sample TCP/IP analysis from IBM SMF ID=119 records.
  ANAL307X 27.346  Analysis compares Hourly CPU in 70, 72, 30 interval.
  ANALCNCR 27.203  PDB.ASUMTALO had too few obs due to ANALCNCR error.
  ANALCNCR 27.220  MXG 27.06-27.07. Failed if multiple INDATA= datasets.
  ANALDB2R 27.012  DB2PM-like report selection by DATABASE enhancement.
  ANALDB2R 27.023  One of several updates to ANALDB2R since 26.26.
  ANALDB2R 27.024  NOT SORTED ERROR if only PMACC04 was requested.
  ANALDB2R 27.052  PMACC01 had blank values; time formats match DB2PM.
  ANALDB2R 27.131  DB2PM-like STATISTICS LONG report updated.
  ANALDB2R 27.172  Many tests IF x NE 0 replaced with IF x GT 0.
  ANALDB2R 27.238  AUDIT report revisions, reduced processing time.
  ANALDB2T 27.223  "Top" DB2 Report ranks resource for corr,auth ids.
  ANALJOBE 27.332  Analysis of Job Events revised, JESNR test removed.
  ANALRMFR 27.198  ANALRMFR wrote TYPE7xxx to //PDB with PDBOUT= null.
  ANALRMFR 27.333  RMF Summary Report (REPORT=SMRY) was incorrect.
  ANALZIPU 27.137  Analysis of zIIP used by JOB/PROGRAM/SRVCLASS etc.
  ANALZPCR 27.147  SCP too short for z/OS  1.10, wrong if multiple SCPs.
  ASMIMSL6 27.121  Assembly error USING introduced in Change 27.078.
  ASMTAPEE 27.300  ASMTAPE ML-45 enhancements to TMNTnnnn messages.
  ASUM70GO 27.268  Example summarizes PDB.TYPE72GO, changing interval.
  ASUM70PR 27.074  Group Capacity ASUM70GC/GL wrong if multiple SYSTEMS.
  ASUM70PR 27.076  ASUM70PR enhancement adds zIIP, zAAP, and IFLs plus.
  ASUM70PR 27.132  Revisions for missing values if IFL is last LPARNUM.
  ASUM70PR 27.214  ASUM70PR STARTIME could be early by an interval unit.
  ASUM70PR 27.292  First LPAR had missing values in LPSHAR/TOTSHARE.
  ASUM70PR 27.294  IFL obs in ASUM70LP/ASUMCELP missing STARTIME fixed.
  ASUM70PR 27.344  Variables LPCTBY/PCTLPBY missing for PHYSICAL LPAR.
  ASUMMIPS 27.262  MSU/MIPS for zIIPs and zAAPs added to CPs summary.
  ASUMMIPS 27.305  ASUMMIPS now inflates MSU by system CAPTURE RATIO.
  ASUMMIPS 27.327  DUR70 created with actual vs expected DURATM.
  ASUMTALO 27.203  PDB.ASUMTALO had too few obs due to ANALCNCR error.
  ASUMTAPE 27.160  EVENTIME dropped from PDB.ASUMTAPE MXG 26.03, fixed.
  ASUMTAPE 27.181  Support for VOLSER='SCRTCH' from MXGTMNT monitor.
  BLDSMPDB 27.112  SUBSTR() Function Error, allocation revisions.
  BUILDPDB 27.001  New PDB.SMFRECNT dataset summarizes WORK.ID.
  BUILDPDB 27.005  PDB.SMFRECNT created to audit SMF record counts.
  BUILDPDB 27.213  HFS/zFS EXCPS are in EXCPTOTL, new USSEXCPS count.
  BUILDPDB 27.220  MSOUNITS,SERVICE corrected to always be LENGTH 8.
  CICINTRV 27.274  CICS DISPATCH INTERVAL LARGER THAN INTERVAL fixed.
  COMPALL  27.109  Comparison of COMPALL under SAS and WPS.
  CONFIGxx 27.294  MXG 27.08-27.09 only. Option MAUTOLOCDISPLAY removed.
  DAILYDSN 27.246  Variables DSN DSNBACTV STPNAME had UNINIT messages.
  DAILYDSx 27.287  MXG 27.09 only.  TMC= should have been TAPEDATA=.
  DB2      27.158  Support for UIFCIDS=YES, all "%U" DB2 fields revised.
  EXPDBINC 27.334  MXG 27.10 ONLY. %UTILBLDP option USERADD= fails.
  FORMATS  27.243  OPTIONS NOCHARCODE reset at end of FORMATS.
  GRAFWRKX 27.245  zIIPs and zAAPs added to SAS/GRAPH hourly workloads.
  IMACICDU 27.068  Optional USERCHAR in CICSTRAN was limited to 200.
  IMACICOB 27.099  Optional Omegamon DB2 CICS/TS 3.2 times were wrong.
  IMACICUA 26.019  CICS User fields supported in IMACICUA/UB/UC/UD
  JCL40GIG 27.316  JCL example to split/parallelize BUILDPDB job.
  JCLCIDB2 27.345  UTILBLDP JCL example for CICS, DB2, and ASUMUOW+.
  JCLDAYDS 27.127  Support for CONTROLT for "daily dataset billing".
  JCLIMSL6 27.033  Setting MACRO _IMSVERS externalized to JCL example.
  MANY     27.014  SAS option TRANSCODE=NO, &MXGNOTRA/&MXGNOTRB added.
  MANY     27.277  Support for USER=DDNAME, "WORK" now "&MXGWORK".
  MONTHxxx 27.005  Month logic enhanced to support nonexistent dataset.
  MRGDB2   27.321  MERGE of PDB.DB2ACCT and PDB.DB2ACCTP for DB2PARTY
  MXGSASxx 27.108  &NULLPDB &LOAD &SASAUTOS symbolics REMOVED from JCL.
  MXGWPSV2 27.110  Status of testing MXG 27.04 with WPS 2.3.5.
  READDB2  27.002  READDB2 might not create all datasets, in Feb refresh
  READDB2  27.002  READDB2 might not create all datasets, in Feb refresh
  READDB2  27.097  Redesign IFCID=225 (DB2STAT4,T102S225) processing
  READDB2  27.150  MXG 27.05. COPYONLY option didn't include 102s.
  READDB2  27.169  27.04-27.06, zero obs in all T102Snnn datasets.
  READDB2  27.169  MXG 27.04-27.06. T102Snnn datasets not populated.
  READDB2  27.272  READDB2 support for WANTONLY now works.
  READDB2  27.322  IFCIDS= features (STATS, DB2ACCT, Dataset Name, etc)
  READDB2  27.351  READDB2 didn't always invoke its EXdddddd members.
  RMFINTRV 27.001  Negative PCTCPUBY, corrected in Feb 12 refresh.
  RMFINTRV 27.178  Summary STARTIME now exact, based on SMF70GIE-DURATM.
  RMFINTRV 27.214  RMFINTRV STARTIME could be early by an interval unit.
  RMFINTRV 27.218  SMF70LAC was maximum value rather than average.
  RMFINTRV 27.252  Format missing for many duration variables, fixed.
  RMFINTRV 27.252  Formats for durations added.
  SPIN     27.119  Doc. Sort Order to import EBCDIC sorted SPIN library.
  TIMETABL 27.115  %LET MXGTIM59=YES is no longer required for SYNC59.
  TYPE0    27.325  z/OS 1.11 Update: TYPE 0 Corrected.
  TYPE102  27.059  Some SMF 102 IFCID=108 variables were not INPUT.
  TYPE102  27.131  DB2 T102S106 dataset updates.
  TYPE102  27.132  IFCID=22 with truncated names INPUT STATEMENT EXCEED.
  TYPE102  27.162  Support BMC APPTUNE SQL SMF 102 IFCIDs 8004x-8136x
  TYPE110  27.032  Support for CICS/TS 4.1.0 OPEN BETA (INCOMPATIBLE).
  TYPE110  27.053  CICS SMF 110 Statistics STID=108 skipped data.
  TYPE110  27.200  Support for CICS/TS 4.1 GA updates/documentation.
  TYPE110  27.245  OTRANNUM right with IMACEXCL, wrong in VMAC110.
  TYPE110  27.260  TRANSPARENT UNCOMPRESS OF CICS/TS 3.2 RECORDS!!!
  TYPE110  27.270  CICS STID=115 should not exist.
  TYPE110  27.274  SORT Order for CICFCR changed, A17DSIXP/DTRDS fixed.
  TYPE110  27.303  CICS Total I/O and Total Other Wait updates.
  TYPE110  27.329  MXG 27.10, CICIDNNR NOT FOUND, only if _S110ST used.
  TYPE111  27.011  Support for CTG V7.2 (INCOMPAT, new RECID=7 error).
  TYPE112  27.358  Support for OMEGAMON ONDV SMF 112 SUBTYPE 0100X
  TYPE113  27.004  Support for SMF 113 Hardware Instrumentation Svc HIS.
  TYPE113  27.081  Support for APAR OA27623, CPU Speed, SM1132SP, added.
  TYPE114  27.003  Support for Tivoli Automation SMF 114 record.
  TYPE116  27.157  WQGETJCE/WQPUTJCE/etc variables not divided by 4096.
  TYPE116  27.235  Six datetimes are now converted to LOCAL, were GMT.
  TYPE117  27.022  Variables added to S117NODE to match up to S117FLOW.
  TYPE119  27.106  Support for z/OS 1.10 storage metrics in SMF 119.
  TYPE119  27.153  Variable NTBTRNBE input now as count and not a time.
  TYPE120  27.255  SM1209 RETAINED, SM1209FI/EV corrected.
  TYPE120  27.255  WAS SMF1209FI/EV (CPU/Elapsed Times) corrected.
  TYPE1415 27.116  Non-zero JFCB BLKSIZE set to zero if SMF14LBS=0.
  TYPE1415 27.148  Support for APAR OA29428, identifies who closed file.
  TYPE1415 27.361  MXG 27.06-27.11.  BUFNO always zero due to typo.
  TYPE16   27.211  Support for new z/OS 1.10 DFSORT variables.
  TYPE30   27.122  Support for APAR OA26832 expands Service Unit fields.
  TYPE42   27.016  Subtype 25 OLDMEMNM/NEWMEMNM were misaligned.
  TYPE42   27.027  TYPE42DS RESPTIME,MAXRSPTM,MAXSRVTM formats all same.
  TYPE42   27.054  MXG 27.01 ONLY. STARTIME/ENDTIME/etc missing value.
  TYPE42   27.062  VSAM RLS "ABOVE THE BAR" statistics, & APAR OA25559.
  TYPE42   27.155  Type 42-16 STOPOVER, 42-21/24 ICHRUTKN protect, APAR.
  TYPE42   27.291  Variable S42DSRDD incorrect by factor of 10**6.
  TYPE7072 27.010  SMF70CIX, CPU Pool Number, output in PDB.TYPE70PR.
  TYPE7072 27.089  Support for TYPE 72 Resource Delay Type Names R723RNx
  TYPE7072 27.149  Labels for Counts of ZIP, IFA, CPs, clarified.
  TYPE7072 27.205  Doc only. PDB.TYPE70PR LCPUPDTM GT SMF70ONT happens.
  TYPE7072 27.217  Blank SMF70CIN in PDB.TYPE70PR if last LPAR offline.
  TYPE7072 27.317  Support for APAR OA28670 RMF 70 Crypto Express3
  TYPE70PR 27.102  27.02-27.03. PARTNCPU missing, if last LPAR not z/OS.
  TYPE70PR 27.178  Summary STARTIME now exact, based on SMF70GIE-DURATM.
  TYPE74   27.249  R747PAVG AVERGAGE FRAME PACING matches RMF report.
  TYPE74   27.263  R744FNAM not in TYPE74DU, ITRM sites need update.
  TYPE74   27.287  MXG 27.09 only.  DEBUGGING PUT statement removed.
  TYPE77   27.066  "Owner" variables incorrectly labeled as "Current".
  TYPE80A  27.017  Undecoded NOHOME/NOPROGRAM in TOKDANAM supported.
  TYPE80A  27.241  RACFEVNT=79 EXTLNTYP=379 INPUT EXCEEDED error.
  TYPE80A  27.250  Protection for UNKNOWN TOKDANAM and RDEFINE CFIELD.
  TYPE80A  27.331  Protection for unknown TOKDANAM eliminates STOPOVER.
  TYPE80A  27.357  TYPE8066 dataset enhanced.
  TYPE82   27.330  SMF82PDK, SMF82RKN, SMF82PTA increased, corrected.
  TYPE83   27.067  Support for LDAP Auditing ID=83 Subtype=3 SMF record.
  TYPE85   27.138  z/OS 1.10 OAM record INPUT EXCEEDED RECORD LENGTH.
  TYPE85   27.196  Heuristic in Change 27.138 did not correct EXCEEDED.
  TYPE88   27.026  SMF88LTD timestamp wrong as GMT offset misapplied.
  TYPE92   27.154  Variable SMF92PPN blank in TYPE9201, was not INPUT.
  TYPE92   27.204  Change 27.154 did not correct missing path section.
  TYPEACF2 27.105  ACF2VR dataset enhanced, DB2 activity identification.
  TYPEACF2 27.258  Support for Subtype 'O' OPENEDITION record.
  TYPEBVIR 27.077  BVIR variable GLIBSEQN can be ASCII or EBCDIC.
  TYPEBVIR 27.088  Support for TS7700/BVIR Microcode 1.5.
  TYPEBVIR 27.104  BVIR TS7700 GMT times can be user-changed to LOCAL.
  TYPEBVIR 27.163  BVIR PnCHRD/VDRD/CHRD converted to bytes, MGBYTES.
  TYPECDC  27.324  Support for IBM's InfoSphere Change Data Capture CDC
  TYPECIMS 27.107  Support for BMC'S IMF 4.4 (COMPATIBLE).
  TYPECIMS 27.176  BMC PTF BQI0695 corrects overlaid DBD segments.
  TYPECIMS 27.176  Support for IMF 4.4 was incorrect for TRNxxxxx vars.
  TYPECIMS 27.230  Variable LASTCLAS in IMF CIMSPROG incorrectly INPUT.
  TYPECTCD 27.056  Support for Control-D "Decollating" SMF record.
  TYPECTLL 27.129  Updates for CONTROL-D TYPE C User SMF record.
  TYPEDB2  27.018  DB2 V9 variables added by IBM or overlooked, added.
  TYPEDB2  27.021  QPAC flag variables were not reset.
  TYPEDB2  27.045  DB2STATS QISTWFxx variables were incorrectly deaccum.
  TYPEDB2  27.086  Some DB2STATS QISE variables incorrectly deaccum'd.
  TYPEDB2  27.097  Redesign IFCID=225 (DB2STAT4,T102S225) processing
  TYPEDB2  27.161  Incorrect QXPK values in DB2ACCTP, DB2 V9 only.
  TYPEDB2  27.17x  Corrected, misspelled DB2 variables.
  TYPEDB2  27.188  MXG 27.04-27.06 NOT SORTED DB2STAT0/DB2STAT1.
  TYPEDB2  27.207  MXG 27.07. QSSTCONT,QSSTCRIT re-de-accumulated.
  TYPEDB2  27.232  TMON/DB2 created SMF 101 St 0 OFFQLAC invalid.
  TYPEDB2  27.319  Support for QMDAPTYP='JCC' (Type 4 JDBC Driver).
  TYPEDB2  27.326  Variable QDSTQCIT now not deaccumulated.
  TYPEDCOL 27.034  Support for EAV, Extended Address Volume devices.
  TYPEDCOL 27.047  Support for EAV (large volumes) final correction.
  TYPEDCOL 27.057  MXG 27.01 ONLY. DCOLVOLS sizes WRONG by 1024 factor.
  TYPEDCOL 27.082  Support for z/OS 1.10 DCDOVERA 32-bit already in MXG.
  TYPEDCOL 27.152  MXG 27.01-27.05. DCOLLECT UBALLSP is missing value.
  TYPEDCOL 27.212  Support for APAR OA30006, 8-byte DCOLDSET fields.
  TYPEEDGR 27.046  Major updates for RMM/EDGHSKP D,V,X records.
  TYPEEDGR 27.251  RMM Dates - American/Euro/ISO/Julian - all supported.
  TYPEEDGR 27.251  Support for all four RMM Date Formats
  TYPEEDGR 27.339  RVTxERR RVPxERR variables now numeric, incompatible.
  TYPEEDGR 27.349  Support for RMM APAR OA24025  RDDESKEY.
  TYPEEDGR 27.349  Support for RMM APAR OA28930, RDBLKCNT/RDTOTAL.
  TYPEEREP 27.006  Truncated variables increased, SDWA fully decoded.
  TYPEHBUF 27.247  FLAG1 tests for HyperBuf optional segments revised.
  TYPEHURN 27.055  OBJECTSTAR Subtype 13 INPUT STATEMENT EXCEEDED error.
  TYPEIMFL 27.078  Support for IMF+Log 45X Interval Statistics record.
  TYPEIMS7 27.078  Support for IMS Log 45X Interval Statistics record.
  TYPEIMSA 27.078  Support for IMS Log 45X Interval Statistics record.
  TYPEIMSA 27.354  MXGNOTE now prints the value of _IMSVERS on the log.
  TYPEIOO  27.189  Support for Serena's StarTool IOO Product SMF.
  TYPEITRF 27.177  Variable RECTOK was truncated to 12 bytes.
  TYPEMWAI 27.043  HP OpenView on AIX RELEASE/SOFTWARE/SYSID wrong.
  TYPENDM  27.022  NDMRTYPE='IK' record is now output in NDMDT dataset.
  TYPENDM  27.222  Support for NDM-CDI NDMRTYPE 'SC' and 'S2' subtype.
  TYPENMON 27.028  IHDRNMON exit permits NMON record selection.
  TYPENMON 27.028  NMON record 'VM' support for both z/VM, and Intel.
  TYPENMON 27.080  Protection for inconsistent NMON data counters.
  TYPENMON 27.087  NMONBBBP blank values and wrong labels corrected.
  TYPENMON 27.096  Nigel's Monitor MEM Object supported.
  TYPENMON 27.110  COUNTW() now used only with SAS V9, DO Loop for V8.
  TYPENMON 27.180  Support for CPU_PHYSICAL,CPU_ENTITLED TOPAS objects.
  TYPENTSM 27.038  Support for NTSMF/Performance Sentry 3.1.4 (MAJOR!).
  TYPENTSM 27.184  Support for 13 VMWARE objects captured by NTSMF.
  TYPENTSM 27.312  MXG 27.09 only. NTSMF Processing failed, RECFM.
  TYPEOMCI 27.085  ONDV datasets from subtype 203 had blanks for xTRAN.
  TYPEOMCI 27.113  OMCI INTR Subtype 200 RECSUBTYP 4 INPUT EXCEEDED.
  TYPEOSEM 27.221  Support for zOSEM Operating System Environment Mgr.
  TYPEPROS 27.295  PRO/SMS SMF record misalignment corrected.
  TYPEQACS 27.134  More updates for IBM i, i5/OS, iSeries a/k/a AS400.
  TYPEQACS 27.256  Support for QACSLPAR dataset.
  TYPERMFV 27.100  RMF III ZRBLCP dataset "trashed" with z/OS 1.10 data.
  TYPERMVF 27.120  RMF III z/OS 1.10 new ASI fields (INCOMPATIBLE).
  TYPESRMH 27.340  SRM Thales Security PTF SL24010 INCOMPATIBLE support.
  TYPESTC  27.072  VTCS subtypes of STC/STK record updated.
  TYPESYNC 27.289  Support for CPUZIPTM added in SYNCSORT SMF records.
  TYPETIMS 27.298  Expensive algorithm to uncompress ASG/Landmark data.
  TYPETMDB 27.209  TMON/DB2 BF record SQL text BF0142RL corrected.
  TYPETMDB 27.259  Support for TMON for DB2 BA/BJ/BK/BL/BM subtypes.
  TYPETMMQ 27.145  Support for TMON for MQ record 'QA' (APPLICATION).
  TYPETMNT 27.009  MSGID IEF233D supported, no DSNAME in SYSLOG doc'd.
  TYPETMNT 27.336  SYSLOG message text size increased to 32384 bytes.
  TYPETMO2 27.042  Support for ASG TMON for CICS V3.2.
  TYPETMO2 27.091  ASG TMON/CICS variables WTSCWTTM,WTSCWTCN reversed.
  TYPETMO2 27.215  TMON/CICS Version 3.1 INPUT EXCEEDED on 'TI' record.
  TYPETMS5 27.111  New TMSLIB variable, support for multiple TMS cats.
  TYPETMS5 27.168  MXG 27.05-27.06. _KTMSTMS dropped, impacts ITRM.
  TYPETMS5 27.190  TMS.TMS DEVTYPE blank for 3590 and 3592 devices.
  TYPETMVT 27.347  TMON/VTAM "SI" record Interval variables now INPUT.
  TYPETPMX 27.093  TYPETPMX variable JESNR now 7-digits, was 5 digits.
  TYPEULOP 27.029  Support for BMC's Ultra Op Product's User SMF record.
  TYPEULTM 27.069  Serena's Ultimizer user MV moved subtype location.
  TYPEVMXA 27.008  z/VM 5.2 RECORD ERROR SYTSYP/STORSP/STOSXP/PRCPRP.
  TYPEVMXA 27.156  Support for z/VM 6.1.0 in MXG 27.01+; no new data.
  TYPEVMXA 27.156  z/VM 6.1 support is in MXG 27.01 or later.
  TYPEVMXA 27.264  z/VM MONWRITE example processes only USER domain.
  TYPEXAM  27.030  Only the last MDISK was kept in XAMDEV.
  TYPEXAM  27.070  Variable DESCR truncated in XMHSTMEM, changed.
  TYPEXAM  27.151  XAM TCP record INPUT STATEMENT EXCEEDED error.
  TYPEXAM  27.216  Variable SYTLPNAM restored kept in XAMSYT dataset.
  TYPEXAM  27.281  Updates/corrections/ for XAM Version 3.7.
  UDB2GTF  27.015  Revised Support for processing DB2 GTF records.
  VGETDDS  27.083  Concatenate PDB libs, dynamically allocate them.
  VGETDDS  27.248  Logic revised when DDNAMES= syntax is used.
  VGETDDS  27.310  New DATEJUL= created DSNAMES with Julian YYYDDD.
  VGETDDS  27.330  New DATEJUL= correctly generates julian dsnames.
  VGETDDS  27.359  WAIT=N option protects for DSNAME already in use.
  VGETOBS  27.237  Enhancement if no DDNAME argument.
  VGETSYSI 27.049  New %VGETSYSI gets (z/OS only) SYSTEM, SU_SEC values.
  VMACDB2  27.131  DB2STATS DIF() or no-DIF() corrections.
  VMACEDGR 27.128  Syntax error after Change 27.046 (GT. GT.).
  VMACORAL 27.306  Support for restructured ORACLE SMF records.
  VMACSMF  27.058  SMF SUBTYPE GT 255 for BMC CICS subtype 2818/47874.
  VMACSMF  27.341  WARNING: SUBTYPE GT 255 message now not defaulted.
  VMXGALOC 27.355  NOWAIT added, create/allocates are now conditional.
  VMXGCNFG 27.356  The standard SAS JCL Proc can be used for MXG.
  VMXGDUR  27.214  New FLORCEIL=FLOOR/CEIL argument for begin/end calc.
  VMXGDUR  27.214  SYNC59=YES now default with FLOOR, always safe.
  VMXGDUR  27.308  SYNC59-NO/VMXGDUR/VMXGSUM (final?) enhancements.
  VMXGOPTR 27.051  %VMXGOPTR changed, CURRENT vs ORIGINAL value is used.
  VMXGOPTR 27.092  SAS V8-ONLY: OVERFLOW HAS OCCURRED after SUMSTATB
  VMXGOPTR 27.092  SAS V9.2-ONLY: NO MATCHING %IF FOR %THEN.
  VMXGOPTR 27.124  Macro TRIM() function removed from VMXGOPTR.
  VMXGSET  27.343  VMXGSET permits multiple datasets with APPEND=YES.
  VMXGSUM  27.071  VMXGSUM-using programs support DROPed variables.
  VMXGSUM  27.234  Revision to eliminate OUTCODE= argument sometimes.
  VMXGTAPE 27.114  "Tape-aware" programs now support LIBNAME allocation.
  WEEKxxxx 27.005  Weekly logic enhanced to support nonexistent dataset.
  WPS      27.239  WPS 2.4 GA has been tested, requires MXG 27.09.

  See member CHANGESS for all changes ever made to MXG Software.


Inverse chronological list of all Changes:

NEXTCHANGE:

====== Changes thru 27.361 were in MXG 27.27 dated Jan 20, 2010========

Change 27.361  MXG 27.06-27.11. Variable BUFNO in TYPE1415 was always
VMAC1415       zero; the label in the comment for SMF14ABD, added by
Jan 19, 2009   Change 27.148, had a / instead of */ at the end of that
               line, which swallowed (without error) the IF BUFNO test.
               Note that even when fixed, BUFNO=0 occurs frequently for
               non QSAM files; for example, TYPE1415 records for SAS
               data libraries always have BUFNO=0.
   Thanks to Tom Parquette, AXA Technology Services, USA.
   Thanks to ???, ???, CANADA.

Change 27.360  Fixed in MXG 27.10, but in MXG 27.09, PDB.ASUM70PR could
VMXG70PR       have PCTCPUBY much greater than 100%, for systems with
Jan 19, 2009   IFL engines, if the IFL also has the highest LPARNUM.
                 Similar to Change 27.123, fixed by Change 27.294/325,
                 but invalid values in PCTCPUBY were not mentioned in
                 the text of those changes.
               This is only change text; no code was changed.
   Thanks to Tee Brown, Blue Shield Blue Cross of South Carolina, USA.

Change 27.359  The new WAIT=N argument in %VGETDDS causes allocations to
VGETDDS        be WAITed for N minutes if the DSNAME is already in use.
Jan 19, 2009   SAS tests every 15 seconds and if the DSNAME is freed in
               those N minutes, the allocation procedes as normal.
   Thanks to George Pandzik, USAA, USA.

Change 27.358  Support for OMEGAMON ONDV SMF 112 SUB-SUBTYPE '0100'X,
EX112USD       the USREVNT1 clocks/counters, creates two new datasets:
EX112UST          dddddd  Dataset   Description
IMAC112           112USD  T112USRD  USREVNT1 Detail
VMAC112           112UST  T112USRT  USREVNT1 Totals
VMXGINIT       with 10 pairs; the IBM DSECT doesn't identify what is in
Jan 19, 2010   any of these counters, and thought only the first pair
               was used, but test data shows what appears to be valid
               counts and associated clock durations in at least the
               first three pairs of clock/counters in those datasets.
               These '0100'x subtypes are in records with only '0200'x
               MQ subtypes, and appear to contain MQ identifiers and
               so these counters are most likely something to do with
               MQ.  When I can get better documentation of what is in
               these new counters, I will update their labels and this
               change text.
   Thanks to Henry Steinhauer, Northwestern Mutual, USA.

Change 27.357 -Some (new) TRANSLATE() functions had '00' or '80' where
VMAC80A        '00'x or '80'x should have been specified.
Jan 17, 2010  -TYPE8066 dataset is enhanced with variables from RACFTYPE
               6, 318, 319, and 320.
   Thanks to Matthew T. Chappell, Queensland Dept. Transport, AUSTRALIA.

Change 27.356 -The standard SAS JCL procedure can now be used for MXG on
VMXGCNFG       z/OS.  You do not need a separate MXGSASVn JCL procedure;
MXGNAMES       instead, use this JCL example (in member JCLMXG), after
JCLMXG         you EDIT the DSNAMES of your MXG Source, MXG "USERID" and
CONFIMXG       MXG Formats datasets into your MXGNAMES member in your
Jan 17, 2010   MXG "USERID" tailoring library:

                 // EXEC SAS,CONFIG='MXG.SOURCLIB(CONFIMXG)'
                 //MXGNAMES DD DSN=MXG.USERID(MXGNAMES),DISP=SHR

               or you can provide the names in the jobstream, with:

                 // EXEC SAS,CONFIG='MXG.SOURCLIB(CONFIMXG)'
                 //MXGNAMES DD *
                  %LET MXGUSER1=HLQ.MXG.USERID;
                  %LET MXGSOURC=HLQ.MXG.SOURCLIB;
                  %LET MXGFORMT=HLQ.MXG.FORMATS;

              -In addition, the VMXGCNFG macro that was designed by Rich
               allocates the //SOURCLIB with OPEN_ED-1047 encoding; by
               doing so, the setting for NLSCOMPATMODE is moot, and by
               doing this, all NLS sites running with a locale that is
               non-ENGLISH_UNITEDSTATES will never need to worry about
               NLSCOMPATMODE, so MXG never has to worry about those SAS
               language encoding issues again.
   Thanks to Rich Anderson, SAS Institute Technical Support, USA.
   Thanks to Chuck Hopf, Independent Consultant, USA.

Change 27.355  For execution under Windows, the unconditional create of
VMXGALOC       existing directories or the delete of non-existent ones
Jan 17, 2010   caused popups that delay jobs until the popup is cleared.
               An OPTIONS NOXWAIT was relocated around the TREND dataset
               allocations, which will eliminate the popup messages, but
               the creations/deletions are also now done in conditional
               tests, now that we know these Windows commands exist:
                 This command tests if a folder exists before trying to
                 delete its files
                   If exist "m:\asdf\fdsa" del /q "m:\asdf\fdsa\*.*"
                 and this command makes sure a folder doesn't exist
                 before trying to create it:
                   If not exist "m:\asdf\asdf" md "m:\asdf\asdf"
   Thanks to Jim Quigley, ConEd, USA.

Change 27.354  An MXGNOTE now prints the value of _IMSVERS on the log of
IMACIMSA       the TYPEIMSA and TYPEIMSB steps of the JCLIMSL6 job. If
JCLIMSL6       IMS V9 records are read with _IMSVERS set to 10, an 08x
TYPEIMSA       record is dumped with INVALID YYYY error; in V9, the YYYY
TYPEIMSB       is located byte 81, but with _IMSVERS of 10, MXG tries to
Jan 15, 2010   to read the YYYY starting in byte 101.  Before MXG 27.01
               and Change 27.033, _IMSVERS was set either in IMACIMSA or
               in your IMACKEEP, but now its value is set with statement
                  %LET MACKEEP=  MACRO _IMSVERS 10.0 %  ;
               in the //SYSIN test in JCLIMSL6 (twice), so that you do
               NOT have to EDIT IMACIMSA/IMACKEEP to define _IMSVERS.
               This change just adds that diagnostic MXGNOTE so you can
               see the actual value, if you should also see a hex dump!
               Comments were revised to document this change.
   Thanks to Douglas G. Wells, First National Bank of Omaha, USA.

Change 27.353  While I expected RMFINTRV would be used to create a small
VMXGRMFI       number of "WORKnn" workloads, like 20 or so, for ease in
Jan 15, 2010   consolidation of scores of Service/Reporting Classs into
               logical workloads, RMFINTRV can now be created with up to
               999 sets of "WORKnnn" variables, and also supports up to
               9999 Service and Reporting Classes per Workload.
   Thanks to Wayne Bell, UniGroup, Inc., USA.

Change 27.352  Variable SMF42JOQ was incorrectly "spelled" with a zero
VMAC42         instead of an "oh".
Jan 12, 2010
   Thanks to Ravi Ambat, CitiGroup, SINGAPORE.

Change 27.351 -READDB2 didn't invoke the EXdddddd member when selection
READDB2        generated an _Edddddd macro with only OUTPUT _Wdddddd,
Jan 12, 2010   causing any new variables you created in your tailored
               EXdddddd to be not created.  READDB2 now always %INCLUDEs
               the EXdddddd member in its generated MACRO _Edddddd text.
               EXCEPT:  The EXPDBACB exit is NEVER called when READDB2
               was asked to create DB2ACCTB, because the MXG EXDB2ACB
               does NOT output DB2ACCTB (because of potential size), and
               if READDB2 calls your tailored EXDB2ACB that did output,
               then we would output DB2ACCTB twice.
              -Logic for selection with DB2xxxx=AAAA/BBBB/CCCC/DDDDD
               was corrected and simplified so it always works as doc'd.
              -PROC COPY when PDBOUT= is specified only copies DB2 data
               (and not any other datasets that happened to be in WORK).
   Thanks to Raff X. Rushton, IBM Global Services, USA.

Change 27.350  This 1994 example analysis of "bands" of Usage is updated
ANALUSAG       to use TYPE72GO instead of TYPE72 and an example JCL was
Jan 12, 2010   added in the comments.
   Thanks to R. Wells, American General Finance, USA.

Change 27.349  Support for RMM APAR OA28930 which relocates the fields
VMACEDGR       RDBLKCNT and RDTOTAL and expands them to 20 (EBDCIC) NUM
Jan 12, 2010   charaters in the DEXT and XEXT records.
              -Support for RMM APAR OA24025 which adds fields RDBESKEY
               (DEXT) and XDBESKEY (XEXT) with the CA Tape Encryption
               Key value.
   Thanks to John Grasing, MetLife, USA.

Change 27.348  The Optional SYSLOG Message Capture in MXGTMNT Tape Mount
ASMTAPEE       Monitor program expected a maximum of 255 lines in a
Jan 12, 2010   multi-line Console Message (see Change 27.336 text), but
               HASP636 message caused an SVC DUMP "MXG Monitor Extension
               Subtask Abend" with its 1541 lines!  This update, ML-46,
               avoids the SVC Dump by skipping messages with over 255
               lines, but is only a circumvention; once we can create a
               similar large message on our test system, so we can see
               the control block structure, we will create an ML-47
               update that will support any multi-line console message.
   Thanks to Beau Chavis, Bank of America, USA.
   Thanks to Skip Abadie, Bank of America, USA.

Change 27.347  TMON/VTAM "SI" record Interval variables were not all
VMACTMVT       input; I apparently had an incorrect DSECT or misread it.
Jan  8, 2010
   Thanks to Paul Volpi, UHC, USA.

Change 27.346  Analysis of Hourly CPU Times in MXG TYPE70, TYPE72GO, and
ANAL307X       SMFINTRV datasets (or in ITRM XTY70, XTY72GO, & XSMFINT)
Jan 14, 2009   to compare times captured in LPAR Dispatch and Effective,
               captured in Service Classes, and captured in SMF Interval
               Address Space records.  Two reports, one BY SYSTEM and
               one with detail BY SYSTEM SRVCLASS are produced.
               The identification of the "Hour" of RMF and SMF Interval
               observations is not straightforward; you must start with
               the "projected interval end time" SYNCTIME/SMF70GIE and
               then subtract from it to get the STARTHOUR, and the value
               to subtract is different if you have SYNC(59) specified
               in SMFPRMxx instead of the recommended SYNC(0) option.
                  Note: MXG has ALWAYS recommended SYNC(0) so that RMF
                  and SMF interval records are written at 00/15/30/45 to
                  create clean, comparable intervals.  But if you still
                  have MICS, then you are unfortunately stuck with using
                  SYNC(59) to write at 14/29/44/59 minutes, because MICS
                  still uses SMFTIME to define its intervals, a (poor)
                  design that requires records be written early.
   Thanks to Dick Cook, North Carolina Dept of Info Technology, USA.
   Thanks to Francisco Ojeda, SAS Institute, USA.
   Thanks to Joe Piechota, SAS Institute, USA.

Change 27.345  This JCL example uses UTILBLDP to process CICS and DB2
JCLCIDB2       SMF records to create PDB.ASUMUOW and PDB.CICS for
Jan  7, 2010   complete analysis.  The output datasets are COMPRESSED
               but COMPRESS=NO is used for the intermediate datasets,
               to save CPU time (at the cost of doubling WORK space).

Change 27.344  Variables LPCTBY and PCTLPBY were missing in dataset
VMXG70PR       PDB.ASUMCELP for the LPARNAME='PHYSICAL'.
Jan  7, 2010
   Thanks to Karl Lasecki, Chemical Abstracts, USA.

Change 27.343  %VMXGSET is enhanced to permit multiple datasets to be
VMXGSET        read from each data library, and new option APPEND=YES
Jan  6, 2010   removes the semi-colon from the constructed SET statement
               so that you can add other dataset(s).  This syntax:
                %VGETDDS(DDNAMES=PDB);
                DATA COMBINE.JOBS;
                %VMXGSET(DATASET=JOBS,APPEND=YES) DAY.SPUNJOBS;
               will read all of the JOBS datasets in the PDBx DDNAMEs
               and the DAY.SPUNJOBS dataset.
   Thanks to George Pandzik, USAA, USA.

Change 27.342  XAMSYS records from XAM Release 3.4 had SEGLEN=168, but
VMACXAM        MXG code for Release 3.7 expected SEGLEN=220, causing
Jan  5, 2010   an MXG ERROR message for each record.  Now, the XAMSYS
               record's length is tested and only the old variables are
               input for SEGLEN=168.
   Thanks to Roger Foreman, Acxiom, USA.
   Thanks to Jerry Urbaniak, Acxiom, USA.

Change 27.341  Change 27.257 added a warning and correction if SUBTYPE
VMACSMF        in an SMF record exceeded 255 (because the SMF record
Jan  5, 2010   creator incorrectly stored their subtype in the left byte
               instead of the correct location in the right byte).
                 The correction is ONLY needed when just the SMF header
                 logic is used (only in MACRO _SMF, or UTILGETM), so
                 that the real SUBTYPE value is available for reporting
                 or selection.
               Now, the WARNING is NOT printed by default; you can print
               the warning with  %LET MXGDEBUG=VMACSMF;
   Thanks to Jerry Urbaniak, Acxiom, USA.

Change 27.340  SRM Thales Security PTF SL24010 INCOMPATIBLY changed the
VMACSRMH       Summary Record, which caused zero observations to be
Jan  5, 2010   created in datasets SRMHSMAP and SRMHSMDE.  New variables
                    S04DBUSY S04DOVER S04DINTV S04DNCNT S04DUFLG
               are now added to SRMHSMDE and the PTF is now supported.
   Thanks to Kim Nguyen, National Australia Bank, AUSTRALIA.
   Thanks to Shu chun Lai, National Australia Bank, AUSTRALIA
   Thanks to Anne Chung, National Australia Bank, AUSTRALIA.

Change 27.339  Change 27.046 (MXG 27.02) changed four error variables
VMACEDGR            RVTRERR RVTWERR RVPRERR RVPWERR
Jan  4, 2010   from character to numeric when IBM changed their lengths
               from four to five bytes, but that was not documented.
               If datasets built with MXG 27.01 or earlier are combined
               with datasets built with MXG 27.02 or later, then this
               ERROR: VARIBLE RVPERR DEFINED AS BOTH CHAR AND NUMERIC
               will result.  The only solution is to convert those old
               character variables to numeric variables prior to merge
               with the new datasets.  This can be done with
                  DATA PDB.EDGRVEXT;
                   SET PDB.EDGRVEXT
                     (RENAME=(RVTRERR=XRVTRERR
                              RVTWERR=XRVTWERR
                              RVPRERR=XRVPRERR
                              RVPWERR=XRVPWERR));
                   RVTRERR=INPUT(XRVTRERR,5.);
                   RVTWERR=INPUT(XRVTWERR,5.);
                   RVPRERR=INPUT(XRVPRERR,5.);
                   RVPWERR=INPUT(XRVPWERR,5.);
                   DROP XRVTRERR XRVTWERR XRVPRERR XRVPWERR;
                   LENGTH DEFAULT=4;
                  DATA PDB.EDGRXEXT;
                   SET PDB.EDGRXEXT
                     (RENAME=(RVTRERR=XRVTRERR
                              RVTWERR=XRVTWERR
                              RVPRERR=XRVPRERR
                              RVPWERR=XRVPWERR));
                   RVTRERR=INPUT(XRVTRERR,5.);
                   RVTWERR=INPUT(XRVTWERR,5.);
                   RVPRERR=INPUT(XRVPRERR,5.);
                   RVPWERR=INPUT(XRVPWERR,5.);
                   DROP XRVTRERR XRVTWERR XRVPRERR XRVPWERR;
                   LENGTH DEFAULT=4;
   Thanks to Steve Sombke, American Century, USA.

Change 27.338 -The new DATEJUL= argument to generate dataset\directory
VGETDDS        names that contain the Julian Date didn't stop at 2009365
Jan  3, 2010   but tried to create 2009366, 2009367, etc.  The arguments
               are now validated and if both start and end are Julian,
               then the names are built with Julian datea.  Otherwise,
               if the arguments are numeric, then the names contain just
               numeric sequences.  When Julian dates are detected, then
               SAS Date functions are used, so the names will correctly
               roll forward or backward and both year-end AND leap-year
               dates are correctly generated as the names.
              -The length of the Julian Date argument can be either five
               (09360) or seven (2009360) digits, but the directory or
               z/OS dataset name must have the same number of digits.
               So you can use
                 %VGETDDS(DATEJUL=h:\mxg\d,start=09360,end=10010);
               for directory names h:\mxg\d09365 thru h:\mxg\d10010
               or you can use
                 %VGETDDS(DATEJUL=h:\mxg\d,start=2009360,end=2010010);
               for directory names h:\mxg\d2009365 thru h:\mxg\d2010010
   Thanks to George Pandzik, USAA, USA.

====== Changes thru 27.337 were in MXG 27.11 dated Dec 31, 2009========

Change 27.337  The sort order for TYPE70PR was wrong in 27.10 MONTHBLD;
MONTHBLD       a second MACRO _BYLIST and _MNTHBLD should have been
Dec 30, 2009   removed.  The correct sort order is reduced to now be
                 SYSPLEX SYSTEM SYSNAME STARTIME
               to avoid NOT SORTED conditions.
   Thanks to Winnie Pang, Hawaii Medical Services Association, USA.

Change 27.336  Variable SYSLTEXT was arbitrarily INPUT as length $1024,
VMACTMNT       sufficient for all tape-mount-related SYSLOG text,
Dec 24, 2009   but other SYSLOG records that can be written by MXGTMNT
               can be 32384 bytes long; that is the maximum number of
               lines in a multi-line WTO SYSLOG message (255) times the
               maximum length of each message (126) plus one byte we add
               between each message (254).  MXGTMNT processes the
               segmented records, which is the way the system presents
               multi-line WTOs via the console interface.  MXGTMNT
               concatenates the messages into one block in one subtype 9
               as opposed to creating multiple subtype 9s.  So MXGTMNT
               is covered unless IBM increases the number of lines or
               message length which is not very likely but easily
               addressed if they do. SYSLTEXT is now 32384.
   Thanks to Beau Chavis, Bank of America, USA.
   Thanks to Skip Abadie, Bank of America, USA.

Change 27.335  A stray  */  at the end of ANALFIOE prevented any other
ANALFIOE       subsequent %INCLUDEs to be bypassed.  Unmatched comment
Dec 22, 2009   pairs often cause strange/unpredictable results.
   Thanks to Brian Harvey, HCL America, USA.

Change 27.334  MXG 27.10 only.  Macro variable &EPDBINC was accidentally
EXPDBINC       left in the EXPDBINC member, but it is already correctly
Dec 21, 2009   located in BUILPDx, causing a second unwanted invocation
               if %LET EPDBINC= was used to tailor BUILDPDB.  However,
               it should be noted that there is an inconsistency between
               the syntax of the EPDBINC macro variable and the EXPDBINC
               member, to include VMACxxxx's for BUILDPDB tailoring:
                %LET EPDBINC=   MEMBER1 MEMBER2 ;
                EXPDBINC code:  %INCLUDE SOURCLIB(MEMBER1 MEMBER2);
               The value of %LET EPDBINC= is one or more MEMBER names to
               be %INCLUDEd, while the code to use in the alternative
               EXPDBINC member is one or more %INCLUDE statements.
              -UTILBLDP sets &EPDBINC if USERADD=xxxx was specified when
               it created its output SYSIN file, so this error could
               cause a perfectly-running "BUILDPDB" that was built by
               %UTILBLDP to fail when 27.10 is 'dropped in'. Copy the
               EXPDBINC member into your tailoring library and remove
               the &EPDBINC at the bottom, and your job will then run.
               (Fortunately, the error is a syntax error at the start of
               the BUILDPDB run, so it is fully restartable.)
   Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.

Change 27.333  The RMF Summary Report (REPORT=SMRY) was incorrect for
ANALRMFR       most fields; averages of averages were printed, and the
Dec 20, 2009   CPU Busy included Specialty Engines when it shouldn't.
Dec 31, 2009
   Thanks to Lisa L. Lawver, Land's End, USA.

Change 27.332  The Analysis of Job Events selects all SMF records for
ANALJOBE       chosen jobs and prints the sequence of events in the life
Dec 18, 2009   of a job.  The MACJBCK selection example tested JESNR,
               but JESNR doesn't exist in many job-related records that
               are read.  Comments were revised for selection choices.
              -The logic was restructured to eliminate uninitialized and
               missing values, and durations of DSENQTM, LOADTM, and the
               SELAPSTM are correctly printed with associated events.
   Thanks to Douglas C. Walter, Citigroup, USA.

Change 27.331 -Support for TOKDANAM='AUTOUID' in dataset TYPE80TK, and
VMAC80A        protection for unknown TOKDANAM revised to prevent the
Dec 16, 2009   STOPOVER ABEND.
   Thanks to David Schumann, Blue Cross Blue Shield of Minnesota, USA.

Change 27.330 -Variable SMF82PDK now input as VARYING4096, vice 256 and
VMAC82         longer length is protected if SMF82PLL is GT 4096.
Dec 16, 2009  -SMF82PTA is input as $EBCDIC8. vice $CHAR8. and no longer
VMAC80A        formatted $HEX.
Jan 17, 2009  -SMF82RKN is input as $CHAR64. vice $CHAR16 and format is
               updated.
   Thanks to Matthew T. Chappell, Queensland Dept. Transport, AUSTRALIA.

Change 27.329  MXG 27.10 only, and ONLY if _S110ST is used to only sort
VMAC110        the statistics dataset. ERROR: CICIDNNR NOT FOUND because
Dec 15, 2009   that variable was not kept in the new CICSIDND data set.
               But the two new Identity datasets, CICSIDND and CICSIDNT
               should not have been in the _S110ST "sort statistics"
               macro; they are from subtype 1, not subtype 2, records,
               and they are NOT sorted in _S110, as they can be large
               volume datasets.  Four other non-statistics dataset from
               subtype 1 were also removed from _S110ST sort macro.
               These subtype 1 datasets are not sorted by MXG:
               /*_SCICRDS - CICSRDS  IS NOT SORTED, CAN BE HIGH VOLUME*/
               /*_SCICRDS - CICSRDS  IS NOT SORTED, CAN BE HIGH VOLUME*/
               /*_SCICRDF - CICSRDFI IS NOT SORTED, CAN BE HIGH VOLUME*/
               /*_SCICRDQ - CICSRDQU IS NOT SORTED, CAN BE HIGH VOLUME*/
               /*_SCICIDN - CICIDNTY IS NOT SORTED, CAN BE HIGH VOLUME*/
               /*_SCICIDD - CICIDNDD IS NOT SORTED, CAN BE HIGH VOLUME*/
               unless you choose to add their _Sdddddd invocation in the
               EXPDBOUT (for BUILDPDB), or after your TYPE110 include.
               The Pdddddd/Wdddddd resets were also removed from the
               _CICSTAT and _CICSTAS macro definitions for consistency.
   Thanks to Glen Bowman, Wakefern, USA.

====== Changes thru 27.327 were in MXG 27.10 dated Dec  6, 2009========

Change 27.327 -The DURATM variable in PDB.ASUMMIPS is the "expected"
ASUMMIPS       interval of your summarization, e.g. 1 Hour, so it does
Dec  6, 2009   not report if there were less than a full hour input
               (i.e., the last interval).  New variable DUR70 created in
               PDB.RMFMSUSE contain the actual duration of the TYPE70
               records that were summarized, so you can delete those
               short intervals with DUR70 LT DURATM, or use DUR70 to
               identify incomplete (or possibly outage) intervals.
              -ASUMMIPS now works with &KEEPALL=NO; it created output
               obs only if the MXG default &KEEPALL=YES was in effect,
               but that was an MXG oversight/error now corrected.
   Thanks to Willy Iven, BNP Paribas Fortis, BELGIUM.

Change 27.326  Variable QDSTQCIT should not have been deaccumulated in
VMACDB2        PDB.DB2STATS.
Dec  5, 2009
   Thanks to Terry L. Berman, DST Systems, USA.

Change 27.325  z/OS 1.11 ONLY: INVALID TYPE 0 RECORD DETECTED, DELETED
VMAC0          with LENGTH=60 is an MXG error; that new record length is
Dec  3, 2009   correct, and should have been output to TYPE0/IPLS. MXG
               Change 27.229 decoded the new z/OS 1.11 field, but I had
               forgotten about this (VERY OLD) test for invalid length.
                 This test exists because it is easy for a SYSPROG to
                 accidentally create an ID=0 SMF record when trying to
                 write a "user" SMF record, and there is a very high
                 cost (or embarrassment) if MXG reports that there was
                 an IPL when one had not happened!
   Thanks to Douglas C. Walter, Citigroup, USA.

Change 27.324  Support for IBM's InfoSphere Change Data Capture (CDC)
EXCDCLOG       product's user SMF record creates these new datasets:
EXCDCSRC         dddddd   Dataset   Description  Contains Segments
EXCDCSYS         CDCLOG   CDCLOGCA  LOG CACHE     DLR DCW
EXCDCTGT         CDCSRC   CDCSOURC  SOURCE        SCT SDT DSL CDI CDO
FORMATS          CDCTGT   CDCTARGT  TARGET        TCT DTC CDI CDO
IMACCDC          CDCSYS   CDCSYSTM  SYSTEM        OSC CIT PAL MAA CMO
TYPECDC                                           CLS CVF DSC DCM DLP
TYPSCDC                                           DAL PAA CCI CCO
VMACCDC
VMXGINIT
Dec  3, 2009
   Thanks to Jerry Urbaniak, Acxiom, USA.

Change 27.323  Harmless VARIABLE DURATM UNINITIALIZED note for CPS70PR7
VMXG70PR       is eliminated.
Dec  2, 2009
   Thanks to Kenneth D. Jones, Bell Aliant, CANADA.

Change 27.322 -New "STATS" value for IFCIDS= in READDB2 creates only the
READDB2        PDB.DB2STATS Interval Statistics Dataset in PDBOUT=PDB,
Dec  3, 2009   an alternative to the value "STATISTICS" that creates ALL
               DB2 Statistics Datasets in the PDBOUT.  PDB.DB2STATS is
               is created from DB2STAT0/DB2STAT1/DB2STAT4 and summarized
               DB2STATB, all of which are left in //WORK with "STATS".
               The PDB.DB2STATS contains all of DB2STAT0/STAT1/DB2STAT4.
              -The "ACCOUNT" value creates all DB2ACCTx datasets, but
               you can select a subset using the WANTONLY= argument.
               You can now just name the wanted DB2ACCTx dataset in your
               IFCIDS= argument, in place of ACCOUNT, and only those are
               created.  Both IFCIDS= and WANTONLY= values can now be an
               MXG dataset name (e.g., DB2ACCTP, DB2ACCT), although the
               original unique-to-READDB2-token-names (DB2ACTP,DB2ACCT)
               that are listed in READDB2 comments are still valid.
                 So if you only want the three common datasets created,
                %READDB2(IFCIDS=DB2ACCT DB2ACCTP STATS,PDBOUT=PDB) will
               create PDB.DB2ACCT, PDB.DB2ACCTP, and PDB.DB2STATS from
               SMF 100 and 101 records.
              -DB2 V8 only: The "DB2STAT4" is an SMF 102 IFCID=225 trace
               record; if you have those data, this syntax
               %READDB2(IFCIDS=DB2ACCT DB2ACCTP STATS 225,PDBOUT=PDB);
               creates T102S225 and use it also to create PDB.DB2STATS.

Change 27.321 -DB2 variable QPACAAFG in DB2ACCTP identifies the type of
FORMATS        Package that was executed and decoded by $MGDB2PK format
MRGDB2         with new-in-DB2-V9.1 value of '04:NATIVE SQL' added.
Dec  2, 2009     VALUE $MGDB2PK
                  '  '='BLANK:NOT DEFINED'
                  '01'='01:STORED PROCEDURE'
                  '02'='02:USER DEFINED FUNCTION'
                  '03'='03:TRIGGER EXECUTING'
                  '04'='04:NATIVE SQL'
              -New MRGDB2 member will be renamed or become an example.
              -It merges variables from PDB.DB2ACCT with PDB.DB2ACCTP
               to create PDB.ENHACCTP for Enhanced Package Accounting.
               In this example, variable DB2PARTY is added, so ACCUMACC
               Package ROLLUP RECORDS (QWACRINV=1,2,3 DB2PARTY='R') obs
               can be identified;  ROLLUPs don't have valid values in
               these Package (DB2ACCTP) variables, so this example sets
               all these variables in PDB.ENHACCTP to blank/missing for
               the ROLLUP Package records:
                 IF DB2PARTY='R' THEN DO;
                     /* DOCUMENTED INVALID IN PK67870: */
                   QPACLOCN=' ';
                   QPACCOLN=' ';
                   QPACPKID=' ';

                   /* DOCUMENTED INVALID IN DSNWMSGS: */
                   QPACAANM=' ';
                   QPACARNA=.;
                   QPACASCH=' ';
                   QPACCANM=.;
                   QPACCAST=.;
                   QPACCONT=' ';
                   QPACEJST=.;
                   QPACLOCN=' '; /*YES, IN BOTH*/
                   QPACSCB=.;
                   QPACSCE=.;
                   QPACSPNS=.;
                   QPACSQLC=.;
                   QPACUDNU=.;
                   QPACUDST=.;
                 END;
              -The sort order of the new example PDB.ENHACCTP dataset is
                 BY QWHSSSID QWHCAID QWHCOPID QWHCPLAN QWHSACE
                    QWHSLUUV DESCENDING QWHSSTCK;
   Thanks to Scott Barry, SBBWorks, Inc., USA.

Change 27.320  CICS User fields SRCE,SRCETYPE,SRCEPROG,MSGLEN are
IMACAAAA       supported in listed new IMACICxx CICS exit members.
IMACICUF          IMACICUF - SRCE
IMACICUG          IMACICUG - SRCETYPE
IMACICUH          IMACICUH - SRCEPROG
IMACICUI          IMACICUI - MSGLEN
UTILEXCL
VMAC110
Nov 26, 2009

Change 27.319 -DB2ACCT obs for Java Universal Type 4 JDBC Driver (JCC)
FORMATS        (QMDAPTYP='JCC') did not populate these QMDASQLI fields:
VMACDB2          QMDAPLAT QMDAAPPL QMDAATID QMDASFLN  ACCOUNTn
Nov 25, 2009  -Cosmetic: Format $MGDB2PN added JCC for QMDAPTYP.
                 'ARI'='ARI:DB2 FOR VM,VSE'
                 'DSN'='DSN:DB2 FOR Z/OS'
                 'JCC'='JCC:UNIVERSAL JDBC DRIVER'
                 'QSQ'='QSQ:DB2 FOR I/SERIES'
                 'SQL'='SQL:DB2 FOR LINUX/UNIX/WIN'
   Thanks to Hugh Lapham, Royal Canadian Mounted Police, CANADA.

Change 27.318  Cosmetic; no change if COMPRESS=YES default is unchanged.
VMAC102        Several DB2 text-containing variables were $32000 LENGTH
Nov 24, 2009   because old DSECTS had no clue of their maximum lengths,
               but some of these SMF 102 fields are shortened to their
               (newly documented, probably unchanged) stored lengths:
                 QW0059CN  $128 QW0061CN  $128 QW0063ST $5000
                 QW0145TX $4000 QW0203PA  $128 QW0206MS  $256
                 QW0206MR  $256 QW0206HR   $64 QW0208MS  $256
                 QW0208MR  $256 QW0236MS  $256 QW0236MR  $256
               These text fields are still $32000 stored length:
                 QW0004MS QW0005MS QW0062ON QW0064CN QW0065CN QW0066CN
                 QW0090CT QW0092P1 QW0097P1 QW01242T QW0140TX QW0141TX
                 QW0142TX QW0168ST QW0180DS QW0194DS QW0204TH QW0350SP

Change 27.317  Support for APAR OA28670 RMF 70 Crypto Express3 Feature.
FORMATS       -Variables R7023CT and R7024CT, Crypto Processor Type, are
VMAC7072       now decoded by $MGRMFCX format.
Nov 20, 2009  -Dataset TYPE70Y2 new variables created by the APAR:
                 R702CDLV='ICSF*DATA*LEVEL'
                 R702AESC='AES*ENCIPHER*CALLS*SENT'
                 R702AESB='AES*ENCIPHER*BYTES*PROCESSED'
                 R702AESI='AES*ENCIPHER*OPERATIONS'
                 R702AEDC='AES*DECIPHER*CALLS*SENT'
                 R702AEDB='AES*DECIPHER*BYTES*PROCESSED'
                 R702AEDI='AES*DECIPHER*OPERATIONS'

Change 27.316  This JCL example shows how to split MXG into parallel job
JCL40GIG       streams, to reduce run times, or to run parts of MXG more
Nov 19, 2009   than once per day (like multiple CICSTRANs), etc, and is
               the example for the DOC40GIG parallelization document.
   Thanks to Chuck Hopf, Independent Consultant, USA.

Change 27.315  New HSMMH and SAFUSER variables are created in TYPETPMX.
VMACTPMX       from $HSM_MH and $SAF_US field names in the ThruPut Mgr's
Nov 18, 2009   user SMF record.
              -Doc: ThruPut Manager delays:
                DCS - Dataset Contention Delays; when TPM detects that a
                      job needs a dataset that is being held, it holds
                      the new job.
                DBS - Device Busy Delays.
   Thanks to Betty Wong, BOA, USA.

Change 27.314 -SMF 82 Crypto dataset TYPE8219 datetime variables were on
VMAC82         GMT, but now SMF82XTD/XTN/XTW are shifted by GMTOFF82 to
Nov 17, 2009   local time.
              -New variable SMF82ELP, Elapsed Duration, is now created
               in TYPE8219 and TYPE8220 datasets.
              -Label for SMF82SSI corrected.
   Thanks to Cesar Cocco, Citigroup, USA.

Change 27.313  Analysis of Job Initiator Queue now uses PDB.SPUNJOBS
ANALINIT       dataset only if it exists, eliminating NOT FOUND error.
Nov 15, 2009
   Thanks to Chuck Hopf, Independent Consultant, USA.

Change 27.312  MXG 27.09 only.  Change 27.254 was incorrect for NTSMF
VMACNTSM       processing on ASCII; that change was intended only for
Nov 15, 2009   VBS format data.  The RECFM=V is restored for ASCII.
   Thanks to Jim Quigley, ConEd, USA.

Change 27.311  Reserved Change Number.
Nov 14, 2009

Change 27.310  New parameter DATEJUL= creates DSNAMEs with the date in
VGETDDS        Julian format, YYYYDDD, as an alternative to DATEBASE=
Nov 17, 2009   which creates the DATE in the DSNAME in DDMONYY format.
               The START and END values can be specified with MDY values
               or JULIAN values, or even a numeric string.
   Thanks to Brian Harvey, HCL America, USA.

Change 27.309 -z/VM dataset VXSYTEPM variable's values were carried from
FORMATS        from prior CMG segments (so ESCON variables could be
VMACVMXA       populated in FICON observations).  Now, the "other" CMG's
Nov 11, 2009   variables are set to missing values.
              -New variable CHPIDTYP identifies the type of channel and
               is formatted by new $MGVXACH format, which identifies the
               type of OSA adapter, and it should be used in your sorts.
              -New variables PCTCPCBY and PCTLPABY are calculated from
               Work Units (like TYPE73) for CMG=2 (FICON) records.
   Thanks to Melanie Hitchings, BT, ENGLAND.

Change 27.308  MXG 27.08-27.09. SYNC59=NO again default VMXGDUR,VMXGSUM.
VMXGDUR
VMXGSUM        Caused minor differences in hourly counts in PDB.CICS
Nov 10, 2009   when minute 59 count/resources were shifted to next hour.

ASUMCICX       Change 27.214 changed the internal default to SYNC59=YES,
ASUMCICS       in these two internal members that summarize everything,
ASUMCICS       its text claiming "ALWAYS SAFE"! But that is ONLY true if
ASUMCICT       the input data being summarized is "interval" data, i.e.,
ASUMCIMS       it already contains the Interval Start/End times, like
ASUMDB2A       RMF,SMFINTRV,DB2STATS, or if SYNC59=YES was specified in
ASUMDB2B       the ASUM/TRND/etc that invoked %VMXGSUM.
ASUMDB2G
ASUMDB2P       Instead, when the input data being summarized is "events"
ASUMDBDS       or "transactions", like CICSTRAN,DB2ACCT,ASUMUOW, wherein
ASUMDBSB       VMXGSUM creates the Interval Start/End times, my change
ASUMHSM        from NO to YES caused differences in hourly counts in the
ASUMIDMS       PDB.CICS dataset (created from CICSTRAN by ASUMCICX) as
ASUMJOBS       those minute 59 data were being counted in the next hour.
ASUMSTC          (There's nothing wrong in using SYNC59=YES in ASUMCICX
ASUMVTVM          to shift those minute 59 transactions, if that's what
                  you know you want because you have SYNC(59) data, but
                  I should not have changed that global default!).

               While not required with the restored default value, the
               listed ASUMxxxx members use input event data and create
               interval start/end times, so they now all contain the
               SYNC59=NO option, mostly for documentation.
   Thanks to Paul Naddeo, FISERV, USA.

Change 27.307  Ancient DB2 Version 7.1 records have non-zero offset and
VMACDB2        length for the "truncated" QMDALOCN field, so MXG read in
Nov  6, 2009   that longer text into QMDALOCN, but examination of those
               longer text values show they are not valid, and since the
               DB2 V7.1 DSNDQMDA doesn't show the "truncated" offsets,
               which appear to have been added in DB2 V8.1, the input of
               the truncated field is now bypassed for QWHSRELN LE 7.1.

Change 27.306  Oracle SMF records are restructured, which surfaces as
VMACORAC       ERROR: ILLEGAL VALUE FOR STARTS messages.  This change
Nov  6, 2009   recovers all original values, and creates seven ORACUNNn
               numeric unknown variables and two ORACUNCn character
               variables observed in the SMF records.  These variables
               will be named when a DSECT is available.

Change 27.305  The MSU and MIPS calculations in ASUMMIPS for workloads
ASUMMIPS       (i.e., the Service Class MSU from TYPE72GO and Address
Nov  6, 2009   Space MSU from SMFINTRV) did NOT take into account the
               Capture Ratio.  of each of the engine types; only the
               Captured CPUTM was used.  This change keeps the RMFINTRV
               Capture Ratio variables (CAPTURAT CAPIFART CAPZIPRT) for
               each Engine type, and the MSUUSED is divided by
               (CAPxxxxx/100) to take into account the Interval Capture
               Ratio for that SYSTEM for that engine type.  This will
               cause the xxxUSED values to be estimates of the hardware
               utilization, and they will be slightly larger now.  If
               intervals are summarized, the Interval Capture Ratio is
               the weighted average of the input data.  The use of
               Capture Ratio can be turned off by specifying a 0 instead
               of 1 for the _USECAPT macro.
   Thanks to Brian Harvey, HCL America, USA.

Change 27.304  The IFA/zAAP and zIIP Capture Ratios are wrong if those
VMXGRMFI       Specialty Engines are faster than the CP engines, because
Nov  6, 2009   the IFATM/ZIPTM are normalized values.  Now, the factors
Dec  3, 2009   R723NFFI and R723NFFS, respectively, are used in the MXG
               calculation of CAPIFART and CAPZIPRT Capture Ratios.  The
               CPU times are NOT changed back to raw values.

Change 27.303  CICS Total I/O Wait WTTOIOTM & Total Other Wait WTOTIOTM
ADOC110        variables now include all 45 WAIT durations included in
VMAC110        Suspend Time that are in IBM's CICS Performance Guide for
Nov  5, 2009   CICS/TS 4.1; these six wait durations are not separately
Nov 10, 2009   in WTOTIOTM because they are included in RMISIOTM:
                 IMSWAITM DB2RDYTM DB2CONTM DB2WAITM DSCHMDTM WMQGETTM
              -Member ADOC110 is updated with the complete list of which
               waits are I/O and which are Other waits, and a schematic
               of how these waits are related.  The new equations are:
                 WTTOIOTM=SUM(  /*TOTAL I/O WAIT DURATION*/
                          WTTCIOTM,WTTSIOTM,WTSHIOTM,WTTDIOTM,WTJCIOTM,
                          WTFCIOTM,WTRLIOTM,CFDTWATM,SOIOWTTM,ISIOWTTM,
                          SOOIOWTM,WTIRIOTM,LU61IOTM,LU62IOTM,SZWAIOTM);
                 WTOTIOTM=SUM(  /*TOTAL OTHER WAIT DURATION*/
                          DSPDIOTM,ENQDIOTM,GNQDELTM,WTICIOTM,WTLMIOTM,
                          WTWEIOTM,WTWCIOTM,RUNTRWTM,SRVSYWTM,RQRWAITM,
                          RQPWAITM,SYNCDLTM,MAXOTDTM,MAXJTDTM,MAXSTDTM,
                          MAXXTDTM,RRMSWATM,PTPWAITM,RMISIOTM,JVMSUSTM,
                          DSTCBMTM,DSMMSCTM,WTDWIOTM);
                 WTUNIOTM=MAX(  /*UNCAPTURED WAIT DURATIOM(/
                              0,(SUSPNDTM-(WTTOIOTM+WTOTIOTM)));
   Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.
   Thanks to Dick Arnold, Commerce Bank of Kansas City, USA.

Change 27.302  Variable FTPMEMBR is now kept in TYPETCPC dataset, and
VMACTCP        variable FTPUSRMT is now correctly labeled "REMOTE" and
Nov  4, 2009   not "LOCAL".
   Thanks to Marybeth Delphia, Texas Comptroller of Public Accounts, USA

Change 27.301  Unused Change Number.

Change 27.300  ASMTAPEE ML-45 provides several enhancements.
ASMTAPEE      -Addition of assembly time stamp to initialization message
Nov  1, 2009   TMNT016I.  This will help to confirm that the version of
               TMNT that is active matches the expected assembly.
                  TMNT016I MXG Tape Monitor maintenance level 45
                  initialization complete (2009/10/31-13.15)
              -Modification of the TMNT018I initialization message to
               include the SMF record number being used:
                  TMNT018I MXG Tape Monitor interval set to 0.50 seconds
                  using SMF record number 238
              -Added message TMNT011E (in addition to existing TMNT010E)
               to more clearly identify, in human terms, the reason why
               SMF recording has failed:
                  TMNT010E SMF write failed - SMFEWTM return code is
                           00000028
                  TMNT011E SMF write failed because a buffer shortage
                           caused the data to be lost
              -Added support for BAM (basic access method) use of XTIOTs
               (TIOTs resident above the 16mb line).  This is only
               relevant when the XMEM=YES option is specified.
              -Each ML has small performance enhancements to decrease
               MXGTMNT overhead; generally this involves taking
               advantage of macro options that improve performance
               and/or eliminating unnecessary instructions from
               performance sensitive code paths.  The benefits are small
               from ML to ML but the difference between ML45 and ML26,
               for instance, is fairly significant.

Change 27.299  %MACRO to minimize GDG Base Enqueue when reading SMF(0),
ALOCGOVO       by only opening the GDG Base Name with relative reference
Oct 31, 2009   to get the full "goovoo" dsname, freeing the Base Name,
               and then allocating the FILENAME SMF with the "goovoo"
               name for the actual SMF processing, so the duration of
               the DSNENQUE for the GDB Base Name is very short.
                  Normally, if you use JCL to allocate SMF(0), your job
                  will prevent an SMF Dump from running to create (+1),
                  until your job ends (or, at least until SMF reading is
                  completed, if you use FREE=CLOSE on your //SMF DD).
               The WAIT=20 option is used to open the relative reference
                  FILENAME SMF "YOUR.SMF(0)" DISP=SHR WAIT=20;
               so that if the GDG Base is already in use, SAS will enter
               a Detected Wait state for up to 20 minutes, waking every
               15 seconds to see if the enqueue has cleared; without the
               filename option WAIT=20, SAS would have terminated with
                  ERROR: FILE IS IN USE, YOUR.SMF(0) message).
               The examples show DDNAME=SMF, but that and the options on
               the generated FILENAME statement can be changed.
              -This ALOCGOVO only works if your REMOVE the static DD
               statements from the JCL; otherwise they will still
               control the allocation.
   Thanks to Christian Hodel, Swisscom IT Services, SWITZERLAND.
   Thanks to MP Welch, SPRINT, USA.

Change 27.298  Another Elegant algorithm uncompresses ASG/Landmark data
VMACTIMS       records in SAS code, so it works on ASCII systems (which
VMACTMDB       do not support INFILE exits).  However, it is EXPENSIVE,
VMACTMDC       requiring SIX TIMES THE CPU THAT THE EXITMON6 INFILE EXIT
VMACTMMQ       REQUIRES: USE EXITMON6 ON z/OS.  See Change 27.260.
VMACTMO2       ASG's compression technique is different than IBM's, but
VMACTMTC       a similar increase in CPU Time was observed.  However,
VMACTMVS       since ASCII systems do not support INFILE exits, this SAS
VMACTMVT       code algorithm does support processing of compressed data
Nov  5, 2009   on ASCII or with WPS, which might be worth the CPU cost.
   Thanks to Ian Gibson, CPT Global Ltd @ Bendigo & Adelaid Bank, OZ.
   Thanks to Peter Turner, CPT Global Ltd @ Bendigo & Adelaid Bank, OZ.

Change 27.297 -ANALDB2R - MERGE STATEMENT HAS REPEATED BY VALUES, and
ANALDB2R       SUBSTR errors in AUDIT reports were corrected.
READDB2       -ANALDB2R corrected logic to populate the IFCIDs being
Nov  4, 2009   requested with READDB2 is used with PDB=SMF.
Nov 15, 2009  -READDB2 corrected logic that was suppressing the T102S106
Nov 24, 2009   dataset when WANTONLY was not used, even when requested.
              -READDB2 ACCOUNT and STATISTICS now work as expected, to
               create only those subsets of datasets; examples revised
               to show the use of optional DB2ACTB=NO, etc.
     Thanks to Jim Kovarik, AEGONUSA, USA.

Change 27.296  Variable CECSER added to datasets RMFMSUSE and SMFMSUSE.
ASUMMIPS
Oct 28, 2009
     Thanks to Nicholas Ward, Centrelink, AUSTRALIA

Change 27.295  PRO/SMS SMF records were misaligned after the MSGED text
VMACPROS       which was increased from 256 to 292 bytes; the first 42
Oct 27, 2009   are now GWMSGECH $CHAR42 with $HEX84 format, while the
               actual text is GWMSGED input now as $EBCDIC250.
   Thanks to Scott Barry, SBBWorks Inc., USA.

Change 27.294  IFL observations in ASUM70LP and ASUMCELP had STARTIME
VMXG70PR       and DURATM were missing values, and IFLCPUS was wrong if
Oct 26, 2009   the summary interval was larger than original DURATM.
   Thanks to Kenneth D. Jones, Bell Aliant, CANADA.
   Thanks to Bruce Perry, Bell Aliant, CANADA.

Change 27.293  Support for CICS Identity Propagation, new with z/OS 1.11
EXCICIDD       CICS/TS 4.1 & APARs PK95579,PK83741,PK98426, creates new
EXCICIDN       SMF 110 Subtype 1 MNSEGCL=6 record (if MNIDN=ON in SIT),
FORMATS        from which MXG creates two new datasets:
IMAC110           dddddd   Dataset   Description
VMAC110           CICIDN   CICSIDNT  IDENTITY Transaction Information
VMXGINIT          CICIDD   CICSIDND  Identity Realm/Distinguished Name
Oct 26, 2009   This new Identity Propagation facility sends a user's
Nov 16, 2009   security identity information (the distributed identity)
               from a client system across a network, preserving the
               distributed identity for use during CICS authorization
               and for subsequent auditing purposes.
              -The MNSEGCL=5 record support added by MXG 20.20 was also
               revised and validated.  That record is compressed, while
               the new MNSEGCL=6 record is not.

Change 27.292  Dataset ASUM70LP had missing values for LPSHARC,LPSHARE
VMXG70PR       TOTSHARC and TOTSHARE in the observations for the first
Oct 26, 2009   LPAR (only in the first interval).  Setting LPARNUM=. was
               changed to LPARNUM=9999 so the descending sort corrected
               the missing values.
   Thanks to Horst Noerenberg, GaVI Gesellshaft .. Informatik, GERMANY.

Change 27.291  Variable S42DSRDD was incorrect by a factor of 10**6; the
VMAC42         calculation should have multiplied by 1000 to convert to
Oct 23, 2009   milliseconds, but it instead divided by 1000.  The right
               statement for all three instances now is
                 S42DSRDD=128*S42DSRDD*1000;
   Thanks to Jim Horne, Lowe's Companies, USA.
   Thanks to Sridher Nelliyappan Manivel, Lowe's Companies, USA.

Change 27.290  ASUMUOWT (ASUMUOW with ASG TMON MONITASK vice CICSTRAN)
VMXGUOWT       had not been updated in four years, suggesting not much
Oct 23, 2009   usage, but now it is updated to match ASUMUOW.
   Thanks to Chris Weston, SAS ITRM Development, USA.

Change 27.289  Support for CPUZIPTM in SYNCSORT records; additionally,
VMACSYNC       the new 4-byte fields in the SORTWORK extension are used
Oct 22, 2009   for the primary and secondary track allocations and the
Nov 18, 2009   primary tracks released.
               Syncsort acknowledges that not all sorts can use a zIIP:
              -Eligible sorts (not Merge or copies) are seeing 50 to 60
               percent use of the zIIP eligible algorithms which result
               in a 4 to 10 percent improvement in CPU time.
              -Sorting jobs which employ the following features are
               currently not eligible for zIIP processing:
                 SUM
                 Exit routines other than E15 or E35
                 Using SORTIN with an E15 exit
                 OUTREC with CONVERT
                 Relative length greater than 32756
                 VBS truncation
                 TSO invoked sorts
                 SVC=0
                 VB INCLUDE/OMIT
                 OUTFIL INCLUDE
                 TRUNCATION OF KEYS
                 SYNCSORT TPF SY66820 enables use of:
                   INCLUDE/OMIT with STOPAFT
              -Although these limitations are being reviewed by SYNCSORT
               development staff, there is no schedule nor time frame
               if or when any of these will become eligible for zIIP
               processing.
   Thanks to Jerry Urbaniak, Acxiom, USA.

Change 27.288  New format $MGCICCN is created for variable CMQCNSTA in
FORMATS        CICS Statistics dataset CICIMQ dataset to identify if the
VMAC110        Queue is connected or not.
Oct 22, 2009
   Thanks to Dale Slaughter, Aegonusa, USA.

Change 27.287  MXG 27.09 errors corrected:
DAILYDSC      -ERROR:  New DAILYDSC, DAILYDSN, and DAILYDSR.
DAILYDSN       The new VMXGDSN's argument was changed to TAPEDATA= from
DAILYDSR       TMC= during testing, but the three DAILYDSx members still
VMAC74         had the original TMC= argument in their VMXGDSN calls.
CONFIGV9       If you have an old, tailored DAILYDSx member, it is NOT
Oct 21, 2009   impacted by this new design that uses VMXGDSN.
VMXGDSN       -COSMETIC: VMAC74.
Nov 13, 2009   DEBUGGING PUT statement was not removed.
              -COSMETIC: CONFIGV9
               Option NOMAUTOSOURCEDISPLAY replaces MAUTOSOURCEDISPLAY.
               Many lines printed on log, no impact. See Change 27.284.
               Option was changed in 27.08.
              -Nov 13: VMXGDSN typo PDN corrected to PDB.
   Thanks to Paul Naddeo, FISERV, USA.
   Thanks to Robert Hamilton, Fifth Third Bank, USA.
   Thanks to Rachel Holt, Fidelity Systems, USA.

Change 27.286  PRISMA dataset PRPR1620, variable "UNKNOWN" is now INPUT
VMACPRPR       as OFFSETS, and new variable INTERPOS is INPUT and KEPT.
Oct 18, 2009
   Thanks to Nik Marien, KBC Global Services NV, BELGIUM.

Change 27.285  Label, formats, and spelling corrections:
TYPEIMSA       TYPEIMSA:
VMACNTSM        variable ELAPSTM formatted TIME12.2
VMACQACS       VMACNTSM:
VMACVMXA        labels added
Oct 17, 2009     MLMDINST='MLMD*INSTANCE*NAME'
VMAC71           MLLOINST='MLLO*INSTANCE*NAME'
VMACTMNT         QLBLINST='QLBL*INSTANCE*NAME'
Oct 20, 2009    labels changed
                 SQBTATWB='AVG*TIME TO*WRITE*BATCH'
                 QLBLATWB='AVG*TIME TO*WRITE*BATCH'
                 QLBLTBBA='AVG*TIME*BETWEEN*BATCHES'
                 SQBTTBBA='AVG*TIME*BETWEEN*BATCHES'
                formatted
                 QLBLTBBA QLBLATWB  TIME13.3
                by list changes
                 VMWGURES dataset, VWGRINST inserted
                 VMWHODIS dataset, VMWHINST inserted
                 MLCONS   dataset, MLCOINST inserted
               VMACVMXA:
                label corrected
                 VIMXCD20='DEVTYPE 20*MAXIMUM*VIRTUAL*CPU TIME*ACB'
                variable name spelling corrections in DIF() logic:
                 ASCHLRC ASCHLLC spelling was wrong: ASCCHLRC/ASCCHLLC
               VMACQACS:
                labels added
                 SYSIUL='USER*AUTHORIZATIONS*AVAILABLE'
                 SYSCIU='USER*AUTHORIZATIONS*NEEDED'
               VMAC71:  Dataset TYPE71.
                Variable SMF71GIE was added to the keep list for TYPE71
                by Change 27.178 but the change was not documented.  Now
                it is labeled and formatted.
               VMACTMNT:  Dataset TYPESYMT.
                Variables SYSLENCR, SYSLBLKS labeled.
               VMXGRMFI:  Dataset RMFINTRV.
                Variable NRINTRV now labeled.
                Variables IFATM, ZIPTM are now TIME12.2 formatted.
               VMXG70PR:
                Variables IFAACTTM, ZIPACTTM labeled and TIME12.2'd.
                All LnnPAT variables are formatted TIME12.2
                All LnnIFKTM and LPnILWTM in ASUM70PR TIME12.2'd.
               VMAC30: Variable ASID label corrected.
   Thanks to Chris Weston, SAS ITRM Development, USA.

Change 27.284  The SAS Option MAUTOLOCDISPLAY was added to the CONFIGV9
CONFIGxx       member in MXG 27.08, but not documented.  That option
Oct 16, 2009   prints a message when an autocall %MACRO is invoked, to
               identifies the source member that was autocalled.  That
               option is very useful for MXG Technical Support: having
               a back-level member in your tailoring library causes most
               errors, and so we can diagnose directly from your log,
               without requesting a second run to enable diagnostics.
               However, the message is NOT printed for each compile of
               an autocalled %MACRO, but instead is printed for each
               invocation of an autocall, which causes lots of messages,
               so I have now changed CONFIGV9 to NOT set that option.
               You can reset the option with an OPTIONS= parameter:
                 // EXEC MXGSAS,OPTIONS='NOMAUTOLOCDISPLAY'

====== Changes thru 27.283 were in MXG 27.09 dated Oct 14, 2009========

Change 27.283  CPU Activity Report updates.
ANALRMFR
Oct 14, 2009
   Thanks to Kim Westcott, New York State Office of Technology, USA.

Change 27.282 -TMON for VTAM 'SE' record average values are no longer
VMACTMVT       contained in the record, causing an INPUT EXCEEDED error.
Oct 12, 2009   These variables are now calculated rather than INPUT:
               SEHRTA SENRTA SEINA SEOTA.
              -Some 'SE' records are compressed, while most are not, in
               the test file, so MXG now skips the compressed records,
               printing a message for the first five, but outputting the
               non compressed records.
   Thanks to Paul Volpi, UHC, USA.

Change 27.281 -New XAM datasets are created for PRCAPM, PRCIOP, IODVSW,
EXXAMAPM       and STOASI. Those segments can be repeated in XAMSYS
EXXAMASI       records, and thus must be output in separate datasets.
EXXAMIOP      -New XMMTRPAG dataset created from MTRPAG segment in the
EXXAMPAG       XAMDEV file, which is quite different than the MTRPAG
EXXAMVSW       segment in the XAMSYS file. Variables PGS1-PGS3,CALCYLPA,
IMACXAM        CALCYLPR and CALCYLSP that were previously kept in XAMDEV
VMACXAM        are no longer kept in that dataset as they exist only in
VMXGINIT       the MTRPAG segment in XAMSYS.
Oct 13, 2009  -IMACXAM is updated with the new datasets.
EXXAMSEK      -MANY new variables in release 3.7 that were previously
Oct 17, 2009   overlooked are now output; the KEEP= list for each of
Oct 20, 2009   those datasets lists this Change Number before the list
               of new variables.
              -Additional MXG corrections for alignment corrected these
               dataset's variables:
                 XAMSYS   SYSBUSY
                 XAMUSR   IDLETIME; variable VMTRUSR was removed.
                 XMFALACB INDEX
              -Variable LASTCHNG (a TODSTAMP) is sometimes populated
               with 8-bytes of blanks, which cause a datetime value of
               '27OCT1935:08:26:40.59'.  Now, blanks set it to missing.
              -Additional problems with data values that are observed:
                -Variable SMOOTHTM in XMSUBNET, XMTCPAPP, XMTCPCON has
                 many (not all) instances of negative values.
                -Variables PVMAJTFA in datasets XMVSISFT and XMVSINAP
                 and variable PVMINTFA in dataset XMVSISFT are sometimes
                 negative values.
                -Variable RSASXRPM in XAMSYS dataset can be negative.
                -Variable PTYPE in XMVSISFT is numeric, usually 0 or 4,
                 but it contains blanks; four blank ('40'x) input as
                 PIB4 is the decimal value 1077952576.
                -Variable PPATH in XMVSISFT should contain path name in
                 EBCDIC, but values starting with 'init ' have hex value
                 'BAF3BB'x in the last three bytes.
                -Variable PERFNICE in XMVSISFT can be negative.
              -Oct 17 updates after Barton updated his PL/1 Declares:
               -XAMDEV dataset
                variables PAGUSED SCMWORK SPLUSED no longer exist.
                variables CALSPOOL CALPAGE RDEVDRAN are added.
                MDISK segment, length 92, 8+4+16+16+8+16=68 documented
                CONFIG - corrected
                USEACT - corrected
               -XAMSYS dataset
                RLEASE - corrected
                SUBSUM - corrected
                MONITR - corrected
                MTRMEM - corrected
                MTRSYS - corrected
               -XAM TCP record
                FALCPU - updated.
                TCP    - updated.
                HSTSFT - updated.
                VSINAP - updated.
                VSIUSR - updated.
              -Oct 20 status: updates pending documentation
               DEV - IODQDS - Segment not documented.
               DEV - MDISK  - Extra data not documented.
               DEV - SEKSEK - Decoded, but disagrees with Declare.
               USR - SERVRS - Segment not documented.
   Thanks to Chris Morgan, CITIBANK, ENGLAND.

Change 27.280  New DCOLLECT variables added by z/OS 1.11 dataset DCOLDC:
VMACDCOL         DDCSPECC='DDCSPECC*ADDITIONAL*SPECIFICATION*FLAGS'
Oct  9, 2009       DDCFATTR='EATTR*SPECIFIED?'
                 DDCSPECD='DDCSPECD*ADDITIONAL*SPECIFICATION*FLAGS'
                 DDCVBYT1='VSAM*EXTENSION'
                   DDCEX255='OVER 255*EXTENTS*ALLOWED?'
                 DDCEATTR='EXTENDED*ATTRIBUTE'
               Variable DDCSFLG was incorrectly located in z/OS 1.10 IBM
               documentation in Access Method Services for Catalogs; the
               +3 preceding it was really only +2. These new variables
               are decoded from DDCSFLG:
                   DDCOVRD ='BWO*SPECIFIED?'
                   DDCSDB  ='SPHERE*RECOVERABILITY*SPECIFIED?'
   Thanks to Mike Blocker, Fidelity Investments, USA.

Change 27.279  IBM has documented when Subtype 24 and 25 records are
VMAC42         created in APAR OA30503:
Oct  8, 2009     Only those applications which issue STOW and DESERV
                 calls for PDS or PDSE directory processing will
                 generate Subtype25 records. Some applications, such as
                 IEBCOPY, do not issue a STOW or DESERV issue STOW when
                 updating the directory.

Change 27.278  Errors that %TRIM macro was not resolved are discussed in
CONFIGxx       Change 27.124, but that error can also occur if you have
Oct  8, 2009   changed the S2=0 option in MXG's CONFIGV9 to S2=72.

Change 27.277 -Support for USER=DDNAME was erratic because WORK text was
MANY (176!)    used in many places, where &MXGWORK macro variable should
VMAC42         have been the text.
VMAC80A       -Variables W2RCHGAG and W2RINSAG in dataset CICW2R are now
Oct  8, 2009   formatted MG110AG.
Oct  9, 2009  -Variable SMFA2GZ2 label corrected to "SMS" versus "SMF"
               in dataset TYPE42D3.
              -Variable SMFA2NRS label in TYPE42X3/X4 to match SMF42NRS.
              -Variables TOKCHARV, TOKLDAP, TOKNUMRV, TOK80FLG, TOK80LN2
               in dataset TYPE80TK are now labeled.
   Thanks to Chris Weston, SAS ITRM Development, USA.

Change 27.276  Support for z/VM support of 3390-A a/k/a EAV volumes with
VMACVMXA       more than 65K tracks; four larger fields are added at the
Oct  7, 20009  end of the SEKSEK record, and are input by this change
               into the four existing MXG variables.

Change 27.275  Variable PCTIOPBY='IOP/SAP*PERCENT*BUSY' is created and
VMAC78         kept in TYPE78IO.
Oct  6, 2009
   Thanks to Karl Lasecki, Chemical Abstracts Service, USA.

Change 27.274 -ERROR: CICDS DISPATCH INTERVAL LARGER THAN INTERVAL can
VMXGCICI       occur when creating PDB.CICINTRV Statistics Summary if
VMAC110        a region was Shutdown (creating an EOD record) and then
Oct  7, 2009   restarted, and the first INT record is created such that
Oct 21, 2009   both the EOD and INT records have the same Summary
               (recalculated) COLLTIME.  For example, with an requested
               INTERVAL=THREEHR summary:
                   INTERVAL    START       ACTUAL     SUMMARY
                    EVENT    CICSSTCK     COLLTIME   COLLTIME
                     EOD       00:00        01:26      03:00
                     INT       02:00        03:00      03:00
               the two events with the same Summary COLLTIME were NOT
               combined, because variables CICSSTCK and COLLTIME were
               both in the BY list for summarization.  CICSSTCK has been
               removed from both BY and KEEPs; only COLLTIME is correct.
              -Variables A17DSIXP/A17DTRDS were incorrectly deaccumed,
               causing negative values for them in PDB.CICINTRV.
              -The SORT order for CICFCR (A17 variables) was corrected
               to insert A17FNAM ahead of A17DSNAM in both VMAC110 and
               in VMXGCICI.  While I hate changing the SORT ORDER, this
               change is required for duplicate removal.
              -Oct 21: CICSSTCK added in KEEPIN= for all steps that have
               CICSSTCH in the BY statement in their INCODE=, so that
               KEEPALL=NO can be used if needed.
   Thanks to Lynn Hong, UCLA, USA.

Change 27.273 -Cleaned up the WTD logic and modified so that if you are
BLDSMPDB       using AUTOALOC (which create output directory names that
DAILYDSC       contain todays date), it ignores ROLLWEEK (copying of the
DAILYDSN       week4-week5 etc) since AUTALOC takes care of that.
DAILYDSR      -New REROUTE= argument let's you change the destination
IMACZDAT       directories of individual PDB datasets.
VMXGALOC      -New macro variable &MXGZDATE created in IMACZDAT so that
VMXGDSN        ZDATE can be set for rerun without hard EDIT of IMACZDAT.
VMXGDSN       -New macro VMXGDSN reads DCOLLECT, TMC, RMM and CONTROLT
VMXGINIT       data files for "Daily Dataset Billing", but separates
Oct 14, 2009   reading of the raw data files from the creation of the
Oct 21, 2009   "DATASETS" dataset, so those phases can be separately
Nov 19, 2009   executed by BLDSMPDB.  Members DAILYDSN, DAILYDSC,
               DAILYDSR members now invoke VMXGDSN.
              -Some confusing WTD/WEEK & MTD/MONTH messages eliminated.
   Thanks to Cletus McGee, Alfa Mutual Insurance Company, USA.

Change 27.272  READDB2 support for WANTONLY is enhanced (i.e., now it
READDB2        works, and with new options!).
Sep 28, 2009   When WANTONLY is used, the datasets that are NOT listed
               in the WANTONLY= argument that would be created by other
               arguments (e.g., ACCOUNT) will be created with zero obs.
               Example 1:
                 IFCIDS=ACCOUNT,WANTONLY=DB2ACCT
                 IFCIDS=ACCOUNT,DB2ACCT=YES//keep/x y z
                 Only the DB2ACCT dataset will be populated; all other
                 DB2ACCTx datasets will be created, but with zero obs,
                 and no other datasets are created.
               Example 2:
                  %READDB2(PDBOUT=PDBOUT,DB2ACTB=NO);
                  If you do NOT want a dataset to be created, then you
                  can use NO as the value of the Dataset Name Argument
                  and the dataset will NOT exist.  For example, will
                  suppress the creation of DB2ACCTB.
   Thanks to Alyona Bertneski, JPMorgan, USA.

Change 27.271  DB2 IFCID=173 support is updated to detect "truncated"
VMAC102        names, and supports UNICODE text data.
Sep 28, 2009
   Thanks to Ervin L. Claxon, IBM Global Services, USA.

Change 27.270  CICS Statistics STID=115 record is not supposed to exist,
VMAC110        so when it did, MXG didn't handle it's non-non-existence
Sep 28, 2009   correctly.
   Thanks to Leendert Keesmaat, UBS, SWITZERLAND.

Change 27.269  Change 27.158 still caused QWHDRQNM and QWHDSVNM to be
VMACDB2H       incorrect, if SMF data was read on ASCII platforms, due
Sep 25, 2009   to spelling QWHDxxxx as QWHSxxxx.
   Thanks to Bill McDonald, Kimberly-Clark, USA.

Change 27.268  Example to summarize PDB.TYPE72GO Service/Report dataset,
ASUM72GO       creating 10 minute output intervals in PDB.ASUM72GO from
Sep 25, 2009   5 minute input intervals.  Using DURATM=INTERVAL forces
               the output DURATM value to be the INTERVAL=TENMIN value,
               even if the Service Class was only active during one of
               the two 5-minute original intervals.

              -Originally, the DURATM from the first "period" was kept
               in this INCODE logic:
                   INCODE =
                             PROC SORT DATA=MXGSUM1 OUT=MXGSUM1A;
                             BY SYSTEM STARTIME   SRVCLASS RPRTCLAS;
                             DATA MXGSUM1; SET MXGSUM1A;
                             BY SYSTEM STARTIME   SRVCLASS RPRTCLAS;
                             IF NOT FIRST.RPRTCLAS THEN DURATM=.; ,
               but that not only cost the sort and extra data pass,
               it also removed the /VIEW.  And, perhaps worst, the value
               of DURATM in the output dataset was not always the 10 min
               desired - if a Service Class was only used for one 5 min
               period that interval had DURATM of 5 minutes with INCODE.
              -Originally, originally, the INCODE kept PERIOD=1 obs, but
               there are PDB.TYPE72GO observations with only PERIOD=2;
               MXG only creates observations if the service class was in
               active use during an interval.
   Thanks to Scott Weiner, Wisconsin Physicians Service, USA.

Change 27.267 -These variables in TYPE42X1 and TYPE42X2 are now MGBYTES.
VMAC42         formatted:
Sep 23, 2009     SMF42JON SMF42JOO SMF42JOP SMF42JOR SMF42JOS SMF42JOT
                 SMF42JOV SMF42JOW SMF42JOX SMF42JOY SMF42JOZ SMF42JQG
                 SMF42JQH SMF42JQI SMF42JQJ SMF42JQK SMF42JQL SMF42JQM
                 SMF42JQN SMF42JRA SMF42JRB SMF42NSZ SMF42SAP SMF42SPR
              Dataset Labels for TYPE42Xn now match Change 27.062.
   Thanks to Karl Lasecki, Chemical Abstracts Service, USA.

Change 27.266  VMXGALOC did not create a new weekly directory when it
VMXGALOC       should have, and it did not create the WTD (week to date)
Sep 24, 2009   folder at the beginning of the week, nor did it create
Oct  2, 2009   the MTD (month to date) folder at the beginning of the
               month, but now it does.
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANDADA

Change 27.265 -ASMRMFV incorrectly issued RMFV005E ERROR INVALID PARM=0
ASMRMFV        when sequence numbers were in columns 73-90 of SYSIN.
Sep 22, 2009  -Notes that PARM values are needed only once were added.
   Thanks to Doug Medland, IBM Global Services, USA.
   Thanks to Jerry Urbaniak, Acxiom, USA.

Change 27.264 -z/VM MONWRITE example to process only the USER Domain
VMACVMXA       data, and to create only PDB.VXBYUSR and PDB.VXSUMUSR
VMXGINIT       output datasets required updates to VMACVMXA because the
Sep 21, 2009   VXSUMUSR's output MACRO _SVMSUMU wasn't undefined.
              -This example can then be used to read only Domain 4 and
               create only PDB.VXBYUSR and PDB.VXSUMUSR in //PDB:

                 //MWINPUT DD DSN=YOUR.MONWRITE.DATA.FILE,DISP=SHR
                 //PDB     DD DSN=YOUR.ZVM.OUTPUT.PDB,DISP=OLD
                 //SYSIN DD *
                  %VMXGINIT(DEFAULT=WORK);
                  %LET PVMBYUS=PDB;
                  %LET PVMSUMU=PDB;
                  %LET MACKEEP=  MACRO _VMRPT  %   ;
                  %LET MACVMXH=
                    %QUOTE(
                      IF MRHDRDM NE 4 THEN DO;
                         INPUT +SKIP @;
                         SKIP=0;
                         MRHDRDM=-99;
                         MRHDRRC=-99;
                         GOTO MWENDIT;
                      END;
                          );
                    %INCLUDE SOURCLIB(VMACVMXA,IMACKEEP);
                    _TESTMW;
                    RUN;
   Thanks to Doug Wells, First National Bank of Omaha, USA.

Change 27.263  Variable R744FNAM, the Coupling Facility Name, was not
VMAC74         kept in TYPE74DU (Duplex Coupling Facility).  Any ITRM
ITRM           sites using dataset XTY74DU created by MXG macros need to
Sep 21, 2009   update their ITRM dictionary. Fortunately, MXG's R744FNAM
               already exists as ITRM name R744FNA (in XTY74CF,XTY74ST),
               and it will be added in ITRM's next dictionary update,
               but it can easily be added (with help from ITRM techie!):

               Run the below example to execute the ITRM CPDDUTL %macro
               (the data dictionary utility) to add the variable to the
               table.  The example uses the CPCAT macro twice to create
               the catalog entry with the necessary control statements
               that are input to the cpddutl macro:
                  %cpcat;
                  cards4;
                  SET TABLE NAME=XTY74DU ;
                  CREATE VARIABLE NAME=R744FNA
                    EXTNAME=R744FNAM
                    LABEL='Name of Coupling Facility'
                    DESCRIPTION='Name of Coupling Facility'
                    TYPE=CHARACTER
                    LENGTH=8
                    INTERPRET=STRING
                    KEPT=YES ;
                  ;;;;
                  %cpcat(cat=WORK.ddutl.ddutl.source);
                  %cpddutl(entrynam=work.ddutl.ddutl.source);
               Run the above in a regular ITRM batch job that uses
               CPSTART to point to your PDB with DISP=OLD, but do not
               include other CMPROCES, CPPROCES or CPREDUCE macros.
   Thanks to Yacine Amraoui, Banque Postale, FRANCE.

Change 27.262  ASUMMIPS is enhanced to add MSU and MIPS for zIIPs, zAAPs
ASUMMIPS       to the existing CP variables.
Sep 18, 2009
   Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.

Change 27.261 -Variable QBMCTEXT in T1028005 dataset from TMON/DB2 is in
VMAC102        ASCII text, so the INPUT statement was revised.
Sep 18, 2009  -QW0343xx variables are now INPUT and KEEP in T102S343.
              -Additional info on the IFCID 005 (T1028005) - SQL text
               and IFCID 307 (T1028133) - SQL Stmt Sum (All Qualifiers).
               There is no 1-1 relationship between those two files,
               especially for dynamic SQL.  All SQL text collected is
               found in T1028005.  When the same SQL statement is
               executed more than once, only one observation is created
               in T1028005. In T1028133, for each unique collection key,
               there is a separate observation.  So when user A, B and C
               execute the same SQL-stmt (plan/package/stmt), there will
               be 3 T1028133 observations (one for each user), but there
               will only be one observation in T1028005
   Thanks to Christa Neven, KBC Global Services, BELGIUM.
   Thanks to Paul Volpi, UHC, USA.
   Thanks to James J. Burnes, UHC, USA.

Change 27.260  This elegant contributed algorithm uncompresses CICS/TS
VMAC110        SMF records using SAS statements in VMAC110 that expands
Sep 21, 2009   the SAS _INFILE_ Buffer, using _INFILE_ Special Variable,
Oct  4, 2009   so this algorithm works on z/OS or on any ASCII Platform,
Nov  4, 2009   since it's just SAS code!

               ********WARNING  INSERTED NOV 5, 2009*******************
               Unfortunately, this elegance comes at great CPU expense:
                While the original change text did warn that:
                  But the "instream" algorithm may be more CPU intensive
                  than EXITCICS, so, if you are processing on z/OS, you
                  may find the EXITCICS algorithm preferable.
                only now, with files of 100% compressed records, has the
                cost been measured: TWELVE TIMES MORE CPU TIME than
                using the (written in ASM code) EXITCICS Infile Exit.
               With the INFILE exit, it has already uncompressed the
               record, so the SAS decompression code is not executed.
               ********WARNING  INSERTED NOV 5, 2009*******************

               Previously, to read compressed CICS/TS 3.2+ SMF records,
               you had to assemble MXG's EXITCICS member to create the
               CICS "Infile Exit", which can ONLY execute on z/OS.

               This algorithm is both automatic and transparent, and, if
               the EXITCICS Infile Exit is installed, it will have
               already expanded the record, so this "instream" algorithm
               won't be executed.
               But the "instream" algorithm may be more CPU intensive
               than EXITCICS, so, if you are processing on z/OS, you may
               find the EXITCICS algorithm preferable. SEE BELOW.

              -The Maximum Record Length printed on the SAS log shows
               the uncompressed length with EXITCICS, but shows the
               maximum compressed length with this expansion algorithm.

              -Compressed 110 SMF records can be processed by WPS 2.04,
               which added the _INFILE_ Special Variable.

               The authors describe their work:
              -The compression algorithm used is a simple RLE (Run
               Length Encoding) as follows:-
              -All compressed data consists of an INDICATOR/LENGTH byte
               that is followed by data byte(s).  This combination of
               indicator/length byte and data byte(s) is repeated until
               the end of the compressed data.
              -The INDICATOR byte/bit flags the presence of compressed
               data by having the TOP Order bit set on.  The remainder
               of the byte will indicate the length of the uncompressed
               data.
              -An indicator byte of '80'x (always the first byte of the
               compressed field) indicates Compressed data of length
               ZERO.  There is NO following data byte!
              -An indicator bit of '1nnnnnnn'B is followed by a single
               data byte that is to be repeated '0nnnnnnn'B times into
               the output buffer.
              -An indicator bit of '0nnnnnnn'B indicates that the
               following '0nnnnnnn'B bytes are simply copied from the
               compressed record to the uncompressed buffer.
              -This compression algorithm was determined by a few Google
               searches and observations of the compressed data and did
               not involve any non public knowledge of IBM's processing.

   Thanks to Ian Gibson, CPT Global Ltd @ Bendigo & Adelaid Bank, OZ.
   Thanks to Peter Turner, CPT Global Ltd @ Bendigo & Adelaid Bank, OZ.
     the authors, and, for the CPU measurements on z/OS,
   Thanks to Scott Chapman, American Electric Power, USA.

Change 27.259  Support for TMON FOR DB2 Records 'BA','BJ','BK','BL','BM'
VMACTMDB       now decode the record-specific fields; previously, only
Sep 17, 2009   the headers were decoded for these subtypes.
   Thanks to Ernie Amador, UC Davis Health System, USA.

Change 27.258  Support for ACF2 SUBTYPE='O' OPENEDITION record creates
EXACFOR        new ACFOR dataset.
IMACACF2
VMACACF2
VMXGINIT
Sep 16, 2009
Oct  8, 2009
   Thanks to Steven Nelson, IBM Global Services, USA.

Change 27.257  Cosmetic.  MXG added ***ERROR. SMF RECORD SUBTYPE GT 255
VMACSMF        messages when an impossible value for one-byte SUBTYPE is
VMACMIM        found when VMACSMF processes an SMF record with the flag
Sep 16, 2009   that the subtype field is populated, but it is at best
               only a WARNING message that MXG has corrected the SUBTYPE
               variable to the one-byte in byte 19 instead of byte 20.
               This is important if you use IMACFILE or %LET MACFILE=
               to select/skip SMF records based on SUBTYPE, or if the
               SMF record with invalid subtype actually tests SUBTYPE.
              -One WARNING ID=189 was flagged with the message, used
               for the MIM SMF record; VMACMIM was examined and since
               MXG variable SUBTYPE was not tested in that member, there
               was no problem.  However, the MIMSUTYP was incorrectly
               as a two-byte value, so even though it was also not also,
               VMACMIM was corrected, in case it's ever needed.
              -I haven't (yet) figured out how to turn the warning off,
               or maybe decide I should just remove it.
                - it needs to precede IMACFILE, so the true subtype will
                  be populated in SUBTYPE for testing in that exit.
                - some IBM records with fixed ID are already corrected
                  prior to the IMACFILE exit.
                - IMACFILE is where you would expect to turn it off.
   Thanks to Robert Blackburn, Dominion Resources Services, Inc., USA.

Change 27.256  The QACSLPAR file has 20 undocumented bytes after LPVRM;
VMACQACS       the first eight are the SYSTEM ID, new variable LPSYSTEM,
Sep 14, 2009   and the next 12 bytes are skipped, for iSeries V5.4.0.
   Thanks to David Bixler, FISERV, USA.

Change 27.255 -Variable SM1209CY is now RETAINed and KEEP= in all four
VMAC120        TYP1209x datasets, as that Enclave Token is needed to
Sep 14, 2009   combine records.
              -Variable SM1209FI is now correctly input as &PIB.8.3 and
               the divide by 4096 for SMF1209EV and SMF1209FI were
               incorrect and are removed.
   Thanks to Steiner Amot, VPS ASA, NORWAY.
   Thanks to Bjorn Helgestad, VPS ASA, NORWAY.

Change 27.254  Members that read files with an INFILE statement that had
VMACMRKV       only LRECL and BLKSIZE now use a Platform-Specific %MACRO
VMACPRPR       to set RECFM=VBS on z/OS and RECFM=S370VBS on ASCII.
VMACTSMA       See Change 27.311, which removed this change for NTSMF.
VMACNTSM
Sep 14, 2009

Change 27.253  SMF74NID (a/k/a SMF74DCT) is a 28-character field with
VMAC74         26 $EBCDIC text bytes, and two $HEX bytes at the end.
Sep 13, 2009   The final byte appears to always be '00'x, which doesn't
               translate, but the penultimate byte has many different
               hex values, which may or may not be changed when INPUT
               as $EBCDIC, depending on the hex value of that byte.
               This change inputs the first 26 as $EBCDIC26., but the
               last two bytes are INPUT as $CHAR2. and then SUBSTRinged
               back into SMF74NID, to prevent accidental translation.
               Of course, those last two hex values may be unprintable
               and could cause other problems if they are imported into
               other programs; using FORMAT SMF74NID $HEX56.; would
               prevent the unprintables, but the text would not be
               readable to the human eye.
   Thanks to Peter Enrico, Enterprise Performance Strategies, Inc., USA.

Change 27.252  Formats for many duration variables were not TIMEyy.x;
VMXGRMFI       all of the duration variables are how TIME12.2 except for
Sep 13, 2009   BATRESP and TSORESP that are TIME13.3.

Change 27.251 -RMM processing now supports all possible date formats:
IMACEDGR        RHDTFORM    DESCRIPTION        EXAMPLES
VMACEDGR           A         AMERICAN     12/31/1999  MM/DD/YYYY
Sep 11, 2009       E         EUROPEAN     31/12/1999  DD/MM/YYYY
Sep 15, 2009       I         ISO          1999/12/31  YYYY/MM/DD
Sep 17, 2009       J         JULIAN       1999/365    YYYY/DDD
               The original _EDGRDTE macro is no longer used.
              -The Retention field RDRETCHR or RVRETCHR can contain text
               non-date values of CATRETPD or CYCL/99999 or WHILECATLG.
               RDWILCAT/RVWILCAT='Y' already existed for WHILECATLG; new
               variables RDCYC999/RVCYC999/RDCATRET/RVCATRET are created
               and the DATE variables RDRETDAT/RVRETDAT will be missing
               values, if xxRETCHR has any of those 3 text values.
              -An Original Expiration Date with 00/00/1999 (or any other
               non-date value) is stored in new character variable
               RDEXPDCH, and the DATE conversion is protected for '00'.
               The value of RDEXPDTO will be a missing numeric date
               value if RDEXPDCH contains a non-date value.
   Thanks to Leendert Keesmaat, UBS, SWITZERLAND.

Change 27.250  Protection for UNKNOWN TOKDANAM printed a message, but it
VMAC80A        failed to prevent INPUT STATEMENT EXCEEDED RECORD LENGTH.
Sep 11, 2009   Protection now works.
               The RDEFINE CFIELD statement can be used to define custom
               fields and their attributes, with locally chosen names;
               these new variables in TYPE80TK are populated if found
                  TOKTYPE ='TYPE'
                  TOKMAXLE='MAXLENGTH'
                  TOKFIRST='FIRST'
                  TOKOTHER='OTHER'
                  TOKHELP ='HELP'
                  TOKMIXED='MIXED'
                  TOKLISTH='LISTHEAD'
                  TOKURTLA='URTLABEL'
               and these observations have TOKSUSBY='CFDEF' to identify
               they are locally defined fields.
   Thanks to Coen Wessels, IBM SWITZERLAND.
   Thanks to Pierra Beda, IBM SWITZERLAND.

Change 27.249  Variable R747PAVG='RMF REPORT*AVERAGE*FRAME*PACING' is
VMAC74         created as  R747PAVG=10**6*(R747PFPT/R747PNFT); to match
Sep 10, 2009   the value printed on RMF Reports.
   Thanks to Robert Brosnan, Goldman Sachs & Company, USA.

Change 27.248  Change 27.165's insertion of VMXGOPTR cause the I/J vars
VGETDDS        that were local to VGETDDs to be overridden by the I/J
VMXGOPTR       vars used in VMXGOPTR causing looping and unexpected
Sep 10, 2009   results. Variable names in VMXGOPTR/VGETDDS were changed.
Sep 11, 2009  -Before, if you asked for GOOVOO, or DATEBASE, or GDGs, it
               allocated all of them (ensuring they were there) and then
               went thru the DDNAMES logic to ensure they were there.
               Sort of silly really.  Now if you ask for GOOVOO, DATES,
               etc., it allocates the datasets and keeps track of them,
               so now, the only time it goes thru the DDNAMES logic is
               when that argument is used.
   Thanks to Jim Horne, Lowe's Companies, USA.

Change 27.247  FLAG1 tests for HyperBuf optional segments overlapped,
FORMATS        causing some optional variable to be populated when they
VMACHBUF       should have been missing; DATALAS-ESTDBUFS if FLAG1='1.'
Sep  9, 2009   and EXCPIPTH-INDXCISZ if FLAG1='.1'.  The three tests are
               now '10', '11', and '01' to only appropriately input.
              -New $MGHBUFT format decodes FLAG1 to identify the type of
               optional segment, if any, in this record.
   Thanks to MP Welch, SPRINT, USA.

Change 27.246  Change 27.127 added KEEP= to TAPES, but variables DSN
DAILYDSN       DSNBACTV and STPNAME were not kept, causing UNINITIALIZED
Sep  9, 2009   VARIABLE messages.
   Thanks to Thomas Heitlinger, FIDUCIA, GERMANY.
   Thanks to Sieghart Seith, FIDUCIA, GERMANY.

Change 27.245  zIIP and zAAPs are added to SAS/GRAPH hourly workload
GRAFWRKX       reports, using PDB.RMFINTRV.
Sep  8, 2009
   Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.

Change 27.244  Variable OTRANNUM in VMAC110 was correctly input &PD.4 if
VMAC110        IMACEXCL was used, but the default INPUT without IMACEXCL
Sep  8, 2009   was incorrectly input as &PIB.4.
   Thanks to Scott Barry, SBBWorks Inc., USA.

Change 27.243  Cosmetic, and only for MXG QA.  SAS Option CHARCODE is
FORMATS        enabled in FORMATS (Change 13.319) so that two-character
Sep  7, 2009   operators ?< and ?> can be used on both EBCDIC and ASCII
               in place of Left Squiggly and Right Squiggly Brackets,
               where they are needed for valid syntax for OTHER operand.
               This change reinstates the default Option NOCHARCODE at
               the end of FORMATS.  The observed problem was seen only
               in the single-step QA job (which begins with FORMATS);
               with CHARCODE left enabled, the label of two variables
               (TDSL12TY and QW0350SL), that happened to contain ?) text
               were changed by CHARCODE to a right squiggly bracket, so
               QA labels in DOCVER were NOT the actual variable labels.
               These two-character operators are CHARCODE-translated:
                    Symbol                 Two-Character Operators
                  backquote (`)                     ?:
                  backslash (\)                     ?,
                  left brace ({)                    ?(
                  right brace (})                   ?)
                  logical not sign (¬ or ^)         ?=
                  left square bracket ([)           ?<
                  right square bracket (])          ?>
                  underscore (_)                    ?-
                  vertical bar (|)                  ?/

Change 27.242 -Elimination of Numeric to Character Conversions in tests
ASUMCICS       for VGETOBS.
ASUMCICX      -If MXGMQADD=NO was specified but the _INMQ macro was not
VMXGUOW        nulled, UNINITIALIZED VARIABLE messages were printed for
Sep  8, 2009   all of the MQ variables.
Sep 28, 2009  -If CICSTRAN has zero observations, PDB.ASUMUOW cannot be
               populated, but it will be created with zero observations,
               and MXGERROR message is printed on the log, and reading
               of DB2ACCT/MQ data will not be done.
              -Variable MQTRAN created in PDB.ASUMUOW to count MQs.
              -Variable CPUMQMTM created in PDB.ASUMUOW as the sum of
               QMACCPUT (now zero) WTASOTCT, WTASCMCT, and WTASBACT.
              -Variable CPUUOWTM created in PDB.ASUMUOW as the sum of
               CPUTM (CICS), DB2TCBTM (DB2) and CPUMQMTM (MQ-Series).
              -Variable CPUTM (TASCPUTM+CPURLSTM) is created in PDB.CICS
               by either ASUMCICS or ASUMCICX.
              -VMXGOPTR stashing/revisions for OBS=0.

Change 27.241  SMF 80 record for RACFEVNT=79 with EXTLNTYP=379 segment
VMAC80A        with EXTLNLEN=130 caused INPUT STATEMENT EXCEEDED RECORD
Sep  7, 2009   LENGTH ERROR because MXG only INPUT RACF379 $VARYING128.
               The INFORMAT in that INPUT is now $VARYING255.
   Thanks to Matthew Chappell, Queensland Transport, AUSTRALIA.

Change 27.240  Cosmetic.  Five R745Vxxx variables were added in 2000 to
VMAC74         TYPE74CA dataset, but the "DEVICE LSA SECTION" doesn't
Sep  7, 2009   exist and those variables are always missing or blank.
               Their labels were changed, especially R745VSER, to avoid
               confusion, and now are:
                 R745VBYW='R745VBYW*ALWAYS MISSING*DOES NOT EXIST
                 R745VFLG='R745VFLG*ALWAYS BLANK*DOES NOT EXIST
                 R745VNTR='R745VNTR*ALWAYS MISSING*DOES NOT EXIST
                 R745VNUM='R745VNUM*ALWAYS MISSING*DOES NOT EXIST
                 R745VSER='R745VSER*ALWAYS BLANK*DOES NOT EXIST
   Thanks to Ray Dunn, CIGNA, USA.
   Thanks to Deborah L. Soricelli, CIGNA, USA.

Change 27.239  MXG's full QA stream executes successfully with WPS 2.4
AUTOEXWP       under both z/OS 1.9 and Windows/XP; essentially all MXG
MXGWPSV2       programs are now executable under WPS 2.4.
UTILSPAC
VMACEREP       These changes are made in WPS 2.4:
VMACSMF        -The runtime performance problem with PROC SQL has been
VMXGVTOC        corrected, so the testing of the ANALCISH member with
Sep  6, 2009    REPORT=ALL is reinstated in the WPS QA job stream.
Oct  8, 2009   -The PROC PLOT option VPOS is now recognized.
Oct 13, 2009   -The option MAUTOLOCDISPLAY is now recognized.
               -The INFILE option CCHHR is supported; circumvention code
                that bypassed for QA execution is now revised to test
                for &WPSVER GE 2.04 so these programs can now be used on
                z/OS: TYPEEREP, VMXGVTOC, and UTILSPAC.
               -The _INFILE_ Special Variable is now supported.

              -Change 27.110 lists the other MXG programs that cannot
               be run as-is with WPS; WPS replicates SAS V8.2, so the
               new-in-SAS V9 features are, in general, not supported.

              -For z/OS, the MXG JCL procedure MXGWPSV2, the DSNAME for
               the WORKMDL='HLP.WPS.SASHELP' replaces WPSDATA because
               Model datasets are no longer specified during install.

              -The member AUTOEXEW is the example "autoexec" for WPS;
               the members AUTOWPS and AUTOEXWP were only for testing
               and have been deleted.
              -The comments were revised in AUTOEXEW to identify options
               that WPS does not currently support; none are required:
               WPS 2.4 added supports these OPTIONS
                OPTIONS MAUTOLOCDISPLAY;
                OPTIONS SORTSEQ=ASCII;
                OPTIONS VALIDVARNAME=V7;

              -On z/OS, WPS requires a larger REGION size than SAS, with
               BUILDPDB needing REGION=230M while SAS used REGION=125MB.
               For the full QA job, however, WPS needed a REGION=1200MB,
               while SAS V9.2 needed REGION=165MB.  WPC will investigate
               why that large region was required, but it appears to be
               unique to the MXG QA job, which executes over 20,800 DATA
               and PROC steps.  A large region requirement has not been
               reported as an issue by any site running MXG under WPS.

               WPS QA took 120 CPU minutes, SAS QA took 53 minutes, on
               a z/OS machine with SU_SEC=10000.

              -Oct 30:  WPS 2.4 supports the FILENAME=variable option on
               the INFILE statement, so VMACSMF was revised.

Change 27.238  ERROR: SRCE1 HAS ALREADY BEEN DEFINED AS NUMERIC if some,
ANALDB2R       but not all of the AUDIT sub-reports were requested.
VGETOBS        The repair led to a MAJOR cleanup of ANALDB2R that also
VMXGSUM        significantly reduced the run time (from 5 minutes to
VFMT102        a few seconds for the AUDIT reports).
Sep  6, 2009   Originally:
               -Data step creates DB2WORK as union of all input datasets
               -Data step creates DB2WORK1 TIMES from DB2WORK
               -SORT DB2WORK1 (with MANY variables, long times possible)
               -SORT TIMES
               -MEAN TIMES into TIMERNGE
               -Data step creates PREPRINT merging DB2WORK1 TIMERNGE
               -DATA _NULL_ data step does printing
               Now
               -For each audit type if the data is present and non-zero
                OBS View into SORT
               -TIME view using datasets created into SORT
               -MEANS of TIME into TIMERNGE
               -Data step creates view PREPRINT using only the datasets
                created in first section and TIMERNGE
               -DATA _NULL_ step does printing code for datasets that
                does not exist is never generated
              -The DATABASE= argument did not select for AUDIT reports.
               Note that if the SMF data does NOT include the open event
               record (opened before the beginning of this SMF data),
               the printed database will be the undecoded hex value,
               and won't be the decoded database name in text.
              -The VGETOBS, VMXGSUM, VMFT102 members were NOT altered in
               this change, but their new updates (Changes 27.237,
               27.234, 27.236) are required to support this change to
               ANALDB2R.
   Thanks to Sam Knutson, GEICO, USA.
   Thanks to Henry Boone, GEICO, USA.

Change 27.237  Enhancement. If no DDNAME argument (zero length) then
VGETOBS        the DATASET argument is examined and if is x.y, it will
Sep  5, 2009   be split into DDNAME and DATASET so the PROC SQL can be
Sep 28, 2009   invoked.  If DATASET contains x.y syntax AND there is a
               DDNAME argument present, VGETOBS will fail with message
               that that is not allowed.

Change 27.236  Cosmetic corrections to eliminate character to numeric
VFMT102        conversion messages; VFMT102 in ANALDB2R, and ANAL30DD.
ANAL30DD
Sep  5, 2009

Change 27.235  These six variables in MQMQUEUE are now converted to the
VMAC116        local time zone; previously, they were on GMT:
Sep  4, 2009     WQOPENTI WQCLOSTI WQTTTIME WTASSTRT WTASINTS WTASINTE
Oct 12, 2009   The algorithm used to calculate the GMTOFF in the absence
               of the actual value in the record now used is:
                 GMTOFF=3600*FLOOR(100*(FLOOR(SMFTIME/100)
                                 -FLOOR(WTASINTE/100))/3600);

Change 27.234  VMXGSUM is revised so an OUTCODE= argument is not needed
VMXGSUM        in many cases where it was previously required, so those
Sep  5, 2009   VMXGSUM callers that could be revised to remove OUTCODE=
               are changed, thereby eliminating the second DATA step,
               and, a full pass of the output dataset.
               Previously OUTCODE= arguments were needed to set LENGTH
               and FORMATs, but the SAS V8 INHERIT option made the extra
               step unnecessary.
              -The second data step can be skipped if INTERVAL= NE NONE
               and the DATETIME= argument's variable is in the BY list.
              -Conditions that will force the second data step:
                  %IF &NUMNORM           NE 0
                   OR &ERASEOUT          NE NO
                   OR %LENGTH(&OUTCODE)  NE 0
                   OR %LENGTH(&OUTCODE1) NE 0
                   OR %LENGTH(&OUTCODE2) NE 0
                   OR %LENGTH(&FREQ)     NE 0
                   OR %LENGTH(&DURATM)   NE 0
                   OR &INTERVAL          NE NONE
                   OR &NEWSHIFT          EQ Y
                   OR &SASVER            LT 7

Change 27.233  Debugging PUT statement now commented out.
VMAC117
Sep  4, 2009
   Thanks to Scott Barry, SBBWorks, Inc., USA.

Change 27.232  TMON/DB2-created SMF 101 Subtype 0 record has an invalid
VMACDB2        OFFQLAC value, @1875 vs the real @1879 location, and the
Sep  3, 2009   extra 4 bytes were added to make QLACLEN=232 when only
               228 bytes are actually present.  Unfortunately, QLACLEN
               of 232 says the QLACOFF1 offset to a "truncated QLACLOCN
               field" exists in two of those last 4 bytes, so MXG INPUT
               the QLACOFF1 offset and attempted to INPUT, causing an
               INPUT STATEMENT EXCEEDED RECORD LENGTH ERROR.  This
               (possibly temporary) change detects the record is NOT an
               IBM record (because OFFQLAC is GT OFFPROD), adds 4 to
               OFFQLAC and subtracts 4 from LENQLAC so MXG can input the
               mis-aligned record, and sets TMDBQLAC='Y' flag that this
               was done.
              -QLACMDWT is a binary value in the TMON/DB2 record, but it
               is a floating point value in IBM records, so this change
               uses TMDBQLAC if set to INPUT the incorrect informat.
              -Support at TMON/DB2 will be contacted and this text will
               be updated when they respond.
   Thanks to Mary Vollmer, MGIC, USA.

Change 27.231  The four listed ASUMs did not create variable ZDATE/ZTIME
ASUMDB2P       while the other thirty-seven ASUMs did.
ASUMDB2S
ASUMDB2G
ASUMDB2S
Sep  3, 2009
   Thanks to Denise Willers, InfoCrossing, USA.

Change 27.230  Variable LASTCLAS in IMF dataset CIMSPROG (from 'F9'x)
VMACCIMS       was incorrectly INPUT @77 as $CHAR1, but it is now INPUT
Sep  2, 2009   @76 as $CHAR2 and formatted $HEX4.
   Thanks to Brian Cummings, Federal Reserve Information Technology USA
   Thanks to Fritz Zeigler, Federal Reserve Information Technology, USA

====== Changes thru 27.229 were in MXG 27.08 dated Sep  1, 2009========

Change 27.229  Support for z/OS 1.11, COMPATIBLE.
EXTY8224      -TYPE 0. New variable:
EXTY8225         CVTTZ   ='CVTTZ*TIME DIFFERENCE*LOCAL*TO GMT'
EXTY8226      -TYPE1415. NO NEW DATA, but lots of text inserts about
IMAC82           assembling the IFGSMF14 Macro with DSECT=YES, which is
VMAC0            why it is flagged in the SMF Manual as changed.
VMAC82        -TYPE30.  NO NEW DATA, only one line of text updated.
VMXGINIT      -TYPE82.  New subtypes 24, 25, and 26.
May  2, 2009  -TYPE92.  Subtype 15 now documented, but MXG supported
Sep  2, 2009            was added in Change 26.277 for APAR OA24208.
              -TYPE1415 New variables DCBEEX31 XTIOTYES created from
                        SMF14FLGS.
              -Dec 3, 2009: CHANGE 27.325 is required for z/OS 1.11.

CHANGE 27.228  Support for APAR OA30197, adds SMF30ASI, new MXG variable
VMAC30         ASID in ID Segment of all SMF 30 records.  Kept in the
Sep  1, 2009   TYPE30 ASID-level datasets (_1,_4,_5,_V,_6).

CHANGE 27.227  Observations were not output because DO loop logic was
VMACINSY       incorrect for the INSYAUID='D' records. Variable INSYATA
Sep  1, 2009   is now converted to EBCDIC text.
   Thanks to Mark Cohen, DTS, ITALY.

CHANGE 27.226  Dataset T112DTCO, DATACOM DETAIL, variables were invalid
VMAC112.       due to misalignment.  Dataset T112MQCT variable MATTACH
Aug 31, 2009   and dataset T112DTCT variable DATTACH were INPUT $CHAR8,
               but they are now seen to be TODSTAMP values, so they are
               changed from CHAR to NUM and formatted DATETIME25.6, and
               are observed to be slightly prior to the UOWTIME.
   Thanks to Richard Schwartz, State Street Bank, USA.

CHANGE 27.225  Cosmetic. Long messages (listing all requested reports)
ANALRMFR       are split and shifted left for readability, and the list
Aug 31, 2009   of valid INTERVAL= values was updated.

CHANGE 27.224  Eight new IBM fields starting with R7452xxx were named in
VMAC74         MXG as R7451xxx, accidentally, as all of the other fields
Aug 31, 2009   in that segment are IBM-named R7451xxx. But these eight
                  R7452XTY R7452XFL R7452PRO R7452PWO R7452PBR
                  R7452PBW R7452PRT R7452PWT
               are all a second field name for the same field location,
               and apparently IBM decided to note that difference by
               naming them with a 2 vs a 1.  In any event, to match the
               SMF Manual field names in the MXG Variable names, those
               eight are now named with a 2 instead of a 1.
   Thanks to Jim Horne, Lowe's Companies, USA.

CHANGE 27.223  New "TOP" DB2 Report ranks resource usage by correlation
ANALDB2T       id and authid, for these resource metrics:
Aug 30, 2009      CLASS*1 CPU*RANK
                  CLASS*2 CPU*RANK
                  ELAPSED*RANK
                  GET*PAGE*RANK
                  TOTAL*GET*PAGES
   Thanks to Chuck Hopf, Independent Consultant, USA.

CHANGE 27.222  Support for NDM-CDI NDMRTYPE 'SC' and 'S2' records.  The
FORMATS        two datasets NDMSC and NDMS2 were already created, but
VMACNDM        they only contained the header variables until now.
Aug 30, 2009
   Thanks to Robert S. Zimmerman, HMS, USA.

CHANGE 27.221  Support for zOSEM Operating System Environment Manager
EXOSEMCM       from Trident Services user SMF record creates 3 datasets:
EXOSEMRE
EXOSEMWT          DATASET DATASET   DATASET                RECORD
FORMATS           SUFFIX  NAME      LABEL                  SUBTYPE
IMACOSEM
TYPEOSEM          OSEMCM  OSEMCMD   OSEM FEMCNTL CMD          1
TYPSOSEM          OSEMWT  OSEMWTO   OSEM FEMWTO CMD           2
VMACOSEM          OSEMRE  OSEMRES   OSEM JES2 EXIT44          3
VMXGINIT
Aug 30, 2009
   Thanks to Larry Stahl, IBM Global Services, USA.

CHANGE 27.220  MXG 27.06-27.07.  %ANALCNCR failed if INDATA= specified
ANALCNCR       more than one dataset.  "Cosmetic" protection was added
BUIL3005       by Change 27.165 to verify that the input dataset exists,
BUILD005       to avoid DATASET NOT FOUND errors, but it only parsed the
MNTH72         1st INDATA (to get DDNAME and DATASET to pass to VGETOBS,
TRND72         as PROC SQL which requires separate arguments).  Now,
Aug 29, 2009   each token in the INDATA= argument is parsed & verified.
               If all datasets have zero observations, an MXGWARN is
               produced at the beginning and if there are zero obs in
               the output dataset another MXGWARN will appear.
               If all datasets in the INDATA= do not exist, %ANALCNCR
               will stop processing, but if one or more do exist, the
               output dataset will be created and populated if possible,
               but MXGWARN messages will identify which INDATA= datasets
               did not exist.  Prior to Change 27.165, multiple datasets
               were supported because the only INDATA reference was the
               SET &INDATA; statement which read all of the input, but
               that statement failed if any input dataset did not exist.
              -The only MXG member that invokes %ANALCNCR with multiple
               INDATA= datasets is ANALHTML, which exposed this error,
               with its INDATA=PDB.STEPS SPIN.SPIN30_4, statement.
              -In testing the new %ANALCNCR with ANALHTML, SAS printed
               warnings that MSOUNITS had different lengths in those two
               datasets.  Investigation found MSOUNITS & SERVICE weren't
               always stored in 8 bytes, so updates were made to members
               BUILD005 BUIL3005 MNTH72 and TRND72 so that all instances
               of variables MSOUNITS and SERVICE are now LENGTH 8.
              -All INTERVAL= arguments that specify an interval token
               with a fixed-length interval duration are supported.
               TIMER is set to the interval and SYNCINTV=YES is used
               (but that could be overridden in your %ANALCNCR).
   Thanks to Tony Curry, BMC, USA.

CHANGE 27.219  TYPE11GD dataset variables CTGIAVRS and CTILAVRS were
VMAC111        reversed in their INPUT locations.
Aug 28, 2009
   Thanks to Jim Poletti, Edward Jones, USA.
   Thanks to Gordon E. Griffith, Edward Jones, USA.

CHANGE 27.218  Variable SMF70LAC in PDB.RMFINTRV was the maximum value
VMXGRMFI       during the sub-intervals that were summarized; it is now
Aug 28, 2009   the average value, so it matches PDB.ASUMCELP values.
               However, the RMF reports may print that Maximum value of
               any inputted sub-interval.
   Thanks to Karl Lasecki, Chemical Abstracts Service, USA.

CHANGE 27.217  PDB.TYPE70PR with SMF70CIN blank but SMF70ONT nonzero was
VMAC7072       created if the last LPAR was offline (LPARCPUX=0).  That
Aug 28, 2009   caused NRCIXGT0 to be a missing value, so the second test
               IF NRCIXGT0 GT 0 THEN ... was not executed.  That second
               test is now redundant, as SMF70CIX always exists now, so
               that IF ... END was removed.  Error was introduced in
               MXG 27.03 by Change 27.075.
   Thanks to Rudolf Sauer, T-Systems, GERMANY.

CHANGE 27.216  Change 27.126 accidentally removed SYTLPNAM from the KEEP
VMACXAM        list for XAMSYT dataset, and left it in the KEEP list for
Aug 28, 2009   the XAMSYU dataset.
   Thanks to Douglas C. Walter, Citigroup, USA.
   Thanks to Tony Curry, BMC, USA.

CHANGE 27.215  TMON/CICS Version 3.1 INPUT STATEMENT EXCEEDED RECORD
VMACTMO2       error with 'TI' (Statistics Interval) record; the segment
Aug 26, 2009   of data starting with TIMQSOPC exist in 3.1, but MXG only
               input those fields for TMMDVREL GE 3.2; the test before
               that INPUT statement was changed from 3.2 to 3.1.
   Thanks to Dianne Dunklau, Kohls, USA.

CHANGE 27.214  Summarized RMFINTRV/ASUM70PR output datasets could have
VMXGDUR        the STARTIME/SMF70GIE values early by one INTERVAL unit
VMXGRMFI       (e.g., data STARTIME midnight, INTERVAL=HALFHOUR caused
VMXG70PR       output STARTIME of 23:30) after Change 27.178 used the
Aug 28, 2009   SMF70GIE vice STARTIME (because of unstable STARTIMEs).
Nov 10, 2009
ASUM70PR      -A new argument FLORCEIL=FLOOR/CEIL is added to VMXGDUR
ASUMCAPT       with FLOOR (unchanged) as the default, and the %VMXGDUR
ASUMMIPS       calls in VMXGRMFI and VMXG70PR that interval the
ASUMSMFI       SMF70GIE/SYNCTIME end times now specify FLORCEIL=CEIL.
               No user had reported/noticed this error (yet!).

               The rest of this text was REVISED when CHANGE 27.308
               reset the SYNC59=NO default back in place in MXG 27.10:

              -For summarizing INTERVAL data ONLY (RMFINTRV, SMFINTRV,
               CICINTRV, etc datasets with existing interval start/end):

               If you still specify SYNC(59) to write Interval data in
               minutes 59,14,29,44, the SYNC59=YES parameter can be used
               to change the DATETIME to "pretty" 00,15,30,45 startimes.
               This is needed when SYNC(59) is in SYS1.PARMLIB members
               SMFPRMxx or ERBRMFxx in SYS1.PARMLIB.

               Using the FLORCEIL=FLOOR to calculate the interval start,
               with SYNC(59) data and INTERVAL=HOUR, for time 19:59:
                SYNC59=YES adds one minute to DATETIME, so 19:59 becomes
                 20:00, and the FLOOR(DATETIME) sets 20:00 as the Start.
                 This is correct, hour 20 for the 19:59-20:58 interval.
                SYNC59=NO leaves the DATETIME as is, so FLOOR(DATETIME)
                 is 19:00 for the Start, WHICH IS THE WRONG HOUR!!!
                SYNC(59) data REQUIRED SYNC59=YES for correct output.

               Using the FLORCEIL=FLOOR to calculate the interval start,
               consider SYNC(00) data and INTERVAL=HOUR, for time 20:00:
                SYNC59=YES adds one minute to DATETIME, so 20:00 becomes
                 20:01, but the FLOOR(DATETIME) sets 20:00 as the Start,
                 which is what you wanted, even though the data is (00).
                SYNC59=NO leaves the DATETIME as is, so FLOOR(DATETIME)
                 sets 20:00 as the Start, WHICH IS ALSO WHAT YOU WANTED.
               But, using the FLORCEIL=CEIL to calculate interval end,
               SYNC59 must NOT be used.  With datetime 19:59 or 20:00,
               the CEIL(DATETIME) returns 20:00 with SYNC59=NO.  But if
               SYNC59=YES added a minute here, then 20:00 would be 20:01
               and CEIL(DATETIME) would then (INCORRECTLY) be 21:00.
               Therefore, when using FLORCEIL=CEIL, VMXGDUR does NOT
               change the value in DATETIME before the CEIL(DATETIME),
               even if SYNC59=YES was specified.
                  Only ASUM70PR/VMXG70PR and RMFINTRV/VMXGRMFI currently
                  use the FLORCEIL=CEIL option to group by End Interval,
                  but only internally; the final sorts are BY STARTIME.
              -These members were changed from SYNC59=NO to SYNC59=YES:
               ASUM70PR ASUMCAPT ASUMMIPS ASUMSMFI VMXG70PR VMXGRMFI

              -THE PRECEDING IS ONLY FOR SUMMARIZING INTERVAL DATA.

              -FOR DETAIL TRANSACTIONS, SYNC59=NO MUST ALWAYS BE USED.
               MXG 27.08 CHANGED TO SYNC59=YES IN VMXGDUR.
                (This caused PDB.CICS transaction's HOUR to change.)
               MXG 27.10 RESTORED THE SYNC59=NO DEFAULT IN VMXGDUR.

CHANGE 27.213  HFS and zFS EXCPSs are counted in EXCPTOTL and EXCPNODD
BUILD005       (see MXG Newsletter FIFTY-WHATEVER MVS Technical Note 1)
BUIL3005       but there are no DD Segment EXCP counts for HFS/zFS, so
VMAC30         you don't know how much of EXCPNODD is due to HFS/ZFS, so
Aug 21, 2009   you can't subtract the HFS/ZFS EXCPS from EXCPTOTL.
Sep  1, 2009   This change creates four new variables in TYPE30_V and
               TYPE30_4 datasets:
                  USSEXCPS='USS-OMVS*TOTAL*EXCPS'
                  USSBYTES='USS-OMVS*TOTAL*BYTES'
                  USSCALLS='USS-OMVS*TOTAL*CALLS'
                  USSCPUTM='USS-OMVS*SYSCALLS*CPU*TIME'
               with the sum of those counts from all OMVS segments in
               the interval and step termination SMF 30 records.
               Those variables are also now summed in PDB.STEPS and
               PDB.JOBS when BUILDPDB is used to process SMF 30s.
              -In testing this change, subtype 5 records for BPXAS STC
               have all resource variables with zero value, even STEPNR,
               and some zeros cause missing value calculations.  Logic
               was revised to prevent those harmless but confusing notes
               on the SAS log for those records.

CHANGE 27.212  Support for APAR OA30006 for DCOLLECT, adds 8-byte fields
VMACDCOL       at the end of the record for the dataset storage sizes in
Aug 21, 2009   DCOLDSET dataset.  The new fields replace the value in
               existing variables DCDALLSP DCDUSESP DCDSCALL DCDNMBLK
               when the new fields are populated.

CHANGE 27.211  Support for new-in-z/OS 1.10 DFSORT variables added to
VMAC16         existing TYPE16 dataset:
Aug 21, 2009      ICEINMRG='INTERMEDIATE*MERGES*PERFORMED'
                  ICEMNFLG='SIZE=MAX*IN*EFFECT?'
                  ICEMNVLX='SPECIFIED*OR DEFAULT*STORAGE'
                  ICEMNVLY='THEORETICAL*STORAGE*AVAILABLE'
                  ICEMNVLZ='AVAILABLE*STORAGE'
   Thanks to Scott Barry, SBBWorks, Inc., USA.

CHANGE 27.210  A harmless Division By Zero when creating PDB.DB2STATS
VMACDB2        occurred in calculating variable THRDFTPT (to mimic the
Aug 20, 2009   IBM MENU2 report), added by Change 27.097, if variables
               QW0225AT and QDSTCNAT were both zero.  Divide protected.
   Thanks to Cletus McGee, Alfa Mutual Insurance Company, USA.

CHANGE 27.209  TMON/DB2 BF record's SQL text is not quite as documented.
VMACTMDB       BF0142LL, the "length" is 52, indicating there should be
AUG 19, 2009   50 bytes of text, but the next two bytes are INPUT in
               new MXG variable BF0142RL, which is the original (real)
               length of the original SQL text, and then, instead of the
               documented 50 bytes of sql text, the record contains only
               the first 48 bytes of text, kept in BF0142TT.  BF0142LL
               is then reduced by 2 to a value of 50 in TMDBBF dataset.
   Thanks to Ernie Amador, UC Davis Health System, USA.

CHANGE 27.208  Cosmetic. Calculation of AVGWKSET caused notes on the log
VMAC30         "Missing Values were generated" if MULTIDD='Y', because
AUG 19, 2009   those records contain ONLY DD segments.  Those notes are
               now eliminated by only calculating for "real" records.

CHANGE 27.207  MXG 27.07. Change 27.174 stopped deaccumulation of the
VMACDB2        PDB.DB2STATS vars QSSTCONT and QSSTCRIT, incorrectly, as
Aug 18, 2009   both are accumulated and must be deaccumulated.
   Thanks to Bill McDonald, Kimberly-Clark, USA.

CHANGE 27.206  The LABEL for variables STEPNAME and PROCSTEP in VMAC42
VMAC42         were the variable name, unlike all of the other labels
Aug 18, 2009   for those common variables; if you added processing of 42
               records as the last physical VMAC in your BUILDPDB, those
               STEPNAME='STEPNAME' and PROCSTEP='PROCSTEP' labels were
               used for all BUILDPDB-created datasets.  VMAC42 now has
               STEPNAME='STEP*NAME' & PROCSTEP='PROCEDURE*STEP*NAME'
   Thanks to Bret Hoesly, Telephone & Data Systems, Inc., USA.

CHANGE 27.205  Documentation. PDB.TYPE70PR observations for ICF engines
VMAC7072       with the LCPUPDTM (CPU Dispatch Duration) slightly larger
Aug 18, 2009   than the SMF70ONT (Online Duration) have been observed.
               The maximum difference in an LPAR engine was 52 millisec,
               0.052 seconds, but in that same interval, the PHYSICAL
               ICF engine recorded 0.026 seconds, so the total ICFACTTM
               for that interval was 78 milliseconds larger than the
               online duration of exactly 900 seconds for that interval.
               But some intervals do not always have exactly 900 seconds
               online; in 26 intervals, 13 were exactly 900 seconds, 6
               were shorter, by as much as 0.018 seconds, and 7 were
               longer, by as much as 0.018 seconds.  This was z/OS 1.9
               on a 2094-720 with 1 ICF, 2 IFLs, and 17 CPs.  The ICF
               Percent Busy was 100.00008 with that largest difference;
               the only circumvention is to test the PCT value and reset
               it to 100% if greater than 100 (but, if greater than 101%
               print a warning message and investigate further).
     Thanks to Nicholas Ward, Centrelink, AUSTRALIA

CHANGE 27.204  Change 27.154 did not protect when the offset to the Path
VMAC92         Section was non-zero but there was no Path Section; it
Aug 17, 2009   caused an INPUT STATEMENT EXCEEDED RECORD LENGTH error.
   Thanks to Dan Almagro, Automobile Club of Southern California, USA.

CHANGE 27.203  MXG 27.06-MXG 27.07, PDB.ASUMTALO had too few obs created
ANALCNCR       due to an error introduced in ANALCNCR in Change 27.165.
Aug 17, 2009   The ANALCNCR error ONLY occurs if the TIMERNGE= argument
ASUMTALO       was used; ASUMTALO is the only MXG member that invokes
               %ANALCNCR with a TIMERNGE= argument.  Change 27.165 added
               elimination of character-to-numeric conversion messages,
               but four typo's in new code stored &LOTIME into &HITIME.
               Only ANALCNCR was changed in this change; ASUMTALO is
               listed only to document it is impacted by this error.
              -You should check your tailoring/report source libraries
               to see if %ANALCNCR is used with the TIMERNGE= argument.
               This ANALCNCR "utility" is inconsistently named, since it
               creates an output dataset, rather than an analysis; it
               is used to count the number of concurrent events across
               time (like tape drives allocated each hour in ASUMTALO).
   Thanks to Jon Whitcomb, Great Lakes Educational Loan Service, USA.

CHANGE 27.202  MXG 27.07.  Debugging PUT statement at line 757 was
VMAC116        removed.
Aug 14, 2009
   Thanks to Alfred Holtz, Medco Health Solutions, USA.

CHANGE 27.201  More DB2 Updates.
ANALDB2R
READDB2
Aug 12, 2009

CHANGE 27.200  Support for CICS/TS 4.1 GA updates/documentation notes:
EXCICMLR      -Format MG110MP updated for new TCB Pool values of XPLINK,
EXCICRLR       SSL, and THRD, new formats MGCICAT, MGCICRT created.
EXCICSJS      -Dataset  CICECC new variables:
EXCICW2R        ECCCANAM ECCCAPOI ECCCAPTY ECCEBNAM ECCEVCAP ECCEVNAM
FORMATS       -Dataset  CICECG new variables:
IMAC110         ECGFLFAI ECGCAPFA ECGEVLCO ECGEVLOT
VMAC110       -Dataset  CICECR new variables:
VMXGINIT        ECRCHGAG ECRCHGDT ECRCHGUS ECREBNAM ECRGRFRM ECRINSAG
Aug 16, 2009    ECRINSDT ECRINSUS
              -Dataset  CICEPR new variables:
                EPGSYNBK EPGEVLCO EPGEVLOT

              -New Statistics Datasets created:

                 dddddd   dataset   description                    stid

                 CICRLR   CICRLR  CICS BUNDLE                       100
                 CICW2R   CICW2R  CICS ATOMSERVICE                  110
                 CICMLR   CICMLR  CICS XMLTRANSFORM                 113
                 CICSJS   CICSJS  CICS JVMSERVER STATISTICS (RESID  116

                 Note: STID=79, STIMNR is not a Statistics DSECT, but is
                       a SUBTYPE=1,MNSEGCL=5 Transaction Record; support
                       for which was added in MXG 20.20, Change 20.200.

                       STID=84, STIMNT is never created in SMF records;
                       it is an online interface only.

              -Change 27.032 noted there are 3 new TCBs in CICS/TS 4.1,
               T8, EP, and TP, but only T8CPUT is recorded in CICSTRAN.
               The EP TCB for Event Processing is explicitly NOT in the
               CICSTRAN data, because IBM states that processing of the
               new Business Event is NOT to be chargeable to users.
               A TP TCB is created for every JVMSERVER resource def that
               is installed and enabled, but I have not found a reason
               why they are not captured in CICSTRAN.
              -DOCUMENTATION.  CICS Statistics datasets CICDS, CICDSPOO
               have many variables starting with DSG,DS1-DS9,DSA-DSN,
               and their labels were not consistent.  This list is now
               added at the bottom of VMAC110, and the labels revised:

               DOCUMENTATION OF THE VARIABLES STARTING WITH DS.

               TWO DATASETS CONTAIN VARIABLES THAT START WITH DS:
               DATASET CICDS - DISPATCHER STATISTICS:
               - "INTERVAL" VARIABLES STARTING WITH DSGXXXXX
               - "PER TCB" VARIABLES STARTING WITH DSG DS1-DS9 DSA-DSN
               DATASET CICDSPOO - TCB POOL STATISTICS:
               - "PER POOL" VARIABLES STARTING WITH DSG DS1-DS5

               DATASET CICDS - DISPATCHER STATISTICS:
               - "INTERVAL"  VARIABLES STARTING WITH DSG:
                  DSGNTCB  DSGCNT   DSGEJST  DSGICVRT DSGICVSD DSGICVT
                  DSGMBTCH DSGPNT   DSGPRIAG DSGPTCB  DSGSRBT  DSGSTART
                  DSGLSTRT DSGSTSKS DSGXSCNN DSGXSCNS DSGXTCBD

               - "INTERVAL" VARIABLES ALWAYS MISSING VALUES:
                  DSGAMXTC DSGAMXTL DSGAMXTP DSGLRT   DSGMAXOP DSGTAMXT
                  DSGTL    DSGTOTWT


               DATASET CICDS - DISPATCHER STATISTICS:
               - "PER TCB" VARIABLES STARTING WITH DSG DS1-DS9 DSA-DSN
                  (The TCB NUMBER HAS CHANGED BETWEEN CICS RELEASES)
            3.2   4.1  TCB    MXG VAR
            NUM   NUM  NAME   PREFIX    DESCRIPTION
            --          H8      DSC     H8 - NOT IN CICS/TS 3.1+
              1         QR      DSG*    QUASI REENTRANT MODE
              2         RO      DS2*    RESOURCE OWNING MODE
              3         CO      DS3*    CONCURRENT MODE
              4         SZ      DS4*    SECONDARY LU MODE
              5         RP      DS5*    ONC/RPC MODE
              6         FO      DS6     FILE OWNING MODE
              7         SL      DS7     SOCKETS OWNING MODE (SL)
              8         SO      DS8     SOCKETS OWNING MODE (SO)
              9         SP      DSH     SOCKETS PTHREAD OWNING MODE (SP)
                  10    EP      DSM     EVENT PROCESSING MODE
             10   12    D2      DSD     D2 - DB2 MODE
             11   13    JM      DSE     JM - JVM CLASS CACHE MODE
                  11    TP      DSN     TP - THREADED TCB OWNING MODE
             12   14    S8      DSB     S8 - SOCKETS (SSL) MODE
             13   15    L8      DSA     L8 - OPEN MODE CICS
             14   16    L9      DSI     L9 - OPEN MODE USER
             15   17    J8      DS9     J8 - OPEN MODE CICS
             16   18    J9      DSF     J9 - OPEN MODE USER
             17   19    X8      DSJ     X8 - OPEN MODE CICS
             18   20    X9      DSK     X9 - OPEN MODE USER
             19   21    T8      DSL     T8 - JVM MULTITHREADED

            THE ABOVE TABLE MAPS EACH TCB NAME TO ITS VARIABLE PREFIX.
            THESE "PER TCB" VARIABLES ARE POPULATED:

                 DS.ACT   DS.NTCBA DS.PERCT DS.START DS.SYSW  DS.TCBAF
                 DS.TCBAL DS.TCBCA DS.TCBCU DS.TCBDO DS.TCBDS DS.TCBDU
                 DS.TCBDX DS.TCBMD DS.TCBMM DS.TCBMP DS.TCBNM DS.TCBPA
                 DS.TCBPU DS.TCBST DS.TCT   DS.TDT   DS.TWT

                 THESE "PER TCB" VARIABLES ALWAYS HAVE MISSING VALUES:
                 DS.PERCT DS.TCBF1 DS.TCBF2 DS.TCBF3
                 DS.TCBF4 DS.SCT   DS.SWT

               DATASET CICDSPOO - TCB POOL STATISTICS:
               - "PER POOL" VARIABLES STARTING WITH DSG DS1-DS5

                  DSG   OPEN POOL (CONSISTING OF L8 AND L9 TCBS)
                  DS2   JVM POOL  (CONSISTING OF J8 AND J9 TCBS)
                  DS3   XP POOL   (CONSISTING OF X8 AND X9 TCBS)
                  DS4   SSL POOL  (CONSISTING OF S8 TCBS)
                  DS5   THRD POOL (CONSISTING OF T8 TCBS)

                  J8 L8 S8 T8 AND X8 TCBS ARE CICS TCBS.
                  J9 L9 AND X9 TCBS ARE USER TCBS.

               "TCB POOL" VARIABLES HAVE DSG,DS1,DS2,DS3,DS4,DS5 PREFIX:

                  DS.CMMWS DS.CMMWT DS.CNUAT DS.CNUUS DS.CURNW DS.CURWT
                  DS.MMWTM DS.MMWTS DS.MXTCB DS.NTCBL DS.PEANW DS.PMWWS
                  DS.PNUAT DS.PNUUS DS.TCBPN DS.TOTMT DS.TOTMW DS.TOTNW
                  DS.TOTWL
   Thanks to Don Deese, Computer Management Science, USA.

CHANGE 27.199  Documentation of this error message:
JCLTEST9         ERROR: PHYSICAL FILE DOES NOT EXIST, ATP1DKP.ADM.DATA.
Aug 12, 2009   occurs when a FILE ADM statement was found, but there was
               no //ADM DD in the job. SAS then looks for a file named
               JOBNAME.FILENAME.DATA, and fails.

CHANGE 27.198  Even when PDBOUT= was not specified, so the null default
ANALRMFR       (write to //WORK) was desired, ANALRMFR still wrote the
Aug 12, 2009   TYPE7xxx datasets to //PDB instead of //WORK.  %LETs were
               added to protect the SPLIT70 logic.
   Thanks to Kim Westcott, New York State Office of Technology, USA.

CHANGE 27.197  Change 27.175 added DB2STATB/DB2STATS/DB2GBPST but failed
ANALDB2R       (VARIABLE SYSTEM NOT FOUND) if DB2STATB was redirected to
Aug 12, 2009   a separate input DDNAME.
   Thanks to Scott Wiig, USBank, USA.

CHANGE 27.196  Change 27.138 heuristic test for LENGTH=412 for subtypes
VMAC85         78,79,88 did not generalize and still failed with record
Aug 12, 2009   from z/OS 1.10 subtype 78 record.  The test was revised
               to test  R85PVRM IN (1030 1090 1100 1110) to hopefully
               protect 1.9, 1.10 and 1.11 records, but only 1.10 and
               ancient 1.30/1.40 records are validated with SMF data.
   Thanks to Brian Felix, Wachovia Bank, USA.
   Thanks to Mike Spires, Wachovia Bank, USA.

====== Changes thru 27.195 were in MXG 27.07 dated Aug 11, 2009========

CHANGE 27.195  Documentation only.  When IFCIDS=ACCOUNT is specified,
READDB2        READDB2 automatically creates the DB2ACCTB dataset, but
Aug 11, 2009   when BUILDPDB/TYPEDB2 is used, the EXDB2ACB exit is used.
               So if you (incorrectly) had a DELETE statement in your
               tailored EXDB2ACB member, the number of observations that
               were created in DB2ACCT/DB2ACCTB/DB2ACCTG were much less
               with BUILDPDB/TYPEDB2 than with READDB2.  The EXDB2ACB
               exit is the ONLY DB2 exit that is overridden in READDB2.

CHANGE 27.194  These variables from the LPAR Object in NMON/TAPAS record
VMACNMON       are now input and kept:
Aug 11, 2009     CAPPED EC_USER EC_SYS  EC_WAIT EC_IDLE VP_USER
                 VP_SYS VP_WAIT VP_IDLE FOLDED  POOL_ID
   Thanks to Steve Dyck, Canadian Depository for Securities, CANADA.

CHANGE 27.193  READDB2 with Change 27.169 did not copy all ACCOUNT data
READDB2        sets to the PDBOUT= parameter, when it was used.
Aug 11, 2009
   Thanks to Thomas Heitlinger, FIDUCIA, GERMANY.
   Thanks to Sieghart Seith, FIDUCIA, GERMANY.

CHANGE 27.192  Incorrect READTIME (date in 2010) because CA=7 overlaid
VMAC110        the first byte of the time part with 'EE'x, but CA is
Aug 11, 2009   then supposed to correct that overlay in the SMF write
               exit, which requires specific code for each record type.
               Apparently, CA-7 has failed to protect the SMF 110s,
               but MXG detects now and corrects READTIME in SMF 110.
                  Search CHANGESS for "UCC7" LAST for further info.
   Thanks to Marnel Groebner, State of Washingon, USA.

CHANGE 27.191  Variable ACTVWSS, working set size, in dataset XAMUSR,
VMACXAM        was incorrectly multiplied by 4096; it is already in
Aug 11, 2009   bytes, not KB, so the multiply was removed.
   Thanks to Chris Morgan, CitiCorp, ENGLAND.

CHANGE 27.190  Dataset TMS.TMS observations with DEVTYPE blank were
VMACTMS5       found with TRTCH='D0'x and 'EE'x, and TMS shows those
Aug 10, 2009   as DEN 3590 and 3592, so those hex values are now mapped
               to the DEN values in DEVTYPE.
   Thanks to Scott Barry, SBBWorks, Inc., USA.

CHANGE 27.189  Support for Serena's StarTool IOO Product's USER SMF
EXIOOVBU       creates 10 datasets:
EXIOOQBU
EXIOORBL         DATASET    DATASET   DATASET
EXIOOVUS         SUFFIX     NAME      LABEL
EXIOOVRP
EXIOOVX1         IOOVBU     IOOVBUF   VSAM BUFFER OPTIMIZATION
EXIOOVX2         IOOQBU     IOOQBUF   QSAM BUFFER OPTIMIZATION
EXIOOVX3         IOORBL     IOORBLK   QSAM BLKSIZE OPTIMIZATION
EXIOOVX4         IOOVUS     IOOVUSR   USER BLDVRP
EXIOOVX5         IOOVRP     IOOVRPB   BLDVRP OVERRIDE
FORMATS          IOOVX1     IOOVEX1   OPT BYPASS AS PER RULES TABLE
IMACIOO          IOOVX2     IOOVEX2   OPT BYPASS NO RULES TABLE MATCH
TYPEIOO          IOOVX3     IOOVEX3   OPT BYPASS BUFFER CHANGE NOTAUTH
TYPSIOO          IOOVX4     IOOVEX4   OPT BYPASS JCL PARMS PRESENT
VMACIOO          IOOVX5     IOOVEX5   OPT BYPASS CSR FAILURE
VMXGINIT
Aug 10, 2009

CHANGE 27.188  MXG 27.04-27.06.  When DB2STATS was enhanced to include
VMACDB2        the IFCID=225 DB2STAT4 dataset, the BY list for the sort
Aug 10, 2009   order for DB2STAT0 and DB2STAT1 was incorrectly changed,
               which could cause a NOT SORTED error in WEEKBLD/MONTHBLD.
               This change resets the sort order for DB2STAT0/DB2STAT1
               to the expected  SYSTEM QWHSSSID QWHSSTCK.
               The same order can NOT be used to create DB2STATS because
               the QWHSSTCK timestamp is not consistent in an interval;
               instead, SYSTEM QWHSSSID QWHSACE QWHSMTN QWHSISEQ must be
               used to create DB2STATS.
               If you encounter the NOT SORTED error, you can remove the
               BY statement in your WEEKBLD/MONTHBLD to circumvent.

               BUT: the better solution is to REMOVE DB2STAT0, DB2STAT1
               and DB2STAT4 from your WEEKBLD and MONTHBLD, because they
               are completely contained in the DB2STATS dataset!

               Unfortunately, I have to leave them in WEEKBLD/MONTHBLD
               because they are already there, and removing them would
               create a bigger exposure to DATA SET NOT FOUND errors!
   Thanks to Wayne Bell, UniGroup, USA.

CHANGE 27.187  In spite of my note in IMACICDL "beginning with IMS 5.1
IMACICDL       CICS/TS 1.1+ do NOT support DL/1 calls from CICS" SMF 110
UTILEXCL       records with the optional IMACICDL data segment can still
VMAC110        be created, and with CICS/TS 3.2, it is INCOMPATIBLE due
Aug  8, 2009   to the increase to 12 byte clock/counters.  IMACICDL was
               revised to support both lengths, even though ALL of the
               fields in the IMACICDL segment are now ALWAYS zeroes.
              -UTILEXCL's generated KEEP= statement was updated to KEEP
               these variables, but ONLY so I could confirm the zeroes.
              -A DROP statement was added in IMACICDL so these variables
               will be dropped if you do have to tailor IMACICDL.

CHANGE 27.186  WSF record with ACCSTAT='.1......'B flag, which says that
VMACWSF        the ACCKTN Extension added in WSF 3.3.6 exists, caused an
Aug  7, 2009   INPUT STATEMENT EXCEEDED RECORD LENGTH when it did not
               have the minimum-length-20-byte segment present; MXG now
               tests that both that bit is on, AND that 20 bytes of data
               actually exists before inputting the extension fields.
   Thanks to Norm Folkers, CGI, CANADA.

CHANGE 27.185  Variable R744RSST='TOTAL*SIGNAL*SERVICE*TIME' in dataset
VMAC74         TYPE74DU/XTY74DU was incorrectly divided by 10**(-6); it
Aug  7, 2009   was already converted to microseconds in the INPUT and
               should not have also been divided.
   Thanks to Yacine Amraoui, La Banque Postale, FRANCE.

CHANGE 27.184  Support for VMWARE objects in NTSMF adds new datasets:
VMACNTSM         dddddd  Dataset   Description/Object Name
Aug  7, 2009     NTVWGC  VMWGUCPU  VMWARE.GUEST.CPU
                 NTVWGD  VMWGUDIS  VMWARE.GUEST.DISK
                 NTVWGM  VMWGUMEM  VMWARE.GUEST.MEMORY
                 NTVWGN  VMWGUNET  VMWARE.GUEST.NET
                 NTVWGR  VMWGURES  VMWARE.GUEST.RESCPU
                 NTVWGS  VMWGUSYS  VMWARE.GUEST.SYS
                 NTVWHC  VMWHOCPU  VMWARE.HOST.CPU
                 NTVWHD  VMWHODIS  VMWARE.HOST.DISK
                 NTVWHM  VMWHOMEM  VMWARE.HOST.MEMORY
                 NTVWHN  VMWHONET  VMWARE.HOST.NET
                 NTVWHR  VMWHORES  VMWARE.HOST.RESCPU
                 NTVWHS  VMWHOSYS  VMWARE.HOST.SYS
                 NTVWRP  VMWREPOL  VMWARE.RESOURCEPOOL
               and support for new objects ASP.NET V2.0.50727 and
               ASP.NET APPS V2.0.50727 which are output in existing
               ASPNET and ASPNETAP datasets.

CHANGE 27.183  The Diagnose Instruction variables added by Change 26.203
VMACVMXA       were only INPUT and not kept in z/VM dataset VXPRCDIA.
Aug  6, 2009
   Thanks to Jim Dammeyer, State Farm Auto, USA.

CHANGE 27.182  Support for optional, user-created, CICS REQCNT1 field.
IMACICUE
VMAC110
UTILEXCL
Aug  6, 2009
   Thanks to Leendert Keesmaat, UBS, SWITZERLAND.

CHANGE 27.181  Support for VOLSER='SCRTCH', a previously unseen (or not
ASUMTAPE       noticed value for VOLSER), which has to be added to the
Aug  5, 2009   existing exceptions for VOLSER='PRIVAT'.  Mounts with the
               VOLSER='SCRTCH', either in the TYPETMNT Mount dataset or
               the TYPESYMT SYSLOG dataset, were not matched with their
               TYPE21 (because it always has the resultant VOLSER).
   Thanks to Scott Barry, SBBWorks, Inc., USA.

CHANGE 27.180 -Support for new CPU_PHYSICAL and CPU_ENTITLED objects in
VMACNMON       TOPAS (originally NMON, Nigel's Monitor for AIX/LINUX)
Aug  5, 2009   adds six variables from each into NMONINTV dataset:
Aug  7, 2009     PPHYBUSY PPHYIDLE PPHYSYS PPHYUSER PPHYWAIT NRPHYS
                 PNTIBUSY PNTIIDLE PNTISYS PNTIUSER PNTIWAIT NRNTIS
              -MEMUSE record with invalid numeric value 0.275.9 in the
               last field causes two harmless messages to be printed:
                 INVALID ARGUMENT TO FUNCTION INPUT.
               and variable MUMAXCLI will have a missing value.
              -INVALID ARGUMENT messages for RECTYPE='RAWCPUTOTAL' were
               corrected; right hand argument of WORD2 test needed to be
               in all upper case.
   Thanks to Steven Olmstead, Northwestern Mutual, USA.

CHANGE 27.179 -MXG 27.05-27.06.  WORK datasets were not PROC DELETEd due
TYPETMS5       to debugging comments that should have been removed.  The
Aug  5, 2009   14 datasets required over 6400MB with a 700MB TMS input.
   Thanks to Jim Kovarik, AEGON, USA.

CHANGE 27.178  ASUM70PR with STARTIME=16:29:59 (instead of 16:30:00) was
VMXG70PR       incorrectly reset to 16:15 when INTERVAL=QTRHOUR was used
VMXGRMFI       and this created an obs with DURATM=30 minutes instead of
Aug  5, 2009   the requested 15 minute summarization (fortunately, all
               data values in that observation ARE correct!).  STARTIME
               has always been used for MXG RMF summarization, because
               the only other original choice, SMFTIME, was inexact, as
               write delays could cause it to be in the next hour, etc.
               But now, SMF70GIE, the expected, exact, end of interval,
               always exists in current RMF/CMF records, so it is used
               to define the interval when INTERVAL="value" is specified
               so STARTIME can then be exactly reset SMF70GIE-MXGDURTM.
               SMF70GIE is already used elsewhere in VMXG70PR, but not
               in the STARTIME reset algorithm.
                  If SYNC59=YES was accidentally specified (not needed
                  here because the RMF data was written with SYNC=0),
                  STARTIME was set to 16:30 instead of 16:15, and the 30
                  minute obs was accidentally NOT created.
               Why the STARTIME is one full second earlier instead of
               exact is not known, but this system was a 2094-709 with
               VERSNRMF 750, and IRD was not active.
              -RMFINTRV was revised to also set STARTIME from SMF70GIE,
               so there should always be a perfect match between the
               PDB.RMFINTRV and PDB.ASUM70PR values.
   Thanks to Douglas C. Walter, Citigroup, USA.
   Thanks to Brent Turner, Citigroup, USA.

CHANGE 27.177  Variable RECTOK was truncated to 12 bytes because it was
VMACITRF       incorrectly formatted $HEX24; it is now correctly format
Aug  4, 2009   with $HEX32 to set its stored length as 16 bytes.
   Thanks to Shantha Hallett, Capgemini UK, WALES.

CHANGE 27.176 -MXG support for IMF 4.4 was incorrect for these variables
VMACCIMS       that were previously binary with varying resolutions but
Aug  5, 2009   were changed in 4.4 to floating point microseconds:
                 TRNW1OTH TRNW2OTH TRNW2LCH TRNW2IOV TRNW2IOO TRNW3OTH
                 TRNW3LCH TRNW4OTH TRNW4DBR TRNW4IO  TRNW5OTH TRNW5LCH
                 TRNW5LCK TRNW5IOV TRNW5IOO TRNW5IOD TRNEAPPL TRNEDLTM
                 TRNEDLDB TRNEDB2  TRNEMQS  TRNEOESS TRNEOPCL TRNESYNC
              -Records with LTERM values that are neither EBCDIC nor
               ASCII ('EE4A80B18DDDDEEA'x) print funny-looking text.
               Using FORMAT LTERM $HEX16.; will show that hex value,
               but that makes the true printable text unreadable.
               Not really a problem, mostly an observation.
              -BMC PTF BQI0695 corrects an error in which a DBD segment
               could be overlaid with zeros.  This was detected because
               SQLCALL='Y' (the transaction called DB2), but SQLCALLS
               (the sum of calls in all DBD segments with DBORG='80'x)
               was a missing value.  Any transaction with SQLCALL='Y'
               must have at least one DBORG='80'x DB2 DBD segment.
   Thanks to Thomas Heitlinger, FIDUCIA, GERMANY.
   Thanks to Sieghart Seith, FIDUCIA, GERMANY.

CHANGE 27.175 -ANALDB2R detected but did not tolerate the absence of the
ANALDB2R       DB2STATB dataset.
Jul 31, 2009  -Aug 9: ANALDB2R now honors DB2STATB/DB2STATS parameters
Aug  9, 2009   and new DB2GBPST parameter is added.
   Thanks to Scott Wiig, USBank, USA.

CHANGE 27.174  Variable QSSTCONT and QSSTCRIT were deaccumulated, but
VMACDB2        they should not have been, as they are end point values.
Jul 30, 2009   CHANGE REVERSED: SEE CHANGE 27.207.
   Thanks to Ray Dunn, CIGNA, USA.
   Thanks to Deborah L. Soricelli, CIGNA, USA.

CHANGE 27.173  Misspelled variables cause confusion, but cannot simply
VMACDB2        be replaced by the correct spelling, as other programs in
Aug  5, 2009   MXG and in user programs may use the incorrect spelling,
               so these new (correctly spelled) variables are created:
                QBGLWM  QXXCBPNX  QXXCSKIP QXCRINX
               with the same contents and labels as the incorrect ones:
                QBGLMW  QZZCBPNX  QZZCSKIP QXCRINDX
   Thanks to Tony Curry, BMC, USA.

CHANGE 27.172  Most tests for IF xxxxxxxx NE 0 THEN were revised to test
ANALDB2R       IF xxxxxxxx GT 0 THEN because missing-value variables are
Jul 29, 2009   true with NE 0 but in most cases that is not wanted. Each
               test must be examined to see if xxxxxxxx can be missing,
               and to confirm that the true value wanted was only GT 0.
               This prevented divide-by-zero error messages.

CHANGE 27.171  MXGTMNT records INPUT is now protected if the same SMF
VMACTMNT       record number is also used by another product's record,
Jul 28, 2009   by verifying that TMNTSYS='TMNT'; when duplicate use of
               the TMNT record ID is detected, two instances are now
               printed on the log with a hex dump so you can identify
               the other product "sharing" the TMNT record ID.
   Thanks to Linda Pitcher, Progressive, USA.

CHANGE 27.170  MXG QA Test Stream step TESTREAL was revised to validate
CLEARDB2       both the existence of datasets and expected observations
TESTREAL       with the known SMF input file of DB2 data.  READDB2 is
Jul 25, 2009   re-executed multiple times, so resetting of all of the
               old-style macros for DB2 is required prior to each; the
               static reset was stored in new member CLEARDB2 for reuse.

CHANGE 27.169  MXG 27.04-27.06.  READDB2 did not output to any T102Snnn.
READDB2        The error was introduced in MXG 27.04, and while READDB2
Jul 25, 2009   is tested in the QA stream, the tests were for existence,
               and did not verify actual observations were created.
   Thanks to Alex Macfarlane, BNY Mellon, USA.

CHANGE 27.168 -MXG 27.05-27.06.  Change 27.108 accidentally deleted the
TYPETMS5       _KTMSTMS token that should have been after line 188; the
Jul 24, 2009   token is used by ITRM to add variables for TMS.
   Thanks to Rob D'Andrea, CIS, ENGLAND.

====== Changes thru 27.167 were in MXG 27.06 dated Jul 20, 2009========

CHANGE 27.167  Minor. %READDB2... did not honor OPTIONS OBS=5000 because
READDB2        a RUN; statement was required to separate the execution
Jul 21, 2009   of the DATA step from subsequent %VGETOBS existence tests
VMXGOPTR       (for IFCIDs 105/107).  In %VGETOBS execution, the first
Jul 22, 2009   %VMXGOPTR with "OPTION=OBS,NEWVALUE=MAX", (needed so the
               PROC SQL can function even if the user has set the option
               OBS), was being executed before the DATA step that reads
               the SMF data.  The RUN; in READDB2 cured its problem, but
               a more generic solution was to insert a RUN; statement at
               the top of VMXGOPTR to protect it for all calls.

CHANGE 27.166  CA-VIEW SARSRQUX exit SMF record was completely changed.
VMACSARX       The new layout of the fixed portion is now supported, but
Jul 21, 2009   the Fixed JCL Attribute segment does not exist in my two
Oct  4, 2009   test records, and the Variable JCL Attribute segment is
               not populated, so those segments are not yet INPUT, which
               causes many, but harmless, UNINITIALIZED VARIABLE notes
               on the log.  Oct 4: UNINIT messages removed.
               Thanks to Bob DeBartolo, Conseco, USA.

====== Changes thru 27.165 were in MXG 27.06 dated Jul 20, 2009========

CHANGE 27.165 -VMXGSUM now dies gracefully with an MXGERROR message when
ANALACTM       the input dataset does not exist; before, it still died,
ANALCNCR       but the cause of death was unknown to the user.  This can
ANALINIT       happen if you include an ASUMxxxx or TRNDxxxx but you had
BLDNTPDB       not created the expected input datasets.  VMXGSUM works
UTILCONT       fine if the dataset exists and has zero observations.
UTILVREF      -ANALCNCR modified to fail before calling VMXGSUM if the
UTILXRF1       input dataset does not exist.
VGETDDS       -VGETOBS was revised to protect when OPTIONS OBS=0 is in
VGETDSN        effect; the PROC SQL used to determine if the dataset has
VGETENG        observations did not execute, so VGETOBS falsely reported
VGETOBS        the tested dataset did not exist, when in fact it did.
VMXGENG        Calls to VMXGOPTR were inserted to store the current OBS
VMXGOPTR       option in effect, set OBS=MAX for the PROC SQL, and then
VMXGSIZE       restore the original option with a second VMXGOPTR call.
VMXGSUM        But this instance of this exposure caused examination of
VMXGUOW        all MXG code that uses PROC SQL, so these members have
Jul 17, 2009   also been protected to execute properly with OBS=0 set:
ASUMCACH         ASUMCACH BLDNTPDB UTILCONT UTILVREF UTILXRF1 VGETDDS
                 VGETDSN  VGETENG  VMXGENG  VMXGSIZE VMXGUOW
               Setting OPTIONS OBS=0; is a quick way to test SAS code
               for any SAS syntax errors, and as all datasets are also
               created, subsequent references to datasets or variables
               are validated, but no records are read and no disk space
               is used since all datasets have zero observations.
               An alternative technique is to use a DUMMY input file.
              -VMXGUOW %VMXGOPTR calls balanced for default NOOBS zero.
              -VMXGOPTR modified to UPCASE the parameters.
              -ANALINIT protected with NODSNFERR/NOVNFERR, and is now
               a self-executing %MACRO.
              -ANALACTM.  Some headings ran together & the response time
               goals went into exponential notation.  ANALACTM gives you
               a visual picture of your WLM definitions.
              -Aug 12, 2009:  VGETOBS defined a new argument, NOEXIMSG.


CHANGE 27.164  NOTE: NUMERIC VARIABLE CONVERTED TO CHARACTER in TIMEBILD
TIMEBILD       happens to be harmless, but because it raised questions
Jul 15, 2009   (Why?  Impact?), it is now eliminated.  The culprit was
               the CALL SYMPUT("MXGTIMES",SYS); where SYS was a numeric
               count, and %MACRO variables must be character.  Inserting
               SYST=PUT(SYS,2.); to create character variable SYST, and
               using SYST in place of SYS eliminated the message.
   Thanks to Paul Volpi, UHC, USA.

CHANGE 27.163  Eight BVIR variables are converted to bytes and FORMATed
VMACBVIR       MGBYTES, and *KB in their label is replaced by BYTES to
Jul 15, 2009   be consistent with the other byte-containing variables:
                  P0CHRD  ='HBA*PORT 0*CHAN*READ*BYTES'
                  P0CHWR  ='HBA*PORT 0*CHAN*WRITE*BYTES'
                  P0VDRD  ='HBA*PORT 0*VDEV*READ*BYTES'
                  P0VDWR  ='HBA*PORT 0*VDEV*WRITE*BYTES'
                  P1CHRD  ='HBA*PORT 1*CHAN*READ*BYTES'
                  P1CHWR  ='HBA*PORT 1*CHAN*WRITE*BYTES'
                  P1VDRD  ='HBA*PORT 1*VDEV*READ*BYTES'
                  P1VDWR  ='HBA*PORT 1*VDEV*WRITE*BYTES'
   Thanks to Perry Lim, Union Bank, USA.

CHANGE 27.162  Support for BMC APPTUNE SQL IFCIDS=8004x-8136x as SMF 102
EX102S04       records create these eleven new datasets:
EX102S05
EX102S07         DDDDDD    DATASET      DESCRIPTION/IFCID
EX102S08         102S04    T1028004  102S04: BMC SQL APPTUNE 8004
EX102S09         102S05    T1028005  102S05: BMC SQL APPTUNE 8005
EX102S0A         102S07    T1028007  102S07: BMC SQL APPTUNE 8007
EX102S0B         102S08    T1028008  102S08: BMC SQL APPTUNE 8008
EX102S33         102S09    T1028009  102S09: BMC SQL APPTUNE 8009
EX102S34         102S0A    T102800A  102S0A: BMC SQL APPTUNE 800A
EX102S35         102S0B    T102800B  102S0B: BMC SQL APPTUNE 800B
EX102S36         102S33    T1028133  102S33: BMC SQL APPTUNE 8133
IMAC102          102S34    T1028134  102S34: BMC SQL APPTUNE 8134
READDB2          102S35    T1028135  102S35: BMC SQL APPTUNE 8135
VMAC102          102S36    T1028136  102S36: BMC SQL APPTUNE 8136
VMACDB2H
VMXGINIT         102BMC    Creates all of the above
Jul 15, 2009
               All eleven BMC T1028xxx datasets are created together,
               with a single macro token dddddd=102BMC.  Separate
               dddddd tokens for each IFCID/dataset are not defined, as
               I decided you'd want all eleven or none.  You can create
               only those eleven BMC T1028xxx datasets using %READDB2
                  %READDB2(IFCIDS=BMC);
               Or, if you create all possible T102 datasets using either
               %INCLUDE SOURCLIB(TYPE102); or %READDB2(IFCIDS=ALL);, all
               350 IBM T102Snnn and the 11 BMC datasets will be created.
              -While many of the fields are from standard IBM DB2 DSECTS
               QWAC, QBAC, QTXA, QXST, and QWAX, all variable names in
               the BMC T1028nnn datasets start with QBMCxxxx, so there
               is no collision/conflict with the existing MXG names.
              -Note that variables QBMCEJST and QBMCESC are different
               from the IBM QWACEJST/QWACESC fields; BMC stores the
               accumulated total measured time for the statement rather
               than the end time for one execution in both.

Change 27.161  Incorrect QXPK values in DB2ACCTP, DB2 V9 only, only if
VMACDB2        NRQPAC GT 1, only in 2nd and subsequent obs per record.
Jul 13, 2009   The DB2ACCTP Package obs contain either both QBAC & QXPK
               segments (when Class 10 is enabled) or neither (if not);
               if on, there is one QBAC and one QXPK segment per QPAC,
               MXG outputs the first set in the first obs, the second
               set in the second obs, etc.  However, DB2 V9 IFCID=239
               (ID=101,Subtype=1) records with more than one NRQPAC had
               incorrect QXPK variable's values in 2nd-plus obs, due to
               MXG incorrect logic test for =0 instead of LE 0 (and a
               typo) in its handling of the new DB2 V9 lengths:
                  In DB2, IBM stores a zero in the length field in the
                  "triplet", and the triplet's offset now points to the
                  two-byte location with the actual field length, at the
                  start of that segment's data.  But only sometimes!

CHANGE 27.160  Var EVENTIME was inadvertently DROPed from PDB.ASUMTAPE
ASUMTAPE       by Change 26.038 (MXG 26.03), but was expected in ITRM.
Jul 10, 2009   It is now kept again with the beginning datetimestamp of
               the mount event.
   Thanks to Don Bernard, North Carolina State Government, USA.

CHANGE 27.159  The test for OSI to input SMF62MGT/SMF62STR/SMF62DAT
VMAC62         unintentionally prevented OPENTIME and ACBMACR1-ACBMACR4
Jul  9, 2009   from being input.  The OSI test is no longer needed as
               space for all three fields are always present, so it was
               removed.  And because the MGT/STR/DAT can contain '00'x,
               those values were translated to blanks.
   Thanks to Sam Bass, McLane Co., USA.

CHANGE 27.158  This change is in progress, requiring many updates before
VMACDB2        it is fully implemented.  Progress is documented below.
VMACDB2H       If DB2 zparm UIFCIDS=YES is set, many DB2 character vars
VMAC102        will contain ASCII instead of EBCDIC text.  These fields
Jul  8, 2009   are identified as "%U" in the IBM DSECTs; technically the
               fields contain UNICODE, UTF-8, which is simple ASCII.
               Each of these "%U" fields has its original fixed-length
               location (that MXG continues to INPUT, but conditionally
               INPUTs ASCII or EBCDIC), but if the text length is longer
               ("truncated" to that fixed-length), a new offset points
               to the length and location of the "un-truncated" text,
               which is then conditionally input with the longer length.

               Change 24.136 created DB2UNICD='Y' when UIFCIDS=YES, and
               DB2UNICD was used to conditionally INPUT these variables
                 QLACLOCN QLSTLOCN QMDALOCN QPACCOLN QPACLOCN QPACPKID
                 QWHCAID  QWHCOAUD QWHCOPID QWHCROLE QWHCTCXT QWHSLOCN
               (because only these fields were ASCII in test data).

               However, when the below circumvention for an IBM ABEND
               required UIFCIDS=YES to be set, these header variables
                QWHDRQNM QWHDSVNM
               were seen to be in ASCII, and VMACDB2H was updated.

               There are at least 224 %U fields in DB2 V9 DSECTS that
               need update or at least verification, and they will all
               (EVENTUALLY!!) be updated/supported.

               As of Jul 13, these variables are now "%U" Supported:

               Still to be done:
               These are the only "ACCOUNT" IFCIDS that need updating:
                 QPACASCH QPACAANM
               and these are all of the SMF 102 IFCIDs that need update:
                 QW0022CI QW0022CN QW0022CR QW0022PG QW0022QO QW0022TN
                 QW0029CI QW0029LN QW0029PI
                 QW0030CI QW0030LN QW0030PI
                 QW0031CI QW0031LN QW0031PI
                 QW0053LN QW0053PC QW0053PN
                 QW0055NI QW0055OI
                 QW0058LN QW0058PC QW0058PN
                 QW0059CN QW0059LN QW0059PC QW0059PN
                 QW0060LN QW0060PC QW0060PN
                 QW0061CN QW0061LN QW0061PC QW0061PN
                 QW0064CI QW0064CN QW0064LN QW0064PN
                 QW0065CN QW0065LN QW0065PC QW0065PN
                 QW0066CN QW0066LN QW0066PC QW0066PN
                 QW0083SA
                 QW0087SA
                 QW0096PC QW0096PN
                 QW0108NC QW0108NI QW0108NL QW0108OH QW0108OW QW0108QL
                 QW0110PC QW0110PI QW0110PL
                 QW0112OH
                 QW0113OH
                 QW01247S QW0124CI QW0124LN QW0124PN QW0124SP
                 QW0125PC QW0125PN
                 QW0140SC QW0140SN QW0140TC QW0140TN QW0140UR
                 QW0141OR
                 QW0142CR QW0142OW QW0142TN
                 QW0145LN QW0145PC QW0145PN
                 QW01488L QW01489L QW0148CI QW0148LN QW0148PN QW0148SP
                 QW0157LN QW0157PN
                 QW0158PN
                 QW0159LN
                 QW0162LN
                 QW0169AL QW0169AU QW0169LO QW0169NE
                 QW0173CN*QW0173ID*QW0173PC QW0173PK
                 QW0177CO QW0177LO QW0177OH QW0177PI
                 QW0183CO QW0183LN QW0183PN
                 QW0185CN QW0185CR QW0185TB
                 QW0191LN
                 QW0192LN [192cs 192ec]
                 QW0193LN
                 QW0194LN
                 QW0195LN
                   [195hb]
                 QW0203CO QW0203LO QW0203PA
                 QW0204LO
                 QW0205LO
                 QW0206LO
                 QW0207HN QW0207TN QW0207UN
                 QW0208LO
                 QW0209LO
                 QW0210LO
                 QW0221LN
                 QW0221PC QW0221PN
                 QW0222LN QW0222PC QW0222PN
                 QW0224CI QW0224PN
                 QW0233LN QW0233PC QW0233PN QW0233PR QW0233SC
                 QW0235LO
                 QW0236LO
                 QW0247LN QW0247PC QW0247PN
                 QW0248LN QW0248PC QW0248PN
                 QW0269PR QW0269RA QW0269RC QW0269RU QW0269SA QW0269TC
                 QW0272LN QW0272LP QW0272PC QW0272PG QW0272PN QW0272QN
                 QW0273CN QW0273LN QW0273LP QW0273PC QW0273PG QW0273PN
                 QW0305CN
                 QW0311CN QW0311LN QW0311PC QW0311PN QW0311QN QW0311TN
                 QW0313AI
                 QW03141N QW03142N QW0314BN QW0314LN QW0314MN QW0314NN
                 QW0316QD QW0316SC QW0316T1 QW0316T3 QW0316TD QW0316X4
                 QW0324CI QW0324CV QW0324FI QW0324FN QW0324FS QW0324NV
                 QW0325CO QW0325NM QW0325PR QW0325SC QW0325TX
                 QW0334LN
                 QW0341LN QW0341PC QW0341PN
                 QW0343ID QW0343PC QW0343PK QW0343PL
                 QW148SCH
                 QWP1RLFA
                 QWP4ADM2 QWP4DFID QWP4OPR1 QWP4OPR2 QWP4OZUS QWP4REGA

               An ABEND 0C4 in DB4PMSTR (takes down DB2 Subsystem) can
               occur if zparm UIFCIDS is set to "NO", and IFCIDs 316,317
               are written.  IBM suggested PTF UX37196, but that is PE.
               Setting zparm UIFCIDS to "YES" bypassed the conversion.
               ERROR DESCRIPTION:
                Rapid stack storage increase about 200M per day was
                observed by customer.  This occurs when IFCID 316, 317
                were in effect and the zparm UIFCIDS was set to no.  The
                stack storage was used for conversion from UNICODE to
                EBCDIC.
                 LOCAL FIX:
                 Set zparm UIFCIDS to yes to bypass conversion or turn
                 off IFCID 316 and 317.
   Thanks to Barry Pieper, Blue Cross of Minnesota, USA.

CHANGE 27.157  SMF 116 variables WQGETJCE/WQPUTJCE/WQPUT1JE/WQSET1JE in
VMAC116        the MQMQUEUE dataset were not divided by 4096, so their
Jul  7, 2009   values were incorrectly large without that divide.
               Version 7.0 SMF 116 records have been read without error;
               there are no new fields in the SMF 116 (nor 115) records.
               in Version 7.0, so the MXG support was already in place.
   Thanks to Frank Debree, Dexia, BELGIUM.

CHANGE 27.156  Support for z/VM 6.1.0 is already in place in MXG 27.01+,
TYPEVMXA       as there were no changes to the MONWRITE data records,
Jul  7, 2009   except for the new version number.

CHANGE 27.155 -Type 42 Subtype 16 RLS Record INPUT STATEMENT EXCEEDED
VGETUTKN       because the two length tests LEN42D2 and LEN42D4 should
VMAC42         have been 1652 instead of 1504.
Jul  6, 2009  -Type 42 Subtype 21 and 24 with invalid ICHRUTKN segment
Jul  8, 2009   had all of UTKNxxxx variables wrong or truncated.  This
Jul 13, 2009   change detects the mis-located segment (starts in 187 vs
               185) and correctly populates the UTKNxxxx variables,
               except that the last variable in the record, UTKNGRUP,
               is only 6-bytes long when the segment in invalid.
              -IBM APAR OA27563 corrects the errors; search NEWSLTRS for
               the details.
   Thanks to Karl Lasecki, Chemical Abstracts Service, USA.

CHANGE 27.154  USS dataset TYPE9201 variable SMF92PPN (pathname to the
VMAC92         filesystem) was not input because SMF92PPL, its length
Jul  6, 2009   field was INPUT from the wrong offset in line 640,
               which now contains
                 If SMF92MPF GT 0 THEN INPUT @SMF92MPF+1
   Thanks to Dan Squillace, SAS Institute Cary, USA.

CHANGE 27.153  Dataset TYP11921 variable NTBTRNBE should have been INPUT
VMAC119        as &PIB.4. instead of &PIB.4.3 since it is a count and is
Jul  5, 2009   note a duration.
   Thanks to Paul Volpi, UHC, USA.

CHANGE 27.152  MXG 27.01-MXG 27.05. DCOLLECT variable UBALLSP is missing
VMACDCOL       always; its INPUT statement was lost when Change 27.034
Jul  2, 2009   updates were made.
   Thanks to Thomas Heitlinger, FIDUCIA, GERMANY.
   Thanks to Sieghart Seith, FIDUCIA, GERMANY.
   Thanks to Isabelle Diagremont, FIDUCIA, GERMANY.

CHANGE 27.151  XAM TCP record caused INPUT EXCEEDED RECORD LENGTH ERROR.
VMACXAM        A TCPAPP segment with only Segment Name and SEGLEN=8 with
Jul  2, 2009   no data can be created for internal XAM purposes.  Only
               the TCPAPP segment can have these "null segments", so the
               SEGLEN is now tested after the header is INPUT, and the
               segment is NOT output if there is no data.
   Thanks to Chris Morgan, CitiCorp, ENGLAND.

CHANGE 27.150 -MXG 27.05. COPYONLY option of READDB2 didn't work for the
READDB2        ID=102 IFCIDs selection.
Jul  2, 2009
   Thanks to Dan Almagro, Automobile Club of Southern California, USA.

CHANGE 27.149  Labels for Counts of ZIP, IFA, CPs, etc are clarified:
VMAC7072       In  ASUM70PR ASUM70LP TYPE70PR - PER SYSTEM-CEC DATASETs
Jul  1, 2009   and ASUMCEC  ASUMCELP          - PER CEC DATASETS:
                 NRICFCPU='ICF CPUS*AVAILABLE*IN THIS CEC'
                 NRIFACPU='IFA CPUS*AVAILABLE*IN THIS CEC'
                 NRIFLCPU='IFL CPUS*INSTALLED*IN THIS CEC'
                 NRZIPCPU='ZIIP CPUS*AVAILABLE*IN THIS CEC'
               because RMF can see everything in the CEC in the 70PR SMF
               data.
               But the TYPE70 and RMFINTRV DATASETS - PER SYSTEM DATA:
                 NRIFAS  ='IFA CPUS*AVAIL TO*THIS ZOS'
                 NRZIPCPU='ZIIP CPUS*AVAIL TO*THIS ZOS'
                 NRIFACPU='IFA CPUS*AVAIL TO*THIS ZOS'
                 NRIFLCPU='IFL CPUS*INSTALLED*IN THIS CEC'
                 NRCPUS  ='AVERAGE*ONLINE*NON-PARKED*CP ENGINES'
               are not the "hardware" counts, but only the count of the
               engines that this z/OS system can use and knows about.
   Thanks to Scott Wigg, USBank, USA.

CHANGE 27.148  Support for APAR OA29428 adds diagnostic bits that create
VMAC1415       these new MXG variables and labels:
Jun 30, 2009      SMF14TCL='TASK*TERMINATION*CLOSED*THE DCB?'
                  SMF14ABD='TASK IS*TERMINATIONG*TCBFA*IS ON?'
               MXG Variables whose label ends with a question mark are
               one byte character variables whose value will be 'Y' if
               true, and should be blank if not true (although some old
               variables might contain 'N' for false).
               The APAR text states:
                  For debugging purposes, customers need to know if a
                  dataset has either been closed by a program or RTM
                  cleanup processing.  The SMF records (types 14 or 15)
                  do not currently provide a way to identify this
                  information.  The addition of flag(s) are required to
                  indicate normal versus abnormal CLOSE. One methodology
                  that can add this information is to add a bit to
                  indicate that task termination closed the dcb and add
                  a second bit to indicate whether or not the task is
                  abending.

CHANGE 27.147 -MXG ANALZPCR didn't expand variable SCP to 10 bytes so
ANALZPCR       z/OS 1.10 was not correctly set in the external study
Jun 30, 2009   file.
              -MXG incorrectly set SCP from MVSLEVEL to be the same as
               the MVSLEVEL of the TYPE70 that wrote the record, instead
               instead of using the SMF70STN from each LPAR to define
               that system's SCP.  Now, TYPE70 is read to create the new
               $TEMPSTN format, mapping SYSTEM to MVSLEVEL, and then
               SMF70STN value in TYPE70PR is looked up to set MVSLEVEL.
   Thanks to Karl Lasecki, Chemical Abstracts Service, USA.

CHANGE 27.146  These OMCI datasets built by TYPE112
VMAC112          T112ADA  T112ADAT T112DLI  T112DLIT T112IDMT T112IDMS
Jun 30, 2009     T112VSAM T112VSAT T112SUPR T112SUPT T112DTCO T112DTCT
               did not keep variables OMCIJOB OMGAPPL OMSAPPL.
   Thanks to Richard Schwartz, State Street Bank, USA.

====== Changes thru 27.145 were in MXG 27.05 dated JUN 29, 2009========

CHANGE 27.145  Support for TMON for MQ record "QA" (APPLICATION STATS)
EXTMQQA        creates two new datasets, TMMQQA and TMMQQAA.  All of the
EXTMQQAA       QAxxxxx variables with TIME12.2 format are guesses as to
IMACTMMQ       their internal format, and TMON reports for validation
VMACTMMQ       weren't available when MXG 27.05 was ready; please check
VMXGINIT       with support@mxg.com for any updates prior to using those
Jun 26, 2009   variables in these two new datasets.
Jul  1, 2009   Jul 1: QA record's 32 Latch Class times/counts created.
   Thanks to Paul Volpi, UHC, USA.

CHANGE 27.144  New documentation member ADOCRMFR tabulates the name of
ADOCRMFR       each MXG variable that is printed in IBM RMF reports.
Jun 26, 2009
   Thanks to George Canning, Produban, ENGLAND.

CHANGE 27.143  Variable REDIRECT in PRPR1010 dataset contains text, in
VMACPRPR       spite of the documentation that it is a numeric field.
Jun 26, 2009   Previous test data had blanks.  Now INFORMAT $16.
   Thanks to Siegfried Trantes, Gothaer Systems GmbH, GERMANY.

CHANGE 27.142  Using the %VMXGPRAL utility to print SUSE datasets caused
VMXGPRNT       errors because of the long-length-variable-names in SUSE,
Jun 26, 2009   and the need for LRECL=255 on the temporary FILENAME.
   Thanks to James J. Flanagan, ISO, USA.

CHANGE 27.141  Variables R792FLG and R792FLG2 are now kept in TYPE792.
VMAC79
Jun 25, 2009
   Thanks to Bruce Widlund, Merrill Consultants, USA.

CHANGE 27.140  Change 27.062 incorrectly input S42DSRDD/S42DSRDT as &RB
VMAC42         but the fields are &PIB format.
Jun 25, 2009
   Thanks to Siegfried Trantes, Gothaer Systems GmbH, GERMANY.

CHANGE 27.139  Line 1024 should be  BO  SCANLOOP  Y. TRY ANOTHER VOLUME
ASMVTOC        instead of BZ. This caused no volumes to be returned when
Jun 22, 2009   SELECT vol1 vol2 .. was used.
   Thanks to Paul Gillis, Pacific Systems Management Pty Ltd, AUSTRALIA.

CHANGE 27.138 -z/OS 1.10 SMF 85 OAM record INPUT EXCEEDED RECORD ERROR.
VMAC85         MXG Version/Release/ModLevel variable R85PRVM='1*0' was
Jun 18, 2009   created as it didn't expect a 2-digit Release Number.
Jul 17, 2009   Fortunately, R85PRVM is not kept so it was expanded to
               now supports 2 digit Version so '1100' is GT '1 30'.
              -TYPE85AC dataset. New variables
                R85STY='RECORD SUBTYPE'.
                R85STOK ='OSREQ*STOKEN'
                R85RC2  ='OSREQ*RETURN*CODE*TWO'
              -Subtypes 8 thru 10 now are also output to TYPE85AC.
              -But the R85PRVM value is not consistent.  These values
               are found in my past test data files:
                 1999  1. 4.0
                 2003  1. 3.0
                 2003  2.10.0
                 2007  1. 8.0
                 2009  1.10.0
              -Jul 17: New variables added to TYPE85ST dataset:
                 R85PUDK ='BYTES*DELETED*TAPE*SUBLEVEL 2*/
                 R85PUDO ='PRIMARY*OBJECTS*DELETED*TAPE*SUBLEVEL 2'
                 R85PURK ='BYTES*READ*TAPE*SUBLEVEL 2'
                 R85PURO ='PRIMARY*OBJECTS*READ*TAPE*SUBLEVEL 2'
                 R85PUWK ='BYTES*WRITTEN*TAPE*SUBLEVEL 2'
                 R85PUWO ='PRIMARY*OBJECTS*WRITTEN*TAPE*SUBLEVEL 2'
              -Corrections to handling of subtype 78,79,and 88 for
               test data from versions 1100, 1 30, and 1 40.
   Thanks to Joachim Sarkoschitz, DATEV eG, GERMANY.
   Thanks to Harald Seifert, HUK-COBURG, GERMANY.

CHANGE 27.137  Analysis of interval zIIP usage by JOB/PROGRAM/etc using
ANALZIPU       PDB.SMFINTRV.  You define the ZIPGROUP variable to group
Jun 18, 2009   that is then summed for each interval, and the percentage
               of total zip usage by that ZIPGROUP for that interval is
               calculated.  The analysis does demand that your SMF 30
               data is synchronized.
   Thanks to David Carr, Blue Cross Blue Shield of Kansas, USA.

CHANGE 27.136  Unused Change.

CHANGE 27.135  The (VERY OLD) ANALRMFI example's selection criteria had
ANALRMFI       test for a series of variables ANDed to be GE 0, but some
Jun 17, 2009   of the variables are, now, always missing (logical swaps)
               causing nothing to be selected.  The WHERE clause tests
               now are ORed, and always-missing variables were removed.
               However, like all ANALxxxx report examples, this is only
               an example, as a starting report to be tailored into your
               very own report, if the report is of interest.
   Thanks to Cletus McGee, Alfa Mutual Insurance Company, USA.

CHANGE 27.134  Further support for IBM i, i5/OS, iSeries, or AS400 V6R1
EXQAPHDW       (to include all old and new names of these products).
IMACQACS       New dataset created:
VMACQACS      -QAPMHDWR  Hardware Configuration
VMXGINIT       Existing datasets updated:
Jun 17, 2009  -QAPMBUS - BUIOPB increased from 2 to 3 bytes.
Jun 18, 2009  -QAPMJOBM- New variables added:
                  JBJTHDT ='JVM*THREAD*TYPE'
                  JBJVMF  ='JVM*STARTED'
                  JBJVMT  ='JVM*TYPE'
                  JBMDYR  ='FILE*SYSTEM*DIRECTORY*READS'
                  JBMLCH  ='FILE*SYSTEM*LOOKUP*CACHE HITS'
                  JBMLCM  ='FILE*SYSTEM*LOOKUP*CACHE MISSES'
                  JBMNDC  ='FILE*SYSTEM*NON-DIR*CREATE*OPS'
                  JBMNDD  ='FILE*SYSTEM*NON-DIR*DELETE*OPS'
                  JBMOPN  ='FILE*SYSTEM*OPEN*OPERATIONS'
                  JBMSLR  ='FILE*SYSTEM*SYMBOLIC*LINK READS'
                  JBPASE  ='I5/OS*PASE*RUNTIME*ACTIVE'
                  JBPGRL  ='PAGE*FRAMES*RELEASED'
                  JBPGRQ  ='PAGE*FRAMES*REQUESTED'
                  JBSCPU  ='SCALED*CPU*MICROSECONDS'
                  JBSTCPU ='TOTAL*SCALED*JOB*CPU'
                There were also a number of fields labeled RESERVED that
                are INPUT and kept, in case they become populated.
              -QAPMSYST  New variables added:
                  SYSIUL  ='USER*AUTHORIZATIONS*AVAILABLE'
                  SYSCIU  ='USER*AUTHORIZATIONS*NEEDED'
   Thanks to Clayton Buck, UniGroup, USA.

CHANGE 27.133  Variable CFBUSYTO is created in TYPE74CF as the sum of
VMAC74         all CF engine busy time (CFBUSY01-CFBUSY16).
Jun 16, 2009

CHANGE 27.132  DB2 V8 IFCID=22 Record with truncated name fields caused
VMAC102        INPUT STATEMENT EXCEEDED RECORD LENGTH some of the time.
Jun 16, 2009  -MXG 27.05 was still wrong for some cases; Jul 2 revision
Jul  2, 2009   with tested with both V8 and V9, but the V8 records do
               not exactly agree with the V8.1 DSECTS, so counters were
               added to ensure alignment (I hope!).
   Thanks to Tom Buie, Southern California Edison, USA.

CHANGE 27.131  Enhancements to DB2PM-like STATISTICS LONG report have
ANALDB2R       caused updates to create/correct needed DB2 variables:
ASUMDBSS      -Variables QWHADSGN,QWHAMEMN kept in all DB2ACCTx/DB2STATx
READDB2        datasets, as they are in the header of all DB2PM reports.
TRNDDBSS      -Variables QDSTQMIT QTMAXPB QDSTQIN2 QBSTXIS QTGSPEMX
VMAC102        QXMAXDEG QXSTXMLV QXSTLOBV
VMACDB2        were DIF()'d but they do not contain accumulated values.
Jun 26, 2009  -Variables QDSTQIN2 QTPACOW1 QTPACOW2
               were NOT DIF()'d, now are, contain accumulated values.
              -Variables QTGACSLM QTGALSLM QTGAUSLM QTGSCSLM QTGSLSLM
               and QTGSUSLM are actually spelled QTG..LSM in DB2 DSECT,
               but once named in MXG there only pain and anguish if I
               rename a variable, and these aren't important enough to
               have me create correctly spelled duplicate variables.
              -T102S106 System Parameters dataset was updated with these
               new variables added for V8 and V9:
                  QWP1ACCU QWP1ACID QWP1CDB  QWP1IDBP QWP1IXPX QWP1IXQT
                  QWP1LVA  QWP1LVS  QWP1LWCK QWP1MOFR QWP1RLFA QWP1SYFL
                  QWP1SYMV QWP1TP16 QWP1TP32 QWP1TP8  QWP1TPLB QWP1TPXM
                  QWP1TSQT QWP1WLME QWP1XVA  QWP1XVS
                  QWP4APS  QWP4FRLC QWP4IAST QWP4MIS6 QWP4MS4C QWP4MXAB
                  QWP4MXDC QWP4NUPT QWP4PMGT QWP4RSDC QWP4RSMT QWP4SKLC
                  QWP4SRTN QWP4WFAL
                  QWP5DCYC QWP5DLOK QWP5FLG  QWP5HASH QWP5MCSA QWP5PHSH
                  QWP5RLE  QWP5TVAL
                  QWP9TCKA QWP9INAC
                  QWPBAPSC QWPBDB2S QWPBDDRM QWPBLCTP QWPBLNM QWPBNUFN
                  QWPBPADN QWPBUGID QWPBUMID QWPBUSID
              -New ASUMDBSS Statistics Summarization summarizes:
                 Default INPUT dataset      Default OUTPUT dataset
                  PDB.DB2STATS               PDB.ASUMDBSS
                  PDB.DB2STATB               PDB.ASUMDBBS
                  PDB.DB2GBPST               PDB.ASUMDBSG
               The new ASUMDBSS eliminates the need for old ASUMDBSB as
               only ASUMDBSS is needed to create all three stat ASUMs.
              -New TRNDDBSS Statistics Summarization summarizes:
                 Default INPUT dataset      Default OUTPUT dataset
                  WEEK.ASUMDBSS              TREND.TRNDDBSS
                  WEEK.ASUMDBBS              TREND.TRNDDBBS
                  WEEK.ASUMDBSG              TREND.TRNDDBSG
               The new TRNDDBSS eliminates the need for old TRNDDB2S and
               TRNDDB2X, as TRNDDBSS creates all three stat TRNDs.
               If you are currently using TRNDDB2S or TRNDDB2X, read the
               comments in TRNDDBSS with the one-time migration example.
              -Statistics reports can be selected by DB2 subsystem
               (QWHSSSID), local location (QWHSLOCN), BEGIN and END time
               using the DB2 DB2LOCAL BEGTIME and ENDTIME parameters.
              -READDB2 revised with new parameter RUNASUMS, default NO.
               Set RUNASUMS= interval desired (HOUR/DATE/WEEK/etc.) and
               the ASUMDB2S will create the statistics summary datasets
               in PDBOUT library.
              -ANALDB2R these reports have been brought up to date with
               DB2 Performance Expert/Performance Monitor documentation:
                PMACC01/PMACC03=Accounting short report
                PMSTA01/PMSTA03=Statistics long reports
                PMSTA02/PMSTA04=Statistics short reports
                PMSPR01=System Parameter Report
   Thanks to Chuck Hopf, Independent Consultant, USA.

CHANGE 27.130  These variables for dataset QAPLPAR
VMACQACS         LPCAP    LPAVL    LPBSY    LPRSP    LPRDS    LPWRTS
Jun 15, 2009     LPDISK   LPMEM
               were INPUT but not kept.
   Thanks to David Bixler, FISERV, USA.

CHANGE 27.129  Support for changes to CONTROL-D TYPE C User SMF record.
VMACCTLL       Eight LOGCODE values have existing JOBNAME RECIPIENT and
Jun 15, 2009   REPORT variables in different locations, plus two new
               ACTIONCT and VALUESCT variables.
   Thanks to Josep Miquel, La Caixa, SPAIN.

CHANGE 27.128  Change 27.046 made major update to EDGHSKP type D,V,X but
VMACEDGR       invalid syntax of 'GT . GT . ' was not detected, causing
Jun 12, 2009   MANY datetime variables to have missing values.
   Thanks to Rudolf Sauer, T-Systems, GERMANY.

CHANGE 27.127  Support for CONTROLT for "daily dataset" billing, and
DAILYDSC       other "DAILYDSN" job enhancements:
DAILYDSN      -New DAILYDSC created for CONTROLT.
DAILYDSR      -DAILYDSR modified to handle SPACE6 DAYS6 (bytes on
IMACVTS        virtual and days)
JCLDAYDS      -DAILYDSN modified to handle SPACE6 DAYS6 and to use the
Jun 11, 2009   same constructs as DAILYDSC overriding the _L for the
               output TMS datasets to send them to the DATASETS LIB.
              -IMACVTS used by all of the above to set a variable
               VIRTREAL to REAL or VIRT.  Comments on usage in member.
               Default is REAL.
              -JCLDAYDS modified to add a CTLT step
   Thanks to Chuck Hopf, Independent Consultant, USA.

CHANGE 27.126  zVM Velocity Software variable SYTLPNAM/LCPUNAME is no
VMACXAM        longer kept in dataset XAMSYU, which has an observation
Jun 11, 2009   with the LPAR management time for each hardware Engine,
               and is not a per-LPAR dataset.  MXG had incorrectly kept
               SYTLPNAM from the last SYTCUP segment.
   Thanks to Douglas C. Walter, Citigroup, USA.

CHANGE 27.125 -DB2 V8 Only, DB2STATS variables QISESKCT, QISESKPT were
VMACDB2        zero in SMF 100 subtype 1 records with LENQISE=148 bytes.
Jun 10, 2009   The QISE V8 DSECT was 96 bytes, ending at QISECFRE. In V9
               QISE increased to 148 bytes.  MXG tested length to input
               new fields, so when a DB2 V8 record LEN=148 was read, the
               new fields were input. However, in V9 IBM relocated the
               two SKCT/SKPT fields into the first 8 bytes of the new
               data, but this V8 record has zeros there, and the two
               original field locations contain the number of SKCT and
               SKPT pages.  The MXG Logic continues to read new fields
                 QISEKFAL QISEKPGE QISEKFRE QISECTA QISEKTA
                 QISESFAL QISESPGE QISESFRE QISEKNFM QISEKNFA
                 QISEKNFR
               with LEN=148 records, but no longer replaces the already
               QISESKCT or QISESKPT values if the record is from V8.
              -The MERGE of TEMPSTAT (ST0+ST1) and DB2STAT4/T102S225
               now outputs PDB.DB2STATS if TEMPSTAT obs exist; Change
               27.097 incorrectly also output unmatched 225s, including
               the initial IFCID=225 for each subsystem, which has no
               no matching ST0+ST1 observation.  If only 225's exist,
               then PDB.DB2STATS will have no observations, but the 225s
               data will still be found in DB2STAT4 and T102S225.
              -Change 27.097 incorrectly kept QWHSSTCK in PDB.DB2STATS;
               BEGTIME ENDTIME are the datetime variables.
   Thanks to John Shuck, SunTrust, USA.
   Thanks to Chuck Hopf, Independent Consultant, USA

CHANGE 27.124  "WARNING: Apparent invocation of macro TRIM not resolved"
VMXGOPTR       is serious, but ONLY happens if your //SASAUTOS does not
Jun  9, 2009   include the SAS-supplied AUTOCALL library, or if your
               CONFIGVx in use doesn't have this required statement
                  OPTIONS MAUTOSOURCE SASAUTOS=(SOURCLIB SASAUTOS);
               because %TRIM() is delivered by SAS as a %MACRO in their
               AUTOCALL library.  Previously, only a few ANALxxxx used
               %TRIM(), but in MXG 27.04, it was added to %VMXGOPTR by
               Change 27.092, and %VMXGOPTR is used throughout MXG, so
               several sites with defective SASAUTO allocations failed
               when they installed MXG 27.04 (but they would have failed
               earlier if they had used any of those ANALxxxx's!).  But
               with closer examination, we have eliminated the need for
               the %TRIM() use in %VMXGOPTR, as the string is already
               aligned, so I've removed the recently-added %TRIM() from
               VMXGOPTR in this change.

CHANGE 27.123 -ASUMCEC dataset with an IFL still had missing values in
VMXG70PR       CPCFNAME CPCMSU NRPHYCPS PARTNCPU PCTCPUBY PCTOVHD PCTPOV
Jun  7, 2009   variables, and wrong values in these variables:
Jun  9, 2009     IFACPUS  IFAUPTM  ZIPCPUS  ZIPUPTM
               even after Change 27.102 claimed to correct that error.
               The problem only occurs if you have an IFL LPARs that is
               also the highest numbered LPARNUM.
               Change 27.076 added the support for IFL LPARs to ASUM70PR
               output datasets; new observations are created for each
               IFL LPARNAME in the two LPAR-specific datasets ASUM70LP
               and ASUMCELP, but these new obs only populate only these
               IFL resource variables
                 IFLACTTM IFLCPUS IFLUPTM IFLWSTTM PCTIFLBY
               populated. All of the resource variables for the other
               engine types (CP,ICF,ZIP,IFA) will have missing values in
               the IFL observations.  Those missing values were then
               inadvertently propagated into the CEC-interval ASUMCEC
               dataset.  Several data step's sort order and logic were
               revised to correct the error.
   Thanks to Clayton Buck, UniGroup, USA.

CHANGE 27.122 -Support for APAR OA26832 (increased Service Units field
VMAC30         from 4 to 8 bytes), is needed now, thanks to IBM, because
Jun  7, 2009   z/OS SYSTEMS NEVER FAIL: we now have long-running-tasks
Text revised   where long is measured in months, and whose 4-byte fields
Jun 30, 2009   can fill and wrap, truncating those service unit values.
               But Service Units are NOT used to calculate any normal
               MXG CPU Time variables in TYPE30 data; those CPU times
               are read directly from the SMF 30 record, except for the
               MXG-only variable SRVTCBTM, the TCB CPU time calculated
               from CPUUNITS, added so CPUTCBTM and SRVTCBTM could be
               compared to see if using Service-Unit-Based CPU time had
               more resolution than the recorded CPU time.  Except for
               wrapping, I saw VERY little difference between the
               CPUTCBTM and the SRVTCBTM when SRVTCBTM was added in MXG.
              -Variable SMF30INV has bits for each of the six fields set
               if the 4-byte service unit field had wrapped.
              -These IBM named fields are cited in the APAR:
                 SMF30SRV SMF30CSU SMF30SRB SMF30IO SMF30MSO SMF30ESU
               and their corresponding MXG variables are these:
                 SERVUNIT CPUUNITS SRBUNITS IOUNITS MSOUNITS ENCLCPSU
               in all of the TYPE30 datasets.

CHANGE 27.121  In Change 27.078 I caused assembly errors
ASMIMSL6        ASMA034E Operand WTOAREA beyond active USING by 61 bytes
Jun  6, 2009   when I added messages for the new log record, proving I
               am NOT an ASM programmer; shortening the message text did
               circumvent the error, but this correction has been made
               by "asmguy@mxg.com" who speaks that language for me.
   Thanks to Mark Van Der Eynden, HP, AUSTRALIA.

CHANGE 27.120  Support for RMF III z/OS 1.10 new ASI fields (INCOMPAT).
VMACRMFV       These variables are now INPUT/KEPT, but as they were
Jun  5, 2009   inserted (rather than appended) to the ASI record, other
               ASI variables will be trashed without this change.
                 ASILVNMO='PRIVATE*MEMOBJ*ALLOCATED'
                 ASIHVCOM='64-BIT*COMMON*MEMOBJ*ALLOCATED'
                 ASILVSHR='SHARED*MEMOBJ*ALLOCATED'
                 ASILVABY='PRIVATE*MEMOBJ*BYTES*ALLOCATED'
                 ASIHVCBY='COMMON*STORAGE*BYTES*ALLOCATED'
                 ASILVSBY='SHARED*MEMOBJ*BYTES*ALLOCATED'
                 ASIHVVBY='HWM*64-BIT*COMMON*BYTES*ALLOCATED'
                 ASILVMEM='ADDRESS*SPACE*LIMIT*IN MB'
   Thanks to Roger Foreman, Acxiom, USA.

CHANGE 27.119  Documentation. A BUILDPDB SPIN library created on z/OS
BUILDPDB       can be PROC CIMPORT or XPORT copied to an ASCII system,
SPIN           but you then must sort SPIN datasets (to change the z/OS
Jun  4, 2009   EBCDIC sort order to match the ASCII sort order) before
               you can use that SPIN library with BUILDPDB.
                The required SORT statements are:
                  PROC SORT DATA=SPIN.SPIN30_1;
                   BY READTIME JOB JESNR JINTIME;
                  PROC SORT DATA=SPIN.SPIN30_4;
                   BY READTIME JOB JESNR TERMTIME;
                  PROC SORT DATA=SPIN.SPIN30_5;
                   BY READTIME JOB JESNR DESCENDING JTRMTIME;
                  PROC SORT DATA=SPIN.SPIN26;
                   BY READTIME JOB JESNR JPURTIME;

CHANGE 27.118 -Cosmetic.  DDs with DEVCLASS='00'x now have DEVICE='00X'
VMACUCB        instead of DEVICE='OTHER'.  These values occur for SYSIN,
VMAC30         SYSOUT and other JES-owned DDs that don't have actual
Jun  3, 2009   allocations.  Now, 'OTHER' really is "other".
              -Dataset TYPE30_D now has DEVCLASS and DEVTYPE kept, just
               in case you get "other" values and need to know them.
   Thanks to Kim Westcott, New York State OFT, USA.

CHANGE 27.117  MXG 27.03-27.04.  Change 27.071 introduced an extraneous
TRNDDB2A       %;  in line 44 that is now removed.
Jun  3, 2009
   Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.

CHANGE 27.116  Type 14/15 records with a non-zero BLKSIZE (from JFCB, in
VMAC1415       record bytes 167-168), but with a Subtype=5 "Additional
Jun  3, 2009   Data Set Characteristics Section" with SMF14BFG='C0'X,
               (indicates that the SMF14LBS blocksize field is valid),
               have SMF14LBS=0, and MXG logic replaced BLKSIZE with the
               newer SMF14LBS with SMF14BFG='1.......'B.  The MXG logic
               is revised to use MAX(BLKSIZE,SMF14LBS) if the SMF14BFG
               bit is on, but this seems to be an APARable IBM problem.
               Originally, 23173 obs had BLKSIZE=0, but after the change
               there were only 1186 TYPE1415 obs with BLKSIZE=0.
   Thanks to David Shaw, M&T Bank, USA.

CHANGE 27.115  Using TIMETABL to SYNC59 individual systems with a value
VMXGTIME       in column 71 also required you to %LET MXGTIM59=YES, but
Jun  3, 2009   that is redundant and is now removed; the value found in
               71-72 is always used (0, blank, 1, or other minutes).

====== Changes thru 27.114 were in MXG 27.04A dated Jun  2, 2009========

CHANGE 27.114  MXG programs that are "TAPE-aware" test the "PDB" DD for
ANALDB2R       its device type of tape to avoid multiple mount/rewinds,
VMXGTAPE       but they only were tested with JCL allocation.  If the
Jun  5, 2009   the tape "PDB" is allocated by a LIBNAME statement it may
               fail with "ERROR: NO LOGICAL ASSIGN FOR filename ddname".
               MXG's algorithm to identify a LIBNAME as a tape device
               CLEARs the LIBNAME and re-opens it as a FILENAME; a CLEAR
               is required to change libref from a LIBNAME to FILENAME,
               but a CLEAR unallocates the libref from the library, and
               a subsequent reference (to read it) caused the ERROR.
               But by moving %VGETENG to first test the "ddname" for its
               device type, if we get the device type back, then that
               ddname was OPENed, either by a prior use, or because it
               was allocated by a LIBNAME statement, and we're done,
               since we have the device type.  But if %VGETENG returns
               "UNKNOWN" for device type, then we know that library was
               JCL-allocated and was not OPEN, so we could safely CLEAR
               the LIBNAME and open as FILENAME open with a FILENAME and
               still get back to the LIBNAME.  But, because the LIBNAME
               has NOT been OPENed, we really don't need to CLEAR it
               before opening it as a FILENAME, so FILENAME ... CLEAR is
               now removed from these members.

               The CLEAR is still required to switch the other way, from
               a FILENAME to a LIBNAME, so a DD name allocation rather
               than a LIBNAME allocation may be required.  For example,
               this ERROR will also occur with the WEEK/MONTH builds if
               you use the TAPETEMP option, and if you try to allocate
               TAPETEMP with a LIBNAME statement.  There is no possible
               circumvention, as we must, by design, issue the CLEAR, so
               you must use a DD statement rather than a LIBNAME.
   Thanks to Brian A. Harvey, HCL America, USA.

CHANGE 27.113  OMCI INTR Subtype 200 RECSUBTY 4 segments are 58 bytes in
VMACOMCI       length; MXG code guessed 53 bytes (and noted "UNTESTED").
Jun  1, 2009   The guess caused INPUT STATEMENT EXCEEDED error.
   Thanks to Art Cuneo, Blue Cross Blue Shield of Illinois, USA.

CHANGE 27.112  VMXGALOC only correctly allocated weekly PDBs datasets if
VMXGALOC       you were using Week-To-Date logic, and if FIRSTRUN=YES,
BLDSMPDB       the TREND datasets were not correctly allocated.
May 31, 2009
Jun 11, 2009   BLDSMPDB did not protect for no datasets in the PDB for
               WEEKLY processing, and did not end a loop after all of
               the datasets were processed, causing in a failed SUBSTR
               function ERROR.  The loop logic now runs only if datasets
               exist in the input, and then only for the number of them.
   Thanks to Gary Havlatka, Creative Automation, USA.

Change 27.111  Support for multiple TMS/CA-1 catalogs creates IHDRTMS5
IHDRTMS5       exit, adds &TMSJFCB FILENAME=INFILENM &TMSEOV options to
TYPETMS5       the INFILE TMC statement, creates new TMSLIB and TMSDATE
TYPSTMS5       variables, now inserted into the sort BY list used:
VMACTMS5        BY ZDATE TMSLIB TMSDATE VOLSER ....
VMXGINIT       and, in the example code in IHDRTMS5, show how you can
May 31, 2009   populate TMSLIB by parsing the DSNAME of each TMC infile,
               and how to populate TMSDATE with the Create Date from the
               JFCB of each infile.
              -The location of the INFILE, IMACZDAT, and IHDRTMS5 was
               moved into the MACRO _CDETMS macro definition in VMACTMS,
               to match the expected sequence of those exits.
              -New macro variable MACTMSH is created for "instream" code
               alternative for the IHDRTMS5 header exit.
              -New macro variable TMSJFCB=JFCB=TMSJFCB ; is set ONLY if
               if MXG is executing under z/OS, where JFCB= exists.
              -New macro variable TMSEOV=EOV=TMSEOV  ; is now set ONLY
               if MXG is executing under SAS, as WPS JFCB= exists.
   Thanks to Scott Barry, SBBWorks, Inc., USA.

Change 27.110 -I. MXG 27.05 execution tests with WPS 2.3.5 under ASCII:
Documentation  Summary:  Most MXG programs execute under WPS error-free.
Jun  5, 2009
AUTOEXEW       This program that creates MXG datasets cannot be used:
MXGWPSV2        TYPESVC  - DS8000 Disk SAN Volume Controller XML record;
READDB2                     WPS does not support NAMED INPUT.
UTILXRF1
VMACLSAR       This program that creates MXG datasets bypasses a new MXG
VMACNMON       feature when executed under WPS:
VMXGINIT        TYPETMS5 - CA-1/TMS Catalog support for multiple TMC's:
Jul  4, 2009               Added in Change 27.111, the INFILE EOV option
                           (that allowed concatenation recognition so
                           multiple catalogs could be concatenated) is
                           not supported, so &MXGEOV is blank with WPS.

               These report example programs use features not in WPS:
                 ANALCISH - ALL report - PROC SQL run time.
                 ANAL80A  - PROC REPORT.
                 ANALAVAL - PROC CALENDAR.
                 ANALPATH - OVERPRINT option PUT statement.
                 UTILXRF1 - TRANSCODE attribute in DICTIONARY.COLUMNS
                 UTILXRF1 - VALIDVARNAME=UPCASE.
              -The below were previously listed here as not usable, but
               the inhibiting feature is now supported:
                 ANALMPL  - PROC PLOT VREVERSE,VPOS options not there.
                 ANALTAPE - PROC PLOT VREVERSE,VPOS options not there.
                 SASAUTOS - Warning not assigned, macros empty
              -The HBAR option of PROC CHART is now supported, so these
               members are now reinstated in the WPS QA tests:
                 ANALCICS ANALMONI ANALPRNT ANALSMF
              -WPS 2.3.5 does not support SAS "NAMED INPUT" syntax, used
               in TYPESVC Open Systems DS8000 Disk SAN Volume Controller
               support.  The NAMED INPUT syntax has always been in SAS:
                 INPUT FIELD1= FIELD2= ;
               and is used to read data records that have
                 field1=value1 field2=value2
               but it wasn't needed in MXG until this pseudo-XML data
               file was supported last November.
              -WPS 2.3.5 does not support the EOV= option on the INFILE
               statement, newly needed for Change 27.111 to support read
               of multiple TMC libraries in TYPETMS5.
              -WPS 2.3.5, like 2.2, doesn't support OPTION VALIDVARNAME.
               Change 25.025 removed VALIDVARNAME=V7 from WPS CONFIGW2,
               because the V7 function, to permit long variable names,
               was the default in WPS.  But now, in MXG's UTILXRF1, used
               to create the DOCVER documentation, I needed to set SAS
               option VALIDVARNAME=UPCASE so the variable names out of
               the PROC CONTENTS were upper case, which causes WPS 2.3.5
               to fail with
                ERROR: System option "VALIDVARNAME" is not known.
              -WPS 2.3.5 doesn't support TRANSCODE attribute in the
               DICTIONARY.COLUMNS dataset, used only in UTILXRF1 to
               create the DOCVER documentation.  The TRANSCODE attribute
               is new in MXG and only exists in SAS v9, so MXG did not
               execute the &MXGNOTRA when under WPS due to the SASVER=8
               that is set when MXG executes under WPS, but this usage
               is now also circumvented so the rest of the UTILXRF1 can
               be tested under WPS.
              -WPS 2.3.5 SASAUTOS library has no members, which caused a
               minor WARNING: SASAUTOS IS NOT ASSIGNED.  VMXGINIT issues
               LIBNAME SASAUTOS LIST; to list the concatenates, but that
               statement is now conditionally not-executed with WPS to
               eliminate that harmless WARNING message on the log.
               With SAS, the SASAUTOS library is required because %TRIM
               is delivered as a source-code %MACRO in the SASAUTOS PDS,
               but WPS implemented %TRIM internally, so MXG doesn't need
               to point to SASAUTOS FILENAME under WPS.
                 NOTE: While FILENAME SASAUTOS is NOT required with WPS,
                       MXG under WPS still requires the
                         OPTIONS MAUTOSOURCE SASAUTOS=SOURCLIB;
                       executed in VMXGINIT, so that WPS will look in
                       //SOURCLIB to resolve all %MACRO references.
               So all references to SASAUTOS FILENAME in the MXGWPSV2
               JCL Procedure example and in the AUTOEXEW ASCII autoexec
               file were removed.  Just for documentation, the WPS .CFG
               file has the default  -SASAUTOS \&wpsroot\macros.
              -The COUNTW() function, added to TYPENMON in Change 27.080
               only exists with SAS V9, so TYPENMON failed with either
               SAS V8.2 or WPS 2.3.5.  NMON code was modified to only
               use COUNTW() if under V9; a DO LOOP to count the commas
               is used when not under SAS V9; same change in TYPELSAR.
              -New dataset names "WORK._temp1559410888854220" structure
               are created internally by PROC TRANSPOSE.
              -Circumvented in READDB2.  WPS %Macro Compiler does not
               resolve triple-percent-signs the same way that SAS does,
               which caused WPS to die with a compiler error in READDB2.
               but, all READDB2 %%% and %% tokens are end-delimiters for
               old-style-macro-definitions, and, most fortunately, they
               are no longer required (the problem they circumvented was
               fixed in SAS long ago), so they could be replaced with a
               single percent sign in READDB2.  (There are still cases
               when %%% is required in other MXG members, often before
               an embedded %INCLUDE statement, but WPS handles those
               without error.)
              -Fixed in WPS Build 12169:
               WPS 2.3.5 failed when a FILENAME with concatenated input
               files was read; the RECFM/LRECL on the FILENAME statement
               was not honored and a STOPOVER resulted when the system
               default of V/256 was used for F/340 data.  This WPS error
               when files are concatenated is fixed in WPS Build 12169.

              -Run Time Comparisons on Windows, zero observations input:

               MXG QA's first 36 "steps" create all 4700 MXG datasets in
               the LIBNAME VERSvvrr, and run times were comparable, with
               SAS V9.2 taking 10 min and WPS 2.3.5 taking 13 minutes.

               But Step 47 TESTANAL, took over 80 Minutes (vs 2 for SAS)
               due to a WPS error in its PROC SQL, BUT, an error that is
               ONLY likely to occur in MXG's QA tests. MXG's %VGETOBS is
               invoked frequently in ANALxxxx examples, to test if a
               dataset exists and if it has observations, and it uses
                 PROC SQL: SELECT FROM DICTIONARY.TABLES
                           WHERE  LIBNAME= MEMNAME=;
               The (internal) DICTIONARY.TABLES dataset has one obs for
               each dataset in each LIBNAME.  The MXG QA TESTANAL step
               allocates the 37 different LIBNAMES (PDB, WEEK1-WEEK5,
               MONTH1-MONTH5, etc) that may needed by ANALxxxx programs
               to that VERSvvrr directory with its 4700 datasets. So,
               there are 37*4,700=173,900 datasets in DICTIONARY.TABLES,
               which overwhelms the defective WPS PROC SQL; each execute
               takes over 90 SECONDS of CPU and Elapsed time.  WPS has
               identified their PROC SQL error and it will eventually be
               fixed.

               In addition to the long run time of the QA job due to the
               PROC SQL error, the QAWPSXX job has never completed.  It
               gets to the TESTANAL code, and then in ANAL115 it just
               hangs, continuing to execute, using CPU time, but with no
               further log messages, and the last message was a %VGETOBS
               PROC SQL execution. Skipping ANAL115 allowed the TESTANAL
               to get to ANALDB2R before it again hung, and again that
               last message was a PROC SQL execution.  But since each of
               the ANALxxxx programs execute standalone, this too is an
               error unlikely to occur outside the MXG QA test runs.


               II. Z/OS Specific Tests, unresolved as of July 4, 2009:

              -The Large ARRAY(256,512) problem in VMXGGETM that was
               fixed in WPS 2.3.4 (WPS Error #6276, Change 26.258)
               has shown up again in WPS 2.3.5. UTILGETM is only used
               in the MXG Test Jobs, to create a small SMF file with
               a few records of each type and subtype, so this is not a
               fatal error for normal execution.

              -In the QA job only, after many data steps were run and
               many datasteps had been written to the PDB library, the
               BUILDPD3 step job failed with "PDB LIBRARY CORRUPTED"
               error message.  However, since the BUILDPD3 program runs
               fine when outside of the QA job, this is most likely an
               issue with WPS "PROC SQL".

               III. Miscellaneous

              -The //LOGCFG DD is no longer used by WPS, so it is now
               removed from MXGWPSV2 JCL Procedure example.

Change 27.109  QA COMPALL program found character to numeric conversion
VMACLDMS       for not-kept-variable SEGMENT in VMACICE and VMACXPTR and
VMACXPTR       for not-kept-variable LDMSTYPE in VMACLDMS, both fixed.
May 29, 2009   The COMPALL program compiles ALL of the MXG code members
               that read SMF records, in a single (MASSIVE) DATA step to
               create 1907 datasets, all with zero observations because
               the INFILE SMF is a zero-length or DD DUMMY file.
               So COMPALL is also a good SAS compiler stress test.
               Last year, Change 26.217 compared COMPALL with SAS 9.1.3
               and WPS 2.2, but the z/OS comparison was wrong.
               Now with MXG 27.04, which creates 1907 datasets and more
               variables, and now using WPS 2.3.5, SAS 9.2 and SAS 9.1.3
               these comparisons are observed:

                  Compiler    Platform    Run Time      Memory Required

                  SAS 9.2      Win/XP       96 seconds     1185 MB
                  SAS 9.1.3    Win/XP       86 seconds     1158 MB
                  WPS 2.3.5    Win/XP      101 seconds     not reported

                  SAS 9.2      z/OS          7 minutes     1210 MB
                  SAS 9.1.3    z/OS         12 minutes     1194 MB
                  WPS 2.3.5    z/OS         17 minutes     1037 MB

               Enabling the full diagnostic options to print all source
               only increased the SAS V9.2 WIN/XP run time by 6 seconds.

Change 27.108  &NULLPDS, &LOAD, &SASAUTOS JCL Symbolics in MXG JCL Proc
MXGSAS         examples are removed. They were never required, rarely
MXGSAS92       used, and then, only in ancient releases of SAS.  And now
MXGSASV9       have caused JCL errors when very old and more recent JCL
MXGSASV8       procs are used in the same job. such as this error:
May 27, 2009      IEC143I 213-04,IFG0194D,M577FPA1,SASMXG,STEPLIB
MXGWPSV2       Their only purpose was to override the //STEPLIB or the
JCLQAWPS       //SASAUTOS DD statements, which can easily be done in the
Jun  1, 2009   JOB's JCL, with no exposure to the &NULLPDS DISP issues.
               (See CHANGESS for the many NULLPDS historical hits!)
              -JCLQAWPS moved LIBRARY to be before SOURCLIB so its JCL
               overrides matched the order in MXGWPSV2.
   Thanks to Stuart Wildey, Morgan Stanley, USA.
   Thanks to MP Welch, SPRINT, USA.

====== Changes thru 27.107 were in MXG 27.04 dated May 27, 2009========

Change 27.107  Support for BMC's IMF 4.4 (COMPATIBLE) added some new
VMACCIMS       variables and some variables MXG had overlooked.
May 26, 2009   These new variables are now created in IMFTRAN:
Jun  2, 2009      CPUTRNX ='CPU AFTER*TRN STOP SET'
                  TRNOTCLP='IMS*CONNECT*CLIEN*PORT NUMBER'
                  TRNMQMID='MQS*MESSAGE*ID'
                  TRNCVTTZ='TRNCVTTZ*GMT*TIME ZONE*OFFSET'
                  TRNCAPPL='CICS*APPLID'
                  TRNFALSC='FALSE*SCHEDULES'
                  TRNTFLAG='COPY OF*RATTFLAG*DET TRACE'
                  TRNFALST='FALSE*SCHEDULE*ELAPSED*TIME'
               This change has only been tested with 4.3 records.
               Jun 2: TRNxxxxx fields wrong; Trace Table +80 vs +72
               BMC APAR BAI9444 documents that the IMF Transaction CPU
               time can exceed the transaction elapsed time, because the
               APAR BAI9312 excluded the "stopped term thread activity"
               time from being included in transaction elapsed time, by
               setting the transaction stop time upon completion of the
               Get Unique, regardless of whether it returned another
               message.  When it doesn't return another message, the
               region goes through term thread, and the CPU used by the
               terminate thread can cause the total transaction cpu to
               exceed transaction elapsed time, since the transaction
               stop time is set before term thread. BAI9444 modified the
               IMEUTMR7 timing routine to separately record any CPU time
               calculated after transaction stop time, in a new fields
               named TRNXCPU, which MXG outputs in new variable CPUTRNX,
               so you can identify that is the cause of CPU time greater
               than elapsed time in IMS.

Change 27.106  Support for z/OS 1.10 storage metrics in SMF 119 create
VMAC119        these four new subtype=5 variables in TY11905 dataset:
May 25, 2009      TS6CEALO='CURRENT*ECSA*STORAGE*ALLOCATED'
May 28, 2009      TS6CENIU='CURRENT*ECSA*ALOC BUT*NOT INUSE'
                  TS6CPALO='CURRENT*AUTH PRIVATE*ALLOCATED'
                  TS6CPNIU='CURRENT*AUTH PRIVATE*NOT IN USE'
               May 28: The four INPUT statements are &PIB.8., not 4.
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANDADA
   Thanks to Aylin Kavas, Royal Bank of Canada, CANDADA

Change 27.105 -PDB.TYP70 variables with "CPU" in their name or label are
DOCUMENTATION  supposed to  contain only metrics for the "CP" engines.
May 24, 2009   Separate variables, with "ZIP" or "IFA" in their name or
               their label, contain the metrics for zIIPs and zAAP/IFAs.
               Those three types of engines require separate capacity
               analysis (and even have different capture ratios in MXG's
               RMFINTRV dataset).
               And PDB.TYPE70 variable CPUPATTM contains the Parked Time
               for (only) the "CP" engines.
               However, the 64 individual-engine Parked Time is stored
               in 64 variables named CPUPATM0-9,A,B....  So you could
               have zero CPUPATTM in this MVS System, but CPUPATM4 could
               be non-zero, if your 4th engine is a zIIP, for example.
              -PDB.TYPE70 variable CPUWAInn for nnth engine's LPAR Wait
               is variable NEWWAIT in PDB.TYPE70PR for that engine, and
               the variable MVSWAInn for the nnth engine's MVS Wait is
               variable ORIGWAIT in PDB.TYPE70PR; variable ORIGWAIT and
               SMF70WST are very close in PDB.TYPE70PR, but SMF70WST is
               smaller by as much as a half second in 15 minutes.

Change 27.105  The ACF2VR dataset is enhanced with new ACFMTYPE variable
FORMATS        that is formatted by new $MGACFTY format to decode the
VMACACF2       combination of the 2nd-4th bytes of ACVMFRES and the HEX
May 21, 2009   value of ACVMFLGS NI (LOGICAL AND'ed) with '3E'x.  These
               new values are primarily for DB2 activity identification.
   Thanks to Jake Phillips, Lowe's Companies, USA.
   Thanks to Jim Horne, Lowe's Companies, USA.
   Thanks to David Pflum, CA, USA.

Change 27.104  The BVIR TS7700 HYDRA data contains GMT values for all of
VMACBVIR       its timestamps, SMFTIME, STARTIME, ENDTIME, and VERTIME,
May 24, 2009   whether the data is in History File or SMF File format,
Jun  1, 2009   but there is no field with the GMT Offset time, so you
               must tell MXG your GMT Offset value, with this syntax
                  %LET MACKEEP=  MACRO _BVIRGMT  -18000   %  ;
               if you want those datetimes on your local time zone.
               For USA sites, the value is negative, -18000 for EST at
               5 hours, -14400 for EDT at 4 hours behind GMT, etc.
               You set that GMT offset value using:
                - SMF-FORMAT BVIR DATA:
                  // EXEC MXGSASV9
                  //SMF DD DSN=BVIR.SMF.FORMAT,DISP=SHR
                  //PDB DD DSN=BVIR.PDB.LIBRARY,DISP=(,CATLG),....
                    %LET MACKEEP=  MACRO _BVIRGMT  -18000   %  ;
                    %INCLUDE SOURCLIB(TYPSBVIR);
                        or
                - HISTORY-FORMAT BVIR DATA:
                  // EXEC MXGSASV9
                  //BVIRHIST DD DSN=BVIR.HISTORY.FORMAT,DISP=SHR
                  //PDB DD DSN=BVIR.PDB.LIBRARY,DISP=(,CATLG),....
                    %LET MACKEEP=  MACRO _BVIRGMT  -18000   %  ;
                    %INCLUDE SOURCLIB(TYPSBVIH);
               Labels were revised Jun 1.
   Thanks to Perry Lim, Union Bank, USA.

Change 27.103  New INTERVAL values of THREEMIN and TWOMIN are created,
VMXGDUR        and they can be used in any MXG INTERVAL= parameter in
May 21, 2009   ALL ANALxxxx/ASUMxxxx/TRNDxxxx/RMFINTRV invocations.
   Thanks to Jacob Nudel, Thomson Reuters, USA.

Change 27.102  PARTNCPU and other variables in PDB.ASUM70PR could be
VMXG70PR       missing values if the last LPARNAME in this sort order
May 20, 2009    BY CECSER  SYSPLEX  SYSTEM SYSNAME SMF70GIE GMTOFFTM
                   LPARNUM LPARNAME;
               was for a non-z/OS LPAR, as the "CP-engine" variables
               are missing values in non-CP-engine LPARS.  This could
               only occur with recent ASUM70PR enhancements in 27.02+
               that added non-CP-engine LPARS to PDB.ASUM70PR dataset.
               This case had a z/VM LPAR with only IFLs as last LPAR.
               By changing sort order to GMTOFFTM DESCENDING LPARNUM,
               the LAST LPAR for every interval will be LPARNUM=0,
               LPARNAME='PHYSICAL' LPAR, which always has the variables.
   Thanks to Paul Naddeo, FISERV, USA.

Change 27.101 -PRISMA log record could have colon or period delimiters
VMACPRPR       in DATE or TIME character fields, so MXG had two separate
May 20, 2009   links for conversion, but four combinations could exist,
Jun  2, 2009   causing missing values in STARTIME and ENDTIME.  But only
Jun 22, 2009   one conversion is needed, by using '.:' in the SCAN() to
               decode with whichever delimiter is present.
              -Variable COPY was not kept in PRPR1620 dataset.
              -Jun 19: JOBNAME increased to $128 as it can contain more
               text. Fortunately, since PRISMA code is executed
               standalone, with only the PRISMA log file read, this ONLY
               impacts the length of JOBNAME in the PRISMA datasets.
              -Variables COPY, UNKNOWN, PRINTCNT, MEDIANUM, OFFSETS in
               PRPR1620 are read in that order to correct values.
   Thanks to Nik Marien, KBC Global Services NV, BELGIUM.

Change 27.100 -MXG "trashed" dataset ZRBLCP in RMF III from z/OS 1.10
VMACRMFV       because MXG (in a rare case) didn't use the triplet for
May 20, 2009   offset/length for the INPUT of the CPC Logical Processor
May 25, 2009   Section (DSECT ERBCPCDB).  24 bytes inserted after the NR
               of LCPUs, and 8 bytes added to each LCPUADDR segment with
               CPUG3 Version=5 and CPCDB Version=4 are now properly read
               using the triplet, which will also protect for future IBM
               changes, transparently, without trashed output data.
              -IBM RMF III Support provided doc of the new LCPUADDR data
               fields, in those extra bytes, now these new variables
                 LCPUPRMN='PROC*MIN*WEIGHT'
                 LCPUPRMX='PROC*INI*WEIGHT'
                 LCPUPOLW='POLAR*WEIGHT'
               in the ZRBLCP dataset.
              -But in validating this correction, I saw that there were
               observations for each LCPUADDR, including offline engines
               and LCPUADDR that were NEVER dispatched during each one
               minute interval, a waste of disk space, so the logic now
               only outputs ZRBLCP observations if LCPUPDTM dispatch is
               non-zero (but that could be overridden in MACRO _EZRBLCP
               if you really want all the zero dispatch intervals to be
               created).
   Thanks to David Lo, Bank of America, USA.
   Thanks to Betty Wong, Bank of America, USA.

Change 27.099 -The optional Omegamon DB2 segment for CICS/TS 3.2 or 4.1
IMACICOB       had correct counts but the durations were way too small.
May 20, 2009   They were divided by 4096 instead of multiplied by 16 in
               Change 25.238, when a new block of code for CICS/TS 3.2+,
               for SMFPSRVR GE 65.0 used the /4096 conversion, expecting
               a TODSTAMP value, instead of the old *16 conversion for
               16 microsecond values.  I must have misread the DSECT.
               The new block with /4096, and the tests for SMFPSRVR are
               now all removed, and there is a single code block for all
               CICS versions.
              -The 100-byte segment always exists when enabled, but its
               internal length is zero if the transaction did not call
               DB2, so the MXG logic now only INPUTs those 24 fields if
               that length is non-zero (so those variables will have a
               missing value in non-DB2 transactions, instead of all
               having values of zero).
   Thanks to Jim Polenti, Edward Jones, USA.
   Thanks to Jeana M. Bechtel, Edward Jones, USA.

Change 27.098 -Typos in BLDSMPDB for WAS were corrected in BLDSMPDB
BLDSMPDB          the statement   weekkeep=&wek2kep.
VMXGALOC          was changed to  weekkeep=&wek2keep,
May 19, 2009      and after line 437, this statement was inserted
                       dayskeep=&day2keep,
              -In VMXGALOC, the %GLOBAL was removed as superfluous;
               the variables are being set by a SYMPUT which is an
               implicit GLOBAL.  This removed spurious messages on the
               SAS log, messages that were different when MXG was run
               in a Window versus run in Batch.
   Thanks to Gary Havlatka, Creative Automation, USA.

Change 27.097 -PDB.DB2STATS now has ALL DB2 STATISTICS interval data.
READDB2        DB2 V9 DB2STAT0, DB2STAT1, DB2GBPST, DB2STAT4 (IFCID 225)
VGETOBS        are merged to create PDB.DB2STATS, and for DB2 V8, the
VMACDB2        DB2STAT0, DB2STAT1, T102S225 are merged in PDB.DB2STATS.
May 24, 2009  -All variables (QW0225xx) from DB2STATS4 (DB2 V9+) are
Jun 25, 2009   automatically merged into the PDB.DB2STATS dataset.
              -All variables (QW0225xx) from T102S225 (DB2 V8) can be
               merged into the PDB.DB2STATS dataset, but you may have to
               make some updates, if you don't use %READDB2, below.
              -READDB2 always creates DB2STAT4 with IFCIDS=STATISTICS.
              -READDB2 only creates T102S225 if IFCIDS=225 .... is used.
              -READDB2 updates PDB.DB2STATS with DB2STAT4 if STATISTICS
               is specified.  If IFCID 225 is also specified, then the
               T102S225 is also updated into PDB.DB2STATS.
              -If you use BUILDPDB, TYPEDB2, TYPSDB2 instead of READDB2:
               -All variables (QW0225xx) from DB2STATS4 (DB2 V9+) are
                automatically merged into the PDB.DB2STATS dataset.
               -All variables (QW0225xx) from T102S225 (DB2 V8) can be
                merged into the PDB.DB2STATS dataset, but you have to
                tell MXG you have V8 data to be added; see below.
              -You should use PDB.DB2STATS for all statistics reports,
               replacing use of DB2STAT0, DB2STAT1, DB2STAT4, DB2GBPST,
               and T102S225 in your DB2 reports.
               More details:
              -DB2 V9 DB2STAT4 (optional IFCID=225, ID=100, subtype=2)
               and DB2 V9 DB2GBPST (100 subtype 1 QBGL) variables are
               now merged to expand existing PDB.DB2STATS dataset to
               contain all variables for each interval for each DB2
               Subsystem, i.e., all possible variables from the DB2
               ID=100 Subtype 0, 1, or 4 SMF records.  DB2STAT4 vars are
               added by %INCLUDEs of TYPEDB2, TYPSDB2, or BUILDPDB, or
               by using %READDB2(IFCIDS=STATISTICS) program for V9.
              -DB2 V8 writes IFCID=225 as an SMF 102 subtype 225 Trace
               record, and MXG creates the T102S225 dataset for V8, but
               it has the same variables as the V9 DB2STAT4, so DB2 V8
               IFCID=225 variables can also be added into PDB.DB2STATS:
                -%READDB2(IFCIDS=STATISTICS 225,PDBOUT=PDB) will create
                  both T102S225 and DB2STAT4 and merge each to expand
                  and populate the PDB.DB2STATS dataset with both V8 and
                  V9 IFCID=225 variables.
                -To add V8 IFCID=225 processing to BUILDPDB, and to add
                  those variables to PDB.DB2STATS, you need to EDIT
                  these statements into these MXG exit members into your
                  "USERID.SOURCLIB" tailoring PDS library/directory:
                     EXPDBINC:
                       %INCLUDE SOURCLIB(VMAC102);
                     EXPDBVAR:
                       MACRO _VARUSER _V102225 %
                     EXPDBCDE:
                       MACRO _CDEUSER _HDR102 _C102225 _END102 %
                     EXPDBOUT:
                       _SDB2STY
                -If you instead use these other ways to create T102S225
                 dataset for DB2 V8, depending on how you created it:

                  if created by      old-style macro    macro variable
                    TYPE102             _W102225           &W102225
                    TYPS102             _L102225           &P102225
                    %READDB2            _W102225           &W102225
                    %READDB2(PDBOUT)      n/a              &PDBOUT
                    EXPDBOUT              PDB                PDB

                 then you have to use %LET to set the DDNAME of your
                 T102S225 dataset's library, and then insert the new
                 _SDB2STY macro token in your source program, after you
                 have created PDB.DB2STATS and PDB.T102S225, e.g.:
                     %LET PDB2STY=PDB;
                     _SDB2STY;
                     RUN;
              -READDB2 in MXG 27.02-27.03, when ONLY the IFCIDS=225 was
               requested, caused a 10-fold increase in CPU time if there
               were lots of other DB2 records, because READDB2 in those
               versions (incorrectly) created all of the other DB2ACCTx
               and DB2STATx datasets when only T102S225 was desired.
               lots of unwanted ID=101 records.  Now, only T102S225 is
               created if only IFCIDS=225 is specified.
              -All executions of READDB2 should be faster; all non-DB2
               SMF records are immediately skipped as soon as the SMF ID
               is read; previously, all DB2 Product Headers were read
               before record selection/skipping was done.
              -PROC COPY IN=WORK OUT=&PDBOUT was incorrectly run (copy
               each DATASET to the &PDBOUT libname) when &PBOUT=YES,
               was specified, causing LIBNAME YES NOT FOUND.  Now, the
               PROC COPY is bypassed if PDBOUT=YES.
              -VGETOBS was enhanced with new NOEXIMSG=NO argument that
               bypasses printing of the DATASET DOES NOT EXIST message
               and the DATASET HAS nnn OBSERVATIONS message, useful when
               VGETOBS is used only to detect that a dataset exists.
              -These new variables, based on IBM MEMU2 report example:
               are created in PDB.DB2STATS from the DB2STAT4/T102S225:
                  CUSHION = QW0225SO+QW0225MV+QW0225CR;
                  NDB2STOR= QW0225EH-QW0225GM-QW0225GS-QW0225FX-QW0225VR
                  ALLOWSTR= QW0225RG-CUSHION-NDB2STOR;
                  THRDUSE = QW0225RG-CUSHION-NDB2STOR-QW0225GM
                           -QW0225AS-QW0225FX-QW0225EL;
                  THRDFTPT= (QW0225VR-QW0225AS+QW0225GS) /
                            (QW0225AT+QDSTCNAT);
                  MAXTHRDS= THRDUSE / THRDFTPT;
                  TOTTHRDS= QW0225AT+QDSTCNAT;
                  OVERALLO= MAXTHRDS - TOTTHRDS;
                  CUSHION ='CUSHION*WARNING'
                  NDB2STOR='TOTAL*DBM1*STORAGE'
                  ALLOWSTR='ALLOWABLE*STORAGE'
                  THRDUSE ='THREAD*STORAGE*USED'
                  THRDFTPT='THREAD*STORAGE*PER THREAD'
                  MAXTHRDS='MAXIMUM*THREADS'
                  TOTTHRDS='TOTAL*THREADS'
                  OVERALLO='OVER*ALLOCATED*THREADS'
   Thanks to Ray Dunn, CIGNA, USA.
   Thanks to Deborah L. Soricelli, CIGNA, USA.

Change 27.096  There is a new "MEM" object with 15 new variables:
VMACNMON         MEMTOTAL HIGHTOTAL LOWTOTAL   SWAPTOTAL MEMFREE
May 18, 2009     HIGHFREE LOWFREE   SWAPFREE   MEMSHARED CACHED
                 BIGFREE  BUFFERS   SWAPCACHED INACTIVE  ACTIVE
               instead of the non-overlapping 5 memory variables that
               were in previous NMON MEM Object records.
               The order of the two LOW/HIGH sets in these new fields
               is clearly mis-documented in the "MEM" Header record;
               the LOW value precedes the HIGH value, so MXG's code now
               matches the actual data rather than the documentation.
              -Labels for variables REALFREE & VIRTFREE didn't include
               "PERCENT".  Those memory percentages are calculated as
                 REALFREE=100*REMBFREE/REMBTOTL;
                 VIRTFREE=100*VIMBFREE/VIMBTOTL;
              -Both sets of memory variables are kept in NMONINTV.
              -"NMON", "Nigel's Monitor", is now delivered as part of
               TOPAS in AIX 5.3/6.1 or VIRTUAL I/O SERVER VIOS 2.1.
   Thanks to Tom Draeger, Aurora Health Care, USA.

Change 27.095  The TRND23 member had not been updated to use the macro
TRND23         variables TRENDOLD TRENDNEW TRENDINP, which optionally
May 17, 2009   set the libnames for new, old and input trend libraries,
               and old macro names expected the week input in the "PDB"
               libname, when it should have used "WEEK" to match the
               other TRND Trending members.
   Thanks to Paul Gillis, Pacific Systems Management Pty. Ltd, AUSTRALIA

Change 27.094  A REALLY invalid SMF 30 Subtype 1 INPUT EXCEEDED RECORD
IMACACCT       error had NRACCT=127 and LENACCT=400, impossible values,
May 14, 2009   and there was only trash at the OFFACCT location. MXG
               only decodes 9 ACCOUNTn fields, printing a message for
               the 10th, but IMACACCT did not protect for this much
               of invalidity.  Now, it stops reading the ACCT fields
               when the 10th is encountered, with enhanced diagnostics.
   Thanks to Barbara Nitz, Deutsche-Boerse, GERMANY.

Change 27.093  Variable JESNR in TYPETPMX datasets was only 5-digits but
VMACTPMX       JESNR can now be up to seven digits.  The VMXGJESN member
May 13, 2009   is now %INCLUDEd after JCTJOBID has been input, and the
               JESNR is now created from JCTJOBID rather than just input
               of the last five digits.
   Thanks to Paul Volpi, UHC, USA.
   Thanks to James D. Lieser, UHC, USA.

Change 27.092 -VMXGOPTR errored with SAS V8.2 or V9.2 in different ways:
VMXGOPTR      -ONLY under SAS V8.2, MXG 27.03 caused BUILDPDB errors in
VMXGSUM        the VMXGSUM invocation for SUMSTATB with error messages
May 14, 2009    MXGNOTE: VMXGSUM FROM MXG 27.03 INVOKED BY SUMSTATB
May 18, 2009    ERROR: OVERFLOW HAS OCCURRED; EVALUATION IS TERMINATED.
May 22, 2009    ERROR: THE MACRO VMXGOPTR WILL STOP EXECUTING.
               This error is ONLY in the SAS V8 %Macro compiler, and is
               circumventable;  the problem is that V8 %Macro compiler
               is not terminating strings at the equal sign as expected,
               but by wrapping the strings in double-quotes, to make it
               a character compare rather than an evaluated comparison
               circumvented the compiler error.
               There is also an associated change between V8 and
               V9 in the limit to the value of a numeric compare in the
               macro language from 2**32 in V8 to 2**64 in V9, causing
               the compare to work accidentally in V9 but not in V8.

               The one statement in VMXGOPTR that caused SAS V8 to fail
                 IF "&STRING"="123456789123456789" %THEN ....
               was corrected, so this part of MXG continues to execute
               with SAS V8.2, BUT USING V9 IS MUCH BETTER AND SAFER!

              -Enroute to isolating the actual error, we investigated
               VMXGSUM for long-length-macro-text, a known past problem
               with the SAS Macro Language, and did reduce the length of
               some macro variables in the updated VMXGSUM, but it was
               not the cause of the OVERFLOW.
               This simple test isolated the V8-only compiler error:
                 %MACRO TESTCASE;
                 %LET STRING=12345678912345689;
                 %IF &STRING=12345678912345689 %THEN %PUT TEST FAILED;
                 %MEND TESTCASE;
                 %TESTCASE;
               When executed on SAS V9, "TEST FAILED" was printed. when
               run under SAS V8.2, the OVERFLOW occurred.

              -Since V8.2 is ancient, I won't ask SAS Institute to spend
               their time fixing the %Macro compiler error, with what
               appears to be a complete circumvention. Chuck and I spent
               a great deal of time chasing this V8-ONLY error, just so
               those of you that are still limping along on ancient V8,
               and knowing that you do need V9 (but just can't find time
               to install it) can still get the full benefits of all of
               the new features and enhancements in the current MXG.

              -ONLY user SAS V9.2, just to get even, its macro compiler
               found invalid syntax of %THEN %THEN in VMXGOPTR, when it
               was called from deep within READDB2, causing V9.2 error
               message NO MATCHING %IF FOR %THEN.
               SAS V9.1.3 didn't burp with that same invalid syntax!
   Thanks to Francois Chable, DTF/DESI, FRANCE.
   Thanks to Hai Dang, DTF/DESI, FRANCE.
   Thanks to Winnie Peng, Hawaii Medical Service Association, USA.

Change 27.091  ASG TMON/CICS variables WTSCWTTM and WTSCWTCN were input
VMACTMO2       reversed, with the counts in the time field (but divided
May 13, 2009   by 1 million!) and the time in the count filed (and NOT
               divided as it should be), in three separate INPUTs.
   Thanks to Shantha Hallett, Capgemini UK, ENGLAND>

Change 27.090  Became Change 27.097.

Change 27.089 -The dataset TYPE72DL delay counters R723RW01-R723RW15 are
VMAC7072       now described by new variables R723RN01-R723RN15, from
May 11, 2009   the Resource Delay Type Names Section added in z/OS 1.10
               to the SMF 72 Subtype 3 record.  There is a separate Name
               Section for each of subsystems (DB2,CICS,IMS,SMS,etc.)
               that capture delay samples, so each can have a different
               description of each of its fifteen delay counters.
              -The _BTY72DL "BY list" sort order that removes dupes was
               revised by adding RPRTCLAS as the penultimate variable, a
               protection required ONLY if you have (unwisely) used the
               same name for a Service Class and for a Reporting Class.

               The R723RN01 Name fields have not been tested with data;
               thus far, all test files have R723RDNN=0.
   Thanks to Don Deese, Computer Management Science, USA.

Change 27.088  Support for TS7700/BVIR Microcode 1.5.
FORMATS       -Format $MGBVIDC added x23 3592 Model E05 x24 Model E06.
VMACBVIR         x23='x23:3592 Model E05 (Encrypted)
May  6, 2009     x24='x24:3592 Model E06.
              -New DLIBSEQN, Distributed Library Sequence Number is
               added to all datasets; while documented as EBCDIC, the
               same protective algorithm for GLIBSEQN in Change 27.077
               is used for DLIBSEQN in case it really is also ASCII.
              -BVIR10 new variable DEFTHRTL
              -BVIR30 new variables:
                PCTWDFTH AVGDEFTH BASEDFTH PRMIGTTH UNMIGD00
                AWAITR00 UNMIGD01 AWAITR01
              -BVIR33 new variables:
                G1MLCTA1-G1MLCTA4 G1ALCTA1-G1ALCTA4 G2MLCTA1-G2MLCTA4
                G2ALCTA1-G2ALCTA4 G3MLCTA1-G3MLCTA4 G3ALCTA1-G3ALCTA4
                G4MLCTA1-G4MLCTA4 G4ALCTA1-G4ALCTA4 G5MLCTA1-G5MLCTA4
                G5ALCTA1-G5ALCTA4 G6MLCTA1-G6MLCTA4 G6ALCTA1-G6ALCTA4
                G7MLCTA1-G7MLCTA4 G7ALCTA1-G7ALCTA4 G8MLCTA1-G8MLCTA4
                G8ALCTA1-G8ALCTA4
   Thanks to Jens Mohring, HUK-COBURG, GERMANY.
   Thanks to Markus Bansemir, HUK-COBURG, GERMANY.

Change 27.087 -NMONBBBP dataset contained blank values for many BBBPnnn
VMACNMON       variables; the OUTPUT logic was relocated and revised.
May  5, 2009  -Variable BBBP029='ENTITLED*CAPACITY' instead had value of
               BBBP050='ENTITLED CAPACITY OF POOL'.  The values are
               corrected, and several BBBPnnn labels were revised.
   Thanks to Silvio Ferrari, Banca Carige S.p.a., ITALY.
   Thanks to Franco Tonelli, Banca Carige S.p.a., ITALY.
   Thanks to Gianvittorio Negri, SAS Institute, ITALY.

Change 27.086 -DB2STATS variables QISEKPGE, QISESPGE, QISESFRE, QISESKCT
VMACDB2        QISESKPT and QISEKFRE aren't accumulated fields, but they
May  5, 2009   were deaccumulated; variables QISEKTA and QISECTA were
               also deaccumulated, and probably also shouldn't have been
               but all test values are zeros for those two variables, so
               they have not been validated.  All eight variables are no
               longer deaccumulated.
              -Variable QISESPGE has a default value of 524287 pages
               (2GB) that is set by a "hidden" zparm value of "SPRMABVC"
               in DSN6SPRC, but IBM STRONGLY RECOMMENDS THAT YOU DO NOT
               CHANGE THAT DEFAULT VALUE UNTIL/UNLESS DB2 L2 determines
               there is a storage problem.
   Thanks to John Shuck, Suntrust, USA.

Change 27.085  Omegamon ONDV datasets created from subtype 203 had blank
VMACOMCI       values for the "xTRAN" variable because MXG did not INPUT
May  8, 2009   these three variables from the header: OMCIJOB, OMGAPPL,
               and OMSAPPL.  Now, all are kept in the OMCI-203 datasets:
                  OMCIADA  OMCIADAT OMCIDLI  OMCIDLIT OMCIDTCO
                  OMCIDTCT OMCIIDMS OMCIIDMT OMCISUPR OMCISUPT
                  OMCIVSAM OMCIVSAT
   Thanks to Richard Schwartz, State Street Bank, USA.

Change 27.084  First MXG 27.03 had two members revised:
VGETDDS       -The enhanced VGETDDS wasn't, having not been tested with
VMACIMSA       all options; a missing %END and non-defined GOOVOO were
May  5, 2009   added (but that's why I didn't list VGETDDs in the list
May 12, 2009   of Major Enhancements, since it was still in testing, and
May 20, 2009   is not exactly mainstream!).
               Additional cleanup of MXGWARN versus MXGERROR, protection
               for START END, etc., were added.
              -VMACIMSA addition of the new IMS45x statistics records
               didn't have the new ST* variables in a FORMAT statement;
               this was missed in QA because the same variables were in
               a FORMAT statement in VMACIMS.

====== Changes thru 27.083 were in MXG 27.03 dated May  4, 2009========

Change 27.083 -VGETDDS reads "logically concatenated" PDB libraries with
VGETDDS        DDnames "starting with", e.g. (PDB1 PDB2 PDB3....) to
May  2, 2009   select a SAS dataset (e.g. JOBS) from all of those PDBs.
               You control which data libraries are read in your JCL,
               without modifying your program, using VGETDDS & VMXGSET.
              -This change enhances VGETDDS to allow dynamic allocation
               of DSNAMEs that are GDGs, or of DSNAMES with embedded
               DATEs.
              -Extensive comments and examples describe how to read a
               SAS dataset from multiple data libraries in a single
               "SET" statement that doesn't require separate DDs in your
               JCL.
   Thanks to Brian A. Harvey, HCL America, USA.

Change 27.082  Support for DCOLLECT's z/OS 1.10 change to DCDOVERA, now
VMACDCOL       defined as a 32-bit unsigned number, previously defined
Apr 30, 2009   as a 31-bit signed number, requires NO CHANGE to MXG, as
               that variable has always (since 1994!) been INPUT with a
               INFORMAT of PIB4, which reads all 32 bits. MXG always has
               used PIB4 for any variable for which a negative value is
               impossible, even when IBM called it a signed value.
               (For the miniscule number of variables that actually can
               have a negative value, MXG uses IB4 INFORMAT.)
   Thanks to Brian A. Harvey, HCL America, USA.
   Thanks to Paul Ashford, USAA, USA.

Change 27.081  Support for APAR OA27623 that adds CPU Speed, SM1132SP,
VMAC113        speed in cycles per microsecond, to TYPE113 dataset.
Apr 30, 2009

Change 27.080 -Improved protection for inconsistent NMON data that has
VMACNMON       fewer counters in the data records than the number of
Apr 30, 2009   field names in the header record, primarily observed in
May  2, 2009   the DISKxxxx and JFSxxxxx records. The short records were
               erratic; most data records had the correct number of data
               values, but, interspersed, there were the short records.
              -The INPUT statements for each record type are replaced by
               an initial INPUT and then the SCAN() function is used to
               populate the new WORDS array, so that the NRWORDSIN can
               be initially counted, but then the WORDS array is read to
               find the last field that is non-blank, and its position
               is then NRVALUES, which is used in all comparisons with
               the expected number of fields from the header record.
               This was because (for example, DISKBUSY) records with 19
               header fields, but with only the first 3 populated, were
               found, and subsequent data records had 19 fields usually,
               but some had only 15 fields, but all of the data records
               had only 3 fields populated.  The old algorithm deleted
               those short data records, but now, if the last non-blank
               field locations match, the data record can be decoded and
               is now output eliminating COUNTERS ARE DIFFERENT messages
               (unless the counts really are different).
              -The BBBP record still has to be INPUT rather than scanned
               because I couldn't find how to SCAN a comma-delimited
               field with double-quotes around embedded comma(s)!
              -The COUNTW(FIELD,','); function does NOT correctly count
               fields with repeated commas, and it took two invocations
               of TRANWRD(WORD,',,',',') to separate all of the commas
               to get the correct count of fields.
              -The AAA Record DATE value was expected to be a 4-digit
               YYYY value, so records with only YY (non-Y2K compliant!)
               caused INVALID ARGUMENT TO FUNCTON error message.  MXG
               now protects NMON for YY in the date field, and the
               MONTH argument was protected with an UPCASE() function.
   Thanks to Arthur Sy, Depository Trust, USA.

Change 27.079  The Elapsed Time variable in the ORACLE dataset was still
VMACORAC       missing; Change 26.099 was apparently lost.  Now,
Apr 27, 2009      ELAPSTM=SMFTIME-STARTTS;
   Thanks to Bret Hoesly, Telephone and Data Systems, USA.

Change 27.078  Support for IMS Log Record 45X IMS Interval Statistics
ASMIMSL6       creates 24 new datasets from its 22 subtypes:
TYPEIMSA         dddddd     Dataset   Description
TYPSIMFL         IMS450     IMS4500   IMS 4500 BEGIN STATISTICS'
TYPSIMS7         IMS452     IMS4502   IMS 4502 QUEUE POOL STATISTIC'
VMACIMS          IMS453     IMS4503   IMS 4503 FORMAT BUFFER POOL S'
VMACIMSA         IMS454     IMS4504   IMS 4504 DATABASE BUFFER POOL'
VMXGINIT         IMS455     IMS4505   IMS 4505 VARIABLE POOL STATIS'
May  4, 2009     IMS456     IMS4506   IMS 4506 SCHEDULING STATISTIC'
                 IMS457     IMS4507   IMS 4507 LOGGER STATISTICS'
                 IMS458     IMS4508   IMS 4508 VSAM SUBPOOL STATIST'
                 IMS459     IMS4509   IMS 4509 PI STATISTICS'
                 IMS45A     IMS450A   IMS 450A LATCH STATISTICS'
                 IMS45C     IMS450C   IMS 450C CBT STATISTICS'
                 IMS45D     IMS450D   IMS 450D RECEIVE ANY BUFFER P'
                 IMS45E     IMS450E   IMS 450F FIXED POOL STATISTIC'
                 IMS45F     IMS450F   IMS 450F DISPATCHER STATISTIC'
                 IMS45O     IMS450O   IMS 450F DISPATCHER TCB STATISTIC'
                 IMS45P     IMS450P   IMS 450F DISPATCHER SAP STATISTIC'
                 IMS45G     IMS4510   IMS 4510 RCFT STATISTICS'
                 IMS45H     IMS4511   IMS 4511 STORAGE STATISTICS'
                 IMS45I     IMS4512   IMS 4512 IMODULE STATISTICS'
                 IMS45J     IMS4513   IMS 4513 MSC STATISTICS'
                 IMS45K     IMS4514   IMS 4514 EWLM STATISTICS'
                 IMS45L     IMS4521   IMS 4521 IRLM USERT STATISTIC'
                 IMS45M     IMS4522   IMS 4522 IRLM SYSTEM STATISTI'
                 IMS45N     IMS45FF   IMS 45FF END STATISTICS'
               The IMS Interval Statistics contain many accumulated
               variables, which are deaccululated in the _SIMS45X macro,
               which has been added to TYPSIMS7 ("old" log records only)
               and to TYPSIMFL (processes IMF/CIMS and the IMS records),
               and to TYPEIMSA (part of JCLIMSL6 IMS Log Processing),
               but only those variables that were non-zero in my small
               test file have been validated.  You can use  _MEANDBG
               after your include of either TYPSxxxx member to run a
               PROC MEANS against all of the statistics datasets, and
               look for a negative MINIMUM value to identify fields that
               are being deaccumulated that should not be.
              -TYPSIMFL has been updated with comments and sample JCL to
               select only the 0F9x, 0FAx, and 45x log records and to
               write the four IMF datasets to separate DDs, writing all
               of the new statistics data to the default //PDB DDname.
              -ASMIMSL6 (for the JCLIMSL6 MXG IMS Log Processing, used
               only if you do NOT have IMF or another IMS monitor) is
               updated to also select the 45x records; since they are
               interval records, their volume should always be small.
              -Note that the default output destination of these new
               IMS45xx datasets is the //WORK ddname, just like the
               Fastpath and CPIC datasets.  You can use
                   %INCLUDE SOURCLIB(TYPEIMSx);
                   PROC COPY IN=WORK OUT=whatever MT=DATA;
                    SELECT IMS45: ;
               to copy these new (low volume) datasets to whatever
               DD/LIBNAME you want, or you can override individual
               datasets with %LET PIMS45z=whatever; before the %INCLUDE.
               Note the Pdddddd macro token must be used because of the
               de-accumulation that is required.
   Thanks to Christa Neven, KBC Global Services, BELGIUM.

Change 27.077  BVIR variable GLIBSEQN was documented as EBCDIC and early
VMACBVIR       test data had '00'X values, but new data with ASCII data
Apr 27, 2009   is found, so MXG logic now tests for '00'x, or for EBCDIC
               hex values ('81'x-'A9'x,'C1'x-'E9'x,'F0'x-'F1'x) or falls
               thru for ASCII to input GLIBSEQN in the correct format.
   Thanks to Rob D'Andrea, Royal Bank of Scotland, SCOTLAND.
   Thanks to Penny Dudgeon, Royal Bank of Scotland, SCOTLAND.

Change 27.076  Significant enhancements to ASUM70PR summarization of
VMAC7072       TYPE70PR adds support for HiperDispatch by subtracting
VMXG70PR       Parked Time SMF70PAT from both Online Time SMF70ONT and
Apr 30, 2009   from Wait Time SMF70WST, AND adds new IFA, IFL, and ZIP
               variables to each LPAR to fully support those Specialty
               engines (especially IFLs which were not captured in the
               previous ASUM70PR implementation), captures the PHYSICAL
               LPAR time for each type of Specialty Engine, and adds it
               into the CPUIFATM, CPUIFLTM, CPUZIPTM totals in Interval
               datasets, calculates the Average Number of Online Engines
               for CPs, IFAs, IFLs, and ZIPs, provides counts of the
               number of Installed Engines of each type, cleaned up the
               inconsistencies in the variable's names and contents,
               and documents what variables contain what, below!

               It has always been my recommendation that the datasets
               created by ASUM70PR should be used for LPAR analysis,
               since it avoids you having to understand the complexity
               of the raw TYPE70PR dataset; with this enhancement, all
               of the information is summarized, and you have four ways
               of analysis with the four output datasets created.

              -ASUM70PR is enhanced with new variables for IFL LPARs and
               consistent contents in the CPUxxxTM total variables, and
               the HiperDispatch Parked Time SMF70PAT and Wait SMF70WST
               are kept for each LPAR in all four datasets.  If SMF70PAT
               is non-zero, i.e., engines were parked, the SMF70ONT LPAR
               Online Up Time, and the LPAR Wait Time SMF70WST are each
               reduced by the Parked Time.

              -The datasets ASUM70LP and ASUMCELP contain an observation
               for each LPARNAME, with a single set of variable names
               for each INTERVAL (that you set in your ASUM70PR member).
               -ASUM70LP is created per SYSTEM, with each system's view
                of the resources consumed by ALL of the LPARs seen by
                that SYSTEM, so there will be replicated/repeated data
                for each LPARNAME when you process SMF/RMF data from
                multiple systems.
               -ASUMCELP is created per CECSER with a single observation
                for each LPARNAME for each INTERVAL.
                In both of the per-LPARNAME datasets, ASUM70LP/ASUMCELP,
                IFL LPARs are measured in these new variable names:
                  NRIFLCPU='INSTALLED*IFL*ENGINES'
                  IFLACTTM='IFL*PROCESSORS*CPU*ACTIVE*TIME'
                  PCTIFLBY='IFL*PERCENT*CPU*BUSY'
                  IFLCPUS ='IFL*AVERAGE*ONLINE*CPU COUNT'
                  IFLUPTM ='IFL*PROCESSORS*UP*TIME'
                  IFLPATTM='IFL*PARKED*PAT*TIME'
                  IFLWSTTM='IFL*PROCESSORS*WST*TIME'
                As these datasets are per-LPARNAME their CPU active time
                in variables IFAACTTM, IFLACTTM, and ZIPACTTM, do not
                contain the Physical Engine CPU times.

              -The datasets ASUM70PR and ASUMCEC contain an observation
               for each interval, with a set of variables for the totals
               and 60 separate sets of LPnAAAAA variables with resource
               usage for each LPARNAME.
               -ASUM70PR is created per SYSTEM, with each system's view
                of the resources consumed by ALL of the LPARs seen by
                that SYSTEM, so it, too, will have replicated/repeated
                data when you process data from multiple systems.
               -ASUMCEC is created per CECSER with a single observation
                for each INTERVAL.
                Since ASUM70PR/ASUMCEC are interval summaries across ALL
                LPARs, the total-CPU-time variables now consistently
                include the Physical LPAR CPU time; previously, only the
                CPUACTTM for CP engines included the Physical time.
                And the Physical CPU time for each engine type are now
                available in ICFPHYTM, IFAPHYTM, IFLPHYTM, and ZIPPHYTM.

                Those 60 sets of per-LPAR LPnAAAAA variables have these
                new variables for each LPAR's IFA, IFL and ZIP usage:
                  LPnIFATM='LPAR  n*IFA*DISPATCH*TIME'
                  LPnIFUTM='LPAR  n*IFA*UP*TIME'
                  LPnIFKTM='LPAR  n*IFA*PARKED*TIME'
                  LPnIFWTM='LPAR  n*IFA*WST*TIME'

                  LPnILATM='LPAR  n*IFL*DISPATCH*TIME'
                  LPnILUTM='LPAR  n*IFL*UP*TIME'
                  LPnILKTM='LPAR  n*IFL*PARKED*TIME'
                  LPnILWTM='LPAR  n*IFL*WST*TIME'

                  LP1ZIPTM='LPAR  n*ZIP*DISPATCH*TIME'
                  LP1ZIUTM='LPAR  n*ZIP*UP*TIME'
                  LP1ZIKTM='LPAR  n*ZIP*PARKED*TIME'
                  LP1ZIWTM='LPAR  n*ZIP*WST*TIME'

              -If you have IFLs, many "Missing Values" messages will be
               printed on the SAS log, but they are harmless; IFL LPARs
               have missing values for all of the old CP variables.


                              ASUM70LP/ASUMCELP - Per-LPARNAME Variables

                               ============ Engine Type =============
                               CP      IFA      IFL      ZIP      ICF
       Metric:
       Installed Engines    PARTNCPU NRIFACPU NRIFLCPU NRZIPCPU NRICFCPU
       Avg Online Engines   LPARCPUS IFACPUS  IFLCPUS  ZIPCPUS
       CPU Busy Time        LCPUPDTM IFAACTTM IFLACTTM ZIPACTTM
       Percent CPU Busy     PCTLPBY  PCTIFABY PCTIFLBY PCTZIPBY
       Online Total Time    LPARDUR  IFAUPTM  IFLUPTM  ZIPUPTM
       Parked Time          SMF70PAT IFAPATTM IFLPATTM ZIKPATTM
       Wait State Time      SMF70WST IFAWSTTM IFLWSTTM ZIPWSTTM

       ASUM70LP Sorted BY list:
          SYSPLEX SYSTEM SYSNAME STARTIME SHIFT CECSER LPARNAME LPARNUM
       ASUMCELP Sorted BY list:
          CECSER STARTIME SHIFT LPARNAME LPARNUM


                              ASUM70PR/ASUMCEC  - Per-Interval Variables

                               ============ Engine Type =============
                               CP      IFA      IFL      ZIP      ICF
       Metric:
       Installed Engines    PARTNCPU NRIFACPU NRIFLCPU NRZIPCPU NRICFCPU
       Avg Online Engines   LPARCPUS IFACPUS  IFLCPUS  ZIPCPUS
       CPU Busy Time        CPUACTTM CPUIFATM CPUIFLTM CPUZIPTM
       Percent CPU Busy     PCTLPBY  PCTIFABY PCTIFLBY PCTZIPBY
       Online Total Time    LPARDUR  IFAUPTM  IFLUPTM  ZIPUPTM
       Parked Time          SMF70PAT IFAPATTM IFLPATTM ZIKPATTM
       Wait State Time      SMF70WST IFAWSTTM IFLWSTTM ZIPWSTTM

       ASUM70PR Sorted BY list:
          SYSPLEX SYSTEM &MXGSYSN STARTIME SHIFT CECSER;
       ASUMCEC  Sorted BY list:
          CECSER STARTIME SHIFT;


              -PDB.TYPE70PR dataset was also enhanced with the counts
               and CPU Active time for all four specialty engines for
               each LCPUADDR, with these new or updated variables:
                 NRICFCPU NRIFACPU NRIFLCPU NRZIPCPU  total engines
                 ICFACTTM IFAACTTM IFLACTTM ZIPACTTM  CPU this LCPUADDR

              -Validation notes.  Using PROC COMPARE can often identify
               differences, but comparing across this change can cause
               lots of "false positives", especially in the count of the
               Specialty Engine NRIFACPU,NRZIPCPU,NRICFCPU,NRIFLCPU as
               they sometimes wrong or always missing in prior PDBs.
               Small changes are expected in the CPUxxxTM for Specialty
               Engines because their PHYxxxTM is now included.
               And the xxxUPTM "Uptime" variables are now differently
               calculated, as the actual Online Time, rather than the
               old values of NRxxxCPU*DURATM.
   Thanks to Robert Hamilton, Fifth Third Bank, USA.
   Thanks to Zhan Wang, AIG, USA.

Change 27.075  Cosmetic.  For Offline LPARS (LPARCPUX=0) these variables
VMAC7072       in PDB.TYPE70PR:  LCPUADDR SMF70CIX SMF70ONT NRCIXGT0
Apr 23, 2009   could have non-missing values.  Now, all are set missing.
               Unchanged, but noted: SMF70CIN is blank when LPARCPUX=0.

Change 27.074  Group Capacity datasets ASUM70GC & ASUM70GL were wrong if
VMXG70PR       multiple SYSTEMs data was in TYPE70PR; each SYSTEM has an
Apr 23, 2009   observation with repeated data for each LPARNAME that was
               being summed for each Group Name.  This change selects a
               single system per interval for the revised summation.
               It has been observed in the data and in IBM RMF reports
               that actual Group MSU used, LPARMSU, can exceed SMF70GMU,
               the Maximum License Units of the Group, causing PCTGCUSE,
               the Percent of Group Capacity Used, to exceed 100%.
   Thanks to Karl Lasecki, Chemical Abstracts Service, USA.

Change 27.073  Variable EVENTIME in data set TSMACCT was wrong; the YYYY
VMACTSMA       INPUT function was revised to use informat 4.
Apr 22, 2009        YYYY=INPUT(SUBSTR(DATECH,7,4),4.);
   Thanks to Craig Collins, State of Wisconsin DOA, DET, USA.

Change 27.072  Updates for VTCS subtypes of the STC/STK User SMF record.
FORMATS       -Format $MGSTCCT adds 2000MB and 4000MB values.
VMACSTC       -Format $MGSTCMN adds MOUNT ANSI SCRATCH VTV value.
Apr 22, 2009  -Dataset STCVSM18 variables STC18CTP and STC18MT were not
               input for the longer length segment, STC18CTP was not
               kept, and all three CTP variables are now length $2 and
               correctly formatted.
              -Formats $MGSTCMN and $MGSTCCT were updated with new
               values for 2000MB and 4000MB cartridges, and for
               ANSI Label Mounts, respectively.
   Thanks to  Davide Marone, SGS S.p.a. ITALY
   Thanks to  Carlo Gavinelli, SGS S.p.a. ITALY
   Thanks to Gianvittorio Negri, SAS Institute, ITALY.

Change 27.071 -Major enhancement: all MXG-provided VMXGSUM-using summary
ANAL88         programs (e.g. ASUMs, ANALs, TRNDs) will NOT fail if your
ANALAVAI       input data has DROPed variables, if you simply specify
ANALCACH         %LET KEEPALL=NO;
ANALCISH       in your //SYSIN.  KEEPALL=NO causes VMXGSUM to determine
ANALCNCR       what output variables are needed, and thereby prevents
ANALHTML       the VARIABLE NOT FOUND condition when you have DROPed
ANALPKGS       variables to reduce the size of your PDB dataset, which
ANALPROG       is what happens with the default of KEEPALL=YES.
ANALSTK
ANALUSS        The default is KEEPALL=YES, because the KEEPALL=NO logic
ASUM23         would be expensive if applied to the hundreds of VMXGSUM
ASUM42DS       invocations that are internal to MXG processing, but its
ASUM94         cost is insignificant for a single execution, and it is
ASUMCACH       ONLY needed when you know you have DROPed variables.
ASUMCICS
ASUMCICT      -All of the summary programs listed in this change now
ASUMCICX       specify KEEPALL=&KEEPALL, in their %VMXGSUM invocation.
ASUMCIMS      -And where needed, a KEEPIN= was added, but KEEPIN does
ASUMDB2A       not get used unless KEEPALL=NO is in effect, so there is
ASUMDB2B       no adverse effect of the KEEPIN= protection.
ASUMDB2G      -VMXGINIT sets KEEPALL=YES as the GLOBALed default value.
ASUMDB2P       The old default NO was used only in TRNDRMFI, which now
ASUMFRYE       has KEEPALL=NO explicitly in its %VMXSGUM statement.
ASUMJOBS      -VMXGSUM now has KEEPALL=&MXGKEEP in its definition, in
ASUMMIPS       place of a hard-coded KEEPALL=YES, and MXGKEEP=YES is set
ASUMNTIN       in VMXGINIT. This value is only used when the %VMXGSUM
ASUMSMFI       invocation did not specify a KEEPALL value, and this is a
ASUMTMNT       "just in case" option, to use MXGKEEP, that I doubt will
ASUMV11        be needed, but is nice to have for testing.
ASUMV14
ASUMVMON       So, how expensive is KEEPALL=NO for my QA stream?
ASUMVTVM
ASUMVMNT       The QA tests with all INFILEs reading zero length files
BLDNTPDB       invokes VMXGSUM 442 times with these comparisons
BUIL3005
BUILD005            KEEPALL             YES        NO
BUILD006            DATA Steps         3567      4924
CICSSTAT            PROC Steps        11564     13454
DAILYDSR            Elapsed mmss      11:44     30:14
DALYTAPE            CPU mmss           6:28     20:31
GRAFWLM
MNTHDB2S       However, the CPU increase of 900 seconds with KEEPALL=NO,
SPUNJOBS       for a total of 442 invocations, is only 2 seconds for a
TRNDDB2P       single execution, well worth that cost to permit you to
TRND23         use the summary program with reduced input.
TRND70
TRND70SH
TRND94
TRNDCACH
TRNDCEC
TRNDDB2A
TRNDDB2B
TRNDDB2G
TRNDDB2S
TRNDDB2X
TRNDNTIN
TRNDNTLD
TRNDRMFI
TRNDTALO
USMFRATE
UTILCONT
UTILRMFI
VMXGCAPT
VMXGCICI
VMXGINIT
VMXGRESP
VMXGRMFI
VMXGSUM
VMXGTPFI
WEEKCEC
Apr 20, 2009

Change 27.070  Variable DESCR existed in 4 different XAM datasets, with
VMACXAM        3 different lengths, with only the first 12 bytes in
Apr 16, 2009   XMHSTMEM dataset, where the field is split into 2 pieces.
               Variable DESCR is now $16 in both XMTIFTB and XMHSTMEM
               datasets, the extra four bytes are appended in XMHSTMEM,
               it is renamed DESCRDSK with length $40 in XMHSTDSK, and
               it is renamed DESCRTCP with length $128 in XMTCPSYS.
   Thanks to Roger Stock, Boston University, USA.

Change 27.069  Serena's Ultimizer user SMF record moved subtype 2 and 3
VMACULTM       into the left byte of the two-byte subtype field, and in
Apr 15, 2009   the right byte for subtype 1 records, which was not the
               expected location of subtype, but now is supported. The
               DSECT for R310 does not document this design. And the
               READTIME field is always missing (hex zeros) in the 2/3
               records but is populated in the subtype 1 VSAM record.
   Thanks to Robb Hermes, Sentry Insurance, USA.

Change 27.068  Optional CICSTRAN USERCHAR field was limited to 200 bytes
IMACICDU       due to that ancient SAS V6 limit on character variables.
Apr 15, 2009   That field can now be up to 32000 bytes.  The IMACICDU
               member is an internal member that would not normally have
               been tailored by users.
   Thanks to Henrik Lange, Nordic Processor, NORWAY.

Change 27.067  Support for LDAP Auditing ID=83 Subtype=3 SMF record.:
EXTY83LD       New dataset created:
FORMATS
IMAC83           dddddd   Dataset   Description
VMAC83           TY83LD   TYPE83LD  TY83LD: LDAP AUDITING
VMXGINIT
Apr 13, 2009
   Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.

====== Changes thru 27.066 were in MXG 27.02 dated Apr 13, 2009=========

Change 27.066  The "owner" variables in TYPE77 were labeled as "CURRENT"
VMAC77         but they are actually the owners/system/etc at the time
Apr 13, 2009   of maximum contention.  The revised labels now are:
                  CURROWN ='NUMBER OF*OWNERS*WHEN AT*MAX CONTENTION'
                  CURRWAIT='NUMBER OF*WAITERS*WHEN AT*MAX CONTENTION'
                  JOBOWN1 ='NAME OF*OWNER#1*WHEN AT*MAX CONTENTION'
                  JOBOWN2 ='NAME OF*OWNER#2*WHEN AT*MAX CONTENTION'
                  JOBWANT1='NAME OF*WANTER#1*WHEN AT*MAX CONTENTION'
                  JOBWANT2='NAME OF*WANTER#2*WHEN AT*MAX CONTENTION'
                  SYSOWN1 ='SYSTEM OF*OWNER#1*WHEN AT*MAX CONTENTION'
                  SYSOWN2 ='SYSTEM OF*OWNER#2*WHEN AT*MAX CONTENTION'
                  SYSWANT1='SYSTEM OF*WANTER#1*WHEN*MAX CONTENTION'
                  SYSWANT2='SYSTEM OF*WANTER#2*WHEN*MAX CONTENTION'
   Thanks to Don Deese, Computer Management Science, USA.

Change 27.065  Cosmetic, to eliminate MXGWARN messages from VMXGOPTR.
BUILD001       Change 27.051 corrected VMXGOPTR so the current value of
BUILD005       an option would be used, but invocations of VMXGSUM could
BUIL3001       unexpectedly modify the option; this change pairs each of
BUIL3005       the VMXGOPTR to reset (VALUE=ORIGINAL) prior to VMXGSUMs.
SPUNJOBS       Without this change, the (usually) harmless message
Apr 12, 2009       MXGWARN: STORED VALUE OF DKROCOND IS MXG;
               could have been printed on the SAS log.

Change 27.064  SYSLDSN from the IEC501I message could be a number rather
VMACTMNT       than a DSNAME; the WORDS array did not parse correctly if
Apr 11, 2009   there were adjacent commas for un-populated fields in the
               SYSLOG message text.  The TRANWRD(x,',,',', ,') function
               was used to insert a blank between adjacent commas, once
               I found that TRANWRD and TRANSLATE functions are quite
               inconsistent, with their syntax reversed:
                 TRANSLATE(argument,to,from);
                 TRANWRD  (argument,from,to);
   Thanks to MP Welch, SPRINT, USA.

Change 27.063  Decoding SYSLOG MSGID=IEC205I in TMNT Subtype 8 record
VMACTMNT       adds variables STEPNAME SYSLBLKS SYSLENCR to TYPESYMT
Apr 11, 2009   dataset to identify Encrypted Tapes; SYSENCR will have
               the text  KL1CD:L,LK2CD:L  for encrypted tapes (where
               H:='HASH' or L:LABEL').  The ASMTAPEE monitor program
               will be updated later to write IEC205I in TMNT Subtype 8
               record, and a later update to ASUMTAPE will be needed to
               complete this enhancement.
   Thanks to Bruce Gillespie, First American Reinsurance, USA.

Change 27.062 -TYPE42 Updates for VSAM RLS "ABOVE THE BAR" statistics,
EXTY42D3       added by IBM long ago but overlooked by MXG, adds six new
EXTY42D4       datasets and re-labels the six existing "BELOW THE BAR":
EXTY42S3        TY42S1    TYPE42S1  VSAMRLS SPLEX SC BELOW THE BAR
EXTY42S4        TY42S2    TYPE42S2  VSAMRLS SC CF SYS BELOW THE BAR
EXTY42X3        TY42S3    TYPE42S3  VSAMRLS SPLEX SC ABOVE THE BAR
EXTY42X4        TY42S4    TYPE42S4  VSAMRLS SC CF SYS ABOVE THE BAR
IMAC42          TY42D1    TYPE42D1  VSAMRLS SPLEX DATASET BELOW BAR
VMAC42          TY42D2    TYPE42D2  VSAMRLS DATASET CF SYS BELOW BAR
VMXGINIT        TY42D3    TYPE42D3  VSAMRLS SPLEX DATASET ABOVE BAR
Apr  9, 2009    TY42D4    TYPE42D4  VSAMRLS DATASET CF SYS ABOVE BAR
                TY42X1    TYPE42X1  VSAMRLS BUFF MGR TOTALS BELOW BAR
                TY42X2    TYPE42X2  VSAMRLS BUFF MGR DETAILS BELOW BAR
                TY42X3    TYPE42X3  VSAMRLS BUFF MGR TOTALS ABOVE BAR
                TY42X4    TYPE42X4  VSAMRLS BUFF MGR DETAILS ABOVE BAR
              -APAR OA25559 adds two new variables S42DSRDD,S42DSRDT to
               subtype 5 and subtype 6 records, and these variables are
               are kept in TYPE42DS, TYPE42SR, and TYPE42VT datasets:
                  S42DSRDD='AVERAGE*READ MS*DISCONNECT*TIME'
                  S42DSRDT='READ*OPERATIONS*TO*DATASET'

Change 27.061  MXG 27.01 only.  A DEBUGging PUT statement at line 235
VMAC88         PUT _N_= SUBTYPE= SMFTIME= SMF88LTD= SMF88LIT= GMT88OFF=;
Apr  8, 2009   is now deleted by this change.
   Thanks to Mike Creech, Lender Processing Services, Inc., USA.

Change 27.060  Cosmetic.  Labels for TYPE23 BUFSZMAX and WRNSZMAX said
VMAC23         "PERCENT", but BUFSZMAX has always been the MAX VALUE.
Apr  8, 2009   WRNSZMAX was the Warning PERCENT thru z/OS 1.5, but in
               z/OS 1.6 the description was changed to "VALUE", but it
               was NOT documented in the changes in the 1.6 SMF Manual.
               Now, both labels say VALUE rather than PERCENT.
   Thanks to Chuck Hopf, Bank of America, USA.

Change 27.059  SMF 102 IFCID=108 variables starting at QW0108PR were not
VMAC102        input because QWT02R1N, instead of QWT02R1L (length) was
Apr  6, 2009   tested for GE 160.  Additionally, these new variables are
               now input and kept in T102S018 dataset:
                 QW0108DY QW0108DP QW0108RO QW0108KD QW0108OH QW0108IW
                 QW0108SC QW0108CC
   Thanks to Tony Anderson, Blue Cross Blue Shield of Alabama, USA.

Change 27.058  Change 27.015 enhanced VMACSMF to test IF SUBTYPE GT 255
VMACSMF        because some user SMF records store their subtype in the
Apr  6, 2009   left byte of the two byte field.  MXG printed an ERROR
               message, and used the left byte as the subtype number,
               but this ERROR message was not documented in that text.
               I also failed to protect the optional BMC CICS Statistics
               SMF 110 records that are written as subtype=2818 or 47874
               ('BB02'x,'0B02'x) are really subtype=2 STID=200 to 205.
               IF you had enabled the optional IMACICBB member to decode
               these optional STID's, then their CICSBBxx datasets would
               have had no observations, plus the new MXG ERROR message.
   Thanks to Lorena Ortenzi, UniCredit Global Info Services, ITALY.

Change 27.057  MXG 27.01.  DCOLLECT DCOLVOLS the volume size variables
VMACDCOL       DCVALLOC DCVFRESP DCVLGEXT DCVVLCAP are small by 1024.
Apr  3, 2009   Change 27.034 for EAV support mislocated the code that
               multiplies the KB value by 1024 so it was ONLY executed
               if the record is the longer, EAV-updated, volume record.
   Thanks to Frank Lund, EDB, NORWAY.
   Thanks to Chris A. Hughes, University of Georgia, USA.

Change 27.056  Support for Control-D "Decollating" SMF record, which is
EXTYCTCD       a new, different SMF record than the Control-D TYPECTLD
IMACCTCD       support.  This new record creates dataset CONTROCD.
TYPECTCD
TYPSCTCD
VMACCTCD
VMXGINIT
Apr  2, 2009
   Thanks to  Davide Marone, SGS S.p.a. ITALY
   Thanks to  Carlo Gavinelli, SGS S.p.a. ITALY
   Thanks to Gianvittorio Negri, SAS Institute, ITALY.

Change 27.055  OBJECTSTAR (a/k/a HURON) INPUT STATEMENT EXCEEDED RECORD
VMACHURN       ERROR for short Subtype 13 record; record should have
Apr  2, 2009   3123 bytes for 26 segments, but LENGTH is only 3110.
               MXG prints message and hex dump of first 3 instances.
   Thanks to David Stone, TESCO, ENGLAND.

Change 27.054  MXG 27.01 ONLY, CRITICAL ERROR FOR SMF 42 SubTypes 1-20.
VMAC42         I really botched this one.  A partial statement was left
Mar 31, 2009   (IF SUBTYPE GT 20 THEN) ahead of IF OFFPROD GT 0 THEN DO,
               preventing INPUT of STARTIME, ENDTIME & DURATM variables
               for these datasets that are created from subtypes 1-20:
                 TYPE4220 TYPE4237 TYPE42AD TYPE42AU TYPE42CC TYPE42CU
                 TYPE42CV TYPE42D1 TYPE42D2 TYPE42DS TYPE42EX TYPE42L1
                 TYPE42L2 TYPE42NF TYPE42NU TYPE42P1 TYPE42P2 TYPE42P3
                 TYPE42S1 TYPE42S2 TYPE42SC TYPE42SR TYPE42TO TYPE42VL
                 TYPE42VS TYPE42VT TYPE42X1 TYPE42X2 TYPE42XR TYPE42XV
               Not only are STARTIME, ENDTIME, and DURATM missing values
               but also variables that are calculated from DURATM, such
               as, in TYPE42DS, CACHRATE, DASDMPL, and DASDRATE also are
               missing values.
   Thanks to Paul Volpi, UHC, USA.

Change 27.053 -CICS Statistics STID=108 in CICS/TS 3.2 added 48 bytes as
FORMATS        part of the 284 bytes INPUT in MXG 27.01 for CICS/TS 4.1.
UTILEXCL       Now, the first 48 are INPUT then the other 236 are INPUT.
VMAC110        STID=108 DFHSORTS data is output in dataset CICTCPIP.
Mar 31, 2009  -CICS Statistics STID=31 inconsistent length/LDBNRDSN was
Apr  1, 2009   only partially circumvented in Change 26.052, as it used
Apr  2, 2009   re-calculated LDRNSKIP=(STILEN-104)/44 for segment count
APR  4, 2009   only if LDRNSKIP was GT LDBNRDSN, causing the prior count
               to be used when LDRNSKIP=LDBNRDSN.  Since it is now clear
               that LDBNRDSN is the number of POPULATED segments, but is
               NOT the number of segments, LDRNSKIP=(STILEN-104)/44 is
               always used to control the number of segments read in.
               Existing test for LDBDSNAM GT ' ' causes only populated
               segments to be output in the CICLDBDS statists dataset.
              -In CICSTRAN dataset, back in 1994, Change 12.166 noted
               that TASKNR (IBM TRANNUM) is not always a packed decimal,
               and can contain four-character-in-EBCDIC values:
                     bytes     old TASKNR    description
                   1st   2-4   (decimal)
                  '00'X,'III'  13,224,393   SYSTEM INITIALIZATION TASK
                  '00'X,'J00'  13,758,704   JOUR CONTROL, JOURNAL=00
                  '00'X,'J99'  13,761,017   JOUR CONTROL, JOURNAL=99
                  '00'X,'JBS'  13,746,914   JOURNAL CONTROL
                  '40'X,'TCP'  14,926,807   TERMINAL CONTROL
               but that change only stored the right 3-bytes as a large
               decimal value when a character value was found, without
               decoding or mapping that strange TASKNR value.  And, that
               change was not implemented in UTILEXCL logic, causing the
               TASKNR to be a missing value for these character values
               when IMACEXCL built by UTILEXCL was used.  Now, if TASKNR
               is not a valid packed decimal value, the full four-byte
               field is input as binary, and TASKNR is FORMATed with new
               MG110TN format that decodes those binary values to print
               the actual 'III', 'Jnn', 'JBX', or 'TCP' text value,
               right justified to align with numeric values of TASKNR.
               And UTILEXCL was updated with this revised logic.

               Because TASKNR is the only packed decimal field in the
               CICSTRAN segment the "vanilla" VMAC110 tested IF TASKNR=.
               to detect misalignment (that is how MXG finds EXCLUDEd
               fields or optional data segments), but with this change,
               TASKNR can never be a missing value, so the new test is
                  IF TASKNR EQ 0 OR
                  (TASKNR GT 99999 AND COMPRESS(PUT(TASKNR,MG110TN.))
                    NOT IN : ('III','TCP','JBS','J') ) THEN DO;
               The original test for TASKNR=. could not be used when the
               IMACEXCL was in use, since the site might have EXCLUDEd
               the TASKNR field, but since this test is now valid even
               if TASKNR is excluded, this misalignment test was moved
               so it is always applied, even when IMACEXCL is used.
   Thanks to Paul Volpi, UHC, USA.
   Thanks to Jon Keister, Caremark, USA.

Change 27.052  Updates to PMACC01 DB2PM-like report had a number of
ANALDB2R       blank values introduced in MXG 26.26, which also changed
Mar 28, 2009   the format of some durations (Class 7 for example) to
               match the DB2PM printed time format.
   Thanks to Paul Billick, QVC Inc., USA.

Change 27.051 -%VMXGOPTR is used internally in MXG to alter the user's
VMXGOPTR       options, which are then reset to their original value.
VMXGSUM        For example, in VMXGSUM, we must have OBS=MAX for the
Mar 27, 2009   internal parsing DATA steps, so we store your OBS value,
Apr  2, 2009   change it to OBS=MAX for our purpose, and then restore
Apr 13, 2009   your ORIGINAL option value.  But if %VMXGOPTR was then
Apr 29, 2009   invoked a second time for that same option, we used your
               ORIGINAL value instead of your CURRENT value.  Now, each
               time %VMXGOPTR is invoked with NEWVALUE not ORIGINAL, we
               store the current value of that option, so that when the
               resetting %VMXGOPTR invocation with ORIGINAL, we then can
               reset that option to the LAST stored value.
              -After ORIGINAL has been reset, the text "MXG" is stored.
               If a subsequent ORIGINAL invocation finds that "MXG", a
               "MXGWARN STORED VALUE FOR xxxxxx IS MXG" prints to alert
               you that you have un-paired %VMXGOPTR invocations.  This
               might not be a problem, depending on your intended use of
               %VMXGOPTR.
              -VMXGSUM required change because it did not have matched
               pairs of %VMXGOPTR invocations.
              -It is VERY unlikely any MXG users have actually used the
               %VMXGOPTR macro, and even less likely that anyone used
               that retained value of the original %VMXGOPTR design,
               but, technically, this is an UNCOMPATIBLE change.
              -Note that if you should use %VMXGOPTR, that you need to
               use it exclusively to change options; if you interleave
               %VMXGOPTR and OPTIONS statements, your results might be
               unexpected.

               This change was precipitated by a simple user program:
                  OPTIONS OBS=0;
                  %INCLUDE SOURCLIB(TYPEDB2);
                  RUN;
                  OPTIONS OBS=MAX;
                  %INCLUDE SOURCLIB(ASUMUOW,ASUMCICX);
               that causes ASUMCICX to fail, because the internal
               %VMXGOPTR in VMXGSUM reset the option OBS=0, which was
               the last value it stored, and so PDB.CICS built by the
               ASUMCICX had 0 OBS.
   Thanks to Paul Volpi, UHC, USA.

Change 27.050  Support for LPAR NMON data for RAWLPAR and RAWCPUTOTAL
EXNMONRC       objects create two new datasets:
EXNMONRL         DDDDDD  DATASET   DESCRIPTION
IMACNMON         NMONRC  NMONRAWC  NMON RAW CPU
VMACNMON         NMONRL  NMONRAWL  NMON RAW LPAR
VMXGINIT
Apr 13, 2009
   Thanks to Peter Turner, Saint George Bank, AUSTRALIA.

Change 27.049  %VGETSYSI for z/OS only, returns global macro variables
VGETSYSI       MXGSYSID and MXGSUSEC which contain the SYSTEM on which
Mar 26, 2009   SAS is executing, and the SU_SEC value for that system.
   Thanks to Chuck Hopf, Bank of America, USA.

Change 27.048  Variable TAPEDRVS in PDB.ASUMTALO is the cross product of
ASUMTALO       allocated tape drives times their duration, so it can be
TRNDTALO       a large and confusing number.  New variable AVGDRIVE is
Mar 26, 2009   now added to PDB.ASUMTALO with the average number of tape
               drives that are allocated. TRNDTALO was also updated with
               the new variable.
   Thanks to Graham Cornwell, DDS, UK.
   Thanks to Craig Heron, DDS, UK.

Change 27.047 -MXG 27.01 only.  The EAV support added in Change 27.034
VMACDCOL       was misaligned, i.e., it was incorrect.  This change has
Mar 25, 2009   now been validated with an EAV volume's DCOLLECT record.
              -The above error also mis-located the previous tests for
               DCVFLAG1 and DCVERROR, causing all of the flag variables
               created from them to be blank.
               Only the DCOLVOLS dataset was in error in 27.01.
               But see also Change 27.057.
   Thanks to Dr. H. Pat Artis, Performance Associated, USA.
   Thanks to Brian Currah, Independent Consultant, CANADA.
   Thanks to Danny K. Case, Mayo Clinic, USA.

Change 27.046  Major updates to D,V,X records created by EDGHSKP utility
VMACEDGR       add new variables to EDGRDEXT, EDGRVEXT, and EDGRXEXT
Mar 25, 2009   dataset.  These extensive changes have been validated
Apr  2, 2009   with z/OS 1.7, 1.8, 1.9, and 1.10 RMM records.
Apr  4, 2009  -The RMM EDGRDEXT final segment test for GE 95 should have
               been GE 31. RVMVDSN1,RVDSTBIN,RVDSTMED,RVVVOL1 do not
               exist in the DEXT record; these fields were added in 2003
               in Change 21.158, but I must have misread the doc!
               Also, the RDEXPDT and RDEXPDTO date fields were not
               converted to SAS date values.
              -Support for APAR OA22132 adds variables to D/V/X records:
                 RDFACTOR='SPACE/SIZE*FACTOR'  (MB in EBCDIC)
                 RDSIZE  ='RDSIZE'
               Variable RDSIZE is converted by RDFACTOR and formatted
               with MGBYTES to show size in KB/MB/GB/ etc  Note that
               RDSIZE will be a missing value when that 10-byte field
               is blanks, which does occur in many (old?) records.
   Thanks to Paul Volpi, UHC, USA.

Change 27.045 -These QISTWFxx variables in DB2STATS were wrong because
VMACDB2        MXG de-accumulated them, but are not accumulated values:
Mar 20, 2009     QISTW04K QISTW32K QISTWF04 QISTWF32 QISTWFCK QISTWFCU
Mar 24, 2009     QISTWFMU QISTWFMX
Apr 11, 2009  -Variables QWACIXLT and QWAXIXLT were incorrectly divided
Apr 19, 2009   by 4096; they are in microseconds, not TOD clock units.
              -Variables QSSTGETR, QWSDARIR, Q9STCTX1 were deaccumulated
               twice, QSSTGETE was not deaccumulated.
              -Dataset DB2STATS variables for Star Joins are marked in
               the DSECT as "SERVICEABILITY", but are added
              -Star Join statistics variables are added to DB2STATS:
                 QISJTRY ='ALLOCATION*REQUESTS IN*STAR JOIN*POOL'
                 QISJFAIL='FAILURES*CAUSED BY*FULL*STAR JOIN*POOL'
                 QISJSIZE='CURRENT*SIZE OF*STAR JOIN*POOL (MB)'
                 QISJMAX ='MAXIMUM*SIZE OF*STAR JOIN*POOL (MB)'
               They are marked "SERVICEABILITY" in the current DSECT.
   Thanks to Lori Masulis, Fidelity Systems, USA.
   Thanks to Rachel Holt, Fidelity Systems, USA.
   Thanks to Terry L. Berman, DST Systems, USA.
   Thanks to Steve Wood, DST Systems, USA.

Change 27.044  Variable CPCFNAME was defined as $10 in VMXG70PR but it
VMXG70PR       contains only $8, and its length in RMFINTRV is also $8.
Mar 20, 2009   Since RMFINTRV is created by default in BUILDPDB, I chose
               to change the length in the ASUM70PR datasets to avoid
               conflicts.
   Thanks to Jim Horne, Lowe's Companies, USA.

Change 27.043 -HP OpenView on AIX variables RELEASE, SOFTWARE, SYSID
ADOCMWAI       were wrong or had no values with the current REPORT macro
ADOCMWSU       (which is now in ADOCMWAI, so you can use that command to
VMACMWAI       extract the data in the format expected by the revised
VMACMWSU       VMACMWAI, and similarly, VMACMWSU/ADOCMWSU members are
Mar 18, 2009   updated for HP OpenView on Sun, with ADOCMWSU containing
Apr 10, 2009   the REPORT macro to match the VMACMWSU code.
   Thanks to Albert Jacobs, KBC ICT Services NV, BELGIUM.

====== Changes thru 27.042 were in MXG 27.01 dated Mar 17, 2009=========

Change 27.042  Support for ASG TMON for CICS V3.2 was in MXG since 25.11
VMACTMO2       for important MONITASK dataset, and most other datasets,
Mar 17, 2009   although MONIIWT & MONITDQ datasets require this change,
               as their offsets were relocated by insertion of the new
               fields for the MONISYST and MONITDQ datasets.
              -Dataset MONITASK, new variables:
                 TADFHAP1 TADFHAP2
              -Dataset MONIPA, new variables:
                 PACMDLYC PACMDLYT PADFHAP1 PADFHAP2 PAICSCC
                 PAICSCD  PAICSRC  PAICSRD  PAL9CPUC PAL9CPUT
                 PAPCDCC  PAPCDLL  PAPCDRL  PAPCLCC  PAPCRCC
                 PAPCRCL  PAPCXCC  PAPGBCC  PAPGCCC  PAPGCTC
                 PAPGGCC  PAPGGCL  PAPGMCC  PAPGPCC  PAPGPCL
                 PASTDLYC PASTDLYT PAWBBOC  PAWBI1C  PAWBIRC
                 PAWBIWC  PAWBO1C  PAWBOSC  PAWBPRC  PAWBRDL
                 PAWBROC  PAWBWDL  PAWBWOC  PAX8CPUC PAX8CPUT
                 PAX9CPUC PAX9CPUT PAXTDLYC PAXTDLYT
              -Dataset MONISYST, new variables:
                 TIMQSCLC TIMQSCLT TIMQSGTC TIMQSGTT TIMQSIQC
                 TIMQSIQT TIMQSOPC TIMQSOPT TIMQSP1C TIMQSP1T
                 TIMQSPTC TIMQSPTT TIMQSSTC TIMQSSTT TIRECICT
              -Dataset MONITDQ, new variables:
                 TDRECICT

Change 27.041  The example to summarize PDB.SMFINTRV into PDB.ASUMSMFI
ASUMSMFI       was enhanced to specify the SYNC59 argument, with the
Mar 17, 2009   default SYNC59=NO, so there would be no change to the
               summarized output (until you change NO to YES!).
   Thanks to Lawrence Stahl, IBM Global Services, USA.

Change 27.040  Dataset TYPE78PA (Private Area for Monitored Jobs) ID=78
VMAC78         Subtype 2 INPUT STATEMENT EXCEEDED RECORD LENGTH ERROR
Mar 17, 2009   was due to MXG miscoding the new-in-z/OS 1.10 Memory
               Objects.  COMOHWM,LGMOHWM,SHMOHWM,TOFRHWM,TOMOHWM vars
               were INPUT but never existed and are removed.  Labels for
               their MIN and MAX values are changed to FRAMES instead of
               BYTES, and their MGBYTES formats are removed.
   Thanks to Scott Chapman, American Electric Power, USA.

Change 27.039  Change 26.183 is wrong; it removed the QBAC and QTXA vars
ASUMDB2P       from the summary in ASUMDB2P and TRNDDB2 code, claiming
TRNDDB2P       those variables were not in the IFCID=239 (101 subtype 1)
VMACDB2        Package Data records starting in V7.1.  But they all DO
Mar 16, 2009   exist in DB2ACCTP dataset in DB2 V8.1 or later, so they
               are now restored in ASUMDB2P and TRNDDB2P summary code.
               The QBAC and QTXA fields are only populated in DB2ACCTP
               dataset if DB2 Accounting Trace Class 10 is enabled.
               Those variables have ALWAYS been kept in the DB2ACCTP
               dataset, so this only impacts users of MXG's summaries.
   Thanks to Giuseppe Giacomodonato, E.P.V. Technologies, ITALY.

Change 27.038  Change 26.183 SMF/Performance Sentry Release 3.1.4.
VMACNTSM       A major enhancement in NTSMF adds IDPROCES and SQLVERSN
Mar 15, 2009   to 72 SQLSERVER/MSSQL dataset, so that the individual
               SQL Server Process can be identified.  There were also
               37 new objects that are now supported by these new exit
                members:
                 exntdtos exntm8ca exntm8co exntm8dm exntm8dp exntm8lo
                 exntm8md exntm8me exntm8pa exntm8pc exntm8pi exntm8pr
                 exntm8se exntm8th exntmlca exntmlco exntmldm exntmldp
                 exntmllo exntmlmd exntmlme exntmlpa exntmlpc exntmlpi
                 exntmlpr exntmlse exntmlth exntqlbl exntqldf exntqlrp
                 exntqlwg exntrpsv exntsqbt exntsqdf exntsqpl exntsqrp
                 exntsqwg

Change 27.037  The example in the comments to execute did not have the
ADOC70PR         //SPIN DD UNIT=SYSDA,SPACE=CYL(1,1)
Mar 15, 2009   that is required by that example program.  It can be
               a temporary dataset, because this example builds a
               single output PDB library for analysis.  The SPIN DD
               is only used in the RMFINTRV program to create SPINRMFI,
               used to keep the last four hours of CPU busy for the old
               MXG MSU4HRAV variable when RMFINTRV is created on a daily
               basis.  MSU4HRAV is actually archaic, predating the IBM
               addition of their SMF70LAC, which should be used in place
               of MXG's MSU4HRAV.
   Thanks to MP Welch, SPRINT, USA.

Change 27.036 -Fields DBHCEUID, DBHCEUTX, DBHCEUWN are now kept in the
VMACTMDB       TMON for DB2 TMDBBF,TMDBBG,TMDBBH, and TMDBBI datasets,
Mar 14, 2009   and all three have any '00'X translated to blanks.
              -Variable HSIID now formatted with MGDB2II.
   Thanks to Ernie Amador, UC Davis Health System, USA.

Change 27.035  Previously, you could not leave SYSTEM blank in TIMETABL,
VMXGTIME       but with this revision, if ALL of your SYSTEMS are to be
Mar 11, 2009   changed the same way, you do NOT need to fill in SYSTEM,
               and the same for SYSPLEX.  If you have systems on
               different time zones, then each SYSTEM or SYSPLEX must be
               in the TIMETABLE (but only those that differ from base).
               So if you have 3 systems, 2 on local, and one on local+2,
               to convert all systems to local, only the local+2 system
               needs to be listed in TIMETABL.
   Thanks to Richard Schwartz, State Street Bank, USA.

Change 27.034  Support for EAV, Extended Address Volume, devices with
VMACDCOL       more than 65520 cylinders, introduced in z/OS 1.10, with
Mar 11, 2009   HUGE volume sizes, 236GB (256K Cylinders) first release.
               EAV devices are formally documented as 3390-A devices.
               Dataset DCOLVOLS: new variables:
                 DCVCYLMG='EAV*INDICATOR*FLAG'
                 DCVDPTYP='PHYSICAL*DEVICE*TYPE'
                 DCVEAVOL='EAV*INDICATOR*FLAG'
                 DCVTRALC='ALLOCATED*TRACK*MANAGED'
                 DCVTRFRG='FRAGMENTATION*INDEX*TRACK*MANAGED'
                 DCVTRFRX='FREE*EXTENTS*TRACK*MANAGED'
                 DCVTRFSP='FREESPACE*TRACK*MANAGED'
                 DCVTRLGE='LARGEST*EXTENT*TRACK*MANAGED'
                 DCVTRPCT='PCT FREESPACE*TRACK*MANAGED'
                 DCVTRVLC='TOTAL CAPACITY*TRACK*MANAGED'
                 The new Track-Managed Space or Base Addressing Space
                 is the first 65520 cylinders (54GB), and space above
                 that is the Extended Addressing Space.
                 Disk allocation in the EAS is in units of 21 cylinders.
                 Initial implementation is VSAM only, KSDS,RRDS,ESDS and
                 linear, so DB2 and zFS can use EAV volumes.
               Dataset DCOLSC: new variables:
                 DSCBAKUP='ACC*BACKUP*PARM*VALUE'
                 DSCBUSP ='ACC*BACKUP*PARM*SPECIFIED'
                 DSCDSSEP='DATASET*SEPARATE*PROFILE'
                 DSCFLAG3='DSC*FLAG*BYTE*3'
                 DSCFOSL ='OAM*SUBLEVEL*1'
                 DSCTIER ='MULTI-TIER*SG*VALUE'
                 DSCTIERS='MULTI-TIER*SG*SPECIFIED'
                 DSCVERSN='ACC*VERSION*PARM*VALUE'
                 DSCVERSP='ACC*VERSIONING*PARM*SPECIFIED'
               Dataset DCOLDC  new variables:
                 DDCFSDB ='SDB*IS*SPECIFIED?'
                 DDCFVORD='OVERRIDE*JCL*SPECIFIED?'
               Dataset DCOLBKUP new variables:
                 UBFLAG3='INFORMATION*FLAG*3'
                 UBNOSPH='SPHERE(NO)*PROCESSED?'
                 UBGVCN ='GENVSAMCOMPNAMES*PROCESSED?'
              -Variable UMNMIG, number of times migrated, is reserved in
               dataset DCOLMIGS.
              -Doc notes:
               Length of VOLUME RECORD structure still 112.
              -Type 1415 enhancement:
                -MXG Change 25.071 added variable EADSCBOK was decoded
                 from SMF14EADSCB, in the type 5 extended information
                 segment of the SMF type 14 and 15 records.  It means
                 that the user program provided a valid DCBE that has
                 EADSCB=OK.  It does NOT mean that OPEN needed this
                 option.
                 If this bit is zero, then the program did not specify
                 EADSCB=OK on the DCBE macro. IBM suggests upgrading
                 the program to handle 28-bit cylinders and coding
                 EADSCB=OK.  This is to help plan for when EAV might
                 support more types of data sets.
                -MXG Change 25.071 also decoded variable SMF14EAV from
                 SMF14EXCPBAM.  This is 'Y' if the user program issued
                 one or more instances of the EXCP or XDAP macro since
                 the BSAM, BPAM or QSAM DCB was opened.
              -SMF19 enhancements added by Change 26.071, documentation:
                These existing two-byte counters describe free space for
                the entire volume.  If the value exceeds the capacity of
                the counter, it will be set to the maximum of 65535. The
                correct values will always be in SMF19EVF and SMF19TMF.
                  MXG var  IBM name
                  NRDSCBS  SMF19NDS Number of DSCBs in VTOC
                  NRDSCB0  SMF19DSR Number of format 0 (unused) DSCBs
                           in VTOC
                  NRALTRKS SMF19NAT Number of unused alternate tracks
                  CYLAVAIL SMF19SPC Numbers of free complete cylinders
                  TRKAVAIL SMF19??? Number of free tracks
                  MAXCYLS  SMF19LEX Numbers of complete cylinders in
                                    largest free extent
                  MAXTRKS  SMF19??? Numbers of complete tracks in
                                    largest free extent
                  NRUNEXTS SMF19NUE Number of free extents
               New SMF19CYM variable will mean that the volume has
                cylinder-managed space.
               The following will be new four-byte unsigned counters at
                the end of the record:
                  SMF19SDS Number of DSCBs in VTOC
                  SMF19SL0 Number of format 0 (unused) DSCBs in VTOC
               The following 5 new counters apply to the whole volume.
                  SMF19SUC Number of free complete cylinders
                  SMF19SUT Number of additional free tracks
                  SMF19SNC Number of complete cylinders in largest free
                           extent
                  SMF19SNT Number of additional free tracks in largest
                           free extent
                  SMF19SNE Number of free extents
               The following five new counters apply only to the
               track-managed space on the volume. For volumes with no
               cylinder-managed space (SMF19CYM is off) these counters
               are the same as the previous five counters for the whole
               volume.
                  SMF19BUC Number of free complete cylinders
                  SMF19BUT Number of additional free tracks
                  SMF19BNC Number of complete cylinders in largest free
                           extent
                  SMF19BNT Number of additional free tracks in largest
                           free extent
                  SMF19BNE Number of free extents
               The following new fields provide volume size information
                  SMF19TRK Total number of tracks on the volume
                  SMF19TRM Total number of tracks in track-managed space
                         when SMF19CYM = '1' to the value of SMF19TRK
                         otherwise. When SMF19CYM ='1' this value is
                         also the address where cylinder-managed space
                         begins.

Change 27.033  IMS logs from different IMS Versions cannot be processed
JCLIMSL6       in a single job with JCLIMSL6 or using TYPEIMS7, because
Mar 11, 2009   the IMS version is not provided in the log records.  You
               must EDIT the MACRO _IMSVERS nn %  to tell MXG what IMS
               version's records are to be read.  The original way was
               to define _IMSVERS in your IMACKEEP member, but if you
               have two different versions, you needed to create two
               special tailoring PDS libraries, each with only the that
               IMACKEEP member, and then override the //SOURCLIB DD to
               place this tailoring library ahead of the "USERID" and
               "MXG" source libraries; do-able, but messy at the least.
               To eliminate all that stuff, the JCLIMSL6 example now
               has added, in //SYSIN stream for the TESTIMSB/TESTIMSA:
                  %LET MACKEEP=  MACRO _IMSVER 10.0 % ;
               which overrides the IMSVER definition in either your
               IMACKEEP member or in your IMACIMSA, so that you do NOT
               have to EDIT either of those members into your USERID
               to define the IMS Version.

               Note that this issue only applies to MXG JCLIMSL6 job
               that read the native IMS log records, TYPEIMSx.  It
               does not apply to these vendor products that create their
               own IMS data which contain the IMS version number and
               which can be concatenated or have multiple versions input
               in one job: TYPECIMS/TYPESVIE/TYPEITRF/TYPETIMS.
   Thanks to Herbert Sweeney, Verizon, USA.

Change 27.032  Support for CICS/TS 4.1.0 OPEN BETA.  INCOMPATIBLE as new
VMAC110        fields in CICSTRAN were INSERTed rather than APPENDed to
Nov 20, 2008   the SMF 110 Subtype 1 records:
Dec 17, 2008     BFDGSTCT='EXEC*CICS*BIF*DIGEST*COMMANDS'
Jan 12, 2009     BFTOTCT ='EXEC*CICS*BIF DEEDIT*BIF DIGEST*COMMANDS'
Mar 10, 2009     ECEFOPCT='EVENT*FILTER*OPERATIONS'
EXCICECC         ECEVNTCT='EVENTS*CAPTURED'
EXCICPGD         ECSIGECT='SIGNAL*EVENTS*CAPTURED'
EXCICEPG         EICTOTCT='EXEC*CICS*REQUESTS'
EXCICECG         MAXTTDCN='MAXTTDLY*WAIT FOR*T8 TCB*COUNT'
EXCICECR         MAXTTDTM='MAXTTDLY*WAIT FOR*T8 TCB*DURATION'
VMXGINIT         MLXSSCCN='XML*SYSTEM*SERVICES*CPU*DISPATCHES'
UTILEXCL         MLXSSCTM='XML*SYSTEM*SERVICES*CPU*DURATION'
IMACCICS         MLXSSTDL='TOTAL*DOCUMENT*LENGTH'
Mar 14, 2009     T8CPUTCN='T8CPUT*JVM*MULTITHREADED*COUNT'
                 T8CPUTTM='T8CPUT*JVM*MULTITHREAD*DURATION'
                 TIASKTCT='EXEC*CICS*ASKTIME*COMMANDS'
                 TITOTCT ='EXEC*CICS*ASK/CONVERT/FORMAT*TIME*CMDS'
                 WBATMSNM='ATOMSERVICE*RES DEF*NAME*USED'
                 WBPIPLNM='PIPELINE*RES DEF*NAME*USED'
                 WBPROGNM='PROGRAM NAME*FROM URIMAP*RES DEF'
                 WBSVCENM='WEBSERVICE*RES DEF*NAME*USED'
                 WBURIMNM='URIMAP*RES DEF*NAME*MAPPED'
                 WBSVOPNM='WEBSERVICE*OPERATION*NAME'
                 MLXMLTCT='EXEC*CICS*TRANSFORM*REQUESTS'
                 WSACBLCT='WSACONTEXT*BUILD*REQUESTS'
                 WSACGTCT='WSACONTEXT*GET*REQUESTS'
                 WSAEPCCT='WESAEPR*CREATE*REQUESTS'
                 WSATOTCT='TOTAL*WS-ADDRESSING*REQUESTS'
                 WBSFCRCT='SOAPFAULT*CREATE*REQUESTS'
                 WBSFTOCT='TOTAL*SOAPFAULT*REQUESTS'
                 WBISSFCT='INVOKE*XXXSERVICE*SOAP*FAULTS'
                 WBSREQBL='SOAP*REQUEST*BODY*LENGTH'
                 WBSRSPBL='SOAP*RESPONSE*BODY*LENGTH'
                 JVMTHDTM='JVMSERVER*THREAD*WAIT*DURATION'
                 JVMTHDCN='JVMSERVER*THREAD*WAIT*COUNT'
                 WMQASRTM='WEBSPHERE*MQ*API*CPU SRB*DURATION'
                 WMQASRCN='WEBSPHERE*MQ*API*CPU SRB*COUNT'
              -Three new TCBs are added to the CICDS Dispatch Statistics
               and CICINTRV datasets, T8, EP, and TP, but only T8CPUT is
               contained in the CICSTRAN data at present.  And the TCB
               Numbers have changed, as shown in this table, but since
               the TCB 2-character name is used to identify the TCB,
               this (fortunately) caused no incompatibility in CICDS:
               See Change 27.200 for updated table.
              -New Pool added to STID=60, CICDSPOO for MAXTHRDS TCBs.
              -CICS Statistics STID=11, dataset CICXMR has new variables
                 XMRCHGAG XMRCHGDT XMRCHGUS XMRGRFRM XMRINSAG XMRINSDT
                 XMRINSUS
              -CICS Statistics STID=12, dataset CICXMC has new variables
                 XMCCHAGT XMCCHGTM XMCCHUSR XMCDEFSR XMCINAGT XMCINSTM
                 XMCINUSR
              -CICS Statistics STID=21, dataset CICVT, has new variables
                 A03LUHWM A03LUNUM A03PSEC  A03PSIC A03PSNC
                 A03PSOC  A03PSUC  A03PSTYP A03PSDIN
              -CICS Statistics STID=42, dataset CICTQR new variables
                 TQRCHGDT TQRGRFRM TQRCHGAG TQRCHGUS TQRINSAG TQRINSDT
                 TQRINSUS
              -CICS Statistics STID=52, dataset CICCONSR new variables
                 A14CHGDT A14GRFRM A14CHGAG A14CHGUS A14INSAG A14INSDT
                 A14INSUS
              -CICS Statistics STID=67, dataset CICFCR new variables
                 A17CHGAG A17CHGDT A17CHGUS A17GRFRM A17INSAG A17INSDT
                 A17INSUS
              -CICS Statistics STID=74, dataset CICIMQ new variables
                 CMQBUFMH CMQCB    CMQCHGAG CMQCHGDT CMQCHGUS CMQCRTMH
                 CMQCRTNE CMQCTL   CMQDLTMH CMQDLTMP CMQGRFRM CMQINQMP
                 CMQINSAG CMQINSDT CMQINSUS CMQMHBUF CMQRESYN CMQSETMP
                 CMQSTAT  CMQSUB CMQSUBRQ
              -CICS Statistics STID=102, dataset CICDB2RE new variables
                 D2RCHGAG D2RCHGDT D2RCHGUS D2RGRFRM D2RINSAG D2RINSDT
                 D2RINSUS
              -CICS Statistics STID=104, dataset CICWBR new variables
                 WBRCHGAG WBRCHGDT WBRCHGUS WBRGRFRM WBRINSAG WBRINSDT
                 WBRINSUS WBRNAME WBRUSAGE
              -CICS Statistics STID=105, dataset CICPIR new variables
                 PIRCHGAG PIRCHGDT PIRCHGUS PIRGRFRM PIRINSAG PIRINSDT
                 PIRINSUS
              -CICS Statistics STID=106, dataset CICPIW new variables
                 PIWCHGAG PIWCHGDT PIWCHGUS PIWGRFRM PIWINSAG PIWINSDT
                 PIWINSUS
              -CICS Statistics STID=108, dataset CICTCPIP new variables
                 SORCHGAG SORCHGDT SORCHGUS SORGRFRM SORHOST SORINSAG
                 SORINSDT SORINSUS SORIPADR SORIPFAM SORMXDAT SORTRNID
                 SORURM
              -CICS Statistics STID=109, dataset CICISR new variables
                 ISRCHGAG ISRCHGDT ISRCHGUS ISRFSICQ ISRFSICR ISRFSICS
                 ISRGRFRM ISRINSAG ISRINSDT ISRINSUS ISRIPADR ISRIPFAM
                 ISRLAUTH ISRRMTST ISRTRBYR ISRTRBYS ISRTRREQ
              -CICS Statistics STID=111, dataset CICTCPIP new variables
                 IIRCHGAG IIRCHGDT IIRCHGUS IIRGRFRM IIRINSAG IIRINSDT
                 IIRINSUS
              -CICS Statistics STID=112, dataset CICDHD new variables
                 DHDCHGAG DHDCHGDT DHDCHGUS DHDGRFRM DHDINSAG DHDINSDT
                 DHDINSUS
              -CICS Statistics STID=114, dataset CICTCPEJ new variables
                 EJRASSRT EJRCHGAG EJRCHGDT EJRCHGUS EJRGRFRM EJRINSAG
                 EJRINSDT EJRINSUS EJRIPADR EJRIPFAM
              -New CICS stats STID=120, new dataset
                 CICPGD='PROGRAM DEF (RESOURCE) ID'
                 new variables:
                 PGDAPI   PGDCHGAG PGDCHGDT PGDCHGUS PGDCONCU PGDDATLO
                 PGDDYNAM PGDEXECK PGDEXEKY PGDGRFRM PGDINSAG PGDINSDT
                 PGDINSUS PGDJVM   PGDJVMPR PGDLANG  PGDLANGD PGDPGMTY
                 PGDREMOT PGDRMTPG PGDRMTSY PGDRMTTR PGDRUNEN
              -New CICS stats STID=140, new dataset
                 CICECG='EVENTBINDINGS (GLOBAL) ID'
                 new variables:
                 ECGFLTOP ECGCAPTU ECGDISAB
              -New CICS stats STID=142, new dataset
                 CICEPG='EVENTPROCESS (GLOBAL) ID'
                 new variables:
                 EPGCUEVQ EPGCUTRQ EPGDSPAT EPGDSPCU EPGDSPPK EPGEVTCU
                 EPGEVTTR EPGEVTTS EPGEVTWM EPGNOREV EPGPKEVQ EPGPKTRQ
                 EPGPRIEV EPGPUTEV EPGSYNEV EPGTRDEV EPGTRNEV
               -New STIDs 141 and 143 are structurally supported, but
                only the _CICCMN variables are output, awaiting test
                data records to validate.
                  STID   DATASET   DESCRIPTION
                  141    CICECR    EVENTBINDINGS (RESOURCE) ID
                  143    CICECC    CAPTURESPEC RESOURCE ID
               -See Change 27.200: MXG 27.08 now supports STID 141,143.
              -CICS/TS 4.1 is still a BETA release, so IBM may choose to
               add, or remove, any of these fields in their GA release.
              -See Change 27.200 for Support for CICS/TS 4.1.0 GA.
              -Old notes "ADDED IN CICS 4.1.0" were not CICS/TS 4.1, but
               are now   "ADDED IN CICS/ESA 4.1.0", from 1994!

Change 27.031  A set of sample reports for some basic TCP/IP analysis
ANAL119        from IBM type 119 records (MXG Member TYPE119) for the
May  7, 2000   analysis of FTP and Telnet usage, very similar to the
               ANALTCP reports from SMF 118 records (which was also
               contributed by Steve, by Change 18.091 in April, 2000!
               Excellent comments in the ANAL119 member document these
               sample reports, but don't contact Steve for help; any
               problems should be directed to support@mxg.com.
   Thanks to Steve Clark, DHL, USA.
   Thanks to R. Wells, American General Finance, USA.

Change 27.030 -Only the last MDISK segment in XAMDEV records was output
EXXAMDEM       in the XAMDEV dataset, but there can be many MDISKs, so
IMACXAM        the new XAMDMINI dataset is created, outputting all MDISK
VMACXAM        segments, containing these MDISK-specific variables:
VMXGINIT          DNMDISKS MDSKADDR MDSKDIST MDSKECYL MDSKOWNR MDSKSAMP
Mar  6, 2009      MDSKSCYL MDSKWRIT MDSKZERO UDSKDIST UDSKSAMP UDSKUSER
Mar 17, 2009      UDSKZERO USSKWRIT
               and ALL those variables were removed from XAMDEV dataset.
              -The IODCAD logic had a typo, testing for 3390 instead of
               for 3990, so the 3990 variables in XAMDEV dataset were
               always missing values.
              -These MTRPAG variables were kept in XAMSYS but not in the
               dataset XAMDEV:
                  PGS1     PGS2     PGS3     CALCYLPA CALCYLSP CALCYLPR
                  CALEXTPG CALEXTPS CALEXTPP
   Thanks to Douglas C. Walter, Citigroup, USA.

Change 27.029  Support for BMC's Ultra Op Product's User SMF record
EXULOPIN       creates new dataset ULTRAOP.
FORMATS
IMACULOP
TYPEULOP
TYPSULOP
VMACULOP
VMXGINIT
Mar  4, 2009
   Thanks to Tony Curry, BMC, USA.

Change 27.028 -Support for NMON Nigel's Monitor for AIX/Linux under zVM,
EXNMONPO       record type 'VM' adds 37 new variables to the NMONINTV
IHDRNMON       Interval dataset.  The descriptor record for 'VM' is not
IMACNMON       consistent; sometimes its second word is the expected
VMACNMON       Tnnnn snapshot value, sometimes that value is missing.
VMXGINIT               DIRTY='NR*DIRTY'
Mar 13, 2009           WRITEBACK='NR*WRITEBACK'
                       UNSTABLE='NR*UNSTABLE'
                       PAGETABLEPAGES='NR*PAGE*TABLE*PAGES'
                       MAPPED='NR*MAPPED'
                       SLAB='NR*SLAB'
                       PGPGIN='PGPGIN'
                       PSPGOUT='PGPGOUT'
                       PSWPIN='PSWPIN'
                       PSWPOUT='PSWPOUT'
                       PGFREE='PGFREE'
                       PGACTIVATE='PGACTIVATE'
                       PGDEACTIVATE='PGDEACTIVATE'
                       PGFAULT='PGFAULT'
                       PGMAJFAULT='PJMAJFAULT'
                       PGINODESTEAL='PGINODESTEAL'
                       SLABSCANNED='SLABS*SCANNED'
                       KSWAPDSTEAL='KSWAPD*STEAL'
                       KSWAPINODESTEAL='KSWAPD*INODESTEAL'
                       PAGEOUTRUN='PAGEOUTRUN'
                       ALLOCSTALL='ALLOCSTALL'
                       PGROTATED='PGROTATED'
                       PGALLOCHIGH='PGALLOC*HIGH'
                       PGALLOCNORM='PGALLOC*NORMAL'
                       PGALOCDMA='PGALLOC*DMA'
                       PGREFILLHIGH='PGSTEAL*HIGH'
                       PGREFILLNORM='PGSTEAL*NORMAL'
                       PGREFILLDMA='PGREFILL*DMA'
                       PGSTEALHIGH='PGSTEAL*HIGH'
                       PGSTEALNORM='PGSTEAL*NORMAL'
                       PGSTEALDMA='PGSTEAL*DMA'
                       PGSCANKSWAPDHIGH='PGSCAN*KSWAPD*HIGH'
                       PGSCANKSWAPDNORM='PGSCAN*KSWAPD*NORMAL'
                       PGSCANKSWPADDMA='PGSCAN*KSWAPD*DMA'
                       PGSCANDIRECTHIGH='PGSCAN*DIRECT*HIGH'
                       PGSCANDIRECTNORM='PGSCAN*DIRECT*NORMAL'
                       PGSCANDIRECTDMA='PGSCAN*DIRECT*DMA'
              -Support for record type 'POOLS' creates new NMONPOOL
               dataset with these variables:
                 ENTITLED='ENTITLED'
                 ENTITLED_POOL_CAPACITY='ENTITLED*POOL*CAPACITY'
                 MAX_POOL_CAPACITY='MAX*POOL*CAPACITY'
                 POOL_BUSY_TIME='POOL*BUSY*TIME'
                 POOL_ID='POOL*ID'
                 POOL_MAX_TIME='POOL*MAX*TIME'
                 SHCPUS_IN_SYS='SHCPUS*IN*SYS'
                 SHCPU_BUSY_TIME='SHCPU*BUSY*TIME'
                 SHCPU_TOT_TIME='SHCPU*TOT*TIME'
              -New IHDRNMON "NMON infile" exit is taken after RECTYPE
               has been INPUT so that unwanted record types can be
               deleted prior to processing.  But use carefully; if you
               delete the wrong records, you could end up with nothing
               output to the NMON datasets. And the &IHDRNMOH macro
               variable is also defined so the exit can be defined in
               your //SYSIN with %LET IHDRNMOH= %quote ( your code ) ;
              -Erratic JFSFILE records with 38 instead of 36 fields have
               been observed, but that is a problem with NMON, not MXG.
   Thanks to Long Nguyen, DHS, USA.
   Thanks to Marvin Einarson, DHS, USA.
   Thanks to Steven Olmstead, Northwestern Mutual, USA.

Change 27.027  TYPE42DS variables RESPTIME, MAXRSPTM and MAXSRVTM are in
VMAC42         milliseconds, but MAXRSPTM incorrectly had TIME12.2.  Now
Mar  2, 2009   all have 6.3 format and milliseconds in their label.
   Thanks to Karl Lasecki, Chemical Abstracts Service, USA.

Change 27.026  Variable SMF88LTD='TIMESTAMP WHEN*SMF INTERVAL*EXPIRED'
VMAC88         was usually wrong, as the GMT Offset was repetitively
Mar  2, 2009   applied.  Also, the GMT offset was never applied if the
               GMT Offset was positive.

Change 27.025  Reserved Change.
Mar  2, 2009

Change 27.024  If only PMACC04 was requested, a NOT SORTED ERROR for the
ANALDB2R       DB2SUMRY dataset occurred. Some additional corrections to
Feb 28, 2009   PMACC01/PMACC02 (short reports had LOCK suspends reported
               under the PREFETCH column, and WRITE IMMEDIATES under the
               LOCKS column, and time formats match DB2PM (TIME12.6).
   Thanks to Paul Volpi, UHC, USA.

Change 27.023  Variables S17FBKNM S17FEXNM and S17FMFNM are now KEPT in
VMAC117        dataset S117NODE so that it can be combined with S117FLOW
Feb 27, 2009   dataset so the Execution Group and Flowname to which the
               Node belongs can be known.  Those variables are also
               added to the _B117NOD and _B117FLO By List macros.
   Thanks to Trevor Holland, ANZ, AUSTRALIA

Change 27.022  NDM Record 'IK' is now supported, output in NDMDT dataset
VMACNDM        not because I have a DSECT for that NDM subtype, but
Feb 26, 2009   because it appears to have the same structure.
   Thanks to Herbert Sweeney, Verizon, USA.

Change 27.021  QPACxxxx flag variables set from QPACFLGS were not reset,
VMACDB2        so if there was more than one NRQPAC segment in a record,
Feb 25, 2009   the values could have been wrong.  These eight variables
                 QPACDBRM QPACPACK QPACCLS8 QPACCRNT QPACINSP QPACCLS7
                 QPACPAC
               could have been carried forward.
   Thanks to Giuseppe Giacomodonato, E.P.V. Technologies, ITALY.

Change 27.020  WEEK70PR failed with VARIABLE INTERVAL NOT FOUND because
WEEK70PR       - that variable has not existed in ASUM70PR in years, and
Feb 25, 2009   - WEEK70PR was way out of date, only supporting 16 LPARs.
               This change recreates the old INTERVAL (interval count)
               and was enhanced to support all 60 possible LPARS.
   Thanks to Atle Mjelde, Ergo Group, NORWAY.

Change 27.019  CICS User fields USECOPID/USECUSER/USECBRAN/APPCEMP1
IMACAAAA       are supported in listed new IMACICxx CICS exit members.
IMACICUA          IMACICUA - USECOPID
IMACICUB          IMACICUB - USECUSER
IMACICUC          IMACICUC - USECBRAN
IMACICUD          IMACICUD - APPCEMP1
UTILEXCL
VMAC110
Feb 24, 2009

Change 27.018  DB2 V9 variables added by IBM or overlooked now input.
VMACDB2        New variables in DB2STAT0/DB2STATS from QWSD segment:
Feb 23, 2009     QWSDARTH='ROLLUPS*DUE TO*ROLLUP*THRESH*EXCEEDED'
                 QWSDARSG='ROLLUPS*DUE TO*STORAGE*THRESH*EXCEEDED'
                 QWSDARST='ROLLUPS*DUE TO*STALENESS*THRESH*EXCEDED'
                 QWSDCDTB='NOT ROLLUP*DUE TO*KEY FIELDS*NULL'
               New variable in DB2STAT0/DB2STATS from QVLS segment:
                 QVLSL254='CONTENTIONS*LATCH CLASS*254'
               New variables in DB2STAT0/DB2STATS from QVAS segment:
                 QVASCBOS='SUCCEED*SYSEVENT*BOOSTS*THREAD-WAIT'
                 QVASCBOF='FAILED*SYSEVENT*BOOSTS*THREAD-WAIT'
                 QVASMBOS='SUCCEED*SYSEVENT*BOOSTS*THREAD-STORE'
                 QVASMBOF='FAILED*SYSEVENT*BOOSTS*THREAD-STORE'
               New variables in DB2STAT0/DB2STATS from QSST segment:
                 QSSTGETS='QSST_SGETM*STACK*REQUEST*GETMAINS'
                 QSSTGETR='QSST_SGETR*GET*REQUESTS'
                 QSSTGETE='QSST_SGETEXT*STACK*EXTENSIONS'
                 QSSTFRES='QSST_SFREEM*SEGMENT*FREEMAIN*REQUESTS'
                 QSSTFRER='QSST_SFREER*REQUESTS*TO FREE A*SEGMENT'
               New variables in DB2STAT0/DB2STATS from QWOS segment:
                 QWOSLUIC='UNREFERNCED*INVERVAL*COUNT'
                 QWOSFLG ='STATUS*FLAG FOR*RMF-API (S)'
                 QWOSRCDE='RETURN*CODE FROM*RMF-API (S)'
                 QWOSRSNC='REASON*CODE FROM*RMF-API (S)'
               New variables in DB2STAT1/DB2STATS from QXST segment:
                 QXCRESEQ QXALTSEQ QXDROSEQ QXPRRESI QXALTVW
                 QXALTCTX QXALTJR  QXCRCTX  QXCRROL  QXDRPCTX QXDRPROL
                 QXMERGE  QXRNIX   QXSTXMLV QXTRTBL
                 These variables were not INPUT in the DB2STAT1 record,
                 but were deaccumulated; all were labeled and did not
                 raise an uninit warning because they were INPUT in the
                 DB2ACCT record.
               New variables in DB2ACCT           from QXST segment:
                 QXALTCTX QXALTJR  QXCRCTX  QXCRROL  QXDRPCTX QXDRPROL
                 QXMERGE  QXRNIX   QXSTXMLV QXTRTBL
                 These variables were INPUT but not kept.
               Variable QBSTLPL in DB2ACCT was not input because its
               conditional INPUT should have been at 276 vice 280.
   Thanks to Steve Wood, DST Systems, USA.
   Thanks to Terry L. Berman, DST Systems, USA.

Change 27.017  Undecoded TOKDANAM non-tokens NOHOME/NOPROGRAM now set
EXTY80TK       their segment-specific variables TOKHOME/TOKPROG to value
IMAC80A        'NOHOME' or 'NOPROGRAM', and logic was added to print
VMAC80A        the first ten instances of undecoded TOKDANAM values with
VMXGINIT         ***MXGNEWDATA: messages and a hex dump on the SAS log.
Feb 20, 2009  -NOTHREADMAX and NOSHMMEMAX non-tokens create new variable
Mar 13, 2009   TOKNOTHR and TOKNOSHM with those text values, and real
               token LDAPHOST decodes and populates new var TOKLDHST.
              -However, it was discovered that there can be multiple
               instances of the (301) segment, with different TOKSUBSY
               values, so these "TOKDANAM-specific" variables
                  TOKASIZM TOKDCE   TOKGID   TOKHOME  TOKLDAP
                  TOKLDHST TOKNOSHM TOKNOTHR TOKPROG  TOKUID
               cannot be kept in the TYPE80nn event datasets, since only
               the last value would be output.  Instead, new TYPE80TK
               dataset is now created, with both the TOKDANAM-specific
               variables, and TOKSUBSY, TOKDANAM, TOKCHARV and TOKNUMRV
               replications to give you easier reporting choices.
   Thanks to Bill Arrowsmith, EuroClear, BELGIUM.
   Thanks to Maurice Peek, EuroClear, BELGIUM.

Change 27.016 -SMF 42 Subtype 25 (Rename Member), NEWMEMNM/OLDMEMNM were
VMAC42         misaligned, because SMF42PF1 plus 3 reserved bytes only
Feb 20, 2009   exist in the subtype 24 record.
              -The three member name fields NEWMEMNM/OLDMEMNM/AORMEMNM
               in subtypes 24 and 25 are theoretically variable length
               fields, so they were INPUT x $VARYING8. SMF42PML/QOL, but
               those lengths are always 8 bytes, so now $EBCDIC8. is
               used, which also makes them correct under ASCII SAS.
              -The subtype 25 record has a minor error: SMF42NT/NRTRIPLT
               the number of triplets, is 3, but 4 triplets are present.
               The fourth points to ICHRUTKN, so MXG tests the offsets
               rather than trusting the NRTRIPLT.
   Thanks to David Kaplan, DTCC, USA.

Change 27.015  Support for processing DB2 GTF records was revised.
UDB2GTF       -The SORT FIELDS= statement in UDB2GTF must be changed to
VMACSMF        only sort on the first field; without this change, there
Feb 20, 2009   was no error, but the output records were incorrect.
              -The _GTFDB2 macro now sets ID=101 if IFCID=239 is found.
              -The massive number of DEBUG statements are no longer
               printed on the log, unless you choose to enable debugging
               in the UDB2GTF program.
   Thanks to Tony Curry, BMC, USA.
   Thanks to Steve Wood, DST Systems, Inc., USA.

Change 27.014 -SAS option TRANSCODE=NO is now set for all $HEX variables
MANY           so they are NOT translated from EBCDIC to ASCII or vice
FORMATS        versa.  Normally when a SAS dataset is moved between
UTILCVRT       different platforms (XPORT,CIMPORT,etc.), all character
UTILXRF1       variables are translated, but this is most unwelcome for
VMXGINIT       MXG variables that contain $HEX values (CPUTYPE changed
VMXGSUM        from '2086'x to '8786'x).  The TRANSCODE attribute is set
Mar  8, 2009   in SAS V9 with syntax "ATTRIB var1 var2 TRANSCODE=NO;"
May  4, 2009   but since it does not exist under SAS V8, and there still
               are MXG sites limping along on archaic SAS V8, two new
               GLOBALed macro variables, &MXGNOTRA and &MXGNOTRB, are
               defined in VMXGINIT by this macro logic:
                  %IF &SASVER GE 9 %THEN %DO;
                    %LET MXGNOTRA= ATTRIB ;
                    %LET MXGNOTRB= TRANSCODE=NO;
                  %END;
                  %ELSE %DO;
                    %LET MXGNOTRA= * ;
                    %LET MXGNOTRB=   ;
                  %END;
               and then this statement was added in each of the 300+
               members that create $HEX variables
                  &MXGNOTRA  var1 var2 var3  &MXGNOTRB  ;
               so the TRANSCODE=NO attribute will be set under SAS V9,
               but under SAS V8, that statement becomes only a comment.
              -In addition to variables formatted with the $HEX format,
               there are character variables that contain hex values but
               they are formatted with MXG-created $MGxxxxx formats. The
               FORMATS member was read to select those format names, and
               lookup format $MGNOTRA was created to validate that these
               "$MG-HEX" variables also have the TRANSCODE=NO specified.
               New QA tests read FORMATS to discover any new "$MG-HEX"
               formats, and update the $MXNOTRA table when new formats
               are found (if I forget when creating a new one!).
              -In March, 2009, SAS V9 did not pass the ATTRIB TRANSCODE
               into a dataset created by a SAS VIEW, but in May, 2009,
               that was corrected by HotFix E9BC81 SAS Note SN-035112,
               and this change text was revised.
              -However, it was also discovered that the dataset created
               by the PROC CONTENTS OUT= operand does NOT contain the
               TRANSCODE attribute; that OUT= dataset is a major input
               for MXG's QA testing of variables.  While the printed
               output of PROC CONTENTS does show the TRANSCODE
               attribute, it is ONLY printed for datasets that have a
               variable with TRANSCODE=NO specified.  Fortunately, the
               SASHELP.VCOLUMN dataset does contain the TRANSCODE
               attribute for every variable, so UTILXRF1 was revised to
               use that dataset to add TRANSCODE to the OUT= XREFDATA
               dataset used for QA analysis.  SAS Development has
               indicated their intention to correct the omission in PROC
               CONTENTS OUT= in a future release.
              -UTILCVRT can be used if the dataset was already moved to
               the new platform, to "un-translate" the $HEX variables;
               it's comments were updated.
              -And, for WPS, the VMXGINIT default sets MXGVIEW=NO.
              -New $MGNOTRA is created in FORMATS by reading the FORMATS
               member to identify MXG-created formats that have HEX data
               values, and then it is used in the QA tests to ensure all
               of those variables do indeed have TRANSCODE=NO specified.
              -Because this change can be recognized by the existence of
               &MXGNOTRA in each updated member, I did NOT change the
               "LAST UPDATED:" text at the top of the 300+ members that
               created a total of 9831 $HEX-containing variables.
               I also did not add the TRANSCODE attribute to the DOCVER
               nor to the ADOCxxxx descriptions, as there's no room for
               a new attribute, and because a PROC CONTENTS will show it
               if you really need to confirm its value for a dataset.

Change 27.013  TMON for MQ Series INPUT STATEMENT EXCEEDED RECORD for QM
VMACTMMQ       subtype; MXG expected 18 reserved bytes that don't exist.
Feb 18, 2009
   Thanks to Paul Volpi, UHC, USA.

Change 27.012  This enhancement to select DB2 reports by DATABASE set a
ANALDB2R       new MXG world record, with fifteen iterations needed to
VFMT102        resolve all possible permutations discovered in testing!
Feb 17, 2009   Selection by DATABASE uses the HEX values of OBID/DBID to
Feb 21, 2009   select the desired observations from DB2 datasets, but
               if IFCID=105 and 107 were traced, they are used to map
               hex values to text names.  If you did not trace 105/107s,
               or no 105/107 for the OBID/DBID being reported was found,
               the reports will print the HEX value instead of the name.
               New documentation in comments for the AUDIT= subparameter
               list the IFCIDs needed for full AUDIT report generation,
               as well as those that do contain the Database ID field.
              -If only PMACC02 was specified, and if both ASUMDB2A and
               DB2ACCCT datasets exist in the DDNAME/LIBREF pointed to
               by the PDB=xxx operand of %ANALDB2R, and if USEACCT=YES
               was specified, ASUMDB2A was always used when DB2ACCT
               should have been used.
   Thanks to Scott Swindling, Nordstrom, USA, who tested each iteration!

Change 27.011  Support for CTG V7.2 (INCOMPATIBLE, new CTG_RECID=7 made
VMAC111        INPUT STATEMENT EXCEEDED RECORD LENGTH error). That new
Feb 19, 2009   subtype is not documented in SC34-6961-00, but protection
               for any new subtype was added, with a NOTE that new data
               exists in the future.
              -CTG_RECID=3 for GD (Gateway Daemon) added new variables:
                 CTGDFSRV='DEFAULT*SERVER*FOR*GATEWAY'
                 CTGHOSNM='HOSTNAME*OF GATEWAY*COMPUTER'
                 CTGIHAEX='CICS*REQUEST*EXIT*CALLS'
                 CTGISYNC='SYNCONRETURN*FAILS'
                 CTGLHAEX='CICS*REQUEST*EXIT*CALLS'
                 CTGLSYNC='SYNCONRETURN*FAILS'
   Thanks to Renato Guerra, SGS Banco Popolare di Verona, ITALY.
   Thanks to Davide Marone, SGS Banco Popolare di Verona, ITALY.

Change 27.010  Variable SMF70CIX is now output in PDB.TYPE70PR dataset,
VMAC7072       as it is the CPU Pool Number.  While it has been INPUT
Feb 16, 2009   for years, it was only used as an index to find out the
               engine type of each LCPUADDR, to store into SMF70CIN; it
               was Martin's SlideShow that educated me to the fact that
               it is also the CPU pool number, and hence worth keeping.
              http://www.slideshare.net/MartinPacker/much-ado-about-cpu
   Thanks to Martin Packer, IBM, EUROPE.

Change 27.009 -SYSLOG MSGID IEF233D was captured by ASMTAPEE in ML-43,
VMACTMNT       last summer, but VMACTMNT was not updated to decode it,
Feb 13, 2009   causing "UNEXPECTED" messages to be printed on the log.
               That MSGID is now output by VMACTMNT in TYPESYMT dataset.
               Support for IEF233D in ASUMTAPE was already in place.
              -SYSLOG messages that do NOT contain DSNAME are created if
               your site has NOT specified  COM='MONITOR DSNAME' in your
               SYS1.PARMLIB(COMMNDxx).  This causes either blank DSNAMEs
               in PDB.TYPESYMT and PDB.ASUMTAPE, or, it caused DSNAME to
               have "MEDIAn", because the SYSLOG MSGID IEC705I was
               incorrectly parsed when DSNAME was not populated.  The
               location of the DSNAME in IEC705I is variable, so MXG's
               parsing was revised to only INPUT the SYSLDSN if the text
               ends in 'MEDIAx'. A new warning message is printed if the
               last field is not MEDIAx, and a warning if the sss field
               is blank, so I can validate my parsing of that instance.
   Thanks to Yves Cinq-Mars, IBM Global Services, CANADA.

Change 27.008  z/VM 5.2 MONWRITE BROKEN CONTROL RECORD ERROR, because
VMACVMXA       MXG unconditionally INPUT variable PFXCPUTY in 4 subtypes
Feb 13, 2009   but the other 8 subtypes input that field conditionally.
               These four subtypes are now also conditionally INPUT
               (0.1 SYTSYP, 3.2 STORSP, 3.20 STOSXP, 5.3 PRCPRP) based
               on the length of the segment.
   Thanks to Tom Draeger, Aurora, USA.

Change 27.007  Support for IBM's ENQ/DEQ Monitor was initially added in
FORMATS        Change 26.323, but several fields were not documented by
VMACEMQM       IBM in the DSECT; the ENQFLAG1/ENQFLAG2 are now decoded,
Feb 11, 2009   and the description of ATTR1 bit settings were deduced.

Change 27.006  Several logrec character variables were length $200 due
VMACEREP       to that pre-SAS-V8-length-limit, or were input $CHAR200
Feb 14, 2009   but then reduced because of shorter $HEX format length.
               These revisions were made:
               New SDWA     $400. $HEX800.  Removed: SDWA1, SDWA1A.
               New SDWARC1  $456. $HEX912.  Removed: SDWARC1A,1B
               New SDWARC2   $16.  $HEX32.
               New SDWARC3   $32.  $HEX64.
               New SDWARC4  $360. $HEX720.
               New SDWAVRA  $255  $HEX510.  Removed: SDWAVRA1.
               New LXC2SNI  $228. $HEX456.  Removed: LXC2SNI1,2
               Old SLHIRB increased to $HEX128.
   Thanks to Ken W. Kasten, Embarq, USA.

Change 27.005 -The _RPDBID macro previously printed PROC FREQ tabulation
BUIL3001       of SMF Record IDs that were read by BUILDPDB (by SYSTEM).
BUILD001       Now, it prints ID+SUBTYPE with the new IDANDSUB variable,
BUILDPD3       e.g., IDANDSUB=110.002 for the ID=110 SUBTYPE=2 records.
BUILDPDB       Additionally, the output of the PROC FREQ is now created
MONTHASC       in the new PDB.SMFRECNT dataset.
MONTHBL3      -The WEEKly and MONTHly PDB build programs were updated to
MONTHBLD       create the SMFRECNT there as well, sorted BY ZDATE.
MONTHBLS      -All of the WEEK/MONTH programs are enhanced so that they
MONTHDSK       will NOT fail when an expected dataset does NOT exist.
MONTHWEK       This means you can implement a new BUILDPDB on any day of
WEEKBL3        the week (previously, the only safe day was to implement
WEEKBL3D       on the first day of your week, so all seven day-of-week
WEEKBL3T       PDBs had the new dataset for the new WEEKly job.), and on
WEEKBLD        any day of the month for the MONTHly job.  Now, by using
VMACID         SAS OPTIONS NODSNFERR NOVNFERR instead of just NODSNFERR,
Feb 12, 2009   the DATASET-NOT-FOUND is protected by NODSNFERR, and the
               BY-VARIABLE-NOT-FOUND is protected by NOVNFERR.
                 Well, almost:  A WARNING: BY VARIABLE NOT FOUND will be
                 printed on the SAS log, but that warning does not set
                 _ERROR_, so there is NO return/condition code created,
                 which is exactly what is desired for this condition.
                 However, it is inconsistent for a WARNING message to
                 not set a condition code, but since we do NOT want that
                 here, SAS Technical Support has said the "WARNING" text
                 will be changed to "NOTE" in the future.
   Thanks to Diane Farias, IBM Global Services, CANADA

Change 27.004  Support for SMF 113 Hardware Instrumentation Services HIS
EXTY113        record, documented in SA23-2260,SA23-2261 and added by
FORMATS        APAR OA25755 (and possibly other APARs), creates TYPE113
IMAC113        dataset with six Basic, six Program State, sixteen Crypto
TYPE113        and twenty-four Extended counters of Level One, Two and
TYPS113        Three Data and Instruction Cache activity counts for each
VMAC113        CPU engine.  The counts are accumulated, so the TYPS113
VMXGINIT       member, which does the de-accumulation in the _S113 SORT
Feb  8, 2009   macro, must be used, or with BUILDPDB, you must add the
               _S113 product sort macro in your EXPDBOUT member.
   Thanks to IBM z/OS Developer Support Program for providing SMF data!!

Change 27.003  Support for Tivoli Automation SMF 114 record.
EXTY114        Creates new TYPE114 dataset from subtype 1 record.
FORMATS        This was originally completed on Jan 11, 2009, as Change
IMAC114        26.298, but I accidentally re-used/overwrote that change
TYPE114        text.  The was no change to the code delivered in 26.26.
TYPS114
VMAC114
VMXGINIT
Jan 11, 2009
Feb  9, 2009
   Thanks to Siegfried Trantes, Gothaer Systems GmbH, GERMANY.

Change 27.002 -Original MXG 26.26 ONLY.  Corrected in Feb 12 Version.
READDB2       -READDB2 in MXG 26.26: might not create all datasets that
Feb 11, 2009   you requested, and could impact ANALDB2R(PDB=SMF,...) as
Feb 16, 2009   the READDB2 member is invoked by ANALDB2R to read SMF.
Feb 17, 2009   Last minute changes for IFCID=255 and DB2STAT4 were made
Feb 20, 2009   but validation focused only on that correction.
              -If VMXGTIME was being used, when READDB2 tried to resolve
               a local macro variable it got a bad value placed in a
               local macro variable by VMXGTIME.  This generated a
               WARNING: MACRO VARIABLE NOT RESOLVED.  The macro variable
               name was changed in READDB2 to prevent the conflict.
              -The Second READDB2 in the re-dated MXG 26.26 could fail
               if the DB2= operand was used to select DB2 SubSystems.
               Fortunately (for me!), this caused an actual 180 ERROR
               condition before any data was read, so it was NOT like
               the first (insidious) error that you could overlook until
               you tried to read a non-created DB2 dataset, thus this
               error did not require another refresh!  But the revision
               revealed an unrelated/unreported inconsistency with the
               documentation, if you had multiple selection criteria,
               like %READDB2(DB2=DB2X DB2Y, PLAN=PLANA PLANB).  Those
               criteria were ORed, so all PLANs from DB2X or DB2Y were
               selected, plus all subsystems with PLANA or PLANB were
               also selected.  The logic is now revised to AND all of
               the selection criteria, so now only PLANA or PLANB from
               only either DB2X or DB2Y would be selected.
               And, a cosmetic change was made so that the selection
               criteria are printed on the SAS log, so you can see what
               was requested.
              -A pair of additional errors were also corrected.  Only
               DB2ACCTP was created from ACCOUNT if IFCIDS=ALL was used,
               and calling READDB2 from ANALDB2R could cause this error:
                 DATA=ZZDB2PST;    %
                 ERROR: OLD-STYLE MACRO NAME % MUST CONTAIN ONLY
                        LETTERS, DIGITS, AND UNDERSCORES.
              -May 20: Writing SMFOUT on PC's &RECFM corrected.
              -May 24: The T102S225, DB2STAT4, IFCID=225 building was
                       significantly redesigned in Change 27.097.
   Thanks to Raff X. Rushton, Kaiser Foundation Hospitals, USA.
   Thanks to Scott Chapman, American Electric Power, USA.
   Thanks to Tony Curry, BMC, USA.

CRITICAL
Change 27.001  MXG 26.26 ONLY: PDB.RMFINTRV negative PCTCPUBY: HiperDisp
VMXGRMFI       But ONLY if HiperDispatch is active, plus negative values
Feb 11, 2009   in variables PCTOVHTD CPUACTTM CPUOVHTM MSUINTRV MSUPERHR
               MSU4HRAV and PCTOFHDW.  A recalculation of CPUACTTM was
               not tested with RMF data with HiperDispatch active (i.e.,
               when SMF70PAT/CPUPATTM were GT zero).  That recalculation
               was removed by this change.
   Thanks to Chuck Hopf, Bank of America, USA.


LASTCHANGE: Version 27.