互联网服务数据库

DB2通过agentid找出进程ID并kill?

环境AIX5.3    64位  DB29.1.0.1

据IBM原厂给出9.1有个BUG,产生内部锁造成事务不释放,致使数据库连接不上。

这是抓出的内部锁信息:

5DC3.tmp.jpg


  当出现此情况时,已经是接收到告警短信。此时数据库连接是等待的甚至是无法连接,但是系统资源使用很少,数据库连接数也很少。只有db2pd命令可以使用(此命令很强大)。怎么通过agentdi找出此事务对应的进程ID呢?当出现此情况时,以便手动Kill进程避免其他事务等待造成数据库无法连接。

参与11

2同行回答

dbalisimmydbalisimmy项目经理大话西游
那就db2pd -d db-name -agents AppHandl 就是已知的agentClientNm 就是对应的进程名字 ps -ef 找出进程号,kill----或者db2top  看session信息显示全部

那就db2pd -d db-name -agents

AppHandl 就是已知的agent

ClientNm 就是对应的进程名字

ps -ef 找出进程号,kill


----或者db2top  看session信息

收起
软件开发 · 2016-01-08
浏览1777
  • clienNum对应的是进程名字,这个进程名字包含了很多事务,如果将此进程kill掉,那岂不是其余事务也被force了。
    2016-01-08
  • 确实存在一个进程名字对应多个进程号的情况。 以上回复中的ps -ef 替换为: db2 get snapshot for application agentid 其中输出中有 Process ID of client application ,现在kill 具体的进程名对应的进程号
    2016-01-08
DB-TrendSetterDB-TrendSetter联盟成员数据库架构师公司
直接Kill agentid对应的应用就okay 显示全部

直接Kill agentid对应的应用就okay

收起
电信运营商 · 2016-01-08
浏览1562

提问者

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2016-01-08
  • 关注会员:4 人
  • 问题浏览:3141
  • 最近回答:2016-01-08
  • X社区推广