%ANALDB2R(
PDB=PDB,
DB2ACCT=DB2ACCT,
DB2ACCTB=DB2ACCTB,
DB2ACCTP=DB2ACCTP,
... );
The documentation in the comments has been revised;
the code has been in place since version 14.14!
Thanks to Alan Fendler, Pershing, USA.
Thanks to Harold Wentz, Pershing, USA.
Change 17.086 The DCOLLECT example had LRECL=644 in comments, but you
JCLDAYDS must specify LRECL=32756. With LRECL=644, DCOLLECT sets
May 6, 1999 a Return Code of 4 and a message that it encountered a
record that was too long to process, but does not ABEND,
and some of the records are not created. (Fortunately,
the long records are the SMS structure definitions for
Storage Class, Storage Group, etc., rather than the real
Dataset and Cluster records used for accounting/sizing.
Thanks to Chuck Hopf, MBNA, USA.
Change 17.085 Support for RACAL IT Security's SRM product for HSM SMF
EXSRMHAP record creates three new datasets:
EXSRMHDV SRMHSMAP SRM HOST SECURITY MODULE APPL
EXSRMHNU SRMHSMDV SRM HOST SECURITY MODULE DEVICE
FORMATS SRMHSMNU SRM HOST SECURITY NULL RECORD
TYPESRMH The Null Record dataset is created from records that have
TYPSSRMH no Device nor Application segment, just a 36-byte record;
VMACSRMH it is not clear of what use they may be.
VMXGINIT
May 6, 1999
Thanks to Choo Hui Chuin, Maybank, MALAYSIA.
Change 17.084 -The %INCLUDE of IMACIMSA should have been just before the
TYPEIMSA MACRO _VARxxxx definition, and has been moved, but there
VMACIMSA was no error since IMACIMSA is re-included by TYPEIMSA.
May 15, 1999 -The _KIMSBMP macro was added to the step that builds the
BMPS dataset so that full tailoring is supported.
Thanks to Chris Weston, SAS Institute, USA.
Change 17.083 The label for variable STRTTIME was changed to INTERVAL
VMAC25 START TIMESTAMP because in BUILDPD3, the type 25 label
May 4, 1999 was overriding the CICS and other Interval datasets.
I should have chosen a different name for the JES3 TYPE25
dataset, but its too late for that now, but changing its
label will eliminate the JES3 confusion.
Thanks to Neil Musitano, Jr., Department of Veterans Affairs, USA.
Change 17.082 DATASET PDB.TYPE200 NOT FOUND results when TYPSIDMS is
VMACIDMS used; the four lines _STY200, _STY201, _STY202, _STY203
May 4, 1999 are deleted as the TYPE200 members were IDMS 10.2 only.
Thanks to Alan Deepe, Perot Systems Europe, ENGLAND.
Change 17.081 The invocation of the sort macro, _STMVS, should have
TYPSTMV2 been spelled _STMV2 in member TYPSTMV2.
May 4, 1999
Thanks to Kathy Gordon, General Nutrition, Inc, USA.
Change 17.080 Comments only were changed, on how to handle CADI record
IMACCADI with ID=239 instead of ID=6. Those comments are now the
May 4, 1999 MXG Note Example of using IMACFILE to change ID number.
Thanks to Bob Cooney,
======Changes thru 17.079 were in MXG 17.01 dated May 3, 1999======
Change 17.079 Yet another enhancement to the UTILBLDP utility that will
UTILBLDP create the //SYSIN file BUILDMXG to build your tailored
May 1, 1999 PDB. This iteration detects if CICS, DB2, TMNT, or TY74
May 14, 1999 data was requested, and if the ASUM member appropriate to
that data are not included, they will be added with a new
comment "/*RECOMMENDED*/". New options to run BUILDMXG
instead of creating the file, INCLAFTR= to name members
to be included after BUILDMXG runs, and SPINUOW to pass
the SPIN count for ASUMUOW build, if requested.
Change 17.078 Change 17.029 was also needed in MONTHBLD; two lines with
MONTHBLD non-blank character in column 72 caused failure, even tho
May 1, 1999 the syntax should be valid.
Thanks to David Gibney, Washington State University, USA.
Change 17.077 Chuck discovered that some PDB.ASUMTAPE observations with
ASUMTAPE STATUS=MISSEDMNT had TMNTTIME incorrect and traced some
May 3, 1999 to be caused by "multi-unit,never-used" tape mounts:
May 20, 1999 Using UNIT=(TAPE,2) allocates two tape drives, and
See 17.106 two scratch tapes will be initially mounted. When a
volume fills, writes switch to the second drive while
a new tape is mounted on the first drive, so at CLOSE
of the DDNAME, there will always be a hanging mount
that was never used and never opened. But MXGTMNT
saw that mount, and at deallocation time it writes the
SMF record with the actual (earlier) mount start and
end times; MXG sets VOLSER='UNKNWN' because without an
OPEN, the VOLSER is unknown. And IBM's type 21 SMF
record contains blanks for VOLSER for the dismount!
This and other discoveries led to revisions in internal
algorithms in ASUMTAPE, described below, but there was
no error in the number of observations in PDB.ASUMTAPE.
Some obs that previously had STATUS='MISSEDMNT' will now
be MATCHED, and a few will now be STATUS='WRONGVOL'.
-The VOLSER=UNKNWN mount records are no longer discarded.
They are for those "multi-unit,never-used" mounts in
which the MXGTMNT monitor is still waiting for a VOLSER,
and their type 21 record has blanks for volser.
-The "sorttime" used for MOUNT records is now based on the
end of mount timestamp, TENDTIME, moved two seconds back
to account for the MXGTMNT timer pop, but not moved back
before the start of the mount timestamp, TMNTTIME:
sorttime = MAX(TMNTTIME,TENDTIME-2);
These choices for sort order were tested:
TMNTTIME - start of mount (sampled) timestamp. Used
early, but found to cause many MISSEDMNT
events, correcting moved it before ALOCSTRT
so TENDTIME was used in 17.01/17.02.
TENDTIME - end of mount (sampled) timestamp. Used
in 17.01 and 17.02, revised above in 17.03.
Without subtraction, a few were found with
TENDTIME after the TY21TIME, which created
MISSEDMNT events, but the 2 second pop now
sorts the mount record before the dismount,
and the MAX(TMNTTIME) ensures the it will
not be shifted to earlier than TMNTTIME (as
that could put the mount before allocate).
SMFTIME - when record written, can be after TENDTIME,
eg., for "multi-unit,never-used" mounts
whose SMF records are written at (sampled)
deallocate time, so SMFTIME can even be
after TY21TIME.
-Some MISSEDMNTs had mount records, but their mounts had
been discarded due to missing JESNR, which was used to
recognizing a new JOB. I have revised that logic to not
require JESNR, and thus can keep those mount records.
-Some MISSEDMNTs are for "start-up effect missed-mounts"
whose mount had occurred before the begin time of the SMF
file (ALOCSTRT earlier than the first dismount), but they
occur on the first day's run of ASUMTAPE and are
eliminated when the SPIN library takes effect on the
second run.
-Some MISSEDMNTs are now STATUS=TY21ONLY, because the test
is now IF ALOCSTRT LE TY21TIME LE ALOCEND THEN (added
test for ALOCEND) so that 21s with times after the end of
the held alloc record are recognized.
-Some MISSEDMNTs are now STATUS=WRONGVOL, because I found
I can recognize many instances of the operator putting in
(intentionally) an incorrect volume (when he/she cannot
find the correct volser, the stick in any tape to knock
down the outstanding mount message).
-Some remaining MISSEDMNTs in non-VTS environment are the
result of allocation recoveries when allocation switching
occurs; sometimes the mount was seen but the wrong job
name was put in the mount record so the mount did not
match up. A new version of MXGTMNT is in testing that
may be able to detect this state and correct or eliminate
those bad mount records.
-This revision now matched 13,822 tape mounts, found 5
WRONGVOL, 26 TY21ONLY, and only 24 are now MISSEDMNTs!
Thanks to Chuck Hopf, MBNA, USA.
Change 17.076 Type 73 with APAR OW15406 (IODF date expanded to YYYY)
VMAC73 and first 17.01 printed debugging lines on the SAS log:
May 1, 1999 YYYY IODFTIME=25MAR1999:08:24:18.00 _N_= ....
because the PUT statement had not been deleted.
Thanks to MP Welch, SPRINT, USA.
Change 17.075 The SORT order in these examples did not include SYSPLEX
ANALMTP variable in the PLOTs of TYPE70 and RMFINTRV, causing
ANALMPL a NOT SORTED error. SYSPLEX was added to RMF sort order
Apr 30, 1999 in MXG Change 16.288 but these examples were overlooked.
Thanks to MP Welch, SPRINT, USA.
Change 17.074 EXCP/IOTM variables did not exist in TYPE434 because the
VMAC434 "%INCLUDE SOURCLIB(IMAC434);" statement should have been
Apr 30, 1999 "%INCLUDE SOURCLIB(IMAC30IO,IMAC434);". This error was
introduced in the MXG 16.04 redesign.
Thanks to Mike Hoey, Ameren Services Corporation, USA.
======Changes thru 17.073 were in MXG 17.01 dated Apr 29, 1999======
Change 17.073 -SAS Version 7 causes error message on SYSMSG that options
AUTOEXEC CODEPCT and BLKSIZE(TAPE) are not supported in V7, but
CONFIGV7 there a return code of zero is set, so there is no real
Apr 28, 1999 error condition. To eliminate those messages, however,
new CONFIGV7 member exists and it can be used instead of
CONFIG in your MXG SAS JCL procedure. (Note that members
CONFIG, CONFIG07 and CONFIG08 are identical, and they are
for SAS Version 6.07 thru 6.09.).
Note: Feb 17, 2000: Members CONFIGV8 and CONFIGV7 are
the same and eliminate warning messages on the SAS log
with SAS Version 8.
-For ASCII execution, member AUTOEXEC is the equivalent of
CONFIG and it has been updated to pass the same options
for ASCII MXG execution as are set by CONFIGV7 for MVS.
Change 17.072 ANALDALY's sort order had not been updated to include the
ANALDALY SYSPLEX variable (BY SYSPLEX SYSTEM STARTIME), causing a
Apr 28, 1999 NOT SORTED error message.
Thanks to MP Welch, SPRINT, USA.
Change 17.071 Duplicate obs were detected and deleted from MQMACCT data
VMAC116 set (type 116 MQ-series accounting) because identical 116
Apr 28, 1999 records are created, in pairs and triplets (284 removed
of 24,000). The sort macro _BTY116 was expanded to hold
the full set of unique variables, but each observation is
from a different SMF record, so variable SMFRECNR was
added to the KEEP list, so that no records are duplicates
and so none are deleted by the SORT. (TYPE116 does not
sort, so it deleted no observations; only if you used the
TYPS116 member or the _S116 or _Sty116 macros were dupes
removed.) Further investigation with IBM is planned.
Note added Feb 18, 2000: While SMFRECNR was added to the
KEEP= list for dataset MQMACCT, it was not added to the
BY-list macro, because it would prevent removal of dupes
that came in two different SMF-reading jobs. See the
sort revisions in Change 18.001 and discussion there.
Thanks to Freddie Arie, Texas Utilities, USA.
Change 17.070 Using ANALCNCR to count concurrency failed if the values
ANALCNCR for start or end were missing. ANALCNCR now deletes any
Apr 28, 1999 input observations with missing timestamps (and reports
how many if any were found).
Thanks to Greg Jackson, National Life of Vermont, USA.
Change 17.069 Thirty-nine instances of "&NUM.2 "
VMACEDGR were changed to "&NUM.2. "
Apr 28, 1999 Retention Date field RDRETDAT can contain "WHILECATLG"
as date value; that string is now reported and new MXG
variable RDWILCAT='Y' and RDRETDAT will be missing.
Thanks to Jan van Lent, Hudson Williams Europe, GERMANY.
Change 17.068 Change 16.078 increased variables CSTORE and ESTORE in
RMFINTRV dataset TYPE71 to eight bytes stored length, but RMFINTRV
Apr 28, 1999 had the variables in the new LENGTH 8 and in the old
LENGTH 4 statement; remove them from LENGTH 4 statement.
Thanks to Jan van Lent, Hudson Williams Europe, GERMANY.
Change 17.067 Inconsistent documentation and code, but thankfully with
VMXGSUM no impact. The invocation of &INCODE1 is now located
Apr 28, 1999 after the invocation of &INCODE instead of before, but we
have never used &INCODE1= nor do I really think anyone
else would have; it was really there just for insurance
if we ever needed it.
Thanks to Jan van Lent, Hudson Williams Europe, GERMANY.
Change 17.066 Several IMACs still had active macro definitions for the
IMACxxxx "_L and _K" macros that should have been removed in the
Apr 21, 1999 16.04+ design (they are now defined in the VMAC, and the
IMAC should be only comments). Only if you tried to use
the %LET MACKEEP= architecture to tailor these IMACs was
there a problem - your tailoring may have been ignored!
These IMACs were revised: IMACNTCP, IMACSTX, IMACSUIN,
IMACSUPR, IMACSVCC, IMACSTC, IMACICE.
Change 17.065 Eight DB2 variables in DB2ACCT and DB2STATS were only
VMACDB2 input if LENQXST was GE 428, for DB2 Version 6, but the
Apr 21, 1999 fields exist in DB2 Version 5.1. These variables
QXALOCL QXALOCC QXSTFND QXSTNFND QXSTIPRP
QXSTNPRP QXSTDEXP QXSTDINV
are now INPUT if LENQXST is GE 16, and the remainder of
the 6.1 fields are then input if LENQXST is GE 428.
Thanks to Ken Michalik, Kraft, USA.
Change 17.064 The ASMIMSLG/ASMIMSL5 programs still had symbolic value
ASMIMSLG &DFSMS set to 0 (for DFP) that must be changed to one if
ASMIMSL5 you have DF/SMS instead. If you overlooked this value,
Apr 20, 1999 you might read 107 out of 110 log tapes without error and
then fail with 0C4 abends on the other three log files!
I have made the default now to be DF/SMS installed with:
&DFSMS SETB 1
in both programs (ASMIMSL6 already had 1 as its default).
Thanks to David Pearce, Westpac Banking, AUSTRALIA
Thanks to Andrew Barrett, Westpac Banking, AUSTALIA
Change 17.063 Reserved Change.
Apr 20, 1999
Change 17.062 Comments only. TMON data can be dumped in two modes, and
EXITMON6 MXG supports only the "Data-Image" format. If the TMON
Apr 20, 1999 data instead is dumped with their "Export-Import" format,
an extra 104 bytes prefix each record. Comments remind
you to create "Data-Image" format, but also provide an
example of how to use the INFILE's START=105 value to
strip off those extra bytes so MXG can process the badly
dumped data anyhow!
Thanks to Coen Wessels, UNICIBLE, SWITZERLAND.
Change 17.061 The DASD Allocation Monitor program had return code 4 in
ASMDALO its assembly, but runs fine on an OS/390 2.4 system with
Apr 19, 1999 all of its UCBs below the 16MB line, while it 0C4's at
one site which has dynamic UCBs - we are investigating
and will update this text when more is known.
Thanks to Paul Parragio, U.S. Geological Survey, USA.
Change 17.060 "Final?" enhancement to MXG 16.04 architecture defines a
VMXGINIT new &Wdddddd macro variable for the //WORK destination of
VMACXXXX each MXG dataset, just like the &Pdddddd macro variables
Apr 17, 1999 for the output "PDB" destination. The macro _L and _W
are now defined with this syntax in their VMACs:
MACRO _Ldddddd &Pdddddd.DATASET %
MACRO _Wdddddd &Wdddddd.DATASET %
so any existing overrides of the _L or _W macros continue
to work, but instead you can use the simpler syntax:
%LET &Wdddddd = DDNAME ;
to redirect that dataset to DDNAME. That %LET can be
stored in your IMACKEEP member, or can be put ahead of
of the %INCLUDE program statement. I'm only sorry I did
not think of this in time to include in MXG 16.16!
This enhancement is transparent, unless you use USER=XYZ:
There were 272 members EDITed for this change.
Before, if you use // EXEC MXGSAS,OPTIONS='USER=XYZ'
all datasets that SAS wrote by default to //WORK would
be sent to the XYZ DDname, but now, SAS sees a real
DDNAME (yep, it happens to be "WORK", but SAS doesn't
see that, so the datasets are not output to XYZ).
Now, to send all //WORK datasets to the //XYZ DDname,
you can re-initalize MXG and change the work default:
%VMXGINIT(MXGWORK=XYZ);
%INCLUDE SOURCLIB(TYPExxxx);
and get the same effect as the USER=XYZ option.
Jan 2009: The preceeding example to send //WORK to //XYZ
has not worked since 2000. See Change 18.148.
The MXGWORK argument of %VMXGINIT was removed
in Change 26.310.
It took 240 minutes to locate and change the 2450 lines
in 272 members. It then took 120 minutes to locate and
correct the 19 characters in 17 lines in 14 members that
had been incorrectly typed. I had an error in 5.1% of
the members I edited, but that is only 0.7% of the lines
Change 17.059 Support for APAR OW37708 and/or APAR OW38073 add four new
VMAC42 variables, SMF42BUF/BMX/LRU/UIC to the TYPE42TO dataset,
Apr 16, 1999 with total and highwater mark of BMF buffers and BMF LRU.
interval and cycles until castout.
Change 17.058 For RMM/EDGS records EDGATYPE R or S, there are two
VMACEDGS different sets of variables depending on MSRMSTID. Now
Apr 16, 1999 both sets are decoded, and new variables MSUSTNAM,
MSMEDIA and EDGATYPE are added to dataset EDGSSREC.
Thanks to Richard Fortenberry, Mitsubishi Motor Sales of America, USA
Change 17.057 -Change 16.225 was incomplete; the INPUT of the variables
VMACHSM WFSCPUTM and WFSACCT was added in the ID+1 record but was
FORMATS not added in the ID record, but since the FSR segment is
Apr 16, 1999 now in the ID+1 record, there should be little impact,
unless you are missing the APAR that moved the segment.
-Format MGHSMFU was updated to include values 15 and 16,
for ABARS ABACKUP and ABARS ARECOVERY records.
Thanks to Richard Fortenberry, Mitsubishi Motor Sales of America, USA
Change 17.056 Support for the index information in DB2 Type 102 subtype
VMAC102 22 for DB2 5 and later is now decoded and creates ten new
Apr 16, 1999 variables in dataset T102S022.
Thanks to Scott Mcdonall, Southern California Electric, USA.
Change 17.055 Support for NTSMF new Quota Server object creates new MXG
EXNTQTAS dataset QUOTASRV.
FORMATS
IMACNTSM
VMACNTSM
Apr 15, 1999
Change 17.054 Using UTILBLDP to create your tailored sysin for BUILDPDB
UTILBLDP had errors and not clearly documented. If your tailoring
Apr 15, 1999 generated a MACRO _Edddddd .... statement, it was missing
an end comment on that line that cause a recursion error.
If you added the TMNT (MXG Tape Mount) product records,
you got an OPEN failure because UTILBLDP forgot that TMNT
records are in BUILDPDB by default. The missing "*/" is
now created, and your request to add TMNT records will be
used to set the _IDTMNT value without the OPEN failure,
so that observations are created in TYPETMNT dataset.
Comments were revised to document that you run %UTILBLDP
once to build an output text file, (BUILDMXG is now the
recommended name, and the recommended destination is in
your USERID.SOURCLIB). Then that "BUILDMXG" file with
your tailoring changes is used instead of the BUILDPDB
member in your daily job, either by pointing the SYSIN
of the daily job at BUILDMXG file:
//SYSIN DD DSN=USERID.SOURCLIB(BUILDMXG),DISP=SHR
or by replacing the %INCLUDE SOURCLIB(BUILDPDB); in your
daily PDB job with %INCLUDE SOURCLIB(BUILDMXG);
If you name the output file "BUILDPDB", it cannot be
put in the //SOURCLIB concatenation, because it will
recursively include itself. It could be put in a PDS
that is not in the SOURCLIB concatenation and pointed
to in that source library, but using BUILDMXG as the
member/file name for the output of UTILBLDP is much
safer and clearer.
Thanks to Keith McWhorter, State of Georgia DOAS, USA.
Thanks to Freddie Arie, Texas Utilities, USA.
Change 17.053 Typo in VMXGINIT caused _S110 (sort all type 110s) to
TYPS110 fail with APPARENT SYMBOLIC REFERENCE PCICCF9 error. The
VMXGINIT two occurrences of PCICCF0 in VMXGINIT were changed to
Apr 15, 1999 PCICCF9. The ultimate cause of the error, however, was
Jul 20, 1999 that the _S110 macro was not used in the TYPS110 member,
so it was not fully tested; now, _S110 will execute when
member TYPS110 (to sort all datasets) is tested.
Jul 20: Typos in text: PCICFCn changed to PCICCFn.
Thanks to Alex Torben Nielsen, TeleDanmark EDB, DENMARK.
Thanks to Tom Elbert, FORTIS, USA.
Change 17.052 Variable A08DURAT was missing in CICS/ESA 4.1 and later,
VMAC110 because the timestamps used to create it moved from the
Apr 14, 1999 STID=37 to the STID=39, and I overlooked creating the
duration variable from them. In addition, A08DURAT is
now truly the duration, since now the start and stop
variables are datetimestamps; previously they were only
a 24-hour time of day, so its calculation is direct:
A08DURAT=A08LBKDD-A08LBKCD;
Thanks to Harald Seifert, Huk-Coburg, GERMANY.
Change 17.051 A MACKEEP= example in Change 16.134 and DOCMXG does not
CHANGESS work safely, and was removed. The bad example showed
DOCMXG that you could sometimes tailor an _Edddddd exit macro
Apr 14, 1999 without using a semicolon and avoid the %QUOTE( ), but
that does not always work, depending on the contents of
the EXdddddd member used by the _Edddddd macro. Instead,
the second (and good) example showed that you should add
IF ... THEN DO; %include (member); END; logic around
the include of the EXdddddd member, and how to put the
MACKEEP= argument inside the %QUOTE ( ) function. This
is always safe, and only that second example was kept.
Thanks to C. Fred Kuhstoss, Norfolk Southern Corporation, USA.
Change 17.050 Using the new PDB.ASUMTAPE as input to member ASUMTMNT
ASUMTAPE can cause INVALID DO CONTROL error for "MISSEDMNT" mounts
Apr 14, 1999 because their TMNTTIME and TENDTIME variables were left
missing. But these MISSEDMNT events are all very fast
mounts, which had physical mount time in less than one
sample interval (max 2 seconds by default, may be 0.5),
so I have chosen to set the TMNTTIME and TENDTIME equal
to the ALOCSTRT datetimestamp for MISSEDMNT events in the
PDB.ASUMTAPE dataset to protect member ASUMTMNT.
Thanks to Greg Jackson, National Life of Vermont, USA.
Change 17.049 Typo caused no observations for dataset NPMSEEND. The
VMAC28 statement _E028SE1; after IF NPMSUBTY=49X THEN DO;
Apr 14, 1999 should be _E028SE2; (as in the comment).
Thanks to Bill Shanks, SEMA, ENGLAND.
Change 17.048 Support for IXFP/ICEBERG Subtype 8 and Subtype 6 fix.
EXICE8CL -IBM/STK mis-documented the IXFP SNAPSHOT DDSR segment,
Dostları ilə paylaş: |