nor the PDB.SMFINTRV data set):
APPCATR ='TRANSACTIONS*SCHEDULED*BY ASCH'
APPCCN ='TOTAL*CONVERSATIONS*(ACTIVE+DEALLOC)'
APPCCNA ='NUMBER OF ALL*CONVERSATIONS*ALLOCATED'
APPCDAR ='BYTES OF DATA*RECEIVED*BY THE TP'
APPCDAT ='BYTES OF DATA*SENT*BY THE TP'
APPCREC ='RECEIVE CALLS*ISSUED*BY TP'
APPCSEN ='SEND CALLS*ISSUED*BY TP'
APPCTAC ='NUMBER OF*ACTIVE*CONVERSATIONS'
d. The JCTJOBID field from which TYPETASK and JESNR are
extracted has changed with APPC. Instead of three
characters JOB/STC/TSU follwed by the five digit JESNR
the JCTJOBID will contain an "A" and a seven digit
number, which MXG stores in TYPETASK and JESNR, but
the maximum JESNR is 999,999 because the first of the
seven digits is always a zero. You should check if
any reporting programs use TYPETASK for selection, and
to ensure they are coded robustly so they will not
fail if TYPETASK='A' is encountered. The JCTJOBID
change was not compatibly implemented and changed
VMAC6,VMAC30,VMAC32,VMAC26J2, and VMAC26J3. SMF
records use the fieldname SMFnnJNM for the eight byte
JCTJOBID field. This IBM change in that field could
also affect "banner page" printing code in your SMF
exits.
3.New dataset TYPE33_1 records APPC Transaction Program,
"TP" resources, for each TP work scheduled by ASCH. Each
type 33 is an APPC event, with the same APPC counts that
are totaled in the type 30, above. In addition, times of
receipt, scheduling, and execution of the TP are recorded
as is the CPU times, I/O connect time and EXCP counts for
APPC TPs. This new data is the resource record for APPC,
and will be used instead of the type30s for APPC resource
accounting, performance measurement, etc. The variables
in this data set from the type 33 subtype 1 record are:
ACCOUNTn='ACCOUNT*FIELD* n'
APPCCNAS='CONVERSATIONS*ALLOCATED*BY THIS TP'
APPCCONS='NUMBER OF*CONVERSATIONS*FOR THIS TP'
APPCDARS='BYTES*RECEIVED*BY THIS TP '
APPCDATS='BYTES*SENT BY*THIS TP '
APPCRECV='RECEIVES*ISSUED*BY THIS TP'
APPCSEND='SENDS*ISSUED*BY THIS TP '
CPUSRBTM='CPU*SRB*DURATION'
CPUTCBTM='CPU*TCB*DURATION'
ELAPSTM ='ELAPSED*DURATION'
EXCPTOTL='EXCPS*FOR*THIS TP'
INPREQTM='INPUT*REQUEST*DURATION'
IOTMTOTL='DEVICE*CONNECT*DURATION '
LENACCTn='LENGTH OF*ACCOUNT FIELD* n '
LOCLLUNM='LOCAL*LU NAME*FOR THE TP'
NRACCTFL='NUMBER*ACCOUNT*FIELDS'
PARTLUNM='NODENAME*LUNAME*OF PARTNER'
QUEUETM ='SCHEDULER*QUEUE*DURATION'
RACFGRUP='RACF*GROUP*IDENTIFICATION'
RACFUSER='RACF*USER*IDENTIFICATION'
REQDTIME='REQUEST*RECOGNIZED*BY FMH-5'
SKEDTIME='REQUEST*PLACED ON*SCHEDULER QUEUE'
SMFTIME ='TIMESTAMP*WHEN RECORD*WAS WRITTEN'
SYSTEM ='SMF*SYSTEM*ID'
TPCLASS ='TP*CLASS'
TPNAME ='TP*NAME'
TPNDTIME='TP*EXECUTION*ENDED'
TPROFILE='TP*PROFILE*NAME'
TPSKEDTY='TP*SCHEDULER*TYPE'
TPSTTIME='TP*EXECUTION*STARTED'
TPUSECNT='USES OF*THIS TP*BY THIS USER'
TPUSRTYP='TP*USER*TYPE'
ZDATE ='ZEE DATE*ZEE OBS*WAS CREATED'
The following time sequence is unvalidated but is thought
to describe the events for a standard TP scheduled event:
INPREQTM QUEUETM ELAPSTM
Waiting on Waiting on Executing
Scheduler TP queue
|_____________|_______________|____________|
| | | |
REQDTIME SKEDTIME TPSTTIME TPENTIME
Request Placed on Execution Execution
Received TP's queue Started Ended
4.New variables were added to TYPE4345 for JES2 start
options:
CONSOPT ='CONSOLE*OPTION*SPECIFIED?'
LOGOPTN ='LOG*OPTIONS*SPECIFIED?'
QUIKSTRT='JES2 DID*QUICK*START??
RECNFGOP='RECONFIG*OPTION*SPECIFIED?'
5.New TYPE70 variables APPCMIN,APPCMAX,APPCAVG for the min,
max,avg number of APPC address spaces active, and twelve
distribution buckets APPC00 thru APPC11 count the percent
of time when 0, 1-3, ... over 36 APPC address spaces were
active, paralleling the similar set of fifteen variables
for the existing other three types of address spaces for
BATCH, TSO, and STC addresses.
6.New TYPE71 variables count blocked pages in or out, the
PWSS (Primary working set) pages migrated, and the number
of ESTORE frames that were freed without migration:
ESPGFRNO='ESTORE FRAMES FREED W/O MIGRATION'
PGBKtoin='BLOCKED*PAGES*PAGED IN'
PGBKtoou='BLOCKED*PAGES*PAGED OUT'
PWSSMIIN='PWSS PAGES*MIGRATED*FROM ESTORE'
7.Old TYPE72 variable WKLOAD no longer exists.
Eleven new variables, including the long needed new
ESA CPU times, and the ESTORE residency time (which
can be compared with the existing variable ACTFRMTM,
previously discussed in NEWSLTRS member) to estimate
usage of ESTORE frames.
ACTESFTM='EXPANDED*STORAGE*RESIDENCY'
ACTFRMTM='ACTIVE*FRAME*TIME'
BLKSAUIN='BLOCKS*PAGED IN*FROM AUX'
BLKSESIN='BLOCKS*PAGED IN*FROM ESTORE'
CPUHPTTM='HIPERSPACE*CPU TIME'
CPUIIPTM='I/O*PROCESSING*CPU TIME'
CPURCTTM='REGION*CONTROL*CPU TIME'
PGBKESIN='BLOCKED PAGES*PAGED IN*FROM ES'
PGBKTOIN='BLOCKED PAGES*PAGED IN'
PGTOESIN='PAGES*PAGED IN*FROM ESTORE'
SYSTRNTM='SYSTEM*TRANSACTION*TIME'
8.New TYPE73 variables describe IODF name and creation:
CFGCHGFL='SMF73CFL CONFIGURATION CHANGE FLAGS'
CHPADDED='CHANNEL*PATH*ADDED?'
CHPDELET='CHANNEL*PATH*DELETED?'
CHPMODIF='CHANNEL*PATH*MODIFIED?'
IODFNAME='IODF*NAME'
IODFSUFX='IODF*NAME*SUFFIX'
IODFTIME='IODF*CREATION*DATETIME'
9.Type 74 record contains the same fields added to the type
73 listed above, but the variables are NOT kept in TYPE74
because I don't think the 44 bytes of IODF name needs to
be kept in each device segment of MXG's TYPE74 dataset.
If they really turn out to be needed, I will create a new
data set, one per type 74 record, instead of one for each
device. The code is in place, so the variables do exist
and are available in EXTY74, if needed.
_______ _______ ________
|Offset |Offset |Offset | SMF Type 33 APPC/MVS TP Accounting
|to POF |to IOF |to UOF |
|_______|_______|________|
Product Section:
____________________________
| |
POF: | "ASCH", MVSLEVEL |
|____________________________|
TP Identification Section:
_________________________________________________________
|Offset | |
IOF: |to TPO |TP Class, Standard/Multi-Trans, TP Profile Name |
|_______|_________________________________________________|
\
\
\
\ TP Program Name Section:
\ _______ _______________________________
| | |
TPO: | Len |TP Name (up to 64 characters) |
|_______|_______________________________|
______________________
/ \
TP Usage Section: / \
_______________ _______ _________ _______ \
| |Offset | |Offset | /
UOF: |RACFUSER,GROUP |to AOF |Usecount |to TDO | /
|_______________|_______|_________|_______| /
/ /
/ /
/ /
/ /
_________________/ /
/ /
/ TP Usage Accounting Section:
/ ______ __________________
/ | |Accounting fields |
/ AOF: | Len |(up to 175 char) |
/ |______|__________________|
/
/
/
TP Usage Detail Section
_______ ___________________________________________
|Offset | |
TDO: |to TSO | Sends,received,data,conversations,TCB,SRB |
|_______|___________________________________________|
\
\
\
\ TP Usage Scheduler Section
\ _____________________________
| |
TDO: | LLU, PLU, Four Time Stamps |
|_____________________________|
10.Type 78 record contains the same fields added to the type
73 listed above, but the variables are NOT kept in TYPE78
because I don't think the 44 bytes of IODF name needs to
be kept in each subtype 3 segment. See above note.
Change 08.223 Deaccumulation of EXCP count from type 14/15 records by
ANALDSET this MXG analysis routine did not handle concatenated PDS
Jan 25, 1991 libraries, noticibly causing JES2 job's PROCnn DDNAMES to
have incorrectly high EXCP counts in this analysis. The
BY list in lines 017300 and 017600 should have had the
variable DSNAME inserted between DDNAME and UNITADR:
BY SYSTEM READTIME JOB STEP DDNAME DSNAME UNITADR SMFTIME;
Thanks to Lee Hollis, Lowe's Companies, Inc, USA.
Thanks to Dee Ramon, Mutual of America, USA.
Change 08.222 Default SMF record IDs in IMAC.... members for User SMF
IMACWSF records are intended to all be 512 (an impossible value)
Jan 25, 1991 but some IMACs slipped into the library with a different
value; if your site had a record of that value, the test
of JCLTEST could cause an "INPUT STATEMENT EXCEEDED "
STOPOVER condition. All IMACs for User SMF records now
have the value of 512, as they should have all along!
Thanks to Glenn Hanna, Textron Defense Systems, USA.
Change 08.221 SAS 6.06 Compatibility. Mixed case from PUT function.
MONTHBLD The DAY=PUT(TODAY,WEEKDATE3.); may create mixed case in
Jan 25, 1991 the character variable DAY under SAS 6.06, depending on
several SAS 6.06 options; the first letter is upper case,
while the second and third letters of the name of the day
are lower case. Since the subsequent test is for caps,
the test fails. Line 005200 is now replaced with
DAY=UPCASE(PUT(TODAY,WEEKDATE3.));
to force DAY to be uppercase, independent of the sites
options for case.
Thanks to Barry Lampkin, Blue Cross Blue Shield of Mass., USA.
Thanks to Debora Reinert, Nordstrom, Inc, USA.
Change 08.220 DCOLLECT variable DCDBKLNG should have been multiplied
VMACDCOL by 1024 (like the other adjacent values) to convert to
Jan 25, 1991 bytes for printing by the MGBYTES format.
Thanks to David Stern, CSX Technology, USA.
Change 08.219 Hiperbatch statistics added to the TYPE64 data set were
VMAC64 not kept in the correct dataset. The line containing
Jan 24, 1991 the six new variables was mis-located in the keep list
for TYPE64X (which is output before the variable are
input) instead of the correct keep list for TYPE64.
Variable JFCBDSNM was spelled incorrectly as JCFBDSNM.
Thanks to Michael Enad, Dun and Bradstreet, USA.
Change 08.218 Validation of PreRelease uncovered minor corrections.
IMACPDB 1.Line 029800 in IMACPDB should be _FREQ_ vice _FREQ
IMACACCT (but no error was set as _FREQ_ only exists in 6.06
VMAC110 and the missing underscore only caused _FREQ_ to be kept.
Jan 21, 1991 2.Comments in IMACACCT were enhanced to suggest that the
unwanted LENACCTn variables should also be dropped, and
that meaningless SAS "393" warnings print on the log.
3.CICS 3.1 processing was not protected for an unexpected
Statistics subtype. It did not fail, but the messages
produced were unclear. Now it is protected.
Thanks to Norbert Korsche, OMV-AG, AUSTRIA.
Change 08.217 Support for Candle's EPILOG for MVS Version 300 SMF "type
EXEPMEP 180" data record is added by this user contribution.
EXEPMIO Three EPMV.. data sets are created:
EXEPMEQ EPMVEP - The fixed workload information and the wait
IMACEPMV statistics for the two kinds of workloads,
TYPEEPMV PG (perf groups, periods, total sys), and
VMACEPMV AS (TSO, JOB, STC). Variable SM180SUB shows
Jan 16, 1991 which of the 10 subtypes created the record:
TOTS - all perf groups combined
PGN - all periods of a perf group
PGP - a single period of a perf group
BAT - end of step for batch address space
TSO - end of step for TSO address space
STC - end of step for STC address space
bat - end of interval for batch ASID
tso - end of interval for TSO ASID
stc - end of interval for STC ASID
RSRC - EPILOG captured data (not from RMF)
EPMVEPIO - I/O counts for each device with counts.
EPMVEPEQ - ENQ counts for each major name with counts.
Thanks to Billy Westland, Candle Corporation, USA.
Thanks to John Ebner, Litton Computer Services, USA.
Change 08.216 Both SIO73CNT and SIO78CNT are missing in RMFINTRV for a
RMFINTRV 4381/3090/ES9000 processor, because I/O counts moved into
Jan 16, 1991 different records for different processors and software.
Mar 13, 1991 Insert after line 070200
DATA TYPE78; SET PDB.TYPE78;
(so a PDB can be on tape), and expand the SET statement
in line 070400 to read:
SET TYPE73P TYPE78 (IN=IN78) PDB.TYPE78IO (IN=IN78IO);
and insert new line after 070700:
IF IN78IO THEN SIO73CNT=IOPACTRT*DURATM;
to now populate variable SIO73CNT to contain total SSCH
count to all channels from the appropriate data set.
Thanks to John McDonald, Arizona State University, USA.
Change 08.215 If only DB2 Report PMLOK03 was requested, a 309 error is
ANALDB2R received. Line 076980, variable QW0054AI should have
Jan 16, 1991 numeric 0's instead of alphabetic o's. Line 077020,
variables MINTIME and MAXTIME need to be added to that
RETAIN statement.
Thanks to Elliot Weitzman, Oryx Energy Company, USA.
Change 08.214 "INVALID THIRD ARGUMENT TO FUNCTION SUBSTR" error message
VMAC6156 from syntax WANT6156=INPUT(SUBSTR(SYSPARM(),10,7),7.);
Jan 15, 1991 when the SYSPARM value is less than 17 characters. This
soft error can be eliminated by storing the value of the
SYSPARM() function into a variable, because SAS sets that
variable's length to 200 bytes. The variable is then used
in place of the subsequent SYSPARM() references. Lines
012200 thru 012600 now read:
IF WANT6156=. THEN DO;
SYSPARM=SYSPARM();
IF SYSPARM EQ: 'TYPE6156-' THEN
WANT6156=INPUT(SUBSTR(SYSPARM,10,7),7.);
ELSE WANT6156=-1;
RETAIN WANT6156;
END;
Apr 1 update. Now I find out from SAS that this message
only occurs in SAS 6.06 if ZAP Z6060627 was installed,
and that zap is now marked REMOVED by the Institute).
But I'll leave my robust circumvention in place!
Thanks to Debbie Matic, Commercial Union Assurance of Canada, CANADA.
Change 08.213 This example shows how new-style macros can be used in
Book place of the old style _DAY macro and INSTREAM DD.
Jan 15, 1991 The example in the Chapter 35 to copy the DAY PDB into
the correct "Day-of-Week" PDB uses a temporary dataset
(pointed to by the INSTREAM DDname), and writes out an
old-style MACRO named _DAY that contains the character
name of the day of the week, which is then used as the
DDNAME into which the daily PDB will be copied. That
example has been updated and commented below:
//INSTREAM DD UNIT=SYSDA,SPACE=(TRK,(1,1))
OPTIONS NOTITLES;
DATA _NULL_ ;
FILE INSTREAM NOPRINT RECFM=FB LRECL=80 BLKSIZE=8000;
TODAY=TODAY()-1; /* get yesterday's date */
WEEKDAY=' ';
WEEKDAY=PUT(TODAY,WEEKDATE3.);
PUT 'MACRO _DAY ' WEEKDAY $CHAR3. '%' ;
RUN;
%INCLUDE INSTREAM; /*read macro just created*/
PROC COPY IN=DAY OUT= _DAY;
Some users have been directed by SAS technical support to
replace the old-style substitution macro with the %MACRO
facility. One recommended implementation is:
DATA _NULL_;
TODAY=TODAY()-1;
DAY=UPCASE(PUT(TODAY,WEEKDATE3.));
CALL SYMPUT('_DAY',DAY);
PROC COPY IN=DAY OUT=&_DAY;
More later.
Change 08.212 This change deletes MXG member XMACEPIL and puts support
VMACEPIL for EPILOG CL1000 back in member VMACEPIL. Change 8.019
XMACEPIL was applied to member XMACEPIL, which was then copied in
Jan 14, 1991 to VMACEPIL. It is believed to support 4.4.0, 4.5.0, and
4.5.1 versions, but test data is not at hand.
Change 08.211 New variable INVOKSAS in TYPESYNC dataset from user SMF
VMACSYNC record produced by SYNCSORT now identifies if this SORT
Jan 14, 1991 was invoked by the SAS System. Note that SYNCSORT's
enhancement PTF number EW2903 must have been installed by
your SYNCSORT installer before this field will be "Y".
Change 08.210 DCOLLECT migration/backup tape data sets datetime values
VMACDCOL UMTIME or UBTIME were wrong. Both occurrences of JULDATE
Jan 14, 1991 must be changed to DATEJUL (lines 037800 and 040000).
In addition, the value written in the record by IBM is
apparently wrong itself, until you install APAR OY37378.
Thanks to Derek Cespedes, Florida Power and Light, USA.
Change 08.209 TSO/MON variable READTIME is missing in PreReleases 8.3
VMACTSOM thru 8.7. Change 8.104 to correct CA7 corruption of the
Jan 14, 1991 first byte of Reader Date worked ONLY if for corrupted
records; normal, non-CA7 records produced missing values.
In line 040110, remove the DO; and delete line 040130
(containing END;) so that READTIME is always created by
the INPUT function.
Thanks to David B. Adams, National Life of Vermont, USA.
Change 08.208 IBM SMF APARs have added new data fields.
VMAC23 1.SMF now flags when the CPU timer goes bad in a new field
VMAC30 in the type 30 timer section. APAR OY24857 applies.
Jan 12, 1991 New variable CPUERROR (which was formerly a reserved
field) will have hex 0000 (APAR not installed), hex 8000
(APAR installed, no error). The subsequent bits are on if
the corresponding CPU measurement value (there are now
seven CPU measures) was defective and set to zero in this
record. The APAR also eliminates an OC9 ABEND of SMF.
2.SMF now flags a step cancellation due to NOT CATLG 2 or
NOT CATLG 7 condition (one bit for both reasons), but
only if the installation specified JOBFAIL(YES) in ALOCXX
SYS1.PARMLIB member (which ABENDs the NOT CTLG JOB). APAR
OY38977 applies. IBM's bit 11 of SMF30STI is used, and
MXG ABEND will contain NOTCTLG if the step was cancelled
due to NON CATLG condition. In addition, new variable
TERMIND contains all 16 bits of the step/job indicator
for detail examination in your programs, if needed.
3.SMF type 23 record (buffer statistics) is expanded to
better describe the SMF writer's use of its memory. APAR
OY27449 applies. New variables created in TYPE23 dataset:
CURALLOC='SMF BUFFER*CURRENT*ALOCATION'
HWMALLOC='SMF BUFFER*HIWATERMK*ALLOCATION'
MAXBUFSZ='BUFFER*MAXIMUM*LEVEL'
MVSLEVEL='MVS*SOFTWARE*LEVEL'
PERALLOC='INCREMENT*PER EACH*ALLOCATION'
WRNBUFSZ='BUFFER*WARNING*LEVEL'
Change 08.207 MXG 8.7 only. Several test sites noted that //SOURCLIB DD
JCLTEST6 JCL statement was missing from the FORMATS step, and the
Jan 12, 1991 SMFSMALL step's //SYSIN DD DSN=MXG(UTILGETM) was replaced
with a //SYSIN DD * statement and a %INCLUDE.
Change 08.206 SAS 6.06 Compatibility, only in MXG PreReleases thru 8.7.
UTILGETM The UTILGETM program, used only during installation of
Jan 12, 1991 MXG (to build a small SMF file for testing), will put SAS
6.06 (even at the October maintenance level) in a 100%
CPU Busy loop, causing a System 322 ABEND. The error is
in the processing of the %VMXGVBS macro which was added
by MXG Change 8.174. This macro generates different DCB
attributes for the FILE statement (CMS can't create VBS)
so new MXG users under CMS did not die during testing.
The %VMXGVBS macro added to UTILGETM was almost exactly
the same as the %VMXGLRC macro for the INFILE statement
in the _SMF macro. The differences were that %VMXGVBS
sets only the LRECL parameter of the INFILE SMF, while
%VMXGVBS sets LRECL, DCB, and BLKSIZE options, and that
their references were located in different positions in
their respective INFILE and FILE statements. Over 50 runs
322 ABENDed before the %MACRO compiler error was found to
be circumvented when there is a "parameter=value"syntax
preceding the %VMXGVBS invocation. Adding COL=COLOUT to
line 01900 in UTILGETM circumvents the loop. This works:
FILE SMFOUT COL=COLOUT %VMXGVBS;
This didn't:
FILE SMFOUT %VMXGVBS;
SAS Institute now knows the loop occurs only a %MACRO on
a FILE or INFILE statement (and also only if the %MACRO
itself starts with %IF), and are working on the problem.
SAS Zap Z606xxxx, available Month dd,yyyy corrects this
error in the SAS 6.06 %MACRO compiler. Tracking 163046.
Thanks to Barry Lampkin, Blue Cross Blue Shield of Mass., USA.
Thanks to Grady Tart, McM Information Services, Inc, USA.
Change 08.205 PreRelease 8.2 thru 8.7 only. The label for CPUTCBTM may
VMAC110 say "SUM OF THREE CPU TCB TIMES", but it is still the
Jan 11, 1991 CPU TCB TIME. (The CICS 3.1 support label overrode the
original label).
Thanks to Raymond Zieverink, Belk Stores Services, USA.
Change 08.204 DB2ACCT variable QXNSMIAP was misspelled as QXMSMIAP. The
ANALDB2R correct variable QXNSMIAP was added by this change, but
VMACDB2 the original variable is also kept so that any reports
Dec 20, 1990 that you've written won't fail. Please correct in your
report programs and eventually QXMSMIAP will be dropped.
Thanks to Ron Root, Oryx Energy Company, USA.
---Changes thru 8.203 were included in MXG PreRelease 8.7 Dec 18, 1990--
Change 08.203 WSF2 record from RSD newest version 3.3.4 has a section
VMACWSF mis-located two bytes to the right and truncated at the
Dec 17, 1990 end. However, MXG code had not been validated with a real
record from that version, and a nine-bit bit test only
failed when actually executed, and the overlay of two
fields in the WSF2 DSECT was missed in MXG coding. The
two MXG oversights were corrected, and the logic was
expanded to support both the correct and incorrect record
format. Until maintenance exists from its vendor, the
value of ACCNPELT will be incorrect, and usually zero.
Thanks to Dennis Mahlubam, Aetna Life & Casualty, USA.
Change 08.202 MXG didn't calculate converted RMF data (3.5.1 to 4.1.1).
VMAC79 The equation for R791FMCT in line 027800 should be
Dec 16, 1990 ELSE R791FMCT=R791RSV1 + R791RSV2;
Note R791WSS is missing here, since SMF79ASL is only 60.
Thanks to Miller Dixon, Continuum, USA.
Change 08.201 -VM/XA Monitor records appear to have an IBM error. In the
VMACVMXA VXUSEINT record the HFQUCT (Hi Freq Sample Count) resets
Dec 16, 1990 itself erratically. MXG tries to capture the CPU time a
VM machine used between a logon and the end of the first
interval, and used HFQUCT in that heuristic algorithm.
However, that logic is now invalidated by this IBM reset
and the user interval record is no longer output when a
logon event is detected. The actual change was to
comment out the two lines "IF NOT (FIRST.BEGINMTR OR
Dostları ilə paylaş: |