attributes have been consolidated to a single call to
reduce code path length.
-New parameter ABREAD/NOABREAD lets you control ASMRMFV's
action when a VSAM read I/O error does occur:
-ABREAD is the default and duplicates the current ASMRMFV
behavior: a USER 0998 abend occurs on the first instance
of a VSAM read I/O error and no further data is written
to the RMFBSAM output file by ASMRMFV. Alias is ABR.
-NOABREAD suppresses the above abend and the action taken
depends on the data being read. Alias is NOABR. On the
first read of an RMF III VSAM data set the action is to
close this VSAM dataset and then open the next RMF VSAM
file (if any). Otherwise, if the error occurs on a
subsequent read for sample set data, the problem sample
set is skipped and ASMRMFV attempts to read the next
sample set from the same data set (if any).
-ASMRMFV ends with Return Code=12 if NOABREAD is in
effect and a read I/O error has occurred.
-Program prologue documentation is updated to discuss
ABREAD and NOABREAD and new Return Code 12.
-With either ABREAD or NOABREAD, the output RMFBSAM file
is likely to be missing data after a read I/O error.
-NOTE: When ASMRMFV is being executed under the CLRMFV
CLIST, the abend (if ABREAD in effect) is trapped, and
with either ABREAD or NOABREAD, CLRMFV will eventually
end with Return Code=12 after a VSAM read I/O error.
You could use the JCL COND parm to test for RC=12 in the
subsequent PDB build, if you want to also terminate the
creation of the RMF III PDB datasets after a VSAM error.
Thanks to Rodger Foreman, TransUnion, USA
Thanks to Betty Wong, Bank of America, USA
Change 30.160 -ASMIMSL7: ASMIMSL6, to bypass 0C7 ABEND due to ARRVDATE
ASMIMSL7 containing invalid Packed Decimal data, by skipping the
ASMIMSL8 0C7'ing-records so the rest of the log can be read. If
Aug 18, 2012 invalid ARRVDATE is found, a new error "NOPD" message
Aug 30, 2012 will be written to the job log with the first 25 bytes of
the record in hex. Since we have added this diagnostic,
no reports of NOPD messages have been reported.
-ASMIMSL8: ASMIMSL7 ABEND 0C4 occurred when an INQUEUE
record had zero record length in the first four bytes, in
a record that was to be discarded due to other errors
(dupe key). This iteration deletes the defective record
without the 0C4 ABEND.
-We have been unable to replicate either the 0C4 or 0C7
condition with files from three runs, so it appears the
source is a corrupted INQUEUE file, and since a VERY
small number of records are being recycled, the safest
solution now would be to eliminate the use of INQUEUE
for a few cycles to confirm that was the culprit, and
then it can be reintroduced while watching the job logs
for MXG error messages, in case the corruption reoccurs.
Change 30.159 Support for Microsoft Exchange 2010 incompatible changes
VMACNTSM to MSEXCHANGEIS and MSEXCHANGEIS MAILBOX objects. Creates
Aug 18, 2012 variables MSIS0001-MSIS0051 MSISCQTH in MSEXCHIS dataset,
and in dataset MSEXCHPU variables MSPU0001-MSPU0074 and
new per-second rate variables MSGDLVPS MSGRECPS MSGSNTPS
MSGSUBPS (whose new per-sec values are also converted to
per-minute and stored in the existing per-minute
variables MSGDLVPM MSGRECPM MSGSNTPM MSGSUBPM).
Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.
Change 30.158 -VMXGSUM in 30.05 could leave temporary datasets KEEPDATA
VMXGSUM KEEPERS VAR1 VARS or VAR2 in the //WORK library, which
Aug 15, 2012 had no impact on your MXG programs, but as they were also
Sep 4, 2012 left behind in the MXG QA job, they were seen as "real"
MXG datasets and created DOCVER entries.
-New handling of error conditions when interactive: rather
than terminating the SAS Session, global macro MXGOPTKILL
that is set in VMXGOPTK (the macro that drives the keep
logic and is part of VMXGSUM) gracefully shuts down the
VMXGSUM execution but preserves the interactive session.
-Messages about too-long-text were revised.
Change 30.157 New REPORT THREE-A for IMACICEZ, IMACICE1, and IMACICE2
UTILEXCL tailoring members now identifies the number of fields and
Aug 13, 2012 the lengths that must be updated in those three members.
It may be necessary to use the MCTSSDRL field in the DO
groups for these three optional segments.
Thanks to Scott Barry, SBBWorks Inc, USA.
Change 30.156 -Variables TOTLSESS ACTVSESS INACSESS in TERMSERV dataset
EXNTICAS for the Terminal Services object were input in that order
IMACNTSM in Windows Server 2003 (NTVERSN='5.2'). In Windows Server
VMACNTSM 2008-R2 (NTVERSN='6.1') the order was changed to ACTVSESS
VMXGINIT INACSESS TOTLSESS, so now, one of two INPUT statements is
Aug 10, 2012 executed, based on NTVERSN.
-Support for ICA Session object creates ICASESSN dataset.
dddddd dataset description
NTICAS ICASESSN ICA Session
Thanks to ???, ???, ???
Thanks to Mark Friedman, Demand Technology, USA.
Change 30.155 -Support for the WebSphere Asynchronous Section in subtype
EXT1209A nine records creates new TYP1209A dataset
IMAC120 dddddd dataset description
VMAC120 T1209A TYP1209A WebSphere Subtype 9 ASYNC
VMXGINIT These variables in TYP1209A and TYP1209E correspond and
Aug 9, 2012 can be used to compare observations in those datasets:
Oct 16, 2012 TYP1209A TYP1209E
SM1209GP SM1209CG
SM1209GQ SM1209CR
SM1209GR SM1209CS
SM1209GT SM1209CU
SM1209GV SM1209CV
-Unrelated, variable SM1209CX was found to have been
incorrectly divided by 4096, in TYP1209E dataset.
-Oct 16: The August change also corrected variables
SM1209DL, SM1209DM, and SM1209DN service units.
Thanks to Joseph L. Babcock, JPM Chase, USA.
Thanks to Tom Bubnash, SSA, USA.
Thanks to Babatunde Ashiru, SSA, USA.
Thanks to Jim Hare, Shared Services, CANADA.
Change 30.154 Velocity Software ZVPS (a/k/a XAM) new User Record with
EXXAMUSV with USERTYPE='VCPU' creates new dataset:
FORMATS dddddd dataset description
IMACXAM XAMUSV XMUSVCPU Virtual CPU per User Statistics
VMACXAM Dataset XMUSVCPU contains the USEACT and USEINT variables
VMXGINIT plus Virtual CPU Address (VMDCPUAD) and Engine Type in
Aug 9, 2012 VMDPUTYP, decoded by new MGXAMTY format (CP, ZIIP, etc),
so there is one observation for each USERID and VMDCPUAD
for each MONWRITE interval.
Thanks to Patricia Hansen, ADP, USA.
Thanks to Mike Chaves, ADP, USA.
====== Changes thru 30.153 were in MXG 30.05 dated Aug 8, 2012=========
Change 30.153 -See Change 30.166. Documentation updated.
VMXGUOW -PROGRAM names PROG1-PROGnn are created (TRAN1-TRANnn),
Aug 8, 2012 with the HOWDEEP= argument (default 10) setting the "nn"
to be created, but you must also use KUOWIDC to list the
variables you want to be kept. You can put the statement
MACRO _KUOWIDC PROG1=PROG9 % in IMACKEEP tailoring, or
use %LET MACKEEP= MACRO _KUOWIDC PROG1-PROG9 %; in SYSIN.
-Documentation of CICS transaction counts:
An observation in CICSTRAN cay be only one of many CICS
"segments" that make up a "unit of work", UOW, a "real"
transaction. Counting the number of observations in the
CICSTRAN dataset does NOT tell you how many actual CICS
Thanks to Charles Savikas, DCF, State of Florida, USA.
"transactions", or "units-of-work" were executed.
MRO trans typically have at least two observations in
the CICSTRAN dataset for a unit of work: one is from
the TOR region/applid and one is from the AOR region.
In ASUMCICS dataset (summarized CICSTRAN), the variable
NUMTRANS is the number of CICSTRAN observations, i.e.,
the inflated count of MRO CICS segments.
In ASUMCICX dataset (summarized ASUMUOW), the variable
NUMTRANS is the number of ASUMUOW observations, i.e.,
the "correct" count of transactions/units-of-work).
In ASUMUOW dataset, (created from CICSTRAN/DB2ACCT/MQ):
MROTRAN - Count of CICSTRAN observations in this UOW,
inflated segment count.
DB2TRAN - Count of DB2ACCT observations in this UOW.
MQTRAN - Count of MQMACCT/MQMACCTQ obs in this UOW.
Thanks to Scott Barry, SBBWorks Inc, USA.
Change 30.152 A strange SAS compiler error, if you used the _KDCODSN
VMACDCOL "KEEP= exit" for dataset DCOLDSET, intending to add some
Aug 6, 2012 new variables and to DROP= some existing variables:
MACRO _KDCODSN NEWVAR1 NEWVAR2 DROP= OLDVAR1 OLDVAR2 %
This compiler error is unique to the VMACDCOL structure,
and is circumvented by relocating the &MXGFILNM macro
variable to a different place in the source code.
-The SAS compiler erroneously expanded that _KDCODSN macro
token TWICE, causing the first instance of DROP= to apply
to all of the NEW variables in the second instance of the
expansion, so NONE of the new variables were kept. This
error was precipitated by Change 29.296, which added a
new-style macro variable token, &MXGFILNM, at the end of
each KEEP= list (so you could add variable INFILENM to
all DCOLLECT datasets). Apparently, even when &MXGFILNM
is blank, when it is the last token before the _KDCODSN
token, then if _KDCODSN is not blank, the SAS old-style
macro compiler expanded that macro token TWICE. But, by
relocating that &MXGFILNM text to a separate line, before
the last variable line in the MACRO _VDCODSN KEEP= list,
so it is no longer immediately prior to _KDCODSN token,
that second unwanted expansion is avoided and your normal
_Kdddddd tailoring works as expected. The error was in
both SAS 9.2 and 9.3 on Windows and z/OS SAS 9.1.3 SP4.
Thanks to Paul Maradin, HP, USA.
====== Changes thru 30.151 were in MXG 30.05 dated Aug 6, 2012=========
Change 30.151 Additional Enhancements for RMF III processing.
VMACRMFV -ZRBASM file was not output to the PDB when TYPSRMFV
Aug 4, 2012 member was used to build an RMF Monitor III PDB.
-Macro call to _SZRBASM was missing from _SRMFV macro.
-_BZRBASM macro for ZRBASM file misspelled ASMJESID
variable as ASIJESID causing SAS error during PDB build.
-Change 27.100 altered the EXZRBLCP macro to conserve disk
space for inactive logical processors by suppressing
output to the ZRBLCP file when LCPUPDTM was zero (which
includes LPARs that are categorized as PHYSICAL).
However, all processor entries for PHYSICAL LPARs are
required to determine the number of physical engines on a
CEC for an engine type such as a ZAAP or ZIIP. One or
more of these can legitimately be inactive during an RMF
III MINTIME interval. The number of physical engines for
each engine type is required to compute Physical % UTIL
as in the RMF III CPC panel. Entries for PHYSICAL
LPARs are now always output regardless of activity.
-Variable SSHRMFVN (RMF version number) added to these MXG
created RMF III "PDB" SAS datasets:
ZRBSVPP, ZRBSVPW, ZRBSVPC, ZRBSVPZ, ZRBSVPR, ZRBSVPG.
-Variable SSHSMPNR (number of valid MINTIME samples) added
to these RMF III PDB datasets:
ZRBGEI, ZRBCFC, ZRBCFI, ZRBCPD, ZRBCPU,
ZRBLCP, ZRBCSR, ZRBDVT, ZRBENC, ZRBENT,
ZRBSHD, ZRBPGP, ZRBRED, ZRBRCDB, ZRBRCDS,
ZRBRCDR, ZRBOPD, ZRBSPG, ZRBSVPP, ZRBSVPW,
ZRBSVPC, ZRBSVPZ, ZRBSVPR, ZRBSVPG, ZRBUWDEV,
ZRBUWSTO, ZRBUWJES, ZRBUWHSM, ZRBUWENQ, ZRBUWMNT,
ZRBUWMSG.
-Variable SSHGOMNT (Gatherer MINTIME option) added to
these RMF III PDB files:
ZRBGEI, ZRBASI, ZRBCFC, ZRBCFI, ZRBCPD,
ZRBCPU, ZRBLCP, ZRBCSR, ZRBDVT, ZRBENC,
ZRBENT, ZRBSHD, ZRBPGP, ZRBRED, ZRBRCDB,
ZRBRCDS, ZRBRCDR, ZRBRCDT, ZRBRCDX, ZRBRCDD,
ZRBOPD, ZRBSPG, ZRBSVPP, ZRBSVPW, ZRBSVPC,
ZRBSVPZ, ZRBSVPR, ZRBSVPG, ZRBUWDEV, ZRBUWSTO,
ZRBUWJES, ZRBUWHSM, ZRBUWENQ, ZRBUWMNT, ZRBUWMSG.
Thanks to Randy Hewitt, HP Canada, Canada
Change 30.150 NDM-CDI record 'EX' caused "UNKNOWN SUBTYPE" log messages
VMACNDM and no DSECT is yet received to decode the 40 bytes of
Aug 3, 2012 hex zeros at the end of the record, but the front end has
the same fields as the NDMDT record so the 'EX' record is
output in NDMDT, pending receipt of documentation.
Thanks to Paul Volpi, UHC, USA.
Change 30.149 The KEEPALL=YES default is used in most MXG code because
VMXGSUM it is usually safer, as it protects if there is an INCODE=
Aug 3, 2012 argument that can reference a variable that is not in one
Aug 7, 2012 of the parameter lists. However, in some invocations of
VMXGSUM, it caused a VARIABLE NOT FOUND error that caused
PROC MEANS to fail, when a variable did not exist, due to
an error in the VMXGSUM logic that only rebuilt the KEEP
list after the first data step when KEEPALL=NO. Now, that
rebuild is always executed with either NO or YES.
-VMXGSUM was redated Aug 7; the above logic was revised.
Thanks to Robert Kirkland, MedMutual, USA.
Change 30.148 The %SYMEXIST() function now detects that macro variable
VMXGINIT MXGSOURC exists ("MXGNAMES" dynamic allocation was used,
Aug 1, 2012 which requires FIXORDER dataset to be created to print
the //SOURCLIB DSNAMEs messages at MXG startup), so the
FIXORDER creation can be bypassed for static allocation.
And FIXORDER is not compressed when it is created, to
suppress a cosmetic warning messages about size increase.
Change 30.147 The DB2 AUDIT reports were reformatted to match reports
ANALDB2R in OMEGAMON XE for DB2 Performance Monitor Version 4.2.
VFMT102 Since the detail and trace formats are essentially the
Jul 31, 2012 same, PMAUD03 now simply invokes PMAUD02.
AUDIT= parameter is expanded to support these options:
DDFTRAN - DDF TRANSLATION .
ESTTRST - Establish Trusted Context
CRTTRST - Create Trusted Context
KERBERO - KERBEROS/ENCRYPTED Connection
Change 30.140 revised VFMT102 to eliminate time; this
change removes the timestamp when VFMT102 is called.
The LINESIZE option is now set to 200 at the beginning
and then reset to the original value at the end of
ANALDB2R, as some of the reports can get very wide.
Thanks to Alyona Bertneski, JPMorgan, USA.
Change 30.146 Cosmetic/maybe. The %DO loop variable &I was changed to
VMXGDSNL the more "unique" &DSNL to possibly avoid conflict with
Jul 31, 2012 user code that was wrapped around VMXGDSNL in TYPEQACS.
Thanks to Stephen Hoar, Lloyds Banking, ENGLAND.
Change 30.145 Variable CORRNAME and CORRNUM were incorrectly decoded
VMACDB2 for QWACATYP=4 (CICS) connections.
Jul 31, 2012
Change 30.144 -If you specified PDBOUT=PDB and asked for specific IFCIDS
READDB2 e.g. IFCIDS=ACCOUNT 105 107 269, the T102Sxxx datasets
Jul 31, 2012 were not copied to the PDBOUT= destination.
-If you used the LDB2xxx parameters to limit the variables
kept or dropped and used the syntax:
LDB2ACC=PDB//KEEP/varlist
the // did not work as documented; a space was required,
but this change now properly supports // or / / as the
null argument.
Change 30.143 -These variables, which should have been a MAX value, were
VMXGDBSS incorrectly summed:
Jul 31, 2012 ASUMDBSS - QB1TVPL QB2TVPL QB3TVPL QB4TVPL QB1TCBA
QB2TCBA QB3TCBA QB4TCBA
ASUMDBSB - QBSTVPL QBSTCBA
They now contain the MAX value of the end-of-interval
values, across each summary interval.
-In addition, because DB2 V10 writes fixed one-minute data
and so those variables are end-of-interval values, these
average value variables are now created:
ASUMDBSS - AVG1VPL AVG2VPL AVGTVPL AVGTVPL AVG1CBA
AVG2CBA AVGTCBA AVGTCBA
ASUMDBSB - AVGTVPL AVGTCBA
-Labels were created for these four variables:
ASUMDBSS - THRDFTPT THRDUSE TOTTHRD
ASUMDBSB - READS
Change 30.142 %VMXGPRNT, which "PROC PRINTs" with both the LABEL and
VMXGPRNT VARIABLE as heading, is enhanced to allow FMTLST= option
Jul 31, 2012 to specify the printed format. See ANAL113 for example.
Change 30.141 -XAM/ZVPS XAMTCP record contains 0.0.0.0 for IPADDR in all
VMACXAM observations as that is what is in the record.
Jul 31, 2012 -Values in AVERAGTM='TOTALTIME/TOTALACKED IN FAL' and the
values in TOTALTIM='TOT ROUND TRIP TIME(MS)' in XMTCPAPP
dataset are large negative values in many records.
-Both problems will be forwarded to the vendor.
-Variable NAMENODE is now kept in XMTCPAPP dataset.
Thanks to Andrew Petersen, CSC, AUSTRALIA.
Change 30.140 -Support for IFCID 269 and 270 populates existing T102S269
FORMATS and T102S270 datasets with QW0269xx/QW0270xx variables.
VFMT102 -Formats created for some QW0269xx/QW0270xx variables.
VMAC102 -VFMT102 revised to eliminate the time values.
Jul 31, 2012 -SQL Text long-variables have multiple blanks removed with
COMPBL function.
Thanks to Alyona Bertneski, JPMorgan, USA.
Change 30.139 The label for PIRSHELF is corrected to "SHELF", which I
VMAC110 now know is a z/OS Unix name for a directory, primarily
Jul 30, 2012 used for Web service binding files.
Thanks to Dale Slaughter, Transamerica, USA.
Change 30.138 ASG TMON/DB2 creates invalid DB2 101 records that causes
VMACDB2H MXG to print ERROR: INVALID DB2 101 RECORD messages, but
Jul 27, 2012 since the ASG records have their header segment at the
Aug 3, 2012 start of the record, whereas IBM's header segment is at
the end of the record, I've updated these error messages
to identify "ASG-CREATED" and to identify the ASG fix of
TE03737 in the error messages. These records are DELETED.
Change 30.023 detected these errors, but printed ALL of
the defective records; this change limits printing to 3.
Thanks to Marty Pruden, Purina Nestle, USA.
Change 30.137 Updates to NMON/TOPAS Monitor for AIX and LINUX.
EXNMONDF -All BBBP single-value-per-line configuration entries for
EXNMONEN the lsconf, lparstat, lsattr EL, vmstat V, and vmstat S
EXNMONLP subtypes are now output in NMONBBBP dataset. All labels
EXNMONMP now contain the subtype name. Variables from each subtype
EXNMONVM are grouped in the LABEL statement so they are adjacent
IMACNMON when printed. Variables BBBP001-BBBP0146 now exist.
VMACNMON -These "BBBP,ending" multi-value-per-line entries are
VMXGINIT output in these new datasets:
Jul 28, 2012 DDDDDD DATASET DESCRIPTION
Aug 17, 2012 NMONDF NMONBBBPENDDF BBBP,ending df m
Sep 13, 2012 NMONLP NMONBBBPENDLP BBBP,ending lparstat h
NMONMP NMONBBBPENDMP BBBP,ending mpstat d
NMONVM NMONBBBPENDVM BBBP,ending vmstat i
-The "BBBP,ending" single-value-per-line entries from the
"ending vmstat v" and "ending vmstat s" subtypes are
output in this new dataset:
DDDDDD DATASET DESCRIPTION
NMONDF NMONBBBPENDING BBBP,ending vmstat v and s
-Entries PCPUnn and SCPUnn create TEMPCPUNP and TEMPCPUNS
that are merged into existing NMONCPUD, detail CPU
metrics by CPUNR.
-Entries PCPU_ALL and SCPU_ALL_ are input and variables
retained and added to NMONINTV.
-Entries DISKRIO, DISKWIO, DISKAVGRIO, DISKAVGWIO are now
supported, and variables of the same name are added to
the NMONDISK dataset.
-The internal logic for the DISKxxxxN "suffixed" records,
written when there are more disk devices than will fit on
a single record, is restructured to use a 2-elment array
instead of a separate explicit DO group for each suffix.
These arrays support 50 suffixed records with 512 devices
per record, versus the original fixed 21 suffixes.
-ERROR: ARRAY Subscript Out Of Range - DISKSERV DISKSVCTM
DISKWAIT DISKWAITTM objects corrected, and protection for
"NANQ" text for "not a number" for BBBPENDLP04, Aug 17.
-Sep 13: BBBPENDVM05 increased to 64 bytes.
Change 30.136 These TYPE50 OSA/Express READ variables (ATTCHTYP=4 only)
VMAC50 TY50PCIR TY50PCIV TY50PCIT TY50PCIU TY50PDFR
Jul 25, 2012 are missing if SUBCHPOL is not 'READ'; IBM had changed
the value to "RD/n" without documentation. The MXG test
is now revised to detect READ if SUBCHPOL starts with RD.
Thanks to John McLaughlin, Bank of America, USA.
Change 30.135 %VGETALOC is a new macro for use with AUTOALOC=YES (that
VGETALOC VMXGALOC option creates directory names containing date)
Jul 24, 2012 that lets you select (getdaterange=,typeofdata=) a group
of "PDBs"/directories that are to be read, constructing
a "SET" statement in a DATA-step using VMXGSET.
For example:
%vgetaloc(getdaterange=01jul12 24jul12,
typeofdata=daily,
basedir=c:\mxg,
datefmt=date7.
);
data jobs;
%vmxgset(dataset=jobs);
will search the c:\mxg directory for all directories with
a name that contains a date in ddmmmyy format, selects
those with date between 01Jul12 and 24Jul12 inclusive,
and allocates them as PDB1- PDB24 as there are 24 dates
in your selection criteria. These libnames are passed to
VMXGSET which build the logical SET statement to read all
24 LIBNAMEs for the JOBS dataset you requested in VMXGSET
set pdb1.jobs pdb2.jobs pdb3.jobs ... pdb24.jobs;
(i.e., the number of libnames found by vgetaloc).
Change 30.134 Cosmetic/Spurious. ANALDB2R printed note from VMXGVERS
ANALDB2R that you were using a backlevel ANALDB2R, because that
Jul 24, 2012 statement at the bottom of ANALDB2R still had 30.02 in
both 30.03 and 30.04. While the MXG QA stream has a test
for VMXGVERS value, the line was in lower case and the QA
test expected upper case. Now, the QA test looks first
for lower case and then for version number.
Since there is a %PUT with the ANALDB2R last update date,
the currency of this ANALDB2R member was confirmed on the
SAS log, so this was only a cosmetic error. But it gets
this change text because the user had to waste his time
to report the potential problem due to my error!
Thanks to R. van der Zande, KLM, THE NETHERLANDS.
Change 30.133 Support for (optional) DB2 Netezza for Accelerator data.
IMACDBNZ IBM DB2 Analytics Accelerator IDAA product uses Netezza.
VMACDB2 -Similar to MXG support for optional CICS data segments,
Jul 23, 2012 support for optional Q8AC DB2 Accounting variables is in
a comment block in the new IMACDBNZ member that contains
the code, labels, and formats, so none of the Netezza
variables will exist in DB2ACCT, until you copy IMACDBNZ
into your "USERID.SOURCLIB tailoring library and then
remove that comment block.
-Because the volume of DB2 statistics records is small,
the Netezza Q8ST DB2 Statistics variables are created in
Dostları ilə paylaş: |