DB2客戶端連接服務(wù)器報錯的解決方法
為什么DB2客戶端連服務(wù)器總是報錯SQL30081N呢?這可能是很多人都遇到過的問題,下面就教你一個解決DB2客戶端連接服務(wù)器報錯的方法,供您參考。
當(dāng)你遇到無法連接DB2的問題時,首先要了解整個層次模型,多層模型將會涉及一個或多個中間層,會給故障定位增加難度。另外,諸如操作系統(tǒng)、DB2版本及補丁級別、通訊協(xié)議也是要了解的。
一個基本的故障解決方法是:如果是DB2客戶端上的應(yīng)用遇到問題,那么用DB2命令行來測試是否可以連接到DB2服務(wù)器。如果是三層結(jié)構(gòu),那么直接在中間層上嘗試連接DB2服務(wù)器。
通常,有關(guān)通訊的故障會出現(xiàn)以下信息:
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
如果問題是持續(xù)的,那會比較好解決,有可能是配置的問題,或者網(wǎng)絡(luò)通訊。如果問題是間斷性的,那可能涉及網(wǎng)絡(luò)故障、連接池中代理太少。
如果你是遠(yuǎn)程DB2客戶端遇到問題,那么先測試服務(wù)器本地是否可以連到DB2 Server.如果還是無法連接,那么查看DB2服務(wù)器是否正常工作。如果可以連接,說明網(wǎng)絡(luò)通訊故障,或者遠(yuǎn)程客戶端配置有問題。
檢查服務(wù)器的配置情況如下:
驗證存在的DB2數(shù)據(jù)庫
db2 list db directory
db2 list db directory show detail
驗證實例使用的通訊協(xié)議,查看DB2COMM變量
db2set -all
查看數(shù)據(jù)庫管理器的配置,查看SVCENAME(特指tcpip協(xié)議)
db2 get dbm cfg
查看/etc/services中,有無與上面對應(yīng)SVCENAME的端口,例如:
db2cDB2 50000/tcp
要確認(rèn)服務(wù)器是否在監(jiān)聽,可以用netstat -an 來查看端口是否處于LISTEN狀態(tài)
檢查客戶端的配置如下:
驗證遠(yuǎn)程服務(wù)器實例配置
db2 list node directory
db2 list node directory show detail
ping hostname來驗證通訊
使用telnet hostname port來驗證是否能連到實例
另外,DB2提供了一個PCT工具來專門解決有關(guān)通訊的故障,如果上面的方法還沒有解決你的問題,那么請參閱相關(guān)資料來使用它。
【編輯推薦】