- 论坛徽章:
- 0
|
AIX 5.3+INFORMIX 9环境下一个嵌C程序运行数月偶尔发生永久阻塞,被迫杀掉重启,
用dbx -a 跟踪阻塞的进程,发现是程序执行begin work阻塞,奇怪的是一直跑得好好的,
为什么会信号量死锁了呢?是不是跟数据库配置有关系啊?是资源没释放吗,重启就恢复正常。
请高手帮忙分析一下,谢谢。
dbx -a 跟踪结果如下:
(dbx) t
semop(??, ??, ??) at 0x9000000001e06bc
buf_wait() at 0x1000bf93c
recvshm() at 0x1000c07ac
tlRecv() at 0x1000ba330
slSQIrecv() at 0x1000dd5e4
pfRecv() at 0x1000d1938
asfRecv() at 0x1000b7174
ASF_Call() at 0x1000b6c00
asf_recv() at 0x1000b466c
_iread() at 0x1000b5ce0
_igetint() at 0x1000b5a5c
_sqg_txstate() at 0x100108324
process_msgs() at 0x100108a54
_sqr_messages() at 0x100108cf0
sqli_trans_begin2() at 0x100126ba4
Get_Seqno(0x1100046c8, 0x0) at 0x1000063bc
GetRptMaxKey() at 0x100006240
Insert_Report(s_cp = (...)), line 105 in "api.ec"
main(argc = 1, argv = 0x0fffffffffffefe , line 236 in "Subde.ec"
(dbx) q |
|