首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 連線錯誤排查實戰:SQL1032N、SQL30081N 與授權問題

     編輯:DB2 教學

一、SQL1032N「未發出啟動資料庫管理器命令」三大成因

1. 授權到期

現象:db2start 失敗,Windows 服務無法啟動,事件日誌顯示服務特定錯誤碼 -8000 / 事件 ID 7024。

排查:db2licm -l 確認授權狀態。

對策:套用永久授權或延長試用期。

2. 服務登入帳號密碼錯誤

現象:啟動服務報錯 1069「登入失敗」。

成因:切換系統登入用戶或變更 DB2 服務帳號密碼後未同步。

對策:服務屬性 → 登入頁籤 → 重新輸入正確帳號密碼 → 重啟服務。

3. 殘留 db2fmp 進程阻擋啟動

現象:db2start 報 SQL1032N,db2diag.log 記錄:
Failed to create the memory segment used for communication with fenced routines... ensure no db2fmp processes were on the instance prior to start

對策:工作管理員結束所有 db2fmp.exe 進程後重試 db2start。

經驗:db2diag.log 永遠是排查啟動失敗的第一手線索。

二、JDBC 連線亂碼與 Timestamp 讀取失敗

  • 編碼不支援:Sun JDK 1.4.2 連線報 encoding not supported,換用 IBM JDK(WSAD 附帶)即解決。
  • License 缺失:專案需加入 db2jcc_license_cisuz.jar、db2jcc_license_cu.jar。
  • 驅動版本不匹配:DB2 V8.1 附帶 db2jcc.jar 讀取 TIMESTAMP 拋 ArrayIndexOutOfBoundsException,換用 V8.2 版驅動即正常。

結論:JDBC 怪異問題 8 成源於驅動 jar 版本或 JDK 廠商不匹配,優先驗證驅動組合。

三、SQL30081N 通訊錯誤 (TCP/IP, 10061) 排查清單

  1. 確認 SVCENAME 參數與 services 檔埠號一致(Windows 常用 50000,Linux/Unix 常用 60000)
  2. 驗證連線字串 IP/埠號正確
  3. 伺服器端檢查:
    • db2 list db directory 確認資料庫存在
    • db2set -all 檢視 DB2COMM=TCPIP
    • db2 get dbm cfg 確認 SVCENAME
    • /etc/services 或 C:\Windows\System32\drivers\etc\services 有對應埠號
    • netstat -an 確認埠號處於 LISTEN
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved