DB2 - Problem description
Problem IT00923 | Status: Closed |
PD_GET_DIAG_HIST or db2diag may hang and consume 100% CPU if parsing db2diag.log record containing event string field | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
Execution of PD_GET_DIAG_HIST or db2diag may hang when db2diag.log containing a record with event string field. Such as following record with STOP event, which contains multiple lines and EVENT key word: 2014-03-03-11.00.21.759236+060 E147178466E643 LEVEL: Event PID : 8604 TID : 140272021272320PROC : db2acd INSTANCE: db2dec NODE : 000 FUNCTION: DB2 UDB, Administrative Task Scheduler, AtsTask::run, probe:2100 STOP : End execution - Task ID: 14 Status: COMPLETE Task Name : SAPTOOLS.DBH_LCKEVENTS_COLLECT Database : DEC Invocation : 2712 Begin Time : 2014-03-03 10:00:00.000000000 (UTC) SQLCODE : 0 SQLSTATE : RC : 0 Next Execution : 2014-03-03 11:00:00.000000000 (UTC) External monitoring tools like top will show a db2fmp process which consumes 100% of a CPU. With db2pd you will get the ID of the routine being executed by the db2fmp process: # db2pd -fmpexechistory FMP Process: FmpPid Bit Flags ActiveThrd PooledThrd ForcedThrd Active 14695 64 0x00000002 1 2 0 Yes Active Threads: EduPid : 17 ThreadId : 1431500544 Routine ID Timestamp 66049 2014-04-08-12.18.10.743262 Using the routine ID from db2pd you will get the name of the routine by querying the system catalog: db2 "select varchar(ROUTINESCHEMA,10) ROUTINESCHEMA, varchar(ROUTINENAME,25) ROUTINENAME, ROUTINEID from syscat.routines where ROUTINEID=66049" ROUTINESCHEMA ROUTINENAME ROUTINEID ------------- ------------------------- ----------- SYSPROC PD_GET_DIAG_HIST 66049 | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 version 9.7 FixPack 10. * **************************************************************** | |
Local Fix: | |
1. To stop the executing db2fmp process run 'db2fmpterm <db2fmp_PID>' 2. Remove the record from the db2diag.log file or start a new db2diag.log ('db2diag -A') file and remove the old file. | |
Solution | |
First fixed in DB2 version 9.7 FixPack 10. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 09.04.2014 24.11.2014 24.11.2014 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP10 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.10 |