程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2客戶端連接服務器報錯的解決方法

DB2客戶端連接服務器報錯的解決方法

編輯:DB2教程

為什麼DB2客戶端連服務器總是報錯SQL30081N呢?這可能是很多人都遇到過的問題,下面就教你一個解決DB2客戶端連接服務器報錯的方法,供您參考。

當你遇到無法連接DB2的問題時,首先要了解整個層次模型,多層模型將會涉及一個或多個中間層,會給故障定位增加難度。另外,諸如操作系統、DB2版本及補丁級別、通訊協議也是要了解的。

一個基本的故障解決方法是:如果是DB2客戶端上的應用遇到問題,那麼用DB2命令行來測試是否可以連接到DB2服務器。如果是三層結構,那麼直接在中間層上嘗試連接DB2服務器。

通常,有關通訊的故障會出現以下信息:

SQL30081N A communication error has been detected. Communication
protocol being used: "TCP/IP". Communication API being used: "SOCKETS".
Location where the error was detected: "". Communication function
detecting the error: "connect". Protocol specific error code(s):
"10061", "*", "*". SQLSTATE=08001

如果問題是持續的,那會比較好解決,有可能是配置的問題,或者網絡通訊。如果問題是間斷性的,那可能涉及網絡故障、連接池中代理太少。

如果你是遠程DB2客戶端遇到問題,那麼先測試服務器本地是否可以連到DB2 Server.如果還是無法連接,那麼查看DB2服務器是否正常工作。如果可以連接,說明網絡通訊故障,或者遠程客戶端配置有問題。

檢查服務器的配置情況如下:

驗證存在的DB2數據庫
db2 list db directory
db2 list db directory show detail
驗證實例使用的通訊協議,查看DB2COMM變量
db2set -all
查看數據庫管理器的配置,查看SVCENAME(特指tcpip協議)
db2 get dbm cfg
查看/etc/services中,有無與上面對應SVCENAME的端口,例如:
db2cDB2 50000/tcp

要確認服務器是否在監聽,可以用netstat -an 來查看端口是否處於LISTEN狀態

檢查客戶端的配置如下:

驗證遠程服務器實例配置
db2 list node directory
db2 list node directory show detail
ping hostname來驗證通訊
使用telnet hostname port來驗證是否能連到實例

另外,DB2提供了一個PCT工具來專門解決有關通訊的故障,如果上面的方法還沒有解決你的問題,那麼請參閱相關資料來使用它。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved