網路上關於 JDBC 連線 DB2 的文章眾多,但細節常有疏漏。本文基於實戰經驗,梳理驅動選擇、連線字串格式、類庫部署、應用程式與 JSP 兩種場景的完整配置步驟,並揭露 Tomcat 直連效能陷阱與解法。
import java.sql.*; 即可使用,無需額外下載 JDBC API。jdbc:db2:<資料庫名>** (資料庫必須在預設實例中);jdbc:db2://<主機IP>:<埠號>/<資料庫名>** (預設埠 50000)。jdbc:db2://192.168.1.10:50000/rdbdb2jcc.jar (舊版 db2java.zip),需納入類路徑。// 1. 解壓 db2jcc.jar 確保 COM/IBM 套件可用
// 2. 註冊驅動 (二選一)
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance(); // Type 4 通用驅動 (推薦)
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance(); // Type 2 需本地 DB2 Client
// 3. 取得連線
Connection con = DriverManager.getConnection(url, user, password);
關鍵差異:Type 4 純 Java、無需 Client、部署輕量;Type 2 需安裝 DB2 Client、本地效能略優但維護成本高。現代應用**強烈建議 Type 4**。
db2jcc.jar 更名為 db2jcc.jar (已是 jar 可略過) 複製至 $CATALINA_HOME/lib (Tomcat 6+)/common/lib (Tomcat 5);Class.forName("com.ibm.db2.jcc.DB2Driver") 註冊;DriverManager.registerDriver(new com.ibm.db2.jcc.DB2Driver());現象: JSP 直連 DB2 極慢,且連線隨負載遞增導致 DB2 實例掛點或回應緩慢。
根因: JSP 請求頻繁建立/銷毀連線,缺乏連線池;DB2 伺服器端參數未調優。
解法:
maximumPoolSize、idleTimeout、connectionTimeout;MAXAPPLS、MAX_COORDAGENTS、LOCKLIST、LOGBUFSZ 等依負載調整;DB2JCC_DEBUG 排查連線洩漏。Type 4 驅動 + 連線池 + Servlet 門面 + DB2 參數調優 = 穩定高效的 JDBC-DB2 架構。切勿在 JSP 直寫連線邏輯,亦勿忽略伺服器端調優。