elapsed times. MXGACC01=YES creates a summary by
QWHSSTCK QWHSSSID QWHCATYP and QWHCAID. The datetime
value will reflect the value in the interval parameter.
If you use an interval of DATE/WEEK/MONTH the format of
QWHSSTCK is adjusted to DATETIME7. and any other interval
value it is adjusted to DATETIME13. If no interval is
specified it is adjusted to datetime16.
Example 1:
%ANALDB2R(MXGACC01=YES,INTERVAL=DATE,
PMACC01=NO,PMACC02=NO,PMSTA02=NO);
creates a summary of all DB2ACCT records in the input
PDB.DB2ACCT dataset, at date interval.
Example 2:
%ANALDB2R(MXGACC01= IF QWHCATYP=4; ,INTERVAL=DATE,
PMACC01=NO,PMACC02=NO,PMSTA02=NO);
creates a summary of all CICS DB2 account records with
an interval of date.
-MXGACC02=YES creates an unsorted detail report for every
record in DB2ACCT. Given the volume this is most likely
NOT what you want to do, without some selection criteria.
Example 1:
%ANALDB2R(MXGACC02=IF ELAPSTM GT 60 AND QWHCATYP=4;,
PMACC01=NO,PMACC02=NO,PMSTA02=NO);
creates the detail report, but only for CICS DB2 that
executed for over 60 seconds.
Thanks to Ron Wells, Springleaf Financial Services, USA.
Thanks to Richard Brooks, Springleaf Financial Services, USA.
Change 30.185 -VFMT102 is invoked by READDB2/ANALDB2R to build formats
ANALDB2R to decode the hex DBID and OBID values in the DB2 IFCID
READDB2 105/107 records, but it could be executed many times if
VFMT102 multiple IFCIDS or multiple reports were requested. This
VMXGINIT change prevents multiple executions within a single pass
Sep 15, 2012 of data by setting the global macro variable VFMT102 when
it is run the first time, and testing it to prevent the
re-execution. If ANALDB2R/READDB2 is restarted in the
same SAS session (possibly pointing to different data),
VFMT102 will be re-executed.
-Variable QW0145LN is printed instead of QW0145LO and $4.
format is added for QW0145SC in ANALDB2R audit reports.
Change 30.184 New INCODE= parameter added to permit input selection.
ANALINIT For example:
Sep 12, 2012 %ANALINIT(INCODE=IF DATEPART(READTIME) GE TODAY()-1;);
would report on only jobs submitted since yesterday.
Change 30.183 MXG 30.05/30.06. PROC FORMAT overlapping range error can
DOC occur with READDB2/ANALDB2R. Change 30.140 removed the
Sep 15, 2012 datetime from the format, but duplicates can exist if the
input spans a very large time frame. VFMT102 in 30.04 or
earlier can be used, so it is stored in the new VFMT102X,
created ONLY so that support@mxg.com can send that one
(renamed) member if you encounter the error. The VFMT102
was altered in Change 30.185 so it cannot be sent without
sending additional members to circumvent this error.
But: VFMT102X was removed in MXG 30.30.
Change 30.182 Support for zNEXT EC12 processors with 101 engines.
VMAC7072 There are no new variables kept in TYPE70 since all of
Sep 8, 2012 the CPU-specific variables for CPU 64 or higher have been
output in TYPE70EN dataset since Change 28.175.
Change 30.181 The "Split 70" logic did not provide exits for four data
EXTY70EC sets TYPE70EC, TYPE70EL, TYPE70EN, and TYPE70SP because
EXTY70EL they were thought to be internal and temporary, but they
EXTY70EN now have exits implemented so that users can make changes
EXTY70SP to those four datasets if needed.
VMAC7072
Sep 7, 2012
Thanks to Ruth Leonhardt, Xerox, USA.
Change 30.180 -Two problems both found in testing that does not impact
VMXGSUM the output but can improve efficiency of execution.
Sep 7, 2012 Case 1:
%VMXGSUM(INDATA=PDB.DB2ACCT,
OUTDATA=DB2SUM,
SUMBY=QWHSSSID,
SUM=DB2TCBTM,
MAX=MAXCPU,
INCODE=MAXCPU=DB2TCBTM;
);
In this case, the MXGSUM1 dataset contained all 500+
variables from DB2ACCT when only 3 were needed, because
the KEEP= list was not being applied to the output
dataset. Now, all variables in the parameter lists is
added as a KEEP statement to reduce DASD space required.
Case 2:
%VMXGSUM(INDATA=PDB.DB2ACCT,
OUTDATA=DB2SUM,
SUM=DB2TCBTM,
MAX=MAXCPU
);
In this case, the MXGSUM2 dataset was created by the
SORT and since there was no INCODE, the MAXCPU variable
did not exist so the PROC MEANS failed with a variable
not found error. Now, the KEEP logic after the SORT is
NOT suppressed when there is no first DATA step.
-Cosmetic. Deletion of temporary datasets used during the
course of VMXGSUM moved from the end to the points in the
code where they are no longer needed avoiding confusion
of the programmer on when/where they should be deleted.
Change 30.179 Formula changes from John Burg's SHARE presentation. For
ASUM113 the z196 (VN=2) 0.59 replaced 0.57, 1.67 replaced 1.6, &
VMAC113 0.61 replaced 1.00; the z10 (VN=1) 0.31 replaced 1.00.
Sep 3, 2012
Sep 17, 2012
Change 30.178 -Using a numeric variable in your SORTBY= tailoring option
ANALDB2R caused ERROR 48-59 citing PUT @1 &SORT $CHAR16 text. That
Sep 2, 2012 $CHAR format is not only NOT needed here (prints SORTBY=
Sep 4, 2012 variable's value, format not needed because all possible
variables here are MXG-formatted), it is THE PRESENCE of
the $CHAR format that causes this error, so its REMOVAL
eliminates this unintended consequence and oversight, and
now numeric variables like CONNTYPE and QWHCATYP that
exposed the error can be used in your SORTEDBY list, and
they will be added in a new QA test of ANALDB2R.
-In testing this change it was discovered that if you
ran PMACC03 without all of the input datasets (DB2ACCTP,
DB2ACCTB, DB2ACCTG) it would fail calling ASUMDB2p/b/g
members for those datasets. If the datasets do not exist
now, there will be an MXGNOTE printed on the log telling
you what was found, with processing to continue without
the missing datasets.
Thanks to Howard L. Curtis, Duke Energy, USA.
====== Changes thru 30.177 were in MXG 30.06 dated Sep 1, 2012=========
Change 30.177 SAS 9.2 z/OS ONLY VGETOBS didn't recognize tape datasets.
VGETOBS On z/OS, SAS 9.2 returns a blank in DICTIONARY.TABLES for
Aug 30, 2012 the number of OBS in a tape dataset, which caused VGETOBS
to return a blank value, but both SAS 9.1.3 and SAS 9.3
returned a bogus set of non-blank characters that proved
there was a tape dataset, so VGETOBS returned a one value
(it found a tape dataset), and VGETOBS could print a log
message that it had detected non-blank non-numeric text,
(but only if the NOEXIMSG internal option was enabled to
print suppressed log notes). Now, a blank value invokes a
new test (VGETDSN length GT 0) for the dataset name that
is used to return a value of one for a tape dataset.
Thanks to Robert Stoffregen, Great Lakes Educational Loan Svcs, USA.
Change 30.176 -Some cosmetic changes to better document the records that
ANALDB2R are being reported, and new options for the AUDIT= parm:
Aug 28, 2012 AUDIT=DML < runs as it currently does uses 143 and 144
Aug 31, 2012 AUDIT=DMLREAD - processes only IFCID 144 for DML
AUDIT=DMLWRIT - processes only IFCID 143 for DML
and a missing semicolon was found.
-Requesting PMACC02=YES by itself, after reading SMF plus
executing the ASUMDB2x members, resulted in overlaying
many old-style macros that caused error messages. Those
old-style substitution macros are now cleared in PMACC02.
Change 30.175 Support for IFCID=271 DB2 AUDIT PERMISSIONS trace record.
VMAC102 Dataset existed but none of the IFCID-specific fields
Aug 28, 2012 were input.
Change 30.174 -Allocation utilities VMXGALOC & VGETALOC permitted 8-byte
VGETALOC dates formats for mmddyy, ddmmyy, and yymmdd, but mmddyy
VMXGALOC and ddmmyy generate slashes in the constructed directory
Aug 28, 2012 names; this change allows 6 8 and 10 byte formats for the
Sep 16, 2012 mmddyy and ddmmyy but will replace them with the formats
mmddyyd and ddmmyyd that use a - rather than a /, like
the yymmdd format that already uses a - as documented.
-VGETALOC uses %LEFT %macro supplied by SAS in SASAUTOS
directory and MXG options in AUTOEXEU.SAS or AUTOEXEC.SAS
include SASAUTOS and MAUTOSOURCE to "autocall" it, but
%LEFT was not actually required in VGETALOC, so it was
removed so VGETALOC would not fail even if the site did
not have their SASAUTOS correctly allocated in AUTOEXEU.
-GETDATERANGE= parameter will now accept a number of days
relative to today to search. For example:
%VGETALOC(GETDATERANGE=-5 -9,BASEDIR=C:\MXG,
DATEFMT=YYMMDD.);
will look for directories in C:\MXG with dates of
12-09-06 thru 12-09-02 inclusive.
There is now also an MXGNOTE if any directories are not
found.
Thanks to Patricia J. Jones, DST Systems, USA.
Change 30.173 WARNING: "INVALID QMDA SEGMENT ACCOUNT values are blank"
VMACDB2 for records with QMDALEN=258, but QMDAASLN=110 (so there
Aug 27, 2012 really were only 110-56=54 possible data bytes remaining)
were printed because MXG incorrectly used QMDASFLN=247 as
the length of accounting data. But these records don't
contain JOB accounting data: text after QMDASFLN is an
exact repeat of the first 28 bytes of the QMDA segment,
QMDAPTYP,QMDAPVER,QMDAPREL,QMDAPMOD, and QMDAPLAT.
Now, MXG uses QMDAASLN instead of QMDASFLN to print any
warnings (so these false positives won't print), and the
text that follows QMDASFLN is INPUT into QMDAACCT based
on QMDAASLN. But, since QMDAACCT has never been KEPT in
PDB.DB2ACCT this change was really just cosmetic so the
false warning won't be printed on the log.
Thanks to Paul Billick, QVC, USA.
Change 30.172 -RMF III Enhancements, more:
VMACRMFV -New variables are added to the ZRBCPU file:
Aug 28, 2012 CPUCAPAD CAPACITY*ADJUSTMENT*INDICATION
CPUCAPRS CAPACITY*CHANGE*REASON
CPUDTIME TIME*DELTA*BETWEEN 2*DIAG CALLS
CPUIMMSU IMAGE*CAPACITY*MSU*LIMIT
NOTE: CPUDTIME will be missing for LPARs running as VM
Guests.
-New variables are added to the ZRBLCP file:
LPARCLUS LPAR*CLUSTER*NAME
LPARGRPM GROUP*MAXIMUM*LICENSE*UNITS
LPARGRPN CAPACITY*GROUP*NAME*FOR*LPAR
LPARONCS CENTRAL*STORAGE*ONLINE*IN MB
LPAROSNA OS*INSTANCE*NAME
LPARUPID USER*PARTITION*ID
NOTE: Variables LPARCLUS, LPARGRPN, LPARGRPM, LPARONCS
require RMF Monitor III data at the z/OS 1.12 Level to
be populated.
-Change 29.013 for CPCGRPLM, text and the INPUT statement,
were both reversed; the four byte variable is input first
and then the reserved four bytes are skipped.
Change 30.171 I had removed references to CICS stats dataset CICMNR, as
VMXGINIT IBM had never externalized that DSECT, so MXG had never
Aug 27, 2012 created any observations, and because it kept showing up
as an exception on QA reports. However, I also removed
the dataset token macro variables &PCICMNR and &WCICMNR
from VMXGINIT, which cause UNRESOLVED MACRO ERROR when
the new VMXGINIT was used with MXG 30.02 or earlier.
I should never have removed those macro variables and so
they are restored to be defined in VMXGINIT.
Thanks to Pat Hansen, ADP, USA.
Thanks to Mike Chaves, ADP, USA.
Change 30.170 Large increase in CICLDR observations count, 1,700,000,
EXCICLDR with only 70,000 CICSTRAN observations; there is one obs
Aug 27, 2012 for each program that has been active, but almost all of
the observations have zero Fetch Count (LDRFC) so this
change now output CICLDR observations ONLY if LDRFC is
no zero; that test is located in the EXCICLDR exit member
in case you ever want to change and output them all.
Thanks to Chuck Hopf, Independent Consultant, USA.
Change 30.169 -Dataset T102S083, IFCID=83, always had zero observations
FORMATS due to an LE test for QWHSRELN that should have been GE.
VMAC102 -IFCID=145 record with unexpected QWT02R1L=0 ABENDed with
Aug 25, 2012 invalid DO loop value. The records are continuations for
Oct 12, 2012 an SQL command with a total of 98,567 characters, so that
multiple SMF record are written, and the continuation SMF
records do not contain the expected R2O segment, so MXG's
logic was revised. However, a problem has been opened
with DB2 Support because the QW0145LE length-field is not
correct, and there is no explicit offset field to the SQL
text in both the initial and continuation records, so the
MXG input is heuristic based on the available records and
the actual SQL text length in each observation is in the
MXG-calculated QW0145LNTXT variable.
-Oct 12: IBM APAR PM74186 corrects the SQL length error.
-These new-in-DB2-V10 QW0145 fields are INPUT and kept:
QW0145IS QW0145SI QW0145OBNUM QW0145ACNUM
QW0145LL QW0145LNTXT
and format $MGD145I decodes the Isolation Level QW0145IS.
Thanks to Chuck Hopf, Independent Consultant, USA.
Change 30.168 Enhancement to ASM program that recreates RECFM=VB or VBS
ASMDBLKU data from downloaded ASCII "RECFM=U" that is now reloaded
Aug 24, 2012 back to z/OS into 32760 byte chunks that ASMDBLKU reads
Aug 29, 2012 to reconstruct the original VB/VBS file (perhaps so you
can terse it and send it on to a vendor), for sites that
don't have SAS on z/OS (when you would instead use the
MXG UDEBLOCK program to recreate valid VB/VBS files).
-JCL PARM field values of PARM=VB or PARM=VBS are now
supported. The default is VBS if no PARM field is coded.
PARM=VB creates RECFM=VB,LRECL=32756,BLKSIZE=0, while
PARM=VBS creates RECFM=VBS,LRECL=32760,BLKSIZE=0 as in
prior versions of ASMDBLKU. Any other PARM field values
will result in error message DBLKU29S and termination
with Return Code 16.
-New message DBLKU29I shows PARM field value if present.
-Message DBLKU25I now also shows the average LRECL of the
input SMFIN file.
-Message DBLKU26I now also shows the average LRECL of the
output SMFOUT file.
-New message DBLKU27I shows the number of input SMFIN file
records that were read at the minimum and maximum LRECL
values. This provides an idea if the record lengths on
input were biased toward these values.
-New message DBLKU28I shows the number of output SMFOUT
file records that were written at the minimum and maximum
LRECL values. This provides an idea if the record
lengths on output were biased toward these values.
-Maximum LRECL value for the output SMFOUT file was
incorrect in message DBLKU26I.
Change 30.167 MXG 30.04-30.05. The Debugging PUT _N_= YYYYDDD= at line
VMACIMS 3826 is deleted, to eliminate the unwanted log messages.
Aug 24, 2012
Thanks to David J. Schumann, Blue Cross of Minnesota, USA.
Change 30.166 Change 30.153 supported keeping PROGRAM and PROG1-PROGnn
ASUMCICX variables in PDB.ASUMUOW, but its tailoring instructions
ASUMUOW were incomplete, and you may need this updated IMACUOW.
IMACUOW To add PROGRAM (and optional PROG1-PROGnn variables):
VMXGUOW - you must update ASUMUOW to add (only) variable PROGRAM
Aug 24, 2012 to the MACRO _KUOWIDC definition,
- you must update ASUMUOW to add PROGRAM, plus any of the
PROG1-PROGnn variables that you want kept, into your
MACRO _KUOWPTH definition,
- if the PROGRAM name you want/need isn't the PROGRAM in
that last CICSTRAN in this UOW, then you will need to
use this new IMACUOW tailoring and start with Case 5 as
your MACRO _TRANUOW selection, but be aware there still
could be additional site-dependent mods required.
This example adds PROGRAM and PROG1-PROG3:
%LET MACKEEP=%QUOTE(
MACRO _YESOBS %
MACRO _NOOBS %
MACRO _KUOWPTH
EXECAPPL PROGRAM PROG1-PROG3 %
MACRO _KUOWIDC
APPLID USER LUNAME SYSTEM TERMINAL USERCHAR
PROGRAM
%
);
%INCLUDE SOURCLIB(VMXGUOW);
_NOOBS
OPTIONS NODSNFERR NOVNFERR;
_SUOWCIC /*SORT CICSTRAN DATA */
_SUOWDB2 /*SORT DB2 DATA */
_SUOWMQ /*SORT MQ SERIES DATA */
_SUOWSPN /* CREATE ASUMUOW DATASET */
%VMXGUOW;
_YESOBS
OPTIONS DSNFERR VNFERR;
If you use ASUMCICX to summarize the PDB.ASUMUOW CICS in
PDB.CICS output dataset, you may need to add PROGRAM to
the _BSUxxxx macro, as also now documented in comments.
The only code changed in this change was in IMACUOW, but
that is only the addition of the new Case 5 example.
Thanks to Charles Savikas, DCF, State of Florida, USA.
Change 30.165 Cosmetic. Existing $MGTMDAC format assigned to QW0142AC,
VMAC102 to decode A/C/D to ALTER/CREATE/DROP. Note that when an
Aug 23, 2012 MXG $MGxxxxx character format is assigned to a variable,
that variable must be in a LENGTH statement with the
input length; in the absence of a LENGTH statement, the
old $1 character variable is changed to the length of the
longest text in the $VALUE statement for that format.
Change 30.164 Support for six Tandem Prognosis data files creates these
EXTAPCPU six datasets;
EXTAPIPU
EXTAPJOB DDDDDD MXG MXG CREATED
EXTAPOBJ DATASET DATASET DATASET FROM
EXTAPPHY SUFFIX NAME LABEL INFILE
EXTAPVOL
IMACTAPR TAPCPU TAPRCPU TANDEM PROGNOSIS CPU TAPRCPU
TYPETAPR TAPIPU TAPRIPU TANDEM PROGNOSIS IPU TAPRIPU
TYPSTAPR TAPJOB TAPRJOBS TANDEM PROGNOSIS JOBS TAPRJOB
VMACTAPR TAPOBJ TAPROBJECT TANDEM PROGNOSIS OBJECT TAPROBJ
VMXGINIT TAPPHY TAPRPHYSVOL TANDEM PROGNOSIS PHYSVOL TAPRPHY
Aug 24, 2012 TAPVOL TAPRVOLUME TANDEM PROGNOSIS VOLUME TAPRVOL
JCLTEST9
Aug 26, 2012 The TYPETAPR or TYPSTAPR members will create all six MXG
Aug 31, 2012 datasets, reading each of the six input files, but the
Sep 25, 2012 individual datasets can be created with the _Tdddddd
to create and the _Sdddddd token to sort each one. See
examples in comments in VMACTAPR.
-Sep 25: DD MON YYYY HH:MM:SS format for CPU001 supported.
-These problems need to be resolved by Prognosis vendor:
JOBS fields: 014,034,040-044,082,083:
a. Invalid values in 014 - IR_ELAPTIME_STRING
1:29
109-05:50:31
48
b. Invalid values in 034 - IR_STARTTIM_STRING
Values of 19 AUG 2012 and 02 MAY 2012 but the
IR_STARTTIM_TIMESTAMP is the same these records.
c. What are the units, where's the decimal, one obs has:
040 IR_SENDRESP value 0.0185
042 IR_PERFORM value 0.0104
043 IR_RESPTIME value 0.0185
044 IR_CPUSECS value 133877 - if in microseconds,
then 0.133877 is larger than response.
d. Range of values are strange:
082 IR_SEQNUM - 1617862657, 8, and 1628929
083 IR_ANCSEQNO - 1617861633, 0, and 1895169
VOL fields: 061,062,063
e. 061 IR_FULLTIME_STRING 21 OCT 2605: 20:52:57
062 IR_FULLTIME_TIMESTAMP 0
063 IR_FULLTIME_GMT_OFFSET 0
CPU fields 001/002 string and timestamp inconsistency:
f. CPU has IR Time String format 8/20/12 with the time
0:00 (no seconds), but format 20 Aug 2012 0:00:00 is
used in the other records.
g. CPU has IR Timestamp value 2.12212E+17, which doesn't
have enough digits to decode correctly; other records
have 212212195260000000 microseconds, which does have
enough digits and after adding the Tandem constant to
convert from proleptic time, is a valid GMT datetime.
-Notes on data structure issues that are circumvented:
-The record delimiter in the tandem file is the unix "LF"
but that is changed to "CRLF" if the file is copied to a
Windows platform. Macro variable MXGCRLF transparently
sets the TERMSTR option of the INFILE statement to use
the correct delimiter. It is set to TERMSTR=CRLF on WIN
platforms, to TERMSTR=LF on all other ASCII platforms,
and it is blank on z/OS. It can be changed with %LET.
-The clue you have the wrong record delimiter is an error
"ARRAY EXCEEDED" that prints the first two records where
you can see the text date field after the last IR header
name is listed as another field in that first record.
-The JOBS "comma-delimited" file has double quotes around
all character fields, and some contain embedded commas,
which required special handling due to MXG's use of SCAN
function which has no DSD option. A vendor option to
to change the delimiter to a tab would have been nice.
Double quotes were removed, and the commas restored.
-GMT Offset is not provided in the IPU record.
-All fields with "PERC" are labeled (MXG-style) "PCT".
Change 30.163 Windows IIS Server Log record with strange URIQUERY value
VMACWWW C63BCB3DB05CA94A1ECF2B1C13C048097E3456C966691FE6EEB4168
Aug 21, 2012 D55EB32905A6221CB8CA5C525
Sep 28, 2012 that did not contain the expected equal sign caused MXG
to loop; that unexpected text value is now protected.
-Data records with ^M (CR) were created when IIS file was
moved to AIX could be stripped using DOS2UNIX command,
but can also be read with MXG using
%LET MXGCRLF = TERMSTR= CRLF ;
before the %INCLUDE of TYPEWWW, because this change added
&MXGCRLF in the INFILE statement in VMACWWW.
Thanks to Xiaobo Zhang, FISERV, USA.
Change 30.162 Documentation. The RACF field AUDITFID is MXG variable
VMAC80A RACF264 in RACF event datasets TYPE8028/29/30/44/45/8055,
VMACRACF created from SMF 80 records, a 16-byte $HEX32 formatted
Aug 21, 2012 variable because it contains both hex and text:
e.g.: 'C8C6E2F0F0F93D0B00000000004D385B'X.
and the RACF field AUDITFID is MXG variable AUDITID in
dataset RACF0900 from IRRDBU00 RACF UNLOAD UTILITY data,
a $32 character variable with the above hex as text.
Both variables have been in MXG for years, but I have
added "AUDITFID" text to both variable's label.
Thanks to Mark Jacobs, Time Customer Service, USA.
Change 30.161 -RMF III Further Enhancements:
ASMRMFV -A new message RMFV033E is issued when a VSAM Read Error
Aug 19, 2012 occurs to show the current and maximum Relative Record
Number, RRN, of the RMF III record being read, and the
return/reason codes from the failed read operation. This
message will aid in the investigation of sporadic VSAM
read I/O errors that go away when ASMRMFV is rerun. We
will use these messages to circumvent the error.
-NOTE: We have never had a VSAM Read error repeat with a
rerun; if you error with ABREAD please add a //SYSUDUMP,
and send the dump to support@mxg.com so we can resolve.
-The SHOWCB macro calls that collect RMF III VSAM file
Dostları ilə paylaş: |