WebLogic JDBC 配置採用分層架構:JDBC 驅動程式 → 連線池 → 多重連線池 → 資料源/多重資料源 → 資料源工廠。理解各層職責與依賴關係是正確配置的關鍵。
無連線池時,每次資料庫操作需:載入驅動 → 建立實例 → 取得連線 → 關閉連線。連線池預先建立連線集合,應用程式借用後歸還而非關閉,大幅降低連線建立開銷,提升高併發效能。
| 驅動類型 | 特徵 | 配置要點 |
|---|---|---|
| Type 2 (OCI) | 需本地客戶端庫 | PATH 加入 $ORACLE_HOME/bin 與 $WL_HOME/server/bin/oci817_8 |
| Type 4 (Thin) | 純 Java,無本地相依 | 僅需 classes12.zip 加入 CLASSPATH |
# startWebLogic.sh 中 CLASSPATH 追加
CLASSPATH=$CLASSPATH:$ORACLE_HOME/jdbc/lib/classes12.zip
export CLASSPATH
| 驅動 | Driver Classname | URL 格式 |
|---|---|---|
| Thin (Type 4) | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@<host>:<port>:<SID> |
| OCI (Type 2) | oracle.jdbc.driver.OracleDriver | jdbc:oracle:oci8:@<TNS_Name> |
Properties 設定:user=<user>、server=<SID>(Thin 驅動勿設 server)
| 參數 | 建議值 | 說明 |
|---|---|---|
| Initial Capacity | = Max Capacity | 啟動時預建所有連線,避免尖峰期動態擴展抖動 |
| Maximum Capacity | 並發會話峰值 | 監控 Active Connections High 水位決定 |
| Capacity Increment | 1-2 | 擴展步長,生產環境建議設 0 固定大小 |
| Allow Shrinking | false | 生產環境固定池大小,避免收縮/擴展開銷 |
| Test Frequency | 120s | 搭配 Test Table Name 定期驗證連線有效性 |
| Test Table Name | DUAL | Oracle 專用測試表,SELECT 1 FROM DUAL |
| Test Reserved Connections | true | 借出前驗證,防止斷線連線流入應用 |
| 場景 | 資料源類型 | 原因 |
|---|---|---|
| 容器管理持久化 (CMP Entity Bean) | Tx Data Source | 需參與 JTA 分散式交易 |
| 單一資料庫本地交易 | Data Source (非 Tx) | 效能較佳,無 XA 開銷 |
| 多資源單一交易 | Tx Data Source | 兩階段提交保證一致性 |
| 多伺服器共用連線池 | Tx Data Source | 支援叢集環境 |
供應用程式範圍內查找連線池的 JNDI 物件,配置後需重啟伺服器生效。
遵循本指南配置 WebLogic 8.1 JDBC,可建立穩定、高效能、支援分散式交易的資料存取基礎設施。