楼主: wangzhonnew

[精华] 案例:db2 connect to <dbname> 无法连接数据库

[复制链接]
论坛徽章:
69
林肯
日期:2013-11-27 16:16:31ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15本田
日期:2013-09-23 12:45:07宝马
日期:2013-11-29 16:29:42奥运会纪念徽章:足球
日期:2012-08-06 16:26:57蜘蛛蛋
日期:2012-03-02 12:32:08ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-06-18 12:44:352012新春纪念徽章
日期:2012-01-04 11:51:22
41#
发表于 2009-1-15 21:37 | 只看该作者
1 有fmt file,明天传上来

2  我的意思是这样:
  db2inst1   下 ,
   db2 catalog local node mynode1  instance db2inst2
   db2 catalog db mydb2  at node mynode1
  
  mydb2数据库实际上是在db2inst2实例下的

使用道具 举报

回复
论坛徽章:
69
林肯
日期:2013-11-27 16:16:31ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15本田
日期:2013-09-23 12:45:07宝马
日期:2013-11-29 16:29:42奥运会纪念徽章:足球
日期:2012-08-06 16:26:57蜘蛛蛋
日期:2012-03-02 12:32:08ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-06-18 12:44:352012新春纪念徽章
日期:2012-01-04 11:51:22
42#
发表于 2009-1-16 09:24 | 只看该作者
fmt file

db2trc.fmt.rar

1.08 MB, 下载次数: 38

使用道具 举报

回复
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
43#
 楼主| 发表于 2009-1-16 11:13 | 只看该作者
what's the current instance name?

front end process seems folk a process first:
414            0:4966650     | | clp_start_bp entry
415            0:4972368     | | | sqloexec entry
416            0:4972923     | | | sqloexec data [probe 10]
417            0:6281282     | | | sqloexec data [probe 30]
418            0:7171076     | | | sqloexec data [probe 50]
<------------- fork process here!
458            0:18169447    | | | sqloexec data [probe 30]
459            0:18186714    | | | | sqlowchd entry
460            0:18187467    | | | | sqlowchd data [probe 10]
461            0:18364117    | | | sqloexec data [probe 50]
462            0:23846995    | | | | sqlowchd data [probe 20]
463            0:23858090    | | | | sqlowchd data [probe 40]

416        data DB2 oper system services sqloexec cei (3.3.15.689.2.10)
        pid 1503476 tid 1 cpid -1 node -1 sec 0 nsec 4972923 probe 10
        bytes 43
        2F686F6D  652F6F63  726D7465  73742F64    /home/ocrmtest/d
        62326F63  726D2F73  716C6C69  622F6269    b2ocrm/sqllib/bi
        6E2F6462  32627000  000004                n/db2bp....


461        data DB2 oper system services sqloexec cei (3.3.15.689.2.50)
        pid 1503476 tid 1 cpid -1 node -1 sec 0 nsec 18364117 probe 50
        bytes 4
        0031E02E                                  .1..           <-------------- here is the process id:

so we got new process:

pid = 3268654 tid = 1 node = -1

419            0:7388841     sqloopenp entry
420            0:7390189     sqloopenp data [probe 10]
421            0:7390899     sqloopenp data [probe 20]
422            0:7414135     sqloopenp data [probe 70]
423            0:7414686     sqloopenp exit
424            0:7415188     sqloopenp entry
425            0:7415879     sqloopenp data [probe 10]
426            0:7416424     sqloopenp data [probe 20]
427            0:7425504     sqloopenp data [probe 70]
428            0:7425992     sqloopenp exit
429            0:7426403     sqloopenp entry
430            0:7427103     sqloopenp data [probe 10]
431            0:7427736     sqloopenp data [probe 20]
432            0:7437323     sqloopenp data [probe 70]
433            0:7438371     sqloopenp exit
434            0:7449132     sqlogmblk entry
435            0:7449963     sqlogmblk data [probe 1]
436            0:7450392     sqlogmblk data [probe 2]
437            0:7469166     | MemPrivatePool entry
438            0:7504602     | | sqlogmpol2 entry
439            0:7505655     | | sqlogmpol2 data [probe 1]
440            0:7506148     | | sqlogmpol2 data [probe 2]
441            0:7506631     | | sqlogmpol2 data [probe 3]
442            0:7507104     | | sqlogmpol2 data [probe 100]
443            0:7519169     | | sqlogmpol2 data [probe 110]
444            0:7598754     | | sqlogmpol2 data [probe 250]
445            0:7599662     | | sqlogmpol2 exit
446            0:7600048     | MemPrivatePool exit
447            0:7610510     | SMemPool::getNewChunkSubgroup entry
448            0:7611104     | SMemPool::getNewChunkSubgroup data [probe 10]
449            0:7612012     | SMemPool::getNewChunkSubgroup data [probe 100]
450            0:7656963     | SMemPool::getNewChunkSubgroup exit
451            0:7658320     sqlogmblk data [probe 250]
452            0:7658929     sqlogmblk exit
453            0:7659687     sqlogmblk entry
454            0:7660030     sqlogmblk data [probe 1]
455            0:7660402     sqlogmblk data [probe 2]
456            0:7661682     sqlogmblk data [probe 250]
457            0:7662068     sqlogmblk exit

