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

MXG NEWSLETTER TWENTY-SIX

****************NEWSLETTER TWENTY-SIX***********************************
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
              MXG NEWSLETTER NUMBER TWENTY-SIX August 4, 1994           
                                                                        
Technical Newsletter for Users of MXG :  Merrill's Expanded Guide to CPE
                                                                        
                         TABLE OF CONTENTS                          Page
                                                                        
0.    MXG Software is now ten years old!                              2 
I.    MXG Software Version 12.03, dated Aug 4, 1994, available.       3 
II.   MXG Technical Notes                                             4 
III.  MVS Technical Notes                                             5 
 1.   IBM Cache RMF Reporter Version (CRR 1.6) does exist.            5 
 2.   APAR OW00884 improves SMF performance requires no MXG change.   5 
 3.   TYPE71 variable NBLKPAGE may be negative....                    5 
 4.   TCP/IP APAR PN48492 corrects zero start/stop times ....         5 
 5.   DFSMS/MVS APAR OW05308 corrects track count in TYPE42 st 4.     5 
 6.   High MVS Uncaptured CPU time due to RMF and DEFRAG.             6 
 7.   How can you identify who issued RESERVEs?                       6 
 8.   How can you transfer SMF data from MVS to MVS using TCP/IP?     7 
IV.   VM Technical Notes                                              7 
V.    CICS Technical Notes                                            7 
VI.   SAS Technical Notes                                             7 
 1.   ASCII Versions lose AUTOCALL libraries with AUTOEXEC.SAS        7 
 2.   HSM recall multi-volume SAS libraries cause USER ABEND 318.     7 
 3.   Third technique for creating multi-volume SAS data libraries.   8 
 4.   SMS Tape Mount Management USER ABEND 315 circumvention          8 
 5.   SASHELP.VTABLE contains description of all LIBREF contents      8 
 6.   USER ABEND 2096 occurs with SMS managed SAS data library.       8 
 7.   TS410 Alert Note on Base SAS Software warning is incorrect.     8 
 8.   Broken VBS records (Usage Note 6810) is repaired in TS410.      8 
 9.   Using columns 1-80 in source code produced no report.           8 
VII.  IMS Technical Notes                                             9 
 1.   MXG's ASMIMSLG does process IMS 4.1 log data                    9 
 2.   MXG's recommendation for Candle's ITRF Product placed on hold.  9 
VIII. Incompatibilities and Installation of MXG 12.03.                9 
 1.   Members IMAC7072 IMAC74 IMACDB2 IMACPDB IMACWORK changed.       9 
 2.   Installation instructions.                                     10 
IX.   Online Documentation of MXG Software.                          11 
X.    Changes Log                                                    12 
      Alphabetical list of important changes                         13 
      Changes 12.128 thru 12.001                                  14-39 
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
         COPYRIGHT (C) 1994 BY MERRILL CONSULTANTS DALLAS TEXAS         
                                                                        
                                                                        
                                                                        
                MXG Software is now TEN Years Old!!!!!                  
                                                                        
                                                                        
I first wrote SAS code to read SMF data in 1972; in 1974 SAS Institute  
added file 13, SAS.MERRILL to their distribution tape with my sample SMF
programs, and in 1980 SAS Institute published my "Merrill's Guide to    
Computer Performance Evaluation" (a blue book plus tape for $395!).     
                                                                        
                                                                        
But it was in August, 1984, that the "Merrill's Expanded Guide to CPE"  
(the red book) and our fully supported MXG Software (Version 1 had 289  
members with 22,000 lines!) was first shipped to the 99 sites that had  
participated in our Early Shipment program.  Now, ten years later, we   
have shipped MXG to 4,379 sites in 59 countries (and Version 12.03 has  
2,340 members with 675,182 lines!).                                     
                                                                        
                                                                        
While Judy and I really are the company (we have no employees), we do   
have three regular consultants who have ably tested each new release,   
who have covered my technical calls while I am out of the office        
teaching, and who have personally contributed significantly to MXG, and 
to whom we are eternally grateful:                                      
                                                                        
      Chuck Hopf          Bruce Widlund         Freddie Arie            
                                                                        
Overseas, where we are represented by your local SAS Office, we are also
grateful to the scores of dedicated SAS technicians who have provided   
you with local language and local time of day help with MXG queries.    
                                                                        
                                                                        
                                                                        
But our real thanks for our success in these past ten years is to you,  
our dedicated MXG users, who have taken the time to learn those         
prerequisite skills of SAS, JCL, TSO, and PC technology, and who have   
waded thru 1,497 pages in two Books, 488 pages in 26 Newsletters, and   
2,217 Changes in 73 Releases to learn how to use MXG Software to measure
and thereby improve the performance of your company's computer systems -
                                                                        
            your diligence has made us all look good!!!                 
                                                                        
                                                                        
                                                                        
And I must personally thank Judy for putting up with ten years of me in 
our office, listening to the constant drone of my (not exactly quiet)   
voice, repeating the same answers to the same questions.                
                                                                        
Not only is she my partner in Merrill Consultants and in life and my    
best friend, but she also gave up her whole life (she was an executive  
in the apparel industry) to set up and run the Administrative side of   
our company so that I could write code and answer questions.            
                                                                        
MXG would not have existed without her.                                 
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
I. MXG Software PreRelease Version 12.03, dated Aug 4, 1994, contains   
   these major enhancements:                                            
                                                                        
   Major enhancements added in MXG 12.03 dated Aug 4, 1994:             
                                                                        
  Support for MVS/ESA 5.1 Type 99 Subtype 2 record.                     
  Support for LEGENT's ASTEX Release 2.0.                               
  Support for UniKix Release 4.1 Binary File                            
  Support for EMPACT's HIPER-CACHE Version 1.1.1.                       
  Support for SMF Type 50 VTAM Tuning APAR OW04453.                     
  Support for RSD's WSF Release 3.5.1.                                  
  Support for Omegamon II for SMS V100/V110.                            
  Support for BETA93 user SMF record.                                   
  MXG Tape Mount and Tape Allocation Monitor final errors corrected!    
  Correction for NPM Release 2.0 subtypes 214 thru 219.                 
  Additional DB2 3.1 Trace IFCIDs supported.                            
  Analysis ANALDB2C matches CICSTRAN observations with DB2ACCT.         
                                                                        
   Major enhancements added in MXG 12.02 dated Jul 4, 1994:             
                                                                        
  MXG Tape Mount and Allocation Monitor was revised, new reports.       
  Support for IBM's CRR 1.6 (3990-3 and 3990-6) (incompatible).         
  Support for DFSMS 1.2 changes to DCOLLECT (compatible).               
  Support for MEMO subtype 6 record.                                    
  Support for TCP/IP APAR PN34837 new field (compatible).               
  Support for MVS APAR OW00884/UW06821 - no impact, see MVS Notes.      
  Support for IMS 4.1 Log Records (see IMS Technical Notes)             
                                                                        
   Major enhancements added in MXG 12.01 dated Jun 15, 1994:            
                                                                        
  Support for MVS/ESA 5.1 many new datasets (compatible).               
  Support for Measured Usage SMF Record 89 and changes to type 30.      
  DB2 Version 3.1 Buffer Pool statistics were incorrect in MXG 11.11.   
  OPC Version 1.2.0 had INPUT STATEMENT EXCEEDED error with MXG 11.11,  
    but change 12.002 corrects, plus adds support for split records!    
  Problem with Cache RMF Reporter Records discussed in Newsletter 25    
    are actually fixed by MVS APAR OW01787.                             
  ANALDSET/ANALBLSR routines were corrected in Change 12.001.           
                                                                        
                                                                        
  These Versions of MXG have been available as indicated:               
                                                                        
     MXG Version 12.03  was dated Aug  4, 1994, thru Change 12.128      
     MXG Version 12.02  was dated Aug  6, 1994, thru Change 12.084      
     MXG Version 12.01A was dated Jun 15, 1994, thru Change 12.056      
     MXG Version 12.01  was dated Jun  1, 1994, thru Change 12.047      
     MXG Version 11.11  was dated Mar 26, 1994, thru Change 11.361      
     MXG Newsletter TWENTY-FIVE,  Mar 26, 1994, thru Change 11.347      
                                                                        
======================================================================= 
                                                                        
  OPEN ITEMs still in progress/planning when Newsletter was printed:    
                                                                        
======================================================================= 
                                                                        
  TLMS Release 5.4 - In progress - request specifically and we will send
                     12.03 plus support for TLMS.                       
                                                                        
  APAF New Release - In progress - request specifically and we will send
                     12.03 plus support for APAF.                       
                                                                        
  Huron   -  Huron SMF record is not supported yet; no sample data SMF  
             data was provided, and the printed DSECTs were massive and 
             needed in machine readable form.  Awaiting data/documents. 
                                                                        
  ANALRACF - Problem with PROC TRANSPOSE changes still unresolved (but  
             dataset TYPE80A, built by member TYPE80A has provided the  
             desired information in much better format for most sites). 
                                                                        
  TYPEZRB -  RMF III VSAM file for MVS/ESA 4.2 and 4.3 is not correct;  
             this is complicated code and only two sites have expressed 
             interest, so it is still low on my priority list.          
                                                                        
  EPIC    -  LEGENT has not provided the format of their tape catalog;  
             instead, they want you to use the output of their extract  
             program, which means double processing and klugy coding.   
             Nothing planned until LEGENT supplies needed formats.      
                                                                        
======================================================================  
                                                                        
    Table of availability dates for the IBM products and MXG version:   
                                                                        
                                       Availability     MXG Version     
      Product Name                     Date              Required       
                                                                        
      MVS/ESA 4.1                      Oct 26, 1990.        8.8         
      MVS/ESA 4.2                      Mar 29, 1991.        9.9         
      MVS/ESA 4.2.2                    Aug     1991.        9.9         
      MVS/ESA 4.3                      Mar 23  1993.       10.10        
      MVS/ESA 5.1.0                    Jun 24  1994        12.03        
      CICS/ESA 3.2                     Jun 28, 1991.        9.9         
      CICS/ESA 3.3                     Mar 28, 1992.       10.01        
      CICS/ESA 4.1                     ??? ??, 1994.       ??.??        
      CRR 1.6                          Jun 24, 1994.       12.02        
      DB2 2.2.0                                1990         8.8         
      DB2 2.3.0                        Oct 28, 1991.       10.01        
      DB2 3.1.0                        Dec 17, 1993.       12.03        
      DFSMS/MVS 1.1                    Mar 13, 1993.       11.11        
      DFSMS/MVS 1.2                    Jun 24, 1994.       12.02        
      NPM 2.0                          Dec 17, 1993.       12.03        
      VM/ESA  1.1.1                    Dec 27, 1991.       10.1         
      VM/ESA  2.0                      Dec 23, 1992.       10.4         
      VM/ESA  2.1                      Jun 27, 1993.       11.02        
                                                                        
======================================================================  
                                                                        
II. MXG Technical Notes                                                 
                                                                        
