****************NEWSLETTER SEVENTEEN************************************
             MXG NEWSLETTER NUMBER SEVENTEEN July 10, 1990              
Technical Newsletter for Users of MXG :  Merrill's Expanded Guide to CPE
                         TABLE OF CONTENTS                              
I.   MXG SOFTWARE Version status.                               page   2
  1. Production MXG Version is still 7.7.                              2
  2. PreRelease MXG Version 8.2 available upon request.                 
  3. Enhancements completed in PreRelease 8.2.                          
  4. Enhancements that didn't make it.                                  
II.  TECHNICAL NOTES                                            page   3
  1. "SMF and RMF Data Enhancements in MVS/ESA"                        3
     a. New MVS/ESA CPU measurements in type 30 record.                3
     b. Absence of these new CPU measures in type 72 record.           4
     c. Additional new MVS/ESA workload measurement data               5
     d. TYPE 71 Overall System Memory measurements in MVS/ESA.         5
     e. TYPE72MN - RMF III Monitor subtype of type 72 record           6
     f. I/O Activity measurement, non-VSAM, VSAM, DASD, TAPE.          6
     g. Improved capture of JES Printing activity                      7
     h. TYPE70PR  - PR/SM Processor Partition Data                     8
     i. Data-In-Virtual (DIV) and Virtual Lookaside Facility (VLF).    9
     j. DFP 3.2 Statistics and Configuration                          10
     k. Structural changes in SMF writer recording and its functions. 12
     l. Additional SMS information in DASD VTOCs.                     13
  2. MVS PTFs and/or APARs.                                           13
  3. MVS Technical Notes.                                             15
     a. ACTFRMTM notes.                                               14
     b. No DB2 I/O counts in SMF data.                                14
     c. Identify lost Index in Indexed VTOCs.                         15
     d. Instantaneous 4.5 MB/sec channel speed versus sustainable.    15
     e. Long Channel Programs affect Channel Measurements.            15
     f. Erase on Delete can be set accidentally by RACF.              15
     g. SPF EDIT subcommand COPY renumbers line numbers.              15
  4. VM PTFs and/or APARs.                                            16
  5. CICS Technical Notes.                                            16
     a. Major structural changes in CICS 3.1.1 measurement data.      16
     b. Changes to MXG Data Set CICSEXCE in CICS 3.1.1                17
     c. Changes to MXG Data Set CICSTRAN in CICS 3.1.1                18
     d. New CICS 3.1.1 Statistics Data Sets descriptions.             21
     e. Observed errors in CICS 2.1 CICSYSTM and MONITASK CPU time.   22
  6. SAS 6.06.01 Issues and MXG recommendations.                      23
     a. SAS 6.06 ERROR Conditions requiring ZAPS to be installed.     24
     b. SAS 6.06 Incompatibilities which required MXG Source Changes. 26
     c. Additional SAS 6.06 compatibility items.                      28
     d. Performance measurement comparisons and performance zaps.     31
     e. Summary of MXG required or recommended SAS ZAPs for 6.06.     31
III. Documentation of MXG Software.                                   32
IV.  CHANGE LOG, Changes 8.072 to 8.001.                        page  33
      (Alphabetic INDEX of Significant Changes on page 34)      thru  56
I.   MXG SOFTWARE Version status.                                       
  1. Production MXG Version is still 7.7.                               
 There is no new software automatically shipped with this newsletter.   
 MXG Version 7.7 (which shipped in February, 1990) is the production    
 version. MXG 7.7 already supports MVS/ESA 3.1.1, new 3390 DASD devices,
 3490 Tape Drives, IDRC, and everything else that was available in Feb. 
 All reported errors are described and fixed in this Newsletter, and    
 most sites will probably not require the PreRelease of MXG 8.2.        
 We do not expect to ship the production Version 8 until early 1991.    
  2. PreRelease MXG Version 8.2 available upon request.                 
 MXG PreRelease 8.2 is now available upon request to supported sites.   
 All of the Changes listed in the newsletter are included in MXG 8.2.   
 The major enhancements in PreRelease MXG 8.2 are listed below, and the 
 Changes section of this newsletter describes all of the enhancements.  
 There is no cost for the PreRelease.  Simply contact us by phone, fax, 
 or letter (overseas, your local SAS office will relay your request),   
 and we will be pleased to send you your copy of MXG PreRelease 8.2.    
  3. Enhancements completed in PreRelease 8.2.                          
     a. Support for new CICS/ESA 3.1.1 Monitor and Statistics Data.     
     b. Support for new Cray hardware COS 1.16 Operating System Data.   
     c. Support for new VLF subtype 3 in SMF type 41.                   
     d. Support for new HiperBatch stats in SMF type 14, 15, and 64.    
     e. Support for new SMS utility DCOLLECT data records.              
     f. Support for new Oracle SMF record.                              
     g. Source changes required for SAS 6.06 compatibility.             
     h. Support for IMF 2.6 (for IMS 3.1).                              
     i. VTOC support enhanced with OFFSET4E and SMS variables added.    
     j. BUILDPDB/3 Enhancements.                                        
        - SPIN library copied into PDB for backup and recovery          
        - ACCOUNTn and SACCTn added to SMFINTRV.                        
        - TYPE25 processing added for JES3.                             
     k. NPM records from VM can be processed.                           
     l. Note: MXG 7.7 requires MACRO DQUOTE MWORK=28K options for 5.18. 
     m. Corrections to all reported errors in MXG 7.7.                  
  4. Enhancements that didn't make it.                                  
     a. LLA (User coded exit) SMF record.                               
     b. WSF2 SMF record.                                                
     c. Cray COS 1.17                                                   
     d. Cray UNICOS.                                                    
     e. VAX/VMX Accounting and SPM data.                                
     f. Landmark CICS Release 8.                                        
     g. HSM SMF record completion.                                      
     h. JES3 Tape Mount Merge with TYPETMNT.                            
     i. Corrections to MXG support of Amdhal's MDFTRACK record.         
     j. Change 8.008 for VMACVMON errors.                               
II.  Technical Notes.                                                   
  1. "SMF and RMF Data Enhancements in MVS/ESA"                         
  This paper has been presented at:                                     
       UKCMG 90  Glasgow, Scotland  May 21, 1990                        
       SWCMG     Austin, Texas      Jun 21, 1990                        
This paper identifies the significant changes in data elements that are 
captured (and those that are NOT captured) in MVS/ESA. New CPU times    
that are captured in SMF type 30 records (but not captured in RMF type  
72 records) dramatically affect billing and capacity measurement.  Steps
usage of HIPERSPACE/Data Spaces resources (such as invoked sorts) are   
captured.  "Active frame time", captured by each performance group, may 
be an accurate measure of central+expanded memory occupancy. Printer    
activity can be identified to the step which caused the printing. The   
SMF VSAM data set (finally) will use a half-track CI size.  These       
highlights and other details will update the changes between MVS/XA and 
MVS/ESA, including ESA 3.1.3.                                           
     a. New MVS/ESA CPU measurements in type 30 record.                 
Three New MVS/ESA CPU measures, two old, one new, have been added to the
SMF type 30 records, which is the source of job accounting and job-level
capacity measurement.                                                   
  "RCT"  - Region Control Task (Quiesce/Restore/Swap), caused by TSO and
CPURCTTM   Batch swapping.  This time has always existed, (in uncaptured
           CPU), and is the major contributor to low TSO capture ratios.
  "IIP"  - I/O Interrupt Processing (Second Level Interrupt Handler, the
CPUIIPTM   SLIH CPU time).  This time has always existed, (in uncaptured
           CPU), and affected all workload's capture ratios.            
  "HPT"  - Hiperspace processing CPU time. This time is new. Hiperspace 
CPUHPTTM   CPU time displaces functions which formerly were measured in 
           TCB or SRB. Using Hiperspace for SORT processing will reduce 
           the step TCB CPU time, because function was moved from TCB to
           Hiperspace.  IBM's DFSORT 11 announcement showed a sort that 
           reduced TCB from 100 to 50 seconds, but the new HPT CPU time 
           bucket contained 25 CPU seconds. The true reduction was only 
           from 100 to 75 seconds!  Using TCB and SRB only for Billing  
           and Capacity will be wrong with Hiperspace processing. Note  
           that Hiperspace CPU time is only recorded for tasks executing
           in User Protect Keys, and only User Key Data Spaces are under
           control of the IEFUSI exit for size. Most IBM uses of Data   
           Spaces (HiperBatch, VLF, DFP, CATALOG) use KEY Zero just so  
           they can avoid IEFUSI virtual storage limitations, and thus  
           they do not record HPT CPU time (nor DSSIZHWM, see below).   
