COPYRIGHT (C) 1984-2019 MERRILL CONSULTANTS DALLAS TEXAS USA
MXG 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
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 *
SITE CY LRECL=32760 BLKSIZE=32760 LRECL=VBS PRI=100 SEC=100
PUT 'XXX.XXX.XXX' 'YYY.YYY.YYY'
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)),
// 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';
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
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:
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.