Change 27.262 ASUMMIPS is enhanced to add MSU and MIPS for zIIPs, zAAPs
ASUMMIPS to the existing CP variables.
Sep 18, 2009
Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.
Change 27.261 -Variable QBMCTEXT in T1028005 dataset from TMON/DB2 is in
VMAC102 ASCII text, so the INPUT statement was revised.
Sep 18, 2009 -QW0343xx variables are now INPUT and KEEP in T102S343.
-Additional info on the IFCID 005 (T1028005) - SQL text
and IFCID 307 (T1028133) - SQL Stmt Sum (All Qualifiers).
There is no 1-1 relationship between those two files,
especially for dynamic SQL. All SQL text collected is
found in T1028005. When the same SQL statement is
executed more than once, only one observation is created
in T1028005. In T1028133, for each unique collection key,
there is a separate observation. So when user A, B and C
execute the same SQL-stmt (plan/package/stmt), there will
be 3 T1028133 observations (one for each user), but there
will only be one observation in T1028005
Thanks to Christa Neven, KBC Global Services, BELGIUM.
Thanks to Paul Volpi, UHC, USA.
Thanks to James J. Burnes, UHC, USA.
Change 27.260 This elegant contributed algorithm uncompresses CICS/TS
VMAC110 SMF records using SAS statements in VMAC110 that expands
Sep 21, 2009 the SAS _INFILE_ Buffer, using _INFILE_ Special Variable,
Oct 4, 2009 so this algorithm works on z/OS or on any ASCII Platform,
Nov 4, 2009 since it's just SAS code!
********WARNING INSERTED NOV 5, 2009*******************
Unfortunately, this elegance comes at great CPU expense:
While the original change text did warn that:
But the "instream" algorithm may be more CPU intensive
than EXITCICS, so, if you are processing on z/OS, you
may find the EXITCICS algorithm preferable.
only now, with files of 100% compressed records, has the
cost been measured: TWELVE TIMES MORE CPU TIME than
using the (written in ASM code) EXITCICS Infile Exit.
With the INFILE exit, it has already uncompressed the
record, so the SAS decompression code is not executed.
********WARNING INSERTED NOV 5, 2009*******************
Previously, to read compressed CICS/TS 3.2+ SMF records,
you had to assemble MXG's EXITCICS member to create the
CICS "Infile Exit", which can ONLY execute on z/OS.
This algorithm is both automatic and transparent, and, if
the EXITCICS Infile Exit is installed, it will have
already expanded the record, so this "instream" algorithm
won't be executed.
But the "instream" algorithm may be more CPU intensive
than EXITCICS, so, if you are processing on z/OS, you may
find the EXITCICS algorithm preferable. SEE BELOW.
-The Maximum Record Length printed on the SAS log shows
the uncompressed length with EXITCICS, but shows the
maximum compressed length with this expansion algorithm.
-Compressed 110 SMF records can be processed by WPS 2.04,
which added the _INFILE_ Special Variable.
The authors describe their work:
-The compression algorithm used is a simple RLE (Run
Length Encoding) as follows:-
-All compressed data consists of an INDICATOR/LENGTH byte
that is followed by data byte(s). This combination of
indicator/length byte and data byte(s) is repeated until
the end of the compressed data.
-The INDICATOR byte/bit flags the presence of compressed
data by having the TOP Order bit set on. The remainder
of the byte will indicate the length of the uncompressed
data.
-An indicator byte of '80'x (always the first byte of the
compressed field) indicates Compressed data of length
ZERO. There is NO following data byte!
-An indicator bit of '1nnnnnnn'B is followed by a single
data byte that is to be repeated '0nnnnnnn'B times into
the output buffer.
-An indicator bit of '0nnnnnnn'B indicates that the
following '0nnnnnnn'B bytes are simply copied from the
compressed record to the uncompressed buffer.
-This compression algorithm was determined by a few Google
searches and observations of the compressed data and did
not involve any non public knowledge of IBM's processing.
Thanks to Ian Gibson, CPT Global Ltd @ Bendigo & Adelaid Bank, OZ.
Thanks to Peter Turner, CPT Global Ltd @ Bendigo & Adelaid Bank, OZ.
the authors, and, for the CPU measurements on z/OS,
Thanks to Scott Chapman, American Electric Power, USA.
Change 27.259 Support for TMON FOR DB2 Records 'BA','BJ','BK','BL','BM'
VMACTMDB now decode the record-specific fields; previously, only
Sep 17, 2009 the headers were decoded for these subtypes.
Thanks to Ernie Amador, UC Davis Health System, USA.
Change 27.258 Support for ACF2 SUBTYPE='O' OPENEDITION record creates
EXACFOR new ACFOR dataset.
IMACACF2
VMACACF2
VMXGINIT
Sep 16, 2009
Oct 8, 2009
Thanks to Steven Nelson, IBM Global Services, USA.
Change 27.257 Cosmetic. MXG added ***ERROR. SMF RECORD SUBTYPE GT 255
VMACSMF messages when an impossible value for one-byte SUBTYPE is
VMACMIM found when VMACSMF processes an SMF record with the flag
Sep 16, 2009 that the subtype field is populated, but it is at best
only a WARNING message that MXG has corrected the SUBTYPE
variable to the one-byte in byte 19 instead of byte 20.
This is important if you use IMACFILE or %LET MACFILE=
to select/skip SMF records based on SUBTYPE, or if the
SMF record with invalid subtype actually tests SUBTYPE.
-One WARNING ID=189 was flagged with the message, used
for the MIM SMF record; VMACMIM was examined and since
MXG variable SUBTYPE was not tested in that member, there
was no problem. However, the MIMSUTYP was incorrectly
as a two-byte value, so even though it was also not also,
VMACMIM was corrected, in case it's ever needed.
-I haven't (yet) figured out how to turn the warning off,
or maybe decide I should just remove it.
- it needs to precede IMACFILE, so the true subtype will
be populated in SUBTYPE for testing in that exit.
- some IBM records with fixed ID are already corrected
prior to the IMACFILE exit.
- IMACFILE is where you would expect to turn it off.
Thanks to Robert Blackburn, Dominion Resources Services, Inc, USA.
Change 27.256 The QACSLPAR file has 20 undocumented bytes after LPVRM;
VMACQACS the first eight are the SYSTEM ID, new variable LPSYSTEM,
Sep 14, 2009 and the next 12 bytes are skipped, for iSeries V5.4.0.
Thanks to David Bixler, FISERV, USA.
Change 27.255 -Variable SM1209CY is now RETAINed and KEEP= in all four
VMAC120 TYP1209x datasets, as that Enclave Token is needed to
Sep 14, 2009 combine records.
-Variable SM1209FI is now correctly input as &PIB.8.3 and
the divide by 4096 for SMF1209EV and SMF1209FI were
incorrect and are removed.
Thanks to Steiner Amot, VPS ASA, NORWAY.
Thanks to Bjorn Helgestad, VPS ASA, NORWAY.
Change 27.254 Members that read files with an INFILE statement that had
VMACMRKV only LRECL and BLKSIZE now use a Platform-Specific %MACRO
VMACPRPR to set RECFM=VBS on z/OS and RECFM=S370VBS on ASCII.
VMACTSMA See Change 27.311, which removed this change for NTSMF.
VMACNTSM
Sep 14, 2009
Change 27.253 SMF74NID (a/k/a SMF74DCT) is a 28-character field with
VMAC74 26 $EBCDIC text bytes, and two $HEX bytes at the end.
Sep 13, 2009 The final byte appears to always be '00'x, which doesn't
translate, but the penultimate byte has many different
hex values, which may or may not be changed when INPUT
as $EBCDIC, depending on the hex value of that byte.
This change inputs the first 26 as $EBCDIC26., but the
last two bytes are INPUT as $CHAR2. and then SUBSTRinged
back into SMF74NID, to prevent accidental translation.
Of course, those last two hex values may be unprintable
and could cause other problems if they are imported into
other programs; using FORMAT SMF74NID $HEX56.; would
prevent the unprintables, but the text would not be
readable to the human eye.
Thanks to Peter Enrico, Enterprise Performance Strategies, Inc, USA.
Change 27.252 Formats for many duration variables were not TIMEyy.x;
VMXGRMFI all of the duration variables are how TIME12.2 except for
Sep 13, 2009 BATRESP and TSORESP that are TIME13.3.
Change 27.251 -RMM processing now supports all possible date formats:
IMACEDGR RHDTFORM DESCRIPTION EXAMPLES
VMACEDGR A AMERICAN 12/31/1999 MM/DD/YYYY
Sep 11, 2009 E EUROPEAN 31/12/1999 DD/MM/YYYY
Sep 15, 2009 I ISO 1999/12/31 YYYY/MM/DD
Sep 17, 2009 J JULIAN 1999/365 YYYY/DDD
The original _EDGRDTE macro is no longer used.
-The Retention field RDRETCHR or RVRETCHR can contain text
non-date values of CATRETPD or CYCL/99999 or WHILECATLG.
RDWILCAT/RVWILCAT='Y' already existed for WHILECATLG; new
variables RDCYC999/RVCYC999/RDCATRET/RVCATRET are created
and the DATE variables RDRETDAT/RVRETDAT will be missing
values, if xxRETCHR has any of those 3 text values.
-An Original Expiration Date with 00/00/1999 (or any other
non-date value) is stored in new character variable
RDEXPDCH, and the DATE conversion is protected for '00'.
The value of RDEXPDTO will be a missing numeric date
value if RDEXPDCH contains a non-date value.
Thanks to Leendert Keesmaat, UBS, SWITZERLAND.
Change 27.250 Protection for UNKNOWN TOKDANAM printed a message, but it
VMAC80A failed to prevent INPUT STATEMENT EXCEEDED RECORD LENGTH.
Sep 11, 2009 Protection now works.
The RDEFINE CFIELD statement can be used to define custom
fields and their attributes, with locally chosen names;
these new variables in TYPE80TK are populated if found
TOKTYPE ='TYPE'
TOKMAXLE='MAXLENGTH'
TOKFIRST='FIRST'
TOKOTHER='OTHER'
TOKHELP ='HELP'
TOKMIXED='MIXED'
TOKLISTH='LISTHEAD'
TOKURTLA='URTLABEL'
and these observations have TOKSUSBY='CFDEF' to identify
they are locally defined fields.
Thanks to Coen Wessels, IBM SWITZERLAND.
Thanks to Pierra Beda, IBM SWITZERLAND.
Change 27.249 Variable R747PAVG='RMF REPORT*AVERAGE*FRAME*PACING' is
VMAC74 created as R747PAVG=10**6*(R747PFPT/R747PNFT); to match
Sep 10, 2009 the value printed on RMF Reports.
Thanks to Robert Brosnan, Goldman Sachs & Company, USA.
Change 27.248 Change 27.165's insertion of VMXGOPTR cause the I/J vars
VGETDDS that were local to VGETDDs to be overridden by the I/J
VMXGOPTR vars used in VMXGOPTR causing looping and unexpected
Sep 10, 2009 results. Variable names in VMXGOPTR/VGETDDS were changed.
Sep 11, 2009 -Before, if you asked for GOOVOO, or DATEBASE, or GDGs, it
allocated all of them (ensuring they were there) and then
went thru the DDNAMES logic to ensure they were there.
Sort of silly really. Now if you ask for GOOVOO, DATES,
etc., it allocates the datasets and keeps track of them,
so now, the only time it goes thru the DDNAMES logic is
when that argument is used.
Thanks to Jim Horne, Lowe's Companies, USA.
Change 27.247 FLAG1 tests for HyperBuf optional segments overlapped,
FORMATS causing some optional variable to be populated when they
VMACHBUF should have been missing; DATALAS-ESTDBUFS if FLAG1='1.'
Sep 9, 2009 and EXCPIPTH-INDXCISZ if FLAG1='.1'. The three tests are
now '10', '11', and '01' to only appropriately input.
-New $MGHBUFT format decodes FLAG1 to identify the type of
optional segment, if any, in this record.
Thanks to MP Welch, SPRINT, USA.
Change 27.246 Change 27.127 added KEEP= to TAPES, but variables DSN
DAILYDSN DSNBACTV and STPNAME were not kept, causing UNINITIALIZED
Sep 9, 2009 VARIABLE messages.
Thanks to Thomas Heitlinger, FIDUCIA IT AG, GERMANY.
Thanks to Sieghart Seith, FIDUCIA IT AG, GERMANY.
Change 27.245 zIIP and zAAPs are added to SAS/GRAPH hourly workload
GRAFWRKX reports, using PDB.RMFINTRV.
Sep 8, 2009
Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.
Change 27.244 Variable OTRANNUM in VMAC110 was correctly input &PD.4 if
VMAC110 IMACEXCL was used, but the default INPUT without IMACEXCL
Sep 8, 2009 was incorrectly input as &PIB.4.
Thanks to Scott Barry, SBBWorks Inc, USA.
Change 27.243 Cosmetic, and only for MXG QA. SAS Option CHARCODE is
FORMATS enabled in FORMATS (Change 13.319) so that two-character
Sep 7, 2009 operators ?< and ?> can be used on both EBCDIC and ASCII
in place of Left Squiggly and Right Squiggly Brackets,
where they are needed for valid syntax for OTHER operand.
This change reinstates the default Option NOCHARCODE at
the end of FORMATS. The observed problem was seen only
in the single-step QA job (which begins with FORMATS);
with CHARCODE left enabled, the label of two variables
(TDSL12TY and QW0350SL), that happened to contain ?) text
were changed by CHARCODE to a right squiggly bracket, so
QA labels in DOCVER were NOT the actual variable labels.
These two-character operators are CHARCODE-translated:
Symbol Two-Character Operators
backquote (`) ?:
backslash (\) ?,
left brace ({) ?(
right brace (}) ?)
logical not sign (¬ or ^) ?=
left square bracket ([) ?<
right square bracket (]) ?>
underscore (_) ?-
vertical bar (|) ?/
Change 27.242 -Elimination of Numeric to Character Conversions in tests
ASUMCICS for VGETOBS.
ASUMCICX -If MXGMQADD=NO was specified but the _INMQ macro was not
VMXGUOW nulled, UNINITIALIZED VARIABLE messages were printed for
Sep 8, 2009 all of the MQ variables.
Sep 28, 2009 -If CICSTRAN has zero observations, PDB.ASUMUOW cannot be
populated, but it will be created with zero observations,
and MXGERROR message is printed on the log, and reading
of DB2ACCT/MQ data will not be done.
-Variable MQTRAN created in PDB.ASUMUOW to count MQs.
-Variable CPUMQMTM created in PDB.ASUMUOW as the sum of
QMACCPUT (now zero) WTASOTCT, WTASCMCT, and WTASBACT.
-Variable CPUUOWTM created in PDB.ASUMUOW as the sum of
CPUTM (CICS), DB2TCBTM (DB2) and CPUMQMTM (MQ-Series).
-Variable CPUTM (TASCPUTM+CPURLSTM) is created in PDB.CICS
by either ASUMCICS or ASUMCICX.
-VMXGOPTR stashing/revisions for OBS=0.
Change 27.241 SMF 80 record for RACFEVNT=79 with EXTLNTYP=379 segment
VMAC80A with EXTLNLEN=130 caused INPUT STATEMENT EXCEEDED RECORD
Sep 7, 2009 LENGTH ERROR because MXG only INPUT RACF379 $VARYING128.
The INFORMAT in that INPUT is now $VARYING255.
Thanks to Matthew Chappell, Queensland Transport, AUSTRALIA.
Change 27.240 Cosmetic. Five R745Vxxx variables were added in 2000 to
VMAC74 TYPE74CA dataset, but the "DEVICE LSA SECTION" doesn't
Sep 7, 2009 exist and those variables are always missing or blank.
Their labels were changed, especially R745VSER, to avoid
confusion, and now are:
R745VBYW='R745VBYW*ALWAYS MISSING*DOES NOT EXIST
R745VFLG='R745VFLG*ALWAYS BLANK*DOES NOT EXIST
R745VNTR='R745VNTR*ALWAYS MISSING*DOES NOT EXIST
R745VNUM='R745VNUM*ALWAYS MISSING*DOES NOT EXIST
R745VSER='R745VSER*ALWAYS BLANK*DOES NOT EXIST
Thanks to Ray Dunn, CIGNA, USA.
Thanks to Deborah L. Soricelli, CIGNA, USA.
Change 27.239 MXG's full QA stream executes successfully with WPS 2.4
AUTOEXEW under both z/OS 1.9 and Windows/XP; essentially all MXG
MXGWPSV2 programs are now executable under WPS 2.4.
UTILSPAC
VMACEREP These changes are made in WPS 2.4:
VMACSMF -The runtime performance problem with PROC SQL has been
VMXGVTOC corrected, so the testing of the ANALCISH member with
Sep 6, 2009 REPORT=ALL is reinstated in the WPS QA job stream.
Oct 8, 2009 -The PROC PLOT option VPOS is now recognized.
Oct 13, 2009 -The option MAUTOLOCDISPLAY is now recognized.
-The INFILE option CCHHR is supported; circumvention code
that bypassed for QA execution is now revised to test
for &WPSVER GE 2.04 so these programs can now be used on
z/OS: TYPEEREP, VMXGVTOC, and UTILSPAC.
-The _INFILE_ Special Variable is now supported.
-Change 27.110 lists the other MXG programs that cannot
be run as-is with WPS; WPS replicates SAS V8.2, so the
new-in-SAS V9 features are, in general, not supported.
-For z/OS, the MXG JCL procedure MXGWPSV2, the DSNAME for
the WORKMDL='HLP.WPS.SASHELP' replaces WPSDATA because
Model datasets are no longer specified during install.
-The member AUTOEXEW is the example "autoexec" for WPS;
the members AUTOWPS and AUTOEXWP were only for testing
and have been deleted.
-The comments were revised in AUTOEXEW to identify options
that WPS does not currently support; none are required:
WPS 2.4 added supports these OPTIONS
OPTIONS MAUTOLOCDISPLAY;
OPTIONS SORTSEQ=ASCII;
OPTIONS VALIDVARNAME=V7;
-On z/OS, WPS requires a larger REGION size than SAS, with
BUILDPDB needing REGION=230M while SAS used REGION=125MB.
For the full QA job, however, WPS needed a REGION=1200MB,
while SAS V9.2 needed REGION=165MB. WPC will investigate
why that large region was required, but it appears to be
unique to the MXG QA job, which executes over 20,800 DATA
and PROC steps. A large region requirement has not been
reported as an issue by any site running MXG under WPS.
WPS QA took 120 CPU minutes, SAS QA took 53 minutes, on
a z/OS machine with SU_SEC=10000.
-Oct 30: WPS 2.4 supports the FILENAME=variable option on
the INFILE statement, so VMACSMF was revised.
Change 27.238 ERROR: SRCE1 HAS ALREADY BEEN DEFINED AS NUMERIC if some,
ANALDB2R but not all of the AUDIT sub-reports were requested.
VGETOBS The repair led to a MAJOR cleanup of ANALDB2R that also
VMXGSUM significantly reduced the run time (from 5 minutes to
VFMT102 a few seconds for the AUDIT reports).
Sep 6, 2009 Originally:
-Data step creates DB2WORK as union of all input datasets
-Data step creates DB2WORK1 TIMES from DB2WORK
-SORT DB2WORK1 (with MANY variables, long times possible)
-SORT TIMES
-MEAN TIMES into TIMERNGE
-Data step creates PREPRINT merging DB2WORK1 TIMERNGE
-DATA _NULL_ data step does printing
Now
-For each audit type if the data is present and non-zero
OBS View into SORT
-TIME view using datasets created into SORT
-MEANS of TIME into TIMERNGE
-Data step creates view PREPRINT using only the datasets
created in first section and TIMERNGE
-DATA _NULL_ step does printing code for datasets that
does not exist is never generated
-The DATABASE= argument did not select for AUDIT reports.
Note that if the SMF data does NOT include the open event
record (opened before the beginning of this SMF data),
the printed database will be the undecoded hex value,
and won't be the decoded database name in text.
-The VGETOBS, VMXGSUM, VMFT102 members were NOT altered in
this change, but their new updates (Changes 27.237,
27.234, 27.236) are required to support this change to
ANALDB2R.
Thanks to Sam Knutson, GEICO, USA.
Thanks to Henry Boone, GEICO, USA.
Change 27.237 Enhancement. If no DDNAME argument (zero length) then
VGETOBS the DATASET argument is examined and if is x.y, it will
Sep 5, 2009 be split into DDNAME and DATASET so the PROC SQL can be
Sep 28, 2009 invoked. If DATASET contains x.y syntax AND there is a
DDNAME argument present, VGETOBS will fail with message
that that is not allowed.
Change 27.236 Cosmetic corrections to eliminate character to numeric
VFMT102 conversion messages; VFMT102 in ANALDB2R, and ANAL30DD.
ANAL30DD
Sep 5, 2009
Change 27.235 These six variables in MQMQUEUE are now converted to the
VMAC116 local time zone; previously, they were on GMT:
Sep 4, 2009 WQOPENTI WQCLOSTI WQTTTIME WTASSTRT WTASINTS WTASINTE
Oct 12, 2009 The algorithm used to calculate the GMTOFF in the absence
of the actual value in the record now used is:
GMTOFF=3600*FLOOR(100*(FLOOR(SMFTIME/100)
-FLOOR(WTASINTE/100))/3600);
and the correction would then be:
WTASINTE=WTASINTE+GMTOFF; .
Change 27.234 VMXGSUM is revised so an OUTCODE= argument is not needed
VMXGSUM in many cases where it was previously required, so those
Sep 5, 2009 VMXGSUM callers that could be revised to remove OUTCODE=
are changed, thereby eliminating the second DATA step,
and, a full pass of the output dataset.
Previously OUTCODE= arguments were needed to set LENGTH
and FORMATs, but the SAS V8 INHERIT option made the extra
step unnecessary.
-The second data step can be skipped if INTERVAL= NE NONE
and the DATETIME= argument's variable is in the BY list.
-Conditions that will force the second data step:
%IF &NUMNORM NE 0
OR &ERASEOUT NE NO
OR %LENGTH(&OUTCODE) NE 0
OR %LENGTH(&OUTCODE1) NE 0
OR %LENGTH(&OUTCODE2) NE 0
OR %LENGTH(&FREQ) NE 0
OR %LENGTH(&DURATM) NE 0
OR &INTERVAL NE NONE
OR &NEWSHIFT EQ Y
OR &SASVER LT 7
Change 27.233 Debugging PUT statement now commented out.
VMAC117
Sep 4, 2009
Thanks to Scott Barry, SBBWorks, Inc, USA.
Change 27.232 TMON/DB2-created SMF 101 Subtype 0 record has an invalid
VMACDB2 OFFQLAC value, @1875 vs the real @1879 location, and the
Sep 3, 2009 extra 4 bytes were added to make QLACLEN=232 when only
228 bytes are actually present. Unfortunately, QLACLEN
of 232 says the QLACOFF1 offset to a "truncated QLACLOCN
field" exists in two of those last 4 bytes, so MXG INPUT
the QLACOFF1 offset and attempted to INPUT, causing an
INPUT STATEMENT EXCEEDED RECORD LENGTH ERROR. This
(possibly temporary) change detects the record is NOT an
IBM record (because OFFQLAC is GT OFFPROD), adds 4 to
OFFQLAC and subtracts 4 from LENQLAC so MXG can input the
mis-aligned record, and sets TMDBQLAC='Y' flag that this
was done.
-QLACMDWT is a binary value in the TMON/DB2 record, but it
is a floating point value in IBM records, so this change
uses TMDBQLAC if set to INPUT the incorrect informat.
-Support at TMON/DB2 will be contacted and this text will
be updated when they respond.
Thanks to Mary Vollmer, MGIC, USA.
Change 27.231 The four listed ASUMs did not create variable ZDATE/ZTIME
ASUMDB2P while the other thirty-seven ASUMs did.
ASUMDB2S
ASUMDB2G
ASUMDB2S
Sep 3, 2009
Thanks to Denise Willers, InfoCrossing, USA.
Change 27.230 Variable LASTCLAS in IMF dataset CIMSPROG (from 'F9'x)
VMACCIMS was incorrectly INPUT @77 as $CHAR1, but it is now INPUT
Sep 2, 2009 @76 as $CHAR2 and formatted $HEX4.
Dostları ilə paylaş: |