Moral: You must use all seven of the CPU measures in the type 30 record:
       (MXG's variable CPUTM has always been the sum of ALL CPU values).
     b. Absence of these new CPU measures in type 72 record.            
Of greater concern to capacity planning is the absence of these new CPU 
measures in the type 72 RMF performance group data:                     
TYPE 70 (RMF-captured CPU measurement of real or logical CPUs)          
      Elapsed Interval (Duration multiplied by number of CPUs)          
   ________________________________________________________ ---------   
                        CPU                                    CPU      
                      Executing                              Waiting    
   __________ ________ _________ ________ ________ ________             
    CPU 1      CPU 2    CPU 3     CPU 4    CPU 5    CPU 6               
     Busy       Busy     Busy      Busy     Busy     Busy               
    Total Hardware CPU Busy Time (from Type 70 "non-wait")              
  TYPE 72 (use only the control performance groups)                     
   _____ _____ --------------------------------------------             
    RMF   RMF                  Uncaptured                               
    TCB   SRB                  RMF CPU Busy                             
    CPU   CPU                                                           
   ___________ ----------------------------- --------------             
      CPUTM     Existed,   Moved from  New,   Uncapturable              
    =TCB+SRB    Never has  Uncaptured  was      RMF CPU                 
                been in    to IIP/RCT  RMF                              
                RMF        in 30's     TCB                              
  TYPE 30 (all work started and ended):                                 
   _____ _____ _____ _____ _____ _____ _____ --------------             
    SMF   SMF   SMF   SMF   SMF   SMF   SMF   Uncapturable              
    TCB   SRB   TCB   SRB   IIP   RCT   HPT     SMF CPU                 
    CPU   CPU   CPI   CPI   CPU   CPU   CPU                             
    CPUTM=Sum of all 7 CPU times in TYPE30                              
     c. Additional new MVS/ESA workload measurement data                
TYPE 30 Step Hiperspace/Data Space Activity                             
    HIPAGINS - Hiper Page Ins (from Auxiliary DASD)                     
    HIPAGOUT - Hiper Page Outs (to Auxiliary DASD)                      
    DSSIZHWM - Data Space/Hiperspace High Water Mark, Megabytes, but    
               is recorded only if task is in a User Protect Key. Tasks 
               in Protect Key 0 do not record DSSIZHWM.  A nonzero value
               of DSSIZHWM identifies a Data Space or Hiperspace user.  
    CREADMIS - Hiperspace Read Misses (also called CREADS by IBM)       
    DIVRREAD - Address Space total Reread Count                         
    ABNDRSNC - ABEND reason code                                        
    TERMNAME - Terminal Identification                                  
TYPE 72 Performance Group paging/memory measures                        
    HIPPGINS - Hiperspace Page Ins (from Auxiliary DASD)                
    HIPRDMIS - Hiperspace Read Misses (CREADMIS in TYPE 30s)            
    PGPAGEIN - Page Ins (from Auxiliary DASD)                           
    ACTFRMTM - Frame-seconds of memory occupancy while tasks in         
               this performance group period were "SRM Resident".       
               This includes both Central Store and Expanded Store      
               frames, but does not include Nucleus or Common Area      
               (since they are not in an address space), and does       
               NOT include frames of Logically Swapped ASIDs.           
    MSOUNITS - Represents frame-seconds of Central Store memory         
               occupancy, but only while executing TCB.                 
                                ACTFRMTM               MSOUNITS         
    Estimated ESTORE Frames = (-----------)  -  (--------------------)  
                                RESIDTM          50*MSOCOEFF*CPUTCBTM   
     d. TYPE 71 Overall System Memory measurements in MVS/ESA           
       Area      Expanded Frames     Central ("Real") Frames            
                 Avg, Min, Max       Avg, Min, Max                      
                 Measures            Measures                           
       CSA       CSAEXAV,MN,MX         n/a                              
       Hiper     HIPEXAV,MN,MX         n/a                              
       LPA       LPAEXAV,MN,MX         n/a                              
       LSQA      LSQAEXAV,MN,MX      LSQAREAV,MN,MX                     
       REG+SQA   REGSEXAV,MN,MX        n/a                              
       SQA       SQAEXAV,MN,MX       SQAREAV,MN,MX                      
       VIO       VIOEXAV,MN,MX         n/a                              
       Type      Pages           Pages             Pages                
                 Read            Written           Migrated             
                 From ESTORE     To ESTORE         To Aux               
       Hiper     HIPREADS        HIPWRITS          HIPMIGRS             
       VIO       VIOREADS        VIOWRITS          VIOMIGRS             
       Total     EXTREADS                                               
       Hiper page ins    HIPAGINS                                       
       Hiper page outs   HIPAGOUT                                       
     e. TYPE72MN - RMF III Monitor subtype of type 72 record            
MVS/ESA creates an RMF record from RMF Monitor III, but only a small    
part of the data captured by RMF III is written to SMF, for each        
Performance Group                                                       
  User Statistics                Frame Statistics                       
  AVGUSER  - Logged On           FRAMEACT - Active Frames               
  AVGACTS  - Active Users        FRAMEDIV - DIV Frames                  
  AVGACTV  - Active Not OUTR     FRAMEFIX - Fixed Frames                
  AVGDIVS  - D-I-V Users         FRAMEIDL - Idle Frames                 
  AVGIDLS  - Idle Users                                                 
  Delayed Users Statistics       Miscellaneous                          
  AVGOUTR  - Out and Ready       FRAMEASM - Slots Used                  
  AVGPAGDL - Delayed Paging      PGINRATE - Page Ins                    
  AVGSWPDL - Delayed Swap        DOMAIN   - Domain                      
                                 PERFGRP  - Perf Group                  
  Averages of Averages                                                  
  WSETACT  - Avg working set per active user                            
  WSETASM  - Avg ASM slots used per user                                
  WSETDIV  - Avg working set per DIV user                               
  WSETFIX  - Avg fixed frames per user                                  
  WSETIDL  - Avg working set per idle user                              
     f. I/O Activity measurement, non-VSAM, VSAM, DASD, TAPE.           
TYPE1415 Non-VSAM File, for each open of each file.                     
 DSSNO      Dataset serial number                                       
 IDRC       3480 IDRC compaction used?                                  
 NULLSEG    null segment encountered?                                   
 PDSE       PDSE (formerly ILIB) managed data set?                      
 SMFCHITS   HiperBatch successful searches                              
 SMFCIOS    HiperBatch DASD I/Os copied into buffers                    
 SMFIOREQ   HiperBatch total searches                                   
 SMFNMWTS   HiperBatch conflict suspends                                
 SMFPHIOS   HiperBatch searchs that caused DASD I/O                     
 TRUNC      TRUNC MACRO issued?                                         
TYPE64 VSAM File, for each open of each file.                           
 ACBBUFND   BUFND - Number of Data Buffers                              
 ACBBUFNI   BUFNI - Number of Index Buffers                             
 ACBBUFSP   BUFSP - Buffer Space                                        
 ACBMACR    MACRF flag bytes (Random, Seq, Input, Output, etc.)         
 ACBSTRNO   STRNO - String number                                       
 BUFDRNO    Actual number of buffers                                    
 JCFBDSNM   Cluster Name                                                
 PLHCNT     Actual number of concurrent strings                         
 SMF64HIT   HiperBatch successful searches                              
 SMF64IOS   HiperBatch DASD I/Os copied into buffers                    
 SMF64MIS   HiperBatch searches that caused DASD I/Os                   
 SMF64SIO   HiperBatch total searches                                   
 SMF64WTS   HiperBatch conflict suspends                                
TYPE74 DASD Volume Activity                                             
 DASDRCFG - Number/Storage Group Options                                
TYPE 21 Tape Volume Dismount                                            
 BYTEREAD  Bytes read                                                   
 BYTEWRIT  Bytes written                                                
 DCBOFLG   DCBOFLG control byte                                         
 DEVICE    Device type                                                  
 OPEN      Type of OPEN                                                 
 TAPCUSER  Tape unit serial of creation device                          
 TAPUNSER  Tape unit serial of this device                              
 TEMPRBER  Temporary read backward errors                               
 TEMPRFER  Temporary read forward errors                                
 TEMPWRER  Temporary write (buffered) errors                            
     g. Improved capture of JES Printing activity                       
TYPE6 JES Printer Record Enhancements                                   
Step identification of source of print                                  
 SMF6DDNM   DDNAME that created printing                                
 SMF6DSNM   JES assigned temporary DSNAME of the print dataset          
 SMF6PRNM   PROCSTEP that created printing                              
 SMF6STNM   STEPNAME that created printing                              
 SMF6USID   USERID that created printing                                
 SUBSYS6    Printing Subsystem (JES/PSF) used.                          
 SMF6PRMD   Processing mode (PAGE/LINE) of print.                       
 SMF6FDNM   FORMDEF name used                                           
 SMF6PDNM   PAGEDEF name used                                           
 SMF6PTDV   PRINTDEF name used                                          
Print security identification                                           
 SMF6NPS    Security page segments used                                 
 SMF6NSFO   Security fonts used                                         
 SMF6NSOL   Security overlays used                                      
 SMF6OTOK   Output user security token                                  
 SMF6SECS   Security label of print dataset                             
Available only with MXG modification to JES2 (see 7.7 member CHANGES).  
 RLSETIME   Time SYSOUT was released for printing                       
Yes/No Flags.                                                           
 BINnUSED   BIN Number n was used?                                      
 CONTRIN0   SPIN data set?                                              
 CONTRIN1   Operator terminated print?                                  
 CONTRIN2   Operator restarted print?                                   
 CONTRIN3   Print intrepreted?                                          
 CONTRIN4   Operator interrupted print?                                 
 CONTRIN5   Print continuation?                                         
 CONTRIN6   Operator overrode?                                          
 CONTRIN7   Restart with destination?                                   
 CONTRIN8   Received operator restart?                                  
 CONTRIN9   Operator started single space?                              
 DIADPLWS   Data page labelling suppressed?                             
 DIAJHWP    Job trailer page printed?                                   
 DIASLIG    Job header page printed?                                    
 DIAUPAWS   User print are suppressed?                                  
 DPAGELBL   Keyword DPAGELBL=YES?                                       
 ERROVRUN   Image overrun error?                                        
 ERRSECOV   Error in security overlay?                                  
 INTEGRTY   Security label integrity?                                   
 PRSUCCES   Print operation successful?                                 
 SPAGELBL   Keyword SPAGELBL=YES?                                       
 STDUPLEX   Standard duplex used?                                       
 SYSAREA    Keyword SYSAREA=YES?                                        
 TMBUPLEX   Tumble duplex used?                                         
     h. TYPE70PR  - PR/SM Processor Partition Data                      
Durations of partition                                                  
 DURATM     Duration of interval                                        
 LCPUPDTM   Logical processor dispatch time                             
 PRSMSLIC   Dispatch interval timeslice                                 
Identification of partition                                             
 LCPUADDR   Logical processor CPUID address                             
 LPARNAME   Logical partition name                                      
 LPARNUM    Logical partition number                                    
Status flags and numbers                                                
 DIAG204F   Diagnose X204 failure?                                      
 LCPUDED    Logical processor dedicated?                                
 LCPUWAIT   LPAR Wait Completion (Yes/No)?                              
 NRPRCHGD   Was the number of CPUs changed?                             
 PARTFLG    Was the Partition deactivated?                              
 SLICCHGD   PRSMSLIC Time-slice was changed?                            
 LCPUSHAR   Processor relative share                                    
 LPARCPUS   Number of CPUs in this LPAR                                 
 NRCPUS     Number of CPUs                                              
 NRPRCS     Number of logical partitions                                
 PARTISHN   Partition number of this MVS                                
 PARTNCPU   Nr of CPUs available to this partition                      
 Do not use PR/SM CPU measures without reading ZZ05-0453-01 (Jan, 1990),
 "PR/SM Performance in LPAR Mode", WSC Technical Bulletin, which shows  
 that PR/SM has a "Low Utilization Effect" making PR/SM look like it    
 uses more CPU time than it really does. (This ZZ publication is labeled
 "IBM Internal Use Only", but your IBM SE will let you see it).         
     i. Data-In-Virtual (DIV) and Virtual Lookaside Facility (VLF).     
TYPE41AC (DIV Accessed) and TYPE41UN (DIV Unaccessed)                   
Common to both Access and Unaccess                                      
 ACCSTIME   Time when object was accessed                               
 DDNAME     DDNAME used                                                 
 JOB        Job name or TSO user accessing object                       
 OBJMODE    Access mode (Read/Update)                                   
 OBJSIZEA   Object size (blocks) when accessed                          
 OBJTYPE    Object type (DA)                                            
Additional data at Unaccess only in TYPE41UN                            
 IOCALREA   Total I/O calls for read                                    
 IOCALWRT   Total I/O calls for write                                   
 OBJSIZEU   Object size (blocks) when unaccessed                        
 TOTREADS   Total blocks read (including rereads)                       
 TOTRREAD   Total blocks re-read                                        
 TOTWRITE   Total blocks written                                        
 UACCTIME   Time when object was unaccessed                             
TYPE41VF Virtual Lookaside Facility (VLF) statistics                    
APARs OY28799 and OY28800 for MVS/ESA create a type 41 new subtype 3    
interval (15 min) record for each class in the COFVLFnn PARMLIB member. 
 SMF41CLS   Class name                                                  
 SMF41SRC   Times cache was searched                                    
 VLFHITPC   Percent of searches found in VLF                            
 SMF41ADD   Objects added to cache during interval                      
 SMF41DEL   Objects deleted from cache                                  
 SMF41FND   Objects found in cache                                      
 SMF41TRM   Objects trimmed from cache                                  
 SMF41LRG   Largest object ever attempted                               
 SMF41MVT   MAXVIRT specified                                           
 SMF41USD   Amound of storage used                                      
     j. DFP 3.2 Statistics and Configuration                            
TYPE 42 record contains 3 subtypes and MXG creates 5 datasets.          
TYPE42AU "Audit" VARY SMS, ACTIVATE SMS, or ENF events when they occur. 
 CURRTIME   Current update timestamp                                    
 SMF42EAC   Activate, ENF, or VARY SMS?                                 
 SMF42EAD   Active control dataset name                                 
 SMF42ENS   New MVS volume status                                       
 SMF42EOS   Old MVS volume status                                       
 SMF42ERC   Return code                                                 
 SMF42ERS   Reason code                                                 
 SMF42ESD   Source control dataset name                                 
 SMF42ESN   Name of storage group                                       
 SMF42EST   Resulting status after action                               
 SMF42ESY   "ALL", or first 8 system names                              
 SMF42EUA   UCB address for the device                                  
 SMF42EVL   Volume serial number                                        
TYPE42CU Model 3990-3 Cache Control Unit Statistics, for each cache     
controller having an SMS volume attached.                               
 Identification and timestamps                                          
 SMF42CID   Subsystem identifier                                        
 CURRTIME   Current update timestamp                                    
 LASTTIME   Last update timestamp                                       
 Statistics during interval                                             
 SMF42AFW   Average fast-write waits per minute                         
 SMF42AHR   Average hit ratio                                           
 SMF42CCT   Current I/O count for the subsystem                         
 SMF42LCT   Last I/O count for the subsystem                            
 SMF42CFW   Current fast write wait count                               
 SMF42LFW   Last fast write wait count                                  
 SMF42CRH   Current cache normal read hit percent                       
 SMF42LRH   Last cache normal read hit percent                          
 SMF42CWM   Current fast write waits per minute                         
 SMF42LWM   Last fast write waits per minute                            
 Storage capacity/availability                                          
 SMF42CSS   Subsystem storage capacity                                  
 SMF42NCS   Subsystem non-volatile storage status                       
 SMF42NSZ   Non-volatile cache capacity                                 
 SMF42SAP   Storage allocated for PINNED data                           
 SMF42SCS   Storage director caching status                             
 SMF42SPR   Non-volatile storage allocated for PINNED                   
 SMF42SSA   Storage available for allocation as CACHE                   
 SMF42SSU   Storage unavailable due to failures                         
TYPE42VL Status for each SMS volume behind 3990-3                       
 CURRTIME   Current update timestamp                                    
 SMF42CID   Subsystem identifier                                        
 SMF42DB1   Device status flags one                                     
 SMF42DB2   Device status flags two                                     
 SMF42DEV   Device number                                               
 SMF42VOL   Volume Serial Number                                        
TYPE42SC Storage Class Buffer Manager Facility (BMF) Statistics for each
Storage Class. (Interval set in IGDSMSnn).                              
 DURATM     Interval duration                                           
 ENDTIME    End timestamp of the interval                               
 SMF42PNN   Storage Class Name                                          
 SMF42SDH   Directory data page read hits                               
 SMF42SDT   Directory data page reads                                   
 SMF42SRH   Member data page read hits                                  
 SMF42SRT   Member data page reads                                      
 STARTIME   Start timestamp of the interval                             
TYPE42TO Buffer Manager Facility (BMF) Totals for all Classes.          
 DURATM     Interval duration                                           
 ENDTIME    End timestamp of the interval                               
 SMF42LGE   Largest size of storage                                     
 SMF42TDH   Directory data page read hits                               
 SMF42TDT   Directory data page reads                                   
 SMF42TNA   Number of storage classes                                   
 SMF42TRH   Member data page read hits                                  
 SMF42TRT   Member data page reads                                      
 STARTIME   Start timestamp of the interval                             
     k. Structural changes in SMF writer recording and its functions.   
Control Interval size of SMF VSAM data set can be 22K (finally!!). Large
CI size is desired because it significantly reduces all costs of writing
and reading SMF records. The support for Large CI size is in ESA 3.1.3, 
or in MVS/XA PTF OY19862.  SMF always gets 259 buffers (CIs) at startup.
With 4K CI size, SMF needed 1 MB virtual (4096*259=1MB), but with a 22K 
CI size, SMF now requires a 6 MB address space (22K*259=6MB).           
SMF Exits can now use 31-bit addressing AMODE(31)                       
Callers in Cross Memory can call SMF (MODE=XMEM on SMFEWTM) and a new   
SMF exit (IEFU85) exists for records to be written by these callers in  
cross memory.                                                           
Internal buffers are now in 31 bit storage (i.e., no longer below the   
16MB line).                                                             
A fixed maximum of 32MB can be used for SMF buffers.                    
If over 80% of the current buffers are in use (i.e., un-written), the   
Buffer Shortage message is displayed, and will be redisplayed if the    
number of buffers increases. SMF will get 200 more buffers (CIs) at a   
time, up to a maximum of 4000 (=32MB).  As buffers are freed, the       
percentage in the message does not decrease. When the percentage is     
below 70% the Buffer Shortage message is deleted.                       
A new NOBUFFS option in SMF PARMLIB controls SMF action when the last   
SMF buffer fills.                                                       
    MSG  - send message and enter data lost mode (default)              
    HALT - put system in restartable WAIT STATE ('D0D-00')              
A new LASTDS option in SMF PARMLIB controls SMF action when the last SMF
dataset fills.                                                          
    MSG  - send message, start buffering data (default)                 
    HALT - put system in restartable WAIT STATE ('D0D-01')              
SMF internal buffers can be recovered from a dump after a system crash. 
The new IPCS SMFDATA command can read a SYSMDUMP, SVCDUMP, or Standalone
dump data set and will reclaim the SMF buffers as they stood at crash   
into a VSAM data set; the VSAM data set must be empty and have the same 
CI size as the original SMF dataset.                                    
     l. Additional SMS information in DASD VTOCs.                       
System Managed Storage (SMS) now uses formerly reserved bits located at 
offset '4E'x in the DSCB1 in your VTOCs. DASD products like DMS/OS and  
ASM2 have used these bits, and local modifications (to CSECTS IFG0196W  
and IFG0194E) have also caused this "DSCB Contamination".IBM published  
"Clean up VTOCs Before Implementing DFP V3" (as WSC Flash 9009, Hone    
Entry G022345) to advise you of the exposure. If DSCB contamination is  
found, you must not only clean the VTOCs of your online data sets, but  
you will need to also clean all migrated datasets, since their DSCBs    
were also migrated and your migration software will need to correct the 
contamination when datasets are recalled. Vendors of the above products 
have fixes to their products to deal with this "DSCB Contamination"     
  These new SMS variables are contained in DASD VTOCs.                  
  DS1CRSDB  DADSM Create originated blocksize?                          
  DS1PDSE   PDSE Managed Dataset?                                       
  DS1REBLK  Data set may be reblocked?                                  
  DS1SCCPF  Secondary is compacted factor value of 1, 256, or 65536.    
  DS1SECUN  DS1SECUN units avg block, bytes, kilo or mbytes (A/B/K/M)?  
  DS1SCXTV  Secondary space extension value                             
  DS1SMSDS  System managed (i.e., SMS) dataset?                         
  DS1SMSUC  No BCS entry exists for data set?                           
  OFFSET4E  Offset 4E into DSCB1 (used by SMS)                          
There is a new SMS Utility, DCOLLECT, that creates a flat file from VTOC
and VVDS records that is supported in MXG PreRelease 8.2 Change 8.07x.  
an There wil be an evaluation and comparison of DCOLLECT output with    
MXG's VMXGVTOC, ASMVVDS and VMACVVDS in the next Newsletter.            
  2. MVS PTFs and/or APARs.                                             
APAR OY29986/PTF UY49159 is required to correct a JES 2 3.1.3 error that
creates a truncated type 6 SMF record (which caused MXG to STOPOVER).   
APAR OY28449/PTF UY40902 adds new "SRCL" field to RMF Product section,  
but the new field is always zero, causing NO impact on MXG. See Change  
8.065, below.                                                           
APAR OY31183, SMS only, creates DEVTYPE=FF and DEVNR=0FFF in the type 30
DD segments for DDs with more than one device allocated, causing an MXG 
note "Invalid Device Type" (but does not cause MXG to fail).  IBM has   
not yet issued a PTF to fix their problem.                              
APAR OY28328, PTF UY46699 corrects TYPE79 External Storage Frame Count  
field R791ES.                                                           
APAR OY30300, and OY32039 correct the UCB length segment in type 14/15  
SMF record so that HiperBatch statistics which were added in MVS 3.1.3  
can be recognized as present in the record. The fields were added, but  
the UCB length field was not updated to reflect the added data.         
The SMF algorithm which consolidates like DD segments (have same DDNAME 
and same unit address) in building the type 30 records is now optional. 
A new SMFPRMnn parameter, DDCONS=YES/NO, default YES (i.e., no change)  
are added by APAR OY25606 PTF UY48312. The consolidation algorithm has  
been found to consume inordinate CPU time after step termination for    
long running jobs (SAR, 3890XP, etc.) that have many DD segments because
they stay up for days.  These products dynamically allocate a new DD for
each function, each with a different DDNAME, and type 30 records with   
25,000 to 50,000 DD segments may be written. The consolidation algorithm
searches each of these thousands of entries (sequentially) for exact    
match on ddname and unit address, to consolidate like entries, which    
never happens with the unique dynamic DDNAMEs!  Sites with these long   
running dynamic allocating jobs should specify DDCONS=NO to avoid the   
consolidation expense.  The consolidation algorithm only really impacts 
the subtypes 4 and 5, written at step and job termination, since they   
contain all DDs for these long-running step and the job.  The subtype 2 
and 3 (interval) records only contain the DD segments allocated during  
the interval and thus are inherently much shorter, with concomitantly   
less impact.  One 3890XP (Check Processing) site only wrote interval    
records for their STCs just to avoid the consolidation algorithm delay. 
Not only was there a high CPU cost, it literally took hours for the task
to end after the operator canceled it!  Writing only interval records   
for STCs has a negative impact on MXG's PDB.JOBS and PDB.STEPS datasets,
since MXG uses only the type 30 subtype 4 record for resources. Using   
DDCONS=NO should avoid these problems.                                  
DB2 APAR PL48307 (PTF UL58797 for 2.1, UL58796 for 2.2) corrupts the    
sequence number (QWHSISEQ in MXG) and can causes 0 observations in      
DB2STAT0 and DB2STAT1 datasets.                                         
  3. MVS Technical Notes.                                               
     a. ACTFRMTM notes.                                                 
Variable ACTFRMTM (Resident-Frame-Seconds) in your TYPE72 Performance   
Group data will be garbage (only for the TSO Perf Groups), if your site 
has the TSO/MON Product, and has not yet installed the year-old Legent  
fix "Immediate Action #28". Legent detected their error and sent that   
flash out last year, but we still find sites that did not install that  
critical fix on their TSO/MON product.                                  
As noted in Newsletter 13, ACTFRMTM measures Central Store plus Expanded
Store residency time frame-seconds, while MSOUNITS measures only Central
Store CPU TCB time frame-seconds.  You calculate CS-only-frame-seconds  
as MSOFRMTM=MSOUNITS/(50*MSOCOEFF), to compare with CS+ES-frame seconds 
in ACTFRMTM. Dividing MSOFRMTM by CPUTCBTM to get CS-only frames, and   
dividing ACTFRMTM by RESIDTM to get CS+ES frames, and then subtracting  
estimates ES frame count. Small denominator values (RESIDTM or CPUTCBTM)
can generate inaccurate values; calculate frames only if the denominator
is more than 1 second in the performance group period record.           
                                ACTFRMTM               MSOUNITS         
    Estimated ESTORE Frames = (-----------)  -  (--------------------)  
                                RESIDTM          50*MSOCOEFF*CPUTCBTM   
     b. No DB2 I/O counts in SMF data.                                  
INFO/SYS entry Q426001 "explains" why there are no DB2 I/O counts in SMF
data. The Media Manager bypasses the call to SMF EXCP counting!         
     c. Identify lost Index in Indexed VTOCs.                           
Indexed VTOCs sometimes lose their index. After this has happened, the  
TYPE19 dataset variable VTOCERRO will be equal to 'Y', detecting that   
the index has been lost.                                                
     d. Instantaneous 4.5 MB/sec channel speed versus sustainable.      
The 4.5MB/sec channel speed is only an instantaneous speed. For actual  
data transfer the rate is at best 2.2MB/sec to 2.5MB/sec on 3480s with  
IDRC.  INFO/SYS entry Q411444 estimates 6 hours elapsed time to dump 100
GB from 3380s to 3480s (four concurrent dumps to two A22s with sixteen  
drives).  IDRC reduced the elapsed time to 5.5 hours.  The path between 
the A22 and the 3480 is still a 3MB/sec path, and was the constraint.   
The faster 4.5MB/sec channel served only to reduce the channel busy from
90-95% before to about 75% utilization after.                           
     e. Long Channel Programs affect Channel Measurements.              
Long Channel Programs can cause the Channel Measurement Block data (the 
source of Connect, Disconnect, and Pending) to be potentially wrong. The
CMB is updated at the end of each Channel Program, but if the interval  
monitor (both MVS RMF and VM/XA Monitors use CMB) has a duration shorter
than the duration of the channel program, the monitor data will show    
many intervals of 0 connect time, and then the total connect time for   
the channel program will appear in one interval (often recording more   
connect time in that record than the duration of the interval).  PSF in 
particular has caused "errors" when a 1 minute interval is specified.   
The connect time, etc., is zero for 9 intervals and then the accumulated
connect time is recorded in the tenth 1-minute interval record. The real
problem is not PSF, but rather long running channel programs.           
     f. Erase on Delete can be set accidentally by RACF.                
RACF "Erase on deletion" option may be needed for security, but it can  
significantly increasd Disconnect time on DASD volumes. Dan Kaberon at  
Hewitt discovered that the RACF SETROPTS description says that ERASE    
specifies that scratched datasets will be erased if the data set profile
so dictates, but the actual ERASE option values are YES, NO or ALL.     
"ALL" specifies that all scratched data sets will be erased REGARDLESS  
of the ERASE indicator in the data set profile! "ALL" had been specified
unintentionally, causing public volume response of 500 ms per I/O       
(because temporary data sets residing on public volumes were also being 
ERASEd on delete)!  Watch out for this RACF option!  An elaboration of  
Dan's discovery will be in a future Candle Report.                      
     g. SPF EDIT subcommand COPY renumbers line numbers.                
TSO SPF EDIT subcommand COPY should NOT be used to copy a source member 
into your USERID.SOURCLIB library from the  MXG.SOURCLIB, because  the  
COPY  subcommand  of EDIT will renumber the lines!  Always use SPF  COPY
Command  (3.3)  instead  to  copy  members without renumbering, so that 
numbering will be preserved.  (It's not clear when this began to happen,
nor  whether  it's  an  IBM design change or an error;  if you know more
let me know!)                                                           
  4. VM PTFs and/or APARs.                                              
APAR VM40478 and VM41591 (when PTF'd) will fix a VM/XA problem with     
Timeslice value.  VM/XA internal logic hardcoded an expected timeslice  
of 25ms, and sites that changed their timeslice had serious Dispatcher  
VM/SP Release 5.0 during unload of MXG tape with TAPPDS failed with the 
DMSTPD105S ERROR 2 Writing, Virtual Storage Address zero message, but   
VM/SP Release 5.1 executed TAPPDS without error. TAPPDS maintenance for 
VM/SP 5.0 is probable, but the 5.1 circumvention ended investigation.   
  5. CICS Technical Notes.                                              
     a. Major structural changes in CICS 3.1.1 measurement data.        
The type 110 record for CICS 3.1.1 contains two new subtypes.  Subtype 1
is the CICS Monitor Facility data record, while the new subtype 2 is the
new CICS Statistics data record.  Type 110 data records now must be     
written to an SMF file; journal destination is not offered in 3.1.1.    
The subtype 1 is similar to the previous type 110 subtype 0 CMF record, 
but only the CICSEXCE ("Exceptions") and CICSTRAN ("Transactions") data 
sets exist in CICS 3.1.1.  The previous CICSACCT ("Account") data set   
is no longer created (it has always been redundant with CICSTRAN data). 
The CICSYSTM ("System Interval") is not created in CICS 3.1.1, but most 
of its data (plus a whole lot more new stuff) will be found in one of   
the forty-seven(!) new CICS Statistics STIDs in subtype 2 records.      
CICS 3.1.1 type 110 records are incompatible with previous 110 records. 
MXG 8.2 supports ALL type 110 records from any CICS (1.5 thru 3.1.1)!   
MXG 6.6 or earlier will fail when it encounters CICS 3.1.1 records.     
MXG 7.7 recognizes and deletes CICS 3.1.1 records (they have a nonzero  
subtype value), but could not support records not available until July! 
However the subtype test added in MXG 7.7 has inadvertently deleted     
CICS 1.7 records at two sites, because that supposedly reserved field   
was used by CICS 1.7! If MXG 7.7 does delete your CICS 1.7 records, the 
logic in 7.7 can be corrected as described in Change 8.040, although    
installing MXG 8.2 PreRelease would be far wiser!                       
The new CICS Monitor fields are documented in IBM's new "CICS/ESA 3.1   
Customization Guide".                                                   
The new CICS Statistics records and fields are extremely well documented
in IBM's new "CICS/ESA 3.1 Performance Guide". MXG's forty-seven CIC....
data sets built from CICS Statistics records use the IBM DFHSTUP field  
names as variable names and the IBM symbolic names as the MXG data set  
names, so the IBM Performance Guide is also the MXG documentation!  In  
addition to the CICS 3.1.1 specifics in the Performance Guide, it also  
contains many superb discussions of all CICS tuning parameters, most of 
which apply to CICS 1.7 and CICS 2.1.  The Performance Guide is required
CICS reading!                                                           
     b. Changes to MXG Data Set CICSEXCE in CICS 3.1.1.                 
Exception records are produced after each of the following conditions   
encountered by a transaction have been resolved.                        
    . Wait for storage in the DSA or in the EDSA                        
    . Wait for temporary storage (MAIN)                                 
    . Wait for file string                                              
    . Wait for file buffer                                              
    . LSRPOOL string waits.                                             
The duration of the exception is EXWAITTM, calculated as ENDTIME minus  
STRTTIME, and the cause of the exception is described by EXCMNTYP. The  
name and type of resource causing wait is described by EXCMNRTY and     
EXCMNRID. This CICSEXCE observation can be matched to its CICSTRAN obs  
by matching values of TASKNR in both datasets. Multiple observations    
(counted by TASEXCNR) can occur in CICSEXCE for a single transaction.   
MXG Sort Order for MXG Data Set CICSEXCE:                               
CICSEXCE Fields deleted by CICS 3.1.1.                                  
  CMODNAME  MXG Variable                                                
  PCOMPRTM  PGMCMPTM                     Program Compression            
  PCOMPRTM  PGMCMPCN                                                    
  SCWTETIM  SCWTETM                      Suspend time storage not avail 
  SCWTETIM  SCWTECN                                                     
CICSEXCE Fields changed by CICS 3.1.1.                                  
  CMODNAME  MXG Variable                                                
  EXCMNTST  TRANTYPE                                                    
            Transaction start type. The field values now decoded by     
            the $MG110TT. format now are:                               
              'A'        ='A:AUTO INITIATED'                            
              'C'        ='C:CONVERSATIONAL'                            
              'D'        ='D:TRANSIENT DATA'                            
              'T'        ='T:NORMAL TERMINAL STARTED'                   
              'S'        ='S:SYSTEM INTERNAL TASK'                      
              'Z'        ='Z:PSEUDO CONVERSATIONAL'                     
              '00000000'X='X00:FROM TERMINAL INPUT'                     
              '00000001'X='X01:BY ATI WITHOUT DATA'                     
              '00000002'X='X02:BY ATI WITH DATA'                        
              '00000003'X='X03:BY TRANSIENT DATA TRIGGER LEVEL'         
              '00000004'X='X04:BY USER REQUEST'                         
              '00000005'X='X05:FROM TERMINAL TCTTE TRANID'              
  SCWTSTG   MSREQWT  becomes MSWAITCN/TM Getmain Waits                  
  TSWTSTG   TSREQWT  becomes TSWAITCN/TM Temp Storage Waits             
CICSEXCE Fields added by CICS 3.1.1.                                    
  MXG Variable                                                          
            Exception resource identification.                          
            Exception resource type.                                    
            Exception type. Values are:                                 
            (See Format $MG110EX. in member FORMATS)                    
  EXWAITTM='DURATION*OF THE*EXCEPTION'                                  
            Duration from STRTTIME to ENDTIME of this exception.        
  LUNAME  ='LOGICAL*UNIT*NAME'                                          
            Logical unit name. VTAM logical unit name (if available) of 
            the terminal associated with this transation. This field is 
            nulls if the task is not associated with a terminal.        
  TCLASS  ='TRANSACTION*CLASS*AT CREATE'                                
            Transaction priority at task creation (rightmost byte of    
            this four-byte variable).                                   
  TRANPRI ='TRANSACTION*PRIORITY*AT CREATE'                             
            Transaction priority at task creation (rightmost byte of    
            this four-byte variable).                                   
     c. Changes to MXG Data Set CICSTRAN in CICS 3.1.1.                 
One observation is created in CICSTRAN for each performance class       
monitoring record segment. Each observation represents the whole of a   
TCA-lifetime (a user-task is a lifetime of a TCA) from CICS attach to   
detach, unless the MCT option DELIVER or the MCT parameter CONV=YES have
been selected, in which case each observation represents a part of a    
TCA-lifetime, i.e., a conversation, and in which case there will be     
multiple observations in CICSTRAN for a single user-task.               
MXG Sort Order for MXG Data Set CICSTRAN:                               
CICSTRAN Fields deleted by CICS 3.1.1.                                  
  CMODNAME  MXG Variable                                                
  PAGINCT   PAGEINS      61       Page ins (during user task dispatch)  
  MNEXCCT   TASEXRN      32       Number of Exception records generated 
  BMSOTHCN  BMSOTHCN     53       BMS other count                       
  FCOTHCN   FCOTHCN      72       File Control other count              
  bit 22    MAXTASK      64       Maximum Task condition delay          
  bit 23    SHRTSTOR     64       Short on Storage condition delay      
  Comment: By deleting PAGEINS from CICS Transaction records, IBM has   
  substantially reduced the cost of running the CICS Monitor Facility,  
  since capture of paging activity was a significant contributor to     
  of overhead of monitoring CICS.  IBM now suggests that overhead due   
  to the CICS monitor is on the order of 5-7%, but that has not yet     
  been verified by an MXG user.                                         
CICSTRAN Fields changed by CICS 3.1.1.                                  
  Labels for STORHWMK, SCGETCNT, and PAGESECS now include "Below 16MB"  
  and PROGSTOR includes "Above & Below 16MB" to contrast with the new   
  storage variables added below.                                        
CICSTRAN Fields changed by CICS 3.1.1.                                  
  MXG Variable                                        /* CMODNAME */    
  LUNAME  ='LOGICAL*UNIT*NAME'                                          
            Logical unit name. VTAM logical unit name (if available) of 
            the terminal associated with this transation. This field is 
            nulls if the task is not associated with a terminal.        
            Storage occupancy pageseconds of the user-task above the    
            16MB line.                                                  
  PC24BHWM='PROGRAM*STORAGE*BELOW 16MB          '     /* PC24BHWM */    
            Maximum amount (high-water-mark) of program storage in use  
            by the user task below the 16MB line. This variable is the  
            subset of PROGSTOR that resides below the 16MB line. The    
            program storage currently in use below the 16MB line is     
            incremented at LOAD, LINK, and XCTL events by the size      
            (in bytes) of the referenced program, and is decremented at 
            RELEASE, or RETURN events, provided that the referenced     
            program resides below the line.  Note: On an XCTL event the 
            program storage currently in use below the 16MB line can be 
            additionally decremented by the size of the program issuing 
            the XCTL, provided that this program resided below the line.
  RTYPE   ='RECORD*TYPE                         '     /* RTYPE */       
            Performance record type (rightmost bytes), decoded by       
            the $MG110RT. format. Values are:                           
              '   C'='C:TERMINAL CONVERSE'                              
              '   D'='D:USER EMP DELIVER REQUEST'                       
              '   T'='T:TASK TERMINATION'                               
              '  MT'='MT:SEMI-PERMANENT MIRROR SUSPEND'                 
            Count of the number of user storage GETMAIN requests        
            issued by the user task for storage above the 16MB line.    
            Maximum amount (high water mark) of user-storage allocated  
            to the user task above the 16MB line.                       
  TCLASS  ='TRANSACTION*CLASS*AT CREATE'                                
            Transaction priority at task creation (rightmost byte of    
            this four-byte variable).                                   
  TCSTG   ='AMOUNT OF*TERMINAL*STORAGE          '     /* TCSTG */       
            Amount of terminal storage (TIOA) allocated to the terminal 
            associsted with this user task, if applicable. This value   
            is set at task attach and after a terminal session converse.
  TRANPRI ='TRANSACTION*PRIORITY*AT CREATE'                             
            Transaction priority at task creation (rightmost byte of    
            this four-byte variable).                                   
  WTDISPCN='USERTASK*RE-DISPATCHES              '     /*DISPWTT */      
            Count of number of times when the user-task waited for      
  WTDISPTM='USERTASK*RE-DISPATCH*WAIT TIME      '                       
            Elapsed time for which the user-task waited for re-dispatch.
            This is the aggregate of the wait times between each event  
            completion and the user-task re-dispatch. Note: This does   
            not include the time spent waiting for first dispatch.      
  WTEXWTCN='EXCEPTION*CONDITIONS                '                       
            Count of the number of exceptional conditions that have     
            occurred for this task.                                     
            Total elapsed time for which the user waited on exceptional 
            conditions. Will be null if EXCEPTION CLASS=OFF specified.  
  WTTDIOCN='VSAM TRANSIENT*DATA IO*WAITS        '                       
            Count of the number of times when the user waited for       
            VSAM transient data I/O.                                    
            Total elapsed time for which the user waited for VSAM       
            transient data I/O.                                         
     d. New CICS 3.1.1 Statistics Data Sets descriptions.               
There are 47 new CIC..... data sets created from the new subtype 2 data.
Those 47 new data sets contain 1465 new variables, which would take 32  
pages just to list their names!  That list is contained in DOCVER08 and 
DOCVER in the MXG 8.2 PreRelease, and field descriptions are found in   
IBM's "CICS/ESA 3.1 Performance Guide".  The forty seven data sets are: 
MXG     STID  DFH    Description of Data Set             Symbolic   MXG 
Dataset       ...                                        IBM        Exit
Name         DSECT                                       Name       Name
CICAUSS   22  AUS    Autoinstalled Terminal Unsolicited  STIAUSS    AUS 
CICAUTO   24  A04    Autoinstall Global                  STIAUTO    AUT 
CICBTAM   82  A06    Terminal Control BTAM               STIBTAM    BTA 
CICCONMR  76  A20    ISC/IRC Mode Entry Specific         STICONMR   CO3 
CICCONMT  77  A20    ISC/IRC Mode Entry Totals           STICONMT   CO4 
CICCONSR  52  A14    ISC/IRC System Entry Specific       STICONSR   CO1 
CICCONST  53  A14    ISC/IRC System Entry Totals         STICONST   CO2 
CICDBUSS  28  DBU    DBCTL Global Unsolicited            STIDBUSS   DBU 
CICDLIR   70  A18    DL/I Specific                       STIDLIR    DL1 
CICDLIT   71  A18    DL/I Totals                         STIDLIT    DL2 
CICDMG    15  DMG    Domain Manager Global               STIDMG     DMG 
CICDMR    13  DMR    Domain Manager Specific             STIDMR     DMR 
CICDQG    45  A11    TDQUEUE Transient Data Global       STITDQG    DQG 
CICDQR    43  A10    TDQUEUE Transient Data Specific     STITDQR    DQR 
CICDQT    44  A10    TDQUEUE Transient Data Totals       STITDQT    DQT 
CICDS     57  DSG    Dispatcher Domain, CPU each TCB     STIDS      DS  
CICDTB    33  A05    Dynamic Transaction Backout Global  STIDTB     DTB 
CICFCR    67  A17    File Control Specific               STIFCR     FCR 
CICFCT    68  A17    File Control Totals                 STIFCT     FCT 
CICIRCB   75  A19    IRC Batch Global                    STIIRCB    IRC 
CICJCR    49  A13    Journal Control Specific            STIJCR     JCR 
CICLDG    27  LDG    Loader Domain for Program Global    STILDG     LDG 
CICLDR    25  LDR    Loader Domain for Program Specific  STILDR     LDR 
CICLDT    26  LDR    Loader Domain for Program Totals    STILDT     LDT 
CICLSRFR  40  A09    LSRPOOL File stats each File        STILSRFR   LS3 
CICLSRFT  41  A09    LSRPOOL File stats Totals           STILSRFT   LS4 
CICLSRR   37  A08    LSRPOOL Pool stats each LSR pool    STILSRR    LS1 
CICLSRT   38  A08    LSRPOOL Pool stats Totals           STILSRT    LS2 
CICM      81  MNG    Monitor Domain Global               STIM       M   
CICSDG    90  SDG    System Dump Global                  STISDG     SDG 
CICSDR    88  SDR    System Dump Specific                STISDR     SDR 
CICSMD     7  SMD    Storage Manager Domain Subpool      STISMD     SMD 
CICSMSDA   9  SMS    Storage Manager DSA and EDSA        STISMDSA   SMS 
CICSMT     8  SMT    Storage Manager Task Subpool        STISMT     SMT 
CICST     66  STG    Statistics Domain Global            STIST      ST  
CICTC      3  A01    Task Control Global                 STITC      TC  
CICTCLR   58  A15    TCLASS Transaction Class Specific   STITCLR    TC1 
CICTCLT   59  A15    TCLASS Transaction Class Totals     STITCLT    TC2 
CICTCR    34  A06    Terminal Control Specific           STITCR     TCR 
CICTCT    35  A06    Terminal Control Totals             STITCT     TCT 
CICTDG    87  TDG    Transaction Dump Global             STIDTG     TDG 
CICTDR    85  TDR    Transaction Dump Specific           STITDR     TDR 
CICTM     63  A16    Table Manager Global                STITM      TM  
CICTSQ    48  A12    TSQUEUE Temporary Storage Global    STITSQ     TSQ 
CICTSR     4  A02    Transaction Statistics Specific     STITSR     TSR 
CICTST     5  A02    Transaction Statistics Totals       STITST     TST 
CICVT     21  A03    VTAM Global                         STIVT      VT  
     e. Observed CICS 2.1 CICSYSTM and MONITASK datasets CPU timings.   
This CICS note applies to CICS 2.1 and earlier, and not the new CICS 3.1
described above (which does not contain the CICSYSTM data set). The CPU 
measures in IBM's CICSYSTM dataset should match this schematic:         
                        CPUTCBTM=ADSPTIME                     SRB       
            -----------------------------------------------   ---       
                        MAINCPTM                   SUBTCPTM             
            -------------------------------------- --------             
            KCCPUTM             USRCPUTM           OSWTCPTM             
            ------- ------------------------------ --------             
                     JCCPUTM   TCCPUTM   TASKCPTM                       
                    --------- --------- ----------                      
                       "CICS"             "APPL"                        
            --------------------------- ----------                      
The CICSYSTM fields contained in IBM's record are the ADSPTIME, KCCPUTM,
USRCPUTM (and its JCCPUTM and TCCPUTM components), and the SRBCPUTM.    
MXG stores ADSPTIME in CPUTCBTM, and calculates SUBTCPTM, the subtask   
CPU time, (which is also stored in OSWTCPTM, its older name).           
One site found numerous negative values for SUBTCPTM, with the largest  
value of -1.47 seconds. That 900 second interval had ADSPTIME of 426.72,
but the MAINCPTM sum of KCCPUTM (37.18) and USRCPUTM (391.01) of 428.19 
was 1.47 seconds greater than ADSPTIME!  Both the ADSPTIME and the sum  
of MAINCPTM are suspect, because the CICS region's RMF TCB was 414.32,  
or CICS recorded 14 seconds more than RMF recorded! (The type 110 SRB   
CPU of 25.82 was slightly less than the RMF SRB time of 27.82.) CICSYSTM
data from a second unrelated site showed the same pattern; the CICS     
recorded ADSPTIME was less than the sum of KCCPUTM and USRCPUTM, causing
SUBTCPTM to be negative, and RMF CPUTCTBM was also less than the        
ADSPTIME.  Investigation is still open.                                 
Landmark sites MONISYST noted a different problem with Landmark 7.1, but
rather than a data error, the problem was MXG's lack of understanding of
what's captured.  Landmark fields KCCPUTM, JCCPUTM, TCCPUTM, TASKCPTM,  
and OSWTCPTM include both TCB and SRB time. Landmark also captures two  
other TCB+SRB CPU measures, IRCPUTM and VSCPUTM.  Landmark's schematic: 
                        CPUTCBTM                               SRB      
   --------------------------------------------------------- + ---      
   ------- --------- --------- ---------- -------- ------- -------      
Validation of any CICS monitor's CPU time is non trivial, since CPU time
for startup/shutdown of the region is recorded in the first and last RMF
interval CPU time and in the type 30 step termination CPU time, but it  
is not capturable in the CICS monitor's CICSYSTM/MONITASK records. It is
possible the CICSYSTM measures noted above are not real errors; perhaps 
the CPU time occurred but was simply being assigned to a wrong interval?
Further investigation is under consideration, and ideas are welcome!    
  6. SAS 6.06.01 Issues and MXG recommendations.                        
*                                                                      *
*  MXG's Official Position with regard to SAS 6.06.01, July 10, 1990:  *
*                                                                      *
*  A new ship's keel is laid 3 years before the ship is launched into  *
*  the water.  Two years later, the ship is commissioned and is sent   *
*  out on its "shakedown cruise".  The ship floats, makes way under    *
*  its own power, and gets you there, but imperfections are discovered.*
*  After the shakedown cruise, the shipyard fixes the things that are  *
*  broken, and a year or so later the ship is placed in full service.  *
*                                                                      *
*  SAS 6.06.01 is currently on its "shake-down cruise".                *
*                                                                      *
*  SAS Institute ZAPs are required before MXG can be safely executed   *
*  under SAS 6.06. Additional problems that cannot be fixed by zap     *
*  will not be available until SAS 6.08 is released (in mid-1991).     *
*                                                                      *
*  In addition, source modifications to MXG Version 7.7 may be needed  *
*  to circumvent some incompatibilities between 5.18 and 6.06.         *
*  MXG 8.2 contains these source changes, which are identified below.  *
*                                                                      *
*  Initial performance measurements for MXG execution under SAS 6.06   *
*  show significantly more CPU time is required than under SAS 5.18.   *
*  Both data-intensive sequential processing and compiler-intensive    *
*  processing recorded more CPU time, although in some cases the I/O   *
*  counts and elapsed run time were slightly reduced.  Further testing *
*  of new SAS options and investigation by SAS Institute is ongoing.   *
*                                                                      *
*  Some MXG sites may actually require SAS 6.06.                       *
*                                                                      *
*  Sites which have encountered the SAS "344 Compiler Limit Exceeded"  *
*  condition will find that that limit (as well as other constraints)  *
*  have been eliminated in SAS 6.06.                                   *
*  The new support for the Cray COS operating system requires the new  *
*  $ASCII. format, and the planned new support for DEC VMS data will   *
*  require both $ASCII. and VAXRB. formats that are only in SAS 6.06.  *
*                                                                      *
*  The ZAPs listed below are required because MXG fails without them.  *
*  Additional 6.06 problems have been reported and fixed by SAS ZAPs.  *
*  These ZAPs can be downloaded from the Institute's "Online Customer  *
*  Support Facility".  Alternatively, SAS Institute will make available*
*  (in mid-July), the "July SAS 6.06 Usage Notes Tape". That tape will *
*  contain these Required, Highly Recommended, Recommended, and Special*
*  Consideration categories of ZAPs to be installed on SAS 6.06.       *
*                                                                      *
*  SAS Institute asks that you request the "July Usage Notes Tape" in  *
*  writing, addressed to their SAS Distribution Center, and that you   *
*  indicate the operating system (OS or CMS) and tape (reel/cart) type.*
*  The procedures for downloading ZAPs and installing maintenance are  *
*  discussed in SAS Technical Bulletin U-112, packaged with SAS 6.06.  *
*                                                                      *
*  In summary, get and install the "July Usage Notes Tape" before you  *
*  begin testing MXG under SAS 6.06.                                   *
*                                                                      *
*  SAS Version 6 is a major re-design, and will require planning and   *
*  testing of your critical SAS applications before their migration.   *
*                                                                      *
*  There are many new features and benefits in SAS 6.06 that do work.  *
*  Before too long, all will be smooth sailing with following seas!    *
*                                                                      *
     a. SAS 6.06 ERROR Conditions requiring ZAPS to be installed.       
  1. ZAP Z6060611 required.                                             
     Fixes a SAS logic error that caused the MVS Initiator to ABEND     
     because LSQA had filled because SAS had opened SOURCLIB over 2000  
     times and filled LSQA with DEBs! This error was uncovered only     
     because IMPLMAC was (incorrectly) enabled when BUILDPDB ran!       
  2. ZAP Z6060640 required.                                             
     did not set condition code, and hence ERRORABEND was not invoked!  
     This ZAP sets a condition code of 8 for STOPOVER so that ERRORABEND
     will be invoked. MXG requires ERRORABEND for protection of the PDB.
  3. ZAP Z6060653 recommended.                                          
     PROC SOURCE (used by MXG to build the shipment dataset) begins to  
     print source lines on SAS log, erratically, which can cause System 
     722 ABEND. This problem was already known when MXG hit it.         
  4. ZAP Z6060703 required.                                             
     PROC GPLOT against a data set with 0 observations shuts down the   
     SAS execution with no error message. GRAFRMFI exposed this error.  
  5. ZAP Z6060288 required.                                             
     Using real SORTWORK DDs has always been recommended by MXG, because
     their existence supresses dynamic allocation of sort work areas.   
     Dynamically allocated sort work areas have caused frequent failures
     because they free allocation after every sort and do not always    
     clean up properly in applications (like MXG) where many sorts of   
     varying sizes are invoked in a single execution.                   
     This ZAP is required by SAS 6.06 so that real SORTWORK DDs can be  
     used. Existing jobs that have real SORTWKnn DDs will fail if this  
     ZAP is not installed.                                              
  6. ZAP Z6060938 required.                                             
     Option ERRORABEND did not cause a USER 999 ABEND when it should.   
     A condition code 8 occurred (in specific case, a SET without DATA  
     statement, but the problem was generic) but no ABEND resulted.     
       In SAS 6.06 these Condition Codes can occur:                     
        Condition         Meaning                                       
            0        Successful execution.                              
            4        Warning message issued.                            
            8        Error message issued, or PROC abend was recovered. 
           12        Severe Internal Error.                             
           16        ABORT; issued.                                     
           20        ABORT RETURN; issued.                              
           24        ABORT ABEND; issued.                               
  7. Special Consideration ZAP Z6060874 available.                      
     The SAS Initialization Note identifies all CPUs as being IBM.  An  
     Amdahl 5990 is shown as an IBM 5990.  The hardcoded name "IBM"     
     can be changed to your vendor's name by installing this ZAP.       
     Because not all sites will need this ZAP, it is a "Special         
     Consideration" ZAP, and is not on the SAS Online Support System.   
  8. ZAP Z6060872 required.                                             
     POINT operand with zero observations fails with a syntax error.    
     Usage note V6-SYS.DATA-0872.  This caused ASUMCICS to fail because 
     POINT was used to detect whether the CICS data to be summarized    
     was from IBM's CICS Monitor Facility or Landmark's TMON Monitor.   
  9. ZAP Z6060571 required for 6.06 to act like 5.18.                   
     "ERROR: Data set subsetted using FIRSTOBS or OBS options or a WHERE
     clause cannot be sorted in place unless the FORCE option is used." 
     SAS 6.06 created a new PROC SORT option, FORCE, which must be used 
     if you want SAS to sort a data set when OPTIONS OBS= has been set. 
      The intent of the new FORCE option was to protect naive users from
      accidentally wiping out a data set. If a user naively set OBS=100 
      and then PROC SORT DATA=PDB.JOBS (and had also naively set the JCL
      DISP=OLD for the PDB DDNAME), SAS would have sorted PDB.JOBS and  
      then written back only the first 100 (sorted) observations.       
     MXG users frequently use OPTIONS OBS=100 for testing, and this new 
     6.06 "feature" would have required MXG to add "FORCE" to every one 
     of the 555 "PROC SORT" lines (in 79 MXG members) so that MXG would 
     work under 6.06 as it did under 5.18.                              
       The new FORCE option is only needed on PROC SORTs when the input 
       and output datasets are the same. PROC SORTs with different input
       and output datasets will sort without FORCE even when OBS= is on.
       The FORCE option could not actually have been added to MXG source
       code, because MXG then would fail (unknown option!) under 5.18.  
       The source change would have required that an OUT=NEWNAME option 
       be added to all PROC SORTS that did not have an OUT= option, and 
       and then a new source line PROC DATASETS;RENAME NEWNAME=ORIGINAL;
       added after each PROC SORT so that OPTIONS OBS=nn could be used  
       under either SAS 5.18 or SAS 6.06 transparently to MXG users.    
     That source circumvention was scheduled for MXG, but SAS responded 
     with this ZAP (that makes FORCE the default for PROC SORT in 6.06),
     thereby making SAS 6.06 work just like it did under SAS 5.18.      
     Usage note V6-SYS.SYS-0571 discusses this Special Consideration.   
 10. ZAP Z6060946 in development. Usage Note V6-MACRO-0946.             
     Invoking %VMXGGOPT using AUTOCALL created a syntax error, but if   
     the invocation is preceeded by %INCLUDE SOURCLIB(VMXGGOPT); (which 
     defines the macro without using AUTOCALL) there is no error. The   
     error occurs for AUTOCALLed members that are numbered and that have
     a non-blank character in column 72 of the first line of the member!
     A ZAP is in SAS development, but it is not expected to be on their 
     July Usage Notes Tapes.  MXG Change 7.072 shortened the MXG Notice 
     of Copyright to 71 positions in the first line of members ANALDB2R,
 11. ZAP in development. Usage Note V6-MACRO-0752.                      
     When an error occurs in a line defined inside an old-style macro,  
     and option MACROGEN was specified to show each line of the actual  
     resolved macro substitution, SAS 6.06 does not list the real line  
     number of each line. The error message only lists the line number  
     on which the macro was invoked, making error diagnosis difficult.  
     This ZAP is not expected to be on the July Usage Notes Tape.       
 12. ZAP investigation in progress. Usage Note 1000.                    
     Three of nine weekly input files failed during sorting data sets.  
     After several successful sorts of varying sizes, SYNCSORT failed   
     "WER133A E15 User Exit Return Code Terminate". Using instead option
     SORTPGM=SAS still failed with ERROR: RECORD IN FILE WORK.X.DATA    
     IS TOO LONG FOR BUFFER.  Attempted using real SORTWKnn DDs, setting
     MEMSIZE=12M, using USER=USER to isolate data from WORK file. One   
     failure went away when USER=USER was used, but next week's data    
     failed. One failure went away when NODUP was removed from the SORTs
     and one failure went away with entry SASXA1 instead of SASXAL.     
     ZAP Z6060529 was suggested, but did not correct the failure. SAS   
     coded a special diagnostic ZAP, and its 4200 page dump is enroute  
     to Cary.  Obviously, this problem is still open. This Usage Note   
     was assigned by SAS so you could follow up on its status when the  
     problem is identified/fixed/circumvented after this newsletter.    
     b. SAS 6.06 Incompatibilities which required MXG Source Changes.   
  1. The validation of variables in DROP= and KEEP= statement/options   
     depends on statement/option/usage. Validation checking means that  
     SAS raises an error condition for a non-existent variable. The     
     KEEP/DROP option in a PROC statement was not validated in 5.18 but 
     is checked in 6.06. SAS 6.06 restored the original SAS 82.4 design 
     in which input variables are checked and output variables are not. 
     (SAS 5.08 had incorrectly changed validation, but only in a PROC   
     statement, and 5.16 and 5.18 propagated that change):              
      Statement               Usage            5.18 action   6.06 action
       DROP/KEEP statement:   (Input/Output)   Checked       Checked    
       DROP= or KEEP= option:                                           
        in DATA statement     (Output)         Not Checked   Not Checked
        in PROC statement     (Input)          Not Checked   Checked    
        in SET statement      (Input)          Checked       Checked    
     Usage Note V6-SYS.SYS-0666 discusses this issue, and the Institute 
     is now investigating a new option to allow user control of when and
     if validity checking occurs.                                       
     The change in action between 5.18 and 6.06 for the PROC statement  
     (Input) required MXG circumvention implemented in Change 8.060.    
  2. MXG member GRAFRMFI failed with CC 8 and ERRORABENDed due to "FILE 
     WORK. RMF4GRA5S WAS NOT FOUND .." because PROC COPY's option GCAT  
     (which worked under 5.18) no longer is supported in 6.06. The new  
     CATALOG option of PROC COPY could be used in SAS 6.06, but CATALOG 
     is not valid under 5.18 for graphics catalogs!  The source change  
     which does work under both 5.18 and 6.06 was to replace the use    
     of PROC COPY for copying graphics catalogs with the PROC GREPLAY   
     command COPY.  This was implemented in Change 8.061.               
  3. PROC MEANS in SAS 6.06 now invokes PROC SUMMARY, and every OUT=    
     dataset now contains two additional variables, _TYPE_ and _FREQ_   
     (and they are length 8!). This adds 16 unwanted bytes to each      
     observation built by PROC MEANS, and creates an inconsistency in   
     the number of variables created by the same MXG member under SAS   
     5.18 and 6.06. This was implemented in Change 8.062.               
  4. GRAFRMFI technique of executing PROC GREPLAY in batch and building 
     GROUP and MODIFY statements (because MXG knows how many systems,   
     how many shifts, and can count which graph numbers in the graphics 
     catalog were produced) fails in SAS 6.06 (with MEMBER NOT FOUND)   
     because GREPLAY cannot find the catalog entry. In SAS 6.06, if     
     graphs 1-5 are GROUPed, they are moved to the end of the catalog,  
     and when we try to find graphs 6-10 for the next group, they are   
     now new graphs 1-6!  Grouping isn't really supported for batch use,
     but is designed for interactive SAS/GRAPH where a person ticks off 
     the groupings for later GREPLAY. We made it work in batch, but the 
     implementation was not in the design.  Possible circumventions:    
     a) after grouping graphs 1-5, don't look for 6 next, but recognize 
        that what was 6 is now 1, (use this in 6.06, old code in 5.18), 
     b) exploit Version 6 requirement that each graph have a unique     
        name (GPLOT, GPLOT1, GPLOT2, ... GPLOT99, GPLO100, ....) and    
        use the name for grouping.                                      
     What is really needed is the ability to specify GROUP when the     
     graphic catalog entry is created, which would eliminate the need   
     for the slick MXG manipulation that used to work. SAS is looking at
     a better way for a future release.  The actual circumvention that  
     is in MXG 8.2 (implemented in Change 8.061) was to give up the     
     grouping logic under SAS 6.06 and await future developments.       
  5. MXG member GRAFTRND required PROC GLM, and hence SAS/STAT product. 
     It is not (yet) possible to detect if SAS/STAT is installed, so we 
     have had to (reluctantly) change the source member GRAFTRND to add 
     a new parameter to tell MXG if SAS/STAT is installed, and added new
     logic to invoke PROC GLM only if you tell GRAFTRND it is installed.
     Circumvention implemented in Change 8.063.                         
  6. Usage Note V6-SYSPROC.0927.                                        
     201 (invalid options) because the grammar pre-processor parsing in 
     all PROCs thinks WORK. is a format instead of a libref. The problem
     only exists in PROCs (not in DATA, SET. etc. statements) and if the
     period delimiter has blanks on both sides, had no blank or either  
     side, or has a blank before but not after, the parser works okay.  
     Because the grammar pre-processor is unique to each PROC, this     
     problem cannot be zapped, and will not be repaired until 6.08.     
     Fortunately, only one occurrence of this syntax has thus far been  
     found in MXG source, but this could be a problem in your own code. 
     MXG circumvention in Change 8.059.                                 
     c. Additional SAS 6.06 compatibility items.                        
  1. ALL SAS Institute supplied ZAPS for 6.06 should be installed,      
     even those described as "Special Consideration" if they apply      
     to your site's use of SAS.                                         
  2. Do not EVER specify option IMPLMAC.                                
  3. Default MEMSIZE=8M is insufficient with ANALDB2R(PDB=SMF). Error   
     1313 "Cannot get any MFEs" results. With MEMSIZE=10M, ANALDB2R     
     reports can be executed directly from SMF data. Most MXG programs  
     worked with the default MEMSIZE=8M, but MEMSIZE=12M is specified   
     in MXG's CONFIG member just to provide further cushion.            
  4. You can use either Version 5.18 built or Version 6.06 built format 
     libraries under SAS 6.06 execution.  If SAS 6.06 sees the ddname   
     of SASLIB pointing to a SAS 5.18 built PDS format library, it will 
     use those formats.  If SAS 6.06 does not find a SASLIB ddname, it  
     will then look for the LIBRARY ddname, which it expects to point   
     to a Version 6.06 built format library, which is now a SAS library.
     and not a PDS library.  MXG's member FORMATS (invoked in the first 
     step of JCLTEST or under TSO as described in Chapter 32 Install    
     Notes) will build MXG's format library consistent with the version 
     of SAS under which FORMATS is executed. When executed under SAS    
     6.06, Version 6 formats will be created in the LIBRARY ddname, a   
     SAS data library.  If instead, FORMATS is executed under SAS 5.18, 
     Version formats will be created in SASLIB ddname, a loadlib PDS.   
     MXG's Version 5 format library requires SPACE=(CYL,(3,1,99)).      
     In Version 6 format, the SAS data library requires SPACE=(CYL,9,1),
     using the SAS 6.06 default blocksize of 6144 bytes.                
  5. Do NOT specify third space parameter (SPACE=(CYL,(1,2,3)) on the   
     LIBRARY DD for Version 6.06 format library. The existence of the   
     third parameter (the number of directory blocks) confuses SAS 6.06.
     The PROC FORMAT goes ahead and builds the SAS 6.06 format FORMAT   
     library (which is a SAS data library and not a PDS), but then when 
     SAS 6.06 tries to reference this incorrectly allocated library, it 
     reports a "170:FORMAT NOT FOUND" error. Removing the third space   
     parameter when allocating a Version 6.06 format library makes the  
     problem go away.                                                   
  6. The GEN=0 options is mandatory for MXG execution with SAS Version 5
     (because of severe performance degredation with any larger value,  
     see page 317 of the MXG Guide).  GEN= is not an option in SAS 6.06,
     and its use causes a "WARNING:OPTION DOES NOT EXIT" and the step   
     terminates with a condition code 4, characteristic of warnings.    
     GEN= may return in a future version of SAS, but it will never be   
     advisable with the MXG application.                                
  7. All of the SAS 6.06 problems reported in this newsletter were found
     using the MVS (OS) Version of SAS 6.06.  Some important members of 
     MXG 7.7 (JCLTEST, BUILDPDB, VMACVMXA, VMACVMON) have been executed 
     using the CMS Version of SAS 6.06 with no error messages, but MXG  
     has not really been fully exercised under the CMS Version.  Several
     ZAPs reported in this newsletter will not be available on the July 
     Usage Notes Tape for the CMS Version, although they should be on a 
     later Usage Notes Tape.  (Remember, the Institute first must find  
     and "fix the problem in the language it broke in" and then develop 
     a C-language source fix, and then each execution platform group has
     to engineer a machine-specific ZAP in the machine language of that 
     machine, and that ain't easy!)                                     
  8. The free SAS-provided "CPE Starter Set" fails under SAS 6.06, and  
     it is being re-written. That example of SAS/AF menus for reporting 
     from MXG databases will be available for MVS 6.06 this summer and  
     for CMS 6.06 early this fall. Call your SAS sales representative to
     request your free copy; call early and you can become a beta site)!
  9. PROC CONTENTS DATA=PDB._ALL_ NODS; does not give a picture of the  
     directory of a SAS data library. Instead of the single page list of
     data set names, number of observations, and their size in tracks,  
     (that was so useful in verifing the contents of each day's PDB),   
     the NODS option provides only a list of data set names and type!   
     (PROC DATASETS option CONTENTS produces the same meagre list).     
     You can remove the NODS option and thereby print the detail on each
     data set, which does contain size in blocks and observation count, 
     but that also prints all variables, which can take many pages!     
     Usage note V6-CONTENTS-0713 says future objective, maybe 6.08?     
 10. The hex dump listing of a defective record (STOPOVER or LIST;) that
     is essential for debugging critical data errors does not contain:  
     (a) the record number of bad record, (b) the length of bad record, 
     or, (c) the byte number of each line of dump (CHAR is printed on   
     each line instead!  Fix not likely until SAS 6.08.                 
 11. The GO option of SAS 6.06 loses data in the WORK file and re-sets  
     the prompt line number back to 1. Usage note 1240 says that this   
     feature is working as designed!                                    
 12. SPF 3.3 COPY failed when trying to create a copy of the SAS 6.06   
     load library for ZAP testing, with a "Cannot move or copy planned  
     overlay load modules".  It was necessary instead to use IEBCOPY.   
 13. PROC PRINT of a DATETIME21.2 variable which has all values missing 
     still prints 21 positions wide, because in 6.06 a FORMAT with a    
     numeric specification causes the PRINT procedure to uniformly use  
     that width, even when all data values on a page are missing. If you
     use a format with no numeric specification (eg. DATETIME. instead  
     of DATETIME19.), with the PROC PRINT, it will look like SAS 5.18.  
     (Previous SAS logic examined all values on a page and set the width
     of each print field based on that page's values, but that algorithm
     was eliminated in Version 6. Some users complained because it made 
     pages inconsistent, and it did require additional CPU time for each
     page's analysis.)                                                  
 14. PROC PRINT of values 4.123E18 and 4.1234E18 are not aligned on the 
     decimal point (shorter shifted right), when SAS choses exponential 
     printing format for an un-formatted field. Usage note V6-PRINT-0660
     says that using an explicit FORMAT statement will cause alignment. 
 15. The MACROGEN option (which is used to expand old style macro's SAS 
     source code for debugging) now takes up the first ten print columns
     on the SAS log, destroys the actual physical layout of the SAS code
     (because individual lines are joined together as strings), but then
     wraps back to the first print position any multiline SAS statement!
     While still functional, it is much harder to read than was 5.18.   
 16. New WARNING "Input data set is empty" for PROC SORT of a dataset   
     with zero observations may be printed on the log.                  
 17. New WARNING "No datasets qualify for FIRSTOBS and OBS processing"  
     may be printed on the log.                                         
 18. The second occurrence of a LENGTH statement for a char variable    
     (even if the length was NOT changed in that 2nd occurrence) causes 
     an unnecessary warning message.  (If the length had been changed,  
     a warning would be welcome!)  Usage note V6-SYS.SYS-0923 discusses 
     the intention to eventually eliminate the unwanted warning and to  
     provide a warning if a change is requreste in the length.  This had
     been fixed in 5.18, but was not retrofitted into 6.06.             
 19. The infile exit that decompresses Landmark's compressed CICS data  
     records and was provided by MXG in member EXITMONI for SAS 5.18,   
     was re-written for SAS 6.06 by the Institute and is provided in    
     the 6.06 distribution library member SAS606.BAMISC(TMONEXIT).  That
     member contains the JCL and ASM source code to assemble and link   
     edited a load module (named TMONEXIT for 6.06) into a load library 
     that is then concatenated to your STEPLIB. Since the load module in
     6.06 (TMONEXIT) is different than the two load modules in SAS 5.18 
     (SASTMNP and SASTMNX), the same load library could be used for both
     SAS Versions.  Under either SAS 6.06 or 5.18, the MXG invocation of
     the decompression infile exit is identical. Edit member IMACMONI to
     add the keyword TMON to the INFILE statement (see comments therein)
     and the infile exit will then be invoked to process both compressed
     or and uncompressed records automatically.                         
 20. SAS 6.06 no longer uses the FT11F001 or FT12F001 DDNAMES for the   
     SASLOG or SASPRINT output files.                                   
 21. The options in effect for SAS 6.06 execution are controlled by the 
     CONFIG ddname in your JCL.  The options that have been used in the 
     MXG testing under SAS 6.06 in MVS/XA batch are contained in member 
     CONFIG of the 8.2 library, and are printed below in Change 8.068.  
     These are not necessarily the correct or final set of options that 
     MXG will recommend after more is known, but they are provided so   
     that at least you know what was used in MXG testing.               
 22. SAS 6.06 changed the way the ID statement works with procedures.   
     The ID statement is used to carry variables from the input data set
     to the output data set. Under 5.18 the values were taken from the  
     first observation in each BY group.  In SAS 6.06 the values are now
     taken from the input observation which has the maximum (optionally,
     the minimum) value of the string built by concatenation of values  
     of the ID variables. As long as all values are the same for a BY   
     group, it does not matter which observation is chosen, but if the  
     value of an ID variable is not constant within the BY group, you   
     could see different output values between 5.18 and 6.06. It has not
     yet caused a problem with MXG, because it is believed that in all  
     cases where an ID statement is used, the values will be the same   
     for each BY group, but there could be a difference.                
     d. Performance measurement comparisons and performance zaps.       
  1. ZAP Z6060652 recommended.                                          
     The compile CPU time for %MACROs is excessive when large parameters
     are used. In SAS 5.18, option MWORK=28K was necessary for %ANALDB2R
     (DB2 reporting) because of the large size of character parameters, 
     but MWORK is not a 6.06 option. This ZAP re-designed the allocation
     of parameter workspace in 6.06. The before-zap CPU TCB 3090-200E of
     311 seconds was reduced to 84 seconds after this zap, but even with
     this zap 6.06 is 3 times higher than the 28 seconds 5.18 required. 
                       MVS/XA After Zap comparisons                     
                 5.18 TCB sec     6.06 TCB sec    Ratio 6.06 to 5.18    
      3081K         64.96           174.58            2.68 times        
      3090-200E     28.16            84.24            2.99 times        
      3090-200S     34.00            73.60            2.16 times        
  2. PROC SOURCE of MXG.SOURCLIB, 3090-200E MVS/XA CPU measurements.    
      Ver       EXCPs    SRM Active    CPUTCB Time   CPUSRB Time        
      5.18      6015      50.37 sec     2.25 sec       .60 sec          
      6.06      5076      71.72 sec     5.78 sec       .79 sec          
      TCB CPU is 2.5 times higher with 6.60.                            
  3. TESTIBM step (builds 150 data sets, with zero obs, then printed    
     250+ pages of PROC CONTENTS), on 3090-200 under MVS/XA:            
      Version   EXCPs    SRM Active    CPUTCB Time   CPUSRB Time        
      5.18     75,048    935.81 sec    61.62 sec      6.61 sec          
      6.06     17,131    576.29 sec   151.38 sec      2.56 sec          
      6.06*    16,364    646.94 sec   149.20 sec      2.47 sec          
      6.06**   11,908    630.46 sec   290.01 sec      4.07 sec          
          * - specified BLKSIZE=23040 as OPTIONS, but PROC CONTENTS     
              still showed 6144 byte blocksize of WORK data sets. Why?  
         ** - specified DCB LRECL and BLKSIZE as 23040 on WORK DD.      
     TCB CPU (at 6144) is 2.43 times higher, 4.75 times higher at 23040.
     Must investigate and understand BLKSIZE and BUFNO impact in 6.06.  
  4. BUILDPDB with a day's data, SAS blksize 6144, 3081-K under MVS/XA: 
      Ver       EXCPs    SRM Active    CPUTCB Time   CPUSRB Time        
      5.18     27900    1075.61 sec   303.49 sec      7.08 sec          
      6.06     17550    1003.43 sec   432.97 sec      5.94 sec          
     TCB CPU is 1.42 times higher with 6.06 than with 5.18.             
  5. Under CMS SAS 6.06, processing VM/Monitor data used more virtual   
     memory (from 900K to 3500K), more CPU (from 142 to 208, or 1.46    
     times more), and the elapsed time increased from 18 to 22 minutes. 
     e. Summary of MXG required or recommended SAS ZAPs for 6.06.       
          Z6060288   Z6060529   Z6060571   Z6060611                     
          Z6060640   Z6060652   Z6060653   Z6060703                     
          Z6060872   Z6060874   Z6060938   Z6060946                     
III. Documentation and Installation of MXG Software Source Library.     
Member CHANGES contains the current MXG version status and changes that 
have been installed in that library. Member CHANGEnn is a copy of the   
member CHANGES as it was when MXG version nn was created.  Details on   
enhancements will be found in the text of the Change description that   
made the enhancment (in the CHANGES and CHANGEnn members).  The text of 
all changes is printed in MXG Newsletters. The CHANGES members can also 
be scanned online (with SPF BROWSE) to search for specific product name 
references (CICS, MVS/ESA, etc.). The CHANGES member in a library is    
always more accurate and timely than the text printed in newsletters.   
The text of each Change identifies the member(s) affected by each change
and additional documentation (especially for new product support) often 
is contained in comments at the beginning of those affected members.    
Member NEWSLTRS contains the text of all newsletters (up through the    
newsletter that accompanied that MXG release). You can search NEWSLTRS  
for product name or acronym to find the technical notes, APARs, etc.    
from all MXG newsletters.  (The Change Log of each Newsletter is not    
replicated in member NEWSLTRS, since that text will be in CHANGES).     
Member DOCVERnn is the "delta-documentation" (in abbreviated Chapter    
FORTY style) of only those variables and datasets that were changed     
between successive MXG Versions. There is a DOCVERnn "delta" member in  
the MXG library for each version.                                       
Penultimately, member DOCVER contains abbreviated Chapter FORTY format  
that documents all of the 24,690 variables from the 759 MXG data sets   
that can be created by that MXG Software Version (alphabetically by data
set name and variable name).                                            
Finally, MXG is a source distributed system, so you can often find your 
answer by BROWSE/EDIT of the source member, especially the VMAC...'s    
that actually create the data set, or ANAL....'s that analyze the MXG   
datasets. In many instance, the MXG Variable is the IBM or Vendor's     
documented field name. In other cases, the IBM field name is carried as 
a comment beside the MXG variable that contains that information.  In   
all cases, you should also have the Vendor's documentation of the       
particular data record you are using for analysis.                      
The MXG Installation instructions are found in Chapter 32 of the MXG    
Supplement for both new installation and for version replacement.       
The MXG tape is distributed as a Non-Labelled (NL) tape with a single   
file, DCB=RECFM=FB,LRECL=80,BLKSIZE=6160, that is actually an unloaded  
Partitioned Data Set containing 1100+ members (and about 250,000 source 
lines) in IEBUPDTE format. Under CMS, this format is read with the CMS  
TAPPDS command, under MVS the IEBUPDTE utility program is used.         
The PreRelease 8.2 SOURCLIB requires SPACE=(CYL,(30,1,199)) using a DCB 
attribute of DCB=RECFM=FB,LRECL=80,BLKSIZE=23440.                       
The PreRelease 8.2 SASLIB format library for SAS Version 5.18 (built by 
the first step of JCLTEST) requires SPACE=(CYL,(3,1,99)) and its        
blocksize is set by PROC FORMAT under SAS 5.18.  If you are executing   
PreRelease 8.2 under SAS Version 6.06, the LIBRARY DD is used in the    
first step of JCLTEST and will need SPACE=(CYL,(10,1)). See Newsletter  
SEVENTEEN for a discussion of Format libraries under SAS 6.06.          
       Sep 1, 1990 addendum: Excess space required by format library was
         a problem only in 6.06 beta and was fixed in April 6.06.01. The
         SAS 6.06 format library for MXG need only be CYL,(1,1).        
Always read comments in the CHANGES member for any compatibility issues,
as well as for any last minute changes added after Newsletter printing. 
IV.  CHANGE LOG                                                         
--------------------------Changes Log---------------------------------  
 You MUST read each Change description below to determine if a Change   
 will impact your installation.  All of these changes have been made    
 to this MXG Source Library.                                            
 Member CHANGES of the MXG SOURCLIB will always be more accurate than   
 the printed changes in a Newsletter, because the software is created   
 after the newsletter is sent to the printer!                           
 Member CHANGES always identifies the actual version and release of     
 MXG Software that is contained in that library.                        
 The actual code implementation of some changes in MXG SOURCLIB may be  
 different that described in the printed NEWSLETTER (which might have   
 printed only the easily installed, critical part of the correction).   
 Always read the comments at the beginning of each source member named  
 under the Change Number when you receive a new Version of MXG.         
 Documentation of new datasets and variables, validation status, notes, 
 etc., are usually in comments in the source members.                   
 If you have to install printed changes from an MXG Newsletter, you     
 could copy the affected member(s) from MXG.SOURCLIB into your existing 
 USERID.SOURCLIB and then make these changes therein.  Use SPF 3.3      
 COPY command instead of the COPY subcommand of EDIT to avoid renumber. 
 Or alternately, you might create a new PDS, named MXG.CHANGLIB, and put
 these in-between-version changes in that PDS, concatenating it between 
 USERID.SOURCLIB and MXG.SOURCLIB until you get the next MXG version.   
 When you do, you then delete this MXG.CHANGLIB library, as the changes 
 will have been installed for you in the new MXG version.  It is wise to
 record your changes in a member named CHANGES in the installation's    
 USERID.SOURCLIB as a permanent log of tailoring, etc.                  
 Whenever you install changes or test a new version of MXG (or even for 
 your own reports), be extra careful to look on the SAS log for any real
 error conditions. Search for all occurrences of "ERROR:"  "ERROR :"    
 "UNINITIALIZED" "NOT CATLGD", as they usually indicate a serious error.
 PROC PRINT and PROC MEANS of each new MXG-built SAS dataset will go    
 a long way in explaining their contents, and can be examined to detect 
 unusually large, negative, or suspicious values.                       
 Summary of critical actions to be taken in installing new version:     
     a. All IMAC.... members in your USERID.SOURCLIB must be compared   
        with the new IMAC.... members, and if there is a difference,    
        you MUST start with this version's IMAC and retrofit your       
        installation changes.                                           
     b. It is always wisest to PROC PRINT the first 50 observations of  
        important datasets, especially PDB.JOBS, which can be affected  
        by user tailoring in IMACPDB. A visual scan will often alert you
        to unexpected results.                                          
Alphabetic INDEX of significant changes:                                
  Member    Change   Description                                        
  ANALDB2R  8.030  DB2 Reporting from GTF data fails.                   
  ANALDB2R  8.031  DB2 Report PMLOK03 fails with 170 format error.      
  ANALDB2R  8.067  Report selection by time frame incorrect, minor.     
  ANALDSET  8.077  ACCESS variable was not created, report failed.      
  ASMTMNT   8.070  MXG Tape Mount Monitor on 7.7 does support MVS/ESA.  
  ASUMCICS  8.023  Variable LENGTHs caused trunction.                   
  ASUMCICS  8.076  Response buckets off by one.                         
  ASUMJOBS  8.076  Response buckets off by one.                         
  ASUMTMNT  8.076  Response buckets off by one.                         
  CONFIG    8.068  SAS 6.06 options member added to MXG library.        
  EXACFJR   8.047  ACF2 dataset ACF2JR may have deleted observations.   
  FMXGUCBL  8.009  Returns wrong value under SAS 5.18.                  
  JCLTEST   8.001  Options MACRO DQUOTE MWORK=28K required by MXG.      
  JCLTEST   8.025  WORK.DIRMACR REQUIRES MORE SPACE error condition.    
  JCLTREND  8.058  PROC SORT added to avoid not-sorted condition.       
  NPM       8.038  NPM records from VM can be processed.                
  TYPE110   8.065  Support for new CICS 3.1.1 major changes.            
  TYPEDCOL  8.074  Support for SMS DCOLLECT data records.               
  TYPEIMS   8.006  IMS crashes caused duplicate DTOKEN.                 
  TYPEMONI  8.036  CREATIME in MONITASK may have wrong date.            
  TYPEORAC  8.080  Support for Oracle SMF record.                       
  TYPETSOM  8.007  Missing STRTTIME in TSOMCMND.                        
  VMAC110   8.040  CICSTRAN may have 0 observations with CICS 1.7.      
  VMAC1415  8.017  New HiperBatch counts added to SMF type 1415.        
  VMAC37    8.022  Variable KEEP, FORMATs.                              
  VMAC39    8.022  TYPE39EL conditionally created. ZDATE kept.          
  VMAC41    8.015  New VLF counts in new subtype 3 SMF type 41.         
  VMAC6     8.057  STOPOVER due to invalid external writer record.      
  VMAC6156  8.027  STOPOVER error with ICF catalog record section.      
  VMAC6156  8.034  Minor. Variable FUNCTION more values decoded.        
  VMAC6156  8.039  TYPE6156 VOLSER may be wrong for GDGs.               
  VMAC7072  8.066  Support for new "SRCL" field in RMF Product section. 
  VMAC78    8.049  TYPE78CF only output if CHPID is online.             
  VMAC79    8.012  STOPOVER correction, support validation.             
  VMAC79    8.055  Formats and units corrections.                       
  VMACACF2  8.002  ACF2 SMF record caused STOPOVER.                     
  VMACCIMS  8.064  Support for IMF 2.6 (for IMS 3.1).                   
  VMACCRAY  8.044  New code. Support for CRAY COS operating system      
  VMACDMON  8.003  Uninitialized variable in ANALDMON caused.           
  VMACIDMS  8.005  IDMS SMF record variables format incorrect.          
  VMACIMS   8.042  Minor IMS log processing changes.                    
  VMACNSPY  8.010  NETSPY 3.2 support was incomplete.                   
  VMACNSPY  8.043  Netspy 3.1 STOPOVER.                                 
  VMACROSC  8.028  ROSCOAUD contained zero observations always.         
  VMACSMF   8.013  DB2 read from GTF. Minor.                            
  VMACSYNC  8.020  Invalid CPUTCBTM value detected.                     
  VMACSYNC  8.056  SIRECFM,SORECFM contain invalid data value.          
  VMACTMNT  8.033  Minor. Formats for DEVFROM/DEVTO.                    
  VMACTPX   8.016  No observations in TPXINTRV.                         
  VMACVMON  8.037  Divide by zero.                                      
  VMACVMON  8.045  24APR90 became 02OCT89 when 202 day clock wrapped.   
  VMACVMXA  8.004  OMEGAMON/VM creates invalid VM/XA VB records.        
  VMACVMXP  8.041  Minor EXPLORE/VM processing changes.                 
  VMACVVDS  8.073  Validation of VVDS record created by ASMVVDS.        
  VMACX37   8.024  STOPX37, minor.                                      
  VMACZRB   8.054  RMF 4.1.1 caused STOPOVER.                           
  VMACZRB   8.079  Further validation, release independent RMF III.     
Alphabetic INDEX of significant changes (continued):                    
  Member    Change   Description                                        
  VMXGSUM   8.021  Missing variable initialization protection.          
  VMXGVTOC  8.018  OFFSET4E and SMS variables added.                    
  VMXGVTOC  8.032  Minor. RECFM should be $4.                           
  VMXGVTOC  8.075  Did not capture free space at beginning of volume.   
  VMXGVTOR  8.009  Incorrect on 7.7, changes not propagated.            
  XMAC7072  8.014  ZDATE not kept in TYPE70PR and TYPE72MN              
  XMAC71    8.014  Extraneous period.                                   
  XMACEPIL  8.019  Plus sign missing. Don't use VMACEPIL or XXACEPIL.   
  ZZZZZZZZ  8.011  Final member of MXG Library is named.                
Inverse chronological list of all Changes 8.080 thru 8.001