2008年6月27日 星期五

SQL30081 Error when connect using DB2 UDB8.2

/* Connect DB時傳回以下錯誤 */

C:\>connect to ORIONDB user db2admin using db2admin

SQL30081N 偵測到通信錯誤。 已使用的通訊協定: "TCP/IP"。 已使用的通信 API:
"SOCKETS"。 偵測到錯誤的位置: "10.7.72.62"。
偵測錯誤的通信功能:"connect"。 通訊協定特定的錯誤碼: "10060"、"*"、"*"。
SQLSTATE=08001

/* 解決方法 */
/* 1) Check database server 的環境變數 DB2COMM是否設為TCPIP */

C:\>db2set -all
[e] DB2PATH=C:\Program Files\IBM\SQLLIB
[i] DB2ACCOUNTNAME=IBM-63AB93AA2BF\orion
[i] DB2INSTOWNER=IBM-63AB93AA2BF
[i] DB2PORTRANGE=60000:60003
[i] DB2INSTPROF=C:\PROGRAM FILES\IBM\SQLLIB
[i] DB2COMM=TCPIP
[g] DB2_EXTSECURITY=YES
[g] DB2SYSTEM=IBM-63AB93AA2BF
[g] DB2PATH=C:\Program Files\IBM\SQLLIB
[g] DB2INSTDEF=DB2
[g] DB2ADMINSERVER=DB2DAS00

/* 使用db2set設定 */

C:\>db2set DB2COMM = TCPIP

/* 2) 檢查 database server的service name */

C:\>DB2 GET DBM CFG

資料庫管理程式配置

   節點類型 = 具有本地及遠端用戶端的 Enterprise Server Edition

 資料庫管理程式配置版次               = 0x0a00

 開啟檔案的最大總數         (MAXTOTFILOP) = 16000
 CPU 速度 (千分之一秒/命令)       (CPUSPEED) = 4.000000e-005
 通信頻寬 (MB/秒)       (COMM_BANDWIDTH) = 1.250000e+000
                             .
                             .
                             .
                             .
 「TCP/IP服務程式」名稱        (SVCENAME) = db2c_DB2


/* 
  找(SVCENAME)設定值是否正確,不正確則重新設定
  若service name應該為orion_DB2,則使用update dbm cfg 修改
*/


C:\>update dbm cfg using svcename orion_DB2


/* 3) 檢查 etc\services的port number */

開啟C:\WINDOWS\system32\drivers\etc\services
確定以service name使用的port number存在且正確

orion_DB2 50000/tcp


/* 4) 檢查 firewall 設定*/