This is MXG Version 5.5, the production release of MXG Version 5.     
  MXG Software Status as of December 17, 1987, thru Change 5.173.       
   What's new in Version 5.                                             
  1. MVS 2.2 support.                                                   
     - New type 36 ICF Export/Import SMF record.                        
     - New type 41 Data-In-Virtual SMF record.                          
     - Changes in existing SMF/RMF records.                             
  2. VM/SP Release 5 support.                                           
  3. SAR Accounting record support.                                     
  4. SAR Type 6 record support.                                         
  5. DASD storage measurement system (dynamically read all VTOCs).      
  6. IDMS 10.1 Performance Monitor record (new data sets) support.      
  7. ACF2 user SMF record support.                                      
  8. DB2PM validation and reports.                                      
  9. IMS log processing re-designed and supported for IMS 2.1.          
 10. STOPX37 user SMF record support.                                   
 11. RMF Cache Reporter validation and enhancement.                     
 12. CICS 1.7 cleanups, enhancements, and more decoding.                
 13. DFSORT Release 9 support.                                          
 14. VM/Monitor summarization.                                          
 15. Vector Processor measurement.                                      
 16. TYPE64X data set for VSAM extents.                                 
 17. SYSLOG JES3 processing and JES2 SYSLOG example.                    
 18. EDP Auditor Reports from RACF type 80 data.                        
 19. Eight CPU engine (3090-800?) C.E.C. Support.                       
 20. Online Business Systems WYLBUR Accounting SMF record support.      
 21. TSO/MON Version 5.1 support.                                       
 22. Extended Storage measurement enhanced.                             
 23. 3480 tape drive error counting in TYPE21 added.                    
 24. Separate counts of 3420 and 3480 tape drives in type 30 and PDB.   
 25. VSAM VVR Type 60 record decoded.                                   
 26. NETVIEW modifications to NLDM record supported.                    
 27. RMDS support.                                                      
 28. SYNCSORT user SMF record support.                                  
 29. CINCOM SUPRA log record support.                                   
 30. VM Account LOGOFF record support.                                  
 31. ROSCOE 5.5 SMF Account record support.                             
 32. IMF 2.3 support for DDNAME level I/O counting.                     
 33. NETSPY support.                                                    
 34. OMEGAMON EPILOG 1000 support.                                      
 35. Externalized BUILDPDB macro definitions in IMACPDB.                
 36. HOGAN FPS transaction function code data support.                  
 37. CICS 1.7 EXCLUDE option "support".                                 
 38. IDMS Performance monitor from IDMS journal file supported.         
 39. Landmark's SPECIAL 78 zap (adds CICS 1.7 MRO fields) support.      
 40. Naming conventions established for MXG's use of "New style" macros.
 41. Elimination of excess tape mounts for monthly and weekly jobs.     
   What did not get completed in MXG Version 5.5:                       
  1. VM HPO Release 5 has not been tested. IBM documentation indicates  
     no change in the data, but no user has confirmed this to be true.  
  2. BUILDPDB enhancements (which will use the new macro facility) to   
     more easily control variable selection (eg, XA only, etc.) were not
     completed. IMACPDB externalized the controls for you to give you   
     control without the additional complications and naming conventions
     needed when we actually do this enhancement. It is still planned.  
  3. The MVS Tape Mount Monitor code is not yet operational. The ASM    
     source code (ASMONTAP) is on this library, but needs modifications.
     One volunteer will examine the code next spring.                   
  4. TYPE64 data (see technical note, below) has not yet been added to  
     ANALDSET algorithms to resolve the incorrect type 64 counts.       
  5. IMS log processing puts waiting for input transactions in IMSMSGOT 
   Other 1988 expectations:                                             
 IBM  announced  plans for operating system changes next year which will
 likely require changes to MXG software.  IBM dates given below are  the
 availabilty  date  in  the IBM announcement.  We always hope to provide
 MXG support by availability date, if we can get both documentation  and
 test  data in time.  We will likely repeat the strategy of the past two
 years:  a spring newsletter to announce when  the  pre-release  of  the
 next  MXG version is available, and a production MXG version shipped to
 all customers in the fall.                                             
 a. March, 1988. Expected availability of VM/XA SP1, with a complete    
    new set of monitor records, new format, and zero compatibility with 
    current VM/SP VM/Monitor data.  IBM says there will be no VM MAP for
    this new VM/XA monitor, but MXG will be there.                      
 b. May, 1988. PTF to MVS 2.2 which adds VIO activity fields to TYPE71  
    data (this PTF permits VIO to be directed to Extended Storatge).    
 c. Unknown. PTF to add JOB and READTIME which IBM  left out of the new 
    MVS 2.2 Type 41 (Data In Virtual) SMF record.                       
 d. December, 1988. Expected availability of VM/SP Release 6, with many 
    new data elements added to existing VM/SP VM/Monitor. This release  
    includes the new VM Shared File System, which creates new data.     
 e. Unknown. We expect to enhance MXG to support the PDL data written by
    the FACOM OSIV/F4 MSP operating system.                             
 f. Unknown. Other rumored impacting events may be CICS 2.1, a new DB2  
    release, and DOS/VSE Power record changes.                          
   The 5.1 tape was tested for forty days and nites at forty sites.     
   The 5.2 tape has been executing at over 75 sites since August. All   
   problems reported were fixed in the 5.3 tape, sent to an additionaly 
   30 sites. The 5.4 tape was the final pre-release before production,  
   ans was sent to an additional 30 sites. As promised in Newsletter TEN
   (June, 1987), MXG Version 5 production was built before the end of   
   Fall, 1987 (which ends December 21, 1987). Merry Christmas!!!        
                      TRIVIA:  Halloween is equal to Christmas:         
                               OCT 31   =    DEC 25                     
                               Think about it!                          
   The changes described in this member are already in this MXG version.
   They are listed below, after the technical notes. You must read each 
   description of all changes to ensure that you understand their impact
   on your installation. Changes thru 5.99 were on the 5.1 pre-release, 
   the 5.2 pre-release include changes thru 5.125, 5.3 was thru 5.143,  
   and changes through 5.165.  Changes 5.1 through 5.74 were printed in 
   Newsletter TEN, and changes 5.75 through 5.166 were printed in the   
   Newsletter ELEVEN. Changes 5.167 through 5.173 were added after the  
   newsletter went to press.                                            
COMPATIBILITY EXPOSURES:                                                
 1. The aggregation interval of RMFINTRV data set was relocated in the  
    new member IMACRMFI, instead of being defined inline.               
 2. VM/Monitor users must read Change 5.133. The meaning of VMONDEV data
    set variable CNTVIOCT was altered. A new macro, _INTRVL, is defined 
    in IMACVMON which must be changed if the interval between VM/Monitor
    records is not the one minute default set by MXG.                   
 3. BUILDPDB/3 users who have modified those members will find IMACPDB  
    now contains (hopefully) all the definitions to allow you to locate 
    your tailoring external (in IMACPDB) instead of internally.         
 Note:   The PTF or APAR numbers were provided by some system programmer
 who has actually installed this fix, but sometimes the number  will  no
 longer  be valid;  IBM supercedes and replaces PTFs, and one APAR often
 has several PTFs for the same logical problem.   Use  this  information
 only to search INFO/MVS for more information and exact status.         
HOT PTFs: MVS:                                                          
 MVS  2.1.7  PTFs  OZ44728  and OZ92196 appear to finally solve the long
 outstanding constraint that the SMF interval (for type 30s and 32s) had
 to  be greater than JWT.  These PTFs apparently are already in MVS 2.2,
 and the documentation still recommends that the  Interval  duration  be
 greater than JWT, but experimental system programers have reported that
 that recommendation is no longer a requirement.  Don't take my word  on
 this, but I think it's probably true.                                  
 A  new  PTF  (only for MVS 2.2 and later) finally allows you to specify
 BLKSIZE of the SMF data.  Requested through SHARE in the CME project in
 1973,  it has finally been acknowledged in APAR OY07209 and implemented
 in PTF UY12002.                                                        
 MVS 2.1.3 and 2.1.7 do not write type 7 records when SMF  recording  is
 lost!  Fix is PTF UY12608.                                             
 For 3090-400s, 300s, and 600s with 128MB real memory, there are lots of
 performance problems if you do not install  OY01085.   Your  CE  should
 have caught this one for you.  MXG NL TEN misprinted this PTF number.  
 Overlay and loss of SMF records - many strange symptoms - fixed by     
 PTF UZ46460 and UZ48888-UZ48891. Critical, must be installed ASAP.     
 Incorrect SMF EXCP data, especially 30s, introduced by bad UZ45011,    
 fixed with UZ47837 (pre-reqs UZ47834-UZ47837 and UZ50314-UZ50316).     
 Noted loss of VSAM counts in type 30, was fixed by UZ47837.            
 Originally reported by MMA, complete loss of SMF data will occur with  
 DFP Versions 1.1.1, 1.1.2, or 2.1 if you have installed the PTFs for   
 APAR OZ96798, and you have NOT corrected the PTF-in-error condition    
 described by APAR OY02500. The SMF data loss condition is cause by a   
 problem in VSAM introduced by OZ96798 PTFs. Message IEE978E:  SMF NOW  
 HAS nnnnn BUFFERS will be issued after the initial number of SMF       
 buffers are used up, but there is no other external indication that all
 SMF records have been permanently lost.                                
 Incorrect counting of some tape mounts in type 30 records. After the   
 installation of UZ50959, tape mounts issued with message IEC501E (Look 
 ahead mount message) are not counted. Mounts with messages IEC501A or  
 IEC233A continue to be correctly counted. APAR OZ97886 describes the   
 problem, accepted by APAR OZ97617 which has the fix.  The problem      
 primarily affected multiple volume mounts; only the first volume mount 
 was counted in the type 30.                                            
HOT PTFs: VM:                                                           
 Concatenated MACLIBs on different mini-disks will fail;  only the first
 MACLIB in the concatenation will  be  searched  until  PTF  VM24283  is
 installed.   As long as the MACLIBs are on the same mini-disk, there is
 no problem with concatenation (as suggested for the  MXG  SOURCLIB  and
 USERID SOURCLIB libraries).                                            
Technical Notes, MVS:                                                   
 a. Counting allocated tape drives.                                     
 The following is a revision of a note originally in MXG Newsletter TEN:
 Counting of tape drives  (TYPE30_4  or  PDB.STEPS  variables  TAPEDRVS,
 TAPE3420  and/or  TAPE3480)  is  affected  if  the job step dynamically
 allocates tape drives.  For example, DB2MSTR  dynamically  allocates  a
 drive  every  time  the recovery data is backed up.  If each allocation
 happens to get a different tape drive,  the  step  record  for  DB2MSTR
 would  contain a different DEVNR (old UCB address) for each tape, which
 MXG would count as a large number of tape  drives.   Only  a  few  jobs
 actually  use  dynamic allocation (thank goodness), but they tend to be
 long running DBMS, which wreak havoc  on  the  number  of  tape  drives
 perceived  by ANALTAPE to be in use.  You must use the type 40 (Dynamic
 Allocation) record to find those jobs that  dynamically  allocate  tape
 drives, and exclude their step records before processing STEPS with the
 MXG ANALTAPE program.  Otherwise, it will appear the job step  had  all
 those tapes for the entire time the step executed.                     
    You can use the MXG Exit Facility to add type 40 processing, and  in
    the exit (EXTY40) and use:                                          
        IF DEVICE='3420' or DEVICE='3480' THEN OUTPUT TYPE40;           
    to only create observations for tape devices.                       
       VMAC40 reads in a 40 and calls VMACEXC1, which decodes  DEVCLASS,
       DEVTYPE,  and  DEVNR  for  each UCB segment.  VMACEXC1 then calls
       VMACUCB to decode DEVCLASS and DEVTYPE (hex) into DEVICE  (char);
       the value '3420' or '3480' is set for tape devices.              
    Since  SMF  offers  no option to create type 40's just for tape, you
    still have to create all type 40 records, but this use of the EXTY40
    exit allows you to keep only tape observations in TYPE40.           
 b. I/O Counts in TYPE70 and TYPE78IO.                                  
 The MXG Supplement noted that the I/O Interrupt Counts in  TYPE70  were
 observed  to be greater than the 3090 IOP I/O Activity in TYPE78IO.  It
 was pointed out that IBM notes (in LY17-5500) that  both  TYPE78IO  and
 TYPE70   count   SSCH   (i.e.   SIOs)  and  RESUMES,  but  that  TYPE70
 additionally  counts  PCIs,  Device  End  following  Channel  End,  and
 Unsolicited Interrupts.  The difference has been seen as 12-14% more in
 TYPE70.  Is this a useful indicator of anything?                       
 c. SMF TYPE64 (VSAM I/O) counts.                                       
 VSAM counts (EXCPs, SPLITS, etc.) in type 64 records are wrong  if  the
 VSAM  file  is concurrently opened.  These counts are the "change since
 open".  Four jobs which concurrently opened the same VSAM file and then
 read  9000  blocks, showed 9000, 18000, 27000, and 36000 EXCPs in their
 type 64 records.  The type 30 SMF record EXCP counts are correct.   The
 type  64  record  has  always  been this way;  only recently did a user
 investigate the data.  MXG will be  enhanced  to  de-accumulate  TYPE64
 data,  as ANALDSET does to de-accumulate TYPE1415 data.  You could find
 a CASPLIT count in a type 64, but the actual split may have been caused
 by a separate job.  You must sort all accesses to the same VSAM file by
 open time and examine the end time for potential  overlap  and  perform
 you own de-accumulation.                                               
 d. CPU and I/O measurements when writing tapes.                        
 In  creating  tape  copies of MXG Version 4.4, we used SYNCSORT's free,
 fast BETRGENR replacement for  IEBGENER.   Since  BETRGENR  copies  one
 cylinder  at a time, the 833 blocks of 6160 bytes each required only 11
 Start IO's, each SIO transferred 550KB of data in .44 seconds (you  can
 hear  the  voice  coil  humm  that long), but there was then a delay of
 about .6 seconds for the next SIO to commence (again, heard at the tape
 drive).   As  a result, while the channel capacity is 1.25 MB/sec, even
 with the transfer of 550KB per SIO, the effective channel capacity  was
 only  550KB/sec,  or  only  44% of IBMs stated capacity.  This was in a
 dedicated processor with no other work in progress.                    
 Furthermore, this was for a single copy of the MXG library.  The actual
 data transfer took 11 seconds for the 11 SIOs, but the physical loading
 of the tape, the swap in to reply (tapes are NL) and the rewind and the
 unload  time total just about one minute elapsed time.  Because we were
 waiting on the computer (THE definition of bad response)  we  allocated
 more  tape drives and found that with two tape apes (us), and four tape
 drives, we could create 100 tapes per hour.  Increasing the tape  drive
 count  to  six  drives  increased our production to 163 tapes per hour.
 Note at this rate of 163 5.5MB tapes written per hour, the tape channel
 was  still  only  utilized at 250KB per second, or only 20% of the peak
 transfer capacity.  The peak-to-sustainable rate here was 5 to 1.      
 This should point up the fallacy of using the peak  transfer  rate  (or
 any peak rate) as a measure of capacity, without determining the actual
 sustainable transfer rate.  IEEE Computer magazine recently had a  good
 discussion  with  regard  to  the ratio between peak mega-flop rate and
 achievable mega-flop rate on super computers, reporting typical  ratios
 also in the 5 to 20 range.                                             
 Each job executes 255 copy steps.  All steps except the first  recorded
 .40  or  .41 TCB seconds and .03 SRB seconds on a 3090-200.  With 5.5MB
 of data per step, this 13 MIPS (speed) processor is moving data at 13.4
 MB per second.  This is quite close to the one byte per one instruction
 rate first noted on page 842 of the MXG book!                          
 The first step of each job, however, required 1.06 TCB seconds and  .06
 SRB  seconds, or 1.12 total CPU seconds apparently because the CPU time
 for operator response to allocation recovery is captured in  the  step.
 Each job enters allocation recovery because its specific UCB address is
 offline at job initiation.  The IEF244I - "Unable to allocate"  message
 set  up  the  IEF238D  -  "Reply  Device  Name  or Cancel" WTOR and the
 R,99,181 reply apparently records .68 CPU seconds in the step record.  
 (The job which specifies VOLSER=MXG181 allocates UCB 181.  NL tapes are
 built so only one mount is needed, but require a reply to  confirm  the
 VOLSER.   With the UCB in VOLSER, the reply is fast and accurate.)     
 e. More EXCPs in 30's than in 4's and 34's.                            
 Several  sites have noticed approximately 10% more EXCPs are counted in
 the type 30 subtype 4 (TYPE30_4 data set) record than the EXCPs in  the
 step  type  4  (or type 34) for the same step.  The type 30 is correct,
 and the additional count in type 30 is due to the EXCP count to dynamic
 allocations, which are captured in 30s but never were captured in the 4
 or 34 records.  As described on page 628 of the MXG book, if  you  used
 4s  or  34s, you had to use the 40s also.  This is only one more reason
 why the type 30 SMF record has (since 1978) always and  all  ways  been
 better  than the type 4/34 records.  It's even worse for the 4s and 34s
 now.  In MVS 2.2, IBM turns on a new flag bit in 4s and 34s to tell you
 that  the  EXCP  data on this step is incomplete in the 4/34 record and
 you must use the type 30 for this step.  (This  happens  for  any  step
 with  more  than  1651  DD  cards).   STOP  USING 4's and 34's!  (MXG's
 BUILDPDB has always used only type 30s.)                               
 f. More CPUTCBTM in SMF than in RMF for a step.                        
 Step termination data shows that the SMF CPU TCB time in the  SMF  type
 30  can  be  slightly  greater than the RMF CPU TCB time in RMF service
 units in both the SMF type 30 and the RMF type 72 record for that step.
 The  step  recorded  8.13 CPUTCBTM seconds in TYPE30_4, but CPUUNITS in
 the step record (converted to CPU seconds) showed  only  8.08  seconds.
 This  step  executed  in  a  unique  performance  group, and the TYPE72
 CPUTCBTM was also 8.08 seconds for  the  interval  in  which  the  step
 executed.   This  is  not  statistically significant, but an IBM expert
 suggests  this  occurs  because  RMF  gets  it  service   unit   values
 (CPUUNITS,SRBUNITS) from the job data during step termination.  This is
 why the CPUUNITS in the type  72  data  matched.   However,  after  the
 service  units have been passed to RMF, the job is still in termination
 and the SMF clock is still accumulating true CPU  time  for  the  step.
 The  extra  CPU  time recorded in the SMF step record may be due to SMB
 processing (putting those termination messages on your SYSLOG  listing)
 or  it  could  be  installation code executing in SMF exits (perhaps to
 print the job costs on the "banner page" in SMF exit IEFU83 or IEFU84).
 At  this  site, there appears to be a fixed cost of .05 TCB seconds per
 step termination which is not recorded  in  the  TYPE72  CPUTCBTM,  but
 which  is  recorded  in  the  TYPE30  CPUTCBTM.   Even  at  1000  steps
 terminating each hour, this would be only  50  additional  TCB  seconds
 for each 3600 seconds, or only about one percent.                      
 g. MVS 2.1.7 page data set allocation size.                            
 The  Contiguous  Slot  Allocation  algorithm, the very efficient way of
 transferring up to 30 page frames contiguously with one  SIO  and  with
 minimal arm movement, was introduced for page data set I/O with MVS/370
 SP 1.3 in the late 70's.  Recently, several authors have concluded that
 the  algorithm will perform well only if the maximum number of slots in
 use is less than 25% of the slots allocated.  When the page data set is
 full,  the  algorithm  can  not  perform  well, because it can not find
 contiguous free slots.  This greatly increases the search  time,  which
 can  negate  the  positive  performance  of the algorithm.  For MVS/370
 VSCR, IBM had recommended minimizing the number of slots  allocated  to
 relieve  MVS/370  VSCR  because  a small amount of CSA is used for each
 slot allocated.  With only 50K-60K virtual storage saved,  real  paging
 is  likely  a  more  serious  problem,  and thus a larger page data set
 allocation may still be advised.  In early MVS/XA there also was a real
 problem  with  large  page  data sets causing excessive seek times, but
 that design error was fixed in MVS 2.1.2.  You can use the MAXUSED  and
 SLOTS variables in TYPE75 to see if you might have a problem, and could
 plot the percent used versus the service time  (AVGRSPMS  from  TYPE74)
 for each paging volume to confirm its real impact.  It is clear that an
 insufficient number of allocated slots will degrade the contiguous slot
 algorithm;   the  exact  percentage  at  which  you encounter increased
 service time may not be 25%, and you should construct your own data for
 h. Use STEP data for job ABEND analysis.                               
 Analysis  of  "Job" abends really must be done from the PDB.STEPS (from
 TYPE30_4  step  termination),  rather  than  from  the  PDB.JOBS  (from
 TYPE30_5  job termination).  The CONDCODE and ABEND variables (Page 578
 in the MXG Book, page 266 in the MXG Supplement) describe the value and
 the  type  of  termination.   ABEND  values  of SYSTEM or USER indicate
 abends and CONDCODE identifies the abend code, such as  SYSTEM  322  or
 USER  999.  An ABEND value of RETURN indicates that CONDCODE contains a
 return code value.  While both variables exist  in  both  PDB.JOBS  and
 PDB.STEPS,  the  ABEND  value  in  PDB.JOBS is from the job termination
 record, and can show an ABEND of SYSTEM for the job with a CONDCODE  of
 zero  if  the  step which ABENDed was not the last step!  The PDB.STEPS
 data is thus not only more accurate, but since many abends  result  are
 due  to  defective programs rather than defective jobs, using the STEPS
 data allows you not only to identify which JOB  abended,  but  also  to
 identify  the  name of the PROGRAM which abended.  You may even be able
 to  recognize  (by  your  program  naming  convention)  which  of  your
 development groups wrote the frequently-abending programs!).  PDB.STEPS
 data also identifies which step actually abended first when  there  are
 multiple abends (and when there are COND=EVEN and COND=ONLY steps).    
 CICS CMF record blocksize is set by the JCT BUFSIZE parameter, and     
 typically is only 6000, which should be increased to half-track on     
 3380s to reduce IO counts and CPU overhead in building CMF records.    
 NPM may produce negative square root when calculating standard         
 deviation, since SSQ field can wrap in NCP.                            
 Tape mounts in TYPE30_4 and PDB.STEPS does not include mounts issued   
 by JES3 for MDS mounts; they are counted in the JES3 Type 25 record.   
 Steps which mount a tape, and then RETAIN, will show zero mounts for   
 the subsequent step. If you want to identify steps which actually      
 use tape in any step, the EXCPTAPE and IOTMTAPE are much better        
 indicators of actual usage.                                            
 UCC7 can cause invalid READTIME error messages. There are two options  
 for UCC7 to identify jobs which are under its control. By default, the 
 eighth byte of JMRUSEID (the 'User identification field', MXG variable 
 LOCLINFO) is used. The UCC7 installer can choose any other byte of the 
 JMRUSEID if other products use the eighth. If all eight bytes are used 
 by other products, UCC7 will optionally store its flag in the first    
 byte of the Job Reader Date field. The normal value stored is a 'EE'X, 
 but if NCF is also installed, the field can take on almost any value.  
 When the Job Reader Date field is used, UCC7 traps each SMF record as  
 its being written and clears out the high order byte. Unfortunately,   
 the trap uses a table of SMF record IDs, and records which UCC7 does   
 not know about (such as the type 60, 61, 65, 66, 78, 80 and all user   
 records such as ACF2) are passed into the SMF file with an invalid     
 reader date. The result is a missing value for READTIME for these UCC7 
 controlled job records.  Pages 2 and 9 of the UCC7 Installation Guide  
 discuss these options, and UCCEL technical support has the fix for the 
 60's and 80 records, as well as advice for handling user SMF records.  
 If the record has the Reader Date in the "standard" location (bytes    
 27-30), the fix is simply to add the record ID to ICMDSECT. For records
 with relocatable format (like the type 78 record which can record a    
 specific job's virtual storage), more complicated instructions are     
 available from UCCEL.  Since MVS 2.2 will use the first byte of the    
 date field for dates in the next millennium, UCC7 designers are looking
 for an alternative.                                                    
Technical Notes, VM:                                                    
 There are two ways to hold SPOOL data in VM so that it exists after the
 spool data is read:                                                    
    SPOOL READER HOLD             holds the reader, while               
    CHANGE READER nnn HOLD        holds the file                        
 Hold only the reader, never hold the file, if you want the data to be  
 read. The CMS Diagnose 14 Subtype 1C command which is used to read the 
 monitor data in the spool, skips over held files.                      
 VM will not create VBS records. If you install MXG under CMS to read   
 SMF data, you cannot build the SMFSMALL data set described in the      
 installation instructions. Change the Filedef and the FILE statement in
 UTILGETM to build the SMFSMALL file with RECFM=VB,LRECL=32756, and     
 BLKSIZE=32760 on a 3380 disk and the program will work. Yes, it will   
 not make efficient use of the disk space, but SMFSMALL is only a small 
 test file of SMF data.  VM is capable of reading VBS input tapes, so   
 you should have no problem processing SMF under CMS.                   
Technical Notes, SAS:                                                   
 a. Eliminating tape mounts for SAS tape data libraries.                
 Many  users  have found that the weekly and monthly PDB jobs (described
 in Chapter Thirty-Five with examples in MONTHBLD and WEEKBLD) can cause
 lots  of  tape  mounts  and  rewinds.   Some sites have resorted to the
 parallel allocation of as many tape drives as there are tape volumes to
 avoid  mounts.  This problem is not unique to MXG, but results from the
 protective instincts of SAS when tape data sets are involved.   As  you
 will  see,  we  now  have a sucessful circumvention which minimizes the
 amount of temporary DASD needed by WEEKBLD and MONTHBLD, and completely
 eliminates the multiple rewinds and mounts for the output library.     
 The Present SAS Design:                                                
 SAS data libraries on tape volumes have no directory of what  SAS  data
 sets  are  where on the tape.  When a SAS SET statement needs to read a
 SAS data set from tape, SAS rewinds to the beginning of the  tape,  and
 searches  for  the desired data set.  When a SAS DATA step writes a SAS
 data set to tape, the tape is first rewound to the beginning,  and  SAS
 searches for the data set name.  If no match is found, SAS puts the new
 data set at the end of the tape.  (If a match is found, SAS starts  the
 new  data  set  where  the old one was found, erasing all old data sets
 after that point on the tape.)                                         
 The Source of the Problem:                                             
 The required rewind spins the tapes a lot.  If  the  SAS  data  library
 fits  on  a  single volume, there is not too much of a problem.  But if
 the output tape library expands to a second tape  volume,  each  rewind
 (i.e.,  each  new  SAS  data  set)  causes  the  second  volume  to  be
 dismounted, the first volume to be mounted and searched, and  then  the
 second  volume  remounted and searched, and finally the new data set is
 laid down at the end of the tape!  This always  occurs  when  SAS  DATA
 steps create the tape data library.                                    
 Past Circumventions:                                                   
 One solution was to build all of the desired SAS data sets on disk, and
 then  use PROC COPY from disk to tape.  The PROC COPY knows it does not
 need to rewind before each data  set.   While  this  avoids  the  mount
 problem,  it  requires  as much temporary DASD space as the size of the
 entire SAS data library, which is why it was not recommended.          
 The New Solution:                                                      
 Each  new  SAS  data  set  is  first  built  on temporary DASD in "tape
 format", and then is copied to the output tape using FILE/INFILE logic,
 exploiting the SAS CLOSE=LEAVE option to hold the output tape in place.
 The temporary DASD data set is then erased, so that the job needs  only
 as much DASD space as the size of the single largest SAS data set to be
 created.  The "tape format" is created if the DDNAME of  the  SAS  data
 set  being  created  starts with TAPE...., and is necessary so that the
 SAS data set can be copied with the FILE/INFILE logic.   The  following
 partial  example  shows  how  this  is  done  (see  member MONTHBLD for
 complete implementation):                                              
  //            DSCB=SYS1.MODEL,LABEL=EXPDT=99000                       
  //TAPETEMP DD DSN=&TEMP,UNIT=SYSDA,SPACE=(CYL,(10,10))                
      DATA TAPETEMP._DSET;                      create _DSET in TAPETEMP
        SET WEEK1._DSET WEEK2._DSET ...   ;     input data sets         
        BY _BYLIST:                             sort order variables    
        IF date selection logic;                selection criteria      
      DATA _NULL_;                              copy _DSET to MONTH     
        INFILE TAPETEMP;                                                
        FILE MONTH MOD CLOSE=LEAVE;                                     
PUT _INFILE_;                                                           
      DATA _NULL_;                              write EOF to TAPETEMP to
        FILE TAPETEMP;                           "scratch" _DSET        
 These three DATA steps are then repeated for each data set to be built,
 by invoking the _MNTHBLD macro as shown in member MONTHBLD.  Our thanks
 to Susan Marshall, SAS Institute, for  this  circumvention.   The  only
 additional  cost  is  the  extra copying of each output data set.  This
 solution only eliminates mounts for the output SAS  data  library.   If
 the  input  data  sets  are  on multiple volumes, each new data set may
 causes the same rewind and dismount/mount sequence.  These input mounts
 can  only be eliminated (at present) by specifying multiple units where
 necessary, eg., with UNIT=(TAPE,2) for a  two-volume  input  tape  data
    SAS  Institute  is  investigating a new SAS option which might allow
    you to override that "rewind and search" algorithm  for  both  input
    and  output tape data libraries.  Provided the order of building new
    data sets is the same as their order on the  input  data  libraries,
    such an option could completely eliminate the unnecessary mounts and
    unnecessary copy steps.  No commitment has been made by SAS yet.    
 However, early experience with  this  circumvention  is  overwhelmingly
 positive  - fewer tape drives, fewer tape mounts, significant reduction
 in elapsed time, all for a few seconds of  I/O  time!                  
 b. SAS ZAPs which you should install.                                  
  ZAP 516.2525     Corrects (erratic) error condition in PROC PLOT if   
                   data set has zero observations.                      
  ZAP 516.4592     PROC FORMAT can cause a "STOW failure" message on the
                   SAS log (no error condition, no abend) if the PDS to 
                   which the formats are being written does not have    
                   enough directory blocks defined. Some formats will be
                   missing, with no notification. This ZAP tells you.   
 c. SAS Options which you should be aware of.                           
  FREE=CLOSE       either as a SAS option or on a DD card in a SAS job  
                   interferes with the IBM STIMER routine, which is used
                   to measure SAS step CPU time. FREE=CLOSE has caused  
                   unpredictable USER 999 ABENDs with the SAS error     
                   message CPU TIME EXCEEDED and a large value of CPU   
                   time shown on the SAS log. The value on the log is   
                   wrong (see the Step Termination message to confirm)  
                   but the STIMER poped and SAS shut the step down.     
                   Either do not use FREE=CLOSE, or use the SAS NOSTIMER
                   option, which eliminates the problem, but will also  
                   eliminate the CPU used message on the SAS log.       
  NOMEMFILL        Should always be specified, MEMFILL is a SAS debug   
                   developers option which should never be used, as it  
                   causes a seven-fold increase in CPU time.            
   The following changes are already in the Production MXG 5.5  library.
   Some of the changes contain the code with line numbers, because those
   changes were originally distributed (via prior newsletter,  telephone
   or telefax to correct immediate problems.  Just for your information,
   lines to be inserted have a period after the line number they are  to
   follow;   existing  lines which needed no change (usually included to
   locate the change) have no period in their line number.              
   While this newsletter hits the high spots, you must read each  change
   description  to  ensure that you understand their potential impact to
   your installation.                                                   
   ALWAYS read member CHANGES for last minute changes and  notes.   This
   newsletter  is  mostly  an editied version of CHANGES slightly before
   the production library is created.                                   
   ALWAYS  read  each  member  listed  under  an  impacting  change  for
   additiona comments, notes, and any last minute documentation.        
   Members  DOCVER  and  DOCVER05 document the entire collection of data
   sets created by MXG (DOCVER), and  the  delta-documentation  of  data
   sets and variables changed between MXG Version 4.4 and 5.5.          
NEXTCHANGE: Version  5                                                  
=============Changes thru 5.173 as of Dec 17, 1987 ===================  
==================completed MXG Version 5.5.==========================  
--Changes 5.167-5.173 were added after Newsletter ELEVEN was printed--  
Change 05.173     Processing of IMF (Control/IMS) records from Boole &  
Dec 17, 1987      Babbage with IMS Release 2.0+ was failing. The test of
VMACCIMS          IMSLEVEL NE:'13' caused old format INPUT statement to 
                  be executed. Test is now either LT:'13' or GE:'13'.   
   Thanks to Dave Lawrence, NCNB of Florida, USA.                       
Change 05.172     CICS 1.6 dictionary entry for USER field with length  
Dec 17, 1987      of zero (i.e., no USER field in your data) caused an  
UTILCICS          unnecessary, incorrect and superfulous MXG message.   
Change 05.171     Support for CICS 1.7 PTF UL14896 (which adds a new    
Dec 16, 1987      SCWTETIM field to CICSEXCE exception data set). MXG   
IMACPTF           creates variables SCWTETM and SCWTECN for the field,  
UTILCICS          which reports time in suspend because unconditional   
VMAC110           storage request was not satisfied.                    
   Thanks to Joseph J. Faska, Chemical Bank, USA.                       
Change 05.170     Some complexity-level-4 variables had level-3 in their
Dec 16, 1987      labels. Labels are now correct. Member ANALRTM1 (only 
ANALROSC          existed in pre-releases) was eliminated by rewrite of 
IMACROSC          ANALROSC. Read important comments in ANALROSC, as it  
TYPEROSC          now deletes "useless" ROSC.... and RRTM.... data sets.
VMACROSC          New macro _ROSCDDN is now defined in memeber IMACROSC 
                  to name the DD to which final ROSCOE data sets are to 
                  be written:  _ROSCDDN.ROSCOE, _ROSCDDN.RRTMPSE and the
                  _ROSCDDN.ROSCAWS "important" data sets. Less important
                  data sets ROSCOAUD, ROSCOSHU, and ROSCOVPE are left in
                  the work file.                                        
   Thanks to Terry Trevier, Naval Construction Battalion Center, USA.   
Change 05.169     The SMF interval recording INTERVAL variable was read 
Dec 15, 1987      with TODSTAMP8. (an IBM TOD datetime value) instead of
VMAC90            with MSEC8. (a TOD time value). As a result, it was   
                  printed as -525935 hours and 25 minutes  - the correct
                  number of hours backwards from 01JAN1960 (SAS's zero  
                  datetime) to 01JAN1900 (IBM's zero datetime).It now   
                  will correctly print 00:30:00 for thirty minutes      
   Thanks to Shawn Wikle, Citibank South Dakota, USA.                   
Change 05.168     The %%INCLUDE which should have been %INCLUDE now is. 
Dec 15, 1987                                                            
   Thanks to Chuck Rexroad, Perpetual Savings Bank, USA.                
Change 05.167     The NETSPY support (Change 5.164) was written with no 
Dec 15, 1987      knowledge that Duquesne provided sample SAS code with 
ANALNSPY          the product. With Duquesne approval, NETSPY support   
EXNSPYAP          now uses almost all of their variable names, so as to 
EXNSPYLU          preserve any reports you might have already written.  
EXNSPYLI          The MXG data sets created are different than in 5.4:  
VMACNSPY          four data sets created. Exits EXNSPYSE and EXNSPYTE   
                  were deleted and EXNSPYLU and EXNSPYLI now exist. Data
                  from NETSPY 3.0 has now been tested. The default PROC 
                  PRINT reports from Duquesne's sample are in ANALNSPY. 
   Thanks to Andy Schoentrup, Public Service of Indiana, USA.           
   Thanks to Luis Motles, Duquesne, USA.                                
==========Newsletter ELEVEN printed changes through 5.166=============  
=============Changes thru 5.166 as of Nov 24, 1987 ==================   
Change 05.166     The monthly MXG job can cause lots of tape mounts and 
Nov 24, 1987      rewinds when a SAS DATA step writes multiple data sets
MONTHBLD          to tape (SAS is preventing duplicate named data sets).
                  this change is a circumvention which writes the new   
                  data sets first to a temporary disk file, but by using
                  a DDNAME starting with TAPE...., the data set is built
                  in "SAS tape format", which can then be copied from   
                  the temporary disk file to the monthly tape with an   
                  INFILE/FILE pair, which eliminates the rewinds.  The  
                  temporary TAPETEMP file only needs to be as large as  
                  the largest single data set to be created. See the    
                  code and comments in this member and MXG NL ELEVEN.   
   Thanks to Susan Marshall, SAS Institute Europe, GERMANY.             
==========The 5.4 Pre=Release included changes through 5.165=========   
Change 05.165     This change will not affect many sites. It will be    
Nov 22, 1987      needed ONLY if you receive the "Compiler Limit is     
XMAC7072          Exceeded" error message from SAS on the SAS log.      
XMAC71            This error does not occur with BUILDPDB unless you    
XMAC73            have added many other SMF records with the PDB Exit   
XMAC74            facility. (Only the world's largest PDB builder has   
XMAC75            encountered the problem). The compiler limit problem  
                  can not be fixed by SAS until Version 6, but we have  
                  several circumventions available. The compiler has    
                  a 4K table (cannot be expanded, thats the problem)    
                  which sets an upper limit on the number of "Iterative"
                  DO statements (i.e., DO I=1 to something, DO WHILE,   
                  DO UNTIL, but not DO groups like  IF x THEN DO which  
                  predominate in MXG code). There is an upper limit of  
                  99 "Iterative" DO statements in a data step, but the  
                  4K table is used by other SAS statements. The default 
                  BUILDPDB has an actual upper limit of 56, but the MXG 
                  default SMF record proccssing macros only use 24.     
                  These new members are MVS/XA-only copies of their     
                  corresponding VMAC.... member. By stripping out the   
                  MVS/370 code, we reduced the number of "Iterative DOs"
                  these members would consume.  This is only a temporary
                  solution. In our next version, we will begin to employ
                  the "new" SAS macros and will dynamically select the  
                  MXG code which will be passed to the compiler, which  
                  should stave off any compiler limit long before SAS   
                  Version 6 is available on mainframes.                 
   Thanks to David Daner, Sun Company, USA, USA.                        
Change 05.164     Support for the Duquesne network monitor NETSPY user  
Nov 22, 1987      SMF record was added. Data for Release 2.3 and 3.0 has
EXNSPYAP          been tested, but this still is our first support.    s
EXNSPYSE          created; member IMACNSPY sets the SMF record ID.      
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.163     Pre-release code for Candle's EPILOG 100 SMF data. The
Nov 22, 1987      MXG redesign of the SAS code provided by Candle has   
EXTYEPIL          not been tested with data.  Only one data set is now t
IMACEPIL          created, but this may be changed once real data volume
TYPEEPIL          and data structure is known. Call for status before   
VMACEPIL          you execute this code.                                
Change 05.162     New member IMACPDB externalizes MXG code which was in 
Nov 20, 1987      BUILDPDB/3. The control of the NODUP option, and the  
BUILDPDB          macro definitions for the MXG variables which will be 
BUILDPD3          kept in the PDB data sets was moved to this member, so
IMACPDB           that you can tailor PDB function in the IMACPDB exit. 
                  HAVE NO EFFECT ON YOUR INSTALLATION. Only minor logic 
                  changes were made in this relocation of code. The PROC
                  MEANS logic which SUMs, MINs, and MAXs variables into 
                  PDB.JOBS from STEPS is now a macro (_PDBSUMS) defined 
                  in IMACPDB, and two macros, _PDB26J2 and PDB26J3 (for 
                  type 26 variables), replace the previous single _PDB26
                  definition.This is the first step in planned changes  
                  to BUILDPDB to externalize variable selection and to  
                  make user tailoring even easier. IMACPDB will be the  
                  control point for these future enhancements. This is a
                  good time to say to the original suggestor of NODUP   
                  logic, the formerly "unknown Australian",             
   Thanks to Phil Bailey, NRMA Data Processing, AUSTRALIA.              
Change 05.161     Support for optional Hogan function code data for     
Nov 20, 1987      Hogan System application transactions under CICS is   
IMACICUS          now described and implemented in this member.         
   Thanks to Chester W. Sutton, Sears Consumer Financial Corp, USA.     
Change 05.160     Titles were cleaned up to be more descriptive, and the
Nov 19, 1987      (seldom needed) debug option TYPE110-4 is supported.  
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 05.159     ACF2 data for type "T" records has been debugged and  
Nov 19, 1987      the pre-release's "congratulations, you found the     
VMACACF2          untested code" message has been eliminated. Also, the 
                  ACTFMTOD field is PIB4.2 and FORMAT TIME12.2 and      
                  length 4, as it turns out to be only a time, not a    
   Thanks to Pete Shepard, Ashland Oil, USA.                            
Change 05.158     CICS 1.7 monitor facility permits your installation   
Nov 19, 1987      to EXCLUDE fields in the CICS type 110 records. It is 
VMAC110           not my opinion that EXCLUDE is wise (almost for sure, 
                  the variable you exclude will be the one you need),   
                  but this enhancement provides support for CICS 1.7    
                  transaction records created with the EXCLUDE option.  
                  The instructions for using this MXG enhancement are   
                  described by comments in member VMAC110. Search for   
                  the string CICS1.7EXCLUDE (two hits).                 
   Thanks to Dale Mattison, Shared Medical Systems, USA.                
Change 05.157     IDMS Performance Monitor (formerly RTE) data can   now
Nov 19, 1987      be processed from journal file with member TYPERTEJ as
TYPERTEJ          well as from SMF file with member TYPERTE.            
   Thanks to Jim Lawrence, Central and South West Services, USA.        
Change 05.156     Type 24 SMF (JES2 SPOOL Transfer) records have now    
Nov 18, 1987      been validated (and code corrected). SMF24CNT is PIB4.
FORMATS           vice PIB1. Format MG024BC: new values for 'A0'X and   
VMAC24            'C0'x were added. Format MG024SF: new values for '44'X
                  and '24'X were added. The value of variable SMF24EOJ  
                  is always zero unless this is the last SYSOUT outgroup
                  of this job. In that instance, SMF24BCF will contain a
                  '..1.....'B ('20'X or '24'X), and only then will the  
                  variable SMF24EOJ contain true End-Of-Job condition.  
   Thanks to John Dundas, International Flavors & Fragrances, USA.      
Change 05.155     NETVIEW changes to original type 39 NLDM record were  
Nov 18, 1987      not completely corrected by Change 5.57. SCS length is
VMAC39            actually 117 vice 118, because BINDCODE is PIB1. not  
                  PIB2. This well documented change is with             
   Thanks to Mark Shephard, Dun & Bradstreet EBIC, ENGLAND.             
Change 05.154     IMS Log variables DESTLINE and DESTTERM should have   
Nov 18, 1987      been read as PIB4. vice PIB2., with HEX8. format.     
   Thanks to Freddy Simberg, PK Banken Stockholm, SWEDEN.               
Change 05.153     Several changes to Landmark's MONITOR for CICS:       
Nov 18, 1987    1.Landmark's MONITOR summary history file records caused
TYPEMONI          "Invalid data for TASKNR" because summary record has  
                  nulls (hex 0) value. Error message eliminated and the 
                  variable MONIRECD now correctly contains 'H' for the  
                  History (Summary) observations and 'D' for Detail.    
                2.Observations in MONIDBDS and MONIUSER will now occur  
                  only if the segment actually contains data. FATNUM    
                  counts DBD segments in record, not the number which   
                  contain data, and UTNUM counts the user segments, but 
                  not the number which contain data.                    
                3.Support for Landmark's SPECIAL 78 optional zap to     
                  TMON Version 7.0 creates CICS 1.7 variables UOWID,    
                  UOWTIME, USER, and NETSNAME in MONITASK data set.     
                  Supplement pages 170-171 describe these variables.    
                  UOWTIME is the decoded time stamp from first 6 bytes  
                  of UOWID).  Variable SYSTEM was also added to both    
                  MONITASK and MONISYST data sets with this zap.        
                4.Initialization of all character values set by bit     
                  testing and SKIP logic for any new data was added     
                5.Variable DURATM in MONITASK was not calculated for    
                  the first interval during re-processing with DIF().   
                  Two elegant algorithms were provided by two users,    
                  and the shorter one (using POINT= to read ahead to    
                  the next record) was chosen.                          
   Thanks to Kathy Manos, The Stroh Brewery Co, USA.                    
   Thanks to Robert Lewis, Landmark Systems Corporation, USA.           
   Thanks to Chuck Rexroad, Perpetual Savings Bank, USA.                
   Thanks to Simon Hendy, British Telecom, ENGLAND.                     
   Thanks to Steve Morton, SAS Institute, ENGLAND.                      
Change 05.152     The CPU-specific variables PCTCPBYx "defaulted" to    
Nov 16, 1987      100% busy for offline CPUs. This had minor impact,    
VMAC7072          since variable NRCPUS showed how many were online,    
                  amd also since CAIx flags each CPU as to on/offline   
                  status. Furthermore, PCTCPUBY always accurately had   
                  the true percent of online cpus time which was busy.  
                  Nevertheless, the misleading 100% for PCTCPBYx has    
                  been replaced with a missing value for CPUs which     
                  were not online for the entire interval. (With this   
                  change, the MVS/370 record logic was changed to use   
                  the more robust MVS/XA technique.)                    
   Thanks to Stephen Geard, Commonwealth Bank of Australia, AUSTRALIA.  
Change 05.151     I finally accept the need to use the new SAS Macro    
Nov 16, 1987      Facility. This change establishes naming conventions  
                  for MXG members. The %MACRO facility works best if    
                  the macro name is the same as the member name (then   
                  AUTOCALL can be used). To facilitate this feature,    
                  MXG will hereafter use names starting with VMXG....   
TYPEVTOC          for both the member and macro name of MXG-supplied    
VMXGVTOC          new style macros. To balance this "theft", MXG will   
                  hereafter not use member names starting with USR....  
                  or USER.... - these will always be available to you.  
   Thanks to Bill Gibson, SAS Institute, AUSTRALIA.                     
     who's comment on "using VMACVTOC (now VMXGVTOC) to graze the disk  
     farm" was under study when this choice was made.                   
Change 05.150     IMACFILE, taken after an SMF record has been read by  
Nov 16, 1987      any MXG code, is self-documented, and is used for many
IMACFILE          purposes, including deleting bad SMF records, printing
VMACSMF           a "defective" SMF record, etc. IMACFILE is invoked by 
                  VMACSMF. This change "cleans up" comments in VMACSMF, 
                  and now new comments in IMACFILE identify all of the  
                  variables which exist when IMACFILE is taken.         
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 05.149     Variable ZDATE was added to VMONUSRS, the one-per-user
Nov 16, 1987      summary data set. This provides the date of MXG run,  
VMACVMON          not the processing date of the data. VMONUSRS is the  
                  summary of all observations in VMONUSRD (which could  
                  be daily, weekly, etc.). Tailored summary (by hour, by
                  day, etc.) can be done in your code from VMONUSRD.    
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 05.148     CICS 1.7 UOWTIME was not properly decoded in the pre  
Nov 16, 1987      releases of MXG for terminal tasks. Now it is. (Note  
VMAC110           that UOWID, the 8-byte character string by which MRO  
                  transactions can be collected was always correct; only
                  the extraction of its timestamp was in error).        
   Thanks to Bernadette Young, First Virginia, USA.                     
Change 05.147     MVS 2.2's catalog address space creates a type 30     
Nov 16, 1987      interval record with JOB=IEESYSAS & TYPETASK=CATALOG  
VMAC30            which caused "Invalid JESNR" message (no error set).  
                  This change tests for IEESYSAS (system address space) 
                  job name to avoid missing JES number for address      
                  spaces which start before SMF is started.             
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 05.146     Variable DEN (tape density) in TYPE1415 data was not  
Nov 13, 1987      decoded for 3480 (density=38000) devices. Now it is.  
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.145     Variables ROSJOB, ROSTIME, SMFTIME and SYSTEM only are
Nov 13, 1987      in ROSCOE 5.5 and later. The ANALRRTM reports, however
ANALRRTM          used these variables, which were not defined in this  
VMACROSC          member (used only for ROSCOE 5.4A and earlier). This  
VMACRRTM          change initializes these four variables to blanks or  
                  missing values so that ANALRRTM will work with either 
                  ROSCOE 5.4, 5.4A, or 5.5 RRTM data.                   
                  Variable ZDATE was added to all ROSCOE data sets too, 
                  and the code was prettied up.                         
   Thanks to Rich Surgener, Security National Bank, USA.                
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 05.144     Change 5.44 should have also applied to ANALDB2. The  
Nov 13, 1987      variable QXQUERY is now QXSELECT and QXALTBF is now   
ANALDB2           QXFETCH in lines 331 and 354 respectively.            
   Thanks to David Daner, Sun Company, USA.                             
----Changes thru 5.143 as of Oct 22, 1987 were included in MXG 5.3a--   
Change 05.143     Two syntax errors slipped into 5.3. prerelease tape.  
Oct 22, 1987      1. Added semicolon to the end of line 2182.1 in member
VMACVMON          VMACVMON.                                             
VMACCIMS          2. Added  DBDNAME $8. to line 180 (before semicolon)  
                  in member VMACCIMS.                                   
----Changes thru 5.142 as of Oct 15, 1987 were included in MXG 5.3---   
Change 05.142     ROSCOE 5.5 support, including the AUDIT record and the
Oct 14, 1987      RRTM (response time) data, has now been added. This   
TYPEROSC          changes most of the ROSCOE members, and adds several  
 et. all.         new data sets from accounting data. The RRTM records  
                  are now a subtype of the SMF record, and the RRTM data
                  sets are now built by TYPEROSC. (Member TYPERRTM is   
                  still in MXG if you are not yet on ROSCOE 5.5). Data  
                  for all 5.5 records has been tested, except for the   
                  5.5 Audit record (but that's not likely to cause you  
                  any problem - ADR doesn't document how to enable that 
                  new record, though they will tell you how by phone!)  
Change 05.141     Boole & Babbage's IMF (formerly Control/IMS)          
Oct 14, 1987      optionally will capture I/O at the DDNAME within      
VMACCIMS          DBDNAME for those DBDNAMEs with multiple DDNAMES. This
                  change adds the new variable DDNAME to the CIMSDBDS   
                  data set. If the DDNAME is not blank, this is a DD    
                  entry, otherwise it's a DBD.                          
   Thanks to Ron Root, Sun Company, USA.                                
Change 05.140     The subtype 1 IDMS Performance Monitor record from    
Oct 14, 1987      the new PMAM available in IDMS 10.1 is being created  
VMACRTE           in error. This change skips over the subtype 1 PMAM   
                  data until Cullinet provides a modification (accepted 
                  but not yet available) to correct their error.        
   Thanks to Rodney L. Reisch, General Electric Silicon Division, USA.  
Change 05.139     The BDT (Bulk Data Transfer) record has now been      
Oct 14, 1987      tested with real type 59 SMF records. Two changes were
VMAC59            required to VMAC59: line 1620, TRANTYID replaced      
                  SMF59TID in the test, and line 1670's SMF59OFG field  
                  is now input with a $CHAR1 instead of the incorrect   
   Thanks to Doris Burdick, U.S. Department of Defence, USA.            
Change 05.138     The IMS log processing with TYPEIMS from MXG 4.4      
Oct 11, 1987      fails.  Most transactions were being thrown away      
IMACIMS           because of the changes in the IMS records introduced  
TYPEIMS           in 1.3 and 2.1.  The pre-releases 5.1 and 5.2 modified
VMACIMS           the MXG 4.4 code to stop deleting records, and did    
                  correctly capture all resource data, but introduced   
                  occasional transposition of the LTERM and TRANSACT    
                  values. Most of all, I just did not understand the    
                  logic of the donated code. This change marks the first
                  IMS log processing code which I actually wrote and    
                  understand. The only original code in TYPEIMS/VMACIMS 
                  now is the merge of the 07-08 log records. Larry      
                  Alexander's fine IMS paper and 2.1 data were used to  
                  now properly assemble all simple IMS transactions     
                  perfectly.  The existence of an 07/08 causes an       
                  observation in IMSTRAN to be created, and if an 01    
                  record was found, the message queue records (01,03,31,
                  35, and 36 are then collected under the transaction's 
                  LTS (line, terminal, sequence) by their message queue 
                  DRRN (dataset and record number) and the time stamps  
                  ENDTIME and DEQTIME) are captured. Variables INBITS   
                  and INCNTS identify which and how many IMS log records
                  were collected for this observation in IMS tran. This 
                  code has processed many IMS log records, and seems to 
                  be correct in assembling matching sequences. For some 
                  very complicated sequences (those which do create an  
                  01 for each 07, for example) will be fully assembled  
                  into IMSTRAN for resource measurement and transaction 
                  counting. The worst that can happen is that some of   
                  the time stamps may be missing if MXG can't find the  
                  message records corresponding to the 07 and 08 log    
                  records.  I am still investigating WFI (wait for      
                  input) transactions, and may provide additional code  
                  in the future to re-examine IMSTRAN see if the IMS    
                  response for these unique transactions can also be    
                  measured.  In summary, the 5.3 IMS code is thought to 
                  be completely accurate for resources and counting, and
                  either captures the correct response time, or sets the
                  response time missing.  It's not done, but it's so    
                  much better than anything before that it should be    
                  used now for any IMS log processing.                  
   Thanks to John D. Pike, American Airlines, USA.                      
   Thanks to John Lemkelde, Pennsylvania Blue Shield, USA.              
   Thanks to Finn Poulsen, DANFOSS A/S, DENMARK.                        
Change 05.137     A syntax error resulted from a missing AXIS2 statement
Oct 11, 1987      in a PROC GPLOT. New line 370.1 should be:            
   Thanks to John Potter, Mitsubishi Electronics, USA.                  
Change 05.136     ROSCOE 5.5 TERMNAME variable is now only in the signon
Oct  4, 1987      record, but 5.4 had it also in the logoff record. The 
ANALROSC          result was a blank value for TERMNAME. To correct,    
                  change line 8 to now read:                            
                   PROC SORT DATA=ROSCOFF (DROP=TERMNAME);              
   Thanks to Richard Olimpio, O. M. Scott, USA.                         
Change 05.135     RMF Cache Reporter records which have only one storage
Oct  4, 1987      director segment caused INPUT STATEMENT EXCEEDED      
VMACACHE          RECORD LENGTH, "STOPOVER" condition. (All data tested 
                  had two!) These changes were made:                    
                    Insert new lines:                                   
                     @15+OFFSTAT GSLEN PIB2.           237.1            
                     @; IF GSLEN=80 THEN INPUT         245.1            
                     (SD2ID=SD2IDCU OR GSLEN=40) );    258.1            
                    Remove the "SD2ID=SD2IDCU);" at end of line 258.    
   Thanks to Benny J. Arnold, Kansas City Computer Center, USA.         
   Thanks to Don Tuttle, Kansas City Computer Center, USA.              
Change 05.134     If you wanted to build the PDB data sets and only want
Oct  4, 1987      to spin once (for example, building from a monthly SMF
BUILDPDB          file), you could not. Setting IMACSPIN to 1 caused the
BUILDPD3          un-matched records to be spun twice, since _SPINCNT   
                  was compared with "1" in line 375/385 (BUILDPDB/3).   
                  Changing the "1" to "0.5" solves this inconsistency.  
   Thanks to Bill Gibson, SAS Institute, AUSTRALIA.                     
Change 05.133   1.VM/Monitor USER records contain no logon flag. MXG    
Sep 23, 1987      can recognize a logon if any of the DIF()'d counters  
Nov 29, 1987      went negative, but that is not always the case. Now,  
ANALVMON          MXG compares the delta minutes since the last record  
IMACVMON          for this user with a new macro (_INTRVL, in IMACVMON) 
VMACVMON          in which you specify your expected interval duration. 
                  If more than two expected intervals have been missed, 
                  MXG assumes a LOGON and reinitializes. (Note that if  
                  suspension occurs, records can be skipped.) The actual
                  comparison is IF DIF(STARTIME) GT 2 * _INTRVL THEN ...
                  The default value for _INTRVL is 1 minute. If you are 
                  writing 10 minute intervals and you do not change the 
                  value of _INTRVL in IMACVMON, all data will be zeros. 
                2.Twenty-one VM/Monitor durations (CPU times, Page and  
                  I/O waits, etc.) are in counters which decrement from 
                  a large positive number down to zero. MXG did not get 
                  the correct value for the zero-crossing interval. The 
                  problem only occurs when the system stays up for more 
                  than a day (after 38 hours at 50% IDLETM, it resets). 
                  The error caused the zero-crossing variable to contain
                  a very large negative value for that one interval. The
                  decrementing counters are identified by the syntax of 
                  y=-DIF(x)/4096, which calculates the negative delta of
                  counter x into variable y. This change inserts a new  
                  test for negative y following each -DIF() to correct: 
                     IF . LT y LT 0 THEN y=y + 1E-6*16**9;              
                     This fix was revised Nov 29, when IBM Level 2 made 
                     it clear: six bytes of FFFFFFFFFFFF is stored. MXG 
                     5.3 incorrectly used just 16**9, the 5.4 temporary 
                     circumention used x/4096 pending this truth. Note  
                     that computerese 1E-6*16**9 is simply 16 to the 9th
                     divided by a million, but the 68719.476736 decimal 
                     equivalent leaves me cold. (Six bytes of FF, INPUT 
                     as PIB6.6 is decimal 281474976; divided by 4096 to 
                     get seconds, becomes 16 to the 9th over a million!)
                3.I/O counts in VMONDEV are accumulated by DEVADDR since
                  last IPL, and MXG failed to de-accumulate the variable
                  CNTVIOCT. Macro _ANALDEV is now defined in VMACVMON   
                  to sort and correctly calculate CNTVIOCT into VMONDEV.
                  (Note for recipients of pre-releases 5.1 or 5.2: This 
                  de-accumulation WAS correct in the VMPDB.DEV data set 
                  built by ANALVMOS. Now, the de-accumulation is done   
                  in building VMONDEV). This change could impact the    
                  compatibility of MXG. If you used VMONDEV from MXG 4.4
                  you probably did your own de-accumulation, and now you
                  will need to remove that de-accumulation.             
   Thanks to George Moskwa, Cole National, USA.                         
Change 05.132     If SAS OPTION NOTEXT82 is in effect, a syntax error in
Sep 23, 1987      creating the temporary $TCLASS reporting format in one
ANALCICS          of these sample CICS reports. The right hand side of  
                  the format values must be enclosed in single quotes,  
                  or OPTIONS TEXT82 can be specified.(Our testing now   
                  specifies NOTEXT82!)                                  
Change 05.131     Variables INCONT, LOGONID, MSGLEN and ORGENT in the   
Sep 23, 1987      TYPEIMS data set (from IMS Log records), which exist  
VMACIMS           in the RACF segment if you have RACF or ACF2 with IMS,
                  but were not in the KEEP list for IMS0103 data set.   
                  As a result, they were blank. (FYI, they are defined  
                  in member EXITRACF.)                                  
   Thanks to John Lemkelde, Pennsylvania Blue Cross, USA.               
Change 05.130     TSO/MON 5.1 support has now been validated with data  
Sep 21, 1987      containing the optional ACCOUNTing fields. Without    
VMACTSOM          this change, STOPOVER abend occurred if the additional
                  optional data was present in the record.              
                 Line 2417 changed to INPUT NRACCTFL PIB1. @;           
                 Lines 24192 and 24193 were deleted. (MINUS8= and INPUT)
   Thanks to John Leath, Fleet Information, USA.                        
Change 05.129     The MONIUSER data set from Landmark's MONITOR has now 
Sep 21, 1987      been validated. CLOCKTM is now calculated by 1E4, and 
TYPEMONI          the code was restructured to properly initialize.     
   Thanks to Chuck Comstock, Hallmark Cards, USA.                       
Change 05.128     Jobs with JCL errors in PDB.JOBS had blank value for  
Sep 18, 1987      TYPETASK because it was not in KEEP list for the type 
BUILDPDB          26 data. TYPETASK was added to _PDB_26 definition.    
   Thanks to Lee Salley, Westinghouse, USA.                             
Change 05.127     Several minor changes.                                
Sep 16, 1987    1.ANALAUDT and ANALDB2R were restructured to contain    
ANALAUDT          both JCL and SAS code. With the SAS JCLEXCL option:   
ANALDB2R          SAS will skip over the JCL and execute the SAS code.  
EXITMONI          Alternatively, the JCL can be edited and submitted to 
                  produce the report from either an MXG PDB library or  
                  directly from SMF data. Both ANALAUDT and ANALDB2R now
                  permit date selection via the SYSPARM parameter on the
                  EXEC statement, as described in the comments. MXG will
                  use this pattern in future ANAL.... members.          
                2.ANALCICS PROC FORMAT at line 465 needed quotes on the 
                  right hand side if SAS OPTION NOTEXT82 is specified.  
                3.EXITMONI installation instructions were improved.     
Change 05.126     MXG Format $MGIMFFP was defined in lines 411-414 of   
Sep 14, 1987      this member in MXG 4.4, but is not in MXG 5.2 member. 
FORMATS           If you use the first step of JCLTEST to add formats to
                  your existing SASLIB data set, you will not see this  
                  error. However, if you create a new SASLIB using the  
                  5.2 FORMATS member, the format will not exist. (Since 
                  I tested by adding the new formats, my testing failed 
                  to catch the error - guess who's testing philosophy   
                  has been changed!). To correct the 5.2 FORMATS member,
                  copy lines 411-414 of 4.4 FORMATS member after line   
                  615 of 5.2 FORMATS member.                            
----Changes thru 5.125 as of Sep 10, 1987 were included in MXG 5.2---   
Change 05.125     JES2 sites using NJE will now find the PDB.NJEPURGE   
Sep 10, 1987      data set automatically built by BUILDPDB will contain 
BUILDPDB          the non-execution purge records for NJE jobs. All SR  
                  (SYSOUT Receiver) purge records and JR (job transmit) 
                  purge records which do not represent actual execution 
                  will be in this PDB data set. (Formerly, these purge  
                  records were deleted by BUILDPDB). This data set may  
                  be useful in tracking NJE job transmission  input     
                  delays as well as NJE SYSOUT delays. Additional work  
                  in this NJE measurement area can be expected.         
   Thanks to Gary Zolweg, National Semiconductor, USA.                  
Change 05.124     Support for ROSCOE 5.5 Accounting records was added.  
Sep 10, 1987      The ROSCOE Response Time Monitor (RRTM) data is now a 
EXROSALL          subtype of the 5.5 account records written to SMF.    
EXROSATT          Several new ROS..... data sets are created from the   
EXROSCON          new ROSCOE 5.5 account records. On October 11, 1987   
EXROSDSF          (in MXG 5.3),  RRTM record support for ROSCOE 5.5 was 
EXROSHEX          added to these members, and the RRTM data sets are now
EXROSLIB          created with TYPE/VMACROSC.  The AUDIT record (new in 
EXROSPUR          ROSCOE 5.5) support was also added, but no audit data 
EXROSSHU          records have been available to test yet.              
Change 05.123     VM Monitor summarization & documentation were cleaned 
Sep 10, 1987      up in testing 5.1. The SEEKRPRT has been added and the
ANALVMOS          documentation improved. VM Execs referenced in the MXG
DOCVMOS           supplement now exist. EXECTEST is the VM equivalent of
EXECPDB           JCLTEST, EXECPDB tests the MVS PDB building under VM, 
EXECTEST          and EXECEMAC provides an easy way to edit MACLIBs.    
Change 05.122     Installation modifications to type 26 records caused  
Sep  9, 1987      MXG problems because section lengths were not used to 
VMAC26J2          +SKIP over new data. This change redesigns TYPE26J2 to
                  fully use the section lengths for immunity to change. 
   Thanks to Rob Clairmont, The Laurier Group Ottawa, CANADA.           
Change 05.121     Several ANAL.... report members created unnecessary   
Sep  9, 1987      messages (not referenced, uninitialized, etc.) which  
ANALPROG          were irritating but not critical errors to new users. 
   Thanks to Kathleen A. Morrison, Hit or Miss Inc, USA.                
Change 05.120     The IDMS Performance Monitor (Change 5.95) did not    
Sep  9, 1987      process the second subtype 1 record, which is now     
VMACRTE           recognized and creates the IDMSTASK data set.         
   Thanks to Rodney L. Reisch, General Electric Silicon Division, USA.  
Change 05.119     Variables EXCPTODD/EXCPNODD and IOTMTODD/IOTMNODD in  
Sep  9, 1987      TYPE30 data sets are missing if the program had no DD 
VMAC30            cards. Uncommon, it does happen. MXG moved several    
                  lines outside the NUMDD=0 do group to set these four  
                  variables zero rather than missing in this instance.  
   Thanks to Kenneth D. Jones, Maritime Telephone and Telegraph, CANADA.
Change 05.118     Only for the TYPE74 data set and only under MVS/370,  
Sep  9, 1987      the variable DEVNR (the MVS/XA and BUILDPDB/3 expected
VMAC74            variable name for the old UNITADR MVS/370 variable) is
                  missing. Correct for MVS/370 with the new line:       
                          DEVNR=UNITADR;         172.1                  
                  to store unit address in DEVNR. MVS/370 sites would be
                  wise to position for MVS/XA by changing UNITADR to    
                  DEVNR now in all programs using MXG data sets.UNITADR 
                  does not exist under MVS/XA, DEVNR replaced it.       
   Thanks to Bob Rutledge, Sherwin Williams Paint, USA.                 
Change 05.117     VM Account support for the type 08 (user disconnect   
Sep  9, 1987      or log off) account card record was added, creating   
TYPEVM            new data set VMLOGOFF. Variable LUNAME was also added 
EXVMLOFF          to the VMDISK, VMLINK, VMLOGON and VMLOGOFF data sets.
FORMATS           LUNAME will contain the SNA (VTAM) terminal name for  
                  SNA terminals, useful for identification of terminals 
                  being used by VM users. In VMDEVICE data set, variable
                  DEVICECL is now decoded by new format $MGVMADV, which 
                  permitted reducing DEVICECL from 8 to 1 byte.         
Change 05.116     The format used in the PUT function at line 46 was    
Sep  9, 1987      corrected from WEEKDAY3. to WEEKDATE3. to create the  
MONTHBLD          name of the day of the week as a character variable.  
   Thanks to Barry Lampkin, Blue Cross of Mass, USA.                    
Change 05.115     MXG error messages VMAC110.2 and .3 were revised to be
Sep  3, 1987      more descriptive when MXG detects a change in record  
VMAC110           format due to CICS maintenance.                       
   Thanks to Laurie Bigelow, UCCEL, USA.                                
Change 05.114     Variable SD2DEVNR was mis-spelled in the KEEP list for
Sep  3, 1987      CACHETY data set, and was thus not kept. Correct the  
VMACACHE          obvious mis-spelling.                                 
   Thanks to Ray Dickensheets, Yellow Freight System, USA.              
Change 05.113     PGBLPGS, STGUTIL, and DRUMUTIL variables in VMONPERF  
Aug 31, 1987      were not calculated in non-HPO data. COPY lines       
VMACVMON          1545-1546 to become 1113.1 and 1113.2. MOVE line 1547 
                  to 1113.3. Change 1113.1 to be:  PGBLPGS=MAXSIZEP;    
   Thanks to ???, ???.                                                  
Change 05.112     This simple example of reading SYSLOG to track IEF244I
Aug 21, 1987      (job delayed due to tape allocation) messages from the
XSYSLOG           JES2 SYSLOG file to create MXG dataset IEF244I will be
                  expanded in future versions of MXG to provide extended
                  analysis of important SYSLOG messages. Suggestions for
                  other events which are only available from SYSLOG are 
                  solicited. This will not be expanded until Version 6. 
   Thanks to John Maher, American Honda Motor Company, USA.             
Change 05.111     The bit testing to create TYPE25 (JES3 only) variables
Aug 21, 1987      ALOCBYDD and ALOCAUTO were reversed. Reverse the 0 and
VMAC25            1 values in lines 57-58 and lines 61-62.              
   Thanks to Miss C. Keelan, Commonwealth Bank of Australia, AUSTRALIA. 
   Thanks to Stephen Geard, Commonwealth Bank of Australia, AUSTRALIA.  
Change 05.110     The decode of RECFM in both VTOC and TYPE1415 logic is
Aug 19, 1987      moved to new member VMACRCFM, and additional record   
VMAC1415          formats (formerly OTHR, like FBA, FBS, etc.) have been
VMACRCFM          added to (hopefully) completely decode RECFM and to   
VMXGVTOC          eliminate blank or OTHR values.                       
   Thanks to John Potter, Mitsubishi Electronics, USA.                  
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.109     This change fixes an error which only existed in the  
Aug 19, 1987      pre-release 5.1. For jobs which went through the SPIN 
BUILDPDB          data set, the variable SYSTEM was usually blank. The  
BUILDPD3          change affected the five data sets built at line 284  
                  (JES2, line 294 JES3). IN= logic was added to TYPE....
                  in the SET statement and the storing of SYSTEM into   
                  the five SYSxxx variables was made conditional.       
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.108     Some MXG modules now use the "new macro, or %macro"   
Sep  3, 1987      facility of the SAS System. (MXG has always used many 
JCLUXREF          "substitution" or old-style SAS macros). The use of   
VMXGVTOC          the "new macros" requires the SAS system option MACRO 
                  to be enabled (SAS 5.16 defaults to NOMACRO). This is 
                  done either by adding MACRO to the OPTION list on the 
                  EXEC SAS statement for a step, or by changing the SAS 
                  system default (PROC SETINIT by the SAS installer.)   
                  The listed members used the "new macro" facility and  
                  their JCL example now specifies MACRO. Hereafter, all 
                  MXG members that define "new macros" will be so noted.
   Thanks to Ray Dickensheets, Yellow Freight System, USA.              
   Thanks to John Potter, Mitsubishi Electronics, USA.                  
   Thanks to Rob Ray, EUA Service Corporation, USA.                     
Change 05.107     The variables TAPE3420 and TAPE3480 are now included  
Aug 14, 1987      in the PDB.STEPS and PDB.JOBS data sets. Both members 
BUILDPDB          were re-numbered                                      
   Thanks to Dennis Dwyer, CITICORP, USA.                               
Change 05.106     The type 128 record which can be created by NPM is    
Aug 14, 1987      actually supplied by IBM as source code for the exit. 
IMACNPM           Since the record id is not fixed at 128, this change  
VMAC128           adds member IMACNPM in which you tell MXG the actual  
                  record ID of the NPM VTAM Session records.            
   Thanks to Joseph J. Faska, Chemical Bank, USA.                       
Change 05.105     Support for SYNCSORT user SMF record was added. The   
Aug 14, 1987      SYNCSORT data set is created. These members replace   
EXSYNSOR          XMACSYNC (Change 5.39).                               
Change 05.104     Support for CINCOM SUPRA 1.1 System log file produces 
Aug 14, 1987      three data sets, SUPRDBMX, SUPRFILE, and SUPRINIT.    
ANALSUPR          Sample reports are in member ANALSUPR.                
   Thanks to Mark Degner, Navy Finance Center, USA.                     
Change 05.103     VM/Monitor Seek Analysis had one too few percent signs
Aug 12, 1987      which caused syntax errors. In line 459, change the   
ANALVMOS          '%' to '%%'.                                          
   Thanks to Steve Smith, Hammermill Paper, USA.                        
Change 05.102     Default SMF record id numbers for ACF2, MODEL204,     
Aug 10, 1987      ROSCOE, and TSO/MON were changed to the inpossible    
IMACACF2          values of 512 or higher, to prevent STOPOVER ABEND in 
IMACM204          new sites testing JCLTEST.                            
   Thanks to Joseph J. Faska, Chemical Bank, USA.                       
Change 05.101     Format for CPUWAIT4-8 and PCTCPBY4-8 was not provided.
Aug 10, 1987      This only affected the 5.1 tapes. Change the CPUWAIT3 
VMAC7072          in line 298 to CPUWAIT8. Change the PCTCPBY3 in line  
                  316 to PCTCPBU8. Change CPUWAIT3 in line 479 to read  
                  CPUWAIT8, only for looks since 370 can't run on 3090. 
   Thanks to Ruth Heidel, UCCEL, USA.                                   
Change 05.100     CICS 1.6.1 FCGETCN field is increased from two to four
Jul 31, 1987     bytes by PTF UL10276.                                  
IMACPTF           IMACPTF - Replicate the logic for AP40463, and change 
UTILCICS                    AP40463 to UL10276.                         
VMAC110           UTILCICS- Replicate lines 354-357 (for AP40463) and   
                            change the test to 'FC-GET-COUNT' and set   
                  VMAC110 - Replace lines 546-547:                      
                                   FCGETCN      PIB2.                   
                                   FCPUTCN      PIB2.                   
                            With these four lines:                      
                             IF _UL10276 THEN INPUT FCGETCN PIB4. @;    
                             ELSE INPUT FCGETCN PIB2. @;                
                             INPUT FCPUTCN PIB2.                        
   Thanks to Malcolm Morgan, Wachovia Bank, USA.                        
   Thanks to Dave Feigenbaum, UPS, USA.                                 
******Changes through 5.99 were on the first pre-release of MXG 5.1 ****
Change 05.99      The two new SMF records created with MVS 2.2 are now  
Jul 31, 1987     available. A type 36 is written for each import/export 
TYPE36            of the ICF catalog. The type 41 is written for each   
VMAC36            access to a Data-In-Virtual object. The type 41 is    
EXTY36            currently incomplete; the job name, readtime, etc of  
TYPE41            the task using the DIV object was inadvertently left  
VMAC41            out of the SMF record in ESP.  A PTF is expected that 
EXTY41            will add the data and probably break the VMAC31 code, 
                  but I don't have the PTF number or change info yet.   
                  With this change, MXG Version 5.1 Supports MVS 2.2.   
Change 05.98      Minor, cosmetic change in creating SMF71IS1 and IS2   
Jul 31, 1987     field names from the SMF71AVA field, none of which are 
VMAC71            kept.                                                 
Change 05.97      This standalone JCL and program will decode the SAR   
Jul 26, 1987     account records from its non-SMF journal file.         
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.96      MXG DASD Storage Measurement is now supported by these
Jul 26, 1987     new members. The earlier XMAPVTOC program has been up  
FMXGUCBL          dated and is now an executable (new style) SAS macro  
VMXGVTOC          %VMXGVTOC, which produces the VTOC and FREE data sets 
TYPEVTOC          from the DDNAME of DISK. These two data sets describe 
                  the contents of that volume for billing DASD storage  
                  and/or DASD capacity measurement. To measure all DASD 
                  volumes in one execution, and to avoid JCL errors due 
                  to offline volumes, the MXG-provided SAS function     
                  FMXGUCBL dynamically allocates all online DASD volumes
                  to DDNAMES of DDnnnnnnn, and returns the number of    
                  volumes found online. The example program in VMXGVTOC 
                  can be executed to create the MXGVTOC and MXGFREE data
                  sets from all online DASD volumes.                    
Change 05.95      Support for IDMS 10.1 (pre-release) completed. The new
Jul 26, 1987     new "Application Monitor" record subtypes create ten   
VMACRTE           new IDMS.... data sets. The original TYPERTE data set 
EXRTEARA          is now created from the subtype 1 record. See comments
EXRTEBUF          in VMACRTE for documentation and comments about data. 
EXRTECDM          MXG variable names are the same as the Culprit names  
EXRTEDBK          used in Cullinet's PMIRPT00 example report program for
EXRTEERU          this IDMS Performance Monitor (formerly the Run   Time
EXRTEINT          Evaluator product, hence the RTE acronym). See Change 
EXRTEJRN          5.120.                                                
   Thanks to Terry Layman, Cullinet, USA.                               
Change 05.94      Validation of ACF2 record support has been completed. 
Jul 22, 1987     See updated description of change 5.68.                
Change 05.93      PDB.JOBS variables RACFGRUP RACFTERM and RACFUSER were
Jul 22, 1987     kept in _PDB30_4 instead of _PDB30_5. Thus these three 
BUILDPDB          variables in PDB.JOBS came only from the initiate 30_1
BUILDPD3          data set. A value placed in RACFTERM by an SMF exit at
                  terminate was not picked up by MXG. With this change, 
                  the three RACF variables in PDB.JOBS will have their  
                  value from the 30_5 if it exists, or from the 30_1 if 
                  no job termination record was found. It was supposed  
                  to have been this way all along!                      
                  Change: blank the three variables in line 84 and add  
                          the three variables in lines 102-103.         
   Thanks to Kenneth D. Jones, Maritime Telegraph and Telephone, CANADA.
Change 05.92      RMFINTRV standalone execution had an extra semi-colon 
Jul 21, 1987     in an include in the commented out code. Fixed.        
   Thanks to Steve Glick, Southern Methodist University, USA.           
Change 05.91      If SRBCOEFF is zero, a division exception occurred in 
Jul 21, 1987     MVS/XA. The division is now protected.                 
   Thanks to John Mueller, ARMCO Steel, USA.                            
Change 05.90      The CICS 1.6 variables ICV and ICVTSD were incorrectly
Jul 21, 1987     calculated. ICV=ICV/76.8 and ICVTSD=10*ICVTSD/3 in the 
VMAC110           1.6 code only.                                        
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.89      The variables QISEDBD and QISEPAGE in DB2STAT1 dataset
Jul 14, 1987     were wrong. Delete the two lines in ANALDB2:           
ANALDB2                QISEDBD =DIF(QISEDBD);                           
                  because these two variables are not accumulated.      
                  Several other discrepancies between MXG and DB2PM are:
                  a. QISEFREE "FREE PG IN FREE CHAIN" reported in DB2PM 
                  is (incorrectly) the value from the previous record.  
                  b. DB2PM "Record Time" is QWHSSTCK-DURATM, the start  
                  time of the interval, not the SMF record timestamp.   
                  c. The DB2PM calculations for EDM Pool percentages are
                  frequently total several percent more than 100. This  
                  is because QISEFREE is from the previous interval, as 
                  noted above.                                          
                  d. DB2PM reported "datasets open - current" is always 
                  greater than the "maximum" value reported, and the    
                  "current" number equals both QTDSOPN and QDDSMAX in   
                  the record (which seems in error itself). The value   
                  under "maximum" seems close to current; in most of    
                  intervals it is equal to QB1TDSO (and there were no   
                  higher buffer pools used). In other intervals the     
                  printed "current" value is 2, QB1TDSO is 1 and no     
                  other buffer pools were used.                         
                  e. DB2PM is flat wrong on the report page which has   
                  both "AGENTS SERVICES - EXECUTION UNIT SWITCH" (for   
                  QVASX... fields) and "STORAGE MANAGER (QSST.. fields).
                  The first six lines of the report are repeated in     
                  lines 7-12 (which should be the first six S.M. lines).
                  Lines 13-19 contain what should be in lines 7-13.     
                  What should be in lines 14-19 does not exist in DB2PM!
                  f. Other than that, DB2PM agrees with MXG.            
   Thanks to Martha Hall, Metropolitan Life, USA.                       
Change 05.88      The new IMS log processing logic (MXG Change 5.66) was
Jul 14, 1987     validated in detail by three sequential transactions   
TYPEIMS           under IMS 2.1. The new logic stood up to the test. The
                  only data we seem to loose now is the data from the   
                  IMS type 36X log record, DEQTIME. The MSGDRRN value of
                  the 36 record is different than the MSGDRRN in the    
                  0103 record; this prevents the 36 from matching. This 
                  matter is under discussion with IBM. For now, IMS 2.1 
                  is supported by MXG, but the three DEQ.... variables  
                  are missing in the IMSTRAN data set from IMS log data.
   Thanks to John D. Pike, American Airlines, USA.                      
Change 05.87      Support for the SMF record written by the STOPX37     
Jul 12, 1987     product.                                               
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.86      The labels for variables READY11 thru READY15 were all
Jul 11, 1987     for READY11 in the TYPE70 data set.                    
   Thanks to Ruth Heidel, UCCEL, USA.                                   
Change 05.85      The RMF CACHE Report SMF support added by Change 5.31 
Jul 07, 1987     provides correct device segment data, but only the 1st 
VMACACHE          control unit segment was read. Major logic changes are
                  in the logic to associate the control unit segments   
                  properly with their device segments. MXG has now been 
                  tested with REPORLVL data values of 17 and 18.        
   Thanks to Jon Sahl, New York Life, USA.                              
Change 05.84      For CICS 1.7, the CICSYSTM (global performance data)  
Jul 01, 1987     variables CPUTCBTM and OWSTCPTM were wrong. This had   
VMAC110           no effect on the CICSTRAN data set variables. A minor 
                  error in calculation of TASKCPTM in CICSYSTM was also 
                  corrected by this change.  The figure on page 66 of   
                  the MXG Supplement is accurate for CICS 1.6; the below
                  figure is correct for CICS 1.7 and uses the CICSPARS  
                  descriptions of maintask, subtask, etc., values:      
                                       CPUTCBTM                      SRB
                  |-----------------------------------------------| |--|
                               MAINCPTM                   SUBTCPTM      
                   KCCPUTM             USRCPUTM           OSWTCPTM      
                          | JCCPUTM   TCCPUTM   TASKCPTM |              
                              "CICS"             "APPL"                 
                       1. Change both occurrances (lines 821 and 884),  
                          to read                                       
                       2. Change line 883, which now reads              
                          to read:                                      
                       3. Insert after line 884 these five lines:       
                       4. Add these five new variable names to the KEEP=
                          list (lines 66-81) for _CICOTHR.CICSYSTM.     
   Thanks to Joseph J. Faska, Chemical Bank, USA.                       
Change 05.83      CICS 1.7 sites with a large number of user clocks or  
Jun 29, 1987     counters added to their type 110 SMF record received   
VMAC110           the "Invalid task number" MXG error message because of
UTILCICS          an MXG error. The string of connectors can be over 200
                  bytes, but MXG had only a 200-byte character variable.
                  The confirming symptom of this error is MCTSSDCN, the 
                  number of "connectors", will have a value over 100 in 
                  the MXG error message. Additional lines were changed  
                  UTILCICS and VMAC110; only the execution-critical code
                  changes are printed here:                             
                  After line 493 (END;) and before line 494 (ELSE INPUT)
                  insert the following five lines:                      
                  ELSE IF CONNBYTE GT 200 THEN DO;        493.1         
                    INPUT CICTRANV $CHAR200. @;           493.2         
                    SKIP=CONNBYTE-200;                    493.3         
                    INPUT +SKIP @;                        493.4         
                  END;                                    493.5         
   Thanks to Shawn Weikel, CITIBANK, USA.                               
Change 05.82      Support for the modified type 6 SMF record written by 
Jun 29, 1987     the SAR (SYSOUT Archival and Retreival) product from   
VMAC6             Central Software and the VPS (Virtual Printer Support)
                  product from 1:                                       
                  New line 111.1:                                       
                  ELSE IF SUBS=50658 THEN SUBSYS='SAR';                 
                  Change line 137:                                      
                  ELSE IF SUBSYS='JES3' THEN DO;                        
                  To read:                                              
                  ELSE IF SUBSYS='JES3' OR SUBSYS='SAR' THEN            
   Thanks to Frank Bolan, Bergan Brunswig, USA.                         
Change 05.81      The CICS 1.7 variable UOWID (which ties a transaction 
Jun 24, 1987     in an MRO Terminal Owning Region to the same logical   
VMAC110           transaction in other Application Owning Regions) is   
                  now formatted as a $HEX16 so it prints "better". The  
                  first six bytes are the timestamp of attach and they  
                  are now decoded into new variable UOWTIME. (For DL/I  
                  batch jobs, only the time, HHMMSS, is actually in the 
                  data record. The SMF record date is used for DL/I.)   
Change 05.80      The interval of aggregation of the RMFINTRV data set  
Jun 16, 1987     (set by macro _DURSET) is now defined in IMACRMFI so   
IMACRMFI          that inline changes do not have to be made. This is   
RMFINTRV          consistent with the description in the MXG Supplement.
Change 05.79      XMACVTOC now supports 3380 devices. This "extra" MXG  
Jun 14, 1987     program reads the VTOC of a device pointed to by the   
XMACVTOC          DISK ddname, and provides the mapping of the disk     
                  size and physical location of all data sets and free  
                  spaces on a volume. You should compare this program   
                  with MAPDISK on the SAS Sample library. This member   
                  was replaced July 31, 1987 by Change 5.96.            
Change 05.78      Support for DFSORT Release 9 which added new variables
Jun 14, 1987     to the type 16 SMF record. Access methods used, start  
VMAC16            and end of sort timestamps, SRB CPU time, work data   
                  set tracks and extents, I/O counts (SORTIN, SORTOUT   
                  and total work), and sort return/reason codes are now 
                  available for each sort execution. This member was    
Change 05.77    1.The SYSTEM variable in PDB.PRINT will frequently be   
Jun 10, 1987     wrong; usually the value of SYSTEM in PDB.PRINT was    
BUILDPDB          from the Step (30_4) record. This change corrects this
BUILDPD3          error and creates variables SYSINT, SYSSTP, SYSJOB,   
                  SYSPUR and SYSPRN in PDB.JOBS to identify the system  
                  from which each of the five records was found. As a   
                  result of this redesign, SYSTEM in PDB.JOBS will come 
                  from the first non-blank value in this ordered list:  
                  SYSSTP, SYSJOB, SYSINT, SYSPUR, or SYSPRN to ensure   
                  SYSTEM is non-blank and contains execution system if  
                  execution records were found, otherwise it contains   
                  the purge or print system id.                         
                2.JOBCLASS was added to the PDB.PRINT and PDB.STEPS     
                  data sets (from the PDB.JOBS) at the request of many. 
                3.PROTECT=ZZZZZ was added to the three CICS data sets   
                  built by BUILDPD3 so that it would be consistent with 
                  the JES2 version BUILDPDB, which has always used the  
                  PROTECT= keyword.                                     
   Thanks to Georg Simon, Prudential, USA.                              
Change 05.76      The value of IRESPTM in CICSTRAN was set to missing if
Jun 10, 1987     any bit was on in TASERRFG, as these bits indicated an 
VMAC110           error in timings. The bit meanings have been changed  
FORMATS           in CICS 1.6.1 and CICS 1.7 and CMF no longer corrupts 
                  its timings. Therefore, IRESPTM is no longer dependent
                  on TASERRFG, and will always be calculated as ELAPSTM 
                  minus WTTCIOTM. Format MG110ER has been changed to now
                  properly decode the new bit meanings of TASERRFG.     
   Thanks to Jo Engles, Virgina Light and Power, USA.                   
Change 05.75      Labels in VMAC110 were alphabetized. JCLUXREF needed a
Jun 10, 1987     DCLOG DD, and /* in JCL was changed to //* comments.   
VMAC110           Option ERRORABEND was added to JCLPDB. All MXG        
JCLUXREF          production jobs must specify OPTION ERRORABEND to     
JCLPDB            protect you from yourself. ERRORABEND causes any SAS  
                  error condition (but not warnings) to immediately     
                  terminate the execution with a USER 999 abend. The    
                  actual error condition will be printed on the log.    
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
    for alpha testing.                                                  
==========Changes thru 5.74 were published in Newsletter TEN=========== 
Change 05.74      Summarization and accumulation of VM/Monitor data a la
Jun  9, 1987      RMFINTRV into hourly (default) performance data with a
ANALVMOS          small number of critical variables kept allows a years
DOCVMOS           data in a small file for trending. Additionally, seek 
EXECDALY          histograms for VM disks is provided.                  
                  Member names have changed since Newsletter TEN.       
   Thanks to Steve Glick, Southern Methodist University, USA.           
Change 05.73      Several minor cleanups detected in alpha testing of a 
Jun  9, 1987      pre-release of Version 5:                             
VMAC128           a. VMAC128, two DOs removed and an END; removed.      
TESTUSER          b. TESTUSER, changed RMDSDATA to TYPERMDS (all).      
TYPEDISO          c. TYPEDISO needed quotes around SPLIT='*'.           
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.72      The VM/Monitor TOD time stamp is written in GMT time, 
Jun  9, 1987      but the Start Collection time stamp is in local time. 
VMACVMON          Local time is offset from GMT by the SYSTIME parameter
                  ZONE in DMKSYS. Some sites (my test site included) set
                  ZONE=0 and the operators enter local time. This causes
                  the TOD time stamp to be local time. However, if your 
                  site uses a nonzero value for ZONE, the STARTIME value
                  produced by MXG for each record was in GMT zone. This 
                  change corrects this MXG oversite by using the Start  
                  Collection (Class 0 Code 97) record to calculate the  
                  time zone difference and set MXG times to local time. 
                  The following lines inserted/changed will correct the 
                  MXG time stamps. (SAS 5.16 under CMS will not accept  
                  nulls in the DHMS function, while MVS SAS will. Line  
                  2025 replaces the nulls with zeros for this reason.)  
     TIMEZONE=0;                                                  276.1 
     STARTIME=16*MNHTOD+BASETIME-TIMEZONE;                        279   
     COLLTIME=DHMS(DATTODCL,0,0,TIMTODCL);                       2025   
     DELTATOD=(16*MNHTOD+BASETIME)-COLLTIME;                     2025.1 
     TIMEZONE=3600*FLOOR((ABS(DELTATOD)+99)/3600);               2025.2 
     STARTIME=16*MNHTOD+BASETIME-TIMEZONE;                       2025.4 
                  The actual change in Version 5 is more extensive, and 
                  warns you if a 0/97 record was not found. It also will
                  process VM/Monitor data from any time period, as long 
                  as the monitor data includes a 0/97 (formerly, only   
                  data within the last 203 days, the wrap time of the 5 
                  byte TOD field, could be accurately processed). If the
                  first record is not a 0/97, MXG defaults the time zone
                  to zero and what you get could be either local or GMT.
   Thanks to Terry Magill, NAS, USA.                                    
   Thanks to Steve Glick, Southern Methodist University, USA.           
Change 05.71      Variables VECTUTM, VECTU0TM and VECTU1TM, VM/Monitor  
Jun  9, 1987      reported Vector Facility Usage time (total, CPU, APU) 
VMACVMON          were added to VMONPERF data set. Note that only the   
                  usage time is reported, and only globally; there is   
                  no vector usage time reported by user in VM. The MXG  
                  supplement discusses the vector Facility measurements.
Change 05.70      Variable INTERVAL was added to all of the VM/Monitor  
Jun  9, 1987      data sets.                                            
   Thanks to Steve Glick, Southern Methodist University, USA.           
Change 05.69      In these sample reports, transactions with blanks for 
Jun  9, 1987      OPERATOR were not counted in some reports, because by 
ANALCICS          default PROC SUMMARY treats a blank value of a CLASS  
                  variable as a missing value. These transactions will  
                  be counted if you add the MISSING operand to line 50: 
   Thanks to Jim Enia, Allied Signal, USA.                              
Change 05.68      Added support for ACF2 user (default=196) SMF record. 
Jul 21, 1987      Ten ACF2... data sets are created. The ... suffix of  
EXACFAR           data set name is the same as the parameter name in the
EXACFCR           ACF2 Utilities Manual, page 74 (1/15/85 revision). No 
EXACFDR           reports are written or planned. Half of the data sets 
EXACFER           have been validated with actual data. Only Release 4.0
EXACFJR           and later ACF2 releases will be supported.            
EXACFNRB          ACF2 is a product of UCCEL Corporation, maintained by 
EXACFPR           their Chicago Development and Support Center.         
   Thanks to Jill Raudabaugh, Whirlpool Corporation, USA.               
Change 05.67      Changed references to SMF59TID to correct variable    
Jun  4, 1987      TRANTYID to eliminate "uninitialized variable" note.  
   Thanks to John Mueller, ARMCO Steel, USA.                            
Change 05.66      Support for IMS 2.1 log record processing and a major 
Jun  4, 1987      redesign of the logic for building IMSTRAN. Previously
EXIMSOUT          the algorithm threw away transactions that were not   
IMACIMS           perfectly matched. Now, an observation will be placed 
TYPEIMS           in IMSTRAN if a '07' IMS log record is found, even if 
VMACIMS           not all of the other possible log records exist. This 
                  provides complete accounting for the existence and the
                  resource accounting of the transaction, but may cause 
                  missing value for response time and some time stamps. 
                  Since IBM does not put a version number in the IMS log
                  you must change the _IMSVERS macro (which is defined  
                  in member IMACIMS) from its default of 1.3 if you wish
                  to process IMS 2.1 log records.  This re-design has   
                  been moderately well validated by comparison with data
                  from the IMF product, but as with any new design (and 
                  especially with the undocumented state of the IMS log)
                  you should be alert for any idiosyncrasies. This      
                  change includes and superceedes Change 5.46. The code 
                  in EXIMSOUT which formerly replaced IMSCPUTM with the 
                  average cpu time per transaction has been eliminated. 
                  Now, IMSCPUTM is the actual message region CPU time.  
   Thanks to John D. Pike, American Airlines, USA.                      
Change 05.65      Support for MVS 2.2 changes as announced in the MVS/XA
Jun  1, 1987      Conversion Notebook, Volume 2 (GC28-1411-0). Untested.
               1. VMAC30. DIVRREAD, the 'ASID TOTAL*DIV REREAD*COUNT' is
                  added to the TYPE30_V, TYPE30_4, TYPE30_5 and TYPE30_6
                  data sets to report the new DIV (Data in Virtual) use 
                  at the interval, step, and job level of detail.       
               2. VMAC7072. Three new variables added to TYPE72 data set
                  PERFACCT='PERFGRP*SET FROM*ACCOUNT?'                  
                  PGPAGEIN='PAGE INS*BY THIS*PERF GROUP PERIOD'         
                  Note that ACTFRMTM and PGPAGEIN report memory and page
                  in counts by each period of each performance group!   
               3. VMAC90 and FORMATS. New subtype 17 (SET PFK) added to 
                  the TYPE90 data set.                                  
Change 05.64      Variable UCBTYPE was increased from 4 bytes to 5 bytes
Jun  1, 1987      to eliminate truncation of the last byte. Even though 
VMAC21            the field is only 4 bytes, because it is stored as a  
VMAC64            numeric in SAS, 5 bytes are required for resolution of
VMAC74            all four hex bytes. The change to a 4-byte character  
VMAC75            variable was considered, but would be catastrophic on 
                  any report program now using UCBTYPE. If you combine  
                  your daily, weekly and monthly PDBs as recommended in 
                  Chapter Thirty-Five using SET statements, there will  
                  be no impact. However, if you use PROC APPEND on the  
                  TYPE21 or PDB.TAPES, TYPE64, TYPE74, or TYPE75 data   
                  sets, you will encounter an error message due to the  
                  change in length. You could specify FORCE on the PROC 
                  APPEND statement to force the joining of the old and  
                  new, but that will keep the old length of 4 bytes. To 
                  use PROC APPEND without error, you must re-create the 
                  BASE= data set(s) with length 5:                      
                     DATA BASE.xxxx; LENGTH UCBTYPE 5; SET BASE.xxxx;   
                  and then the PROC APPEND will succeed. (These are     
                  some of the reasons MXG does not recommend the use of 
                  PROC APPEND.)                                         
                  Note: UCBTYPE is not a commonly needed variable, and  
                  since it has never been right, probably is not used in
                  your report programs. DEVICE is decoded from UCBTYPE  
                  and should be used instead.                           
   Thanks to Bill Mullen, BGS, USA.                                     
Jun  1, 1987      SELAPSTM,JELAPSTM, and INTRVLTM are now created before
VMAC30            any MXG exits are taken. Formerly, they were created  
                  just before the output exit of their respective data  
   Thanks to Bill Mullen, BGS, USA.                                     
Change 05.62      RACF Type 80 record with a zero length data segment   
Jun  1, 1987      caused STOPOVER abend. Insert new lines 70.1, 70.2 and
VMAC80            72.1 after lines 70 and 72 in VMAC80:                 
              @;                                             70.1       
              IF 0 LT RACFDLN LE 200 THEN INPUT              70.2       
                 INPUT RACFDATA $CHAR200. @;                 72.1       
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.61      Untested assembly code for the tape mount monitor. Do 
May 21, 1987      not use, as it has not been tested.                   
Change 05.60      JCL errors were not kept in PDB.JOBS from JES2. Code  
May 20, 1987      to delete the multiple JES2 purge records in an NJE   
BUILDPDB          environment also deleted the JCL error's purge record.
                1.Add variable  INREASON  to the _PDB26 keep list in    
                  line 37.                                              
                2.Replace line 222:                                     
                    IF SYSEXEC GT ' ';                                  
                  with these two lines:                                 
                    IF INREASON='SR' OR                                 
                      (INREASON='JR' AND SYSEXEC LT ' ' THEN DELETE;    
   Thanks to M. N. Woolley, Dept of Finance, AUSTRALIA                  
   Thanks to Cathy Ellis, Dept of Finance, AUSTRALIA                    
Change 05.59      TYPE64 only contains data on the first 3 extents of   
May 20, 1987      a VSAM entry. This change creates an additional data  
EXTY64X           set TYPE64X which contains the information on all of  
VMAC64            the extents. (TYPE64 is unchanged and still will have 
                  the data on the first three extents).                 
   Thanks to Willie Antman, Federal Deposit Insurance Corp., USA.       
Change 05.58      This change makes full use of the relocatable record  
May 20, 1987      length information to protect MXG from any IBM changes
VMAC7072          to the performance group data. Insert two new lines   
                  after line 1169:                                      
                    IF SKIP GT 0 THEN INPUT +SKIP @;                    
                  This change replaced by change 5.65, June 1, 1987.    
Change 05.57      Support for NETVIEW changes to the type 39 record.    
May 20, 1987      Without this change, some variables will be missing.  
VMAC39          1.Change line 206 from:                                 
                    IF VERSNLDM GE 000DX THEN INPUT                     
                  to read:                                              
                    IF VERSNLDM GE 000DX OR PRODUCT='NETV' THEN INPUT   
                2.Change line 241 from:                                 
                    IF VERSNLDM GE 000DX THEN INPUT                     
                  to read:                                              
                    IF LENSCS GE 118 THEN INPUT                         
   Thanks to John Fleig, Rochester Gas and Electric, USA.               
Change 05.56      Devices offline at the end of the interval and any    
May 20, 1987      device with CMBINVLD='Y' (indicating invalid data     
VMAC74            from the hardware monitor in the channels) had none   
                  of their utilizations calculated, but had some data   
                  carried forward from the previous device. Delete      
                  line 356 and line 379 so that utilizations will       
                  always be calculated for all devices.                 
   Thanks to MP Welch, Sisters of Charity of the Incarnate Word, USA.   
Change 05.55      IBM's Report Management & Distribution System,        
May 19, 1987      RMDS FDP creates a (default) type 217 SMF record,     
EXTYRMDS          which is supported by these new members. Data set     
IMACRMDS          TYPERMDS is created.                                  
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.54      RACF records with identical SMFTIME values could      
May 18, 1987      not be ordered as they occurred. A new variable,      
VMAC80            RECIDNO was added to the KEEP= list and created       
ANALAUDT          with one new line inserted after line 45 in VMAC80:   
                     RECIDNO = _N_ ;                       45.1         
                  ANALAUDT was also modified to use RECIDNO in creating 
                  the Auditor reports.                                  
   Thanks to David D. Anderson, U.S. Bancorp, USA.                      
   Thanks to Jim Bentley, U.S. Bancorp, USA.                            
Change 05.53    1.IDMS Performance Monitor (formerly RTE) records       
May 18, 1987      now decode the RT1 variable data area (ERUS Batch,    
VMACRTE           ERUS CICS, and DC information). Ten new variables     
                  are created: RT1DCTC RT1CDLT RT1DCUI RT1DCPN          
                  RT1EBJN RT1EBNAF RT1EBALN RT1EBAFN RT1EBPN and        
                  RT1MSSEV, due to Rod.  This member will be            
                  renumbered in MXG Version 5.                          
                2.IDMS-PM records were changed incompatibly in          
                  IDMS Version 10.1, and many new data segments now     
                  exist in the RTE record, based on test data sent      
                  by Dennis. The following changes are required to      
                  process IDMS Version 10.1 RTE records:                
                  a. Insert one new line after line 141:                
                       IF RT1HDRVN EQ 1 THEN DO;             141.1      
                  b. Insert five new lines after line 216:              
                       @;                                    216.1      
                       IF RT1HDRTL EQ 252 THEN INPUT         216.2      
                             RT1MSRS2  $CHAR4.               216.3      
                       @;                                    216.4      
                       ELSE INPUT                            216.5      
                  c. Insert five new lines after line 220:              
                       END;                                  220.1      
                       ELSE DO:                              220.2      
                         SKIP=RT1HDRTL-16;                   220.3      
                         INPUT +SKIP @;                      220.4      
                       END;                                  220.5      
                   Once Cullinet provides the formats of the PMIM       
                   record types, they will be supported by MXG.         
                   See Change 5.95.                                     
   Thanks to Rodney L. Reisch, General Electric Silicon Division, USA.  
   Thanks to Dennis Pugh, Browning Ferris Industries, USA.              
Change 05.52      Several minor errors in the VM/Account data sets are  
May 15, 1987      corrected by this contribution.                       
TYPEVM         a. Variable TERMADDR should be read in with $CHAR4. in   
                  lines 237 247 and 256 (instead of PIB4.).             
               b. Variable MINIADDR should be $CHAR4. instead of PIB4.  
                  in line 249.                                          
               c. Variable MINIADDR should be $CHAR3. instead of PIB4.  
                  in line 259.                                          
               d. Add new line after line 224 (1077052512 is the value  
                  when four blanks are read with a PIB4. format).       
                   IF BLOCKS=1077952512 THEN BLOCKS=.; 224.1            
   Thanks to Jan Van Lent, Fokker BV, NETHERLANDS.                      
Change 05.51      A fine set of DB2 reports, similar to those produced  
May 14, 1987      by the DB2PM product, were provided by Tony. This     
ANALDB2R          member generates the reports, with selection by DB2   
                  system as well as reporting time selection as shown   
                  in the comments at the beginning of the member.       
   Thanks to Tony Shaftel, Farmers Insurance, USA.                      
Change 05.50      TYPE6 data set variable CONTRIND could not decode the 
May 14, 1987      multiple bit conditions which sometimes occur. This   
VMAC6             variable has been replaced by nine one-byte variables,
                  CONTRIN0 through CONTRIN9, containing a "Y" if the    
                  condition described by the variable's label did occur.
                  This also takes less storage (9 bytes versus 22). Most
                  sites do not actually used these flags which identify 
                  certain operator actions to the print file.           
   Thanks to P. J. Lines, Centre-File Limited, ENGLAND.                 
Change 05.49      IBM documentation error caused variable DVQUQCNT in   
May 14, 1987      VMON602 data set to be incorrect. The variable is     
VMACVMON          only one byte for all releases of VM. Delete lines    
                  2487 thru 2490.                                       
   Thanks to Steve Glick, Southern Methodist University, USA.           
Change 05.48      TYPE78PA (Private Area virtual storage of monitored   
May 14, 1987      jobs) variables suffixed with 9 were not calculated   
VMAC78            as averages. Replicate lines 1638 through 1645 and    
                  then change both occurrences of 4 in each line to 9.  
   Thanks to Rodney L. Reisch, General Electric Silicon Division, USA.  
Change 05.47      VM Account record type 07 (VCNA) caused a STOPOVER SAS
May 14, 1987      error condition. Line 157                             
TYPEVM              INPUT                                               
                  should be change to                                   
                    INPUT @9 ACCOUNT $CHAR8.                            
   Thanks to Jim Gilbert, Texas Utilities, USA.                         
Change 05.46      IMS transactions were not properly assembled when the 
May 14, 1987      record counter for the log is reset.  It used to be   
IMACIMS           reset with each new log tape, but it is not clear now 
TYPEIMS           exactly when the reset occurs. The variable IMSTAPNO  
VMACIMS           (which was in the original European code but removed  
                  by mistake) has been restored to resolve the reset.   
                  There are many lines changed.                         
                  June 3, 1987. Change 5.66 superceeds this change.     
   Thanks to Lee Adams, United Telephone System, USA.                   
Change 05.45      Reading type 78 records from the VSAM SMF file causes 
Apr 25, 1987      a STOPOVER abend. (There is no problem with reading   
VMAC78            the normal dumped BSAM SMF file.). To read the type 78
                  VSAM format data, add +OFFSMF to lines 1668, 1695, and
                  1731. (OFFSMF is set by the _SMF macro in VMACSMF and 
                  is 4 if a VSAM file is being read, 0 otherwise.)      
   Thanks to Wing Louie, Metropolitan Life Insurance, USA.              
Change 05.44      DB2 Release 1 fields QXQUERY and QXALTBF were changed 
Apr 25, 1987      in Release 2 and are now QXSELECT and QXFETCH in MXG. 
VMACDB2           (QXALTBF was reserved, and QXQUERY was split into the 
                  two query types SELECT and FETCH.) Change all five    
                  occurrences of QXQUERY to QXSELECT and change the     
                  label to read "SELECT*STATEMENTS". Change all five    
                  occurrences of QXALTBF to QXFETCH and change the      
                  label to read "FETCH*STATEMENTS".                     
   Thanks to A. Williams, Shell U.K, ENGLAND.                           
   Thanks to Richard Whitnable, State of Wisconsin, USA.                
   Thanks to Martha Hall, Metropolitan, USA.                            
Change 05.43      QTXA... variables in DB2ACCT are missing because the  
Apr 25, 1987      length of the lock segment was changed, causing MXG to
VMACDB2           not read them in.  Line 1238 should be changed from   
                        ELSE IF LENLOCK GE 28 THEN                      
                  to read                                               
                        ELSE IF LENLOCK GE 24 THEN                      
   Thanks to Tom Frankle, Chemical Bank, USA.                           
Change 05.42      More than 200 bytes of user data (counter, clocks, or 
Apr 21, 1987      characters) added to the CICSTRAN data caused the MXG 
VMAC110           error message "data format has changed". MXG will now 
                  input the first 200 bytes and skip over any excess.   
                  The member IMACICUS can be used to actually decode    
                  any local counters. (The optional DL/I counters are   
                  decoded in IMACICDL.)                                 
   Thanks to Shawn Weikel, CITIBANK, USA.                               
Change 05.41      Reserved Change Number.                               
Mar 19, 1987                                                            
   Thanks to Jon Sahl, New York Life, USA.                              
Change 05.40      Durations and counts for CICSEXCE exceptions were not 
Mar 16, 1987      being calculated for CICS 1.7 exceptions. MSWAITTM,   
VMAC110           TSWAITTM, and VSWAITTM are set to ENDTIME-STRTTIME.   
                  The existence of the exception is still the important 
                  event. (VSAM waits are usually due to insufficient    
                  LSR buffers).                                         
   Thanks to Tom Wiebe, NERCO, USA.                                     
Change 05.39      Preliminary re-write of SYNCSORT support, will become 
Mar 11, 1987      VMACSYNC when tested.                                 
   Thanks to Jill Raudabaugh, Whirlpool Corporation, USA.               
Change 05.38      Record subtype, SUBTYPE, is now created in _SMF macro 
Mar 11, 1987      and is available to exit IMACFILE, for those records  
VMACSMF           which contain a subtype. END=ENDOFSMF and an include  
                  for IMACFILE were added to _JOURNAL macro (for type   
                  110 records in CICS journal format) so that it is now 
                  consistent with the _SMF macro.                       
   Thanks to Mark Nelson, UCCEL, USA.                                   
Change 05.37      Revised installation instructions for the IDMSSTAT    
Feb  2, 1987      program (which writes SMF records from IDMS) were     
IDMSEXIT          added. No change to the ASM source code was made.     
   Thanks to Ron Szczepanski, Whirlpool Corporation, USA.               
   Thanks to Keith Stout, Municipality of Anchorage, USA.               
Change 05.36      A set of ten reports for the EDP Auditor, from RACF   
Feb  2, 1987      TYPE80 data, was provided by its author, and with     
ANALAUDT          minor revisions was added as member ANALAUDT.         
   Thanks to David D. Anderson, U.S. Bancorp, USA.                      
Change 05.35      Variable VTAMCPUI, the CPUID*FROM*SYSTEM, at the end  
Jan 29, 1987      of this VTAM SMF Accounting Record is now created by  
VMAC128           MXG.                                                  
Change 05.34      To protect users from accidentally truncating the WORK
Jan 28, 1987      variable (which defines worktype and is expected by   
IMACWORK          RMFINTRV to be $CHAR5.), INFORMAT WORK $CHAR5. was    
                  added. This is a minor change.                        
   Thanks to Brian Cooper, Franklin Mint, USA.                          
Change 05.33      Announcement of the 3090-600 suggests there really is 
Jan 27, 1987      going to be a 3090-800. TYPE70 data set was modified  
VMAC7072          to support nine engines (numbered 0 thru 8 inclusive).
                  The eight CPU-specific variables (CAIn, CPUSERn, VFONn
                  CPUWAITn, IORATEn, PCTCPBYn, PCTTPIn, VFAFFTMn) now   
                  exist for n=0 thru 8.  This change supercedes change  
                  5.1. These variables are not typically important; most
                  sites won't need to know these CPU-specific values.   
                  The overall system measures related to these values   
                  (CPUWAITM, IORATE, PCTCPUBY, PCTTPI) are correct with 
                  or without changes 5.32 and/or 5.1.                   
Change 05.32      Support for the Online Business System WYLBUR Session 
Jan 26, 1987      SMF record  was added. One record per WYLBUR session  
TYPEWYLB          is written containing CPU, I/O and counts of some     
VMACWYLB          activities.                                           
Change 05.31      Support for the Cache RMF Reporter (IBM Program Number
Jan 25, 1987      5798-DQD) SMF records (default 244, 245) which invokes
TYPECACH          AMS LISTDATA to extract counters for Cache DASD 3380  
VMACACHE          control units (models 11,21,13,and 23) was added. This
IMACACHE          code was originally written in Germany and contributed
EXCAPAG           to MXG. The code was revised and consolidated into the
EXCACHE           members indicated, and has been tested with type 245  
                  SMF records.                                          
   Thanks to ???, DZ/SP-CM Gotaher Verischerung VVAG, GERMANY.          
    for the original code,                                              
   Thanks to Kirby Kern, Commercial Federal S & L Omaha, USA.           
    for test data.                                                      
Change 05.30      Format MG078CV., which is used in many MXG data sets  
Jan 24, 1987      to convert bytes to nnnK or nnnM printout was refined 
FORMATS           so that 16777216 bytes prints as 16MB (before this    
                  change, the value had to be 16777222 before the format
                  changed from 15M to 16M). Correct this minor error by 
                  changing .0009766 to .0009765625 in line 163, and by  
                  changing .000000953674 to .00000095367432 in line 164.
Change 05.29      Support for TSO/MON Version 5.0 coded. Accounting     
Jan 23, 1987      variables added to TSOMCALL and TSOMSYST. A new data  
VMACTSOM          set, TSOMDSNS captures data set names and members     
                  which were accessed by commands captured in TSOMCALL, 
                  if new TSO/MON option to do so was enabled. MXG 4.4   
                  supports TSO/MON Version 5.0 without error, but if you
                  want the data new in TSO/MON Version 5.0 before we    
                  ship MXG Version 5, call us. Too many lines changed   
                  to provide here.                                      
Change 05.28      The equation for PCTCUBSY (percent control unit busy  
Jan 14, 1987      in TYPE78CF for 3090s) is incorrect in the RMF manual 
VMAC78            on page 374. The minus is actually a plus.            
                  The value of AVGCUHQL (CU-HDR queue in TYPE78CU) was  
                  incorrectly calculated. The equation was corrected.   
           Source statement                                 Line number 
    PCTCUBSY=100*PCTCUBSY/CHPIDTKN+PCTCUBSY);                    1724   
    ELSE DO;                                                     1749   
      NRCUHENQ=.;                                                1749.1 
      AVGCUHQL=.;                                                1749.2 
    END;                                                         1749.3 
Change 05.27      After each statement in which INVALID,VARIED,ONLINE,  
Jan 14, 1987      LCI, and IDWRONG is set equal to 'Y', add  a statement
VMAC73              ELSE XXXXXXXX=' ';     where XXXXXXXX is the name of
                  the variable being set to 'Y'. Without these new ELSE 
                  statements, once any of these variables were set to a 
                  value  'Y', the value remained 'Y' for the rest of the
                  observations created from that type 73 record.        
   Thanks to Paul Larson, Marine Bank Services, USA.                    
Change 05.26      New variables SWAP EXTAUX LOGAUX LOGEXT PHYAUX and    
Jan 14, 1987      PHYEXT are created, each containing the total swap    
VMAC71            rate for tha swap transition. This total is created by
                  summing all eleven swap reason codes for a particular 
                  swap transition. Insert after line 742, these lines: ,
                  SWAPTI,  SWAPTO,  SWAPUS,  SWAPVR,  SWAPWT);          
                  MXG Version 5 goes further and sets all seventy two of
                  swap rate variables to missing if there are no swap   
                  transitions for that swap reason code. This will cause
                  PROC PRINTs and MEANS to highlight only the transition
                  and reason codes which actually occurred.             
Change 05.25      Variables VECTORON and VECONSAM were replaced with    
Jan 14, 1987      VFON0 thru VFON3 and VFAFFTM0 thru VFAFFTM3 to track  
VMAC7072          Vector Facility Online and Affinity by processor.     
Change 05.24      Variable ABNDRSNC (abend reason code) was added to    
Jan  7, 1987      TYPE30_4 and TYPE30_5 KEEPs, and new lines inserted   
VMAC30            after lines 147, 326, and  487:                       
           Source statement                                  Line number
           ABNDRSNC='ABEND*REASON*CODE'                            145.1
           ABNDRSNC                             $HEX8.             323.1
           IF LENCOMP GE 8 THEN INPUT ABNDRSNC $CHAR8. @;          483.1
Change 05.23      Class 1 record with LENDATA=0 causes STOPOVER ABEND   
Jan  7, 1987      because $VARYING is not smart enough to handle zero.  
VMACVMON          Lines 2087-2088 should be changed to:                 
           Source statement                                  Line number
           INPUT @19 LENDATA PIB1. @;   /*MN10YCNT*/              2087  
           IF LENDATA GE 1 THEN                                   2087.1
           INPUT @20 DATALINE $VARYING128. LENDATA /*MN10YI0*/    2088  
   Thanks to Bill Cohen, Drexel Burnham, USA.                           
Change 05.22      OBJVALUE was ten times too large. Line 288 should be  
Jan  7, 1987      OBJVALUE  PIB4.1 instead of PIB4.                     
Change 05.21      The 3480 data fields were never read in, due to wrong 
Jan  4, 1987      test value in line 68. New variables DEVICE and OPEN  
Jan 26, 1987      are added. TAPUNSER was incorrectly decoded as numeric
ANALESV           but is actually a character string in hex format. To  
VMAC21            avoid conflict, new character variable TAPCUSER now   
                  replaces TAPUNSER.  For 3480s TAPCUSER contains the   
                  last four digits of control unit serial number and the
                  single hex digit of the actual drive within that CU on
                  which the tape volume being dismounted was created.   
                  For 3420s it contains the creation tape drive serial. 
                  UCBTYPEs length is increased to 5 to avoid truncation.
                  Member ANALESV was also modified to print 3480 values;
                  those report changes are not given here.              
   Thanks to Norbert Korsche, OMV-AG, AUSTRIA.                          
   The following change to VMAC21 is only needed if you are interested  
   in analyzing 3480 tape errors. It will be automatically installed in 
   MXG Version 5, as are the changes to ANALESV.                        
   The change alters four existing lines and inserts twelve new lines.  
   The line numbers of the changes/inserts are shown below. Inserts have
   a period after the line number they are to be inserted after. Changed
   lines have no period.                                                
       Source statement                                      Line number
                     DCBOFLG  DENSITY  DEVICE   DEVNR             0007  
                     OPEN                                         0010.1
                     TAPCUSER TEMP.... (rest unchanged)           0013  
        DEVICE  ='DEVICE*TYPE                             '       0027.1
        OPEN    ='TYPE*OF*OPEN                            '       0032.1
       LENGTH DEFAULT=4 UCBTYPE 5 SMFTIME 8;                      0048  
              TAPCUSER       $HEX6.                               0051.1
             @27+OFFSMF DEVCLASS PIB1.                            0055.1
             @28+OFFSMF DEVTYPE  PIB1.                            0055.2
       %%INCLUDE SOURCLIB(VMACUCB);                               0067.1
       IF LENGTH GE 58 THEN DO;                                   0068  
             @44+OFFSMF TAPCUSER  $CHAR3.                         0070  
         IF      DCBOFLG='0.......'B THEN OPEN='INPUT  ';         0076.1
         ELSE IF DCBOFLG='1.......'B THEN OPEN='OUTPUT ';         0076.2
         BYTEREAD=4096*BYTEREAD;                                  0076.3
         BYTEWRIT=4096*BYTEWRIT;                                  0076.4
       END;                                                       0076.5
       Original lines 86-87 MOVEed to new lines 76.3 and 76.4           
Change 05.20      The "Total Recorded CICS CPU Time", created only in   
Dec 23, 1986      MXG reports in ANALCICS, is incorrect. As described in
Jan 26, 1987      the MXG supplement, the total CPU time recorded in the
ANALCICS          CICSYSTM data set should have been(line 88):          
                     CPUTOTTM = SUM(CPUSRBTM,CPUTCBTM);                 
                  NOTE: This only affects ANALCICS reports, not the MXG 
                  CICSYSTM data set. See Chapter 21 in MXG Supplement.  
   Thanks to Beth Asbury, Prudential Home Mortgage, USA.                
Change 05.19      PVTBOT, PVTTOP, and REGREQST were converted to bytes  
Dec 23, 1986      (their value was multiplied by 1024), and they are now
VMAC30            converted by MXG format MG078CV., which prints bytes  
                  as K or M, depending on magnitude. This was done to   
  See also        make PVTBOT, PVTTOP and REQREQST consistent with the  
  Change 6.13     other virtual storage measures in TYPE30 data sets,   
                  LSQSZHI/LOW, PVTSZHI/LOW and USRSZHI/LOW.             
   Thanks to Norbert Riehout, Great Western, USA.                       
Change 05.18      DL/I Counter decoding was added for CICS 1.7. The same
Dec 23, 1986      four clocks and nine counters are decoded, but their  
IMACICDL          order in 1.7 is reversed from 1.6: the four clocks are
                  first, followed by the nine DLI counters, Also, the   
                  four PIB2. count variables for the four clocks must be
                  changed to PIB4.  Finally, the test for length of data
                  must be changed from 60 to 68. Copy the 1.6 decode to 
                  the 1.7 logic area in IMACICDL and make these changes.
   Thanks to Thomas Victor, Kaiser Data Center, USA.                    
Change 05.17      These new members provided by Gothaer Vershicherung in
Dec 15, 1986    1.TYPECACH member supports the 3880 Cache DASD RMF      
TYPECACH          Reporter FDP SMF records in two datasets for the model
VMACACHE          11/21 and 13/23 cache.                                
VMAC60          2.Member VMAC60 has been updated to decode the VSAM VVR 
VMAC60            fields, although none of these variables are labeled  
SYSLOGJ3          and some will need MXG formats.                       
UTILSPAC        3.SYSLOGJ3 processes the JES3 SYSLOG. Worth reading.    
                4.UTILSPAC collects DASD size (space) info from CVAF    
Change 05.16      Decode of MONIFLG2 is incorrect. Replace lines 428-430
Nov 24, 1986      with:                                                 
TYPEMONI        '...1....' THEN MONIATI='Y';/*ATI*TASK*/                
                '....1...' THEN MONSWAIT='Y';/*VSAM*STRING*WAIT*/       
                '.....1..' THEN MONBWAIT='Y';/*VSAM SHARED*BUFFER*WAIT*/
                  Change MONDMONI to MONIATI in line 45, and replace 121
                  (MONDMONI label) with MONIATI='ATI*TASK'              
Change 05.15      Replace lines 101-105 (HS,MS,SS,TS input) with:       
Nov 24, 1986        STARTIME  PIB4.2                                    
TYPEDISO          and remove line 126 (STARTIME=HMS...)                 
Change 05.14      Additional test to prevent STOPOVER abend with 1.6.1. 
Nov 24, 1986      Add to present criteria for VMAC110.1 error message:  
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.13      Concatenated multiple VM Monitor files caused negative
Nov 24, 1986      CPU values at beginning of each group of monitor data.
VMACVMON          To reset INTRVCNT when new BEGIN monitor (CL 0 CD 97) 
                  record is encountered, insert new line:               
                       ELSE INTRVCNT=0; 281.1                           
                  after line 281.(Change was revised Feb 16, 1987.)     
   Thanks to Tim O'Rourke, Bankers Trust NYC, USA.                      
Change 05.12      IRC Wait time in CICS 1.7 is located after SUSPNDCN.  
VMAC110           a. Change line 678: WTIRIOCN PIB2. to WTIRIOCN PIB4.  
Dec 15, 1986      b. Move lines 676 thru 679 (IF _PP43887 THEN thru @;) 
                     immediately after line 688.                        
                  c. The actual CICS 1.7 APARS which add WTIRIOTM/CN are
                     APARs PP51612 and PP56560.  To enable MXG for these
                     PTFs, however, you must enable the macro named     
                     _PP43887 (the CICS 1.6 number) in IMACPTF.         
                  d. UTILCICS will not detect the existence of the IRC  
                     data fields.  However, if IRIOWTT appears under the
                     column heading of CMODNAME on the dictionary print 
                     from UTILCICS, then that CICS 1.7 APPLID must have 
                      _PP43887 enabled in IMACPTF. UTILCICS will be     
                     modified to check CICSDI17 to report this PTF.     
   Thanks to John Loo, Fluor, USA.                                      
   Thanks to Joseph J. Faska, Chemical Bank, USA.                       
Change 05.11      MXG did not correctly initialize all variables. Under 
Oct 31, 1986      some circumstances, character flags (eg, VARY, ONLINE)
VMAC73            could be erroneously carried to subsequent devices.   
   Thanks to Paul Larson, Marine Bank Services, USA.                    
Change 05.10      A bad CICS 1.6 data block could cause strange errors. 
Oct 31, 1986      Further testing added to delete bad CICS blocks.      
   Thanks to Kirby Hindin, Allnet Communication Services, USA.          
Change 05.9       Would not read VSAM SMF records correct.  +OFFSET was 
Oct 31, 1986      missing in lines 303,314, and 334.                    
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.8       Full duplex line utilization could exceed 100%, due to
Oct 22, 1986      CHRSPEED being the MAX of SEND or RECEIVE line speed. 
VMAC38            HDX line has only SEND or RECEIVE non-zero.           
                  To fix, change the CHRSPEED=MAX() to CHRSPEED=SUM().  
                  Change LSPEED=MAX() to LSPEED=SUM().                  
   Thanks to Marcia Geyer, City of New York FISA, USA.                  
Change 05.7       Syntax error due to line dropped after line 3200.     
Oct 22, 1986      SET TYPE0;  added following DATA statement.           
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.6       PDB.JOBS observation built from job which had no job  
Oct 22, 1986      termination record (happens if SPINCNT=0) caused minor
ANALMPL           anomaly in program. Now, INBITS tested for job term.  
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.5       If ANALDSET was used with the PDB.STEPS data (rather  
Oct 22, 1986      than using the SMF file and TYPE30_4 as step input),  
ANALDSET          a syntax error occurred due to a misplaced semicolon. 
   Thanks to Chuck Hopf, Dean Witter Reynolds, USA.                     
Change 05.4       Variables TAPE3420 and TAPE3480 are now created and   
Oct 22, 1986      count the number of 3420 and 3480 tape devices which  
VMAC30            were allocated by each step. TAPEDRVS is still the    
VMAC434           total number of tape drives allocated and is the sum  
VMACEXC2          of TAPE3420 plus TAPE3480. ANALTAPE modified to report
ANALTAPE          on total drives as well as 3420 and 3480 drives.Also, 
                  a better estimate of drives waiting alocation is made.
                  a. Add TAPE3420 and TAPE3480 to _VAR30 macro KEEP= for
                     TYPE30_4, TYPE30_5, and TYPE30_V data sets.        
                  b. In VMACEXC2, replace line 166:                     
                      IF TEMPNEW THEN TAPEDRVS=SUM(TAPEDRVS,1);         
                     with these five lines:                             
                      IF TEMPNEW THEN DO;                               
                        IF DEVTYPE = 80X THEN TAPE3480=SUM(TAPE3480,1); 
                        ELSE                  TAPE3420=SUM(TAPE3420,1); 
   Thanks to Martha Hall, Metropolitan Life, USA.                       
   Thanks to Ken Dice, Community Mutual Insurance, USA.                 
     for ANALTAPE ideas.                                                
Change 05.3       Variable RSPTMEDF, the RTM "Response Time Definition" 
Oct 21, 1986      was undocumented and originally read in a PIB1. field.
VMAC39            It turns out that it is a Character byte, containing  
FORMATS           F - First Character Received, K - Unlock Keyboard, or 
                  C - Change of Direction and thus describes which of   
                  these definitions is being used in this 3274 RTM.     
                  RSPTMEDF was change to $CHAR1. with new MXG format    
                  $MG039DF supplied to decode the one-byte characters.  
   Thanks to Jim Yoney, Allegheny Power, USA.                           
Change 05.2       TSO/MON Command counts were incorrect in MXG, because 
Oct 21, 1986      MXG counted all entries in the FCB "Full Command"     
VMACTSOM          segments as commands. Actually, the FCBs contain Full 
                  Commands, Dialog Manager Programs, Dialog Manager     
                  Panels (and in TSO/MON Version 5, CLIST executions    
                  will also be counted in FCB segments).  Only Full     
                  Commands and Dialog Manager Programs should be counted
                  as commands, and TSO/MON has already stuffed the count
                  of these two in a CCB bucket with comand type of null 
                  (i.e., hex 00). Remove line 3910:                     
                     NRTRANS=NRTRANS+NRTIMES inside DO _I_=1 to NRFCBS  
                  to correctly count commands as TSO/MON does.          
   Thanks to Chris Moyle, SCP- working for MOBIL, AUSTRALIA.            
Change 05.1       IBM re-numbered CPUID in the 3090-400. Instead of 0-3 
Oct 21, 1986      they are 1-4. With this change, the CPU 4 individual  
VMAC7072          measures will be stored in CPU0 variable names on the 
                    CHANGE  both occurrences of                         
                        IF CPUID=0 THEN                                 
                    to read                                             
                        IF CPUID=0 OR CPUID=4 THEN                      
             This change was enhanced with Change 5.33.                 
   Thanks to Lucy Fukishima, State of California Health & Welfare, USA. 
LASTCHANGE: Version  5