III. MVS Technical Notes                                                
                                                                        
 1.  IBM Cache RMF Reporter Version 1.5 never existed, even though my   
     manual SH20-6295-5 shows 'Version 1.5'!   What was to be CRR 1.5   
     was only CRR 1.4 with instructions of how to install CRR as a      
     started task (instead of as a subtask of RMF)!  IBM found that a   
     timing problem between RMF and CRR sometimes was corrected if CRR  
     ran as a started task, but there did not correct all errors.  IBM  
     MVS APAR OW01787 (to the LISTDATA STATUS command that CRR issues)  
     did definitely correct records with CSSSID=0018x at some sites, but
     still there were errors at other sites with that APAR installed.   
     Now, it does appear the answer is CRR 1.6 (which really does exist)
     and which appears to have corrected all errors with CRR data.  The 
     new release records were incompatibly changes, but are supported in
     MXG 12.02, with several useful new fields to justify the install!  
                                                                        
 2.  APAR OW00884 (PTF UW06821 or UW06822) ) solves a performance       
     problem (long hold of local lock, resulting in domination of the   
     CPU while creating SMF interval and termination records, due to SMF
     copying each DD segment one-at-a-time) by a redesign that now      
     copies multiple DD segments at a time, but a side effect of the    
     redesign changes how some type 30 records are written.  The change 
     affects only the records for tasks that have many DD segments - so 
     many that they will not fit in one type 30 record.  When this      
     happened in the past, the first record contained all of the other  
     resource fields, and then as many DDs as would fit filled out that 
     first record, and additional records were written with the         
     remaining DD segments (MXG flags these additional records as       
     MULTIDD='Y').  Now, when there are many DD segments, there may be a
     first record written with no DD segments, and then all of the DD   
     segments are written in one or more MULTIDD='Y' records (in some   
     cases, this will cause one extra MULTIDD='Y' record than was       
     written before).                                                   
                                                                        
     So, what is the real impact of this APAR on MXG?  Very little, for 
     most sites, and NO impact on any MXG code.  These MULTIDD records  
     are almost always written by long running started tasks; examples  
     include SYSOUT handlers (SAR, RMDS, which dynamically allocate one 
     DD for each file processed), JES (which dynamically allocates each 
     reference to a user PROCLIB), and DB2 (whose media manager may     
     dynamically allocate each access to a DB2 database), and most of   
     the time that dynamic DD segment contains only the DDNAME, often   
     with no EXCP count!  The only exposure for MULTIDD records is      
     unchanged; it is possible that MXG will miscount the number of tape
     drives allocated, TAPEDRVS, depending on which of the multiple     
     records contained the DD segment for tape devices!                 
                                                                        
 3.  TYPE71 variable NBLKPAGE, the non-blocked pages paged in, can be   
     negative or zero, at small paging rates.  IBM discusses why in     
     APAR II06687 (although it mentions a zero value, because the RMF   
     report forces negative values to print as zero!).                  
                                                                        
 4.  TCP/IP APAR PN48492 fixes zero start/stop times in TCP SMF record. 
                                                                        
 5.  DFSMS APAR OW05308 corrects track counts in TYPE42 subtype 4.      
                                                                        
                                                                        
 6.  MVS Uncaptured CPU Time (misnamed "Overhead", CPUOVHTM/PCTOVHD in  
     MXG dataset RMFINTRV & calculated by subtracting TYPE72 CPUTM for  
     all control performance groups from TYPE70 CPUACTTM) can be very   
     large, and the duration of the RMF interval, DURATM, can be much   
     longer than the expected interval, if RMF cannot gather DASD data. 
     A site with a 3-way ES9000 Model 831 normally writes 15 minute RMF 
     interval records, with CPUOVHTM of 2 minutes 7 seconds.  However,  
     a DF/DSS "DEFRAG" running in System B blocked System A from reading
     the DASD data until the DEFRAG job ended; the actual RMF interval  
     was 26 minutes (an 11 minute elongation)  The total CPUOVHTM       
     recorded jumped to 19 minutes, or an extra 17 CPU minutes!  Thus   
     during the 11 minutes when RMF could not get its data, it used 17  
     extra minutes of CPU time, or nearly 100% of two of the three      
     engines!  This problem occurred frequently, essentially every time 
     that DEFRAG ran, and a plot of CPUOVHTM versus DURATM shows clearly
     that the uncaptured CPU time linearly increased as RMF was blocked.
       (In addition, SYSLOG showed an IOS Start Pending every 16 seconds
        during these time when RMF was blocked, suggesting that RMF was 
        looping on its internal hardware instruction trying to get the  
        access for 16 seconds, and then gave up only to retry again!)   
                                                                        
     So what's the real solution?  First, I have asked IBM why RMF sucks
     up so much CPU time during these intervals.  Second, I investigated
     DEFRAG and found that the real culprit was the DEFRAG option       
     MAXmove(9999) at the site.  DEFRAG RESERVEs the VOLSER it is       
     defragmenting; specifying MAX(9999) causes DEFRAG to attempt to    
     assemble up to 9999 free tracks in a contiguous area in a single   
     pass.  Instead, if the sites specifies MAX(9999,10), DEFRAG will   
     still assemble the 9999 free tracks, but now it will do it in ten  
     passes, assembling only 9999/10=1000 tracks per pass, and then will
     un-RESERVE for 1 second to let other systems access the volume,    
     before starting the next pass.  If getting 1000 tracks takes on the
     order of 3 minutes, then MAX(9999) would have DEFRAG RESERVE the   
     volume for 30 elapsed minutes, but using MAX(9999,10) should then  
     let the other systems access the volume every 3 minutes or so.     
                                                                        
     Note, however, that changing from MAX(9999) to MAX(9999,10) on a   
     test volume that normally took only 3 minutes increased the run    
     time of the DEFRAG job to 27 minutes of elapsed time, so there may 
     be other tradeoffs - more experimentation is planned and this note 
     will be revised as more is learned.                                
                                                                        
     Storage Management Experts Dr. Rick Olcott, Mark Friedman and Dan  
     Kaberon all argue (SHARE, CMG) that if you have size-based storage 
     pools (eg., one for small data sets, one for the large data sets), 
     that DEFRAGing should never be needed!                             
                                                                        
 7.   How can you identify which jobs are issuing RESERVEs?  After the  
      fact, it can't normally be done, because no SMF record is written 
      when a volume is RESERVEd by a job.  However, if you know in      
      advance that you need to track RESERVEs, you can enable RMF       
      Monitor II SENQR (System Enque Reserve Report) which will create  
      type 79 subtype 6 records to snapshot all RESERVEs outstanding at 
      the time RMF processes the request for the report (but that will  
      not necessarily track ALL reserves that were issued.  Also, if RMF
      Monitor III is enabled in advance, and if the data still exists in
      its wrap around file, you may be able to use its ENQ/ENQR display,
      if there were RESERVE conflicts.  You can examine RESERVEs that   
      are outstanding right now by using the DISPLAY GRS console command
      (MVS/ESA 4.3 or later).  D GRS,E,C gives you contention statistics
      for both RESERVEs and ENQs, and D GRS,DEV=uuuu will show which    
      jobs have RESERVE requests for that specific device from this     
      system at this instant.                                           
                                                                        
 8.   Sending SMF VBS data from one MVS site to another using TCP/IP is 
      not straightforward, but Debbie Blackey at Columbia/HCA made it   
      work with this JCL:                                               
        //FTPBATCH EXEC PGM=FTP                                         
        //              PARM='SSS.S.SSS.SS (EXIT=8' /*ID OF RECEIVE SYS 
        //SYSPRINT DD SYSOUT=*                                          
        //INPUT    DD DSN=DDDDD.DDDDD.DDDDD  /*GENERIC TCP LOGID AND PW 
        //         DD *                                                 
        EBCDIC                                                          
        MODE B                                                          
        SITE CY LRECL=32760 BLKSIZE=32760 LRECL=VBS PRI=100 SEC=100     
        PUT 'XXX.XXX.XXX' 'YYY.YYY.YYY'                                 
        QUIT                                                            
        /*                                                              
                                                                        
IV. VM Technical Notes                                                  
                                                                        
V. CICS Technical Notes                                                 
                                                                        
  1. Don't overlook the new ANALDB2C program that merges DB2ACCT and    
     CICSTRAN observations to produce a single observation for each     
     unit-of-work from its multiple CICS transactions and multiple DB2  
     transactions into the ANALDB2C dataset.  That logic can also be    
     used to create just the CICSONE dataset to produce a single        
     observation from a series of CICS MRO events.                      
                                                                        
  2. Landmark's The Monitor for CICS Release 8.2 variable TIDYNHWM is   
     incorrect; Landmark's PTF to correct is U805990.                   
                                                                        
VI. SAS Technical Notes                                                 
                                                                        
 1. MXG's AUTOEXEC.SAS file specifies MAUTOSOURCE and SASAUTOS=SOURCLIB,
    so that MXG's %MACRO references are resolved, but under the ASCII   
    versions of SAS, the SAS-supplied AUTOCALL libraries are removed    
    from the search list, so you will not be able to find any of the SAS
    provided %MACROs with MXG's AUTOEXEC.SAS.  MXG itself does not use  
    any of the SAS-supplied %MACROs, but if you do, you will need to add
    the AUTOCALL directory entries from your CONFIG.SAS into the        
    FILENAME SOURCLIB concatenation in AUTOEXEC.SAS. (SAS Institute is  
    looking for a more transparent solution.)                           
                                                                        
                                                                        
 2. HSM migration and recall of multi-volume SAS data libraries may or  
    may not work with SAS Version 6, because HSM recall does not put the
    library back as it was built, and SAS is dependent on the physical  
    location.  A PDB library spanned two volumes, was migrated, and HSM 
    recall was able to fit the data on one volume, but SAS failed with  
    USER ABEND 318 when the recalled library was accessed!  There is no 
    fix possible in SAS Version 6, but the design is under investigation
    for possible correction in SAS Version 7 in the future.  If you can 
    not prevent HSM migration, you must use PROC COPY to backup the data
    library to tape, so that you can restore from the tape copy if HSM  
    migration corrupts the multi-volume data library.                   
                                                                        
 3. SAS now provides a third technique for creating multi-volume data   
    libraries.  In addition to the example in the SAS Companion for MVS,
    or using SMS Guaranteed Space, SAS distribution library BAMISC now  
    contains an assembly program SASMULTF.  (Before you assemble that   
    program, change the default blocksize from 6144 to half-track).     
    Once assembled, you can then                                        
       // EXEC PGM=SASMULTF,PARM='PDB'                                  
       //STEPLIB DD DSN=load library into which you linked SASMULTF     
       //PDB     DD DSN=MXG.PDB,UNIT=(SYSDA,4),SPACE=(CYL,(100,100)),   
       //           DISP=(,CATLG)                                       
       // EXEC MXGSASV9                                                 
       //PDB DD DSN=MXG.PDB,DISP=OLD                                    
        ... rest of JCL and program                                     
    This program will allocate 16 extents on the first volume (if there 
    is enough room on the volume), and then on the second and subsequent
    volumes, will allocate 16 extents (using the secondary allocation   
    size) if there is sufficient space on each volume, up to the number 
    of volumes specified in the UNIT= parameter.  Unfortunately, there  
    is no way to know in advance how much space will be allocated on    
    each volume.  If you attempt to allocate a multi-volume SAS data    
    library with conventional JCL (i.e., if you do not use one of these 
    three supported techniques), you may fail with a USER ABEND 318.    
                                                                        
 4. The note in MXG Newsletter TWENTY-FIVE on ABEND 315 with SMS Tape   
    Mount Management will apparently not be fixed until Version 7 of    
    SAS, but in addition to the circumvention of adding a SPACE         
    parameter, you can instead tell SMS to bypass Tape Mount Management 
    if the program name is "SAS".                                       
                                                                        
 5. I was unaware of the dataset SASHELP.VTABLE until Mike Welch showed 
    it to me; for all LIBREFs that exist in a SAS session, that dataset 
    contains a description of all datasets in that LIBREF.  Try:        
        LIBREF PDB 'MXG.PDB' DISP=SHR;                                  
        DATA PDBCONT;  SET SASHELP.VTABLE;  IF LIBNAME='PDB';           
        BYTES=NOBS*OBSLEN;                                              
        PROC SORT; BY DESCENDING BYTES;                                 
        PROC PRINT; VAR LIBNAME MEMNAME BYTES NOBS OBSLEN COMPRESS;     
    The VTABLE dataset is also available in SQL:                        
        PROC SQL;  SELECT * FROM DICTIONARY.TABLES;                     
                                                                        
 6. USER ABEND 2096 is SMS related; putting PDB, SPIN, etc., libraries  
    on non-SMS volumes has circumvented that ABEND.                     
                                                                        
 7. SAS MVS Maintenance TS410 is accompanied by a printed Alert Note on 
    BASE SAS Software that is incorrect.  The note says that an error   
    ('when the sum of the lengths of the constants...') has no fix, but 
    in actuality, that bug was introduced in TS405 and TS407 and was    
    then fixed by zap Z6088203, AND the error was corrected in source in
    TS410.  (Note: If you are still at TS407 you MUST install Z6088203).
                                                                        
 8. SAS Usage Note 6810 (broken VBS record put SAS in WAIT/CPU LOOP)    
    noted on page 22 of NEWSLETTER 25 was fixed in TS410 maintenance.   
                                                                        
 9.  One user's report program ran under MXG 10.10 but produced no error
     message nor any output under MXG 11.11.  The program used columns 1
     thru 80, and had a comment in line 1.  MXG changed the S2= option  
     from S2=0 in MXG 10.10 to S2=72 in MXG 11.11, which caused the     
     end of the comment to be truncated, and thus SAS saw no program!   
     Because of other error conditions related to source line length,   
     all MXG programs use only columns 1 thru 72, and thus I recommend  
     that you never use columns 73-80 in your programs.  However, you   
     could override the CONFIG option and specify OPTIONS='S2=0' on the 
     // EXEC statement if you have report programs using all 80 columns.
                                                                        
VII. IMS Technical Notes                                                
                                                                        
 1. While MXG Newsletter TWENTY-FIVE was somewhat pessimistic about MXG 
    support for IMS Version 4.1, further testing has validated that the 
    pessimism was unwarranted - ASMIMSLG does process IMS 4.1 log data  
    correctly!  My concern was based on early tests in which some IMS   
    transactions showed IMSCPUTM greater than their SERVICTM (Start to  
    End execution duration), and that seemed to be a clear error.  But  
    diligent analysis by Cary Jones of Philip Morris and Jeff Krum of   
    Ashland Oil has proven why IMSCPUTM can be greater than SERVICTM:   
    because there is only one 07 log record with total CPU time for     
    multi-scheduled transactions, the IMSCPUTM that MXG can calculate   
    for an individual transaction can only be the average CPU time of   
    all of those transactions serviced in that program schedule, but an 
    individual transaction can have its true SERVICTM significantly less
    than that average CPU value!  I was also concerned by the larger    
    number of transactions with zero SERVICTM, but that was valid; any  
    transaction with service time less than 100 milliseconds will be    
    recorded as zero because the IMS log clock resolution is 0.1 seconds
    and what we really saw was an improvement in IMS response time with 
    IMS 4.1 (it does exploit MVS/ESA), especially for these transactions
    that did no I/O!  Thus I can now officially reinforce the claim that
    MXG 11.11 (with the one line correction in Change 12.009), does     
    process IMS 4.1 log records as accurately as is possible!           
                                                                        
 2. The same cannot be said for Candle's ITRF Product; I was incorrect  
    in listing that product as a valid tool for IMS transaction analysis
    in MXG Newsletter TWENTY-FIVE, because it still has very serious    
    errors that have not yet been corrected by Candle.  Even with the   
    last 1993 maintenance available from Candle (QI21740 and QI21860),  
    a significant number of transactions have blank values for Region   
    Name, Logon ID, and even Transaction Name, and numerous transactions
    show input queue times in excess of a million seconds.  Problems    
    have been open with Candle ITRF for some time with no resolution.   
                                                                        
                                                                        
VIII. Incompatibilities and Installation of MXG 12.03.                  
                                                                        
 1. Incompatibilities introduced in MXG 12.03 (since MXG 11.11):        
                                                                        
  a- IMACs that were changed (if they exist in your USERID.SOURCLIB, you
     must refit your changes, starting with the new IMAC member):       
                                                                        
       IMAC7072  IMAC74  IMACDB2   IMACPDB   IMACWORK                   
                                                                        
  b- The JCL for processing the OPC log requires two new DDNAMES so that
     the OPC spanned records can be reconstructed and read by MXG.  See 
     comments in member VMACOPC.  Member JCLTEST6 was changed also.     
                                                                        
                                                                        
 2. Installation and re-installation procedures are described in detail:
    in member INSTALL, and sample JCL is in member JCLINSTL.  Summary:  
     a. Install member MXGSAS as JCL Procedure MXGSAS in your PROCLIB.  
     b. Allocate a 83-cyl PDS: MXG.V1203.MXG.SOURCLIB, and use IEBUPDTE 
        to read the MXG tape to create the 2000+ member Source Library. 
     c. Allocate a 1-cyl PDS:  MXG.V1203.USERID.SOURCLIB for your site  
        "Installation Tailoring" Source Library.  Installation specific 
        tailoring (like telling MXG your shift hours, which performance 
        groups are TSO, CICS, etc.) is done by copying and modifying MXG
        source members into V1203.USERID.SOURCLIB.                      
     d. Allocate a 1-cyl SAS Data Library:  MXG.V1203.MXG.FORMATS and   
        execute SAS to create the library of Formats required by MXG.   
     e. If this is the initial install of MXG, tailor these members into
        your MXG.V1203.USERID.SOURCLIB tailoring library:               
          IMACACCT (Account Length),                                    
          IMACSHFT (Shift Definitions),                                 
          IMACWORK (Performance Group to Workload mapping), and         
          IMACSPIN (for BUILDPDB).                                      
        Each IMAC member is self-documenting, and IMACAAAA is the index 
        of all of the IMACs.  You should at least scan IMACAAAA to see  
        the acronyms MXG uses for the many products MXG supports.       
     e. If re-installing MXG, copy your existing USERID.SOURCLIB library
        members into the MXG.V1203.USERID.SOURCLIB. Then compare your   
        IMACs with those that were changed (see the INCOMPATIBLE section
        changed members, above).  If any of those members are in your   
        MXG.V1203.USERID.SOURCLIB, you must reinstall your site's       
        tailoring for that IMAC, starting with the IMAC member from the 
        MXG 12.03 Source Library.                                       
     f. EDIT and submit member JCLTEST6 to verify that your tailoring   
        did not create any errors.                                      
     g. EDIT and submit JCLPDB6 to create a Daily PDB for testing.  Or  
        use the TYPE.... members to process specific data sources, use  
        the ANAL.... members for report examples, the GRAF.... members  
        for SAS/GRAPH reports.                                          
                                                                        
     You have now installed MXG 12.03 in its own set of libraries.  When
     parallel testing is complete and are ready to implement MXG 12.03  
     in production, rename your three current MXG Production Libraries  
     (MXG.MXG.SOURCLIB, MXG.USERID.SOURCLIB, and MXG.MXG.FORMATS) to    
     (MXG.BACK.MXG.SOURCLIB, MXG.BACK.USERID.SOURCLIB, MXG.BACK.MXG....)
     and rename the MXG.V1203.x.y libraries to their Production names!  
                                                                        
     Again, detailed installation instructions are in member INSTALL    
                                                                        
Always read comments in the CHANGES member for compatibility issues, as 
well as for any last minute changes.                                    
                                                                        
Whenever you install changes or test a new version of MXG (or even your 
own reports), be extra careful to look on the SAS log for any real error
conditions. Search for all occurrences of "ERROR:" and  "ERROR :"  and  
"UNINITIALIZED", "TRUNCATED", "NEVER BEEN", "NOT FOUND", "CONVERT",     
"NOT CATLGD" and " NOT ", as they usually indicate a serious error.     
                                                                        
                                                                        
A PROC PRINT and a PROC MEANS of each new MXG-built SAS dataset can help
you to understand their contents, and should be used to examine any     
unusually large, negative, or suspicious values.  Print all variables in
the dataset, and read the variable's descriptions in its ADOC member.   
                                                                        
IX.   Online Documentation of MXG Software.                             
                                                                        
Beginning with MXG 11.11, the contents of the two MXG Books, (the 1984  
MXG Guide, and the 1987 MXG Supplement) are contained in the MXG Source 
Library, as are all MXG Technical Newsletters and all MXG Changes, so   
all MXG documentation is actually online in the software itself; even   
the Installation Instructions are online, in members INSTALL/JCLINSTL!  
                                                                        
ACHAPxxx members are the text of the 42 chapters from the two MXG books,
to which the text from newsletters and changes has been added.  Some of 
these chapters are still rough; while some of the chapters have actually
been completely revised, many of these ACHAPxxx are little more than a  
concatenation of the two original chapters, often without the figures   
or tables.  The revision is work still in progress!                     
                                                                        
Members ADOCxxxx are what were in Chapter FORTY, and should be the first
place you look for information about MXG variables and/or datasets.  The
ADOCxxxx members alphabetically describe each dataset and all variables 
that are created by product xxxx, the instructions on how to enable that
product, bibliography of the vendor documentation, sample PROC PRINT and
PROC MEANS of real data, references to MXG reports that use these data, 
and the MXG member names that you use to process that product.  While   
this too is work in progress, the most heavily used data sources,       
especially the common SMF records, have been revised and are up to date.
                                                                        
There is an IMACxxxx member for every product supported by MXG.  Once   
you know the xxxx suffix for a product, you then know the names of all  
of the MXG members for that product, because of MXG naming conventions: 
                                                                        
  IMACxxxx - Defines record IDs, and the _Lyyyzzz and _Kyyyzzz macros   
             that name the dataset(s) created from product xxxx.        
  ADOCxxxx - "Chapter FORTY" style dataset and variable documentation of
             all datasets created from product xxxx, with sample output.
  VMACxxxx - The "real" source code member, often extensively commented.
  TYPExxxx - Standalone member to test or process product xxxx records. 
  ASUMxxxx - Summarization example (only for some products)             
  TRNDxxxx - Trending example (only for some products)                  
  ANALxxxx - Reporting/analysis example (only for some products)        
  GRAFxxxx - SAS/GRAPH report example (only for some products)          
  EXyyyzzz - OUTPUT exit for tailoring of each MXG dataset, not used by 
             most MXG sites, but powerful if needed.  There can be more 
             than one dataset created from one product.  The yyyzzz     
             suffix of the EXyyyzzz member name is the same as the      
             suffix of "_L" and "_K" macros defined in the IMACxxxx for 
             its product. See Using the MXG Exit Facilities in ACHAP33. 
                                                                        
Member IMACAAAA is an index of all IMACs, and is the best place to begin
to find what xxxx suffix Merrill chose for which product!  You can often
find additional documentation by searching members NEWSLTRS or CHANGESS 
for the xxxx suffix.                                                    
                                                                        
Member CHANGES identifies this Version and Release of MXG Software, and 
describes all changes made in this Release, plus new technical notes.   
                                                                        
Member CHANGESS contains each of the CHANGES members from each version  
of MXG, so this member contains ALL changes ever made to MXG Software.  
Since each MXG change lists the names of the members that were added or 
altered, names the new product/version supported by a change, or lists  
error messages corrected by a change, this member is designed to be read
online (with SPF BROWSE); you can search for specific product acronyms  
(CICS, MVS/ESA, etc.), or the MXG member name or anything else.  Many of
the changes are actually mini-tutorials, especially for new products.   
                                                                        
Member NEWSLTRS contains the text of all newsletters.  You can search   
NEWSLTRS for product name or acronym to find all of Dr. Merrill's       
published and unpublished technical papers, technical notes announcing  
enhancements in new operating systems or subsystems, new datasets and   
products, important APARs and PTFs, and other technical information of  
importance to MXG users.  (Since the Change Log that is printed in each 
newsletter is in member CHANGESS, it is not repeated in NEWSLTRS.) MXG  
Technical Newsletters are typically published twice a year, with one    
printed copy sent to each licensed site's technical addressee.          
                                                                        
Member DOCVER lists alphabetically ALL datasets and variables that are  
built by this MXG Software Version, abbreviated to a line per variable. 
                                                                        
Members DOCVERnn are the "delta-documentation" between MXG versions, and
list only those datasets and variables that were added/deleted/changed  
by version "nn", so you can identify when a variable/dataset was added. 
                                                                        
Finally, remember that MXG is source code, and you can often find your  
answer by BROWSING the source members, especially the VMACxxxx members. 
The MXG Variable name is frequently the vendor's field name, or the     
vendor's field name is often in a comment adjacent to the variable's    
INPUT, so you can cross reference MXG to the vendor's documentation.    
                                                                        
The migration from print to online is clearly work in progress, but at  
least the two books are now machine readable!  When all 42 chapters     
are completely revised and updated in the source library, I will decide 
which, if any, will also be made available in printed form, but the     
primary media for all future MXG documentation will be these members of 
the MXG source library, which can be immediately updated in each new    
version of MXG as changes occur.                                        
                                                                        
X.    Changes Log                                                       
                                                                        
--------------------------Changes Log---------------------------------  
                                                                        
 You MUST read each Change description to determine if a Change will    
 impact your site. All changes have been made in this MXG Library.      
                                                                        
 Member CHANGES of the MXG SOURCLIB will always be more accurate than   
 the printed changes in a Newsletter, because the software tapes are    
 created after the newsletter is sent to the printer!                   
                                                                        
 Member CHANGES always identifies the actual version and release of     
 MXG Software that is contained in that library.                        
                                                                        
 The actual code implementation of some changes in MXG SOURCLIB may be  
 different that described in the change text (which might have printed  
 only the critical part of the correction that can be made by paper).   
                                                                        
 Scan each source member named in any impacting change for any comments 
 at the beginning of the member for additional documentation, since the 
 documentation of new datasets, variables, validation status, and notes,
 are often found in comments in the source members.                     
                                                                        
Alphabetical list of important changes after MXG 11.11:                 
                                                                        
  Dataset/                                                              
  Member   Change    Description                                        
                                                                        
  Many     12.034  Support for MVS/ESA 5.1.                             
  Many     12.030  All instances of MSEC8. were removed from MXG.       
  ANALBLSR 12.001  Batch LSR analysis fails due to errors in ANALDSET.  
  ANALBLSR 12.080  Batch LSR analysis enhanced.                         
  ANALCISH 12.035  CICS Shutdown report corrected, design revised.      
  ANALDB2C 12.087  Analysis to match CICSTRAN with DB2ACCT.             
  ANALDB2R 12.078  Using ANALDB2R with PDB= tape was inefficient.       
  ANALDSET 12.001  Syntax error (wrong member migrated).                
  ANALRMFR 12.047  RMF CPU Activity Report CPU time can be zero.        
  ANALSMF  12.012  SMF Simulator 3380 tracks count wrong if CISIZE=26624
  ASMTAPES 12.024  MXG Tape Allocation and Mount Monitor almost healed. 
  ASMTAPES 12.058  New Tape Allocation and Mount Monitor now works!     
  ASMTAPES 12.105  MXG Tape Mount and Tape Allocation Monitor Now Works!
  ASUMPRTR 12.040  KEEPIN=STDUPLEX TMBUPLEX needed to be added          
  ASUM70PR 12.048  INVALID NUMERIC DATA 'SAT' with modified IMACRMFI.   
  BUILDPDB 12.013  TYPE77 addition to BUILDPDB/BUILDPD3 causes errors.  
  BUILDPDB 12.026  Jobs with ABEND='JCL' are not in PDB.JOBS.           
  DAILYDSN 12.004  Variable UMLEVEL must be added to KEEPIN= list.      
  DB2ACCT  12.033  DB2 3.1 Buffer Statistics are wrong.                 
  DB2STATS 12.033  DB2 3.1 Buffer Statistics are wrong.                 
  FMXGSID  12.015  Function ABENDs 0C4 with SAS 6.08 at TS407.          
  FMXGUCBL 12.015  Function ABENDs 0C4 with SAS 6.08 at TS407.          
  INSTALL  12.101  Documentation of common MXG installation errors.     
  TRNDRMFI 12.046  Variables TSOnSWAP and TSOnTRAN were not normalized. 
  TYPEACF2 12.063  INVALID data for LIDCDATE/LIDDXPDT/LIDIPDAT/LIDADATE.
  TYPEACF2 12.072  INPUT STATEMENT EXCEEDED for subtype 'V' record.     
  TYPECTLD 12.011  INPUT STATEMENT EXCEEDED for CONTROL-D SMF record.   
  TYPEDCOL 12.051  Variable DCNDMBLK needs to be multiplied by 1024.    
  TYPEDCOL 12.057  Support for DFSMS 1.2 added several variables.       
  TYPEDMON 12.120  Support for ASTEX 2.0 added several variables.       
  TYPEHIPR 12.104  Support for EMPACT's HIPER-CACHE Version 1.1.1.      
  TYPEICE  12.031  ICEBERG dataset ICEBRGCH is trashed, misalignment.   
  TYPEIMSA 12.009  IMS Log processing incorrect, misspelled NMSGPROC.   
  TYPELMS  12.007  WARNING LMS SMF RECORD TYPE created in error.        
  TYPEMEMO 12.056  Support for MEMO subtype 6 SMF record.               
  TYPENDM  12.014  INPUT STATEMENT EXCEEDED for NDM type FP record.     
  TYPENSPY 12.010  LANSPY dataset NSPYLANS has no/too few observations. 
  TYPEOMCI 12.027  OMEGAMON for CICS dataset OMCISYST wrong.            
  TYPEOMSM 12.123  Support for Omegamon II for SMS V100/V110.           
  TYPEOPC  12.002  INVALID MT0TYPE, OPC29 too few obs, split support.   
  TYPEQTRT 12.037  Support for AS/400 Trace File (QTRTSUM).             
  TYPETCP  12.041  Ambiguity between TELNET and FTP resolved.           
  TYPETCP  12.049  TCP/IP APAR PN34837 added 8 bytes to TELNET SERVER.  
  TYPETPX  12.008  UNRECOGNIZED TPX VERSION message.                    
  TYPEUNIK 12.112  Support for UniKix Release 4.1.                      
  TYPEVMXA 12.069  UNEXPECTED/INVALID CONTROL RECORD/PROBABLE DATA LOSS.
  TYPEWSF  12.096  Support for RSD's WSF Release 3.5.1.                 
  TYPE102  12.032  IFCID=196 (Lock Timeout Details) now populated.      
  TYPE102  12.088  Additional DB2 Trace IFCIDS new in 3.1 now supported.
  TYPE102  12.103  DB2 Trace IFCID=141 corrected.                       
  TYPE110  12.023  CICS Statistics in CICLSRR wrong.                    
  TYPE110  12.068  Boole & Babbaage subtype 'BB02'x changed to '0B02'x. 
  TYPE1415 12.036  APAR OW00484 adds open date to type 14,15 SMF record.
  TYPE26J2 12.015  IBM truncates type 26 record, caused STOPOVER.       
  TYPE28   12.097  NPM Release 2.0 subtypes 214 thru 219 corrected.     
                                                                        
  TYPE30   12.018  TYPE30_V INTBTIME/INTETIME are GMT in MULTIDD='Y'.   
  TYPE42   12.019  INVALID ADSM SECTION TRIPLET and/or bad data values. 
  TYPE42   12.045  DFSMS GG66-3252 pub are now variables in TYPE42DS/SR 
  TYPE50   12.102  Support for VTAM Tuning APAR OW04453 type 50 SMF.    
  TYPE6    12.016  CA-DISPATCH 5.1 PTF T97E056 corrects bad READTIME.   
  TYPE6    12.059  Type 6 records from VPS now have SUBSYS='VPS '.      
  TYPE62   12.122  Support for APAR OW00157 adds SMS classes to TYPE62. 
  TYPE70s  12.006  SYNCTIME wrong in RMF 71,73,74,75,77,78 and 79.      
  TYPE89   12.028  Support for Measured Usage License Charges type 89.  
  TYPE99   12.117  Support for ESA 5.1 Workload Manager Trace SMF 99.   
  TYPE91   12.038  BatchPipes/MVS APAR PN45846 adds new fields.         
  UCICSCNT 12.021  Utility report output counts were unclear.           
  UTILCVRT 12.022  Non-existent conversion utility now exists.          
  VMXGSUM  12.084  New features added transparently to VMXGSUM.         
  TYPEBETA 12.125  Support for BETA93 1.6.0 user SMF record.