It looks did nothing, just closed file descriptors and allocate some memory, but seems it reachs execv (as there's no sqlofmblk) but failed inside it (if execv being successfully called and executed we should see sqleInitApplicationEnvironment then (in FP6 we don't have trace point for clp_bp_main...)

so seems the db2bp process was execv() however quit unexpectedly....

Is it possible for you to take a AIX trace AND db2 trace? maybe it's interesting to find out what's going on with db2bp process...

(because db2bp process quit unexpectedly, it doesn't log anything since it even haven't reach main() function, and message queue was not created as well... in that case, db2fp is not able to know db2bp already dead, so it's keep waiting and waiting and waiting until timeout...)

[ 本帖最后由 wangzhonnew 于 2009-1-16 12:14 编辑 ]

使用道具 举报

回复
论坛徽章:
69
林肯
日期:2013-11-27 16:16:31ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15本田
日期:2013-09-23 12:45:07宝马
日期:2013-11-29 16:29:42奥运会纪念徽章:足球
日期:2012-08-06 16:26:57蜘蛛蛋
日期:2012-03-02 12:32:08ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-06-18 12:44:352012新春纪念徽章
日期:2012-01-04 11:51:22
44#
发表于 2009-1-16 14:58 | 只看该作者
当前实例是db2inst1


1        0031E02E                                  .1..           <-------------- here is the process id:

这个是怎么判断出来的?

2  It looks did nothing, just closed file descriptors and allocate some memory, but seems it reachs execv (as there's no sqlofmblk) but failed inside it (if execv being successfully called and executed we should see sqleInitApplicationEnvironment then (in FP6 we don't have trace point for clp_bp_main...)
这句不太明白,可否解释下   另sqlofmblk是什么


3 Is it possible for you to take a AIX trace AND db2 trace?
这样吗? trace -a -x "db2" -Pp -o trace.log ?  trace.log是binary file,怎么转换成asc file?

[ 本帖最后由 fjmingyang 于 2009-1-16 15:00 编辑 ]

使用道具 举报

回复
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
45#
 楼主| 发表于 2009-1-16 19:24 | 只看该作者
so what is
/home/ocrmtest/db2ocrm/sqllib/bin/db2bp ?
it sounds like the instance is "db2ocrm"??? or db2inst1's home directory is /home/ocrmtest/db2ocrm ?

1) know it if you do more and more cases... just like a feeling...
2) sqlofmblk is the function to free memory....
3)
trace -L 80000000 -ao aixtrace.raw
<turn on db2 trace + connect>
trcstop
trcrpt -O exec=on,pid=on aixtrace.raw aixtrace.fmt

let's hope trace buffer is big enough to hold the data we want

使用道具 举报

回复
论坛徽章:
69
林肯
日期:2013-11-27 16:16:31ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15本田
日期:2013-09-23 12:45:07宝马
日期:2013-11-29 16:29:42奥运会纪念徽章:足球
日期:2012-08-06 16:26:57蜘蛛蛋
日期:2012-03-02 12:32:08ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-06-18 12:44:352012新春纪念徽章
日期:2012-01-04 11:51:22
46#
发表于 2009-1-17 14:10 | 只看该作者
原帖由 wangzhonnew 于 2009-1-16 19:24 发表
so what is
/home/ocrmtest/db2ocrm/sqllib/bin/db2bp ?
it sounds like the instance is "db2ocrm"??? or db2inst1's home directory is /home/ocrmtest/db2ocrm ?

我前面是用db2inst1(32bit),db2inst2(64bit)举的例子
实际上 db2inst1=db2mdb   db2inst2=db2ocrm
问题发生所在的环境是用 32bit的db2mdb实例的db2 命令去连接 64bit的db2ocrm实例
开始我以为这个32bit 实例的文件有问题,但是在另一个用户下db2mdb的db2命令去连接db2ocrm是没问题的

