DB 2が接続できない問題の点検過程
今日の午前、テスト環境でDB 2 V 9.7を手動でインストールし、SVCENAMEを設定した後、clpplus接続で以下のエラーを報告しました。
次に、netstatコマンドを使ってDB 2のdb 2 sysscが60000ポートを傍受しているかを確認した結果、次のようになりました。
結果は以下の通りです
clpplusを使うとスムーズに接続できます。
[db2inst1@lstest ~]$ clpplus db2inst1/[email protected]:60000/sde
[jcc][t4][2043][11550][3.58.82] java.net.ConnectException: 60,000 /192.168.100.228
, : 。 ERRORCODE=-4499, SQLSTATE
=08001
エラーから見たら60000ポートに問題があるはずです。次に、netstatコマンドを使ってDB 2のdb 2 sysscが60000ポートを傍受しているかを確認した結果、次のようになりました。
netstat -lnp|grep 60000
戻ってきていないので、DB 2を再起動した例はそのままです。その後、DB 2内部のdb 2 tcpcmが起動しているかどうか確認します。結果は以下の通りです
[db2inst1@lstest ~]$ db2pd -edu
Database
Partition 0 -- Active -- Up 0 days 00:21:54
List of
all
EDUs for
database
partition 0
db2sysc PID: 27228
db2wdog PID: 27226
db2acd PID: 27239
EDU ID TID Kernel TID EDU Name USR (s) SYS (s)
========================================================================================================================================
16 47112997824832 27492 db2agent (idle) 0 0.010000 0.000000
15 47113002019136 27237 db2resync 0 0.000000 0.000000
14 47113006213440 27236 db2ipccm 0 0.000000 0.000000
13 47113010407744 27235 db2licc 0 0.000000 0.000000
12 47113014602048 27234 db2thcln 0 0.000000 0.000000
11 47113018796352 27233 db2alarm 0 0.000000 0.000000
1 47112758749504 27232 db2sysc 0 0.070000 0.090000
[db2inst1@lstest ~]$
db 2 tcpcmのeduは見つかりませんでした。db 2 ipcccmというeduしか見つけられませんでした。この時点で問題が見つかりました。DB 2の通信プロトコル環境変数が設定されていないと推定されます。db 2 setを使って結果は以下の通りです。[db2inst1@lstest ~]$ db2set
DB2AUTOSTART=YES
やはり通信プロトコルの環境変数が設定されていません。次にTCPCOMMを設定します。tcpipです。[db2inst1@lstest ~]$ db2set DB2COMM=tcpip
[db2inst1@lstest ~]$ db2set
DB2COMM=tcpip
DB2AUTOSTART=YES
[db2inst1@lstest ~]$ db2stop
2010-12-28 14:58:30 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
[db2inst1@lstest ~]$ db2start
12/28/2010 14:58:36 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
[db2inst1@lstest ~]$ netstat -lnp|grep 60000
(Not
all
processes could be identified, non-owned process info
will not
be shown, you would have to
be root to
see it all
.)
tcp 0 0 0.0.0.0:60000 0.0.0.0:* LISTEN 28505/db2sysc 0
[db2inst1@lstest ~]$ db2pd -edu
Database
Partition 0 -- Active -- Up 0 days 00:00:57
List of
all
EDUs for
database
partition 0
db2sysc PID: 28505
db2wdog PID: 28503
db2acd PID: 28520
EDU ID TID Kernel TID EDU Name USR (s) SYS (s)
========================================================================================================================================
19 47304052566336 28518 db2spmlw 0 0.000000 0.000000
18 47304056760640 28517 db2spmrsy 0 0.000000 0.030000
17 47304060954944 28516 db2resync 0 0.000000 0.000000
16 47304065149248 28515 db2tcpcm 0 0.000000 0.000000
15 47304069343552 28514 db2tcpcm 0 0.000000 0.000000
14 47304073537856 28513 db2ipccm 0 0.000000 0.000000
13 47304077732160 28512 db2licc 0 0.000000 0.000000
12 47304081926464 28511 db2thcln 0 0.000000 0.000000
11 47304086120768 28510 db2alarm 0 0.000000 0.000000
1 47303826073920 28509 db2sysc 0 0.020000 0.010000
この時はすでに2つのdb 2 tcpcmプロセスが含まれています。clpplusを使うとスムーズに接続できます。
[db2inst1@lstest ~]$ clpplus db2inst1/[email protected]:60000/sde
= 192.168.100.228
= DB2/LINUXX8664 SQL09071
SQL
= db2inst1
= SDE
= 60000
CLPPlus: 1.1
Copyright © 2009, IBM CORPORATION. All
rights reserved.
これで全部できます。