removed from the ID= argument. Now it is.
Change 18.320 MXG 18.06-MXG 18.10, and only if VMXGSUM was called twice
BLDNTPDB with &DDNAME as an input argument (we found it only in
VMXGSUM BLDNTPDB and only in the LDSK report). Change 18.182
Jan 9, 2001 added a call to new %VMXGENG (to determine the SAS engine
that created the input dataset), but used DDNAME for a
temporary macro, and then changed its value. This change
eliminates the use of DDNAME inside VMXGSUM. There was no
change made to member BLDNTPDB.
Thanks to Terry Heim, ECOLAB, USA.
Change 18.319 The calculation of Standard Deviation was incorrect;
TRNDCICS the logic from TRNDCICX was imported into TRNDCICS.
Jan 9, 2001
Change 18.318 The SORT FIELDS= value in JCLIMSL5 should have been
JCLIMSL5 SORT FIELDS=(1,12,A,35,8,A,29,1,A),FORMAT=BI
Jan 9, 2001 The change was made in JCLIMSL6 but not in L5.
Thanks to Roman Jost, Gjensidige Gruppen, NORWAY.
Change 18.317 Support for z/OS R1.1 (COMPATIBLE).
VMAC7072 TYPE70: New z/OS metrics for this CPU/SYSTEM:
VMXGRMFI CPUADJCH='PHYSICAL*CPU*ADJ FACTOR*CHANGED?'
Jan 5, 2001 Changed only by Capacity Upgrade on Demand.
Jan 20, 2001 SUAVAICH='SU*AVAILABLE*CHANGED?'
SMF70CPA='SU_SEC*OF THE*PHYSICAL*CEC'
SMF70LAC='IBM*4-HR*AVERAGE*HOURLY MSU'
SMF70WLA='Defined*Capacity*SU*Available'
TYPE70PR: New z/OS metrics for each LPAR segment:
LPARCLND='CAPACITY*LIMIT*NOT*DEFINED?'
LPARDCLC='DEFINED*CAPACITY*LIMIT*CHANGED?'
LPARWLMG='WLM*MANAGEMENT*OF THIS*LPAR?'
LPARWTFD='WAIT*TIME*FIELD*DEFINED?'
SMF70MSU='DEFINED*CAPACITY*LIMIT*IN MSU'
SMF70NSA='PCT WHEN*AT MAXIMUM*PARTITION*WEIGHT'
SMF70NSI='PCT WHEN*AT MINIMUM*PARTITION*WEIGHT'
SMF70NSW='PCT WHEN*LPAR WAS CAPPED*BY WLM'
SMF70ONT='LPAR*ONLINE*TIME'
SMF70PMA='AVERAGE*IRD*ADJUSTED*PARTITION*WEIGHT'
SMF70WST='LPAR*WAIT*TIME'
RMFINTRV: Variables from TYPE70 now maxed into RMFINTRV:
SMF70LAC='IBM*4-HR*AVERAGE*HOURLY MSU'
SMF70WLA='MAX SU*AVAILABLE*TO MVS*IMAGE'
Additional z/OS changes:
New TYPE74 Subtype 7 FICON Director - await test data,
will be supported ASAP, new MXG dataset(s) to be.
New TYPE99 Subtype 8 LPAR CPU Management - no data.
Similar to subtype 2, will decode upon request.
New TYPE99 Subtype 9 Dynamic Channel Path Management.
Have data, will decode upon request.
Type 78.1 documentation was removed.
Type 79.13 documentation was removed.
MXG support is based on pre-GA documentation, and there
may be differences in the GA level of the product.
Change 18.316 The null macro _NSHDW was incorrect and if you tried to
VMACSHDW use it, you got a strange "180" error about "WORK".
Jan 4, 2001
Thanks to Wayne Schumack, Blue Cross Blue Shield of Minnesota, USA.
======Changes thru 18.315 were in MXG 18.11 dated Jan 3, 2001======
Change 18.315 Documentation of the Internal Logic of the MXG PDB. This
DOCPDB was presented as a 3-hour Workshop prior to CMG 2000.
Jan 3, 2001
Change 18.314 Support for CICS TS for z/OS Version 2.1 (INCOMPAT):
EXCICEJR As usual, while there's some interesting new metrics that
EXCICIIR IBM added to the CICSTRAN record, they inserted those new
EXCICSJG fields (instead of adding them at the end of the segment)
EXCICSOG so you MUST install this change to process 2.1 records.
EXCICSOR -Dataset CICSTRAN - New variables inserted:
IMACCICS JVMITICN='CICS JVM*INITIALIZE*ELAPSED*COUNT'
VMAC110 JVMITITM='CICS JVM*INITIALIZE*ELAPSED*TIME'
VMXGINIT JVMRTICN='CICS JVM*RESET*ELAPSED*COUNT'
Jan 3, 2001 JVMRTITM='CICS JVM*RESET*ELAPSED*TIME'
Jan 28, 2001 KY8CPUCN='USER-TASK*KEY 8*TCB CPU*COUNT'
KY8CPUTM='USER-TASK*KEY 8*TCB CPU*TIME'
KY8DISCN='USER-TASK*KEY 8*TCB DISPATCH*COUNT'
NETID ='NETWORK*QUALIFIED*NAME*NETWORK ID'
OTSINDCN='OTS*INDOUBT*WAIT*COUNT'
OTSINDTM='OTS*INDOUBT*WAIT*TIME'
OTSTID ='OTS*TRANSACTION*ID*(TID)'
PORTNUM ='TCP/IP*SERVICE*PORT*NUMBER'
RLUNAME ='NETWORK*QUALIFIED*NAME*NETWORK*NAME'
RQPWAICN='REQUEST*PROCESSOR*WAIT*COUNT'
RQPWAITM='REQUEST*PROCESSOR*WAIT*TIME'
RQRWAICN='REQUEST*RECEIVER*WAIT*COUNT'
RQRWAITM='REQUEST*RECEIVER*WAIT*TIME'
SOCHRIN ='SOCKET*CHARACTERS*RECEIVED'
SOCHROUT='SOCKET*CHARACTERS*SENT'
SOCNPSCT='CREATE*NON-PERSISTENT*SOCKET*REQUEST'
SOCPSCT ='CREATE*PERSISTENT*SOCKET*REQUEST*COUNT'
SOEXTRCT='SOCKET*EXTRACT*REQUEST*COUNT'
SONPSHWM='NON-PERSISTENT*SOCKET*HIGH-WATER-MARK'
SOOIOWCN='OUTBOUND*SOCKET*I/O*WAIT*COUNT'
SOOIOWTM='OUTBOUND*SOCKET*I/O*WAIT*TIME'
SOPSHWM ='PERSISTENT*SOCKET*HIGH-WATER-MARK'
SORCVCT ='SOCKET*RECEIVE*REQUEST*COUNT'
SOSENDCT='SOCKET*SEND*REQUEST*COUNT'
SOTOTCT ='SOCKET*TOTAL*REQUEST*COUNT'
TCPSRVCE='TCP/IP*SERVICE*NAME'
WBBRWCT ='WEB BROWSE*REQUEST*COUNT'
WBEXTRCT='WEB EXTRACT*REQUEST*COUNT'
WBREADCT='WEB READ*REQUEST*COUNT'
WBWRITCT='WEB WRITE*REQUEST*COUNT'
-New CICS Statistics STIDs create new MXG datasets:
STID Name MXG DSN Description
107 STISOG CICTCPSO TCP/IP Sockets Global
108 STISOR CICTCPIP TCP/IP Services (Sockets)
111 STIIIR CICTCPII TCP/IP II Domain RequestModel
114 STIEJR CICTCPEJ TCP/IP Entrprse Java ObjContainer
117 STISJG CICTCSJG TCP/IP JVMPOOL Statistics
MXG support is based on pre-GA documentation, and there
may be differences in the GA level of the product.
Change 18.313 MXG 18.10 only. Change 18.280 caused CICS/TS 1.3 records
VMAC110 to print error messages about EXCLUDED fields when there
Jan 2, 2001 were no excluded fields, and records were deleted:
***ERROR.TYPE110.CICS TS 1.3. EXCLUDED FIELDS HAVE BEEN DETECTED.
MXG EXPECTED MCTSSDCN=202 AND MCTSSDRL=1260.
RECORD WAS DELETED, CICSTRAN DATA WAS LOST.
SYSTEM=XXXX APPLID=YYYYYYYY SMFPSRVR=53 MCTSSDCN=203 MCTSSDRL=1288
(Disregard the "MXG EXPECTED" text, which was also wrong,
and note that the final line of the error message showing
MCTSSDCN=203 is the correct minimum number of fields.)
The test in line 6977 in VMAC110 was changed from 203 to
204 when it should have remained 203. The correction is
to change that line back to test for LT 203:
6976 ELSE IF SMFPSRVR GE 53.0 THEN DO;
6977 IF MCTSSDCN LT 203 OR MCTSSDRL LT 1288 THEN DO;
If optional fields exist in your type 110 record, this
error does not occur, which is why I missed it in 18.10!
Thanks to Bruce Widlund, Merrill Consultants, USA.
Change 18.312 Variable DATETIME is kept in 169 MXG datasets, but it has
BUILD005 different meanings depending on which dataset it was in,
BUIL3005 and in the PDB.JOBS/STEPS/PRINT/SPUNJOBS datasets, it was
SPUNJOBS not correct. In those four datasets, while labeled as
Jan 2, 2001 "DATETIME OF SHIFT CALCULATION", its value was the time
of the beginning of the shift, rather than the actual
DATETIME value of the job.
Originally, "DATETIME" was a temporary variable that
was used as the input datetime value for your IMACSHFT
definition, to set the value of the character variable
SHIFT. So that summarization with VMXGSUM could
exploit your shift definitions, IMACSHFT changes the
value returned in variable DATETIME, setting its value
back to the time of the start of this shift.
But along the way, DATETIME was accidentally kept in
some datasets, so now it must be corrected where it is
wrong, and documented where it is different.
Now, in the PDB.JOBS/STEPS/PRINT/SPUNJOBS dataset, the
value that is returned in variable DATETIME will be the
original value that was used to calculate the shift:
PDB.JOBS and PDB.SPUNJOBS:
MAX(READTIME,INITTIME,JINITIME,JINLTIME,JSTRTIME);
PDB.STEPS:
MAX(READTIME,INITTIME);
PDB.PRINT:
MAX(READTIME,PRINTIME);
The MAX() is used since some timestamps may be missing,
and the Max/Last datetime value is the logical time of
the job start, step initiate, or print file print time.
In these summary datasets that contain variable DATETIME:
ASUMxxxx CICINTRV CICS JOBSKED MNTHxxxx TRNDxxxx
it is properly labeled 'START OF INTERVAL' and contains
that correct value. In some of those datasets. variable
STARTIME exists and is equal to DATETIME, and where it
exists, STARTIME is better as it is self-describing!
In dataset EREPTIM, DATETIME='DATETIME FOR IPL RECORDS'
and is correct, as IMACSHFT is not invoked in VMACEREP.
In the many OPCxxxxx datasets, DATETIME='EVENT DATETIME',
and is correct, as IMACSHFT is not used here, either.
Thanks to Cendrine Pezier, ABS Technologies, FRANCE.
Change 18.311 Support for DB2 Space Manager 2.1 (INCOMPATIBLE) from SE
FORMATS (Software Engineering). The "current" date/time fields at
VMACSPMG the start of the record were removed, shifting the real
Jan 2, 2001 date/time fields to the left. No error message occurs,
but variable SPMGTIME is missing. FORMATs were updated
to print "Blank:TYPE1" instead of " :TYPE1" (cosmetic).
And variables FARINDRF,NEARINDR,PCTACTIV and PCTDROP are
set missing if they contain all FFx.
Thanks to Anke Mineur, DVG, GERMANY.
Change 18.310 Documentation. Example invocation of the ITSV macros
DOCITSV that are needed to add a new MXG variable into the ITSV
Jan 2, 2001 PDB (in case you need something not yet in ITSV).
Thanks to Chris Weston, SAS ITSV, USA.
Change 18.309 The WorldSecure SMTP Relay object printed UNEXPECTED OBJ
VMACNTSM message; the NRNAMES=NRNAMES-1; statement for that object
Jan 2, 2001 should have been deleted.
Thanks to Bruce Widlund, Merrill Consultants, USA.
Change 18.308 Support for APAR OW45788 for NPM corrects the lengths of
VMAC28 several LXETxxxx variables in the X.25 Session dataset
Dec 26, 2000 NPMEVX25 that were originally mis-documented by IBM.
Change 18.307 Variable MSU4HRAV was correct for a uni-processor, but
VMXGRMFI was wrong in magnitude for multi-processors; NRCPUS(II)
Dec 26, 2000 was needed in the numerator of MSU4HRAV calculation.
Variable CECSUSEC is now kept, and the absence of //SPIN
DD statement no longer causes a failure.
Thanks to Al Sherkow, I/S Management Strategies Ltd, USA.
Change 18.306 The Scheduling Environment name, SMF30PFL, and durations
BUILD005 SMF30HQT/JQT/RQT/SQT, are added to the PDB.JOBS dataset
BUIL3005 (JES2 or JES3, BUILDPDB/BUILDPD3. Those five variables
VMAC30 will be of long term importance in job scheduling, and so
Dec 23, 2000 are now automatically in PDB.JOBS. The change in VMAC30
was cosmetic; SMF30PFL was hex zeros when not populated;
now those '00'x will be translated to blanks.
Thanks to Stephen Marksamer, The Hartford, USA.
Change 18.305 The text of Change 18.300, re DB2TCBTM, was revised and
VMACDB2 the MXG equation, changed by this change, is now:
Dec 21, 2000 DB2TCBTM=
Jan 29, 2001 SUM((QWACEJST-QWACBJST),QWACSPCP,QWACTRTE);
This change added support for DB2 Version 7.1 (COMPAT):
DB2ACCT new variables:
QBGA2H ='ASYNC*IXLCACHE*FOR SECC GBP'
QBGA2S ='COMPLETION*CHECKS*SUSPENDED'
QBGA2W ='CHANGED PAGE*WRITES TO*SEC GBP '
QBGAEX ='*EXPLICIT*XI-S'
QBGAHS ='ASYNCH*IXLCACHE*FOR PRI GBP'
QBGAGG ='GET PAGES*FOR GBP*DEP PAGES'
QWACARLG='TRACE EVENT*FOR WAITS*FOR LOG WRITE*I/O'
QWACARNK='CHILD L-LOCKS*GLBL CONTENTION*EVENTS'
QWACARNM='OTHER L-LOCKS*GLBL CONTENTION*EVENTS'
QWACARNN='PAGESET P-LOCKS*GLBL CONTENTION*EVENTS'
QWACARNO='PAGE P-LOCKS*GLBL CONTENTION*EVENTS'
QWACARNQ='OTHER P-LOCKS*GLBL CONTENTION*EVENTS'
QWACAWLG='WAIT TIME*FOR LOG WRITE*I/O'
QWACAWTK='WAIT TIME*GLBL CONTENT*CHILD L-LOCKS'
QWACAWTM='WAIT TIME*GLBL CONTENT*OTHER L-LOCKS'
QWACAWTN='WAIT TIME*GLBL CONTENT*PAGESET P-LOCKS'
QWACAWTO='WAIT TIME*GLBL CONTENT*PAGE P-LOCKS'
QWACAWTQ='WAIT TIME*GLBL CONTENT*OTHER P-LOCKS'
QWACRBSV='ROLLBACK TO*SAVEPOINT*REQUESTS'
QWACRLSV='RELEASE*SAVEPOINT*REQUESTS'
QWACSVPT='SAVEPOINT*REQUESTS'
QWAXAWFC='WAIT TIME*FOR FORCE*AT COMMIT'
QWAXFCCT='WAITS FOR*FORCE*AT COMMIT'
QWAXIXLE='EVENTS FOR*ASYNC*IXLCACHE*IXLFCOMP'
QWAXIXLT='WAIT TIME*FOR IXLCACHE*IXLFCOMP'
QXDCLGTT='DECLARE*GLOBAL*TEMP TABLE*STMTS'
QXDEGDTT='PARALLEL*GROUPS*DECLARED*TEMP TABLE'
QXSETCPR='SET*CURRENT*PRECISION*STATEMENTS'
DB2ACCTP new variables:
QPACARNK='CHILD L-LOCKS*GLBL CONTENTION*EVENTS'
QPACARNM='OTHER L-LOCKS*GLBL CONTENTION*EVENTS'
QPACARNN='PAGESET P-LOCKS*GLBL CONTENTION*EVENTS'
QPACARNO='PAGE P-LOCKS*GLBL CONTENTION*EVENTS'
QPACARNQ='OTHER P-LOCKS*GLBL CONTENTION*EVENTS'
QPACAWTK='WAIT TIME*GLBL CONTENT*CHILD L-LOCKS'
QPACAWTM='WAIT TIME*GLBL CONTENT*OTHER L-LOCKS'
QPACAWTN='WAIT TIME*GLBL CONTENT*PAGESET P-LOCKS'
QPACAWTO='WAIT TIME*GLBL CONTENT*PAGE P-LOCKS'
QPACAWTQ='WAIT TIME*GLBL CONTENT*OTHER P-LOCKS'
DB2ACCTG new variables:
QBGA2H ='ASYNC*IXLCACHE*FOR SECC GBP'
QBGA2S ='COMPLETION*CHECKS*SUSPENDED'
QBGA2W ='CHANGED PAGE*WRITES TO*SEC GBP '
QBGAEX ='*EXPLICIT*XI-S'
QBGAGG ='GET PAGES*FOR GBP*DEP PAGES'
QBGAHS ='ASYNCH*IXLCACHE*FOR PRI GBP'
DB2STATS new variables:
(DB2STAT0)
Q9STCTRZ='DISPLAY*FUNCGION*COMMANDS'
Q9STCTX0='START*FUNCTION*COMMANDS'
Q9STCTX1='STOP*FUNCTION*COMMANDS'
Q9STCTX2='SET*LOG*COMMANDS'
Q9STCTX3='DISPLAY*LOG*COMMANDS'
Q9STCTX4='SET*SYSPARM*COMMANDS'
QDSTCIN2='CURRENT*TYPE 2*INACTIVE*THREADS'
QDSTMADS='MAXIMUM*ACTIVE DBAT SLOTS NOT INUSE'
QDSTMIN2='MAXIMUM*TYPE 2*INACTIVE*THREADS'
QDSTMQR2='MAXIMUM*TYPE 2*QUEUED*REQUESTS'
QDSTNADS='CURRENT*ACTIVE DBAT SLOTS NOT INUSE'
QDSTNDBA='REQUESTS*REQUIRING*DBAT'
QDSTNITC='CONNECTIONS*TERMINATED*MAX TYPE 1'
QDSTNQR2='CURRENT*TYPE 2*QUEUED*REQUESTS'
QDSTPOOL='REQUESTS*SATISFIED*BY POOL THREAD'
QDSTQIN2='QUEUED*RECEIVE*REQUESTS*FOR TYPE 2'
QJSTBPAG='LOG-WRITE*BUFFER*PAGE INS'
QJSTCIWR='LOG*CI-S*WRITTEN'
QJSTLOGW='LOG WRITE*I/O*REQUESTS'
QJSTLSUS='SUSPENDS*FOR LOG WRITE'
QJSTSERW='SERIAL*LOG WRITE*REQUESTS* FOR REWRITE'
QJSTTHRW='TIMES*LOG WRITE*THRESHOLD*WAS REACHED'
(DB2STAT1)
QISEDFAL='FAIL*DUE TO*DATASPACE FULL'
QISEDFRE='FREE PAGES*IN DATASPACE*FREE CH'
QISEDPGE='PAGES*IN EDM*DATASPACE'
QTRACAUT='SUCCESS*AUTH CHECKS*FOR ROUTINES'
QTRACNAC='DB2 UNABLE*TO ADD ENTRY*TO AUTH CACHE'
QTRACNOT='ROUTINE*AUTH CHECKS*NON USE*AUTH CACHE'
QTRACOW1='DB2 OVERWROTE*AUTHID IN*AUTH CACHE'
QTRACOW2='DB2 OVERWROTE*ENTRY IN*AUTH CACHE'
QTRACPUB='SUCCESS*AUTH CHECKS*HELD BY*PUBLIC'
QXDCLGTT='DECLARE*GLOBAL*TEMP TABLE*STMTS'
QXDEGDTT='PARALLEL*GROUPS*DECLARED*TEMP TABLE'
QXSETCPR='SET*CURRENT*PRECISION*STATEMENTS'
DB2STAT2 new variables:
QDBPPGST='PGSTEAL*ATTRIBUTE'
QDBPSLA ='QDBPSLA*SERVICEABILITY'
QDBPVDQB='POOL*VERTICAL*WRITE*THRESHOLD'
QDBPVPTY='VPTYPE*ATTRIBUTE'
T102S006 new variables:
QW0006PG QW0006FG
T102S016 new variables:
QW0016WT
T102S017 new variables:
QW0017TY
T102S022 new variables:
QW0022AS QW0022CC QW0022CE QW0022FG QW0022QO QW0022RS
QW0022CY QW0022F2 QW0022NP QW0022PA QW0022TT
T102S022 new variables:
QW0023R1
-Additional T102Snnn subtypes will be decoded upon request
MXG support is based on pre-GA documentation, and there
may be differences in the GA level of the product.
======Changes thru 18.304 were in MXG 18.10 dated Dec 20, 2000======
Change 18.304 First MXG 18.10 only. Cosmetic. Label was truncated for
ASUMCICS variable SYSTEM and CPUTM had no label, because the equal
Dec 20, 2000 sign after CPUTM was missing.
======Changes thru 18.303 were in MXG 18.10 dated Dec 20, 2000======
Change 18.303 Cosmetic, in that the statement was never executed, but
VMXGCICI %ELSE INTRVSEC=0; should have been %ELSE %LET INTRVSEC=0;
Dec 19, 2000
Thanks to Russell Dewar, National Australian Bank, AUSTRALIA
Change 18.302 Support for APARs OW44845 and OW47050 adds a new report,
ANAL103 the HTTP Server Report, from SMF 103 records!
ANALRMFR MXG parameter overrides:
Dec 19, 2000 MXG HTTP Server Summary Report
%ANALRMFR(REPORT=HTTP);
DEFAULT is to create:
Interval of DATE and Report is HTTPSUM.
To create another Interval other than Date.
%ANALRMFR(REPORT=HTTP,RPTOPT=HTTPSUM,
INTERVAL=HOUR);
Create MXG HTTP Server Detail Report
%ANALRMFR(REPORT=HTTP,RPTOPT=HTTPDTA);
Values have not been verified, see comments within
ANALRMFR for more detail of overrides.
A DDNAME of PDB is now required anytime ANALRMFR is
invoked, whether it is a TEMPORARY SAS library
//PDB DD UNIT=SYSDA,SPACE=(CYL,(5,5))
or a CATALOGED SAS library:
//PDB DD DSN=MXG.PDB,DISP=(,CATLG),
// DCB=RECFM=FS,
// UNIT=SYSDA,SPACE=(CYL,(5,3))
New member ANAL103(HTTP), documentation only, how to
create the associated Post-processor RMF reports.
Change 18.301 Validated reports with FICON data records. REPORT=CHAN,
ANALRMFR columns READ(MB/SEC) and WRITE(MB/SEC) values were output
Dec 19, 2000 even if they were missing. Values were corrected to
match IBM RMF report. APAR OW42945 updated the Partition
Data Report to now include two TOTAL lines, one for all
CP partitions and one for all ICF partitions.
Thanks to Trevor Holland IBM/GSA Australia
Change 18.300 MXG 17.17 thru MXG 18.09 only. Variable DB2TCBTM in data
VMACDB2 set DB2ACCT included CPU time in Stored Procedure Address
Dec 07, 2000 Spaces twice. Both variables QWACSPCP and QWACSPTT were
Dec 18, 2000 added by MXG Change 17.382 to the DB2TCBTM formula,
Dec 21, 2000 DB2TCBTM=SUM((QWACEJST-QWACBJST),QWACSPCP,QWACSPTT);
because I read "not recorded" in IBM DB2 V6.1 DSNWMSGS:
QWACSPCP ACCUMULATED TCB TIME SPENT PROCESSING SQL CALL STATEMENTS
QWACSPCP IN THE DB2 STORED PROCEDURES ADDRESS SPACE OR A WLM
QWACSPCP ADDRESS SPACE. THIS TIME IS CALCULATED ONLY IF
QWACSPCP ACCOUNTING CLASS 1 IS ACTIVE.
QWACSPCP FOR A THREAD THAT USES RRSAF TO CONNECT TO DB2 AND
QWACSPCP IS SWITCHED AMONG TASKS, THIS VALUE IS 0.
QWACSPTT ACCUMULATED TCB TIME SPENT IN DB2 PROCESSING SQL
QWACSPTT STATEMENTS ISSUED BY STORED PROCEDURES. THIS IS <===
QWACSPTT THE TIME NOT RECORDED IN QWACSPCP. THIS TIME IS
QWACSPTT CALCULATED ONLY IF ACCOUNTING CLASS 2 IS ACTIVE.
and so I concluded that both SPCP and SPTT must be added,
and made Change 17.282 in January, 2000. But when data
had large and nearly equal values in both SPCP and SPTT,
we queried IBM DB2 support, who investigated and replied
that internal documentation showed that SPTT was included
in SPCP, and DSNWMSGS was wrong and would be corrected.
IBM DB2 support also confirmed that the additional CPU
time field for the execution of triggers under enclaves,
variable QWACTRTE, is also not included in EJST-BJST and
it must also be added to get the Total DB2 TCB CPU time
in DB2ACCT. So the final (Dec 21) equation is:
DB2TCBTM=
SUM((QWACEJST-QWACBJST),QWACSPCP,QWACTRTE);
The SPAS accounting error surfaced when one user saw the
daily DB2 CPU time for his AUTHID jump from 20.17 seconds
when only EJST-BJST was charged, to 137.57 seconds when
SPCP=58.76 and SPTT = 58.60 were both added by MXG; the
user's bill increased by a factor of six!
His real cost without the double accounting was 78.93,
so his bill should increase by a factor of only four.
For this one AUTHID, SPAS CPU time was significant, and
because the SPTT time recorded was also large, the MXG
double accounting was significant. But that may not be
the general case; overall, SPTT seems to be quite small,
even when SPCP is large. Looking at the daily totals
from two sites shows that including SPCP can be
significant, but the CPU time in SPTT was insignificant:
One site Other site
EJST-BJST 166,612 1,095,220.92
QWACSPCP 205,839 389.34
QWACTRTE 0 0
DB2TCBTM 372,451 1,095,610.26
QWACSPTT 2,902 388.00
You should run a PROC MEANS SUM DATA=PDB.DB2ACCT;
to determine the impact of including SPTT at your site.
Dec 21 update: Today I looked at the DSNDQWAC DSECT, and
it was right all along, as it documents that:
QWACSPTT THE ACCUMULATED TCB TIME CONSUMED IN DB2 PROCESSING SQL
STATEMENTS ISSUED BY STORED PROCEDURE(S)
AND INCLUDED IN QWACSPCP <<===== !!!!!
It's all about knowing which documentation to believe!
To summarize what has been true in DB2ACCT and ASUMUOW:
- DB2TCBTM is calculated as
SUM((QWACEJST-QWACBJST),QWACSPCP,QWACTRTE);
QWACSPCP and QWACTRTE are added by MXG into DB2TCBTM
QWACSPTT is NOT added, because it is in QWACSPCP.
Thank to Steve Colio, CIGNA, USA.
Thanks to Jiann-Shiun Huang, CIGNA, USA
Thanks to Curt Cotner, IBM, USA.
Change 18.299 Support for SMF 120 record for Websphere Application
EXT120CC Server Enterprise Edition OS/390 Component Broker
EXT120CM Version 3.02, added by APAR OW44456.
EXT120SA There are four subtypes, described by IBM as:
EXT120SC
EXT120SI Subtype=1: Server Activity Record:
FORMATS Created for each activity that is running inside a
IMAC120 Websphere Application Server. This record can be used to
TYPE120 perform basic charge back accounting as well as profiling
VMAC120 of customer written applications to determine in detail
VMXGINIT what is happening inside the Websphere Application
Dec 16, 2000 Server.
MXG dataset TY120SA
Subtype=2: Container Activity Record
Created for each activity that runs inside a container
located in a Websphere Application Server. This record
can be used to perform basic charge back accounting,
application profiling, problem determination, and
capacity planning. MXG Datasets TYP120CA/TYP120CC and
TYPE102CM.
Subtype=3: Server Interval Record
Created for each server instance that has interval
recording active during the interval. The purpose of this
record subtype is to record activity that is running
inside a Websphere Application Server. This record is
produced at regular intervals and is an aggregation of
the work that has run inside the server instance during
the interval. MXG Dataset TYP120SI.
Subtype=4: Container Interval Record
Created for each active container located in a Websphere
Application Server. This interval record provides a
snapshot view of the activity running inside the
container. This record can be used to perform application
profiling, problem determination, and capacity planning.
Dostları ilə paylaş: |