IMACCICS macros, which is required, so the cosmetic move
to make it easier lost out, and you will have to include
IMACCICS before you invoke CICINTRV if you ever get that
deep in creating your own MXG job for CICS processing.
Change 14.187 Support for Tandem Controller Data and Line Data creates
EXTANCTL two new datasets:
EXTANLIN Dataset INFILE Description
IMACTAND TANDCTRL TANDCTRL Controller statistics
TYPETAND TANDLINE TANDLINE Line statistics.
VMACTAND You will need to add DD statements for TANDCTLR/TANDLINE
Aug 15, 1996 (at least with DD DUMMY) if you do not wish to process
these data, as MXGs TYPETAND will try to read all five
Tandem data sources that are now supported.
Thanks to MH, Allied Irish Bank, IRELAND
Thanks to Joe Fleischmann, U.S. Bancorp, USA.
Change 14.186 Steve Franklin's code to read Network General Sniffer's
ADOCSNIF data records! Sniffer is a hardware monitor attached to
IMACSNIF your network that sees every frame and can be programmed
TYPESNIF to filter, decode and create data records. This code
VMACSNIF reads the Sniffer data, as documented in Steve's article
Aug 15, 1996 "Deriving response time of Client/Server applications",
in "Capacity Management Review", Volume 24, No 7, July
1996, published by Demand Technology (subscribe or buy
the back issue by calling 941 261 8945).
One Sniffer monitor on a LAN/WAN segment sees all of the
frames on that segment, capturing source and destination
addresses plus datastream sequence and acknowledgement
numbers plus the response times and traffic volume, plus
information from the data stream itself, so you can
recognize transactions and decompose their response time.
Several techniques for transaction identification are
discussed. Data from multiple Sniffers is combined to
measure each of the response components across multiple
segments; three Sniffers measured a PC client talking via
two WAN segments to an Oracle database in the case study.
This code is functional, but does not (yet?) have the
normal MXG embellishments (Labels, MXG-names, etc.)
Should there be enough interest, I will doll it up later.
If you have a Sniffer monitor, and you must measure and
understand the transaction response components in your
C/S transactions, this may well be your salvation, but
the analysis is neither canned nor straightforward. You
will need to read the paper and SAS code to understand
how to tailor these sample programs for your environment,
and you best have some good knowledge of the applications
you are measuring! If you also use a script (or modify
the application?) to issue calls that define the start
and end of a logical business transaction, those events
are capturable so you can get true business transaction
response time. You can also capture SQL statements that
are used in Client/Server applications and parse them to
identify TABLE names and WHERE conditions so that network
response time can be decomposed according to specific SQL
statements or RPCs (Remote Procedure Calls); that might
be sufficient for recognition of a business transaction
if it always begins with a unique call and thus avoid the
application modifications or script wraps. There is lots
of opportunity here; this is pretty powerful stuff!
Thanks to Steve Franklin, RGI, Inc, USA.
Change 14.185 VM Print sent to JES2 is now merged in PDB.JOBS with the
BUILDPDB Purge record for these "Print-only" JES2 jobs. Before,
BUILD005 MXG sent the type 26 data to PDB.NJEPURGE, and the type 6
Aug 15, 1996 record(s) were spun (awaiting for the non-existent purge
record) for SPINCNT days, and then later the type 6 data
was output in PDB.PRINT (but with no accounting fields)
and a sparce observation in PDB.JOBS was created. This
change makes the PDB.JOBS data complete and timely for
print-only jobs. The change itself was quite simple:
In the logic to build PDB.NJEPURGE, remove the test for
INREASON='SR' (so those records are output to TYPE26J2),
and in the logic to build PDB.JOBS, change the test to:
IF SUBSTR(INBITS,5,1)='P' AND INREASON NE 'SR' THENDO;
(so that ABEND values of JCL or CRSH are not set for
these print jobs, since they do have no JSTRTIME/JENDTIME
values, because they did not execute on MVS). Note that
these print-only jobs can be identified in PDB.JOBS by
variable INREASON='SR', and that the values of all of the
variables from the type 30 records will be missing.
Peter also pointed out that new options on the VM TAG
command (used to send print to MVS) now allow you to
cause the VM USERID to be sent to MVS and VM USERID will
be the JOB name, rather than the old RSCSnnnn JOB name.
Thanks to Peter J. Jansen, Bank for International Settlements, SWITZ.
Change 14.184 Variable TRANTYPE was increased to two bytes in CICS 4.1.
VMAC110 Change 13.296 changed FORMATS, but the VMAC110 change was
Aug 15, 1996 not migrated into the real MXG library (IBM confidential
requires that I keep dual source libraries until GA, and
I forgot to make the update in both places!).
For CICSTRAN, move TRANTYPE from $1 line to $2 line in
the LENGTH statement, and in the SMFPSRVR GE 41.0 INPUT,
change +3 TRANTYPE $CHAR1. to TRANTYPE $CHAR2. +2.
For CICSEXCE, conditional logic was added.
Thanks to Ove Dall-Hansen, CODAN Insurance A/S, DENMARK.
Change 14.183 TYPE7204 (Goal Mode RMF Monitor III) variable TRANS was
VMAC7072 too small causing AVGELPTM to be way too large because
Aug 13, 1996 variable TRANS should be INPUT as &RB.8. and not &RB.8.6.
This is a continuation of Change 14.122.
Thanks to Tom Parker, CSC, USA.
Change 14.182 Support for New Dimension Software's CONTROL-T Tape
EXCTLTDS Management records creates two datasets:
EXCTLTVL CTLTDSN - Data Set Record
IMACCTLT CTLTVOL - Volume Record
TYPECTLT A number of formats are created to decode fields in the
VMACCTLT data. The volume record has a repeating vault section,
Aug 13, 1996 but test data had only one (of a maximum of three), so
currently only the first vault segment is output.
Thanks to Paul Hassett, Department of Transportation, USA.
Change 14.181 TANDEM variables were misspelled in two places.
VMACTAND Change C2WMISS=C2RMISS/DURATM; to C2RMISS=.... and
Aug 12, 1996 Change C3WMISS=C3RMISS/DURATM; to C3RMISS=....
Thanks to Steve Smith, BGS, USA.
Change 14.180 TYPE72GO Goal Mode dataset did not contain PERFINDX, the
VMAC7072 performance index. Logic was inserted to calculate this
Aug 12, 1996 index, to label it, and to keep it in TYPE72GO.
Thanks to Kevin Carpenter, First of America, USA
Thanks to Don Deese, (CPExpert), Computer Management Sciences, USA.
Change 14.179 Support for SoftAudit Version 5.1 (INCOMPATIBLE, but only
EXSFTAL because MXG now requires //XPMODS DD statement; if you
IMACSFTA do not have Version 5.1 installed, then use DD DUMMY).
VMACSFTA The //XPMODS flat file (Created by SoftAudit's extract
Aug 12, 1996 program) is now read to create the new MXG dataset
SOFTMODS to describe the Installed Load Module File.
Change 14.178 The SMF Simulator now tests a CISIZE of 18432, which may
ANALSMF be better than 16K on 3390s, as 3 blocks fit per track.
Aug 12, 1996
Change 14.177 In VMXGSUM invocations, if DESCENDING was used in the
VMXGSUM SUMBY=LIST and KEEPALL=NO was used (default), the parse
Aug 12, 1996 logic did not recognize the DESCENDING attribute, which
could cause NOT SORTED conditions. Now the parser does.
Change 14.176 TRNDTALO has been redesigned to "SPIN" allocations that
TRNDTALO are active at the time SMF data is dumped. Comments in
Aug 12, 1996 the member describe the new algorithm designed to fix the
end effects. This still is a circumvention for the basic
problem, that allocation records are only written at the
end of allocation; a redesign of the ASMTAPES monitor to
create interval allocation records will ultimately solve
the problem of counting tape drives for good, but as the
comments describe, only a very small number of jobs are
encountered with hanging allocations, so the new logic is
definitely an improvement.
Thanks to David Childress, Lowe's Companies, Inc, USA.
Change 14.175 Using ANALCNCR, if you did specify an output dataset and
ANALCNCR you also requested reports, you received a DATASET NOT
Aug 12, 1996 FOUND and may get two prints of the Summarized output.
Thanks to Tom Elbert, John Alden, USA.
Change 14.174 DB2 message "VMACDB2 ERROR ... QWHSIID=230 UNEXPECTED"
VMACDB2 due to MXG error. Find IF QWHSIID=230 THEN SUBTYPE=3;
Aug 12, 1996 and add "AND SUBTYPE NE 3" to the next IF statement.
The impact of this error message was that DB2 statistics
observations were not output in DB2GBPAT.
Thanks to John Rosser, Springs Industries, USA.
Change 14.173 Reserved Change Number.
Aug 10, 1996
Change 14.172 Variable EXECTM in TYPE30_V and PDB.SMFINTRV datasets was
VMAC30 wrong for steps that created only a subtype 3 (i.e., they
Aug 10, 1996 did not run long enough to create a subtype 2 interval).
Change the equation EXECTM=INTETIME-INTBTIME to read:
IF SUBTYPE=3 AND INTBTIME LT LOADTIME THEN
EXECTM=INTETIME-LOADTIME;
ELSE EXECTM=INTETIME-INTBTIME;
Thanks to Jean Quinkert, Inland Steel, USA.
Change 14.171 Support for MODEL204 Release 3.2.1 (INCOMPATIBLE) inserts
IMACM204 new fields in the Logoff and the Since-Next records.
VMACM204 This support is based on CCS's Early Warning 006 but has
Aug 9, 1996 not yet been tested with real 3.2.1 data. The new default
for _M204VER in IMAC204 is now 3.2 instead of 3.0.
Aug 16: Variable M24DKAR was inadvertently deleted from
the INPUT statement for LOG records in early code.
Thanks to Allan Rollason, SAS Europe, GERMANY.
Change 14.170 More RACF Reports for Command Events can be produced from
EXTY8008 nine new TYPE80nn datasets from member TYPE80A:
EXTY8012 Dataset EVENT Command
EXTY8015 TYPE8008 08 ADDSD
EXTY8016 TYPE8012 12 ALTGROUP
EXTY8017 TYPE8015 15 DELDSD
EXTY8018 TYPE8016 16 DELGROUP
EXTY8020 TYPE8017 17 DELUSER
EXTY8021 TYPE8018 18 PASSWORD
EXTY8024 TYPE8020 20 RALTER
IMAC80A TYPE8021 21 RDEFINE
VMAC80A TYPE8024 24 SETROPTS
Aug 8, 1996 Because IBM documentation of RACF records is not complete
(undocumented fields, conditional fields), I can only code
if I have data records. If the dataset TYPE80CM contains
any observations, it means you have events I have not seen
before. If you will PROC PRINT DATA=TYPE80CM, you can see
which events exist, and that dataset contains the RECNUM
in your SMF data; use this program to print a hex dump of
those records: DATA;INFILE SMF;INPUT;IF _N_= recnum;LIST;
and send that output with the PROC PRINT for enhancement.
Thanks to V.J. Picotte, Key Services, USA.
Change 14.169 JES3 MDS (Main Device Setup) tape fetch and mount counts
IMACPDB are now captured in variables TAPFETCH and TAPEMNTS in
BUILDPD3 PDB.JOBS dataset created by the BUILDPD3 JES3 PDB. These
BUIL3005 counts have been available in dataset PDB.TYPE25, but now
BUILDPDB the BUILDPD3/BUIL3005 logic sums the TYPE25 counts into
BUILD005 PDB.JOBS. A new dataset SPIN.SPIN25 is also created in
Aug 7, 1996 the SPIN library (and copied into the PDB for backup).
For JES3-sites, if you have tailored your IMACPDB member
in your "USERID.SOURCLIB" for your BUILDPD3 job, this
change is INCOMPATIBLE in that you must re-tailor those
IMACPDB changes, starting with this IMACPDB member; if
you miss this instruction, you will get errors on the log
that variables READTIME JOB JESNR are not in WORK.TYPE25!
This enhancement was not straightforward, because IBM
does not include JESNR in the type 25 record, so it
matches type 25's with type 30_1 initiation records to
add JESNR to TYPE25 before the MERGE. In IMACPDB the
macro _PDB25 contains JESNR in the list, even though
JESNR does not exist in the SMF record, because that
macro is used again later in BUILDPD3 when there has
been created a JESNR in TYPE25.
This change did not add variables TAPFETCH and TAPEMNTS
to PDB.SPUNJOBS dataset (but I will later, if required).
Unrelatedly, the creation of PDB.SMFINTRV was enhanced;
by changing IF ININTRV THEN OUTPUT; to IF ININTRV; and
relocating the statement after the SET statement, code is
bypassed when there are no TYPE30_V observations. This
change was also propagated into JES2 BUILDPDB/BUILD005.
And Change 13.241, which added the %INCLUDE of IMACSPCK
had been overlooked in BUIL3005, but is now added.
Thanks to Alan McBain, National Westminister Bank, ENGLAND.
Change 14.168 Support for Omegamon/VTAM V200 (INCOMPATIBLE, four bytes
EXOMVLU were inserted and eight new trend subtypes are created.)
EXOMVMPG MXG creates these new datasets:
EXOMVMPS IRNUM DATASET Description
EXOMVNCC 7 OMVTMPCG MPC Group
EXOMVNTL 8 OMVTMPCS MPC Subchannel
EXOMVNTP 9 OMVTNCPC NCP CCU
EXOMVPU 10 OMVTSDLC SDLC/BSC Line
EXOMVSDL 11 OMVTPU PU/Cluster
FORMATS 12 OMVTLU LU/Terminal
VMACOMVT 13 OMVTNTRP NTRI Physical Link
Aug 6, 1996 14 OMVTNTRL NTRI Logical Link
but only subtypes 9 and 10 have been validated with data,
(and ON09CU and ON09CF look suspicious in OMVTNCPC).
Forty new exception conditions were added that are now
recognized and decoded by new values for $MGOMVEX format
that is used in dataset exception dataset OMVTEXCE.
Thanks to Harry Olschewski, dvg Hannover, GERMANY.
Thanks to ??? , Sparkassen-Rechenzentrum, GERMANY.
Change 14.167 Some intervals may be missing in DB2STATS, DB2STAT0 and
DIFFDB2 DB2STAT1 in DB2 4.1, because IBM changed QWHSISEQ without
Aug 3, 1996 notice. Statistics interval records contain accumulated
counters, so MXG's DIFFDB2 code must sort records and
then subtract counters in adjacent records to create the
interval statistics. To make sure only adjacent records
are output, the IFCID Sequence Number, QWHSISEQ, is used
to validate that records are adjacent. However, DB2 4.1
now writes records for adjacent intervals with skipped
values of QWHSISEQ (109,110,111,113,115,116), which made
MXG's validation logic to not output those observations.
In addition to adjacency validation, the MXG QWHSISEQ
logic also deleted the first record from each subsystem
(the first record found cannot be output, unless it is
also the startup, QWHSISEQ=1, because there is no prior
record for deaccumulation), so the new logic now protects
for first record found. Change the four occurrences of:
SEQCHECK=DIF(QWHSISEQ); DROP SEQCHECK;
IF QWHSISEQ GE 1 AND SEQCHECK EQ 1 THEN DO;
DIFFDBxx=1;
%INCLUDE SOURCLIB(EXDB2ST0);
END;
to read (change DIFFDBxx=1 in each of the four sets):
LENGTH PREVSSID $4;
SEQCHECK=DIF(QWHSISEQ);
IF SEQCHECK GE 1 AND PREVSSID EQ QWHSSSID THEN DO;
DIFFDBxx=1;
%INCLUDE SOURCLIB(EXDB2ST0);
END;
ELSE DO;
PREVSSID=QWHSSSID;
RETAIN PREVSSID;
END;
Note inserted Sep 25: the previous code was printed
and implemented incorrectly until Change 14.230. The
code stub above has been corrected to the way it
should have been.
While this change prevents deletion of good intervals,
it opens a new exposure if DB2 records are not written
for an interval (if SMF is blocked DB2 does not retry).
Because SEQCHECK can't be used, MXG will deaccumulate
several interval's data into one interval, causing high
values (though not necessarily high rates) in that obs.
To help isolate data problems, the variable SEQCHECK is
now kept in the DB2STATx datasets. SEQCHECK is one if
QWHSISEQ is adjacent, and otherwise is more than one.
I intend to open a problem with IBM to see if this was
an intentional change or an inadvertent error, so this
change may be revised if IBM admits to an error, but with
DB2 4.1 now skipping QWHSISEQ values, this change is
required until IBM guarantees adjacency of QWHSISEQ.
Thanks to Pierre Li, Deere and Company, USA.
Change 14.166 Use of permanent versus temporary ARRAY statements costs
VMAC78 big! Changing the ARRAY statements added by 14.121 from
Jul 27, 1996 ARRAY PCTALLBZ {4096} 4 PCTA0001-PCTA4096;
ARRAY LCUIORAT {4096} 4 LCUI0001-LCUI4096;
to read:
ARRAY PCTALLBZ {4096} 4 _TEMPORARY_;
ARRAY LCUIORAT {4096} 4 _TEMPORARY_;
eliminated the significant increase in CPU time BUILDPDB
and TYPE78 seen in MXG 14.04 and MXG 14.05. See the SAS
Technical Note in Newsletter THIRTY on Permanent Arrays.
Change 14.165 APAR OW13536 adds new fields for the Coupling Facility
VMAC74 (RMF type 74 subtype 4 record, MXG dataset TYPE74CF)
Jul 27, 1996 that are extensively discussed in WSC FLASH 9609.
The Coupling Facility continues to be a potential serious
bottleneck if its capacity (CPU and memory) is not well
managed. IBM has added new instrumentation for that
purpose with this APAR, which was implemented compatibly.
Change 14.164 APAR OW15406 for RMF adds support for Year 2000.
VMAC73 IBM has documented that all packed decimals will contain
VMAC74 0cyydddF format, and added an expanded IODF creation date
VMAC75 (with YYYY format vice YY) field (compatibly!) to the end
Jul 25, 1996 end of the Type 73 Channel Path Control section, the Type
74 Device Control Data Section, and the Type 78 Subtype 3
Control Section for ES/9000 CPUs. MXG detects existence
and uses the YYYY format when it is present. With this
APAR and MXG change, RMF fully supports the year 2000,
and member YEAR2000 has been updated to so indicate.
Change 14.163 APAR OW21583 announces that TCP/IP will write SMF type 6
VMAC6 record with SUBSYS=9, but no more information (APAR is
Jul 25, 1996 still open). Test for SUBSYS=9 was added, but still
await IBM documentation. This change is still open.
Change 14.162 ANALMPT invokes ANALCNCR and caused FILE WORK.SPLIT.DATA
ANALCNCR DOES NOT EXIST error (if OUTSUMRY= is not specified). To
Jul 12, 1996 correct, find the second occurrence of the statement:
PROC PRINT DATA=&OUTSUMRY SPLIT='*';
and delete that line (the second occurrence, but do not
delete the line containing DATA=OUTSUMRY, without paren).
Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
Thanks to Harmuth Beckmann, Karstadt, AG, Germany
Change 14.161 Cosmetic. Two titles with CPU TIM were corrected to read
ANALPROG CPU TIME.
Jul 12, 1996
Thanks to Dr. Alexander Raeder, Karstadt AG, GERMANY.
Thanks to Harmuth Beckmann, Karstadt, AG, Germany
====Changes thru 14.160 were included in MXG 14.05 dated Jul 15, 1996===
Change 14.160 TSO/MON distribution bucket values TSMPDIS1-TSMPDIS8 were
VMACTSOM not converted to seconds (divide by 38400) nor were they
Jul 12, 1996 kept, but now they are.
Thanks to Manfred Thomas, BHF-Bank, GERMANY.
Change 14.159 Documentation of the datasets created by BUILDPDB and the
ADOCPDB sort order of those datasets (from the MXG Supplement)
Jul 12, 1996 was not moved into SOURCLIB. While slightly out of date,
at least it's finally here!
Thanks to Jean Quinkert, Inland Steel, USA.
Change 14.158 Support for OS/390 Version 1 Release 2 (COMPATIBLE).
EXTY72GO MXG 13.13 and later tolerates OS/390 Release 2, but to
EXTY892 capture the several new variables and new subtypes of
IMAC89 type 74 and 89 records, MXG 14.05 is needed.
VMAC4789 -UCBNAME is now $4 in TYPE4789 (but this was not new with
VMAC7072 OS/390 - I had not noticed the new field until now).
VMAC79 -Variables SMF72SPA,SMF72SPE,SMF72SRS (shared page stats)
VMAC89 are added to TYPE72 (again, had been overlooked in 5.2).
VMAC99 -Variables R722GPI,R722TSV,R722VIN,R722VLC (shared pages)
Jul 11, 1996 are added to TYPE72MN (also overlooked in 5.2).
-Variables R724GPI,R724TSV,R724VIN,R724VLC (shared pages)
are added to TYPE7204 (also overlooked in 5.2).
-Variables R791CMNI,R791EXCT,R791SPI,R791PNV,R791PVIO (the
ASID's pages in common, VIO/Non-VIO, shared pagins) are
added to TYPE79. (also overlooked in 5.2).
-New dataset TYPE892 contains interval usage data summary
for each registered product.
-The test R723TYPE IN(1,2,4,5) in EXTY72GO was changed to
R723TYPE IN('1','2','4','5') to eliminate character
conversion (and associated SAS note).
-Variables were added to TYPE99TT and TYPE99U1 datasets.
Change 14.157 For user-written VMXGSUM invocations with INDATA= that
VMXGSUM did not have a blank between the dataset name and the
Jul 11, 1996 parenthesis, i.e., INDATA=MYDATA(IN=MYVAR), the parsing
logic failed. Use INDATA=MYDATA (IN=MYVAR), and the code
works! This change enhances the parser to accept the
dataset options in the INDATA= with or without the blank.
Thanks to Alfred Mak, Asia Pacific Technologies, SINGAPORE.
Change 14.156 Change 14.112 was revised (see text) and additional IDMS
VMACIDMS changes are necessary.
Jul 11, 1996 -In the Journal Wait segment, insert a +1 after JRLFILE is
INPUT and change the SKIP calculation to SKIP=SKIP-105;
vice 104.
-In the DBKEY Wait segment, insert +2 after DBKPGGRP and
change the SKIP calculation to SKIP=SKIP-14; vice 12.
Thanks to Martin Wieland, Neckermann B.V., THE NETHERLANDS
Change 14.155 Utility to reconstruct mainframe data from PC file. When
UDEBLOCK you download an MVS file that was VB or VBS, you had to
Jul 11, 1996 make a RECFM=U copy on MVS, then download that data to a
PC, creating a contiguous file of bytes. But you cannot
upload that PC file (perhaps to a different MVS system)
and use it, because there are no record delimiters. But
now you can upload the PC file , putting it into an MVS
file with RECFM=U, BLKSIZE=32756, and then use this new
UDEBLOCK utility to read that file and create from it a
true copy of the original VB/VBS file. The output file
of UDEBLOCK will have RECFM=U,BLKSIZE=32756, but you will
specify RECFM=VB or RECFM=VBS on the DD statement when
you read that data, and all will be well. You may not
need this utility, but I needed it to be able to move
a VB GTF file from SAS's MVS system thru my PC to my MVS
system. Check it out!
Change 14.154 Support for DB2 records written to GTF. The earlier user
REXXDB2 written utility (REXXDB2) did not always create valid DB2
Dostları ilə paylaş: |