db2产生好多db2bp的进程!

herobox 2011-11-14 06:34:51
大家好,小弟想请教个db2bp的问题。
最近使用db2的时候发现了个问题,db2是suse 虚拟机中已经安装好的,我建了个用户,然后在.profile中加入了db2profile,现在发现每执行一次db2语句,就简单的打个db2,然后quit,ps -ef都会增加一个db2bp的进程,很奇怪。
从网上查了一下,有人说没有显式退出,但是我执行db2 connect reset了啊,况且我就单纯的执行一下db2,再退出,更本没有连接数据库,一样会有db2bp留下。奇怪了!但是我注意到一点,留下的db2bp进程的父进程是1,好像是init进程吧?这些进程在我退出终端之前,终端号是属于当前终端的,在退出当前终端,重新登录后,终端号变成?了,不会是守护进程吧?
而且我注意到db2fmcd进程是属于root用户的,大家看看是怎么回事啊?谢谢了!

如下:
ps后:
PID TTY TIME CMD
14814 pts/0 00:00:00 bash
15306 pts/0 00:00:00 db2bp
15311 pts/0 00:00:00 ps

ps -ef|grep db2后:
root 3362 1 0 17:18 ? 00:00:00 /opt/IBM/db2/V8.1/bin/db2fmcd
gsgl 14290 1 0 18:32 ? 00:00:00 /app/gsgl/sqllib/bin/db2bp 6994A1002 5 A
gsgl 15306 1 0 18:41 pts/0 00:00:00 /app/gsgl/sqllib/bin/db2bp 14814A1002 5 A
gsgl 15369 14814 0 18:42 pts/0 00:00:00 grep db2

...全文
2157 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaojianmi1 2012-04-25
  • 打赏
  • 举报
回复
好像是db2的bug
happynwt 2012-04-23
  • 打赏
  • 举报
回复 1
问题可有解决?

db2bp是实际连接db2的持久进程,应该是以会话为单位,同一会话的连接一个db2bp,如果会话中断或退出而没有执行terminate,则相当于本连接未正常结束,变为孤儿进程,其父进程ID变为1,由系统回收其资源。

一点拙见,仅供参考。
zhaojianmi1 2011-11-15
  • 打赏
  • 举报
回复
呵呵,要是会早就有人回答了吧,这个是真没遇到过
herobox 2011-11-15
  • 打赏
  • 举报
回复
终于有回帖的了,我记得以前你也回复过我的问题,谢谢!

现在我总结的问题如下:

db2bp在我终端logout后不会自行终止,仍会保留进程,也就是变成了守护进程;
但是当我再次执行db2命令时,db2不会使用已有的连接,而是新建立一个连接(db2bp)。

没人回复啊,不得以又开了个帖子:http://topic.csdn.net/u/20111115/13/9f671b8c-26b6-4630-a407-67ee5be6de1f.html?81845

帮帮忙吧!
zhaojianmi1 2011-11-15
  • 打赏
  • 举报
回复
没遇到过啊
herobox 2011-11-14
  • 打赏
  • 举报
回复
现在进一步发现问题,是这样,好像每次执行db2,都会重开一个db2bp的进程,而正常的,在已有db2bp进程的情况下,不会新开db2bp进程,奇怪了,没人要help me么?X﹏X
herobox 2011-11-14
  • 打赏
  • 举报
回复
刚才又查了一下,发现网上有这么一段:
db2bp is backend process. When you try to connect to database in CLP, the binary executable command you are going to use (i.e. "db2 connect to <dbname>", or "db2 select * from t1") is called "db2". But the problem is, how does engine knows those multiple "db2" commands are for the same connection or not?
The answer is db2bp process. DB2 starts a process called "db2bp", which is actually connecting to db2 engine. All "db2" front end processes are talking with db2bp. db2bp process will not be killed until you do "db2 terminate".

So basically for this issue, it seems there's a remote connection from CLP locked those rows.
i don't know why C anchid and stmt id are 0, maybe you can try application snapshot and see what it's doing then...

我执行了db2 terminate后,db2bp确实没有了,可是不明白,以前系统里也没有使用"db2 terminate"啊,查询就connect,然后select,最后connect reset就完了,哪位老师能给讲一下,谢谢了!

5,891

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