Technical Blog Post
Abstract
ITM Agent Insights: ITCAM for DB2 monitoring agent (UD) returns -4 value indicating "Not Available" for KUDINFO00 and KUDSYSINFO attributes.
Body
Code changes made for defect 105994 changed the default value for UD agent metrics gathered as part of "DB2 System Overview" and "DB2 System Overview (Superseded)" will result in -4 being returned for numeric fields that were not collected.
Previous versions of UD agent would return a value of 0 (zero) when not collected, which could be confused with a valid value of 0 being returned for a metric that was successfully gathered as part of the sample.
This change to clarify when metrics are not collected was first implemented in 7.1.0-TIV-ITM_DB2-IF0005.
IBM(R) Tivoli(R) Composite Application Manager Agent for DB2, Version 7.1.0 Interim Fix 0005 (7.1.0-TIV-ITM_DB2-IF0005)
/support/pages/node/587623
***
Defect: 105994
Abstract: Updating dummy value for attribute group KUDINFO00 and
KUDSYSINFO.
Additional information: Data collection failure for attribute groups
KUDINFO00 and KUDSYSINFO was resulting in sending default
value as 0 for all numeric attributes. As 0 could be valid
value in some cases, this was creating confusion for user.
Updated default values for all numeric attributes from
0 to -4 ( Not Applicable ).
***
This change impacts the following numeric attributes of these two attribute groups:
"DB2 System Overview" - KUD_DB2_System_Overview - KUDSYSINFO
Agents Created Empty Pool
Agents Created Empty Pool Ratio
Agents from Pool
Agents Registered
Agents Registered Top
Agents Stolen
Agents Waiting on Token
Agents Waiting on Token Percent
Agents Waiting Top
Appl Support Layer Heap Size
Buff Free
Buff Free Bottom
Buff Max Used Percent
Buff Used Percent
CE Free
CE Free Bottom
CE Max Used Percent
CE Used Percent
Committed Private Memory
Conn Local Database
Cons in Exec Percent
Coordinating Agents Top
DB2 Available
FCM Num Anchors
FCM Num Buffers
FCM Num Connect
FCM Num Rqb
Gateway Cons Wait
Gateway Cons Wait Host
Gateway Current Connections
Gateway Total Connections
Idle Agents
Local Connections
Local Connection Executing
MA Free Bottom
MA Max Used Percent
Max Agent Overflows
Max Agents
Max Conc Agents
Max Coord Agents
Mon Heap Size
Piped Sort Hit Ratio Percent for Interval
Piped Sorts Accepted
Piped Sorts Accepted Percent
Piped Sorts Rejected for Interval
Piped Sorts Rejected Percent for Interval
Piped Sorts Requested
Post Threshold Hash Joins
Post Threshold OLAP Funcs
Post Threshold Sorts
Priority of Agents
RB Free
RB Free Bottom
RB Max Used Percent
RB Used Percent
Remote Connections
Remote Connections Executing
Req IO Blk
Total Buffers Rcvd
Total Buffers Sent
"DB2 System Overview (Superseded)" - KUDINFO00 - KUD4238000
Agents Created Empty Pool
Agents Created Empty Pool Ratio
Agents from Pool
Agents Registered
Agents Registered Top
Agents Stolen
Agents Waiting on Token
Agents Waiting on Token Pct
Agents Waiting Top
Appl Support Layer Heap Size
Buff Free
Buff Free Bottom
Buff Max Used Pct
Buff Used Pct
CE Free
CE Free Bottom
CE Max Used Pct
CE Used Pct
Comm Private Mem
Comm Private Mem (KB)
Conn Local Databases
Cons in Exec Pct
Coord Agents Top
DB2 Avail
DBPG Node Status
FCM Num Anchors
FCM Num Buffers
FCM Num Connect
FCM Num rqb
GW Cons Wait Client
GW Cons Wait Host
GW Cur Cons
GW Total Cons
Idle Agents
Local Cons
Local Cons in Exec
MA Free Bottom
MA Max Used Pct
Max Agent Overflows
Max Agents
Max Conc Agents
Max Coord Agents
Mon Heap Size
Piped Sort Hit Ratio Pct for Interval
Piped Sorts Accepted
Piped Sorts Accepted Pct
Piped Sorts Rejected for Interval
Piped Sorts Rejected Pct for Interval
Piped Sorts Requested
Post Threshold Hash Joins
Post Threshold Sorts
Priority of Agents
Query Heap Size
RB Free
RB Free Bottom
RB Max Used Pct
RB Used Pct
Rem Cons in
Rem Cons in Exec
Req IO Blk
Total Buffers Rcvd
Total Buffers Sent
These attributes rely on output returned from DB2 based on the contents of DB2 snapshot information.
The UD monitoring agent collects data using snapshot in raw format and then it performs manipulations on that dump.
Since the DB2 snapshot will be written to the UD agent RAS1 logs as the raw format, it is not useful to identify whether an individual metric is being returned as part of the snapshot, and debugging would require running the DB2 snapshot command externally to see the information that UD agent interprets for each field.
Different individual metrics in these attribute groups rely on separate DB2 configuration settings.
Since individual metrics within these attribute groups may depend on different underlying configuration settings, if there is not a general issue with gathering the DB2 snapshot where ALL of the attributes are returning as 0 (pre-105994) or ALL are returning as -4 (post-105994), the first step would be idetnify which specific attribute is of concern, to identify any specific DB2 configuration setting that enables that specific metric to be gathered and included in DB2 snapshot data.
Diagnostics to gather for the UD agent to confirm whether there is a generic problem gathering the DB2 snapshot information, and to identify the values being returned to TEMS / TEPS by the UD endpoint:
KBB_RAS1=ERROR (UNIT:KUD ALL) (UNIT:CSS ALL) (UNIT:KRA ALL)
Example showing a problem gathering the DB2 snapshot due to a connection issue to the DB2 database instance:
cssmain.cpp,1838,"Attach") Attach to instance: 'DB2_01, with user: failed. Trying to attach the instance without user
cssmain.cpp,1849,"Attach") Error - Attach()=>function failed and sql error code is -1032
cssmain.cpp,1968,"SqlInfoPrint") Entry
cssmain.cpp,1982,"SqlInfoPrint") ---- error report ----------------------------
cssmain.cpp,1988,"SqlInfoPrint") app. message = instance -- attach
cssmain.cpp,1989,"SqlInfoPrint") line = 1851
cssmain.cpp,1990,"SqlInfoPrint") file = cssmain.cpp
cssmain.cpp,1991,"SqlInfoPrint") SQLCODE = -1032
cssmain.cpp,1998,"SqlInfoPrint") SQL1032N No start database manager command was issued. SQLSTATE=57019
cssmain.cpp,2003,"SqlInfoPrint") sqlerrmc = ''
cssmain.cpp,2007,"SqlInfoPrint") sqlerrp = 'SQLJCMN '
cssmain.cpp,2015,"SqlInfoPrint") sqlerrd[0] = -2127167470
cssmain.cpp,2015,"SqlInfoPrint") sqlerrd[1] = 18
cssmain.cpp,2015,"SqlInfoPrint") sqlerrd[2] = 0
cssmain.cpp,2015,"SqlInfoPrint") sqlerrd[3] = 0
cssmain.cpp,2015,"SqlInfoPrint") sqlerrd[4] = 0
cssmain.cpp,2015,"SqlInfoPrint") sqlerrd[5] = 0
cssmain.cpp,2021,"SqlInfoPrint") sqlwarn = ' '
cssmain.cpp,2025,"SqlInfoPrint") ---- error report ----------------------------
cssmain.cpp,2033,"SqlInfoPrint") Exit
cssmain.cpp,1862,"Attach") sqlca.sqlstate = '57019'
...
kraudi1b.cpp,473,"PrintSelf") _data {
kraudi1b.cpp,474,"PrintSelf") count=1, allocated=10, allocSize=10
kraudi1b.cpp,479,"PrintSelf") {
kraudi1b.cpp,480,"PrintSelf") originnode="DB2_01:PTD024822:UD"
kraudi1b.cpp,481,"PrintSelf") db2stat="InActive/Busy"
kraudi1b.cpp,482,"PrintSelf") startti=" "
kraudi1b.cpp,483,"PrintSelf") lrstti=" "
kraudi1b.cpp,484,"PrintSelf") sstime=" "
kraudi1b.cpp,485,"PrintSelf") prdid=" "
kraudi1b.cpp,486,"PrintSelf") iname="DB2_01 "
kraudi1b.cpp,487,"PrintSelf") version=""
kraudi1b.cpp,488,"PrintSelf") svrtyp=" "
kraudi1b.cpp,489,"PrintSelf") shallc=-4
kraudi1b.cpp,490,"PrintSelf") psttsrt=-4
kraudi1b.cpp,491,"PrintSelf") psreq=-4
kraudi1b.cpp,492,"PrintSelf") psaccp=-4
kraudi1b.cpp,493,"PrintSelf") psacpct=-4
kraudi1b.cpp,494,"PrintSelf") remcin=-4
kraudi1b.cpp,495,"PrintSelf") remcinx=-4
kraudi1b.cpp,496,"PrintSelf") lclcon=-4
kraudi1b.cpp,497,"PrintSelf") lclcinx=-4
kraudi1b.cpp,498,"PrintSelf") clcldb=-4
kraudi1b.cpp,499,"PrintSelf") agreg=-4
kraudi1b.cpp,500,"PrintSelf") agwtk=-4
kraudi1b.cpp,501,"PrintSelf") agwtp=-4
kraudi1b.cpp,502,"PrintSelf") agfrpl=-4
kraudi1b.cpp,503,"PrintSelf") agcepl=-4
kraudi1b.cpp,504,"PrintSelf") agceplr=-4
kraudi1b.cpp,505,"PrintSelf") crdatp=-4
kraudi1b.cpp,506,"PrintSelf") mxaofl=-4
kraudi1b.cpp,507,"PrintSelf") astln=-4
kraudi1b.cpp,508,"PrintSelf") agrtop=-4
kraudi1b.cpp,509,"PrintSelf") agwtop=-4
kraudi1b.cpp,510,"PrintSelf") cprvmem=-4
kraudi1b.cpp,511,"PrintSelf") idleag=-4
kraudi1b.cpp,512,"PrintSelf") gwttlcons=-4
kraudi1b.cpp,513,"PrintSelf") gwccons=-4
kraudi1b.cpp,514,"PrintSelf") gwcwhst=-4
kraudi1b.cpp,515,"PrintSelf") gwcwtcli=-4
kraudi1b.cpp,516,"PrintSelf") pstthjn=-4
kraudi1b.cpp,517,"PrintSelf") pshrpi=-4
kraudi1b.cpp,518,"PrintSelf") agpri=-4
kraudi1b.cpp,519,"PrintSelf") alshpsz=-4
kraudi1b.cpp,520,"PrintSelf") fcmna=-4
kraudi1b.cpp,521,"PrintSelf") fcmnb=-4
kraudi1b.cpp,522,"PrintSelf") fcmnc=-4
kraudi1b.cpp,523,"PrintSelf") fcmnrqb=-4
kraudi1b.cpp,524,"PrintSelf") mxagt=-4
kraudi1b.cpp,525,"PrintSelf") mxcagt=-4
kraudi1b.cpp,526,"PrintSelf") mxcaagt=-4
kraudi1b.cpp,527,"PrintSelf") monhpsz=-4
kraudi1b.cpp,528,"PrintSelf") qhpsz=-4
kraudi1b.cpp,529,"PrintSelf") rqrioblk=-4
kraudi1b.cpp,530,"PrintSelf") psrejpi=-4
kraudi1b.cpp,531,"PrintSelf") shpthrs=-4
kraudi1b.cpp,532,"PrintSelf") constat=-4
kraudi1b.cpp,533,"PrintSelf") bufree=-4
kraudi1b.cpp,534,"PrintSelf") cefree=-4
kraudi1b.cpp,535,"PrintSelf") rbfree=-4
kraudi1b.cpp,536,"PrintSelf") bufbot=-4
kraudi1b.cpp,537,"PrintSelf") cefbot=-4
kraudi1b.cpp,538,"PrintSelf") mafbot=-4
kraudi1b.cpp,539,"PrintSelf") rbfbot=-4
kraudi1b.cpp,540,"PrintSelf") busdp=-4
kraudi1b.cpp,541,"PrintSelf") rbusdp=-4
kraudi1b.cpp,542,"PrintSelf") ceusdp=-4
kraudi1b.cpp,543,"PrintSelf") bmxup=-4
kraudi1b.cpp,544,"PrintSelf") cemxup=-4
kraudi1b.cpp,545,"PrintSelf") mamxup=-4
kraudi1b.cpp,546,"PrintSelf") rbmxup=-4
kraudi1b.cpp,547,"PrintSelf") tlbrcvd=-4
kraudi1b.cpp,548,"PrintSelf") tlbsnt=-4
kraudi1b.cpp,549,"PrintSelf") psrejfi=-4
kraudi1b.cpp,550,"PrintSelf") dbpgnstat="
kraudi1b.cpp,551,"PrintSelf") db2avail=-4
kraudi1b.cpp,552,"PrintSelf") cnxcp=-4
kraudi1b.cpp,553,"PrintSelf") prtnno="-2 "
kraudi1b.cpp,554,"PrintSelf") shpup=-4
kraudi1b.cpp,555,"PrintSelf") olapfun=-4
kraudi1b.cpp,556,"PrintSelf") }
kraudi1b.cpp,560,"PrintSelf") }
kraudi1b.cpp,562,"PrintSelf") Exit
Notice in the above the connection failure to attach to the database.
Notice in the "PrintSelf" output for the attribute values that ALL the string values are blank / empty, and ALL the numeric values are -4 indicating "Not Available" as the default value returned.
(Prior to changes made with Defect 105994, the default value was 0, so the PrintSelf would show ALL zero values for the numeric fields, indicating a problem with gathering the snapshot details for the database)
Example showing successful collection of DB2 snapshot, where some individual values are returned as "Not Available":
kraafira.cpp,880,"DriveDataCollection") Entry
kraafira.cpp,890,"DriveDataCollection") KUD00.KUDSYSINFO, <3652190457,353371097> expired.
kraaprdf.cpp,330,"BeginSample") Active RAS1 Classes: EVERYT EVERYE EVERYU
kudi1agt.cpp,100,"TakeSample") Entry
kudagentcommon.cpp,1670,"GetSnapShotPartitions") Getting query (no filter) snapshot partitions
kudagentcommon.cpp,1702,"GetSnapShotPartitions") Returning 1 db partitions
kudagentcommon.cpp,1706,"GetSnapShotPartitions") Returning db partition -1
kudagentcommon.cpp,1709,"GetSnapShotPartitions") Exit: 0x1
cssmain.cpp,1800,"Attach") Entry
cssmain.cpp,1873,"Attach") Attach results are as follows
kudagentcommon.cpp,738,"GetCurrentlocalDatabaseDirInfo") Entry
kbbssge.c,52,"BSS1_GetEnv") LOCAL_INSTANCE="Y"
kudagentcommon.cpp,752,"GetCurrentlocalDatabaseDirInfo") Local Flag = Y
kudagentcommon.cpp,864,"GetCurrentlocalDatabaseDirInfo") database name is 'TEST'
kudagentcommon.cpp,868,"GetCurrentlocalDatabaseDirInfo") database drive path = '/home/db2inst1
kudagentcommon.cpp,874,"GetCurrentlocalDatabaseDirInfo") database info is 'TEST TEST /home/db2inst1
kudagentcommon.cpp,932,"GetCurrentlocalDatabaseDirInfo") Exit: 0x1
kudagentcommon.cpp,947,"GetCurrentLocalDCSDatabaseDirInfo") Entry
kudagentcommon.cpp,973,"GetCurrentLocalDCSDatabaseDirInfo") Open DCS database directories failed with sqlcode = -1311
kudagentcommon.cpp,2020,"PrintSqlInfo") Entry
kudagentcommon.cpp,2034,"PrintSqlInfo") ---- error report ----------------------------
kudagentcommon.cpp,2043,"PrintSqlInfo") app. message = DCS Database Directories - Open
kudagentcommon.cpp,2044,"PrintSqlInfo") line = 974
kudagentcommon.cpp,2045,"PrintSqlInfo") file = kudagentcommon.cpp
kudagentcommon.cpp,2046,"PrintSqlInfo") SQLCODE = -1311
kudagentcommon.cpp,2054,"PrintSqlInfo") SQL1311N The Database Connection Services directory cannot be found.
kudagentcommon.cpp,2065,"PrintSqlInfo") sqlerrmc = '' "
kudagentcommon.cpp,2069,"PrintSqlInfo") sqlerrp = 'SQL10010'
kudagentcommon.cpp,2077,"PrintSqlInfo") sqlerrd[0] = 0
kudagentcommon.cpp,2077,"PrintSqlInfo") sqlerrd[1] = 0
kudagentcommon.cpp,2077,"PrintSqlInfo") sqlerrd[2] = 0
kudagentcommon.cpp,2077,"PrintSqlInfo") sqlerrd[3] = 0
kudagentcommon.cpp,2077,"PrintSqlInfo") sqlerrd[4] = 0
kudagentcommon.cpp,2077,"PrintSqlInfo") sqlerrd[5] = 0
kudagentcommon.cpp,2083,"PrintSqlInfo") sqlwarn = ' '
kudagentcommon.cpp,2087,"PrintSqlInfo") ---- error report ----------
kudagentcommon.cpp,2095,"PrintSqlInfo") Exit
kudagentcommon.cpp,982,"GetCurrentLocalDCSDatabaseDirInfo") No local DCS database was found
kudagentcommon.cpp,983,"GetCurrentLocalDCSDatabaseDirInfo") Exit: 0x0
cssmain.cpp,161,"CandleDb2SnapShot") Exit
kudi1agt.cpp,253,"TakeSample") Getting DB2 version --> 10.1.0
cssinagt.cpp,904,"GetFailedNodes") Current server partition node number is 1
cssmain.cpp,1800,"Attach") Entry
cssmain.cpp,1873,"Attach") Attach results are as follows
cssmain.cpp,1874,"Attach") country codepage AuthorisationId NodeName Identity AgentId AgentIndex NodeNumber Partitions
cssmain.cpp,1884,"Attach") 1
cssmain.cpp,1884,"Attach") 819
cssmain.cpp,1884,"Attach") ROOT
cssmain.cpp,1884,"Attach") DB2INST1
cssmain.cpp,1884,"Attach") QDB2/AIX64
cssmain.cpp,1884,"Attach") 3016
cssmain.cpp,1884,"Attach") 3016
cssmain.cpp,1884,"Attach") 0
cssmain.cpp,1884,"Attach") 0
cssmain.cpp,1892,"Attach") AgentId 3016, ServerPartitionNodeNum 0, NumPartitions 0
cssmain.cpp,1897,"Attach") Exit: 0x1
cssinagt.cpp,931,"GetFailedNodes") Attaching to node 0 with sqlcode = 0
cssinagt.cpp,938,"GetFailedNodes") Server partition node number at first node in the dbpartition list is 0
cssmain.cpp,1905,"Detach") Entry
cssmain.cpp,1966,"SqlInfoPrint") Entry
cssmain.cpp,2031,"SqlInfoPrint") Exit
cssmain.cpp,1913,"Detach") Exit
cssinagt.cpp,976,"GetFailedNodes") Setting current partition node number to node '0'
cssinagt.cpp,987,"GetFailedNodes") Exit
cssmain.cpp,1800,"Attach") Entry
cssmain.cpp,1873,"Attach") Attach results are as follows
cssmain.cpp,1874,"Attach") country codepage AuthorisationId NodeName Identity AgentId AgentIndex NodeNumber Partitions
cssmain.cpp,1884,"Attach") 1
cssmain.cpp,1884,"Attach") 819
cssmain.cpp,1884,"Attach") ROOT
cssmain.cpp,1884,"Attach") DB2INST1
cssmain.cpp,1884,"Attach") QDB2/AIX64
cssmain.cpp,1884,"Attach") 3023
cssmain.cpp,1884,"Attach") 3023
cssmain.cpp,1884,"Attach") 0
cssmain.cpp,1884,"Attach") 0
cssmain.cpp,1892,"Attach") AgentId 3023, ServerPartitionNodeNum 0, NumPartitions 0
cssmain.cpp,1897,"Attach") Exit: 0x1
cssmain.cpp,1310,"GetDatabaseSnapshot") Entry
cssmain.cpp,806,"PutSqlBuild") Entry
cssmain.cpp,846,"PutSqlBuild") Exit
cssmain.cpp,875,"ProhibitAggrDcsSnapshot") Entry
cssmain.cpp,960,"ProhibitAggrDcsSnapshot") Not an aggregated (all nodes) snapshot request
cssmain.cpp,964,"ProhibitAggrDcsSnapshot") Exit: 0x1129F410
cssmain.cpp,675,"GetObjectArraySize") Entry
cssmain.cpp,733,"GetObjectArraySize") Exitcssmain.cpp,976,"ManipulateSqlma") Entry
cssmain.cpp,988,"ManipulateSqlma") SQLMA objtype 65537
cssmain.cpp,1134,"ManipulateSqlma") No objects added to request
cssmain.cpp,1204,"ManipulateSqlma") Exit
cssmain.cpp,1423,"GetDatabaseSnapshot") Calling db2GetSnapshotSize : db2iversion 10, db2version 10010000
cssmain.cpp,1426,"GetDatabaseSnapshot") Calling db2GetSnapshotSize : objtype_copy[0] = 65537
cssmain.cpp,1489,"GetDatabaseSnapshot") Snapshot buffer size needed 4768
cssmain.cpp,1497,"GetDatabaseSnapshot") Snapshot buffer size allocated 4912
cssmain.cpp,1588,"GetDatabaseSnapshot") <0x1119E2630,0x1330> dump of snapshot
*
*
*
* Raw output from DB2 snapshot displayed in RAS1 logs
*
*
*
cssmain.cpp,1676,"GetDatabaseSnapshot") Exit
cssmain.cpp,2133,"ParseMonitorStream") Entry
*
*
*
* Details of the size of specific fields that will be parsed out of the raw output for various metrics.
*
*
*
cssmain.cpp,2280,"ParseMonitorStream") Exit
cssinagt.cpp,37,"ParseSQLMA_DB2") Entry
cssinagt.cpp,420,"CollectParsedSQLMA_DB2int") Entry
kudagentcommon.cpp,180,"saveStringAttributes") Entry
kudagentcommon.cpp,202,"InitStr") Entry
kudagentcommon.cpp,214,"InitStr") Exit
kudagentcommon.cpp,191,"saveStringAttributes") Exit
cssinagt.cpp,657,"CollectParsedSQLMA_DB2int") DB2 Type 'MPP
cssinagt.cpp,673,"CollectParsedSQLMA_DB2int") Exit
cssinagt.cpp,420,"CollectParsedSQLMA_DB2int") Entry
kudagentcommon.cpp,180,"saveStringAttributes") Entry
kudagentcommon.cpp,202,"InitStr") Entry
kudagentcommon.cpp,214,"InitStr") Exit
kudagentcommon.cpp,191,"saveStringAttributes") Exit
cssinagt.cpp,622,"CollectParsedSQLMA_DB2int") DB2 version is '10 MPP
cssinagt.cpp,673,"CollectParsedSQLMA_DB2int") Exit
cssinagt.cpp,420,"CollectParsedSQLMA_DB2int") Entry
cssinagt.cpp,673,"CollectParsedSQLMA_DB2int") Exit
cssinagt.cpp,37,"ParseSQLMA_DB2") Entry
cssinagt.cpp,257,"ParseSQLMA_DB2") Snap executed time(sec) is 1502466176
cssinagt.cpp,420,"CollectParsedSQLMA_DB2int") Entry
cssinagt.cpp,673,"CollectParsedSQLMA_DB2int") Exit
cssinagt.cpp,262,"ParseSQLMA_DB2") Snap executed time(msec) is 161776
cssmain.cpp,2090,"getCandleTime") Entry
cssmain.cpp,2116,"getCandleTime") Exit
cssinagt.cpp,275,"ParseSQLMA_DB2") snapshot timestamp is '1170811174256161'
cssinagt.cpp,420,"CollectParsedSQLMA_DB2int") Entry
cssinagt.cpp,37,"ParseSQLMA_DB2") Entry
cssinagt.cpp,420,"CollectParsedSQLMA_DB2int") Entry
cssinagt.cpp,427,"CollectParsedSQLMA_DB2int") Heap Allocated is 0
cssinagt.cpp,431,"CollectParsedSQLMA_DB2int") Post ThresHold sorts is 0
cssinagt.cpp,661,"CollectParsedSQLMA_DB2int") piped sorts requested is 13514
cssinagt.cpp,665,"CollectParsedSQLMA_DB2int") piped sorts accepted is 13514
cssinagt.cpp,435,"CollectParsedSQLMA_DB2int") rem cons in is 0
cssinagt.cpp,439,"CollectParsedSQLMA_DB2int") Rem cons in exec 0
cssinagt.cpp,443,"CollectParsedSQLMA_DB2int") Local cons is 0
cssinagt.cpp,447,"CollectParsedSQLMA_DB2int") Local cons in exec 0
cssinagt.cpp,451,"CollectParsedSQLMA_DB2int") Local cons dbases 0
cssinagt.cpp,455,"CollectParsedSQLMA_DB2int") Agents Registered 2
cssinagt.cpp,576,"CollectParsedSQLMA_DB2int") db2 status is 'Active'
cssinagt.cpp,483,"CollectParsedSQLMA_DB2int") Agents registered Top 26
cssinagt.cpp,491,"CollectParsedSQLMA_DB2int") comm private mem 11075584
cssinagt.cpp,495,"CollectParsedSQLMA_DB2int") idle agents 1
cssinagt.cpp,463,"CollectParsedSQLMA_DB2int") Agents from pool 25853
cssinagt.cpp,467,"CollectParsedSQLMA_DB2int") Agents created empty pool 302407
cssinagt.cpp,471,"CollectParsedSQLMA_DB2int") Agents coord top 26
cssinagt.cpp,479,"CollectParsedSQLMA_DB2int") Agents Stollen 0
cssinagt.cpp,499,"CollectParsedSQLMA_DB2int") Total conns 0
cssinagt.cpp,503,"CollectParsedSQLMA_DB2int") current cons 0
cssinagt.cpp,507,"CollectParsedSQLMA_DB2int") conns wait host 0
cssinagt.cpp,511,"CollectParsedSQLMA_DB2int") conns wait client 0
cssinagt.cpp,515,"CollectParsedSQLMA_DB2int") post threshold hash joins 0
cssinagt.cpp,669,"CollectParsedSQLMA_DB2int") post threshold olap funcs is 0
cssinagt.cpp,299,"ParseSQLMA_DB2") DB2 start timestamp is '1170727032946675'
cssinagt.cpp,325,"ParseSQLMA_DB2") DB2 last reset timestamp is '0000000000000001'
...
cssinagt.cpp,679,"CollectParsedSQLMA_DB2char") Entry
cssinagt.cpp,37,"ParseSQLMA_DB2") Entry
cssinagt.cpp,420,"CollectParsedSQLMA_DB2int") Entry
cssinagt.cpp,711,"GetDBMConfigParams") Entry
cssinagt.cpp,718,"GetDBMConfigParams") Getting DBM config params for database
cssinagt.cpp,812,"GetDBMConfigParams") DBM config agentpri is -1
cssinagt.cpp,815,"GetDBMConfigParams") DBM config aslheapsz is 15
cssinagt.cpp,818,"GetDBMConfigParams") DBM config fcm_num_anchors is 0
cssinagt.cpp,821,"GetDBMConfigParams") DBM config fcm_num_buffers is 4096
cssinagt.cpp,824,"GetDBMConfigParams") DBM config fcm_num_connect is 0
cssinagt.cpp,827,"GetDBMConfigParams") DBM config fcm_num_rqb is 0
cssinagt.cpp,830,"GetDBMConfigParams") DBM config maxagents is 0
cssinagt.cpp,837,"GetDBMConfigParams") DBM config max_coordagents is 4
cssinagt.cpp,842,"GetDBMConfigParams") DBM config maxcagents is 0
cssinagt.cpp,845,"GetDBMConfigParams") DBM config mon_heap_sz is 90
cssinagt.cpp,848,"GetDBMConfigParams") DBM config query_heap_sz is 1000
cssinagt.cpp,851,"GetDBMConfigParams") DBM config rqrioblk is 32767
cssinagt.cpp,854,"GetDBMConfigParams") DBM config sheapthres is 0
cssinagt.cpp,859,"GetDBMConfigParams") DBM config num_initagents is 0
cssinagt.cpp,862,"GetDBMConfigParams") DBM config intra_parallel is 0
cssinagt.cpp,866,"GetDBMConfigParams") Exit: 0x1
cssheaders.cpp,1136,"calculatePercent") Entry
cssheaders.cpp,1069,"calculatePercentPrecision") Entry
cssheaders.cpp,1111,"calculatePercentPrecision") Exit: 0x25D8
cssheaders.cpp,1149,"calculatePercent") Exit: 0x25D8
cssinagt.cpp,125,"ParseSQLMA_DB2") Percent of buffer used = 9688
cssinagt.cpp,136,"ParseSQLMA_DB2") Percent of request blocks used = 0
cssinagt.cpp,147,"ParseSQLMA_DB2") Percent connection entries used = 0
cssheaders.cpp,1136,"calculatePercent") Entry
cssheaders.cpp,1069,"calculatePercentPrecision") Entry
cssheaders.cpp,1111,"calculatePercentPrecision") Exit: 0x25D8
cssheaders.cpp,1149,"calculatePercent") Exit: 0x25D8
cssinagt.cpp,158,"ParseSQLMA_DB2") Max buffer used percentage = 9688
cssinagt.cpp,169,"ParseSQLMA_DB2") Max connection entries used percentage = 0
cssinagt.cpp,180,"ParseSQLMA_DB2") Max message anchors used percentage = 0
cssinagt.cpp,191,"ParseSQLMA_DB2") Max request block used percentage = 0
cssinagt.cpp,205,"ParseSQLMA_DB2") Percentage Connections in execution = 0
cssinagt.cpp,216,"ParseSQLMA_DB2") Percentage sort heap used = 0
cssinagt.cpp,414,"ParseSQLMA_DB2") Exit: 0x119E2D05
...
kraudi1b.cpp,172,"AddData") Entry
kraafira.cpp,4408,"CheckDistributionList") Entry
kraafira.cpp,4462,"CheckDistributionList") Exit: 0x1
kraaprdf.cpp,195,"CheckForException") Entry
kraaamus.cpp,382,"IRA_IsMaintenanceMode") Comp:* Level:1.18.2.1, Sep 5 2013 08:26:55
kraaprdf.cpp,228,"CheckForException") Exit: 0x1
kraudi1b.cpp,189,"AddData") Passing row 0 to InsertRow().
kraafira.cpp,1120,"InsertRow") rowsize = 1716, newsize = 10, newbytes = 17160, _allocated = 0, _allocSize = 10
kraudi1b.cpp,194,"AddData") Exit: 0x0
kudi1agt.cpp,566,"SetPrevIN") Entry
kudi1agt.cpp,571,"SetPrevIN") Saving previous IN data. Partition -1; number of instances is 1
kudi1agt.cpp,591,"SetPrevIN") saving piped_sorts_accepted = 13514
kudi1agt.cpp,594,"SetPrevIN") saving piped_sorts_rejected = 0
kudi1agt.cpp,597,"SetPrevIN") saving piped_sorts_requested = 13514
kudi1agt.cpp,599,"SetPrevIN") finish saving info
kudi1agt.cpp,603,"SetPrevIN") Completed saving previous system overview info data.
kudi1agt.cpp,605,"SetPrevIN") Exit
kudi1agt.cpp,414,"TakeSample") Deallocating csnap - before ptr 1113cfe50
cssmain.cpp,167,"~CandleDb2SnapShot") Entry
cssmain.cpp,1905,"Detach") Entry
cssmain.cpp,1966,"SqlInfoPrint") Entry
cssmain.cpp,2031,"SqlInfoPrint") Exit
cssmain.cpp,1913,"Detach") Exit
cssmain.cpp,240,"~CandleDb2SnapShot") Exit
kudi1agt.cpp,527,"TakeSample") Exit
kraaprdf.cpp,365,"EndSample") Active RAS1 Classes: EVERYT EVERYE EVERYU
kraaprdf.cpp,376,"EndSample") Flag value returned from FLT1_EndSample is <0>
kraudi1b.cpp,465,"PrintSelf") kud00_kudsysinfo_base @1113C9C90 <4073718505,334496727>
kraudi1b.cpp,467,"PrintSelf") ::appl=KUD00,table=KUDSYSINFO,interval=0,samptype=3
kraaprdf.cpp,690,"PrintSelf") Predicates {
kraaprdf.cpp,269,"GetFilterInfo") Filter Object check column ORIGINNODE padding character in effect is 0x20 length 32 20
kraaprdf.cpp,269,"GetFilterInfo") Filter Object check column PARMA padding character in effect is 0x20 length 3 3
kraaprdf.cpp,711,"PrintSelf") <ORIGINNODE,1,1113ED328<32>db2inst1:nc106182:UD ,8>
kraaprdf.cpp,719,"PrintSelf") <0x1113ED328,0x20>
00000000 64623269 6E737431 3A6E6331 30363138 db2inst1:nc10618
00000010 323A5544 20202020 20202020 20202020 2:UD............
kraaprdf.cpp,711,"PrintSelf") <PARMA,0,1113ED370<3>600,0>
kraaprdf.cpp,719,"PrintSelf") <0x1113ED370,0x3>
00000000 363030 600
kraaprdf.cpp,729,"PrintSelf") }
kraudi1b.cpp,473,"PrintSelf") _data {
kraudi1b.cpp,474,"PrintSelf") count=1, allocated=10, allocSize=10
kraudi1b.cpp,479,"PrintSelf") {
kraudi1b.cpp,480,"PrintSelf") originnode="db2inst1:nc106182:UD"
kraudi1b.cpp,481,"PrintSelf") db2stat="Active"
kraudi1b.cpp,482,"PrintSelf") startti="1170727032946675"
kraudi1b.cpp,483,"PrintSelf") lrstti="0000000000000001"
kraudi1b.cpp,484,"PrintSelf") sstime="1170811174256664"
kraudi1b.cpp,485,"PrintSelf") prdid="SQL10010"
kraudi1b.cpp,486,"PrintSelf") iname="db2inst1"
kraudi1b.cpp,487,"PrintSelf") version="10.1.0 "
kraudi1b.cpp,488,"PrintSelf") svrtyp="MPP"
kraudi1b.cpp,489,"PrintSelf") shallc=0
kraudi1b.cpp,490,"PrintSelf") psttsrt=0
kraudi1b.cpp,491,"PrintSelf") psreq=13514
kraudi1b.cpp,492,"PrintSelf") psaccp=13514
kraudi1b.cpp,493,"PrintSelf") psacpct=10000
kraudi1b.cpp,494,"PrintSelf") remcin=0
kraudi1b.cpp,495,"PrintSelf") remcinx=0
kraudi1b.cpp,496,"PrintSelf") lclcon=0
kraudi1b.cpp,497,"PrintSelf") lclcinx=0
kraudi1b.cpp,498,"PrintSelf") clcldb=0
kraudi1b.cpp,499,"PrintSelf") agreg=2
kraudi1b.cpp,500,"PrintSelf") agwtk=-4
kraudi1b.cpp,501,"PrintSelf") agwtp=0
kraudi1b.cpp,502,"PrintSelf") agfrpl=25856
kraudi1b.cpp,503,"PrintSelf") agcepl=302407
kraudi1b.cpp,504,"PrintSelf") agceplr=116958
kraudi1b.cpp,505,"PrintSelf") crdatp=26
kraudi1b.cpp,506,"PrintSelf") mxaofl=-4
kraudi1b.cpp,507,"PrintSelf") astln=0
kraudi1b.cpp,508,"PrintSelf") agrtop=26
kraudi1b.cpp,509,"PrintSelf") agwtop=-4
kraudi1b.cpp,510,"PrintSelf") cprvmem=11075584
kraudi1b.cpp,511,"PrintSelf") idleag=1
kraudi1b.cpp,512,"PrintSelf") gwttlcons=0
kraudi1b.cpp,513,"PrintSelf") gwccons=0
kraudi1b.cpp,514,"PrintSelf") gwcwhst=0
kraudi1b.cpp,515,"PrintSelf") gwcwtcli=0
kraudi1b.cpp,516,"PrintSelf") pstthjn=0
kraudi1b.cpp,517,"PrintSelf") pshrpi=10000
kraudi1b.cpp,518,"PrintSelf") agpri=-1
kraudi1b.cpp,519,"PrintSelf") alshpsz=15
kraudi1b.cpp,520,"PrintSelf") fcmna=0
kraudi1b.cpp,521,"PrintSelf") fcmnb=4096
kraudi1b.cpp,522,"PrintSelf") fcmnc=0
kraudi1b.cpp,523,"PrintSelf") fcmnrqb=0
kraudi1b.cpp,524,"PrintSelf") mxagt=0
kraudi1b.cpp,525,"PrintSelf") mxcagt=4
kraudi1b.cpp,526,"PrintSelf") mxcaagt=0
kraudi1b.cpp,527,"PrintSelf") monhpsz=90
kraudi1b.cpp,528,"PrintSelf") qhpsz=1000
kraudi1b.cpp,529,"PrintSelf") rqrioblk=32767
kraudi1b.cpp,530,"PrintSelf") psrejpi=0
kraudi1b.cpp,531,"PrintSelf") shpthrs=0
kraudi1b.cpp,532,"PrintSelf") constat=-4
kraudi1b.cpp,533,"PrintSelf") bufree=128
kraudi1b.cpp,534,"PrintSelf") cefree=-4
kraudi1b.cpp,535,"PrintSelf") rbfree=-4
kraudi1b.cpp,536,"PrintSelf") bufbot=128
kraudi1b.cpp,537,"PrintSelf") cefbot=-4
kraudi1b.cpp,538,"PrintSelf") mafbot=-4
kraudi1b.cpp,539,"PrintSelf") rbfbot=-4
kraudi1b.cpp,540,"PrintSelf") busdp=9688
kraudi1b.cpp,541,"PrintSelf") rbusdp=0
kraudi1b.cpp,542,"PrintSelf") ceusdp=0
kraudi1b.cpp,543,"PrintSelf") bmxup=9688
kraudi1b.cpp,544,"PrintSelf") cemxup=0
kraudi1b.cpp,545,"PrintSelf") mamxup=0
kraudi1b.cpp,546,"PrintSelf") rbmxup=0
kraudi1b.cpp,547,"PrintSelf") tlbrcvd=-4
kraudi1b.cpp,548,"PrintSelf") tlbsnt=-4
kraudi1b.cpp,549,"PrintSelf") psrejfi=0
kraudi1b.cpp,550,"PrintSelf") dbpgnstat=" "
kraudi1b.cpp,551,"PrintSelf") db2avail=1347190
kraudi1b.cpp,552,"PrintSelf") cnxcp=0
kraudi1b.cpp,553,"PrintSelf") prtnno="-2 "
kraudi1b.cpp,554,"PrintSelf") shpup=0
kraudi1b.cpp,555,"PrintSelf") olapfun=0
kraudi1b.cpp,556,"PrintSelf") }
kraudi1b.cpp,560,"PrintSelf") }
kraudi1b.cpp,562,"PrintSelf") Exit
kraafira.cpp,1023,"DriveDataCollection") Exit: 0x0
Notice in the RAS1 logging that the DB2 snapshot results are displayed in the raw format, and then the values that are parsed out of the raw information are displayed in the subsequent tracing.
Notice that the "PrintSelf" shows a mix of collected values, but some numeric fields are still returning -4 default value indicating they were "Not Available".
Individual metrics that are "Not Available" may be the result of specific DB2 configuration settings not being enabled in the particular DB2 environment.
For example, the "fcm buffer size" attribute requires a configuration parameter to be set in multipartitioned environment, and does not allow for "AUTO" value.
The DB2 configuration parameter must be set on the DB2 server, otherwise the DB2 snapshot will not return data for this metric, and the UD agent would return the default value since it was not collected.
The change in behavior as a result of Defect 105994 is that values that were not collected previously would return a default value of 0, where is after the change will now return a default value of -4.
This change is to make it easier for customers to identify values that were not collected by reporting a -4 for "Not Available" when previously it was impossible to distinguish a zero value being returned because it was not collected, or if the value was gathered by the DB2 snapshot but just happened to be zero.
This change in default value may be reported as problems with situations relying on impacted KUDINFO00 and KUDSYSINFO attributes not triggering after upgrade, or "false" alerts after upgrade, or customers reporting unexpected negative values in TEP workspaces in bar charts.
Example:
Screenshot from 7.1 GA UD agent.
Screenshot from 7.1 IF5 UD agent for same environment as above.
Note that values that previously returned as zero for specific attributes, now display as -4 indicating "Not Available".
For "Max Agent Overflows", this is seen in the "PrintSelf" tracepoint:
kraudi1b.cpp,506,"PrintSelf") mxaofl=-4
Keywords:
drd401709
5724B96DO
kuddb2
negative four
UID
ibm11277908

