COPYRIGHT (C) 1984-2021 MERRILL CONSULTANTS DALLAS TEXAS USA
MXG NEWSLETTER NINETEEN
****************NEWSLETTER NINETEEN*************************************
MXG NEWSLETTER NUMBER NINETEEN April 8, 1991
Technical Newsletter for Users of MXG : Merrill's Expanded Guide to CPE
TABLE OF CONTENTS
I. MXG SOFTWARE Version status.
1. Production MXG Version is MXG 8.8, shipped April 8. page 2
2. Recent IBM Announcements and their MXG support. page 3
II. MVS Technical Notes. page 3
1. SMF CI Size should be 22K/26K for 3380/3390 devices. page 3
2. Timestamps in CICS and DB2 records may have wrong hour. page 3
3. PSF Printer utilization analysis. page 4
4. Use PDB.STEPS for ABEND analysis. page 4
5. Duplicate-Job-Name-HOLD delay detection. page 5
6. APAR OY40625 for Vector Processors. page 5
7. APAR OY36668 captures PR/SM LPAR "overhead". page 5
8. OPPSI, Operator Single System Image in a SYSPLEX. page 5
9. APAR OY31613, PTF UY56157 in error, lost jobname. page 5
10. DFSORT Release 10 invalid type 16 SMF Sort record page 5
11. SHARE 76 Paper "MVS/ESA Performance and Accounting Data" page 6
III. VM Technical Notes.
1. SHARE 76 Paper "VM/ESA Measurement Facilities" page 28
IV. SAS Notes.
1. SAS 6.06 has been repaired, and can be safely used. page 37
2. SAS 6.06 and 5.18 options now REQUIRED by MXG 8.8. page 37
3. Format libraries differences between MVS SAS 6.06-5.18. page 38
4. CMS-MXG Installation and Execution Considerations. page 39
5. SAS Input formats for times and timestamps. page 40
6. "Close" of data libraries was changed by SAS 6.06. page 40
V. Documentation of MXG Software. page 41
VI. Installation, Space, Compatibility, for MXG 8.8. page 41
VII. Change Log Changes 8.283 to 8.187. page 44
(Alphabetic INDEX of Significant Changes on page 44) thru 72
COPYRIGHT (C) 1991 BY MERRILL CONSULTANTS DALLAS TEXAS
MXG IS A REGISTERED TRADEMARK OF MERRILL CONSULTANTS
SAS IS A REGISTERED TRADEMARK OF SAS INSTITUTE
I. MXG SOFTWARE Version status.
1. Production MXG Version is now MXG 8.8, dated April 8, 1991.
MXG Version 8.8 is shipped with NEWSLETTER NINETEEN to all sites, and
should be installed as soon as possible. MXG 8.8 is mandatory for MXG
execution under SAS 6.06 or later, has MANY major enhancements, and has
been testing at over 500 MXG sites. MXG 8.8 WILL SAVE YOU TIME LATER,
SO PLEASE INSTALL IT AS SOON AS POSSIBLE. Major enhancements in MXG 8.8
Support for Amdahl MDF Performance Tool "MPT" SMF record.
Support for Amdahl MDFTRACK record.
Support for Amdahl SPMS Cache DASD Controller SMF record.
Support for Boole IMF 2.6 (for IMS 3.1).
Support for Cray COS 1.16 Operating System Data.
Support for DASD Space management with fast VTOC read program.
Support for DASD VTOCs and VVDSs for SMS variables.
Support for Hitachi processors MLPF.
Support for IBM CICS/ESA 3.1.1 Monitor and Statistics Data.
Support for IBM DCOLLECT data records.
Support for IBM DCOLLECT data records.
Support for IBM HSM user SMF records, including deaccumulation.
Support for IBM HiperBatch statistics in SMF type 14, 15, & 64.
Support for IBM IMS/ESA 3.1.
Support for IBM MVS/ESA 4.1.
Support for IBM MVS/ESA 4.2.
Support for IBM NETVIEW/NPM 1.4
Support for IBM RMF 4.1.2 (APAR OY29112, PTF UY90666).
Support for IBM RMF 4.2.0
Support for IBM RMF 4.2.1
Support for IBM SMS records (HSM, VVR, VVDS, SMS/DFP) enhanced.
Support for IBM VLF subtype 3 in SMF type 41.
Support for IBM VM/ESA Version 1 Release 1.0 (ESA Feature).
Support for Landmark's Monitor for CICS Version 8.
Support for Landmark's TMON/MVS Version 1.1 and spanned records.
Support for Oracle SMF record.
Support for RSD WSF2 version 3.3.4.
Support for Tangram Arbiter Version 2.1.1.
SPIN library fills due to JES2 maintenance circumvented.
CICS Shutdown Statistics no longer printed, only in SMF or MXG.
Documentation of Trend Data Base processing.
Documentation of DB2 analysis.
Documentation of IMAC.... installation tailoring members.
Corrections in IMS Log measurement of INPQUETM/RESPNSTM.
NPM records from VM can be processed.
Testing of MXG Version 8.8 under SAS 6.06 Version 6.06.
DB2 trace SQL reporting.
DB2 trace Transit Time reporting.
BUILDPDB/3 Enhancements.
- SPIN library copied into PDB for backup and recovery
- ACCOUNTn and SACCTn added to SMFINTRV.
- TYPE25 processing added for JES3.
- PDB.SPUNJOBS allows reporting on jobs still in SPIN library.
MXG Software next-release agenda (subject to change):
Validation of EXPLORE/VM, EPILOG/CICS, and restructure of the
AS400 support was not complete as this was written.
DB2 2.3 will be supported when available, late this year.
CICS 3.2 will be supported when available, later this year.
Landmark CICS Version 9 will be developed later this year.
Cray UNICOS is a future consideraton.
VAX/VMS Account/SPM is a future consideration.
JES3 Tape Mount Merge with TYPETMNT is a future consideration.
2. Recent IBM Announcements and their MXG support.
IBM has made many major announcements relating to the System/390, the
ES/9000 family, and ESCON capabilities. The following table identifies
announced availability dates for the IBM product, and the corresponding
Version/PreRelease of MXG required to support that IBM product.
Product Name Availability MXG Version
Date Required
VM/ESA 1.1.0 (370 Feature) Oct 26, 1990. 7.7
RMF 4.1.2 (for MVS/ESA 3.1.3) Sep 7, 1990. 8.8
RMF 4.2 (for MVS/ESA 4.1) Oct 26, 1990. 8.8
MVS/ESA 4.1 Oct 26, 1990. 8.8
MVS/ESA 4.2 Mar 29, 1991. 8.8
RMF 4.2.1 (for MVS/ESA 4.2) Mar 29, 1991. 8.8
VM/ESA 1.1.0 (ESA Feature) Mar 29, 1991. 8.8
VM/ESA 1.1.1 Dec 27, 1991. ???
II. MVS Technical Notes.
1. SMF CI Size should be 22K/26K for 3380/3390 devices.
SMF VSAM data sets should use a CI size of 26K for 3390's and a CI
size of 22K for 3380's, to reduce physical I/Os to the VSAM file and
to optimize disk storage space for SYS1.MANs. The DCB for the output
data set created by the IFASMFDP program MUST specify:
DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=32760) on tape
DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=23476) on 3380
DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=27998) on 3390
to avoid potential SMF data loss. Yes, the IFASMFDP utility defaults
to BLKSIZE=32767, but off-the-shelf packages have failed with that
irrational and inappropriate value, often corrupting data. The BLKSIZE
should always be 32760 for sequential data on tape, and should be the
half-track-value if you dump to DASD devices. Since the record format
is VBS, there is no required relationship between BLKSIZE and LRECL
(if RECFM is V or VB, there IS the requirement that BLKSIZE be 4-bytes
larger than LRECL, but is not true for VBS). Since the actual maximum
LRECL that can be written by SMF writer is 32760 (including the RDW)
does actually occur (a subtype 1 type 79 record with over 330 active)
the LRECL MUST be 32760. If you specify a smaller LRECL on your dump
output AND a real 32760 RDW LRECL record occurs, it will be truncated!
2. Timestamps in CICS and DB2 records may have the "wrong" hour of the
day, if the sites PARMLIB member PARMTZ (370) or TIMECLOCK (XA,ESA)
is non-zero. While ALL other SMF records reflect the site's true
"Time-of-Day", and while the SMFTIME value in the DB2 and CICS SMF
records is "true", only DB2 and CICS use TIMECLOCK internally which
causes DB2 variables QWACBSC, QWACESC, QWHSSTCK, and CICS variables
STRTTIME, ENDTIME to contain the "Time-of-Day" Plus or Minus the site
TIMECLOCK value. This is true no matter which vendor writes the data
records for CICS and/or DB2. Sure makes analysis harder! While the
MXG exit facility can be used to correct these times, it sure would
be better if DB2 and CICS would conform to the rest of the SMF data!
3. PSF Printer utilization analysis in ANALPRTR and associated members
solve several long-term analysis problems. This is a brief summary
of that implementation.
The IBM 3800-3 Printer running under PSF has several unfortunate
characteristics that make it difficult to measure directly with TYPE6
(PDB.PRINT) data for predictions of performance and print throughput.
First, each time that a set of banner pages is encountered, a printer
pauses for about 9.5 seconds. This does not occur when the printer
is running in 3800-1 emulation mode, (i.e., as a JES printer), but
only when the printer is running under PSF.
Second, the NPRO value set for PSF (in JES JOBPARMS or in the PSF JCL
Procedure) affects how long a job's output will sit in the transfer
station before it is mechanically moved through the fuser and into
the output stacker. Since there is 9 feet of paper in the path, if
each job were pushed into the output stacker immediately upon its
print completion, paper would be wasted. Instead, thejob's SYSOUT
is left at the transfer until:
a) Another JOB begins printing and pushes the job to the stacker, or
b) The operator mashes the NPRO button, or
c) The amount of time specified in NPRO parameter expires.
The SMF type 6 record will not be timestamped until the SYSOUT has
reached the output stacker and (this may be important) also when the
printer is ready to print the next job. If an operator presses NPRO
(to eject) but then fails to press READY button, the type 6 will not
be timestamped until (much?) later. For PSF printers throughput in
ANALPRTR, an NPRO is said to have occurred whenever there were NPRO
minutes between the end of one and the start of the next event, and
the NPRO value is subtracted from the previous print duration, which
more accurately reflects true printer utilization. Note that this
approximation cannot estimate printer utilization due to paper jams,
out of paper, out of toner, or other operator intervention.
One site found 215 ppm printers actually ran at only 90 ppm because
the average print job was much less than 25 pages!
4. Use PDB.STEPS for ABEND analysis. Steps ABEND, jobs don't.
ABEND Analysis should always be done with the PDB.STEPS (or TYPE30_4)
data set). The PDB.JOBS (or TYPE30_5) is not valid for ABEND data.
Programs ABEND, jobs don't! And multi-step jobs can have multiple
ABENDs. In addition, the ABEND and CONDCODE variables in PDB.JOBS
are taken from TYPE30_5, but it turns out that the 30_5 may not be
valid. Flushed steps following an ABEND can create a job termination
record with SYSTEM abend flagged, but with a zero CONDCODE value!
You really want to use the step level data for ABEND analysis anyhow,
because you can then identify which PROGRAMS are causing failures.
You may have fifteen jobs which ABENDed because of the same program;
using PROGRAM name will show the culprit, whereas using JOB wouldn't.
The first few characters of PROGRAM will identify the "group" that
wrote the program (eg., IBM utilities, vendor software, in-house
written COBOL programs, etc.). You can provide management with a
clearer picture of what failures occur, for example, by using:
DATA ABENDS;
SET PDB.STEPS;
IF ABEND GT " "; /*select only failing programs*/
LENGTH GROUP $3.; /*use 1st 3 characters for group*/
GROUP=PROGRAM;
KEEP GROUP PROGRAM ABEND CONDCODE;
PROC SORT DATA=ABENDS; BY GROUP;
PROC FREQ DATA=ABENDS; BY GROUP;
TABLES CONDCODE*ABEND/NOROW NOCOL NOPERCENT;
TITLE 'MXG ABEND ANALYSIS BY PROGRAMMING GROUP';
5. Duplicate-Job-Name-HOLD delay detection.
JES2 users frequently submit series of jobs with identical job names,
because they want the jobs to sequence themselves one at a time. The
input wait time (IWT is READTIME to INITTIME) will be wrong, as it
includes the time waiting in "HOLD". (Note this is not a problem with
TYPRUN=HOLD jobs, because variable TYPRUN identifies them). Freddie
Arie at Lone Star Gas saw that the key condition to identify a
Duplicate-Name-Held-Job delay is when the "end of execution" of the
preceding job is LATER than the read-in time of this job. For these
jobs, the previous job's "end time" must be used for this job's start
of "read-in". For a job that was NOT delayed due to duplicate name
hold, we use variable JRDRTIME as the "read-in" instead of READTIME
for two reasons. First, JRDRTIME is the "end of read-in event", and
more appropriate than the READTIME, the "start of read-in event".
Second, for jobs submitted via NJE, READTIME is on the clock of the
submitting node (e.g., EST), while JRDRTIME is on the clock zone of
the receiving (executing) node, so its use eliminates the NJE clock
differences. For jobs which are delayed due to duplicate job name
hold, the "end of execution" time to be used for the next job depends
on whether this job was also restarted. For a job that was NOT
restarted (i.e., RESTART=1), the JTRMTIME is the "end" to be used.
Consider, however, a job restarted due to data set name enque. That
single job could sit in hold for hours, while the other duplicate
jobs continued to execute. For restarted jobs, then, we use JRSTTIME
(the actual time the operator first restarted the job) for "end" time
in the IWT calculation of the subsequent duplicate name job.
This algorithm is not perfect. If a sequence of duplicate jobs spans
two PDB's, the first job in the second PDB will not be recognized as
a part of a duplicate jobname hold family, and the IWT time for that
first job will be incorrectly calculated from JRDRTIME instead of the
real "end time". Using a weekly or monthly PDB as input reduces this
probability, but it cannot be completely eliminated.
This algorithm is now implemented in the ASUMJOBS member, summarizing
and reporting batch job service from the PDB.JOBS, which is also used
as the input to create the PDB.JOBSKED for batch service objectives.
With the new implementation, the IWT reported by ASUMJOBS output no
longer includes delay due to duplicate job name hold condition.
6. APAR OY40625 is mandatory if you use Vector Processors. Without it
fix, the Vector Processor Affinity CPU times are wrong. The fix is
needed for MVS/ESA 3.1.3 thru 4.1.0.
7. APAR OY36668 captures PR/SM LPAR management time and LPAR overhead.
8. OPPSI, Operator Single System Image in a SYSPLEX, RMF support
consists of six new traceable fields (with TYPE76).
9. MVS/XA Only, APAR OY31613, PTF UY56157 is in error and can lose the
Job name in SMF records. The APAR recognizing the PE (PTF in Error)
is OY38538 and a SUPERZAP fix existed 12/11/90.
10. DFSORT Release 10 occasionally produces a type 16 SMF Sort record
with exactly 24 hours CPU TCB time. The problem goes away in Rel 11
11. SHARE 76 Paper "MVS/ESA Performance and Accounting Data"
that is now captured in MVS/ESA Version 4.2
H. W. Barry Merrill, PhD
President-Programmer
Merrill Consultants
Dallas, Texas 75229
Portions of this paper were presented/published at/in:
UKCMG 90 Glasgow, Scotland May 21, 1990
SWCMG Austin, Texas Jun 21, 1990
MXG Newsletter SEVENTEEN Jul 10, 1990.
SHARE 76 San Francicso, CA Feb 26, 1991.
MXG Newsletter NINETEEN Apr 8, 1991.
This paper identifies the significant changes in data elements that
are now captured by MVS/ESA 4.2. PR/SM CPU "overhead" is now measured.
Three new CPU measures captured in SMF type 30 and type 72 data affect
billing and capacity measures. Step level use of HIPERSPACE DataSpace
resources (like CPU time) are captured. "Resident Frame Seconds" of
Central AND Expanded memory are separated for each performance group.
Print is identified to the step. Blocked paging exists. New APPC/MVS
has resource accounting SMF data. The SMF writer itself is enhanced.
This paper includes all changes in these releases:
MVS/ESA 3.1.0e MVS/ESA 3.1.3 MVS/ESA 4.1 MVS/ESA 4.2
MVS RMF 4.1.1 RMF 4.1.2 RMF 4.2 RMF 4.2.1
a. New MVS/ESA CPU measures, two old, one new, have been added.
"RCT" - Region Control Task (Quiesce/Restore/Swap), caused
CPURCTTM by TSO swapping. This time has always existed,
(as uncaptured CPU), and was the major contributor
to poor TSO capture ratios.
"IIP" - I/O Interrupt Processing (Second Level Interrupt
CPUIIPTM Handler, SLIH). This time has always existed,
(as uncaptured CPU), and affected all workload's.
capture ratios.
"HPT" - Hiperspace processing CPU time. Hiperspace CPU time
CPUHPTTM displaces functions which formerly were measured under
TCB (or SRB). For example, a SORT using Hiperspace will
significantly REDUCE the recorded TCB CPU time, because
function moved from TCB to HPT. DFSORT benchmarks show
TCB reduced from 100 to 50 seconds, but HPT recorded 25
seconds; thus actual CPU reduction was only 100 to 75!
Billing/Capacity measures based on only TCB+SRB time are
very inaccurate in a Hiperspace environment.
Hiperspace CPU time is only recorded for tasks that
execute in a User Protect Key, and only User Key Data
Spaces are under control of the IEFUSI exit for size.
Most IBM uses of dataspaces (HiperBatch, VLF, DFP, CATALOG)
use Key Zero to avoid IEFUSI virtual storage limitations,
and thus will not record HPT CPU time (nor DSSIZHWM, see
below).
Moral:
You MUST use all seven CPU measures in billing/capacity:
CPUTM = TCB + SRB + ITCB + ISRB + RCT + IIP + HPT
b. PR/SM "overhead" is captured with APAR OY36668 in ES/9000 or 3090J's.
The "Effective Dispatch", LCPUEDTM, is recorded for each partition in
TYPE70PR.
The difference between the Partition Dispatch LCPUPDTM and this new
Effective Dispatch LCPUEDTM is the CPU time that this partition was
dispatched for the LPAR management of this partition.
In addition to this LPAR management time for each partition, there is
a new "psedo" partition named "PHYSICAL" that exists only in the RMF
type 70 record and which creates a separate observation in TYPE70PR.
This observation with LPARNAME='PHYSICAL' contains only LCPUPDTM,
which records the additional LPAR management CPU time that could not
be charged to a specific partition.
Total Partition Dispatch (CPU) Time
(LCPUPDTM summed for all real partitions + PHYSICAL)
______________________________________________________________
LPAR #1 LPAR #2 LPAR # 2 "PHYSICAL"
LCPUPDTM LCPUPDTM LCPUPDTM LCPUPDTM
_______________ _______________ _______________ ______________
LCPUEDTM LCPUEDTM LCPUEDTM
LPAR1 LPAR2 LPAR3
Effective Effective Effective
__ __ __ ______________
1 2 3 "Physical"
In-partition LPAR Management Time Other LPAR time
The PR/SM "low utilization" affect has now been measured with these
new fields. While the LPAR management time may be 6-10% when the
total LCPUPDTM busy is 60-70%, when the total busy is 95%+, the LPAR
management decreases into the 2-3% range. (Note, however, that the
LPAR management time for a CAPPED partition is substantially higher).
Most of all, now you can finally measure the LPAR management time!
IBM's RMF reports will use the "Effective" dispatch time as the 100%
CPU busy denominator (because then the LPAR numbers can be compared
with non-PR/SM utilization numbers).
Unrelated but included in this APAR, LCPUCAP identifies if
Hard Capping is in effect, and LCPUCAPC identifies if there
were any changes in the Hard Capping status.
c. Three new CPU times were added to SMF type 30 in MVS 3.1.0e, but were
NOT added to RMF type 72 until MVS/ESA 4.2 (RMF 4.2.1). RMF capture
ratios decrease when you migrate from MVS/370 to MVS/ESA 3.1.0e, and
then increase when you install MVS/ESA 4.2, but now they're right!
TYPE 70 (RMF-captured CPU measurement of real or logical CPUs):
Elapsed Interval (Duration multiplied by number of CPUs)
________________________________________________________________
______________________________________________________ ---------
CPU CPU
Executing Waiting
________ ________ _________ ________ ________ ________
CPU 1 CPU 2 CPU 3 CPU 4 CPU 5 CPU 6
Busy Busy Busy Busy Busy Busy
______________________________________________________
Total Hardware CPU Busy Time (from Type 70 "non-wait")
(solid=captured dashed=uncaptured)
______________________________________________________
Total Hardware CPU Busy Time (from Type 70 "non-wait")
TYPE 72 (use only the control performance groups):
___________ ----- ----- _________________ ------------
TCB SRB TCB SRB IIP RCT HPT Uncapturable
CPU CPU CPI CPI CPU CPU CPU CPU
_____ _____ ----- ----- _____ _____ _____ ------------
RMF RMF Uncaptured Captured in Uncapturable
TCB SRB Initiator RMF 4.2.1 RMF CPU
CPU CPU Privileged Uncaptured in
RMF 4.1.2-4.2
___________ ------------_____ _____ _____ ------------
Existed, Existed, New, Uncapturable
TCB+SRB Uncaptured Moved from was RMF CPU
by RMF but Uncaptured RMF
is in SMF. to TCB
Captured
_____ _____ + _____ _____ _____ = CPUTM, sum of 5.
TYPE 30 (all work started and ended):
_____ _____ _____ _____ _____ _____ _____ ------------
SMF SMF SMF SMF SMF SMF SMF Uncapturable
TCB SRB TCB SRB IIP RCT HPT SMF
CPU CPU CPI CPI CPU CPU CPU CPU
_____ _____ _____ _____ _____ _____ _____ = CPUTM, sum of 7.
d. Type 30 SMF record Step Hiperspace/Data Space Activity
added several measures:
HIPAGINS - Hiper Page Ins
HIPAGOUT - Hiper Page Outs
DSSIZHWM - Data Space/Hiperspace High Water Mark, Megabytes
(if non-zero, identifies Data Space/Hiperspace user)
CREADMIS - CREADS Missed in Hiperspace
DIVRREAD - Address Space total Reread Count
ABNDRSNC - ABEND reason code
TERMNAME - Terminal Identification
e. Type 72 Performance Group CPU/paging/memory measures
BLKSAUIN - Blocks paged in from Auxiliary DASD
BLKSESIN - Blocks paged in from ESTORE
HIPPGINS - Hiperspace Page Ins from Aux DASD
HIPRDMIS - Hiperspace Read Misses (CREADS in 30s)
PGPAGEIN - Page Ins from Auxiliary DASD
PAGEESIN - Page Ins from Expanded Storage
PGBKESIN - Blocked pages paged in from ESTORE
PGBKTOIN - Blocked pages paged in total (ESTORE+AUX)
CPUHPTTM - Hiperspace CPU time Actual times
CPUIIPTM - I/O interrupt processing CPU and not
CPURCTTM - Region control task CPU time service units!
SYSTRNTM System transaction time point of entry
until termination
ACTFRMTM - Frame-seconds of CS+ES memory occupancy while tasks in
this performance group period were "SRM Resident".
This includes both Central Store and Expanded Store
frames, but does not include Nucleus or Common Area
(since they are not in an address space), and does
NOT include frames of Logically Swapped ASIDs.
ACTESFTM - Frame-seconds of ES memory occupancy while tasks in
this performance group period were "SRM Resident".
This is the ES part of ACTFRMTM.
MSOUNITS - Represents frame-seconds of Central Store memory
occupancy, but only while executing TCB.
For example, assume:
DURATM = Duration of Interval 100 seconds
RESIDTM = Accumulated Residency Time 800 seconds
ACTFRMTM = Central+ESTORE 80,000 frame-seconds
ACTESFTM = ESTORE 30,000 frame-seconds
Then
MPL = (800/100) = 8 users are resident, on average.
ES Frames = (30,000/100) = 300 ES Frames (1.2 MB) used
CS Frames = (80,000-30,000)/100 = 500 CS Frames (2 MB) used
Because
ACTFRMTM
(-------------) = CS + ES frames used by perf group period
DURATM
ACTESFTM
(-------------) = ES frames used per user
RESIDTM
MSOUNITS
(--------------------) = TCB-only CS frames used per user
50*MSOCOEFF*CPUTCBTM
f. New TYPE71 counts of blocked pages paged in, blocks in, PWSS size
(primary working set size), pages migrated, and the number of
ESTORE frames that were freed without migration:
BLKSAUIN - Blocks paged in from AUX
PGBKAUIN - Blocked pages paged in from AUX
ESPGFRNO - ESTORE frames freed without migration
PWSSMIIN - PWSS pages migrated from ESTORE
TYPE71 contains four new swap reason codes, because MVS now has
four additional reasons for swapping an address space:
AW - APPC Wait swap, awaiting a Transactio Program.
IC - Improve Central Storage usage swap, by recognizing
page thrashing.
IP - Improve System Paging Rate swap, identifies that
your PTR controls are causing swaps.
MR - Make Room to swap in a user who has been swapped
out too long. When an Exchange Swap should have
occurred, SRM starts a clock, defaults to 30 sec
for TSO, 10 min for non-TSO, and will bring that
task back in if it stays out that long.
For each swap reason, there are five new variables for the swap rate
of each possible transition (EXTAUX.., LOGAUX.., LOGEXT.., PHYAUX..,
and PHYEXT..). The sum of all transitions for each swap reason,
(i.e., the total swap rate for that reason code) is in the new
variables SWAPIC, SWAPIP, and SWAPMR.
g. TYPE 71: Overall System Memory measurement in MVS/ESA:
Area Expanded Frames Central ("Real") Frames
Avg, Min, Max Avg, Min, Max
Measures Measures
CSA CSAEXAV,MN,MX n/a
Hiper HIPEXAV,MN,MX n/a
LPA LPAEXAV,MN,MX n/a
LSQA LSQAEXAV,MN,MX LSQAREAV,MN,MX
REG+SQA REGSEXAV,MN,MX n/a
SQA SQAEXAV,MN,MX SQAREAV,MN,MX
VIO VIOEXAV,MN,MX n/a
Type Pages Pages Pages
Read Written Migrated
From ESTORE To ESTORE To Aux
Hiper HIPREADS HIPWRITS HIPMIGRS
VIO VIOREADS VIOWRITS VIOMIGRS
Total EXTREADS
Hiper page ins HIPAGINS
Hiper page outs HIPAGOUT
h. Blocked/Unblocked Paging/Blocks summary.
Sequential I/O is always better (less CPU, less real memory, less
elapsed time) with blocks of logical records than unblocked records.
MVS/ESA 4.2 introduces "Blocking" (multiple pages in a block). What we
knew as "pages" are now counted as "unblocked pages". The following
schematic tabulates the SMF suffix of measured/calculated counts in the
type 30 record:
Type 30 IBM Pages Blocked Blocks
(Unblkd) Pages
In
from AUX pia BIA KIA
from ESTORE PIE BIE KIE
Out
to AUX poa BOA KOA
to ESTORE POE BOE KOE
Type 30 MXG Pages Blocked Blocks
(Unblkd) Pages
In
from AUX PAGEINS PGBKAUIN BLKSAUIN
from ESTORE PAGEESIN PGBKESIN BLKSESIN
Out
to AUX PAGEOUTS PGBKAUOU BLKSAUOU
to ESTORE PAGEESOU PGBKESOU BLKSESOU
This next table shows the fields in the type 72, and as might be
expected, they contain only inbound paging activity.
Type 72 MXG Pages Blocked Blocks
(Unblkd) Pages
In from AUX pgpagein PGBKAUIN BLKSAUIN
In from ESTORE PAGEESIN PGBKESIN BLKSESIN
The type 71, global paging, surprisingly contains only these new fields:
Type 71 MXG Pages Blocked Blocks
(Unblkd) Pages
In from AUX total PGBKAUIN BLKSAUIN
Hiperspace hipagins
In from ESTORE Hiperspace hipreads
In from ESTORE VIO vioreads
In from ESTORE total extreads
Out to AUX Hiperspace hipagout
Out to ESTORE Hiperspace hipwrits
Out to ESTORE VIO viowrits
Migrates to AUX Hiperspace HIPMIGRS
Migrates to AUX VIO VIOMIGRS
i. TYPE70PR - PR/SM Processor Partition Data
Durations of partition
DURATM Duration of interval
LCPUEDTM Effective logical processor dispatch time
LCPUPDTM Logical processor dispatch time
PRSMSLIC Dispatch interval timeslice
Identification of partition
LCPUADDR Logical processor CPUID address
LPARNAME Logical partition name
LPARNUM Logical partition number
Status flags and numbers
DIAG204F Diagnose X204 failure?
LCPUDED Logical processor dedicated?
LCPUWAIT LPAR Wait Completion (Yes/No)?
NRPRCHGD Was the number of CPUs changed?
PARTFLG Was the Partition deactivated?
SLICCHGD PRSMSLIC Time-slice was changed?
LCPUSHAR Processor relative share
LPARCPUS Number of CPUs in this LPAR
NRCPUS Number of CPUs
NRPRCS Number of logical partitions
PARTISHN Partition number of this MVS
PARTNCPU Nr of CPUs available to this partition
Read ZZ05-0453-01 "PR/SM Performance in LPAR Mode" (IBM Internal, from
your IBM SE) for additional important PR/SM information.
j. TYPE72MN - RMF III Monitor subtype of type 72 record
MVS/ESA creates an RMF record from RMF Monitor III,
but only a small part of the data captured by RMF III
is written to SMF, for each Performance Group:
User Statistics Frame Statistics
AVGUSER - Logged On FRAMEACT - Active Frames
AVGACTS - Active Users FRAMEDIV - DIV Frames
AVGACTV - Active Not OUTR FRAMEFIX - Fixed Frames
AVGDIVS - D-I-V Users FRAMEIDL - Idle Frames
AVGIDLS - Idle Users
Delayed Users Statistics Miscellaneous
AVGOUTR - Out and Ready FRAMEASM - Slots Used
AVGPAGDL - Delayed Paging PGINRATE - Page Ins
AVGSWPDL - Delayed Swap DOMAIN - Domain
PERFGRP - Perf Group
Averages of Averages
WSETACT - Avg working set per active user
WSETASM - Avg ASM slots used per user
WSETDIV - Avg working set per DIV user
WSETFIX - Avg fixed frames per user
WSETIDL - Avg working set per idle user
k. I/O Activity measurement, non-VSAM, VSAM, DASD, TAPE:
TYPE1415 Non-VSAM File, for each open of each file:
DSSNO Dataset serial number
IDRC 3480 IDRC compaction used?
NULLSEG null segment encountered?
PDSE PDSE (formerly ILIB) managed data set?
SMFCHITS HiperBatch successful searches
SMFCIOS HiperBatch DASD I/Os copied into buffers
SMFIOREQ HiperBatch total searches
SMFNMWTS HiperBatch conflict suspends
SMFPHIOS HiperBatch searchs that caused DASD I/O
TRUNC TRUNC MACRO issued?
TYPE64 VSAM File, for each open of each file:
ACBBUFND BUFND - Number of Data Buffers
ACBBUFNI BUFNI - Number of Index Buffers
ACBBUFSP BUFSP - Buffer Space
ACBMACR MACRF flag bytes (Random, Seq, Input, Output, etc.)
ACBSTRNO STRNO - String number
BUFDRNO Actual number of buffers
JCFBDSNM Cluster Name
PLHCNT Actual number of concurrent strings
SMF64HIT HiperBatch successful searches
SMF64IOS HiperBatch DASD I/Os copied into buffers
SMF64MIS HiperBatch searches that caused DASD I/Os
SMF64SIO HiperBatch total searches
SMF64WTS HiperBatch conflict suspends
TYPE 21 Tape Volume Dismount
BYTEREAD Bytes read
BYTEWRIT Bytes written
DCBOFLG DCBOFLG control byte
DEVICE Device type
OPEN Type of OPEN
TAPCUSER Tape unit serial of creation device
TAPUNSER Tape unit serial of this device
TEMPRBER Temporary read backward errors
TEMPRFER Temporary read forware errors
TEMPWRER Temporary write (buffered) errors
TYPE74 DASD Volume Activity
DASDRCFG - Number/Storage Group Options
STORGRUP - Storage Group Name
CUNAME - Control unit name
DEVMODEL - Device model name
AVGPNDIR - Avg ms per I/O delay due to director port busy
DLYDIRTM - Total seconds delay due to director port busy
PCTPNDIR - Percent of time when delayed due to director port busy.
l. RMF Monitor III Cross-System Coupling Facility (XCF) reports
on message traffic between local system (where RMF executes)
and remote systems creates four new TYPE74xx datasets:
TYPE74CO - control data
R742MNXT - Member data sections in next records
R742MTOT - Member data sections in all records
R742PNXT - Path data sections in next record
R742PTOT - Path data sections in all records
R742SNXT - System data sections in next records
R742STOT - System data sections in all records
R742TSR - Subtype 2 records in interval
TYPE74ME - member data
R742MGRP - Group name
R742MMEM - Member name
R742MRCV - Signals received by member
R742MSNT - Signals sent by member
R742MSTF - Status flags
R742MSYS - System name where member resides
TYPE74SY - system data
R742SBIG - Number of "big message" conditions
R742SBSY - Number of "no buffer" conditions
R742SDIR - Direction of the message traffic
R742SFIT - Number of "message fit" conditions
R742SMXB - Maximum message buffer space
R742SNME - System name
R742SNOP - Number of "no path" conditions
R742SOVR - Big messages that exceeded OPT message length
R742SPTH - Signaling paths currently in service
R742SSML - Number of "small message" condiions
R742SSTF - Status flags
R742STCL - Message length for transport class
R742STCN - Transport class name
TYPE74PA - path data
R742PAPP - Path was busy when selected to transfer
R742PDEV - Device number
R742PDIR - Direction path
R742PIBR - Inbound signals refused due to max message limit
R742PMXM - Maximum message buffer space
R742PNME - System name
R742PODV - Device number on other end
R742PONA - Name of system on other end
R742PQLN - Outbound signals pending transfer on path
R742PRET - Path retry limit
R742PRST - Number of restarts
R742PSIG - Out/In bound signals sent/received over path
R742PSTA - Path status
R742PSTF - Status flags
R742PSUS - Path not busy when slected to transfer '
R742PTCN - Transport class name
m. DFP 3.2 Statistics and Configuration
TYPE 42 record contains 3 new subtypes that create five new datasets:
TYPE42AU "Audit" VARY SMS, ACTIVATE SMS, or ENF event occurrence, but
is relatively unimportant:
CURRTIME Current update timestamp
SMF42EAC Activate, ENF, or VARY SMS?
SMF42EAD Active control dataset name
SMF42ENS New MVS volume status
SMF42EOS Old MVS volume status
SMF42ERC Return code
SMF42ERS Reason code
SMF42ESD Source control dataset name
SMF42ESN Name of storage group
SMF42EST Resulting status after action
SMF42ESY "ALL", or first 8 system names
SMF42EUA UCB address for the device
SMF42EVL Volume serial number
TYPE42CU Model 3990-3 Cache Control Unit Statistics,
for each cache controller having an SMS volume attached.
Identification and timestamps
SMF42CID Subsystem identifier
CURRTIME Current update timestamp
LASTTIME Last update timestamp
Statistics during interval
SMF42AFW Average fast-write waits per minute
SMF42AHR Average hit ratio
SMF42CCT Current I/O count for the subsystem
SMF42LCT Last I/O count for the subsystem
SMF42CFW Current fast write wait count
SMF42LFW Last fast write wait count
SMF42CRH Current cache normal read hit percent
SMF42LRH Last cache normal read hit percent
SMF42CWM Current fast write waits per minute
SMF42LWM Last fast write waits per minute
Storage capacity/availability
SMF42CSS Subsystem storage capacity
SMF42NCS Subsystem non-volatile storage status
SMF42NSZ Non-volatile cache capacity
SMF42SAP Storage allocated for PINNED data
SMF42SCS Storage director caching status
SMF42SPR Non-volatile storage allocated for PINNED
SMF42SSA Storage available for allocation as CACHE
SMF42SSU Storage unavailable due to failures
TYPE42VL Status for each SMS volume behind 3990-3
CURRTIME Current update timestamp
SMF42CID Subsystem identifier
SMF42DB1 Device status flags one
SMF42DB2 Device status flags two
SMF42DEV Device number
SMF42VOL Volume Serial Number
TYPE42SC Storage Class Buffer Manager Facility (BMF) Statistics
for each Storage Class. (Interval set in IGDSMSxx).
DURATM Interval duration
SMF42PNN Storage Class Name
SMF42SDH Directory data page read hits
SMF42SDT Directory data page reads
SMF42SRH Member data page read hits
SMF42SRT Member data page reads
STARTIME Start timestamp of the interval
TYPE42TO Buffer Manager Facility (BMF) Totals for all Classes.
DURATM Interval duration
SMF42LGE Largest size of storage
SMF42TDH Directory data page read hits
SMF42TDT Directory data page reads
SMF42TNA Number of storage classes
SMF42TRH Member data page read hits
SMF42TRT Member data page reads
STARTIME Start timestamp of the interval
n. TYPE6 JES Printer Record Enhancements
Step identification of source of print
SMF6DDNM DDNAME that created printing
SMF6DSNM JES assigned temporary DSNAME of the print dataset
SMF6PRNM PROCSTEP that created printing
SMF6STNM STEPNAME that created printing
SMF6USID USERID that created printing
SUBSYS6 Printing Subsystem (JES/PSF) used.
SMF6PRMD Processing mode (PAGE/LINE) of print.
SMF6FDNM FORMDEF name used
SMF6PDNM PAGEDEF name used
SMF6PTDV PRINTDEF name used
Print security identification
SMF6NPS Security page segments used
SMF6NSFO Security fonts used
SMF6NSOL Security overlays used
SMF6OTOK Output user security token
SMF6SECS Security label of print dataset
Enhanced SYSOUT Support, ESS. JES2 only, not PSF.
(fields also added to type 24 and 57 SMF records).
SMF6IND ESS segment indicator
SMF6JDVT JCL definition table name in JDTV
SMF6SGID Segment identifier
SMF6TU Text unit (SWBTU) data area
SMF6TUL Text unit (SWBTU) data area langth
Yes/No Print Activity flags
BINnUSED BIN Number n was used?
CONTRIN0 SPIN data set?
CONTRIN1 Operator terminated print?
CONTRIN2 Operator restarted print?
CONTRIN3 Print intrepreted?
CONTRIN4 Operator interrupted print?
CONTRIN5 Print continuation?
CONTRIN6 Operator overrode?
CONTRIN7 Restart with destination?
CONTRIN8 Received operator restart?
CONTRIN9 Operator started single space?
DIADPLWS Data page labelling suppressed?
DIAJHWP Job trailer page printed?
DIASLIG Job header page printed?
DIAUPAWS User print are suppressed?
DPAGELBL Keyword DPAGELBL=YES?
ERROVRUN Image overrun error?
ERRSECOV Error in security overlay?
INTEGRTY Security label integrity?
PRSUCCES Print operation successful?
SPAGELBL Keyword SPAGELBL=YES?
STDUPLEX Standard duplex used?
SYSAREA Keyword SYSAREA=YES?
TMBUPLEX Tumble duplex used?
o. Data-In-Virtual (DIV) and Virtual Lookaside Facility (VLF):
TYPE41AC (DIV Accessed) and TYPE41UN (DIV Unaccessed)
Common to both Access and Unaccess
ACCSTIME Time when object was accessed
DDNAME DDNAME used
JOB Job name or TSO user accessing
OBJMODE Access mode (Read/Update)
OBJSIZEA Object size (blocks) when accessed
OBJTYPE Object type (DA)
Additional data at Unaccess in TYPE41UN
IOCALREA Total I/O calls for read
IOCALWRT Total I/O calls for write
OBJSIZEU Object size (blocks) when unaccessed
TOTREADS Total blocks read (including rereads)
TOTRREAD Total blocks re-read
TOTWRITE Total blocks written
UACCTIME Time when object was unaccessed
TYPE41VF Virtual Lookaside Facility (VLF) statistics
APARs OY28799 and OY288800 for MVS/ESA create a
type 41 subtype 3 interval (15 min) record for
each class in the COFVLFxx PARMLIB member.
SMF41CLS Class name
SMF41SRC Times cache was searched
VLFHITPC Percent of searches found in VLF
SMF41ADD Objects added to cache during interval
SMF41DEL Objects deleted from cache
SMF41FND Objects found in cache
SMF41TRM Objects trimmed from cache
SMF41LRG Largest object ever attempted
SMF41MVT MAXVIRT specified
SMF41USD Amound of storage used
R. Shannon of Aetna pointed out that the LLA's use of VLF causes
type 41 data to report LLA's utilization near 100%, but LLA still
adds modules, because LLA only calls VLF for modules that LLA had
previously cached. Additionally, the storage used reported by
VLF is not the high-watermark, but is the end of interval value.
SMF records can be created from the CSVLLIX1 exit to provide the
detail fetch statistics, but (too?) many records are created.
p. Structural changes in SMF writer recording and SMF management.
Control Interval of SMF VSAM data set can be 22K (finally!!!). This
change is in ESA 3.1.3. SMF initially now gets 259 buffers (CIs) at
startup. If CIsize is 4K, thats only 1MB, but with recommended 22K
CIsize, 22K*259=6MB and thus SMF address space must be 6MB. If SMF
needs more buffers, they are above the line to a maximum of 32MB.
SMF internal buffers can be reclaimed from a SYSMDUMP, SVCDUMP or a
Standalone dump with IPCS SMFDATA command into a VSAM dataset.
Buffer shortage msg at 80% redisplayed if increases, deleted at 70%.
Gets 200 more buffers (CIs) up to 4000 buffers (=32MB)
The percentage number does not decrease as buffers are freed.
SMF Exits can use 31-bit addressing AMODE(31). Callers in Cross mem
can now call SMF (MODE=XMEM on SMFEWTM). New IEFU85 exit exists.
LASTDS options in SMF PARMLIB controls SMF when last SMF dataset full
MSG - send message, start buffering data (default)
HALT - put system in restartable WAIT STATE ('D0D-01')
NOBUFFS options in SMF PARMLIB when internal buffers fill
MSG - send message and enter data lost mode (default)
HALT - put system in restartable WAIT STATE ('D0D-00')
Type 4, 5, 34, and 35s are dead.
Flags are set when data is not in thes records and 30s must be used:
CPUWRONG to "Y" if TCB time has overflowed
EXCPLOST to "Y" if over 1635 DD statements
IBM's ESA SMF manual now states:
"Only the type 30 record should be considered valid."
MSS (Mass Storage System) device is no longer.
What happens when SMF records suddenly fill SMF?
A site had 450 CYL of 3380 for all SMF data sets, enough for their
full day's data. When they migrated to MVS/ESA 4.1.0, SMF datasets
filled at 3:15pm. Ninety minutes later, the SMF buffers filled and
recording stopped. (ESA buffering gave the operator 1.5 hours)!
An increased number of SMF type 60 for Non-VSAM Record "NVR" updates
(added by SMS/DFP 3.2, because now ALL data sets, VSAM and non-VSAM
must be in the VVDS) is thought to be the cause, but because the site
lost all SMF data it's not proven. The site did turn off the type 60s
and the problem has not recurred. The only use of the 60s data that I
know of are third-party products to re-build a broken VVDS. No IBM
utility uses type 60s. If you do not have such a product, it is my
suggestion that you not record type 60 SMF records, because I have not
found them needed for analysis, nor do I know of anyone who has used
them. If anyone has ever found the type 60s useful, please contact me.
If no one replies, I will change my suggestion to a recommendation.
In 90 minutes the site filled the 32MB (fixed maximum) ESA buffers, or
only 6213 bytes per second were being moved from your address space to
the SMF address space for eventual (asynchronous) writing to DASD. With
an SMF CI size of 22K, this is a physical write to DASD every 4 seconds
or only about 15 I/Os per MINUTE !!!!!!!!!!!!
to a device capable of 40 I/Os per SECOND !!!!
Again, this should prove that the SMF writer and SMF data sets are NOT
stressed, that the SMF data sets do NOT require special treatment, and
SMF data volume does not cause performance degredation.
q. System Managed Storage, SMS, extensions.
System Managed Storage (SMS) now uses formerly reserved bits
located at offset '4E'x in the DSCB1 in your VTOCs. DASD
products like DMS/OS and ASM2 have used these bits, and local
modifications (to CSECTS IFG0196W and IFG0194E) have also caused
this "DSCB Contamination".IBM published "Clean up VTOCs Before
Implementing DFP V3"(as WSC Flash 9009, Hone Entry G022345) to
advise you of the exposure. If DSCB contamination is found, you
must not only clean the VTOCs of your online data sets, but you
will need to also clean all migrated datasets, since their DSCBs
were also migrated and your migration software will need to
correct the contamination when datasets are recalled.
These new SMS variables are contained in DASD VTOCs:
DS1CRSDB DADSM Create originated blocksize?
DS1PDSE PDSE Managed Dataset?
DS1REBLK Data set may be reblocked?
DS1SCCPF Secondary is compacted by factor of 1, 256, 65536?
DS1SECUN units of allocation (avblk,bytes,kilo,mbytes A/B/K/M)
DS1SCXTV Secondary space extension value
DS1SMSDS System managed dataset?
DS1SMSUC No BCS entry exists for data set?
OFFSET4E Offset 4E into DSCB1 (used by SMS)
DCOLLECT is a new IDCAMS facility, that creates a flat file with
seven different records containing VTOC, VVDS, and HSM measures.
While DCOLLECT does not include 100% of the raw records, it can
avoid reading the VVDSs and VTOCs, which are now defined by IBM
as "product-sensitive programming interfaces", meaning that the
format and content of data records can change from release to
release.
Eg., a VVDS cannot be casually allocated, and an authorized
ASM program is required to capture VVDS data into SMF).
DCOLLECT records are part of the SAA preferred type of data that IBM
now calls a "general-use programming interface".
IBM documentation for the records produced by DCOLLECT is spread across
several manuals. GC24-3540-00, "DFSMS Planning and Reporting" overviews.
Three datasets, DCOLDSNS (data sets), DCOLVOLS (volumes) and
DCOLCLUS (VVDS), are built from VTOC/VVDS information, and their
contents are described in Appendix E of DFP 3.2 "Access Method
Services for Integrated Catalog Facility", SC26-4562-1.
Four datasets, DCOLMIGS (migrations), DCOLBKUP (backup), DCOLCAPD
and DCOLCAPT (HSM tapes) are HSM-related and they are described
(poorly, DCOLLECT is not even cited in the table of contents nor
in the index) in Chapter 17 (User Application Interfaces) of
SH35-0084-4, "DFHSM 2.5.0 Installation and Customization Guide".
DCOLBKUP
Variable Type Length Format Label
DCUSYSID CHAR 4 SYSTEM*ID
DCUTMSTP NUM 8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
UBDATCL CHAR 30 DATA CLASS NAME
UBDCLNG NUM 4 DATA CLASS LENGTH
UBDEVCL CHAR 1 DASD*OR*TAPE?
UBDSIZE NUM 4 MIGRATED COPY*DATA SET SIZE
UBDSNAM CHAR 44 USER*DATASET*NAME
UBMCLNG NUM 4 MANAGEMENT CLASS LENGTH
UBMGTCL CHAR 30 MANAGEMENT CLASS NAME
UBSCLNG NUM 4 STORAGE CLASS LENGTH
UBSTGCL CHAR 30 STORAGE CLASS NAME
UBTIME NUM 8 DATETIME21.2 MIGRATED*DATETIME*STAMP
DCOLCAPD
DCUSYSID CHAR 4 SYSTEM*ID
DCUTMSTP NUM 8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
UCAFOCC NUM 4 OCCUPANCY OF*VOLUME AFTER*PROCESSING
UCBFOCC NUM 4 OCCUPANCY OF*VOLUME BEFORE*PROCESSING
UCCOLDT NUM 4 JULIAN DATE*WHEN DATA*WAS COLLECTED
UCINTVM NUM 4 TARGET OCCUPANCY*WAS MET*FOR VOLUME
UCLEVEL NUM 4 LEVEL*OF*VOLUME
UCNINTV NUM 4 INTERVAL*MIGRATIONS*RUN AGAINST VOLUM
UCNOMIG NUM 4 PCT NOT MIGRATED*BUT ELIGIBLE*TO MIGR
UCTGOCC NUM 4 SPECIFIED TARGET*OCCUPANCY*OF VOLUME
UCTOTAL NUM 4 TOTAL*CAPACITY*OF VOLUME
UCTROCC NUM 4 SPECIFIED TRIGGER*OCCUPANCY*OF VOLUME
UCVOLSR CHAR 6 VOLUME*SERIAL
DCOLCAPT
Variable Type Length Format Label
DCUSYSID CHAR 4 SYSTEM*ID
DCUTMSTP NUM 8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
UCEMPTY NUM 4 NUMBER OF*EMPTY TAPE*VOLUMES
UTFULL NUM 4 NUMBER OF*FULL TAPE*VOLUMES
UTPART NUM 4 NUMBER OF*PARTIALLY FILLED*VOLUMES
UTSTYPE CHAR 1 TYPE OF*TAPE CAPACITY*PLANNING RECORD
DCOLCLUS
DCAASSOC CHAR 44 CLUSTER*NAME
DCACMPNT CHAR 1 DATA OR*INDEX*COMPONENT?
DCADSNAM CHAR 44 DATASET*NAME
DCAFLAG1 CHAR 1 HEX2.0 TYPE*FLAG
DCAFLAG2 CHAR 1 HEX2.0 STATUS*FLAG
DCAIXUPG CHAR 1 ALTERNATE*INDEX WITH*UPGRADE?
DCAKR1ST CHAR 1 1ST SEGMENT*OF KR*DATA SET?
DCATYPE CHAR 4 ENTRY*TYPE
DCUSYSID CHAR 4 SYSTEM*ID
DCUTMSTP NUM 8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
DCOLDSET
DCDALLSP NUM 4 MGBYTES5.0 ALLOCATED*SPACE*(MGBYTES)
DCDBKLNG NUM 4 BLOCK*SIZE
DCDCHIND CHAR 1 CHANGE*INDICATOR?
DCDCREDT NUM 4 DATE9.0 CREATE*DATE*(SAS DATE)
DCDDATCL CHAR 30 DATA*CLASS
DCDDCLNG NUM 4 DATA*CLASS*LENGTH
DCDDSNAM CHAR 44 DATASET*NAME
DCDDSORG CHAR 2 DSORG
DCDDSSER CHAR 6 DATASET*SERIAL*NUMBER
DCDEMNGD CHAR 1 SMS*MANAGED*INCONSISTENCY?
DCDERROR CHAR 1 HEX2.0 ERROR*FLAG
DCDEXPDT NUM 4 DATE9.0 EXPIRE*DATE*(SAS DATE)
DCDFLAG1 CHAR 1 HEX2.0 STATUS*FLAG
DCDFLAG2 CHAR 1 HEX2.0 CATLG*FLAG
DCDGDS CHAR 1 GDG*DATA*SET?
DCDINICF CHAR 1 DATA SET*IS CATALOGED*IN ICF?
DCDINTCG CHAR 1 DATA SET*IS AN ICF*CATALOG?
DCDLBKDT CHAR 8 LAST*BACKUP*DATE
DCDLRECL NUM 4 RECORD*SIZE
DCDLSTRF NUM 4 DATE9.0 LAST*REFERENCED*DATE (SAS DATE)
DCDMCLNG NUM 4 MANAGEMENT*CLASS*LENGTH
DCDMGTCL CHAR 30 MANAGEMENT*CLASS*NAME
DCDNMBLK NUM 4 MGBYTES5.0 UNUSEABLE*SPACE IN*BLOCKS(MGBYTES)
DCDNMEXT NUM 4 NUMBER*OF*EXTENTS
DCDNOFM1 CHAR 1 NO FMT 1*DSCB FOR*THIS DATASET?
DCDNOSPC CHAR 1 NO SPACE*INFORMATION*PROVIDED?
DCDNOVVR CHAR 1 NO VVR*FOR THIS*DATA SET?
DCDPDSE CHAR 1 PDSE*EXTENDED?
DCDRACFD CHAR 1 DATA SET*IS RACF*DEFINED?
DCDREBLK CHAR 1 DATA SET*MAY BE*REBLOCKED?
DCDRECFA CHAR 1 ANSI*CONTROL*CHARACTER?
DCDRECFB CHAR 1 BLOCKED*RECORDS?
DCDRECFC CHAR 1 MACINE CONTROL*CHARACTER?
DCDRECFF CHAR 1 FIXED*LENGTH*RECORDS?
DCDRECFS CHAR 1 STANDARD*BLOCKS(F) OR*SPANNED(V)?
DCDRECFT CHAR 1 TRACK*OVERFLOW?
DCDRECFU CHAR 1 UNDEFINED*LENGTH*RECORDS?
DCDRECFV CHAR 1 VARIABLE*LENGTH*RECORDS?
DCDSCALL NUM 4 MGBYTES5.0 SECONDARY*ALLOCATION*(MGBYTES)
DCDSCLNG NUM 4 STORAGE*CLASS*LENGTH
DCDSGLNG NUM 4 STORAGE*GROUP*LENGTH
DCDSMSM CHAR 1 SMS-MANAGED*DATA*SET?
DCDSTGCL CHAR 30 STORAGE*CLASS
DCDSTGRP CHAR 30 STORAGE*GROUP*NAME
DCDTEMP CHAR 1 TEMPORARY*DATA*SET?
DCDUSESP NUM 4 MGBYTES5.0 USED*SPACE*(MGBYTES)
DCDVOLSQ NUM 4 VOLUME*SEQ
DCDVOLSR CHAR 6 VOLSER
DCDVSAMI CHAR 1 VSAM*INDICATORS*INCONSISTENT?
DCUSYSID CHAR 4 SYSTEM*ID
DCUTMSTP NUM 8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
ORGEXPDT NUM 4 ORIGINAL*JULIAN*EXPDT
DCOLMIGS
DCUSYSID CHAR 4 SYSTEM*ID
DCUTMSTP NUM 8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
UMDATCL CHAR 30 DATA CLASS NAME
UMDCLNG NUM 4 DATA CLASS LENGTH
UMDEVCL CHAR 1 DASD*OR*TAPE?
UMDSIZE NUM 4 MGBYTES5.0 MIGRATED COPY*DATA SET SIZE*(MGBYTES)
UMDSNAM CHAR 44 USER*DATASET*NAME
UMLEVEL NUM 4 CURRENTLY*MIGRATED*LEVEL
UMMCLNG NUM 4 MANAGEMENT CLASS LENGTH
UMMGTCL CHAR 30 MANAGEMENT CLASS NAME
UMSCLNG NUM 4 STORAGE CLASS LENGTH
UMSTGCL CHAR 30 STORAGE CLASS NAME
UMTIME NUM 8 DATETIME21.2 MIGRATED*DATETIME*STAMP
DCOLVOLS
DCUSYSID CHAR 4 SYSTEM*ID
DCUTMSTP NUM 8 DATETIME21.2 DCOLLECT*RECORD*TIME STAMP
DCVALLOC NUM 4 MGBYTES5.0 ALLOCATED*SPACE*(MGBYTES)
DCVDVNUM NUM 4 HEX3.0 DEVICE*NUMBER
DCVDVTYP CHAR 8 DEVICE*TYPE
DCVEBYTK CHAR 1 ERROR*CALCULATING*BYTES/TRACK?
DCVELSPC CHAR 1 ERROR*DURING LSPACE*PROCESSING?
DCVERROR CHAR 1 HEX2.0 ERROR*FLAG
DCVEVLCP CHAR 1 ERROR*CALCULATING*VOL CAPACITY?
DCVFDSCB NUM 4 FREE*DSCBS
DCVFLAG1 CHAR 1 HEX2.0 VOLUME*STATUS
DCVFRAG1 NUM 4 FRAG*INDEX
DCVFRESP NUM 4 MGBYTES5.0 FREE*SPACE*(MGBYTES)
DCVFREXT NUM 4 FREE*EXTENTS
DCVFVIRS NUM 4 FREE*VIRS
DCVINITL CHAR 1 IN CONVERSION TO SMS?
DCVINXEN CHAR 1 INDEXED VTOC ENABLED?
DCVINXEX CHAR 1 INDEXED VTOC EXISTS?
DCVLGEXT NUM 4 MGBYTES5.0 LARGEST*EXTENT*(MGBYTES)
DCVMANGD CHAR 1 VOLUME IS MANAGED BY SMS?
DCVNMNGD CHAR 1 NON-SMS MANAGED VOLUME?
DCVPERCT NUM 4 PERCENT*FREE*SPACE
DCVSGLNG NUM 4 STORGRUP*LENGTH
DCVSGTCL CHAR 30 STORGRUP
DCVSHRDS CHAR 1 DEVICE*IS*SHAREABLE?
DCVUSPUB CHAR 1 USE*ATTRIB*PUBLIC?
DCVUSPVT CHAR 1 USE*ATTRIB*PRIVATE?
DCVUSSTO CHAR 1 USE*ATTRIB*STORAGE?
DCVVLCAP NUM 4 MGBYTES5.0 TOTAL SPACE*ON VOLUME*(MGBYTES)
DCVVOLSR CHAR 6 VOLSER
r. APPC Accounting and Capacity Planning
i. OVERVIEW of APPC
Advanced Program-to-Program Communications/MVS (APPC/MVS) is the
MVS support for cooperative processing.
Two "peers" communicate using APPC/MVS services called "TP"s, or
transaction programs. Each MVS TP executes in its own ASID.
The interaction between two TPs (eg., a host TP and an OS/2 TP)
is called a conversation.
Each "peer" is called a partner in the conversation.
Once a conversation is established, the actual work consists of
sending or receiving data to or from the other partner.
The partner identification is the LUNAME (the VTAM "port" name
thru which communications flow). The requesting partner may be
"remote" to MVS (an OS/2 program), or "local" (TSO user or job).
The "partner" LU name is for the REQUESTOR of the TP, while the
"local" LU name is for the TP itself.
Two new address spaces execute for APPC/MVS:
"ASCH" the APPC Scheduler, and "APPC", the VTAM interface.
ii. APPC resources captured in type 30 (ASID) record.
Type 30 records contain eight new variables that capture the APPC
activity by any address space that is an APPC TP:
APPCATR Transactions scheduled by ASCH
APPCCN Total conversations (active plus deallocated)
APPCCNA Number of all conversation allocated
APPCDAR Bytes of data received by the TP
APPCDAT Bytes of data sent by the TP
APPCREC Receive calls issued by TP
APPCSEN Send calls issued by TP
APPCTAC Number of active conversations
SMF type 30 records will be written for the TP Address space,
the ASCH and APPC address spaces, and the MVS partner address
space (for step/job CPU, I/O, etc.). As the ASCH and APPC ASIDs
do not actually "use" APPC, their APPC.... variables are zero.
iii. New SMF type 33 APPC/MVS TP Accounting record.
Each APPC event is recorded in a type 33 accounting record with
contains the same APPC counters that are summarized in type
30s. Additional timestamps of the receipt, scheduling and
execution of the TP are provided, as are CPU times (only TCB and
SRB), I/O connect time and EXCP counts are captured:
ACCOUNTn - Accounting field (nth)
APPCCN - Number of conversations for this TP'
APPCCNA - Conversations allocated by this TP'
APPCDARS - Bytes received by this TP '
APPCDATS - Bytes sent by this TP '
APPCRECV - Received issued by this TP'
APPCSEND - Sends issued by this TP '
CPUSRBTM - CPU SRB duration
CPUTCBTM - CPU TCB duration
ELAPSTM - Elapsed duration
EXCPTOTL - EXCPS for this TP'
INPREQTM - Input request duration
IOTMTOTL - Device connect duration
LENACCTn - Length of nth accounting field
LOCLLUNM - Local LU name for this TP
NRACCTFL - Number of accounting fields
PARTLUNM - Nodename LU Name of partner
QUEUETM - SCHEDULER*QUEUE*DURATION'
RACFGRUP - RACF group identification <---- requestor
RACFUSER - RACF user identification <---- "
REQDTIME - Request recognized by FMH-5
SKEDTIME - Request placed on scheduler queue
SMFTIME - Datetimestamp when SMF record was buffered
SYSTEM - SMF system ID
TPCLASS - TP class
TPNAME - TP name
TPNDTIME - TP execution ended datetimestamp
TPROFILE - TP profile name
TPSKEDTY - TP scheduler type (standard/multi-trans)
TPSTTIME - TP execution started datetimestamp
TPUSECNT - Uses of this TP by this user
TPUSRTYP - TP user type (shell/user)
ZDATE - Zee date Zee obs was put in Zee PDB.
iv. The intervals between the four scheduling timestamps give this
picture of the events in the lifetime of an APPC task.
INPREQTM QUEUETM ELAPSTM
Waiting on Waiting on Executing
Scheduler TP queue
_____________ _______________ ____________
REQDTIME SKEDTIME TPSTTIME TPENTIME
Request Placed on Execution Execution
Received TP's queue Started Ended
A "Standard" TP is initialized for each inbound conversation
request and terminated at end of its processing. Resources are
allocated and deallocated for each inbound conversation request.
A "Multi-trans" TP remains active between inbound conversation
requests, with its resources already allocated. Subsequent
requests avoid the overhead of repeated allocation and
deallocation.
Initialization and termination processing for a multi-trans TP is
typically performed by the "Multi-trans Shell", surrounding the
part of the TP that holds conversations.
Separate type 33 records are written for "Shell" and "User".
The scheduler timestamps do not exist in the "Shell" record, but
CPU time and resources are captured in the type 33 shell data.
If the "Type of User" flag is 'shell' (the other choice is
'regular'), then this is the 'shell' record, and the "user id"
field is the ID if the "generic" user.
The "requestor" of the APPC work is identified by the "user ID"
and "group ID" pair of fields. Most APPC work will likely come
from a PC or a network, and not a TSO user or Batch job.
APPC transaction programs can bypass the IEFUAV accounting exit
by specifying TAILOR_ACCOUNT(NO) or by NOT specifying (YES).
Watch this integrity exposure that would allow a TP program to
disable its account validation! Read "The Cuckoo's Egg"!
v. Schematic representation of type 30 / 33 SMF records and their
subtypes for a multi-trans TP with shell:
--> Start GET GET GET RET GET GET RET End
__________________________________________________________
__________________________________________________________
SMF 30
for -1 -2 -3
TP init interval -4
-5
term
SMF 33 _________ ______ _____
for
shell -1 -1 -1
SMF 33 _______ _______ _____ ______ ______
for
user -1 -1 -1 -1 -1
/ \
/ \
/ \
/ \
Waiting on Waiting on Executing
Type 33 Scheduler TP queue
Scheduling ____________ ______________ _________________
Timestamps
Request Placed on Execution Execution
Received TP's queue Started Ended
This shows the three type 33's due to shell and the five type 33s
due to user GET activity. The final RET in the schematic can be
a real RET, but if the TP depends on the expiration of the "wait"
time for the GETTRANS, then there is a "logical" RETTRANS done on
its behalf.
When a multi-trans TP is ready to run a user request, it issues
a "GET-Transaction" GETTRANS to ASCH scheduler.
When a multi-trans TP shell does processing not directly related
to a user request it issues a "RETURN-Transaction" RETTRANS.
APPC conversation counts in SMF 30 and 33 are categorized:
APPCCN - Total conversations for this TP, both currently active
and deallocated. Count of all conversations that this
TP is involved in (both OUTbound and INbound).
APPCCNA - Total conversations ALLOCATED by this TP. The number of
OUTbound conversations that this TP has requested.
APPCTAC - Total active conversations that are still "open" when
the record was created. Will always be zero in step
or job termination record, wince by the end of step,
all conversations are closed.
APPCATR - Total transactions scheduled by ASCH (type 30 only).
This equals the total count of type 33 records that
will/could have been written.
vi. APPC Changes to TYPETASK, JESNR, & JCTJOBID may affect analysis.
SMF type 6,30,32,26, and 57 records contain the JCTJOBID field,
(named SMFnnJNM) that decodes into TYPETASK (JOB,STC,TSU) and
the five digit JESNR of the address space.
For APPC address spaces, the JCTJOBID contains an "A" followed
by a seven digit "JESNR", creating a TYPETASK of "A ".
This could cause your reporting programs to fail, if they use
TYPETASK for selection and did not protect for new values or
for seven-digit JES numbers.
This could also impact any "banner page" statistics written to
a job's SYSLOG from your IEFU83, IEFU84, and IEFU85 SMF exists.
vii. APPC support added APPC address space statistics to TYPE70.
APPC address spaces active (i.e., in initiation) are in
APPCMIN, APPCMAX, and APPCAVG, and with twelve buckets
APPC00-APPC11 that contain the percentage of time when 0,
1-3, 4-6, ... >36 APPC ASIDs were active, just like the
existing statistics and buckets for BAT, TSU, and STC
address spaces.
III. VM Technical Notes.
1. SHARE 76 Paper "VM/ESA Measurement Facilities"
H. W. Barry Merrill, PhD
President-Programmer
Merrill Consultants
Dallas, Texas 75229
Portions of this paper were presented/published at/in:
SHARE 76 San Francicso, CA Feb 27, 1991.
MXG Newsletter NINETEEN Apr 8, 1991.
VM/ESA changed the output data records from MONWRITE with new data
fields and new records, but because the changes were implemented
by IBM in a fully compatible manner, previous versions of your VM/XA
analysis software will not fail when they process the VM/ESA 1.1.0
(ESA Feature) records. This paper discusses the new measures, the
new file server measures captured in the new MONWRITE Application
Interface record, and snapshots a benchmark of a VM/ESA (ESA Feature)
MONWRITE interval on a 3090/600 with 4,800 logged on CMS users.
a. Fifteen existing datasets (records) that have new data values:
VM/ESA (ESA Feature) Monitor data is an enhanced version of VM/XA data,
with the same names for datasets, variables and IBM fields, so you will
have nothing to change in your reports until you want the new data.
VXSYTXSP New variables PLSPGMRD,PLSPGMRX,PLSPGXRD,PLSPGXWT added with
page reads/writes to/from ESTORE/AUX due to page. This is
translations/migrations. This is an interval record.
VXSYTASG SALPRFAV,SALPRFIU are now reserved (were Preferred Paging),
new variables for page/spool average/total MLOAD value:
CALTOTM1,M2, CALAVGM1,M2). Interval.
VXSYTCOM New variable count IUCVs (good to/from, and bad to the
services: SYSTEM, CRM ACCOUNT,LOGREC,IDENT,CONFIG, and SPL.
Twenty-one counters: PLSIS+{E,T,U}+{SY,CR,AC,LO,ID,CF,SP}.
VXMTREPR New flag if Application Domain Event is active, and CONFIG
time limit variable.
VXMTRPAG DDIPREF now reserved (Pref. Paging Flag) DDIPPCYL renamed
RDCPCYL, and RDEVSID, Host Subchannel ID was added.
VXMTRSPR New flag if Application Domain Sample is active, and CONFIG
time limit variable.
VXMTRSCH New SRMWSSMP for SET SRM MAXWSS value.
VXSCHDDL New VMDLRGST if user prempted for storage.
VXSCLSRM New SRMWSSMP for SET SRM MAXWSS value, New SRMWSSMP for SET
SRM MAXWSS value, and VMDSCDF1 was replaced with VMCQDSPU.
VXSTORSG New CALASCRT,CALASCFT,CALASCUT for paging virtual segment
control (reorgs, unused and used pages).
VXSTORSP New PLSPGDRD,PLSPGDWT for page tables paged to/from
auxiliary storage.
VXSTOASP New EXPDEVST,EXPMLOAD,CPVLOKAT,CPVALOCD with paging device
service time, MLOAD, scans for allocations, actual
allocations, and twenty EXPCON01-EXPCON20 tabulating how
many times that many contiguous slots were available.
VXSTOATC DDIPREF now reserved, CALPAGCY renamed to RDCPCYL, and
RDEVSID added.
VXUSEACT VMDCTPPS (Pref Page Slots) deleted.
VXIODCAD New CALPSF data for 3990-3 status bytes.
b. Five new records create these new datasets:
VXSTOASS Auxiliary Shared Storage Sample Data record describing
resources from the CP-owining a shared volume (PAGE/SPOOL
READs/WRITES, queue length, and SSCH+RSCH counts).
VXIODATS Attach Shared Device Event Data record, which contains
exactly the same data as the existing VXIODATD Attach
(non-shared) Device dataset.
VXAPLEDT Application Event Data record, with a variable length string
of installation/application created event data, domain 10
record 1. No IBM application currently uses this new event
data interface.
VXAPLSDT Application Sample Data record with a variable length string
of installation/application created interval data, domain 10
record 2. IBM applications do now use this new interface
but they are recognized by MXG and create the new VXAPLSRV
dataset described below.
VXAPLSRV IBM's use of Application Sample Data to record "Server
Monitor Records". Both SFS file pool servers and CRR
recovery servers use the APPLDATA class call to provide 123
counters or clocks that are listed below. MXG converts all
counters to rates per second (which are, by an MXG
convention, formatted 7.1 to so indicate that they are
rates), but the clocks are kept in units of seconds during
the sample interval (and formated TIME12.2 to so indicate).
The VMDUSER (VM User ID) must be used to identify which
server created the application data:
Server-ID Observation contains
VMSERVR CRR (Counters 103-116 are only
for CRR, and 114 will be
always non-zero if CRR).
VMSERVS SFS (System owned file pool)
VMSERVU User (User owned file pool)
The following list of variables created from
these servers using the new application data
interface clearly is a major enhancment in
the measurement and management of the shared
file system and other future file servers:
DEDMTFLG Dedicated maintenance mode SRVCN061 Logical u-o-work rollback
FIRSTR 1st record since diage dc SRVCN062 SAC calls
MDGPROD Application release SRVCN063 Stor group explicit lock
SRVCN001 Active agents highest value SRVCN064 File space explicit lock
SRVCN002 Virtual storage highest SRVCN065 Lock conflict, dir. exp.
SRVCN003 Virtual storage requests SRVCN066 ", File explicit
SRVCN004 Checkpoints taken SRVCN067 ", Storage group logical
SRVCN005 Checkpoint time SRVCN068 ", File space logical
SRVCN006 Security manager exit calls SRVCN069 ", Directory logogical
SRVCN007 Security manager exit time SRVCN070 ", File logical
SRVCN008 Ext. security mgr exit call SRVCN071 ", Catalog
SRVCN009 Ext. security mgr exit time SRVCN072 Lock wait time
SRVCN010 Add storage requests SRVCN073 Deadlocks
SRVCN011 Cache release requests SRVCN074 QSAM requests
SRVCN012 Change threshold requests SRVCN075 QSAM time
SRVCN013 Close directory requests SRVCN076 File blocks read
SRVCN014 Close file requests SRVCN077 File blocks written
SRVCN015 Commit requests SRVCN078 Catalog blocks read
SRVCN016 Connect requests SRVCN079 Catalog blks written
SRVCN017 Create alias requests SRVCN080 Cntl minidisk blks read
SRVCN018 Create directory requests SRVCN081 Cntl minidisk blks writ
SRVCN019 Delete directory requests SRVCN082 Log blks read
SRVCN020 Delete file requests SRVCN083 Log blks written
SRVCN021 Delete storage requests SRVCN084 BIO req to read file blks
SRVCN022 File copy requests SRVCN085 BIO req to write file blk
SRVCN023 Get directory requests SRVCN086 BIO req to read cat blks
SRVCN024 Get directory entry req SRVCN087 BIO req to write cat blk
SRVCN025 Grant administrator auth SRVCN088 BIO req to read cntl mdsk
SRVCN026 Grant authorization req SRVCN089 BIO req to write cntl
SRVCN027 Grant user connect req SRVCN090 Total BIO request time
SRVCN028 Lock requests SRVCN091 I/O req to read file blk
SRVCN029 Open directory requests SRVCN092 I/O req to write file blk
SRVCN030 Open file new requests SRVCN093 I/O req to read cat blks
SRVCN031 Open file read requests SRVCN094 I/O req to write catalog
SRVCN032 Open file replace requests SRVCN095 I/O req to read cntl mdks
SRVCN033 Open file write requests SRVCN096 I/O req to write cntl
SRVCN034 Query administrator req SRVCN097 Release blks requests
SRVCN035 Query connected users req SRVCN098 Temporary close requests
SRVCN036 Query enrolled users req SRVCN099 SFS send user data reques
SRVCN037 Query lock conflict req SRVCN100 Prepare requests
SRVCN038 Query file pool requests SRVCN101 Change file attribute
SRVCN039 Query user space requests SRVCN102 Highest maxconn user
SRVCN040 Read file requests SRVCN103 Get capability requests
SRVCN041 Recovery close catalog req SRVCN104 Get log name requests
SRVCN042 Recovery get catalog req SRVCN105 CRR get LUWID requests
SRVCN043 Recovery open catalog req SRVCN106 Resync initial requests
SRVCN044 Recovery put catalog req SRVCN107 Resync protocol viol reqs
SRVCN045 Refresh directory req SRVCN108 Resync query dir requests
SRVCN046 Relocate requests SRVCN109 CRR write log requests
SRVCN047 Rename requests SRVCN110 CRR request service time
SRVCN048 Revoke administrator auth SRVCN111 Number of sync points
SRVCN049 Revoke authorization req SRVCN112 SYNC point time
SRVCN050 Revoke user requests SRVCN113 Partresc CRR write log rq
SRVCN051 Rollback requests SRVCN114 CRR log checkpoints taken
SRVCN052 Unlock requests SRVCN115 CRR log i/o requests
SRVCN053 Write accounting requests SRVCN116 CRR bio request time
SRVCN054 Write file requests SRVCN118 DIRATTR requests
SRVCN055 Filepool request srvc time SRVCN119 Query accessors requests
SRVCN056 Remote file pool requests SRVCN122 Dir cntl res lock confl
SRVCN057 Alias definitions examined SRVCN123 Deadlocks caused rollback
SRVCN058 Alias definitions updated SVMSTAT Option svmstat in dir?
SRVCN059 Begin logical units of work VMDUSER Server identification
SRVCN060 Agent holding time
32 c. Rate Per Second Perspective
The following table compares the rate at which "things" happen in the
real world, and the rate at which some man-made objects function in that
real world. I have found insight when I look at the rate at which
things happen!
Rate per Duration between
Activity: Second Events
(Hz) milli micro nano
sec sec sec
Build MXG tapes (at 400 per hour) .111 9000
VM/ESA HF Sample taken every 2 sec .5 2000
Send 3270 screen at 9600 baud .666 1500
Sub-second response event 1 1000
Eyeblinks 8 125
MVS/ESA RMF/SRM Sample taken 20 50
Movie Frames Per Second 30 33
Maximum ful-track I/Os to 3380 56 17
CRT Flicker Visible 57 17
DASD rotation (at 3600 rpm) 60 16
CRT Flicker Disappears 72 13
VM/ESA Trivial+NoTrivials Trans 224 4
VM/ESA Slot Searches 318 3
VM/ESA PG Moves 1,700 588
VM/ESA Simulated Instructions 6,800 147
VM/ESA Instructions from SIE 10,000 100
Software Timer Units (TUs) 38,400 26
CICS Clock Ticks 62,500 16
TOD Clock Ticks 1,000,000 1
30 MIPs Engine instruction 30,000,000 33
Thanks to Judy for a comment about persistence of movie film that
caused me to put this tabulation together.
d. VM/ESA (ESA Feature) Benchmark Data
This analysis of data is from VM/ESA (ESA Feature) MONWRITE output using
MXG 8.8 and only PROC PRINTs and PROC MEANs of the VMXAINTV & VXAPLSRV
data sets. The hardware platform, a 3090-600 class machine under stress
has 4,800 logged on (simulated) CMS users. Note how few pages of output
is need to characterise this system.
Output from PROC MEANS DATA=VXAPLSRV MAX SUM MEAN;
217 obs for 30 intervals 7 servers
max sum mean
-----------------------------------------------------------------
005 CHECKPOINT*TIME 0.20 18.53 0.08
014 CLOSE*FILE*REQUESTS 22.03 2056.48 9.47
016 CONNECT*REQUESTS 0.41 32.75 0.15
020 DELETE*FILE*REQUESTS 5.21 491.86 2.26
028 LOCK*REQUESTS 1.30 127.59 0.58
030 OPEN FILE*NEW REQUESTS 0.16 8.06 0.03
031 OPEN FILE*READ*REQUESTS 13.86 1178.29 5.42
032 OPEN FILE*REPLACE*REQUESTS 8.62 750.30 3.45
033 OPEN FILE*WRITE*REQUESTS 1.34 119.70 0.55
039 QUERY*USER SPACE*REQUESTS 1.30 110.31 0.50
040 READ*FILE*REQUESTS 13.19 1187.22 5.47
045 REFRESH*DIRECTORY*REQUESTS 0.84 65.28 0.30
047 RENAME*REQUESTS 0.36 25.42 0.11
052 UNLOCK*REQUESTS 1.38 128.13 0.59
054 WRITE*FILE*REQUESTS 7.77 663.34 3.05
055 FILE POOL*REQUEST*SERVICE TIME 10.50 774.54 3.56
059 BEGIN*LOGICAL*UNITS OF WORK 26.83 2626.28 12.10
060 AGENT*HOLDING*TIME 12.76 968.83 4.46
062 SAC*CALLS 323.21 32332.62 148.99
071 CATALOG*LOCK*CONFLICTS 1.59 42.24 0.19
072 LOCK*WAIT*TIME 0.18 3.21 0.01
076 FILE*BLOCKS*READ 52.99 4912.81 22.63
077 FILE*BLOCKS*WRITTEN 34.15 3032.45 13.97
078 CATALOG*BLOCKS*READ 23.09 2251.14 10.37
079 CATALOG*BLOCKS*WRITTEN 16.96 1455.10 6.70
081 cntl*MINIDISK*BLOCKS WRITTEN 6.14 583.24 2.68
083 LOG*BLOCKS*WRITTEN 21.01 2291.50 10.55
084 BIO REQ TO*READ FILE*BLOCKS 27.47 2620.48 12.07
085 BIO REQ TO*WRITE FILE*BLOCKS 16.86 1512.56 6.97
086 BIO REQ TO*READ CATALOG*BLOCKS 23.09 2251.14 10.37
087 BIO REQ TO*WRITE CATALOG*BLOCKS 16.96 1455.10 6.70
089 BIO REQ TO*WRITE CONTROL*MDISK blk 0.20 20.00 0.09
090 TOTAL*BIO REQUEST*TIME 2.88 234.32 1.07
091 I/O REQ TO*READ FILE*BLOCKS 29.59 2674.68 12.32
092 I/O REQ TO*WRITE FILE*BLOCKS 21.55 1968.02 9.06
093 I/O REQ TO*READ CATALOG*BLOCKS 23.09 2251.14 10.37
094 I/O REQ TO*WRITE CATALOG*BLOCKS 16.96 1455.10 6.70
096 I/O REQ TO*WRITE CONTROL*MDISK BLK 0.38 37.09 0.17
Statistic Event Total Rate
Count Percent Seconds Per
Second
Duration of Interval 60
Users Logged On 4,807
Active Users 819
Quickdisp 80
UP Trivials 6,330
UP Non-Trivials 7,143
CPU (6) Busy 91.3 328
System Code 8.0 29
User Code 83.2 300
Emulation Mode 184
TTIME 299
VTIME 182
Resume Subchannels 99.8
Solicited Interrupts 487.7
Start Subchannels 384.9
VIO Requests to DASD 285.4
Read Operations for Sys Paging 237.4
Write Operations for Sys Paging 188.4
Page Faults on Host from Guest 51.4
Page Faults on Guest Pages 50.9
Read Pages 184.7
Write Pages 114.2
Users Logged On 4,807
Active Users 819
Max in PLDV 84
Users in Dispatch 171 ---> close to 177, sampled.
" Console Wait 2
" Running on Real 3
" In Real CPU Wait 94
" In I/O Wait 18
" Quickdisp 7
" Simulate Wait 26
" Test IDLE 27
" Sub Total 177 ---> close to 171, sampled.
Users Loading 2
Users Dorm in Dorm 4,636
Users Dorm in Elig 0
Q1+Q2+Q3 in Dispatch 162
Q2+Q3 in Dispatch 45
Q3 in Dispatch 18
Prempts from Q0 for E1 108.4
Diagnose X98 Issued 57.3
Pages Migrated ESTORE to DASD 236.7
Pages Written to ESTORE 1671.7
Pages Read in from ESTORE 1436.8
VMDBKs In PLDV When Not Empty 14.9
Times PLDV Had No VMDBKs 436.7
VMDBKs Moved to Master 1,074.6
Long Paths Thru Dispatcher 8,137.2
Interceptions from SIE 8,667.1
Instructions from SIE 10,289.9
Unsolicited Interrupts 23.5
External Interrupts Received 1,931.7
IBM Supplied Diagnose Issued 2,576.6
Simulated Instructions 6,815.1
Frame List Reorders 41.7
VMDBKs Stolen total--> 2,194.6
" " ->in CPU# 0 1 2 3 4 5
Rate 462. 448. 418. 385. 394. 56.
VM/ESA Memory measures (Virtual, Expanded and Central, and Auxiliary)
GB MB KB
Slots Allocated for Paging 10G
Slots In Use for Paging 1060M
Slots Alloc for Spool 4143M
Slots in Use by Spool 168M
Free Storage Extend Frames 47M
Free Storage Available 9124K
Free Storage In Use 7995K
Frames In Use for Saveareas 888K
Resident Shared Frames 4432K
Size of Dynamic Area DPA 420M
Frames on Available List 2320K
Times Avail List Became Empty 3
Avail List High Threshold 3608K
Avail List Low Threshold 408K
Non Pageable Frames 80M
Pageable Frames 501M
Pages Locked in 31-bit Mode 540K
XSTORE Blocks in CP Partition 2048M
Estore Blocks Released w/o I/O 12M
Avail XSTORE Note In Use 6192K
Rate/sec
Migrate Invocations 0.8
Migrate Unreferenced Blocked Pages 51.9
Stolen Unreferenced Blocked Pages 33.6
Single Reads for a Guest 10.7
Single Reads for the System 26.6
XSTORE Allocations 1,787.2
XSTORE Deallocations 1,854.0
IUCV Receive Queue 31.3
IUCV Send Queue .1
Device SSCH+RSCH 485.0
RDEV Locks Deferred .2
RDEV Locks Granted Immed 902.7
Solicited Interrupts 488.1
Unsolicited Interrupts 23.4
DASD statistics Seconds MPL msec per I/O
Device Connect Duration 163.97 2.73 5
Device Disconnect Duration 370.76 6.18 13
Device Pending Duration 15.10 .25
IUCV activity From To Bad
(rate per second)
BLOCKIO 320.4 344.4
MSG
MSGALL 8.0
MONITOR
RPI
CP System Service 1,241.9 1,209.6 83.7
CCS 361.6 377.9
SIGNAL 123.8 123.8
Virtual Machine 1,239.2 1,207.7 83.7
File Pool Statistics in VXAPLSRV data
-------User File Pool Servers----
SRV2 SRV4 SRV7 SRV8
005 CHECKPOINT*TIME .190 .191 .188 .174
014 CLOSE*FILE*REQUESTS 22.0 15.1 15.6 16.8
016 CONNECT*REQUESTS .2 .1 .1 .1
020 DELETE*FILE*REQUESTS 4.3 3.6 3.2 5.1
028 LOCK*REQUESTS .9 1.2 1.1 1.1
030 OPEN FILE*NEW REQUESTS .1 .1 .1 .1
031 OPEN FILE*READ*REQUESTS 13.9 8.8 9.3 7.7
032 OPEN FILE*REPLACE*REQUESTS 6.7 5.1 5.6 7.9
033 OPEN FILE*WRITE*REQUESTS 1.2 1.0 .9 .9
039 QUERY*USER SPACE*REQUESTS .5 .8 .9 .7
040 READ*FILE*REQUESTS 10.8 9.5 10.0 11.7
045 REFRESH*DIRECTORY*REQUESTS .6 .4 .4 .2
047 RENAME*REQUESTS .2 .1 .2 .2
052 UNLOCK*REQUESTS 1.0 1.2 1.2 1.2
054 WRITE*FILE*REQUESTS 5.6 5.5 5.9 6.9
055 FILE POOL*REQ*SERVICE TIME 7.437 8.003 7.466 8.024
059 BEGIN*LOGICAL*UNITS OF WORK 26.8 19.1 20.0 19.8
060 AGENT*HOLDING*TIME 9.037 9.412 8.742 10.066
062 SAC*CALLS 320.2 242.0 243.4 283.3
071 CATALOG*LOCK*CONFLICTS .1 .6 .5 .5
072 LOCK*WAIT*TIME .007 .026 .027 .057
076 FILE*BLOCKS*READ 47.1 38.5 41.5 45.6
077 FILE*BLOCKS*WRITTEN 26.2 24.4 24.6 31.5
078 CATALOG*BLOCKS*READ 19.6 18.0 19.9 18.5
079 CATALOG*BLOCKS*WRITTEN 8.0 13.0 16.4 12.2
081 CONTROL*MDISK*BLKS WRITTEN 3.6 6.1 5.9 5.9
083 LOG*BLOCKS*WRITTEN 20.8 17.0 16.7 19.7
084 BIO REQ TO*READ FILE*BLKS 27.3 19.3 22.1 21.8
085 BIO REQ TO*WRITE FILE*BLKS 13.4 11.5 12.2 16.0
086 BIO REQ TO*READ CTLG*BLKS 19.6 18.0 19.9 18.5
087 BIO REQ TO*WRITE CTLG*BLKS 8.0 13.0 16.4 12.2
089 BIO REQ*WRT CNTL*MDISK BLKS .2 .2 .2 .2
090 TOTAL*BIO REQUEST*TIME 2.213 1.903 2.139 2.259
091 I/O REQ TO*READ FILE*BLKS 28.0 18.9 21.5 23.1
092 I/O REQ TO*WRITE FILE*BLKS 17.8 13.9 14.9 21.4
093 I/O REQ TO*READ CTLG*BLKS 19.6 18.0 19.9 18.5
094 I/O REQ TO*WRITE CTLG*BLKS 8.0 13.0 16.4 12.2
096 I/O REQ*WRT CNTL*MDISK BLKS .4 .4 .4 .4
The documentation of the VM/ESA Monitor records will now be only
in "softcopy", and will be unloaded at install into a file
named MONITOR LIST1403 on your base CP object disk (194). The new
documentation contains an excellent table that details changes made to
the content and format of the monitor records, including the many
APARs that are a part of VM/XA. But the file I got, offloaded to tape
was not readable with any MVS utility I had ever seen. Any ideas?
A big thanks to IBM for making documentation available so early; it's
nice to not have to play "catch-up".
IV. SAS Notes.
1. SAS 6.06 has been repaired, and can be safely used.
SAS 6.06 has finished its shakedown cruise, and shipyard repairs have
been made, and the SAS Usage Note tape for March (or later) can now
be safely and easily installed. (Starting in February, SAS now ships
a load library on that tape which contains 100% pre-applied SAS ZAPs
for all SAS products. A SAS 6.07 will likely exist by year end, but
THERE IS NO LONGER ANY REASON TO WAIT. ALL MXG-critical problems are
fixed by the March tape. Furthermore, SAS 5.18 sites that have made
extensions to BUILDPDB may find that their program is now too large
for the SAS 5.18 compiler (Error 344) which can only be eliminated
by execution under SAS 6.06 or later.
See Change 7.038 in member CHANGE07 for 344 error circumvention.
MXG NOW RECOMMENDS MIGRATION TO SAS 6.06 WITH SAS's MARCH 6.06 TAPE.
2. SAS 6.06 and 5.18 options now REQUIRED by MXG 8.8.
Please read this section carefully. MXG execution will fail if you
do not pay attention to these (potentially incompatible) changes:
MANDATORY OPTIONS with either SAS Version 5.18 or 6.06:
NOIMPLMAC MAUTOSOURCE SASAUTOS=SOURCLIB ERRORABEND MACRO DQUOTE
MANDATORY OPTIONS with SAS Version 5.18 that do not exist in 6.06:
MWORK=28000 GEN=0
MANDATORY OPTION with SAS Version 6.06 that does not exist in 5.18:
MEMSIZE=12M
RECOMMENDED Options with either SAS Version 5.18 or 6.06:
FIRSTOBS=1 OBS=MAX
NOSOURCE NOSOURCE2 NOMACROGEN NOMPRINT NOMLOGIC
SAS Version 5.18 requires the MACRO and MWORK=28000 options to be on
the EXEC statement, but all other mandatory/recommended options can be
specified in a SAS OPTIONS statement before your %INCLUDE statements:
a.) //stepname EXEC SAS,OPTIONS='MACRO MWORK=28000'
//SYSIN DD *
OPTIONS
NOIMPLMAC MAUTOSOURCE SASAUTOS=SOURCLIB
DQUOTE ERRORABEND
GEN=0
FIRSTOBS=1 OBS=MAX
NOSOURCE NOSOURCE2 NOMACROGEN NOMPRINT NOMLOGIC;
However, so you (and I) don't have to type all those options each time
we run an MXG 8.8 program under SAS 5.18, member SASOPTV5 was built and
it MUST be %INCLUDEd each time you execute under SAS 5.18:
b.) //stepname EXEC SAS,OPTIONS='MACRO MWORK=28000'
//SYSIN DD *
%INCLUDE SOURCLIB(SASOPTV5);
... the rest of your program ...
IF YOU DON'T HAVE THE RIGHT OPTIONS IN EFFECT, YOU WILL RECEIVE
RUDE AND INSULTING SAS ERROR MESSAGES, INCLUDING 180 ERRORssss!
For SAS Version 6.06+, options are supplied via an OPTIONS statement,
via the CONFIG DDname, or (as is now MXG's recommendation), via the
CONFIG= JCL parameter on the EXEC statement. MXG 8.8 member CONFIG
contains the MXG-required options (CONFIG is a changed copy of BATCHXA
config member on the SAS distribution tape). In previous Newsletters
and sample JCL, MXG had used the CONFIG DDname, but because different
sites have their JCL procedure DD statements in different sequences,
and since overrides have to be EXACTLY in the right order, it is now
clear that specifying CONFIG='MXG.SOURCLIB(CONFIG)' on your EXEC
statement is far safer to ensure the correct options are in effect:
// EXEC SAS606,TIME=10,
// CONFIG='MXG.SOURCLIB(CONFIG)'
These are the required options added to BATCHXA to create CONFIG:
NOIMPLMAC MAUTOSOURCE SASAUTOS=SOURCLIB MEMSIZE=12M
FULLSTATS STIMER
The MEMSIZE=12M parameter only works with MVS/XA and MVS/ESA. In almost
all of my tests, 12M was sufficient. The exceptions were when BUILDPDB
was "tailored" and many additional SMF records were added to BUILDPDB
using the EXPDB... exit facility. One large site with heavy user SMF
record additions to BUILDPDB reported they needed 24MB. Since this is
all virtual storage, and above the line, and only during the "build"
phase in MXG processing, it should not cause a problem. If you really
are limited in virtual storage (or are trying to execute MXG 8.8 with
SAS 6.06 under MVS/370) you can significantly reduce the virtual memory
requirement by specifying BLKSIZE=4096 or even 1024. Small blocks will
reduce the virtual memory size, but can significantly increase the real
CPU time, run time, I/O interrupts, and the amount of real memory used.
See the paper on blocksize in Chapter 42 of the MXG Guide.
3. Format library differences between MVS SAS 6.06-5.18.
The MXG-built "SASLIB" formats are built by the first step of either
JCLTEST (for SAS 5.18) or JCLTEST6 (for SAS 6.06).
Under SAS Version 5.18, formats are members of a PDS load library
which must be allocated as SPACE=(CYL,(3,1,99)).
SAS 5.18 formats are always referenced using the DDname of SASLIB.
Under SAS Version 6.06, formats are members of a SAS data library,
which must be allocated as SPACE=(CYL,(1,1)). Note there is NOT
a third parameter in SPACE (for PDS directory blocks) because data
libraries in SAS 6.06 are physical sequential files.
SAS 6.06 formats are always referenced using the DDname of LIBRARY.
In either version of SAS, the blocksize is set by the PROC FORMAT.
MXG always requires the appropriate DDname (SASLIB or LIBRARY).
You will fail with SAS 170 FORMAT NOT FOUND errors if you do not
have the correct format library pointed to by the correct DDname.
4. CMS-MXG Installation and Execution Considerations.
a. CMS Format libraries are different.
MXG Formats are created under SAS 6.06 by executing member FORMATS,
which creates a SAS Catalog that is named 0FORMATS LIBRARY (yes, the
first character is a numeric zero and the third an alphabetic "oh").
Since this catalog contains all of the MXG Formats, the installation
instructions on page 120 of the MXG Supplement ("iv. Optionally copy
TEXT into TXTLIB") no longer apply. Also the SASLIB SASLIB option in
the example is not used to access SAS 6.06 Formats (although SASLIB
SASLIB is still valid in SAS 6.06 to access SAS 5.18-built formats).
As long as the 0FORMATS LIBRARY file built by member FORMATS is on
your first disk, SAS 6.06 will automatically find MXG formats there.
b. Virtual Storage requirement for MXG and SAS 6.06 with VM/370.
Executing under VM/370, MXG 8.8 needed a 10MB machine for BUILDPDB.
It is necessary to use the NOSSEG option to disable the "SAS Saved
Segment" to use addresses above 7MB, because the SAS Saved segment
begins at address 7MB! The NOSSEG only applies to this machine,
and is needed only for the big virtual memory programs that build
lots of MXG datasets simultaneously (like VMACVMXA, VMACVMON, etc.).
The rest of MXG needs only a 4MB machine under VM/360.
The BLKSIZE is set small in the REXXTES6 exec, so that the virtual
storage required for the biggest MXG programs (BUILDPDB) would fit in
the 10 meg I could get under VM/370, but you should experiment to use
the largest BLKSIZE you can (and still compile the data step!). Small
block size reduces only the virtual storage size; a large block size
will reduce CPU time, elapsed time, I/O interrupts, and will actually
reduce the real memory required (always true for sequential access,
and building SAS datasets with MXG is a sequential process)!
Executing under VM/XA, MXG 8.8 was tested in a 16MB machine.
c. CMS SAS 6.06 ZAPs required.
SAS ZAPS Z6062068 (add) and Z6060508 (remove) appear to solve the
only serious CMS SAS 6.06 problem. Without the zap, CMS MACLIB
CONCAT concatenation fails, and you cannot read members from the
second concatenation.
d. CMS Testing Notes.
The REXX exec that was used for MXG testing with CMS SAS was printed
in MXG Newsleter EIGHTEEN and is contained in member REXXTST6.
Before the exec is invoked, you must first issue the DEFINE STOR 10M
command, followed by the IPL CMS command. All datasets are sent to
your "T" disk, a temporary disk (199 cylinders in the exec) that will
go away at logoff, unless you use the USER= SAS option, or PROC COPY.
One Irritating problem in my testing of MXG with CMS is IBM's fault:
There is no CMS equivalent for "DD DUMMY" or NULLFILE. Under MVS,
NULLFILE lets me syntax check all MXG code by dummying input files.
Under CMS I had to create pseudo records (but with RECFM=VB, instead
of RECFM=VBS) because of Another Irritating IBM feature:
CMS only partially supports the VBS record format:
CMS only reads, and can not create/write/copy VBS files, and
CMS ABENDs if it gets an SMF record with LRECL=32760.
All this, to verify that ALL of MXG executes under SAS/CMS, for those
sites who have only a SAS/CMS license and use MXG to process both the
VM and SMF data under CMS.
5. SAS Input formats for times and timestamps.
A problem with CICS time stamps caused me to tabulate my experiences
and explain those funny calculations in MXG for timestamp values.
Time/Timestamp Format Clock Tick Statistics
Counts per Pulse duration
Second (microsec)
Store Clock, STCK TODSTAMP8. 1,000,000 1
-eight bytes MSEC8.
-bit 51=microsec PIB8.6/4096
-bit 63=244 picosec
-bit 31=1.048576 secs
IBM says "SHIFT RIGHT 12 BITS" which is exactly that divide by 4096,
and MXG's .6 in PIB8.6 is the "divide by 100000" to get seconds from
the microseconds.
Store Clock, STCK IB4.*1.048576 .953674316 1.048576
-high order four
bytes as duration
Timer Units, TU TU4. 38400 26
PIB4. /38400
CICS Clock 4 bytes 16*PIB4.6 62500 16
PIB4. /62500
Note: these are the four MMMM bytes in hhMMMMll eight bytes.
CICS Clock 8 bytes 16*PIB8.3/65536 62500 16
PIB8.3/4096
SMF Timestamp SMFSTAMP8. 100 10,000
RMF Duration RMFDUR4. 1000 100,000
A value of 'FFFFFFFFFFFFFFFF'x is correctly input with TODSTAMP8
to produce the value 17SEP2042:23:53:47.370495.
A value of 'FFFFFFFFFFFFFFFF'x is correctly input with PIB8.
to produce the value 2.55000E-06.
A value of 'FFFFFFFFFFFFFFFF'x is correctly input with IB8.
to produce the value -1.00000E08.
/* The below comments for 5.18 and 6.06 are no longer true. They
are kept for historical reasons. Probably fixed in Version 8.
SAS Version 5.18 does not support all possible values of some of its
time formats. The MSEC8. input format is set missing for a value of
2**49 or greater. The TODSTAMP8. format is zero for values less than
2**25. The difference between a TODSTAMP8. and '01JAN1960:00:00'DT
(the literal for the number of seconds between the IBM 1900 clock
and the SAS 1960 clock) should exactly match the TODSTAMP8. field if
had been INPUTed as MSEC8., but it doesn't; the difference remains a
zero until the field value is 2**12 or greater. The TU4. format is
correct for all values except 'FF...FF'X, which is set missing!
SAS Version 6.06 does better, but is still not perfect. The MSEC8.
input format is no longer missing for large values. However, a value
of 'FF...FF'X cause TODSTAMP, MSEC8, and even PIB8. to now
have a value of zero (which prints Jan 1, 1960 for a SAS timestamp!)
whereas SAS 5.18 correctly handled this maximum binary value!
Because SAS formats are not perfect, the only truly safe algorithm
is to use the PIBy.x input format with the appropriate arithmetic
operation, which more reliably produces the correct values.
6. "Close" of data libraries was changed by SAS 6.06.
SAS 6.06 has changed when SAS data libraries are "closed", and this
change can cause PROC RELEASE DDNAME=XYZ to fail under SAS 6.06.
This redesign will also change how many type 14/15 SMF records are
written for a SAS job, since they are only written at "close" time.
Under SAS 5.18, all SAS data libraries were closed at the end of
each SAS data step or PROC step. This caused a type 14/15 SMF data
record to be written, and even without enabling the SAS User SMF
record, you could examine those close records and determine which
part of a complex SAS program took how much elapsed time. In SAS
6.06, work data sets are NO LONGER closed between data/PROC steps.
This reduces the overhead associated with OPEN/CLOSE, and may be
wise, but it does change what happens! There is an undocumented
option, $LIBCLEAR, that will make SAS 6.06 act like SAS 5.18 and
cause datasets to be closed as before, but it is suggested that
you DO NOT use that option, as it clearly will increase SAS 6.06
execution costs.
The only real incompatibility seen so far occurs with PROC RELEASE.
In SAS 6.06, you must preceed each PROC RELEASE DDNAME=XYZ; with a
LIBNAME XYZ CLEAR; statement, to close the XYZ fileref (and, if
XYZ was dynamically allocated, the CLEAR also deallocates the XYZ
fileref), because PROC RELEASE cannot release space if the dataset
is still open. Instead of the LIBNAME XYZ CLEAR; statement (which
requires a change to your source program), you can alternatively
execute the PROC RELEASE in a separate MVS JCL step.
V. Documentation of MXG Software.
Member CHANGES always contains the version number of MXG Software, and
it lists changes that were installed in that version. Several members
named CHANGEnn are the contents of changes when that "nn" MXG version
was created. Details on enhancements will be found in the text of the
Change description that made the enhancement (in those CHANGES and
CHANGEnn members). The CHANGE members can also be scanned online (with
SPF BROWSE) to search for specific product name references (CICS,
MVS/ESA, etc.). The text of each Change identifies the member(s) that
were altered or added by that change, and documentation (especially for
new product support) is often found in comments at the beginning of
those named members.
Member NEWSLTRS contains the text of all newsletters (up through the
newsletter that accompanied that MXG release). You can search NEWSLTRS
for product name or acronym to find the technical notes, APARs, etc.
from all MXG newsletters. (The Change Log of each Newsletter is not
replicated in member NEWSLTRS, since that text will be in CHANGES).
Member DOCVERnn is the "delta-documentation" (in abbreviated Chapter
FORTY style) of only those variables and datasets that were changed
between successive MXG Versions. There is a DOCVERnn "delta" member in
the MXG library for each version.
Penultimately, member DOCVER contains abbreviated Chapter FORTY format
that documents all of the 26,355 variables from the 791 MXG data sets
that can be created by that MXG Software Version (alphabetically by data
set name and variable name).
Finally, MXG is a source distributed system, so you can often find your
answer by BROWSE/EDIT of the source member, especially the VMAC...'s
that actually create the data set, or ANAL....'s that analyze the MXG
datasets. In many instance, the MXG Variable is the IBM or Vendor's
documented field name. In other cases, the IBM field name is carried as
a comment beside the MXG variable that contains that information. In
all cases, you should also have the Vendor's documentation of the
particular data record you are using for analysis.
VI. MXG Version 8.8 Installation, Space, Compatibility, etc.
MXG Compatibility Exposures in MXG Version 8 for Existing Users:
a. The SAS options required by MXG for execution have changed.
b. Execution under SAS 6.06 is different than under SAS 5.18.
c. To create your PDB directly on tape, IMACCICS must be changed.
d. If you have added additional SMF record processing to BUILDPDB,
and you still execute MXG under SAS 5.18, you may encounter a
SAS Version 5.18 Compiler Limit "344" error. BUILDPDB is larger.
See Change 7.038 in member CHANGE07 for 344 error circumvention.
Always read comments in the CHANGES member for compatibility issues, as
well as for any last minute changes added after Newsletter composition.
1. Installation, re-installation, and Space Requirements.
The MXG Installation instructions were found in Chapter 32 of the MXG
Supplement for both new installation and for version replacement, and
those instructions, plus this discussion, is still usable. MXG SOURCLIB
member INSTALL will be a complete rewrite of Installation Instructions
for MXG, consolidating both Chapter 32s and these notes. After you have
unloaded MXG 8.8 SOURCLIB and read these notes, read member INSTALL.
This MXG tape is distributed as a Non-Labelled (NL) tape with a single
file, DCB=RECFM=FB,LRECL=80,BLKSIZE=6160, that is actually an unloaded
Partitioned Data Set containing 1360 members (and about 296,242 source
lines) in IEBUPDTE format.
Under MVS use the IEBUPDTE utility to build the MXG.SOURCLIB library.
Under CMS use the TAPPDS command to build the SOURCLIB MACLIB library.
Under MVS, MXG Version 8.8 MXG.SOURCLIB requires SPACE=(CYL,(40,1,299))
and DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440) on DASD.
Under CMS, approximately the same space (40 cylinders) will eventually
required by the MXG SOURCLIB MACLIB, but during the CMS installation
process you should have at least 100 free cylinders on your minidisk.
MXG is tailored and extended by "Installation Macro" members (begin with
IMAC) and the "MXG Exit Facility" members (begin with EX) that are put
in the installation's "USERID.SOURCLIB", the "MXG Tailoring" library,
that is concatenated ahead of MXG.SOURCLIB in your SOURCLIB DDname:
//SOURCLIB DD DSN=USERID.SOURCLIB,DISP=SHR --> site tailoring (yours)
// DD DSN=MXG.SOURCLIB,DISP=SHR --> never changed (mine)
If this is an MXG re-install, there should already be a USERID.SOURCLIB.
If not, then allocate one using the same attributes as the MXG.SOURCLIB,
with SPACE=(CYL,(1,1,99)); for CMS create an equivalent MACLIB.
Changes are made by copying the member from my library to your library.
IMAC.... members are self-documenting. IMACAAAA indexes all IMACs.
You should create a member CHANGES in your USERID.SOURCLIB and record
therein chronologically the MXG tailoring and installation history,
just like the member CHANGES in MXG.SOURCLIB tracks MXG itself.
You must now browse the members in USERID.SOURCLIB. If there are VMACs
members, they will override the new MXG code, and should be removed now.
However, the real purpose of USERID.SOURCLIB is for normal tailoring of
MXG for your site. It is completely normal to have some members there:
If you have installed printed changes from an MXG Newsletter, you
would have copied member(s) from MXG.SOURCLIB into your site's
USERID.SOURCLIB and then made the changes therein, or alternatively,
you would have made a new PDS (we suggested the name MXG.CHANGLIB)
into which you put those in-between-version changes, concatenating
it between USERID.SOURCLIB and MXG.SOURCLIB until you receive this
new MXG Release. In either case, if you made temporary changes,
now is the time to remove them. Delete the changed VMACs members
from your USERID.SOURCLIB, or remove the MXG.CHANGLIB from your
SOURCLIB concatenation.
If you have tailored IMAC.... members in your USERID.SOURCLIB, and
that member was changed by the new MXG Version, you must compare your
member with the new MXG member, and retrofit your tailoring on the
new member. These IMACs are of particular importance, if they exist:
IMACPDB (options for BUILDPDB) has changed and must be retrofit.
IMACKEEP can cause syntax errors when MXG creates a new dataset from
an existing record. MXG 8.8 support for CICS/ESA adds new
CIC.... datasets in TYPE110/VMAC110 processing. If IMACKEEP
had been used to tailor the variables kept in CICSTRAN by
redefining the _VAR110 macro (an appropriate use of this
tailoring exit), the new dataset will cause "Dataset not in
DATA statement" SAS error condition), unless you retrofit
your _VAR110 changes starting with MXG 8.8.
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" and "NOT CATLGD", as they may 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 data set, and read the variable's descriptions in Chapter FORTY.
Summary of critical actions to be taken in installing new version:
a. All VMAC.... members in your USERID.SOURCLIB must be examined
and, in general, must be deleted.
b. All IMAC.... members in your USERID.SOURCLIB must be compared
with the new IMAC.... members, and if there is a difference,
you MUST start with this version's IMAC and retrofit your
installation's tailoring.
c. It is always wisest to PROC PRINT the first 50 observations of
important datasets, especially PDB.JOBS, which can be affected
by user tailoring in IMACPDB. A visual scan of that PROC PRINT
serves as an excellent validation of correct installation, and
will almost always detect any serious problems BEFORE you begin
your production MXG runs! See the MXG utility UTILPRAL.
VII. Change Log
--------------------------Changes Log---------------------------------
You MUST read each Change description below to determine if a Change
will impact your installation. All of these changes have been made
to this MXG Source Library.
Member CHANGES of the MXG SOURCLIB will always be more accurate than
the printed changes in a Newsletter, because the software is created
after the newsletter is sent to the printer!
Member CHANGES always identifies the actual version and release of
MXG Software that is contained in that library.
The actual code implementation of some changes in MXG SOURCLIB may be
different that described in the printed NEWSLETTER (which might have
printed only the easily installed, critical part of the correction).
Always read the comments at the beginning of each source member named
under the Change Number for impacting changes.
Documentation of new datasets and variables, validation status, notes,
etc., are usually in comments in the source members.
Alphabetic INDEX of the most significant changes in MXG 8.8.
Member Change Description
ANALDB2R 8.030 DB2 Reporting from GTF data failed.
ANALDB2R 8.031 DB2 Report PMLOK03 fails with 170 format error.
ANALDB2R 8.067 Report selection by time frame incorrect, minor.
ANALDB2R 8.084 DB2 Trace reporting with PDB=SMF avoids IMAC102.
ANALDB2R 8.121 PMAUD02/PMAUD03 request caused SAS 145/170 error.
ANALDB2R 8.280 Transit time and SQL reports added.
ANALDBTR 8.249 DB2 Trace record pairing (SnnnSnnn) datasets built.
ANALDSET 8.077 ACCESS variable was not created, report failed.
ANALDSET 8.223 EXCP count deaccumulation from SMF 14/15 corrected.
ANALPRTR 8.146 New printer capacity analysis system.
AS400PDS 8.278 AS400 Records processing.
ASMTMNT 8.070 MXG Tape Mount Monitor on 7.7 does support MVS/ESA.
ASMVTOC 8.117 Assembly program for Fast reading of DASD VTOCs.
ASUMCICS 8.023 Variable LENGTHs caused trunction.
ASUMJOBS 8.230 Duplicate-Job-Name-Hold delay time estimated.
BUILDPDB 8.069 ACCOUNT/SACCT in SMFINTRV, SPIN in PDB, TYPE25 added.
CICINTRV 8.182 New CICINTRV (CICS/ESA Interval Statistics) dataset.
CICINTRV 8.251 New CICEODRV (CICS/ESA Shutdown Statistics) dataset.
CONFIG 8.068 SAS 6.06 options member added to MXG library.
DIFFHSM 8.260 HSM User SMF Record de-accumulation.
DOCDB2PM 8.112 Documentation of DB2PM-like reports in ANALDB2R.
DOCGRAF 8.274 SAS/GRAPH device support and MXG standards.
DOCTREND 8.113 Incompatible changes in MXG Trending implemented.
EXACFJR 8.047 ACF2 dataset ACF2JR may have deleted observations.
EXIDMTAS 8.105 IDMS Batch ACCOUNT1-3 fields decoded.
FMXGUCBL 8.009 Returns wrong value under SAS 5.18.
GRAFDB2 8.275 SAS/GRAPH analysis of DB2 data.
GRAFWORK 8.140 New graphic report of RMFINTRV workloads by hour.
IMACAAAA 8.281 Install aid describing which tailoring IMACs do what.
IMACACCT 8.133 Safer/Easier user tailoring of kept Account fields.
IMACICDB 8.177 CICS/ESA 3.1 Transaction DBCTL counters/clocks.
IMACPDB 8.048 Variables ABNDRSNC DIVRREAD DSSIZHWM TERMNAME added.
JCLDASD 8.264 MXG DASD (VTOC,VVDS) Space Management example.
JCLTEST 8.001 Options MACRO DQUOTE MWORK=28K required by MXG 7.7.
JCLTEST 8.025 WORK.DIRMACR REQUIRES MORE SPACE error condition.
JCLTREND 8.058 PROC SORT added to avoid not-sorted condition.
MONTHBLD 8.095 Syntax error under SAS 6.06 circumvented.
MVS 4.1 8.167 Support for MVS/ESA SP Version 4.1 and RMF 4.2.
MVS 4.2 8.224 Support for MVS/ESA SP Version 4.2 and RMF 4.2.1
NPM 8.038 NPM records from VM can be processed.
PRODUCTS 8.282 Documents MXG support by "product name/acronym"
RMFINTRV 8.216 SIO counts in RMFINTRV missing.
SAS 6.06 8.283 "Dataset is not sorted" SAS Error fixed by Z6062141.
SPIN 8.158 SPIN library fills when MVS/ESA replaces MVS/XA.
SPIN 8.172 SPIN library fills when MVS/ESA replaces MVS/XA.
SPUNJOBS 8.258 New PDB.SPUNJOBS dataset for SPIN reporting.
TRND72 8.143 Critical error, but only in PreRelease 8.3
TRNDDB2A 8.276 TRENDing for DB2ACCT into MXG Trend database.
TRNDDB2S 8.279 TRENDing for DB2STAT0 and DB2STAT1.
TRNDRMFI 8.143 Critical error, but only in PreRelease 8.3.
UTILGETM 8.206 %MACRO on FILE statement CPU loop in SAS 6.06.
VMAC110 8.065 Support for new CICS 3.1.1 major changes.
VMAC1415 8.017 New HiperBatch counts added to SMF type 1415.
VMAC1415 8.137 HiperBatch values non-zero when they should be zero.
VMAC23 8.208 SMF writer memory usage added (OY27449).
VMAC28 8.111 INPUT function error in NPM subtype 82.
VMAC28 8.148 Support for NPM Release 4 (NPM 1.4), SMF Type 28.
VMAC30 8.081 Support for APAR adding DDCONS() option.
VMAC30 8.082 Support for APAR adding PROCSTEP to type 30s.
VMAC30 8.208 NOT CATLG 2 or 7 now added (APAR OY24857) to 30s.
VMAC37 8.022 Variable KEEP, FORMATs.
VMAC39 8.022 TYPE39EL conditionally created. ZDATE kept.
VMAC39 8.245 Support for NETMASTER V2.1.0 subtype 255.
VMAC41 8.015 New VLF counts in new subtype 3 SMF type 41.
VMAC42 8.136 STOPOVER on subtype 3 due to IBM error.
VMAC57 8.184 STOPOVER on type 57 (MVS 4.1 and MXG 8.5 only).
VMAC6 8.057 STOPOVER due to invalid external writer record.
VMAC60 8.128 STOPOVER on SMS NVR segment in type 60.
VMAC6156 8.027 STOPOVER error with ICF catalog record section.
VMAC6156 8.039 TYPE6156 VOLSER may be wrong for GDGs.
VMAC6156 8.214 "Invalid Third Argument to Function SUBSTR."
VMAC64 8.134 ACBMACRF fields individually decoded into variables.
VMAC64 8.219 TYPE64 HiperBatch variables missing.
VMAC64 8.234 VSAM HiperBatch counters corrected.
VMAC7072 8.066 Support for new "SRCL" field in RMF Product section.
VMAC7072 8.187 Support for new Hitachi processors with MLPF.
VMAC7072 8.233 "Invalid data for MSOCOEFF..." correction.
VMAC7072 8.250 Support for PR/SM "overhead" measures APAR OY36668.
VMAC76 8.254 Support for OPPSI in SYSPLEX is traceable.
VMAC78 8.049 TYPE78CF only output if CHPID is online.
VMAC78 8.132 STOPOVER on type 78 subtype 3 with ES/9000 CPUs.
VMAC79 8.012 STOPOVER correction, support validation.
VMAC79 8.055 Formats and units corrections.
VMACACF2 8.002 ACF2 SMF record caused STOPOVER.
VMACACF2 8.090 Further validation of ACF2 SMF record.
VMACARB 8.190 Support for Arbiter Version 2.1.1 SMF records.
VMACCIMS 8.064 Support for IMF 2.6 (for IMS 3.1).
VMACCMF 8.247 Support for Boole & Babbage CMF SMF record 240.
VMACCRAY 8.044 Support for CRAY COS operating system
VMACDB2 8.102 Distributed DB2 header added to DB2ACCT.
VMACDB2 8.225 Support for Landmark's The Monitor for DB2.
VMACDCOL 8.130 DCOLLECT enhancement for all seven records.
VMACDCOL 8.210 DCOLLECT migration/backup tape dates correction.
VMACDCOL 8.252 Support for DCOLLECT APAR OY37378.
VMACDCOL 8.074 Support for SMS DCOLLECT data records.
VMACDMON 8.003 Uninitialized variable in ANALDMON caused.
VMACDMON 8.236 Support for LEGENT ASTEX replacement for DASDMON.
VMACEPMV 8.217 Support for Candle's EPILOG for MVS SMF Type 180.
VMACHSM 8.138 Preliminary support for HSM User SMF records.
VMACIDMS 8.005 IDMS SMF record variables format incorrect.
VMACIMS 8.006 IMS crashes required duplicate DTOKEN protection.
VMACIMS 8.098 Support for IMS/ESA 3.1 log records.
VMACIMS 8.118 IMS Cold start support and logic changes.
VMACIMS 8.119 Correction of IMS Input Queue time.
VMACIMS 8.176 IMS 3.1 DBCTL Thread Transactions Deleted.
VMACIMS 8.256 Support for IMS Wait-for-Input from IMS log.
VMACMDF 8.091 Amdahl's MDFTRACH SMF records corrected.
VMACMEMO 8.227 Support for MEMO European Electronic Mail SMF record.
VMACMON8 8.161 Support for Landmark's Monitor for CICS Version 8.0
VMACMONI 8.036 CREATIME in MONITASK may have wrong date.
VMACMPT 8.173 Support for Amdahl's MDF Performance Tool
VMACNSPY 8.010 NETSPY 3.2 support was incomplete.
VMACNSPY 8.043 Netspy 3.1 STOPOVER.
VMACNSPY 8.265 Support for NETSPY Release 4.0.
VMACORAC 8.080 Support for Oracle SMF record.
VMACROSC 8.028 ROSCOAUD contained zero observations always.
VMACSASU 8.157 SAS User Record changed under SAS 6.06.
VMACSESA 8.228 Support for Volvo's SESAME VTAM Monitor.
VMACSMF 8.013 DB2 read from GTF. Minor.
VMACSPMS 8.149 Support for Amdahl's SPMS SMF (Cache DASD CU).
VMACSTC 8.092 STC 4400 Silo SMF record new subtype.
VMACSTC 8.194 STC 4400 Silo SMF record new subtype STOPOVER!
VMACSYNC 8.020 Invalid CPUTCBTM value detected.
VMACSYNC 8.056 SIRECFM,SORECFM contain invalid data value.
VMACSYNC 8.123 Error (only in PreRelease 8.2) in TYPESYNC data.
VMACSYNC 8.211 SYNCSORT EW2903 detects SAS invoked Sort.
VMACSYNC 8.253 Support for SYNCSORT SCZ 33038 (Hiperspace stats).
VMACTMNT 8.033 Minor. Formats for DEVFROM/DEVTO.
VMACTMVS 8.173 Protection for TMON/MVS Spanned Records
VMACTPNS 8.269 Support for TPNS log.
VMACTPX 8.016 No observations in TPXINTRV.
VMACTSOM 8.007 Missing STRTTIME in TSOMCMND.
VMACTSOM 8.104 Invalid READTIME due to CA7 in TSO/MON record.
VMACTSOM 8.262 Support for LEGENT TSO/MON Release 5.3.0.
VMACVMON 8.037 Divide by zero.
VMACVMON 8.045 24APR90 became 02OCT89 when 202 day clock wrapped.
VMACVMON 8.106 VM Start Time off by 43 minutes on Aug 4, 1990.
VMACVMXA 8.004 OMEGAMON/VM creates invalid VM/XA VB records.
VMACVMXA 8.099 Many VM/XA PTFs altered Monitor records.
VMACVMXP 8.041 Minor EXPLORE/VM processing changes.
VMACVPD 8.234 Support for NETVIEW's VPD aka NAM type 37 SMF data.
VMACVVDS 8.073 Validation of VVDS record created by ASMVVDS.
VMACWSF 8.100 Support for WSF archive product SMF.
VMACX37 8.024 STOPX37, minor.
VMACZRB 8.054 RMF 4.1.1 caused STOPOVER.
VMACZRB 8.079 Further validation of RMF III VSAM data.
VMACZRB 8.156 Further validation and reports.
VMXGDOWN 8.273 Download to PC all datasets in a SAS library.
VMXGSUM 8.021 Missing variable initialization protection.
VMXGVTOC 8.018 OFFSET4E and SMS variables added.
VMXGVTOC 8.032 Minor. RECFM should be $4.
VMXGVTOC 8.075 Did not capture free space at beginning of volume.
VMXGVTOF 8.193 Build VMXGVTOC datasets from ASMVTOC records.
VMXGVTOR 8.009 Incorrect on 7.7, changes not propagated.
XMAC7072 8.014 ZDATE not kept in TYPE70PR and TYPE72MN
ZZZZZZZZ 8.011 Final member of MXG Library is named.
Inverse chronological list of all Changes:
Changes thru 8.283-8.187 were printed here in Newsleter NINETEEN
See member CHANGE08 for actual change text.
End of Changes Log in Newsletter NINETEEN.