Question & Answer
Question
資料収集ガイドに従って db2pd -stack コマンドを実行しました。必要な情報を取得できているか、確認する方法はありますか。
Answer
<資料収集ガイド>
[DB2 LUW] db2pd -stack によるスタック・トレース生成手順 (Linux/UNIX 版)
※ db2pd -stack コマンドを実行する際の注意点についても、上記文書に記載されています。
以下の手順でご確認ください。
1. DIAGPATH 配下にトラップ・ファイル (命名規則: <PID>.<EDUID>.<NODE#>.stack.txt のテキスト・ファイル) が出力されていることを確認してください。
- db2pd -stack all を実行した場合
- db2pd -stack <EDUID> を実行した場合
例)
1) インスタンス配下のプロセスの PID および EDU ID の確認。
$ db2pd -edus
List of all EDUs for database member 0
Database Member 0 -- Active -- Up 0 days 00:01:26 -- Date 2017-08-03-15.15.36.954118
List of all EDUs for database member 0
db2sysc PID: 1258
db2wdog PID: 1256
db2acd PID: 1276
EDU ID TID Kernel TID EDU Name USR (s) SYS (s)
========================================================================================================================================
21 140143138694912 1274 db2spmlw 0 0.000000 0.000000
20 140143142889216 1273 db2spmrsy 0 0.010000 0.000000
19 140143147083520 1272 db2resync 0 0.020000 0.000000
18 140143151277824 1271 db2tcpcm 0 0.000000 0.000000
17 140143155472128 1270 db2tcpcm 0 0.000000 0.000000
16 140143159666432 1269 db2ipccm 0 0.000000 0.000000
15 140143163860736 1267 db2wlmtm 0 0.150000 0.090000
14 140143168055040 1263 db2wlmt 0 0.010000 0.000000
12 140143176443648 1261 db2thcln 0 0.000000 0.000000
11 140143180637952 1260 db2alarm 0 0.020000 0.010000
1 140142920591104 1259 db2sysc 0 0.060000 0.020000
$ ps -eo pid,command | grep db2
1256 db2wdog 0 [v11fp0]
1258 db2sysc 0
1264 db2ckpwd 0
1265 db2ckpwd 0
1266 db2ckpwd 0
1268 db2vend (PD Vendor Process - 1) 0
1276 db2acd 0 ,0,0,0,1,0,0,00000000,0,0,0,0000000000000000,0000000000000000,00000000,00000000,00000000,00000000,00000000,00000000,0000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000056eae000,0000000000000000,0000000000000000,1,0,0,,,,,a7ffd0,14,1e014,2,0,1,0000000000041fc0,0x240000000,0x240000000,1600000,289f8009,2,28ee0013
1334 grep --color=auto db2
2) DIAGPATH の確認
$ db2 get dbm cfg | grep -i diagpath
診断データのディレクトリー・パス (DIAGPATH) = /home/db2inst1/sqllib/db2dump/ <-- DIAGPATH
現行メンバーの解決済の DIAGPATH = /home/db2inst1/sqllib/db2dump/
代替診断データのディレクトリー・パス (ALT_DIAGPATH) =
現行メンバーの解決済みの ALT_DIAGPATH =
3) トラップ・ファイルの確認
$ ls -1 /home/db2inst1/sqllib/db2dump/
1256.2.000.stack.txt <-- db2wdog プロセス
1258.000.processObj.txt
1258.1.000.stack.txt <-- db2sysc プロセスのスレッド
1258.11.000.stack.txt <-- db2sysc プロセスのスレッド
1258.12.000.stack.txt <-- db2sysc プロセスのスレッド
1258.13.000.stack.txt <-- db2sysc プロセスのスレッド
1258.14.000.stack.txt <-- db2sysc プロセスのスレッド
1258.15.000.stack.txt <-- db2sysc プロセスのスレッド
1258.16.000.stack.txt <-- db2sysc プロセスのスレッド
1258.17.000.stack.txt <-- db2sysc プロセスのスレッド
1258.18.000.stack.txt <-- db2sysc プロセスのスレッド
1258.19.000.stack.txt <-- db2sysc プロセスのスレッド
1258.20.000.stack.txt <-- db2sysc プロセスのスレッド
1258.21.000.stack.txt <-- db2sysc プロセスのスレッド
1264.2.000.stack.txt <-- db2ckpwd プロセス
1265.2.000.stack.txt <-- db2ckpwd プロセス
1266.2.000.stack.txt <-- db2ckpwd プロセス
1268.19150656.000.stack.txt <-- db2vend プロセス
1276.139741958432576.000.nonEDU.app_stack.txt <-- db2acd プロセス
DIAG0000
clientrecords
db2diag.log
db2eventlog.000
events
stmmlog
db2inst1.nfy
2. トラップ・ファイル内の出力を確認してください。
トラップ・ファイルの情報は XML で書かれており、 db2pd -stack コマンドを実行するたびに、一回分の情報 (<Trap> タグで囲まれた情報) が追記されます。
以下が db2pd -stack コマンドを実行した回数分出力されていることをご確認ください。
- <Header> タグ内に db2pd -stack コマンドを実行したときのタイムスタンプ
- <StackTrace> タグ内にスタック・トレース (関数アドレス、関数名、関数内のオフセットからなる複数の行)
※ スタック・トレースは関数名が出力されない、あるいは部分的に欠けるなど、うまく出力されない場合もあります。
例)
<?xml version="1.0" encoding="ISO-8859-1"?>
(省略)
<Trap> <--1回目の出力ここから
<Header>
DB2 build information: DB2 v11.1.0.0 s1606081100 SQL11010
timestamp: 2017-08-03-15.14.19.177622 <--1回目のタイムスタンプ
(省略)
</Header>
(省略)
<StackTrace> <--1回目のスタック・トレースここから
-----FUNC-ADDR---- ------FUNCTION + OFFSET------
0x00007F75AAAE2CE6 _Z25ossDumpStackTraceInternalmR11OSSTrapFileiP7siginfoPvmm + 0x0356
(/home/v11fp0/sqllib/lib64/libdb2osse.so.1)
0x00007F75AAAE292B ossDumpStackTraceV98 + 0x002b
(/home/v11fp0/sqllib/lib64/libdb2osse.so.1)
0x00007F75AAADEAD7 _ZN11OSSTrapFile6dumpExEmiP7siginfoPvm + 0x00d7
(/home/v11fp0/sqllib/lib64/libdb2osse.so.1)
0x00007F75B203F9F7 sqlo_trce + 0x03c7
(/home/v11fp0/sqllib/lib64/libdb2e.so.1)
0x00007F75B219B17B sqloDumpDiagInfoHandler + 0x020b
(/home/v11fp0/sqllib/lib64/libdb2e.so.1)
0x00007F75B92E9100 address: 0x00007F75B92E9100 ; dladdress: 0x00007F75B92DA000 ; offset in lib: 0x000000000000F100 ;
(/lib64/libpthread.so.0)
0x00007F75B92E896D __nanosleep + 0x002d
(/lib64/libpthread.so.0)
0x00007F75AAAC80DF ossSleep + 0x004f
(/home/v11fp0/sqllib/lib64/libdb2osse.so.1)
0x00007F75B2087B4F sqlorest + 0x00ff
(/home/v11fp0/sqllib/lib64/libdb2e.so.1)
0x00007F75B037D0DF _Z14sqleTimedSleepmPmS_ + 0x007f
(/home/v11fp0/sqllib/lib64/libdb2e.so.1)
0x00007F75B040EB77 _ZN14sqeWlDispTimer6RunEDUEv + 0x0077
(/home/v11fp0/sqllib/lib64/libdb2e.so.1)
0x00007F75B3B45796 _ZN9sqzEDUObj9EDUDriverEv + 0x0116
(/home/v11fp0/sqllib/lib64/libdb2e.so.1)
0x00007F75B2198688 sqloEDUEntry + 0x0578
(/home/v11fp0/sqllib/lib64/libdb2e.so.1)
0x00007F75B92E1DC5 address: 0x00007F75B92E1DC5 ; dladdress: 0x00007F75B92DA000 ; offset in lib: 0x0000000000007DC5 ;
(/lib64/libpthread.so.0)
0x00007F75A9B001CD clone + 0x006d
(/lib64/libc.so.6)
</StackTrace> <--1回目のスタック・トレースここまで
(省略)
</Trap> <--1回目の出力ここまで
<Trap> <--2回目の出力ここから
(省略)
</Trap> <--2回目の出力ここまで
<Trap> <--3回目の出力ここから
(省略)
</Trap> <--3回目の出力ここまで
</DB2TrapFile>
関連情報
パスポート・アドバンテージによく寄せられる質問
お問合せ先
技術的な内容に関して、サービス契約のもと IBM サービス・ラインにお問い合わせください。
IBM サービス・ライン
[{"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"DB2 Tools - db2pd","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"9.7;10.1;10.5;11.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg22004643