Problem(Abstract)
FORCE APPLICATION will not force sub-agents that are handling external routine requests even though tried to force them using FORCE APPLICATION command.
FORCE APPLICATION command will return successful but applications which are hang will still remain in the system.
Symptom
procstack output may show something like below:
0x0900000000251e80 semop(??, ??, ??) + 0xc0
0x090000001535c9d4 semop@glue11(??, ??, ??) + 0x78
0x090000001535c85c sqloSSemP__fdpr_3(??, ??, ??, ??) + 0x24
0x09000000152981b0 sqlccipcrecv(SQLCC_COMHANDLE_T*,SQLCC_COND_T*)(??, ??) + 0xd8
0x0900000014f579e0 sqlccrecv__fdpr_1(0x700000040000370,
0x780000007078780, 0xf0000000f000, 0x1, 0x9000000188bcc38,
0x8d0000000000008d, 0x0, 0x0) + 0x370
0x0900000015a931b4sqljsDrdaAsNonCoordSPDrive(db2UCconHandle*,sqlerFmpCommInfo*)(??,
??) + 0x1b0
Cause
Some sub-agents still remain in database. These can't be forced. This is a current designed behavior of DB2 V9.5 and DB2 V9.7.
Note : DB2 V10.1 has design enhancements which will allow to force such sub-agents using the command.
Resolving the problem
Either of the following can be used to force the hanging application.
1) Recycle the instance. i.e Issue db2stop and db2start. Incase, recycling the instance is not possible then,
2) Terminate the active FMP processes which will wake up sub-agents.
For Example : Issue db2pd -fmp to find the active FMP processes. You can see output as shown below:
db2pd -fmp shows:
- Database Partition 203 -- Active -- Up 3 days 23:55:01 -- Date 2012-09-27-11.34.33.831054
FMP:
Pool Size: 0
Max Pool Size: 200
Keep FMP: YES
Initialized: YES
Trusted Path: /db2home/db2inst1/sqllib/function/unfenced
Fenced User: bifenc
Shared Memory: 0x0780000000290420
IPC Pool: 0x0780000000290480
FMP Process:
- Address FmpPid Bit Flags ActiveThrd PooledThrd ForcedThrd Active IPCList
- Active Threads:
- Address FmpPid EduPid ThreadId
0x0780000006FD0A80 38732016 20027 1286
Pooled Threads:
- Address FmpPid ThreadId
Forced Threads:
Address FmpPid ThreadId
No forced threads.
The active FMP threads should each have an associated edu. In the above example they are 13369 and 20027. Make sure these two edu's are indeed hanging. If yes, then FMP id to be terminated would be 38732016
Once you find the FMP id to be terminated, issue "db2fmpterm <fmp_id>" command to terminate the active FMP.
For Example : db2fmpterm 38732016
This way you can avoid recycling your instance to kill such hang applications
'Db2 > Db2 troubleshooting' 카테고리의 다른 글
DB생성시 SQL1005N 오류 (0) | 2013.03.14 |
---|---|
Why does DB2 FORCE APPLICATION not work sometimes? (0) | 2013.02.01 |
db2icrt fails with DBI1959N after computer name change on windows server (0) | 2013.01.03 |
Load 수행시 주의사항 (SQL0290N) (0) | 2012.12.28 |
DPF 환경에서 시스템 시간을 과거로 변경했을 때의 오류 (SQL0903N) (0) | 2012.12.03 |