1) know it if you do more and more cases... just like a feeling...
2) sqlofmblk is the function to free memory....
3)
trace -L 80000000 -ao aixtrace.raw

trcstop
trcrpt -O exec=on,pid=on aixtrace.raw aixtrace.fmt

let's hope trace buffer is big enough to hold the data we want



trace -L 80000000 -ao aixtrace.raw
db2trc on -t -f db2trc.dmp
db2
db2trc off
trcstop
trcrpt -O exec=on,pid=on > aixtrace.txt   (trcrpt -O exec=on,pid=on aixtrace.raw aixtrace.fmt 语法有错,我换成左边那条命令了)




aixtrace.txt

774.25 KB, 下载次数: 26

使用道具 举报

回复
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
47#
 楼主| 发表于 2009-1-17 16:01 | 只看该作者
what kind of trace did you do?
start time:  Thu Oct 25 16:20:33 2007
stop time: Thu Oct 25 16:20:39 2007

6 seconds interval??? i think at least your CONNECT will not timeout within 60 sec...
and there's no db2 processes being captured....

guess you may want to look at the file first to make sure it include valid data

maybe can try trace again, or get a truss...
bottom line is we need to find some way to find out why the db2bp process is terminated before getting into main() function

使用道具 举报

回复
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
48#
 楼主| 发表于 2009-1-17 16:19 | 只看该作者
and please give more info about
/home/ocrmtest/db2ocrm/sqllib/bin/db2bp
it sounds like the instance is "db2ocrm"??? or db2inst1's home directory is /home/ocrmtest/db2ocrm ?

使用道具 举报

回复
论坛徽章:
69
林肯
日期:2013-11-27 16:16:31ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15本田
日期:2013-09-23 12:45:07宝马
日期:2013-11-29 16:29:42奥运会纪念徽章:足球
日期:2012-08-06 16:26:57蜘蛛蛋
日期:2012-03-02 12:32:08ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-06-18 12:44:352012新春纪念徽章
日期:2012-01-04 11:51:22
49#
发表于 2009-1-17 19:14 | 只看该作者
原帖由 wangzhonnew 于 2009-1-17 16:19 发表
and please give more info about
/home/ocrmtest/db2ocrm/sqllib/bin/db2bp
it sounds like the instance is "db2ocrm"??? or db2inst1's home directory is /home/ocrmtest/db2ocrm ?


我前面是用db2inst1(32bit),db2inst2(64bit)举的例子
实际上 db2inst1=db2mdb   db2inst2=db2ocrm

问题发生所在的环境是用 32bit的db2mdb实例的db2 命令去连接 64bit的db2ocrm实例
开始我以为这个32bit 实例的文件有问题,但是在另一个用户下db2mdb的db2命令去连接db2ocrm是没问题的

使用道具 举报

回复
论坛徽章:
69
林肯
日期:2013-11-27 16:16:31ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15本田
日期:2013-09-23 12:45:07宝马
日期:2013-11-29 16:29:42奥运会纪念徽章:足球
日期:2012-08-06 16:26:57蜘蛛蛋
日期:2012-03-02 12:32:08ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-06-18 12:44:352012新春纪念徽章
日期:2012-01-04 11:51:22
50#
发表于 2009-1-17 19:18 | 只看该作者
原帖由 wangzhonnew 于 2009-1-17 16:01 发表
what kind of trace did you do?
start time:  Thu Oct 25 16:20:33 2007
stop time: Thu Oct 25 16:20:39 2007

6 seconds interval??? i think at least your CONNECT will not timeout within 60 sec...
and there's no db2 processes being captured....

guess you may want to look at the file first to make sure it include valid data

maybe can try trace again, or get a truss...
bottom line is we need to find some way to find out why the db2bp process is terminated before getting into main() function



trace -L 80000000 -ao aixtrace.raw
db2trc on -t -f db2trc.dmp
db2
db2trc off
trcstop
trcrpt -O exec=on,pid=on > aixtrace.txt   (trcrpt -O exec=on,pid=on aixtrace.raw aixtrace.fmt 语法有错,我换成左边那条命令了)


上面这些命令我都是放在一个脚本里执行的

是不是问题出在 trcrpt -O exec=on,pid=on > aixtrace.txt  ,
生成的aixtrace.raw有80M ,不知道如何用trcrpt format下, 另是不是因为-L 80000000 不够大?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表