/**************************************************************************** ** (c) Copyright IBM Corp. 2007 All rights reserved. ** ** The following sample of source code ("Sample") is owned by International ** Business Machines Corporation or one of its subsidiaries ("IBM") and is ** copyrighted and licensed, not sold. You may use, copy, modify, and ** distribute the Sample in any form without payment to IBM, for the purpose of ** assisting you in the development of your applications. ** ** The Sample code is provided to you on an "AS IS" basis, without warranty of ** any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR ** IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do ** not allow for the exclusion or limitation of implied warranties, so the above ** limitations or exclusions may not apply to you. IBM shall not be liable for ** any damages you suffer as a result of using, copying, modifying or ** distributing the Sample, even if IBM has been advised of the possibility of ** such damages. ***************************************************************************** ** ** SOURCE FILE NAME: utilsnap.c ** ** SAMPLE: Utilities for the snapshot monitor samples ** ** This set of utilities sets the monitor switches, sets the ** configuration parameter for instance level throttling, parses ** the self-describing data stream, and prints logical data groups ** and their data elements to stdout. Snapshot monitor samples ** that use these utilities include clisnap, insnap, and dbsnap. ** ** DB2 APIs USED: ** db2CfgSet -- Set Configuration ** db2GetSnapshotSize -- Get buffer size for db2GetSnapshot ** db2GetSnapshot -- GET SNAPSHOT ** db2MonitorSwitches -- GET/UPDATE MONITOR SWITCHES ** ** STRUCTURES USED: ** db2Cfg ** db2CfgParam ** sqlca ** sqlma ** sqlm_collected ** sqlm_header_info ** sqlm_recording_group ** ***************************************************************************** ** ** For more information on the sample programs, see the README file. ** ** For information on developing embedded SQL applications see the Developing Embedded SQL Applications book. ** ** For information on DB2 APIs, see the Administrative API Reference. ** ** For the latest information on programming, building, and running DB2 ** applications, visit the DB2 Information Center: ** http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp ****************************************************************************/ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sqlutil.h> #include <sqlenv.h> #include <sqlmon.h> #include <db2ApiDf.h> #include "utilapi.h" #define sqlmCheckRC(rc) \ {\ if ( rc ) \ { \ printf( "Addsnapshot returned error=%d sqlcode =%d\n", rc, sqlca.sqlcode );\ } \ if (sqlca.sqlcode != 0L) \ { \ SqlInfoPrint("db2AddSnapshotRequest", &sqlca, __LINE__, __FILE__); \ if (sqlca.sqlcode < 0L) \ { \ printf("\n%s",DASHES); \ printf("\ndb2GetSnapshotSize SQLCODE is %d. Exiting.", sqlca.sqlcode); \ printf("\n%s\n",DASHES); \ return((int)sqlca.sqlcode); \ } \ } \ } #define SNAPSHOT_BUFFER_UNIT_SZ 1024 #define NUMELEMENTS 983 #define BLANKS " " #define DASHES "----------------------------------------------------------------------" int FreeMemory(struct sqlma *ma_ptr, char *buffer_ptr); int GetSnapshot(struct sqlma *ma_ptr); int InitElementNames(void); sqlm_header_info *ParseMonitorStream(char *prefix, char *pStart, char *pEnd); int TurnOnAllMonitorSwitches(void); /* an array for the defined names of all monitor elements (from sqlmon.h) */ char *elementName[NUMELEMENTS]; /***************************************************************************/ /* FreeMemory */ /* General cleanup routine to release memory buffers. */ /***************************************************************************/ int FreeMemory(struct sqlma *ma_ptr, char *buffer_ptr) { int rc = 0; printf("\n%s",DASHES); printf("\nFreeing allocated memory."); printf("\n%s\n",DASHES); /* free output buffer */ if (buffer_ptr != NULL) free(buffer_ptr); /* free sqlma */ if (ma_ptr != NULL) free(ma_ptr); return rc; } /* FreeMemory */ /***************************************************************************/ /* GetSnapshotNew */ /* This function is called from one of insnapNew, clisnapNew, or dbsnapNew */ /* the buffer used to contain the self-describing monitor data is */ /* initialized (and later freed), the data structures used by the */ /* db2GetSnapshot API are populated, and the snapshot is captured. The */ /* snapshot monitor data buffer is then passed to the ParseMonitorStream */ /* function, which parses and prints the data. Once the ParseMonitorStream */ /* is finished running, the resources used by the snapshot monitor samples */ /* are freed with the FreeMemory function. */ /***************************************************************************/ int GetSnapshotNew(db2AddSnapshotRqstData *snapReq) { int rc = 0; /* return code */ struct sqlm_collected collected; /* returned sqlm_collected structure */ struct sqlca sqlca; char *buffer_ptr = NULL; /* buffer returned from db2GetSnapshot call */ sqluint32 buffer_sz; /* estimated buffer size */ sqluint32 outputFormat; db2GetSnapshotData getSnapshotParam; db2GetSnapshotSizeData getSnapshotSizeParam; memset(&collected, '\0', sizeof(struct sqlm_collected)); printf("\n%s",DASHES); printf("\nDetermining the size of the snapshot using db2GetSnapshotSize."); printf("\n%s\n",DASHES); /* call the db2GetSnapshotDataSize API to determine the size of the */ /* buffer required to store the snapshot monitor data */ /* first, set the values of the db2GetSnapshotDataSize structure */ getSnapshotSizeParam.piSqlmaData = snapReq->pioRequestData; getSnapshotSizeParam.poBufferSize = &buffer_sz; getSnapshotSizeParam.iVersion = SQLM_CURRENT_VERSION; getSnapshotSizeParam.iNodeNumber = SQLM_CURRENT_NODE; getSnapshotSizeParam.iSnapshotClass = SQLM_CLASS_DEFAULT; /* second, call the db2GetSnapshotDataSize API */ rc = db2GetSnapshotSize(db2Version970, &getSnapshotSizeParam, &sqlca); /* exit function if the db2GetSnapshotSize call returns a non-zero value */ if (rc != 0) { printf("\n%s",DASHES); printf("\nReturn code from db2GetSnapshotSize is %d. Exiting.", rc); printf("\n%s\n",DASHES); FreeMemory(snapReq->pioRequestData, NULL); snapReq->pioRequestData = NULL; return(rc); } /* examine the sqlcode and react accordingly: */ /* if 0, then continue */ /* if positive, then print sqlca info and continue */ /* if negative, then print sqlca info, clear memory and exit function */ if (sqlca.sqlcode != 0L) { SqlInfoPrint("db2GetSnapshotSize", &sqlca, __LINE__, __FILE__); if (sqlca.sqlcode < 0L) { printf("\n%s",DASHES); printf("\ndb2GetSnapshotSize SQLCODE is %d. Exiting.", sqlca.sqlcode); printf("\n%s\n",DASHES); FreeMemory(snapReq->pioRequestData, buffer_ptr); snapReq->pioRequestData = NULL; return((int)sqlca.sqlcode); } } /* exit function if the estimated buffer size is zero */ if (buffer_sz == 0) { printf("\n%s",DASHES); printf("\nEstimated buffer size is zero. Exiting."); printf("\n%s\n",DASHES); FreeMemory(snapReq->pioRequestData, buffer_ptr); snapReq->pioRequestData = NULL; return(99); } /* allocate memory to a buffer to hold snapshot monitor data. */ printf("\n%s",DASHES); printf("\nAllocating memory for snapshot monitor data."); printf("\n%s\n",DASHES); buffer_ptr = (char *) malloc(buffer_sz); if (buffer_ptr == NULL) { printf("\n%s",DASHES); printf("\nError allocating memory for buffer area. Exiting."); printf("\n%s\n",DASHES); FreeMemory( snapReq->pioRequestData, buffer_ptr); return(99); } /* clear the buffer */ memset(buffer_ptr, '\0', buffer_sz); /* call the db2GetSnapshot API to capture a snapshot and store the */ /* monitor data in the buffer pointed to by "buffer_ptr". */ /* first, set the values of the db2GetSnapshot structure */ getSnapshotParam.piSqlmaData = snapReq->pioRequestData; getSnapshotParam.poCollectedData = &collected; getSnapshotParam.iBufferSize = buffer_sz; getSnapshotParam.poBuffer = buffer_ptr; getSnapshotParam.iVersion = SQLM_CURRENT_VERSION; getSnapshotParam.iStoreResult = 0; getSnapshotParam.iNodeNumber = SQLM_CURRENT_NODE; getSnapshotParam.poOutputFormat = &outputFormat; getSnapshotParam.iSnapshotClass = SQLM_CLASS_DEFAULT; /* second, call the db2GetSnapshot API */ printf("\n%s",DASHES); printf("\nCapturing snapshot using db2GetSnapshot."); printf("\n%s\n",DASHES); rc = db2GetSnapshot(db2Version970, &getSnapshotParam, &sqlca); while (sqlca.sqlcode == 1606) { /* deallocate memory assigned to the buffer */ FreeMemory(NULL, buffer_ptr); printf("\n%s",DASHES); printf("\nBuffer size for snapshot data is too small."); printf("\nRe-allocating memory for snapshot monitor data."); printf("\n%s\n",DASHES); /* enlarge the buffer */ buffer_sz = buffer_sz + SNAPSHOT_BUFFER_UNIT_SZ; /* allocate memory to a buffer to hold snapshot monitor data. */ printf("\n%s",DASHES); printf("\nAllocating memory for snapshot monitor data."); printf("\n%s\n",DASHES); buffer_ptr = (char *) malloc(buffer_sz); if (buffer_ptr == NULL) { printf("\n%s",DASHES); printf("\nError allocating memory for buffer area. Exiting."); printf("\n%s\n",DASHES); FreeMemory(snapReq->pioRequestData, buffer_ptr); snapReq->pioRequestData = NULL; return(99); } /* clear the buffer */ memset(buffer_ptr, '\0', buffer_sz); getSnapshotParam.iBufferSize = buffer_sz; getSnapshotParam.poBuffer = buffer_ptr; /* get snapshot */ printf("\n%s",DASHES); printf("\nCapturing snapshot using db2GetSnapshot."); printf("\n%s\n",DASHES); rc = db2GetSnapshot(db2Version970, &getSnapshotParam, &sqlca); } /* exit function if the db2GetSnapshot call returns a non-zero value */ if (rc != 0) { printf("\n%s",DASHES); printf("\nReturn code from db2GetSnapshot is %d. Exiting.", rc); printf("\n%s\n",DASHES); FreeMemory(snapReq->pioRequestData, buffer_ptr); snapReq->pioRequestData = NULL; return rc; } /* examine the sqlcode and react accordingly: */ /* if 0, then continue */ /* if positive, then print the sqlca info and continue */ /* if negative, then print the sqlca info and exit function */ if (sqlca.sqlcode != 0L) { SqlInfoPrint("db2GetSnapshot", &sqlca, __LINE__, __FILE__); if (sqlca.sqlcode == 1611) { printf("For SQLCODE 1611, the system monitor will return the "); printf("contents of the\nSQLM_ELM_COLLECTED logical grouping, "); printf("including monitoring metadata\nand monitor switch settings."); } if (sqlca.sqlcode < 0L) { printf("\n%s",DASHES); printf("\ndb2GetSnapshot SQLCODE is %d. Exiting.", sqlca.sqlcode); printf("\n%s\n",DASHES); FreeMemory(snapReq->pioRequestData, buffer_ptr); snapReq->pioRequestData = NULL; return((int)sqlca.sqlcode); } } /* initialize the array of monitor element names */ InitElementNames(); /* parse and print the monitor data */ printf("\n%s",DASHES); printf("\nSnapshot monitor data:\n\n"); ParseMonitorStream(" ", buffer_ptr, NULL); printf("\n%s\n",DASHES); /* release memory before exiting */ FreeMemory(snapReq->pioRequestData, buffer_ptr); snapReq->pioRequestData = NULL; return rc; } /* GetSnapshot */ /***************************************************************************/ /* GetSnapshot */ /* This function is called from one of insnap, clisnap, or dbsnap. Here, */ /* the buffer used to contain the self-describing monitor data is */ /* initialized (and later freed), the data structures used by the */ /* db2GetSnapshot API are populated, and the snapshot is captured. The */ /* snapshot monitor data buffer is then passed to the ParseMonitorStream */ /* function, which parses and prints the data. Once the ParseMonitorStream */ /* is finished running, the resources used by the snapshot monitor samples */ /* are freed with the FreeMemory function. */ /***************************************************************************/ int GetSnapshot(struct sqlma *ma_ptr) { int rc = 0; /* return code */ struct sqlm_collected collected; /* returned sqlm_collected structure */ struct sqlca sqlca; char *buffer_ptr = NULL; /* buffer returned from db2GetSnapshot call */ sqluint32 buffer_sz; /* estimated buffer size */ sqluint32 outputFormat; db2GetSnapshotData getSnapshotParam; db2GetSnapshotSizeData getSnapshotSizeParam; memset(&collected, '\0', sizeof(struct sqlm_collected)); printf("\n%s",DASHES); printf("\nDetermining the size of the snapshot using db2GetSnapshotSize."); printf("\n%s\n",DASHES); /* call the db2GetSnapshotDataSize API to determine the size of the */ /* buffer required to store the snapshot monitor data */ /* first, set the values of the db2GetSnapshotDataSize structure */ getSnapshotSizeParam.piSqlmaData = ma_ptr; getSnapshotSizeParam.poBufferSize = &buffer_sz; getSnapshotSizeParam.iVersion = SQLM_CURRENT_VERSION; getSnapshotSizeParam.iNodeNumber = SQLM_CURRENT_NODE; getSnapshotSizeParam.iSnapshotClass = SQLM_CLASS_DEFAULT; /* second, call the db2GetSnapshotDataSize API */ rc = db2GetSnapshotSize(db2Version970, &getSnapshotSizeParam, &sqlca); /* exit function if the db2GetSnapshotSize call returns a non-zero value */ if (rc != 0) { printf("\n%s",DASHES); printf("\nReturn code from db2GetSnapshotSize is %d. Exiting.", rc); printf("\n%s\n",DASHES); FreeMemory(ma_ptr, buffer_ptr); return(rc); } /* examine the sqlcode and react accordingly: */ /* if 0, then continue */ /* if positive, then print sqlca info and continue */ /* if negative, then print sqlca info, clear memory and exit function */ if (sqlca.sqlcode != 0L) { SqlInfoPrint("db2GetSnapshotSize", &sqlca, __LINE__, __FILE__); if (sqlca.sqlcode < 0L) { printf("\n%s",DASHES); printf("\ndb2GetSnapshotSize SQLCODE is %d. Exiting.", sqlca.sqlcode); printf("\n%s\n",DASHES); FreeMemory(ma_ptr, buffer_ptr); return((int)sqlca.sqlcode); } } /* exit function if the estimated buffer size is zero */ if (buffer_sz == 0) { printf("\n%s",DASHES); printf("\nEstimated buffer size is zero. Exiting."); printf("\n%s\n",DASHES); FreeMemory(ma_ptr, buffer_ptr); return(99); } /* allocate memory to a buffer to hold snapshot monitor data. */ printf("\n%s",DASHES); printf("\nAllocating memory for snapshot monitor data."); printf("\n%s\n",DASHES); buffer_ptr = (char *) malloc(buffer_sz); if (buffer_ptr == NULL) { printf("\n%s",DASHES); printf("\nError allocating memory for buffer area. Exiting."); printf("\n%s\n",DASHES); FreeMemory(ma_ptr, buffer_ptr); return(99); } /* clear the buffer */ memset(buffer_ptr, '\0', buffer_sz); /* call the db2GetSnapshot API to capture a snapshot and store the */ /* monitor data in the buffer pointed to by "buffer_ptr". */ /* first, set the values of the db2GetSnapshot structure */ getSnapshotParam.piSqlmaData = ma_ptr; getSnapshotParam.poCollectedData = &collected; getSnapshotParam.iBufferSize = buffer_sz; getSnapshotParam.poBuffer = buffer_ptr; getSnapshotParam.iVersion = SQLM_CURRENT_VERSION; getSnapshotParam.iStoreResult = 0; getSnapshotParam.iNodeNumber = SQLM_CURRENT_NODE; getSnapshotParam.poOutputFormat = &outputFormat; getSnapshotParam.iSnapshotClass = SQLM_CLASS_DEFAULT; /* second, call the db2GetSnapshot API */ printf("\n%s",DASHES); printf("\nCapturing snapshot using db2GetSnapshot."); printf("\n%s\n",DASHES); rc = db2GetSnapshot(db2Version970, &getSnapshotParam, &sqlca); while (sqlca.sqlcode == 1606) { /* deallocate memory assigned to the buffer */ FreeMemory(NULL, buffer_ptr); printf("\n%s",DASHES); printf("\nBuffer size for snapshot data is too small."); printf("\nRe-allocating memory for snapshot monitor data."); printf("\n%s\n",DASHES); /* enlarge the buffer */ buffer_sz = buffer_sz + SNAPSHOT_BUFFER_UNIT_SZ; /* allocate memory to a buffer to hold snapshot monitor data. */ printf("\n%s",DASHES); printf("\nAllocating memory for snapshot monitor data."); printf("\n%s\n",DASHES); buffer_ptr = (char *) malloc(buffer_sz); if (buffer_ptr == NULL) { printf("\n%s",DASHES); printf("\nError allocating memory for buffer area. Exiting."); printf("\n%s\n",DASHES); FreeMemory(ma_ptr, buffer_ptr); return(99); } /* clear the buffer */ memset(buffer_ptr, '\0', buffer_sz); getSnapshotParam.iBufferSize = buffer_sz; getSnapshotParam.poBuffer = buffer_ptr; /* get snapshot */ printf("\n%s",DASHES); printf("\nCapturing snapshot using db2GetSnapshot."); printf("\n%s\n",DASHES); rc = db2GetSnapshot(db2Version970, &getSnapshotParam, &sqlca); } /* exit function if the db2GetSnapshot call returns a non-zero value */ if (rc != 0) { printf("\n%s",DASHES); printf("\nReturn code from db2GetSnapshot is %d. Exiting.", rc); printf("\n%s\n",DASHES); FreeMemory(ma_ptr, buffer_ptr); return rc; } /* examine the sqlcode and react accordingly: */ /* if 0, then continue */ /* if positive, then print the sqlca info and continue */ /* if negative, then print the sqlca info and exit function */ if (sqlca.sqlcode != 0L) { SqlInfoPrint("db2GetSnapshot", &sqlca, __LINE__, __FILE__); if (sqlca.sqlcode == 1611) { printf("For SQLCODE 1611, the system monitor will return the "); printf("contents of the\nSQLM_ELM_COLLECTED logical grouping, "); printf("including monitoring metadata\nand monitor switch settings."); } if (sqlca.sqlcode < 0L) { printf("\n%s",DASHES); printf("\ndb2GetSnapshot SQLCODE is %d. Exiting.", sqlca.sqlcode); printf("\n%s\n",DASHES); FreeMemory(ma_ptr, buffer_ptr); return((int)sqlca.sqlcode); } } /* initialize the array of monitor element names */ InitElementNames(); /* parse and print the monitor data */ printf("\n%s",DASHES); printf("\nSnapshot monitor data:\n\n"); ParseMonitorStream(" ", buffer_ptr, NULL); printf("\n%s\n",DASHES); /* release memory before exiting */ FreeMemory(ma_ptr, buffer_ptr); return rc; } /* GetSnapshot */ /***************************************************************************/ /* InitElementNames */ /* Initialize the array of element names based on the defines in sqlmon.h. */ /***************************************************************************/ int InitElementNames(void) { int rc = 0; int arraySize = NUMELEMENTS * sizeof(elementName[0]); char * pArray = (char *) &elementName[0]; /* zero the entire array to ensure unset values are null */ strncpy(pArray,"",arraySize); /* set the individual element names (they are defined in sqlmon.h) */ elementName[1] = "SQLM_ELM_DB2"; elementName[2] = "SQLM_ELM_FCM"; elementName[3] = "SQLM_ELM_FCM_NODE"; elementName[4] = "SQLM_ELM_APPL_INFO"; elementName[5] = "SQLM_ELM_APPL"; elementName[6] = "SQLM_ELM_DCS_APPL_INFO"; elementName[7] = "SQLM_ELM_DCS_APPL"; elementName[8] = "SQLM_ELM_DCS_STMT"; elementName[9] = "SQLM_ELM_SUBSECTION"; elementName[10] = "SQLM_ELM_AGENT"; elementName[11] = "SQLM_ELM_LOCK_WAIT"; elementName[12] = "SQLM_ELM_DCS_DBASE"; elementName[13] = "SQLM_ELM_DBASE"; elementName[14] = "SQLM_ELM_ROLLFORWARD"; elementName[15] = "SQLM_ELM_TABLE"; elementName[16] = "SQLM_ELM_LOCK"; elementName[17] = "SQLM_ELM_TABLESPACE"; elementName[18] = "SQLM_ELM_BUFFERPOOL"; elementName[19] = "SQLM_ELM_DYNSQL"; elementName[20] = "SQLM_ELM_COLLECTED"; elementName[21] = "SQLM_ELM_SWITCH_LIST"; elementName[22] = "SQLM_ELM_UOW_SW"; elementName[23] = "SQLM_ELM_STATEMENT_SW"; elementName[24] = "SQLM_ELM_TABLE_SW"; elementName[25] = "SQLM_ELM_BUFFPOOL_SW"; elementName[26] = "SQLM_ELM_LOCK_SW"; elementName[27] = "SQLM_ELM_SORT_SW"; elementName[28] = "SQLM_ELM_TABLE_LIST"; elementName[29] = "SQLM_ELM_TABLESPACE_LIST"; elementName[30] = "SQLM_ELM_DYNSQL_LIST"; elementName[31] = "SQLM_ELM_APPL_LOCK_LIST"; elementName[32] = "SQLM_ELM_DB_LOCK_LIST"; elementName[33] = "SQLM_ELM_STMT"; elementName[34] = "SQLM_ELM_DBASE_REMOTE"; elementName[35] = "SQLM_ELM_APPL_REMOTE"; elementName[36] = "SQLM_ELM_APPL_ID_INFO"; elementName[37] = "SQLM_ELM_STMT_TRANSMISSIONS"; elementName[38] = "SQLM_ELM_TIMESTAMP_SW"; elementName[39] = "SQLM_ELM_TABLE_REORG"; elementName[40] = "SQLM_ELM_MEMORY_POOL"; elementName[41] = "SQLM_ELM_TABLESPACE_QUIESCER"; elementName[42] = "SQLM_ELM_TABLESPACE_CONTAINER"; elementName[43] = "SQLM_ELM_TABLESPACE_RANGE"; elementName[44] = "SQLM_ELM_TABLESPACE_RANGE_CONTAINER"; elementName[45] = "SQLM_ELM_TABLESPACE_NODEINFO"; elementName[46] = "SQLM_ELM_HEALTH_INDICATOR"; elementName[47] = "SQLM_ELM_HEALTH_INDICATOR_HIST"; elementName[48] = "SQLM_ELM_BUFFERPOOL_NODEINFO"; elementName[49] = "SQLM_ELM_UTILITY"; elementName[50] = "SQLM_ELM_HI_OBJ_LIST"; elementName[51] = "SQLM_ELM_HI_OBJ_LIST_HIST"; elementName[52] = "SQLM_ELM_PROGRESS"; elementName[53] = "SQLM_ELM_PROGRESS_LIST"; elementName[54] = "SQLM_ELM_HADR"; elementName[55] = "SQLM_ELM_DETAIL_LOG"; elementName[56] = "SQLM_ELM_ROLLBACK_PROGRESS"; elementName[57] = "SQLM_ELM_DB_STORAGE_GROUP"; elementName[58] = "SQLM_ELM_DB_STO_PATH_INFO"; elementName[59] = "SQLM_ELM_MEMORY_POOL_LIST"; elementName[59] = "SQLM_MAX_LOGICAL_ELEMENT"; elementName[100] = "SQLM_ELM_EVENT_DB"; elementName[101] = "SQLM_ELM_EVENT_CONN"; elementName[102] = "SQLM_ELM_EVENT_TABLE"; elementName[103] = "SQLM_ELM_EVENT_STMT"; elementName[104] = "SQLM_ELM_EVENT_XACT"; elementName[105] = "SQLM_ELM_EVENT_DEADLOCK"; elementName[106] = "SQLM_ELM_EVENT_DLCONN"; elementName[107] = "SQLM_ELM_EVENT_TABLESPACE"; elementName[108] = "SQLM_ELM_EVENT_DBHEADER"; elementName[109] = "SQLM_ELM_EVENT_START"; elementName[110] = "SQLM_ELM_EVENT_CONNHEADER"; elementName[111] = "SQLM_ELM_EVENT_OVERFLOW"; elementName[112] = "SQLM_ELM_EVENT_BUFFERPOOL"; elementName[113] = "SQLM_ELM_EVENT_SUBSECTION"; elementName[114] = "SQLM_ELM_EVENT_LOG_HEADER"; elementName[115] = "SQLM_ELM_EVENT_CONTROL"; elementName[116] = "SQLM_ELM_EVENT_LOCK_LIST"; elementName[117] = "SQLM_ELM_EVENT_DETAILED_DLCONN"; elementName[118] = "SQLM_ELM_EVENT_CONNMEMUSE"; elementName[119] = "SQLM_ELM_EVENT_DBMEMUSE"; elementName[120] = "SQLM_ELM_EVENT_STMT_HISTORY"; elementName[121] = "SQLM_ELM_EVENT_DATA_VALUE"; elementName[122] = "SQLM_ELM_EVENT_ACTIVITY"; elementName[123] = "SQLM_ELM_EVENT_ACTIVITYSTMT"; elementName[124] = "SQLM_ELM_EVENT_ACTIVITYVALS"; elementName[125] = "SQLM_ELM_EVENT_SCSTATS"; elementName[126] = "SQLM_ELM_EVENT_WCSTATS"; elementName[127] = "SQLM_ELM_EVENT_WLSTATS"; elementName[128] = "SQLM_ELM_EVENT_QSTATS"; elementName[129] = "SQLM_ELM_EVENT_HISTOGRAMBIN"; elementName[130] = "SQLM_ELM_EVENT_THRESHOLD_VIOLATIONS"; elementName[200] = "SQLM_ELM_TIME_STAMP"; elementName[201] = "SQLM_ELM_STATUS_CHANGE_TIME"; elementName[202] = "SQLM_ELM_GW_CON_TIME"; elementName[203] = "SQLM_ELM_PREV_UOW_STOP_TIME"; elementName[204] = "SQLM_ELM_UOW_START_TIME"; elementName[205] = "SQLM_ELM_UOW_STOP_TIME"; elementName[206] = "SQLM_ELM_STMT_START"; elementName[207] = "SQLM_ELM_STMT_STOP"; elementName[208] = "SQLM_ELM_LAST_RESET"; elementName[209] = "SQLM_ELM_DB2START_TIME"; elementName[210] = "SQLM_ELM_DB_CONN_TIME"; elementName[211] = "SQLM_ELM_LAST_BACKUP"; elementName[212] = "SQLM_ELM_LOCK_WAIT_START_TIME"; elementName[213] = "SQLM_ELM_APPL_CON_TIME"; elementName[214] = "SQLM_ELM_CONN_COMPLETE_TIME"; elementName[215] = "SQLM_ELM_DISCONN_TIME"; elementName[216] = "SQLM_ELM_EVENT_TIME"; elementName[217] = "SQLM_ELM_START_TIME"; elementName[218] = "SQLM_ELM_STOP_TIME"; elementName[219] = "SQLM_ELM_RF_TIMESTAMP"; elementName[220] = "SQLM_ELM_CONN_TIME"; elementName[221] = "SQLM_ELM_FIRST_OVERFLOW_TIME"; elementName[222] = "SQLM_ELM_LAST_OVERFLOW_TIME"; elementName[223] = "SQLM_ELM_GW_EXEC_TIME"; elementName[224] = "SQLM_ELM_AGENT_USR_CPU_TIME"; elementName[225] = "SQLM_ELM_AGENT_SYS_CPU_TIME"; elementName[226] = "SQLM_ELM_SS_USR_CPU_TIME"; elementName[227] = "SQLM_ELM_SS_SYS_CPU_TIME"; elementName[228] = "SQLM_ELM_USER_CPU_TIME"; elementName[229] = "SQLM_ELM_TOTAL_EXEC_TIME"; elementName[230] = "SQLM_ELM_SWITCH_SET_TIME"; elementName[231] = "SQLM_ELM_ELAPSED_EXEC_TIME"; elementName[232] = "SQLM_ELM_SELECT_TIME"; elementName[233] = "SQLM_ELM_INSERT_TIME"; elementName[234] = "SQLM_ELM_UPDATE_TIME"; elementName[235] = "SQLM_ELM_DELETE_TIME"; elementName[236] = "SQLM_ELM_CREATE_NICKNAME_TIME"; elementName[237] = "SQLM_ELM_PASSTHRU_TIME"; elementName[238] = "SQLM_ELM_STORED_PROC_TIME"; elementName[239] = "SQLM_ELM_REMOTE_LOCK_TIME"; elementName[240] = "SQLM_ELM_NETWORK_TIME_TOP"; elementName[241] = "SQLM_ELM_NETWORK_TIME_BOTTOM"; elementName[242] = "SQLM_ELM_TABLESPACE_REBALANCER_START_TIME"; elementName[243] = "SQLM_ELM_TABLESPACE_REBALANCER_RESTART_TIME"; elementName[244] = "SQLM_ELM_TABLESPACE_MIN_RECOVERY_TIME"; elementName[245] = "SQLM_ELM_HI_TIMESTAMP"; elementName[245] = "SQLM_MAX_TIME_STAMP"; elementName[300] = "SQLM_ELM_SECONDS"; elementName[301] = "SQLM_ELM_MICROSEC"; elementName[302] = "SQLM_ELM_AGENT_ID"; elementName[303] = "SQLM_ELM_SERVER_DB2_TYPE"; elementName[304] = "SQLM_ELM_SERVER_PRDID"; elementName[305] = "SQLM_ELM_SERVER_NNAME"; elementName[306] = "SQLM_ELM_SERVER_INSTANCE_NAME"; elementName[307] = "SQLM_ELM_NODE_NUMBER"; elementName[308] = "SQLM_ELM_TIME_ZONE_DISP"; elementName[309] = "SQLM_ELM_SERVER_VERSION"; elementName[310] = "SQLM_ELM_APPL_STATUS"; elementName[311] = "SQLM_ELM_CODEPAGE_ID"; elementName[312] = "SQLM_ELM_STMT_TEXT"; elementName[313] = "SQLM_ELM_APPL_NAME"; elementName[314] = "SQLM_ELM_APPL_ID"; elementName[315] = "SQLM_ELM_SEQUENCE_NO"; elementName[316] = "SQLM_ELM_AUTH_ID"; elementName[316] = "SQLM_ELM_PRIMARY_AUTH_ID"; elementName[317] = "SQLM_ELM_CLIENT_NNAME"; elementName[318] = "SQLM_ELM_CLIENT_PRDID"; elementName[319] = "SQLM_ELM_INPUT_DB_ALIAS"; elementName[320] = "SQLM_ELM_CLIENT_DB_ALIAS"; elementName[321] = "SQLM_ELM_DB_NAME"; elementName[322] = "SQLM_ELM_DB_PATH"; elementName[323] = "SQLM_ELM_NUM_ASSOC_AGENTS"; elementName[324] = "SQLM_ELM_COORD_NODE_NUM"; elementName[325] = "SQLM_ELM_AUTHORITY_LVL"; elementName[326] = "SQLM_ELM_EXECUTION_ID"; elementName[327] = "SQLM_ELM_CORR_TOKEN"; elementName[328] = "SQLM_ELM_CLIENT_PID"; elementName[329] = "SQLM_ELM_CLIENT_PLATFORM"; elementName[330] = "SQLM_ELM_CLIENT_PROTOCOL"; elementName[331] = "SQLM_ELM_COUNTRY_CODE"; elementName[331] = "SQLM_ELM_TERRITORY_CODE"; elementName[332] = "SQLM_ELM_COORD_AGENT_PID"; elementName[333] = "SQLM_ELM_GW_DB_ALIAS"; elementName[334] = "SQLM_ELM_OUTBOUND_COMM_ADDRESS"; elementName[335] = "SQLM_ELM_INBOUND_COMM_ADDRESS"; elementName[336] = "SQLM_ELM_OUTBOUND_COMM_PROTOCOL"; elementName[337] = "SQLM_ELM_DCS_DB_NAME"; elementName[338] = "SQLM_ELM_HOST_DB_NAME"; elementName[339] = "SQLM_ELM_HOST_PRDID"; elementName[340] = "SQLM_ELM_OUTBOUND_APPL_ID"; elementName[341] = "SQLM_ELM_OUTBOUND_SEQUENCE_NO"; elementName[342] = "SQLM_ELM_DCS_APPL_STATUS"; elementName[343] = "SQLM_ELM_HOST_CCSID"; elementName[344] = "SQLM_ELM_OUTPUT_STATE"; elementName[345] = "SQLM_ELM_COUNT"; elementName[346] = "SQLM_ELM_ROWS_SELECTED"; elementName[347] = "SQLM_ELM_SQL_STMTS"; elementName[348] = "SQLM_ELM_FAILED_SQL_STMTS"; elementName[349] = "SQLM_ELM_COMMIT_SQL_STMTS"; elementName[350] = "SQLM_ELM_ROLLBACK_SQL_STMTS"; elementName[351] = "SQLM_ELM_INBOUND_BYTES_RECEIVED"; elementName[352] = "SQLM_ELM_OUTBOUND_BYTES_SENT"; elementName[353] = "SQLM_ELM_OUTBOUND_BYTES_RECEIVED"; elementName[354] = "SQLM_ELM_INBOUND_BYTES_SENT"; elementName[355] = "SQLM_ELM_STMT_OPERATION"; elementName[356] = "SQLM_ELM_SECTION_NUMBER"; elementName[357] = "SQLM_ELM_LOCK_NODE"; elementName[358] = "SQLM_ELM_CREATOR"; elementName[359] = "SQLM_ELM_PACKAGE_NAME"; elementName[360] = "SQLM_ELM_APPL_IDLE_TIME"; elementName[361] = "SQLM_ELM_OPEN_CURSORS"; elementName[362] = "SQLM_ELM_UOW_COMP_STATUS"; elementName[363] = "SQLM_ELM_SEQUENCE_NO_HOLDING_LK"; elementName[364] = "SQLM_ELM_ROLLED_BACK_AGENT_ID"; elementName[365] = "SQLM_ELM_ROLLED_BACK_APPL_ID"; elementName[366] = "SQLM_ELM_ROLLED_BACK_SEQUENCE_NO"; elementName[367] = "SQLM_ELM_XID"; elementName[368] = "SQLM_ELM_TPMON_CLIENT_USERID"; elementName[369] = "SQLM_ELM_TPMON_CLIENT_WKSTN"; elementName[370] = "SQLM_ELM_TPMON_CLIENT_APP"; elementName[371] = "SQLM_ELM_TPMON_ACC_STR"; elementName[372] = "SQLM_ELM_QUERY_COST_ESTIMATE"; elementName[373] = "SQLM_ELM_QUERY_CARD_ESTIMATE"; elementName[374] = "SQLM_ELM_FETCH_COUNT"; /* ROWS_RETURNED is an alias of FETCH_COUNT */ /* elementName[374] = "SQLM_ELM_ROWS_RETURNED" */ elementName[375] = "SQLM_ELM_GW_TOTAL_CONS"; elementName[376] = "SQLM_ELM_GW_CUR_CONS"; elementName[377] = "SQLM_ELM_GW_CONS_WAIT_HOST"; elementName[378] = "SQLM_ELM_GW_CONS_WAIT_CLIENT"; elementName[379] = "SQLM_ELM_GW_CONNECTIONS_TOP"; elementName[380] = "SQLM_ELM_SORT_HEAP_ALLOCATED"; elementName[381] = "SQLM_ELM_POST_THRESHOLD_SORTS"; elementName[382] = "SQLM_ELM_PIPED_SORTS_REQUESTED"; elementName[383] = "SQLM_ELM_PIPED_SORTS_ACCEPTED"; elementName[384] = "SQLM_ELM_DL_CONNS"; elementName[385] = "SQLM_ELM_REM_CONS_IN"; elementName[386] = "SQLM_ELM_REM_CONS_IN_EXEC"; elementName[387] = "SQLM_ELM_LOCAL_CONS"; elementName[388] = "SQLM_ELM_LOCAL_CONS_IN_EXEC"; elementName[389] = "SQLM_ELM_CON_LOCAL_DBASES"; elementName[390] = "SQLM_ELM_AGENTS_REGISTERED"; elementName[391] = "SQLM_ELM_AGENTS_WAITING_ON_TOKEN"; elementName[392] = "SQLM_ELM_DB2_STATUS"; elementName[393] = "SQLM_ELM_AGENTS_REGISTERED_TOP"; elementName[394] = "SQLM_ELM_AGENTS_WAITING_TOP"; elementName[395] = "SQLM_ELM_COMM_PRIVATE_MEM"; elementName[396] = "SQLM_ELM_IDLE_AGENTS"; elementName[397] = "SQLM_ELM_AGENTS_FROM_POOL"; elementName[398] = "SQLM_ELM_AGENTS_CREATED_EMPTY_POOL"; elementName[399] = "SQLM_ELM_AGENTS_TOP"; elementName[400] = "SQLM_ELM_COORD_AGENTS_TOP"; elementName[401] = "SQLM_ELM_MAX_AGENT_OVERFLOWS"; elementName[402] = "SQLM_ELM_AGENTS_STOLEN"; elementName[403] = "SQLM_ELM_PRODUCT_NAME"; elementName[404] = "SQLM_ELM_COMPONENT_ID"; elementName[405] = "SQLM_ELM_SERVICE_LEVEL"; elementName[406] = "SQLM_ELM_POST_THRESHOLD_HASH_JOINS"; elementName[407] = "SQLM_ELM_BUFF_FREE"; elementName[408] = "SQLM_ELM_BUFF_FREE_BOTTOM"; elementName[409] = "SQLM_ELM_MA_FREE"; elementName[410] = "SQLM_ELM_MA_FREE_BOTTOM"; elementName[411] = "SQLM_ELM_CE_FREE"; elementName[412] = "SQLM_ELM_CE_FREE_BOTTOM"; elementName[413] = "SQLM_ELM_RB_FREE"; elementName[414] = "SQLM_ELM_RB_FREE_BOTTOM"; elementName[416] = "SQLM_ELM_CONNECTION_STATUS"; elementName[417] = "SQLM_ELM_TOTAL_BUFFERS_SENT"; elementName[418] = "SQLM_ELM_TOTAL_BUFFERS_RCVD"; elementName[419] = "SQLM_ELM_LOCKS_HELD"; elementName[420] = "SQLM_ELM_LOCK_WAITS"; elementName[421] = "SQLM_ELM_LOCK_WAIT_TIME"; elementName[422] = "SQLM_ELM_LOCK_LIST_IN_USE"; elementName[423] = "SQLM_ELM_DEADLOCKS"; elementName[424] = "SQLM_ELM_LOCK_ESCALS"; elementName[425] = "SQLM_ELM_X_LOCK_ESCALS"; elementName[426] = "SQLM_ELM_LOCKS_WAITING"; elementName[427] = "SQLM_ELM_TOTAL_SORTS"; elementName[428] = "SQLM_ELM_TOTAL_SORT_TIME"; elementName[429] = "SQLM_ELM_SORT_OVERFLOWS"; elementName[430] = "SQLM_ELM_ACTIVE_SORTS"; elementName[431] = "SQLM_ELM_POOL_DATA_L_READS"; elementName[432] = "SQLM_ELM_POOL_DATA_P_READS"; elementName[433] = "SQLM_ELM_POOL_DATA_WRITES"; elementName[434] = "SQLM_ELM_POOL_INDEX_L_READS"; elementName[435] = "SQLM_ELM_POOL_INDEX_P_READS"; elementName[436] = "SQLM_ELM_POOL_INDEX_WRITES"; elementName[437] = "SQLM_ELM_POOL_READ_TIME"; elementName[438] = "SQLM_ELM_POOL_WRITE_TIME"; elementName[439] = "SQLM_ELM_FILES_CLOSED"; elementName[440] = "SQLM_ELM_DYNAMIC_SQL_STMTS"; elementName[441] = "SQLM_ELM_STATIC_SQL_STMTS"; elementName[442] = "SQLM_ELM_SELECT_SQL_STMTS"; elementName[443] = "SQLM_ELM_DDL_SQL_STMTS"; elementName[444] = "SQLM_ELM_UID_SQL_STMTS"; elementName[445] = "SQLM_ELM_INT_AUTO_REBINDS"; elementName[446] = "SQLM_ELM_INT_ROWS_DELETED"; elementName[447] = "SQLM_ELM_INT_ROWS_UPDATED"; elementName[448] = "SQLM_ELM_INT_COMMITS"; elementName[449] = "SQLM_ELM_INT_ROLLBACKS"; elementName[450] = "SQLM_ELM_INT_DEADLOCK_ROLLBACKS"; elementName[451] = "SQLM_ELM_ROWS_DELETED"; elementName[452] = "SQLM_ELM_ROWS_INSERTED"; elementName[453] = "SQLM_ELM_ROWS_UPDATED"; elementName[454] = "SQLM_ELM_BINDS_PRECOMPILES"; elementName[455] = "SQLM_ELM_LOCKS_HELD_TOP"; elementName[456] = "SQLM_ELM_NUM_NODES_IN_DB2_INSTANCE"; elementName[457] = "SQLM_ELM_TOTAL_CONS"; elementName[458] = "SQLM_ELM_APPLS_CUR_CONS"; elementName[459] = "SQLM_ELM_APPLS_IN_DB2"; elementName[460] = "SQLM_ELM_SEC_LOG_USED_TOP"; elementName[461] = "SQLM_ELM_TOT_LOG_USED_TOP"; elementName[462] = "SQLM_ELM_SEC_LOGS_ALLOCATED"; elementName[463] = "SQLM_ELM_POOL_ASYNC_INDEX_READS"; elementName[464] = "SQLM_ELM_POOL_DATA_TO_ESTORE"; elementName[465] = "SQLM_ELM_POOL_INDEX_TO_ESTORE"; elementName[466] = "SQLM_ELM_POOL_INDEX_FROM_ESTORE"; elementName[467] = "SQLM_ELM_POOL_DATA_FROM_ESTORE"; elementName[468] = "SQLM_ELM_DB_STATUS"; elementName[469] = "SQLM_ELM_LOCK_TIMEOUTS"; elementName[470] = "SQLM_ELM_CONNECTIONS_TOP"; elementName[471] = "SQLM_ELM_DB_HEAP_TOP"; elementName[472] = "SQLM_ELM_POOL_ASYNC_DATA_READS"; elementName[473] = "SQLM_ELM_POOL_ASYNC_DATA_WRITES"; elementName[474] = "SQLM_ELM_POOL_ASYNC_INDEX_WRITES"; elementName[475] = "SQLM_ELM_POOL_ASYNC_READ_TIME"; elementName[476] = "SQLM_ELM_POOL_ASYNC_WRITE_TIME"; elementName[477] = "SQLM_ELM_POOL_ASYNC_DATA_READ_REQS"; elementName[478] = "SQLM_ELM_POOL_LSN_GAP_CLNS"; elementName[479] = "SQLM_ELM_POOL_DRTY_PG_STEAL_CLNS"; elementName[480] = "SQLM_ELM_POOL_DRTY_PG_THRSH_CLNS"; elementName[481] = "SQLM_ELM_DIRECT_READS"; elementName[482] = "SQLM_ELM_DIRECT_WRITES"; elementName[483] = "SQLM_ELM_DIRECT_READ_REQS"; elementName[484] = "SQLM_ELM_DIRECT_WRITE_REQS"; elementName[485] = "SQLM_ELM_DIRECT_READ_TIME"; elementName[486] = "SQLM_ELM_DIRECT_WRITE_TIME"; elementName[487] = "SQLM_ELM_INT_ROWS_INSERTED"; elementName[488] = "SQLM_ELM_LOG_READS"; elementName[489] = "SQLM_ELM_LOG_WRITES"; elementName[490] = "SQLM_ELM_PKG_CACHE_LOOKUPS"; elementName[491] = "SQLM_ELM_PKG_CACHE_INSERTS"; elementName[492] = "SQLM_ELM_CAT_CACHE_LOOKUPS"; elementName[493] = "SQLM_ELM_CAT_CACHE_INSERTS"; elementName[494] = "SQLM_ELM_CAT_CACHE_OVERFLOWS"; elementName[495] = "SQLM_ELM_CAT_CACHE_HEAP_FULL"; elementName[496] = "SQLM_ELM_CATALOG_NODE"; elementName[497] = "SQLM_ELM_TOTAL_SEC_CONS"; elementName[498] = "SQLM_ELM_DB_LOCATION"; elementName[499] = "SQLM_ELM_SERVER_PLATFORM"; elementName[500] = "SQLM_ELM_CATALOG_NODE_NAME"; elementName[501] = "SQLM_ELM_PREFETCH_WAIT_TIME"; elementName[502] = "SQLM_ELM_APPL_SECTION_LOOKUPS"; elementName[503] = "SQLM_ELM_APPL_SECTION_INSERTS"; elementName[504] = "SQLM_ELM_TOTAL_HASH_JOINS"; elementName[505] = "SQLM_ELM_TOTAL_HASH_LOOPS"; elementName[506] = "SQLM_ELM_HASH_JOIN_OVERFLOWS"; elementName[507] = "SQLM_ELM_HASH_JOIN_SMALL_OVERFLOWS"; elementName[508] = "SQLM_ELM_UOW_LOCK_WAIT_TIME"; elementName[509] = "SQLM_ELM_STMT_TYPE"; elementName[510] = "SQLM_ELM_CURSOR_NAME"; elementName[511] = "SQLM_ELM_UOW_LOG_SPACE_USED"; elementName[512] = "SQLM_ELM_OPEN_REM_CURS"; elementName[513] = "SQLM_ELM_OPEN_REM_CURS_BLK"; elementName[514] = "SQLM_ELM_REJ_CURS_BLK"; elementName[515] = "SQLM_ELM_ACC_CURS_BLK"; elementName[516] = "SQLM_ELM_VERSION"; elementName[517] = "SQLM_ELM_EVENT_MONITOR_NAME"; elementName[518] = "SQLM_ELM_SQL_REQS_SINCE_COMMIT"; elementName[520] = "SQLM_ELM_BYTE_ORDER"; elementName[521] = "SQLM_ELM_PREP_TIME_WORST"; elementName[522] = "SQLM_ELM_ROWS_READ"; /* ROWS_FETCHED is an alias of ROWS_READ */ /* elementName[522] = "SQLM_ELM_ROWS_FETCHED" */ elementName[523] = "SQLM_ELM_ROWS_WRITTEN"; elementName[523] = "SQLM_ELM_ROWS_MODIFIED"; elementName[524] = "SQLM_ELM_OPEN_LOC_CURS"; elementName[525] = "SQLM_ELM_OPEN_LOC_CURS_BLK"; elementName[526] = "SQLM_ELM_COORD_NODE"; elementName[526] = "SQLM_ELM_COORD_PARTITION_NUM"; elementName[527] = "SQLM_ELM_NUM_AGENTS"; elementName[528] = "SQLM_ELM_ASSOCIATED_AGENTS_TOP"; elementName[529] = "SQLM_ELM_APPL_PRIORITY"; elementName[530] = "SQLM_ELM_APPL_PRIORITY_TYPE"; elementName[531] = "SQLM_ELM_DEGREE_PARALLELISM"; elementName[532] = "SQLM_ELM_STMT_SORTS"; elementName[533] = "SQLM_ELM_STMT_USR_CPU_TIME"; elementName[534] = "SQLM_ELM_STMT_SYS_CPU_TIME"; elementName[535] = "SQLM_ELM_SS_NUMBER"; elementName[536] = "SQLM_ELM_SS_STATUS"; elementName[537] = "SQLM_ELM_SS_NODE_NUMBER"; elementName[538] = "SQLM_ELM_SS_EXEC_TIME"; elementName[539] = "SQLM_ELM_PREP_TIME_BEST"; elementName[540] = "SQLM_ELM_NUM_COMPILATIONS"; elementName[541] = "SQLM_ELM_TQ_NODE_WAITED_FOR"; elementName[542] = "SQLM_ELM_TQ_WAIT_FOR_ANY"; elementName[543] = "SQLM_ELM_TQ_ID_WAITING_ON"; elementName[544] = "SQLM_ELM_TQ_TOT_SEND_SPILLS"; elementName[545] = "SQLM_ELM_TQ_CUR_SEND_SPILLS"; elementName[546] = "SQLM_ELM_TQ_MAX_SEND_SPILLS"; elementName[547] = "SQLM_ELM_TQ_ROWS_READ"; elementName[548] = "SQLM_ELM_TQ_ROWS_WRITTEN"; elementName[549] = "SQLM_ELM_AGENT_PID"; elementName[550] = "SQLM_ELM_LOCK_ESCALATION"; elementName[551] = "SQLM_ELM_SUBSECTION_NUMBER"; elementName[552] = "SQLM_ELM_LOCK_MODE"; elementName[553] = "SQLM_ELM_LOCK_OBJECT_TYPE"; elementName[554] = "SQLM_ELM_NUM_EXECUTIONS"; elementName[555] = "SQLM_ELM_TABLE_NAME"; elementName[556] = "SQLM_ELM_TABLE_SCHEMA"; elementName[557] = "SQLM_ELM_TABLESPACE_NAME"; elementName[558] = "SQLM_ELM_AGENT_ID_HOLDING_LK"; elementName[559] = "SQLM_ELM_APPL_ID_HOLDING_LK"; elementName[561] = "SQLM_ELM_TABLE_FILE_ID"; elementName[562] = "SQLM_ELM_TABLE_TYPE"; elementName[563] = "SQLM_ELM_OVERFLOW_ACCESSES"; elementName[564] = "SQLM_ELM_PAGE_REORGS"; elementName[565] = "SQLM_ELM_SQLCABC"; elementName[566] = "SQLM_ELM_LOCK_STATUS"; elementName[567] = "SQLM_ELM_LOCK_OBJECT_NAME"; elementName[568] = "SQLM_ELM_RF_TYPE"; elementName[569] = "SQLM_ELM_RF_LOG_NUM"; elementName[570] = "SQLM_ELM_RF_STATUS"; elementName[571] = "SQLM_ELM_TS_NAME"; elementName[572] = "SQLM_ELM_BP_NAME"; elementName[573] = "SQLM_ELM_STMT_NODE_NUMBER"; elementName[574] = "SQLM_ELM_PARTIAL_RECORD"; elementName[575] = "SQLM_ELM_SYSTEM_CPU_TIME"; elementName[576] = "SQLM_ELM_SQLCA"; elementName[577] = "SQLM_ELM_SQLCODE"; elementName[578] = "SQLM_ELM_SQLERRML"; elementName[579] = "SQLM_ELM_SQLERRMC"; elementName[580] = "SQLM_ELM_SQLERRP"; elementName[581] = "SQLM_ELM_SQLERRD"; elementName[582] = "SQLM_ELM_SQLWARN"; elementName[583] = "SQLM_ELM_SQLSTATE"; elementName[584] = "SQLM_ELM_UOW_STATUS"; elementName[585] = "SQLM_ELM_TOTAL_SYS_CPU_TIME"; elementName[586] = "SQLM_ELM_TOTAL_USR_CPU_TIME"; elementName[587] = "SQLM_ELM_LOCK_MODE_REQUESTED"; elementName[588] = "SQLM_ELM_INACTIVE_GW_AGENTS"; elementName[589] = "SQLM_ELM_NUM_GW_CONN_SWITCHES"; elementName[590] = "SQLM_ELM_GW_COMM_ERRORS"; elementName[591] = "SQLM_ELM_GW_COMM_ERROR_TIME"; elementName[592] = "SQLM_ELM_GW_CON_START_TIME"; elementName[593] = "SQLM_ELM_CON_RESPONSE_TIME"; elementName[594] = "SQLM_ELM_CON_ELAPSED_TIME"; elementName[595] = "SQLM_ELM_HOST_RESPONSE_TIME"; elementName[596] = "SQLM_ELM_PKG_CACHE_NUM_OVERFLOWS"; elementName[597] = "SQLM_ELM_PKG_CACHE_SIZE_TOP"; elementName[598] = "SQLM_ELM_APPL_ID_OLDEST_XACT"; elementName[599] = "SQLM_ELM_TOTAL_LOG_USED"; elementName[600] = "SQLM_ELM_TOTAL_LOG_AVAILABLE"; elementName[601] = "SQLM_ELM_STMT_ELAPSED_TIME"; elementName[602] = "SQLM_ELM_UOW_ELAPSED_TIME"; elementName[603] = "SQLM_ELM_SQLCAID"; elementName[604] = "SQLM_ELM_SMALLEST_LOG_AVAIL_NODE"; elementName[605] = "SQLM_ELM_DISCONNECTS"; elementName[606] = "SQLM_ELM_CREATE_NICKNAME"; elementName[607] = "SQLM_ELM_PASSTHRUS"; elementName[608] = "SQLM_ELM_STORED_PROCS"; elementName[609] = "SQLM_ELM_SP_ROWS_SELECTED"; elementName[610] = "SQLM_ELM_DATASOURCE_NAME"; elementName[611] = "SQLM_ELM_REMOTE_LOCKS"; elementName[612] = "SQLM_ELM_BLOCKING_CURSOR"; elementName[613] = "SQLM_ELM_OUTBOUND_BLOCKING_CURSOR"; elementName[614] = "SQLM_ELM_INSERT_SQL_STMTS"; elementName[615] = "SQLM_ELM_UPDATE_SQL_STMTS"; elementName[616] = "SQLM_ELM_DELETE_SQL_STMTS"; elementName[617] = "SQLM_ELM_UNREAD_PREFETCH_PAGES"; elementName[618] = "SQLM_ELM_AGENT_STATUS"; elementName[619] = "SQLM_ELM_NUM_TRANSMISSIONS"; elementName[620] = "SQLM_ELM_OUTBOUND_BYTES_SENT_TOP"; elementName[621] = "SQLM_ELM_OUTBOUND_BYTES_RECEIVED_TOP"; elementName[622] = "SQLM_ELM_OUTBOUND_BYTES_SENT_BOTTOM"; elementName[623] = "SQLM_ELM_OUTBOUND_BYTES_RECEIVED_BOTTOM"; elementName[624] = "SQLM_ELM_MAX_DATA_SENT_128"; elementName[625] = "SQLM_ELM_MAX_DATA_SENT_256"; elementName[626] = "SQLM_ELM_MAX_DATA_SENT_512"; elementName[627] = "SQLM_ELM_MAX_DATA_SENT_1024"; elementName[628] = "SQLM_ELM_MAX_DATA_SENT_2048"; elementName[629] = "SQLM_ELM_MAX_DATA_SENT_4096"; elementName[630] = "SQLM_ELM_MAX_DATA_SENT_8192"; elementName[631] = "SQLM_ELM_MAX_DATA_SENT_16384"; elementName[632] = "SQLM_ELM_MAX_DATA_SENT_31999"; elementName[633] = "SQLM_ELM_MAX_DATA_SENT_64000"; elementName[634] = "SQLM_ELM_MAX_DATA_SENT_GT64000"; elementName[635] = "SQLM_ELM_MAX_DATA_RECEIVED_128"; elementName[636] = "SQLM_ELM_MAX_DATA_RECEIVED_256"; elementName[637] = "SQLM_ELM_MAX_DATA_RECEIVED_512"; elementName[638] = "SQLM_ELM_MAX_DATA_RECEIVED_1024"; elementName[639] = "SQLM_ELM_MAX_DATA_RECEIVED_2048"; elementName[640] = "SQLM_ELM_MAX_DATA_RECEIVED_4096"; elementName[641] = "SQLM_ELM_MAX_DATA_RECEIVED_8192"; elementName[642] = "SQLM_ELM_MAX_DATA_RECEIVED_16384"; elementName[643] = "SQLM_ELM_MAX_DATA_RECEIVED_31999"; elementName[644] = "SQLM_ELM_MAX_DATA_RECEIVED_64000"; elementName[645] = "SQLM_ELM_MAX_DATA_RECEIVED_GT64000"; elementName[646] = "SQLM_ELM_MAX_TIME_2_MS"; elementName[647] = "SQLM_ELM_MAX_TIME_4_MS"; elementName[648] = "SQLM_ELM_MAX_TIME_8_MS"; elementName[649] = "SQLM_ELM_MAX_TIME_16_MS"; elementName[650] = "SQLM_ELM_MAX_TIME_32_MS"; elementName[651] = "SQLM_ELM_MAX_TIME_GT32_MS"; elementName[652] = "SQLM_ELM_DEADLOCK_ID"; elementName[653] = "SQLM_ELM_DEADLOCK_NODE"; elementName[654] = "SQLM_ELM_PARTICIPANT_NO"; elementName[655] = "SQLM_ELM_PARTICIPANT_NO_HOLDING_LK"; elementName[656] = "SQLM_ELM_ROLLED_BACK_PARTICIPANT_NO"; elementName[657] = "SQLM_ELM_SQLERRD1"; elementName[658] = "SQLM_ELM_SQLERRD2"; elementName[659] = "SQLM_ELM_SQLERRD3"; elementName[660] = "SQLM_ELM_SQLERRD4"; elementName[661] = "SQLM_ELM_SQLERRD5"; elementName[662] = "SQLM_ELM_SQLERRD6"; elementName[663] = "SQLM_ELM_EVMON_ACTIVATES"; elementName[664] = "SQLM_ELM_EVMON_FLUSHES"; elementName[665] = "SQLM_ELM_SQL_REQ_ID"; elementName[666] = "SQLM_ELM_MESSAGE"; elementName[667] = "SQLM_ELM_MESSAGE_TIME"; elementName[668] = "SQLM_ELM_VECTORED_IOS"; elementName[669] = "SQLM_ELM_PAGES_FROM_VECTORED_IOS"; elementName[670] = "SQLM_ELM_BLOCK_IOS"; elementName[671] = "SQLM_ELM_PAGES_FROM_BLOCK_IOS"; elementName[672] = "SQLM_ELM_PHYSICAL_PAGE_MAPS"; elementName[673] = "SQLM_ELM_LOCKS_IN_LIST"; elementName[674] = "SQLM_ELM_REORG_PHASE"; elementName[675] = "SQLM_ELM_REORG_MAX_PHASE"; elementName[676] = "SQLM_ELM_REORG_CURRENT_COUNTER"; elementName[677] = "SQLM_ELM_REORG_MAX_COUNTER"; elementName[678] = "SQLM_ELM_REORG_TYPE"; elementName[679] = "SQLM_ELM_REORG_STATUS"; elementName[680] = "SQLM_ELM_REORG_COMPLETION"; elementName[681] = "SQLM_ELM_REORG_START"; elementName[682] = "SQLM_ELM_REORG_END"; elementName[683] = "SQLM_ELM_REORG_PHASE_START"; elementName[684] = "SQLM_ELM_REORG_INDEX_ID"; elementName[685] = "SQLM_ELM_REORG_TBSPC_ID"; elementName[686] = "SQLM_ELM_POOL_ID"; elementName[687] = "SQLM_ELM_POOL_CUR_SIZE"; elementName[688] = "SQLM_ELM_POOL_CONFIG_SIZE"; elementName[688] = "SQLM_ELM_POOL_MAX_SIZE"; elementName[689] = "SQLM_ELM_POOL_WATERMARK"; elementName[690] = "SQLM_ELM_TABLESPACE_ID"; elementName[691] = "SQLM_ELM_TABLESPACE_TYPE"; elementName[692] = "SQLM_ELM_TABLESPACE_CONTENT_TYPE"; elementName[693] = "SQLM_ELM_TABLESPACE_STATE"; elementName[694] = "SQLM_ELM_TABLESPACE_PAGE_SIZE"; elementName[695] = "SQLM_ELM_TABLESPACE_EXTENT_SIZE"; elementName[696] = "SQLM_ELM_TABLESPACE_PREFETCH_SIZE"; elementName[697] = "SQLM_ELM_TABLESPACE_CUR_POOL_ID"; elementName[698] = "SQLM_ELM_TABLESPACE_NEXT_POOL_ID"; elementName[699] = "SQLM_ELM_TABLESPACE_TOTAL_PAGES"; elementName[700] = "SQLM_ELM_TABLESPACE_USABLE_PAGES"; elementName[701] = "SQLM_ELM_TABLESPACE_USED_PAGES"; elementName[702] = "SQLM_ELM_TABLESPACE_FREE_PAGES"; elementName[703] = "SQLM_ELM_TABLESPACE_PAGE_TOP"; elementName[704] = "SQLM_ELM_TABLESPACE_PENDING_FREE_PAGES"; elementName[705] = "SQLM_ELM_TABLESPACE_REBALANCER_MODE"; elementName[706] = "SQLM_ELM_TABLESPACE_REBALANCER_EXTENTS_REMAINING"; elementName[707] = "SQLM_ELM_TABLESPACE_REBALANCER_EXTENTS_PROCESSED"; elementName[708] = "SQLM_ELM_TABLESPACE_REBALANCER_LAST_EXTENT_MOVED"; elementName[709] = "SQLM_ELM_TABLESPACE_REBALANCER_PRIORITY"; elementName[710] = "SQLM_ELM_TABLESPACE_NUM_QUIESCERS"; elementName[711] = "SQLM_ELM_TABLESPACE_STATE_CHANGE_OBJECT_ID"; elementName[712] = "SQLM_ELM_TABLESPACE_STATE_CHANGE_TS_ID"; elementName[713] = "SQLM_ELM_TABLESPACE_NUM_CONTAINERS"; elementName[714] = "SQLM_ELM_TABLESPACE_NUM_RANGES"; elementName[715] = "SQLM_ELM_QUIESCER_STATE"; elementName[716] = "SQLM_ELM_QUIESCER_AGENT_ID"; elementName[717] = "SQLM_ELM_QUIESCER_TS_ID"; elementName[718] = "SQLM_ELM_QUIESCER_OBJ_ID"; elementName[719] = "SQLM_ELM_QUIESCER_AUTH_ID"; elementName[720] = "SQLM_ELM_CONTAINER_ID"; elementName[721] = "SQLM_ELM_CONTAINER_TYPE"; elementName[722] = "SQLM_ELM_CONTAINER_TOTAL_PAGES"; elementName[723] = "SQLM_ELM_CONTAINER_USABLE_PAGES"; elementName[724] = "SQLM_ELM_CONTAINER_STRIPE_SET"; elementName[725] = "SQLM_ELM_CONTAINER_ACCESSIBLE"; elementName[726] = "SQLM_ELM_CONTAINER_NAME"; elementName[727] = "SQLM_ELM_RANGE_STRIPE_SET_NUMBER"; elementName[728] = "SQLM_ELM_RANGE_NUMBER"; elementName[729] = "SQLM_ELM_RANGE_OFFSET"; elementName[730] = "SQLM_ELM_RANGE_MAX_PAGE_NUMBER"; elementName[731] = "SQLM_ELM_RANGE_MAX_EXTENT"; elementName[732] = "SQLM_ELM_RANGE_START_STRIPE"; elementName[733] = "SQLM_ELM_RANGE_END_STRIPE"; elementName[734] = "SQLM_ELM_RANGE_ADJUSTMENT"; elementName[735] = "SQLM_ELM_RANGE_NUM_CONTAINERS"; elementName[736] = "SQLM_ELM_RANGE_CONTAINER_ID"; elementName[737] = "SQLM_ELM_CONSISTENCY_TOKEN"; elementName[738] = "SQLM_ELM_PACKAGE_VERSION_ID"; elementName[739] = "SQLM_ELM_LOCK_NAME"; elementName[740] = "SQLM_ELM_LOCK_COUNT"; elementName[741] = "SQLM_ELM_LOCK_HOLD_COUNT"; elementName[742] = "SQLM_ELM_LOCK_ATTRIBUTES"; elementName[743] = "SQLM_ELM_LOCK_RELEASE_FLAGS"; elementName[744] = "SQLM_ELM_LOCK_CURRENT_MODE"; elementName[745] = "SQLM_ELM_TABLESPACE_FS_CACHING"; elementName[751] = "SQLM_ELM_BP_TBSP_USE_COUNT"; elementName[752] = "SQLM_ELM_BP_PAGES_LEFT_TO_REMOVE"; elementName[753] = "SQLM_ELM_BP_CUR_BUFFSZ"; elementName[754] = "SQLM_ELM_BP_NEW_BUFFSZ"; elementName[755] = "SQLM_ELM_SORT_HEAP_TOP"; elementName[756] = "SQLM_ELM_SORT_SHRHEAP_ALLOCATED"; elementName[757] = "SQLM_ELM_SORT_SHRHEAP_TOP"; elementName[758] = "SQLM_ELM_SHR_WORKSPACE_SIZE_TOP"; elementName[759] = "SQLM_ELM_SHR_WORKSPACE_NUM_OVERFLOWS"; elementName[760] = "SQLM_ELM_SHR_WORKSPACE_SECTION_LOOKUPS"; elementName[761] = "SQLM_ELM_SHR_WORKSPACE_SECTION_INSERTS"; elementName[762] = "SQLM_ELM_PRIV_WORKSPACE_SIZE_TOP"; elementName[763] = "SQLM_ELM_PRIV_WORKSPACE_NUM_OVERFLOWS"; elementName[764] = "SQLM_ELM_PRIV_WORKSPACE_SECTION_LOOKUPS"; elementName[765] = "SQLM_ELM_PRIV_WORKSPACE_SECTION_INSERTS"; elementName[766] = "SQLM_ELM_CAT_CACHE_SIZE_TOP"; elementName[767] = "SQLM_ELM_PARTITION_NUMBER"; elementName[768] = "SQLM_ELM_NUM_TRANSMISSIONS_GROUP"; elementName[769] = "SQLM_ELM_NUM_INDOUBT_TRANS"; elementName[770] = "SQLM_ELM_UTILITY_DBNAME"; elementName[771] = "SQLM_ELM_UTILITY_ID"; elementName[772] = "SQLM_ELM_UTILITY_TYPE"; elementName[773] = "SQLM_ELM_UTILITY_PRIORITY"; elementName[774] = "SQLM_ELM_UTILITY_START_TIME"; elementName[775] = "SQLM_ELM_UTILITY_DESCRIPTION"; elementName[776] = "SQLM_ELM_POOL_ASYNC_INDEX_READ_REQS"; elementName[777] = "SQLM_ELM_SESSION_AUTH_ID"; elementName[778] = "SQLM_ELM_SQL_CHAINS"; elementName[779] = "SQLM_ELM_POOL_TEMP_DATA_L_READS"; elementName[780] = "SQLM_ELM_POOL_TEMP_DATA_P_READS"; elementName[781] = "SQLM_ELM_POOL_TEMP_INDEX_L_READS"; elementName[782] = "SQLM_ELM_POOL_TEMP_INDEX_P_READS"; elementName[783] = "SQLM_ELM_MAX_TIME_1_MS"; elementName[784] = "SQLM_ELM_MAX_TIME_100_MS"; elementName[785] = "SQLM_ELM_MAX_TIME_500_MS"; elementName[786] = "SQLM_ELM_MAX_TIME_GT500_MS"; elementName[787] = "SQLM_ELM_LOG_TO_REDO_FOR_RECOVERY"; elementName[788] = "SQLM_ELM_POOL_NO_VICTIM_BUFFER"; elementName[789] = "SQLM_ELM_LOG_HELD_BY_DIRTY_PAGES"; elementName[790] = "SQLM_ELM_PROGRESS_DESCRIPTION"; elementName[791] = "SQLM_ELM_PROGRESS_START_TIME"; elementName[792] = "SQLM_ELM_PROGRESS_WORK_METRIC"; elementName[793] = "SQLM_ELM_PROGRESS_TOTAL_UNITS"; elementName[794] = "SQLM_ELM_PROGRESS_COMPLETED_UNITS"; elementName[795] = "SQLM_ELM_PROGRESS_SEQ_NUM"; elementName[796] = "SQLM_ELM_PROGRESS_LIST_CUR_SEQ_NUM"; elementName[797] = "SQLM_ELM_HADR_ROLE"; elementName[798] = "SQLM_ELM_HADR_STATE"; elementName[799] = "SQLM_ELM_HADR_SYNCMODE"; elementName[800] = "SQLM_ELM_HADR_CONNECT_STATUS"; elementName[801] = "SQLM_ELM_HADR_CONNECT_TIME"; elementName[802] = "SQLM_ELM_HADR_HEARTBEAT"; elementName[803] = "SQLM_ELM_HADR_LOCAL_HOST"; elementName[804] = "SQLM_ELM_HADR_LOCAL_SERVICE"; elementName[805] = "SQLM_ELM_HADR_REMOTE_HOST"; elementName[806] = "SQLM_ELM_HADR_REMOTE_SERVICE"; elementName[807] = "SQLM_ELM_HADR_TIMEOUT"; elementName[808] = "SQLM_ELM_HADR_PRIMARY_LOG_FILE"; elementName[809] = "SQLM_ELM_HADR_PRIMARY_LOG_PAGE"; elementName[810] = "SQLM_ELM_HADR_PRIMARY_LOG_LSN"; elementName[811] = "SQLM_ELM_HADR_STANDBY_LOG_FILE"; elementName[812] = "SQLM_ELM_HADR_STANDBY_LOG_PAGE"; elementName[813] = "SQLM_ELM_HADR_STANDBY_LOG_LSN"; elementName[814] = "SQLM_ELM_HADR_LOG_GAP"; elementName[815] = "SQLM_ELM_HADR_REMOTE_INSTANCE"; elementName[816] = "SQLM_ELM_DATA_OBJECT_PAGES"; elementName[817] = "SQLM_ELM_INDEX_OBJECT_PAGES"; elementName[818] = "SQLM_ELM_LOB_OBJECT_PAGES"; elementName[819] = "SQLM_ELM_LONG_OBJECT_PAGES"; elementName[820] = "SQLM_ELM_LOCK_TIMEOUT_VAL"; elementName[821] = "SQLM_ELM_LOG_WRITE_TIME"; elementName[822] = "SQLM_ELM_LOG_READ_TIME"; elementName[823] = "SQLM_ELM_NUM_LOG_WRITE_IO"; elementName[824] = "SQLM_ELM_NUM_LOG_READ_IO"; elementName[825] = "SQLM_ELM_NUM_LOG_PART_PAGE_IO"; elementName[826] = "SQLM_ELM_NUM_LOG_BUFF_FULL"; elementName[827] = "SQLM_ELM_NUM_LOG_DATA_IN_BUFF"; elementName[828] = "SQLM_ELM_LOG_FILE_NUM_FIRST"; elementName[829] = "SQLM_ELM_LOG_FILE_NUM_LAST"; elementName[830] = "SQLM_ELM_LOG_FILE_NUM_CURR"; elementName[831] = "SQLM_ELM_LOG_FILE_ARCHIVE"; elementName[832] = "SQLM_ELM_NANOSEC"; elementName[833] = "SQLM_ELM_STMT_HISTORY_ID"; elementName[834] = "SQLM_ELM_STMT_LOCK_TIMEOUT"; elementName[835] = "SQLM_ELM_STMT_ISOLATION"; elementName[836] = "SQLM_ELM_COMP_ENV_DESC"; elementName[837] = "SQLM_ELM_STMT_VALUE_TYPE"; elementName[838] = "SQLM_ELM_STMT_VALUE_ISREOPT"; elementName[839] = "SQLM_ELM_STMT_VALUE_ISNULL"; elementName[840] = "SQLM_ELM_STMT_VALUE_DATA"; elementName[841] = "SQLM_ELM_STMT_VALUE_INDEX"; elementName[842] = "SQLM_ELM_STMT_FIRST_USE_TIME"; elementName[843] = "SQLM_ELM_STMT_LAST_USE_TIME"; elementName[844] = "SQLM_ELM_STMT_NEST_LEVEL"; elementName[845] = "SQLM_ELM_STMT_INVOCATION_ID"; elementName[846] = "SQLM_ELM_STMT_QUERY_ID"; elementName[847] = "SQLM_ELM_STMT_SOURCE_ID"; elementName[848] = "SQLM_ELM_STMT_PKGCACHE_ID"; elementName[849] = "SQLM_ELM_INACT_STMTHIST_SZ"; elementName[850] = "SQLM_ELM_NUM_DB_STORAGE_PATHS"; elementName[851] = "SQLM_ELM_DB_STORAGE_PATH"; elementName[852] = "SQLM_ELM_TABLESPACE_INITIAL_SIZE"; elementName[853] = "SQLM_ELM_TABLESPACE_CURRENT_SIZE"; elementName[854] = "SQLM_ELM_TABLESPACE_MAX_SIZE"; elementName[855] = "SQLM_ELM_TABLESPACE_INCREASE_SIZE_PERCENT"; elementName[856] = "SQLM_ELM_TABLESPACE_INCREASE_SIZE"; elementName[857] = "SQLM_ELM_TABLESPACE_LAST_RESIZE_TIME"; elementName[858] = "SQLM_ELM_TABLESPACE_USING_AUTO_STORAGE"; elementName[859] = "SQLM_ELM_TABLESPACE_AUTO_RESIZE_ENABLED"; elementName[860] = "SQLM_ELM_TABLESPACE_LAST_RESIZE_FAILED"; elementName[861] = "SQLM_ELM_BP_ID"; elementName[862] = "SQLM_ELM_REORG_LONG_TBSPC_ID"; elementName[863] = "SQLM_ELM_DATA_PARTITION_ID"; elementName[864] = "SQLM_ELM_PROGRESS_LIST_ATTR"; elementName[865] = "SQLM_ELM_REORG_ROWSCOMPRESSED"; elementName[866] = "SQLM_ELM_REORG_ROWSREJECTED"; elementName[867] = "SQLM_ELM_CH_FREE"; elementName[868] = "SQLM_ELM_CH_FREE_BOTTOM"; elementName[869] = "SQLM_ELM_UTILITY_STATE"; elementName[870] = "SQLM_ELM_UTILITY_INVOKER_TYPE"; elementName[871] = "SQLM_ELM_POST_SHRTHRESHOLD_SORTS"; elementName[872] = "SQLM_ELM_POST_SHRTHRESHOLD_HASH_JOINS"; elementName[873] = "SQLM_ELM_ACTIVE_HASH_JOINS"; elementName[874] = "SQLM_ELM_POOL_SECONDARY_ID"; elementName[875] = "SQLM_ELM_FS_ID"; elementName[876] = "SQLM_ELM_FS_TOTAL_SZ"; elementName[877] = "SQLM_ELM_FS_USED_SZ"; elementName[878] = "SQLM_ELM_STO_PATH_FREE_SZ"; elementName[879] = "SQLM_ELM_POOL_XDA_L_READS"; elementName[880] = "SQLM_ELM_POOL_XDA_P_READS"; elementName[881] = "SQLM_ELM_POOL_XDA_WRITES"; elementName[882] = "SQLM_ELM_POOL_TEMP_XDA_L_READS"; elementName[883] = "SQLM_ELM_POOL_TEMP_XDA_P_READS"; elementName[884] = "SQLM_ELM_POOL_ASYNC_XDA_READS"; elementName[885] = "SQLM_ELM_POOL_ASYNC_XDA_WRITES"; elementName[886] = "SQLM_ELM_POOL_ASYNC_XDA_READ_REQS"; elementName[887] = "SQLM_ELM_XDA_OBJECT_PAGES"; elementName[888] = "SQLM_ELM_XQUERY_STMTS"; elementName[889] = "SQLM_ELM_TRUSTED_AUTH_ID"; elementName[890] = "SQLM_ELM_HADR_PEER_WINDOW_END"; elementName[891] = "SQLM_ELM_HADR_PEER_WINDOW"; elementName[892] = "SQLM_ELM_BLOCKS_PENDING_CLEANUP"; elementName[893] = "SQLM_ELM_AUTHORITY_BITMAP"; elementName[894] = "SQLM_ELM_TOTAL_OLAP_FUNCS"; elementName[895] = "SQLM_ELM_POST_THRESHOLD_OLAP_FUNCS"; elementName[896] = "SQLM_ELM_ACTIVE_OLAP_FUNCS"; elementName[897] = "SQLM_ELM_OLAP_FUNC_OVERFLOWS"; elementName[898] = "SQLM_ELM_SERVICE_CLASS_ID"; elementName[899] = "SQLM_ELM_SERVICE_SUPERCLASS_NAME"; elementName[900] = "SQLM_ELM_SERVICE_SUBCLASS_NAME"; elementName[901] = "SQLM_ELM_WORK_ACTION_SET_ID"; elementName[902] = "SQLM_ELM_WORK_ACTION_SET_NAME"; elementName[903] = "SQLM_ELM_DB_WORK_ACTION_SET_ID"; elementName[904] = "SQLM_ELM_SC_WORK_ACTION_SET_ID"; elementName[905] = "SQLM_ELM_WORK_CLASS_ID"; elementName[906] = "SQLM_ELM_WORK_CLASS_NAME"; elementName[907] = "SQLM_ELM_DB_WORK_CLASS_ID"; elementName[908] = "SQLM_ELM_SC_WORK_CLASS_ID"; elementName[909] = "SQLM_ELM_WORKLOAD_ID"; elementName[910] = "SQLM_ELM_WORKLOAD_OCCURRENCE_ID"; elementName[911] = "SQLM_ELM_WORKLOAD_NAME"; elementName[912] = "SQLM_ELM_TEMP_TABLESPACE_TOP"; elementName[913] = "SQLM_ELM_ROWS_RETURNED_TOP"; elementName[914] = "SQLM_ELM_CONCURRENT_ACT_TOP"; elementName[915] = "SQLM_ELM_CONCURRENT_CONNECTION_TOP"; elementName[916] = "SQLM_ELM_COST_ESTIMATE_TOP"; elementName[917] = "SQLM_ELM_STATISTICS_TIMESTAMP"; elementName[918] = "SQLM_ELM_ACT_TOTAL"; elementName[919] = "SQLM_ELM_WLO_COMPLETED_TOTAL"; elementName[920] = "SQLM_ELM_CONCURRENT_WLO_TOP"; elementName[921] = "SQLM_ELM_CONCURRENT_WLO_ACT_TOP"; elementName[922] = "SQLM_ELM_TOP"; elementName[923] = "SQLM_ELM_BOTTOM"; elementName[924] = "SQLM_ELM_HISTOGRAM_TYPE"; elementName[925] = "SQLM_ELM_BIN_ID"; elementName[926] = "SQLM_ELM_ACTIVITY_ID"; elementName[927] = "SQLM_ELM_ACTIVITY_SECONDARY_ID"; elementName[928] = "SQLM_ELM_UOW_ID"; elementName[929] = "SQLM_ELM_PARENT_ACTIVITY_ID"; elementName[930] = "SQLM_ELM_PARENT_UOW_ID"; elementName[931] = "SQLM_ELM_TIME_OF_VIOLATION"; elementName[932] = "SQLM_ELM_ACTIVITY_COLLECTED"; elementName[933] = "SQLM_ELM_ACTIVITY_TYPE"; elementName[934] = "SQLM_ELM_THRESHOLD_PREDICATE"; elementName[935] = "SQLM_ELM_THRESHOLD_ACTION"; elementName[936] = "SQLM_ELM_THRESHOLD_MAXVALUE"; elementName[937] = "SQLM_ELM_THRESHOLD_QUEUESIZE"; elementName[938] = "SQLM_ELM_COORD_ACT_COMPLETED_TOTAL"; elementName[939] = "SQLM_ELM_COORD_ACT_ABORTED_TOTAL"; elementName[940] = "SQLM_ELM_COORD_ACT_REJECTED_TOTAL"; elementName[941] = "SQLM_ELM_COORD_ACT_LIFETIME_TOP"; elementName[942] = "SQLM_ELM_ACT_EXEC_TIME"; elementName[943] = "SQLM_ELM_TIME_CREATED"; elementName[944] = "SQLM_ELM_TIME_STARTED"; elementName[945] = "SQLM_ELM_TIME_COMPLETED"; elementName[946] = "SQLM_ELM_SECTION_ENV"; elementName[947] = "SQLM_ELM_ACTIVATE_TIMESTAMP"; elementName[948] = "SQLM_ELM_NUM_THRESHOLD_VIOLATIONS"; elementName[949] = "SQLM_ELM_ARM_CORRELATOR"; elementName[950] = "SQLM_ELM_PREP_TIME"; elementName[951] = "SQLM_ELM_QUEUE_SIZE_TOP"; elementName[953] = "SQLM_ELM_QUEUE_ASSIGNMENTS_TOTAL"; elementName[954] = "SQLM_ELM_QUEUE_TIME_TOTAL"; elementName[955] = "SQLM_ELM_LAST_WLM_RESET"; elementName[956] = "SQLM_ELM_THRESHOLD_DOMAIN"; elementName[957] = "SQLM_ELM_THRESHOLD_NAME"; elementName[958] = "SQLM_ELM_THRESHOLDID"; elementName[959] = "SQLM_ELM_NUMBER_IN_BIN"; elementName[960] = "SQLM_ELM_COORD_ACT_LIFETIME_AVG"; elementName[961] = "SQLM_ELM_COORD_ACT_QUEUE_TIME_AVG"; elementName[962] = "SQLM_ELM_COORD_ACT_EXEC_TIME_AVG"; elementName[963] = "SQLM_ELM_COORD_ACT_EST_COST_AVG"; elementName[964] = "SQLM_ELM_COORD_ACT_INTERARRIVAL_TIME_AVG"; elementName[965] = "SQLM_ELM_REQUEST_EXEC_TIME_AVG"; elementName[966] = "SQLM_ELM_STATS_CACHE_SIZE"; elementName[967] = "SQLM_ELM_STATS_FABRICATIONS"; elementName[968] = "SQLM_ELM_STATS_FABRICATE_TIME"; elementName[969] = "SQLM_ELM_SYNC_RUNSTATS"; elementName[970] = "SQLM_ELM_SYNC_RUNSTATS_TIME"; elementName[971] = "SQLM_ELM_ASYNC_RUNSTATS"; elementName[972] = "SQLM_ELM_POOL_LIST_ID"; elementName[973] = "SQLM_ELM_IS_SYSTEM_APPL"; elementName[974] = "SQLM_ELM_INSERT_TIMESTAMP"; elementName[975] = "SQLM_ELM_DESTINATION_SERVICE_CLASS_ID"; elementName[976] = "SQLM_ELM_SOURCE_SERVICE_CLASS_ID"; elementName[977] = "SQLM_ELM_ACT_REMAPPED_IN"; elementName[978] = "SQLM_ELM_ACT_REMAPPED_OUT"; elementName[979] = "SQLM_ELM_AGG_TEMP_TABLESPACE_TOP"; elementName[980] = "SQLM_ELM_NUM_REMAPS"; elementName[981] = "SQLM_ELM_ACT_CPU_TIME_TOP"; elementName[982] = "SQLM_ELM_ACT_ROWS_READ_TOP"; return rc; } /* InitElementNames */ /***************************************************************************/ /* ParseMonitorStream */ /* Parse the monitor data stream and print its contents. The data stream */ /* is self-describing in that each unit of data (a logical data grouping */ /* or a monitor element) is introduced with a "sqlm_header_info" */ /* structure. This structure indicates the number of bytes taken up by the */ /* data, the type of the data, and the name of the applicable logical data */ /* group or monitor element. The monitor data stream starts with the */ /* "SQLM_ELM_COLLECTED" logical data grouping, which encompasses the */ /* entire data stream. */ /* The purpose of logical data groupings is to organize monitor data by */ /* category. As such they contain sets of related monitor elements, and at */ /* times, other logical data groupings. */ /* The monitor data stream is printed to standard out, such that the */ /* logical data groupings and their monitor elements are indented */ /* according to the degree to which they are nested in the data stream. */ /* */ /* Parameters: */ /* prefix: contains space characters. This string prefixes logical group */ /* names and monitor elements when they are printed, thus */ /* indicating the degree to which they are nested. */ /* pStart: the memory location indicating the start of the current */ /* logical grouping */ /* pEnd: the memory location indicating the end of the current logical */ /* grouping */ /***************************************************************************/ sqlm_header_info * ParseMonitorStream(char * prefix, char * pStart, char * pEnd) { sqlm_header_info * pHeader = (sqlm_header_info *)pStart; char * pData; char * pElementName; char elementNameBuffer[24]; /* "pEnd" is NULL only when called at the "SQLM_ELM_COLLECTED" level, so */ /* because this is the beginning of the monitor data stream, calculate */ /* the memory location where the monitor data stream buffer ends */ if (!pEnd) pEnd = pStart + /* start of monitor stream */ pHeader->size + /* add size in the "collected" header */ sizeof(sqlm_header_info); /* add size of header itself */ /* parse and print the data for the current logical grouping */ /* elements in the current logical grouping will be parsed until "pEnd" */ while ((char*)pHeader < pEnd) { /* point to the data which appears immediately after the header */ pData = (char*)pHeader + sizeof(sqlm_header_info); /* determine the actual element name */ if (pHeader->element >= NUMELEMENTS || (!(pElementName = elementName[pHeader->element]))) { /* if the element name is not defined, display the number */ sprintf(elementNameBuffer,"Element Number %d",pHeader->element); pElementName = elementNameBuffer; } /* determine if the current unit of data is a nested logical grouping */ if (pHeader->type == SQLM_TYPE_HEADER) { char newPrefix[80]; char *pNewEnd; printf("%s Logical Grouping %s (size %d)\n",prefix, pElementName, pHeader->size); /* indent the data for this logical group to indicate nesting */ strncpy(newPrefix, BLANKS, strlen(prefix)+2); newPrefix[strlen(prefix)+2] = '\0'; pNewEnd = pData + (pHeader->size); /* call ParseMonitorStream recursively to parse and print this */ /* nested logical grouping */ pHeader = ParseMonitorStream(newPrefix, pData, pNewEnd); } else { /* not a logical grouping, therefore print this monitor element */ printf("%s Data %s (size %d) ",prefix, pElementName, pHeader->size); if (pHeader->type == SQLM_TYPE_U32BIT) { /* print out the data (4 bytes long and unsigned) */ unsigned int i = *(unsigned int*)pData; printf("%d (0x%x)\n",i,i); } else if (pHeader->type == SQLM_TYPE_32BIT) { /* print out the data (4 bytes long and signed) */ signed int i = *(signed int*)pData; printf("%d\n",i); } else if (pHeader->type == SQLM_TYPE_STRING) { /* print out the char string data */ printf("\"%.*s\"\n",pHeader->size,pData); } else if (pHeader->type == SQLM_TYPE_U16BIT) { /* print out the data (4 bytes long and unsigned) */ unsigned int i = *(unsigned short*)pData; printf("%d (0x%x)\n",i,i); } else if (pHeader->type == SQLM_TYPE_16BIT) { /* print out the data (4 bytes long and signed) */ signed int i = *(signed short*)pData; printf("%d\n",i); } else { /* must be either 8 bits or 64 bits (and signed / unsigned) */ /* dump out the data in hex format */ int i, j; printf("0x"); for (i = 0; i<pHeader->size; i++) { j = (char)*(pData + i); printf("%.2x",j); } printf("\n"); } /* increment past the data to the next header */ pHeader = (sqlm_header_info *)(pData + pHeader->size); } } /* return the current memory location once the current logical grouping */ /* has been parsed */ return (pHeader); } /* ParseMonitorStream */ /***************************************************************************/ /* TurnOnAllMonitorSwitches */ /* Turn on all of the monitor switches. */ /***************************************************************************/ int TurnOnAllMonitorSwitches(void) { int rc = 0; struct sqlca sqlca; db2MonitorSwitchesData switchesData; struct sqlm_recording_group switchesList[SQLM_NUM_GROUPS]; sqluint32 outputFormat; printf("\n%s",DASHES); printf("\nTurning on all the monitor switches using db2MonitorSwitches."); printf("\n%s\n",DASHES); /* call the db2MonitorSwitches API to update the monitor switch settings */ /* first, set the values of the sqlm_recording_group structure */ switchesList[SQLM_UOW_SW].input_state = SQLM_ON; switchesList[SQLM_STATEMENT_SW].input_state = SQLM_ON; switchesList[SQLM_TABLE_SW].input_state = SQLM_ON; switchesList[SQLM_BUFFER_POOL_SW].input_state = SQLM_ON; switchesList[SQLM_LOCK_SW].input_state = SQLM_ON; switchesList[SQLM_SORT_SW].input_state = SQLM_ON; switchesList[SQLM_TIMESTAMP_SW].input_state = SQLM_ON; /* second, set the values of the db2MonitorSwitchesData structure */ switchesData.piGroupStates = switchesList; switchesData.poBuffer = NULL; switchesData.iVersion = SQLM_CURRENT_VERSION; switchesData.iBufferSize = 0; switchesData.iReturnData = 0; switchesData.iNodeNumber = SQLM_CURRENT_NODE; switchesData.poOutputFormat = &outputFormat; /* third, call the db2MonitorSwitches API */ db2MonitorSwitches(db2Version970, &switchesData, &sqlca); if (sqlca.sqlcode != 0L) { SqlInfoPrint("db2MonitorSwitches", &sqlca, __LINE__, __FILE__); if (sqlca.sqlcode < 0L) { printf("Negative sqlcode... exiting\n"); return((int)sqlca.sqlcode); } } return rc; } /* TurnOnAllMonitorSwitches */ /***************************************************************************/ /* UpdateUtilImpactLim */ /* Throttling is done to regulate the performance impact of online */ /* utilities on the production workload. */ /* Update UTIL_IMPACT_LIM DBM config parameter to set the percentage of */ /* throttling intended for the utilities of an instance */ /***************************************************************************/ int UpdateUtilImpactLim(void) { int rc = 0; struct sqlca sqlca; db2CfgParam cfgParameters[1]; db2Cfg cfgStruct; unsigned utillim = 0; printf("\n%s\n",DASHES); printf("Updating the throttling parameter UTIL_IMPACT_LIM\n"); printf("\nUSE THE DB2 API:\n"); printf(" db2CfgSet -- Set Configuration \n"); printf(" Set UTIL_IMPACT_LIM = 60\n"); printf("\nNOTE: The DBM Cfg parameter for throttling is modified for\n"); printf(" the current instance."); printf("\n%s\n",DASHES); /* call the db2CfgSet API to update UTIL_IMPACT_LIM cfg parameter */ cfgParameters[0].flags = 0; cfgParameters[0].token = SQLF_KTN_UTIL_IMPACT_LIM; cfgParameters[0].ptrvalue = (char *)&utillim; utillim = 60; cfgStruct.numItems = 1; cfgStruct.paramArray = cfgParameters; cfgStruct.flags = db2CfgDatabaseManager | db2CfgImmediate; cfgStruct.dbname = NULL; db2CfgSet(db2Version970, (void *)&cfgStruct, &sqlca); DB2_API_CHECK("UTIL_IMPACT_LIM -- Set"); return rc; } /* UpdateUtilImpactLim */