前置準備
- 確認 SQL Server 啟用 TCP/IP 協定(SQL Server Configuration Manager → 網路設定 → TCP/IP → 啟用,IPAll 埠口設為 1433)。
- 下載 Microsoft JDBC Driver for SQL Server(
mssql-jdbc-.jar)或 jTDS(jtds-1.3.1.jar),放入 $DOMAIN_HOME/lib。
- 建立專用資料庫帳號,授予
db_datareader、db_datawriter、ddl_admin(若應用需建表)。
WebLogic Console 設定資料源
- 登入 WebLogic Administration Console(
https://host:7001/console)。
- 導航:Services → Data Sources → New → Generic Data Source。
- 基本資訊:
- Name:
SQLServerDS
- JNDI Name:
jdbc/SQLServerDS
- Database Type: MS SQL Server
- Database Driver: Microsoft's SQL Server Driver (Type 4) Versions: 2008, 2012, 2014, 2016, 2017, 2019(若用 jTDS 選 Other 手動填寫)
- 連線屬性:
- Database Name:
YourDB
- Host Name:
sql-host
- Port:
1433
- Database User Name:
app_user
- Password / Confirm Password:
******
- 測試連線 → 成功後 Next。
- 選擇目標 Server/Cluster → Finish。
進階連線池調優(Connection Pool Tuning)
在資料源 → Configuration → Connection Pool 設定:
| 參數 | 建議值 | 說明 |
| Initial Capacity | 5 ~ 10 | 啟動時預建連線,減少首次請求延遲 |
| Maximum Capacity | 50 ~ 100 | 視應用並發與 DB 最大連線數調整 |
| Capacity Increment | 5 | 擴容步長 |
| Test Table Name | SQL SELECT 1 | 驗證查詢(Microsoft 驅動) |
| Test Table Name (jTDS) | SQL SELECT 1 | 同上 |
| Test Connections On Reserve | true | 借用前驗證,防止殭屍連線 |
| Test Frequency (seconds) | 120 | 閒置連線定期檢查 |
| Seconds to Trust an Idle Pool Connection | 60 | 信任閒置連線秒數,減少驗證開銷 |
| Statement Cache Size | 20 ~ 50 | PreparedStatement 快取 |
| Connection Creation Retry Frequency | 300 | 建立失敗重試間隔(秒) |
驅動類別與 URL 範本
| 驅動 | Driver Class | URL 範本 |
| Microsoft JDBC 12.x | com.microsoft.sqlserver.jdbc.SQLServerDriver | jdbc:sqlserver://host:1433;databaseName=DB;encrypt=true;trustServerCertificate=false |
| jTDS 1.3.1 | net.sourceforge.jtds.jdbc.Driver | jdbc:jtds:sqlserver://host:1433/DB;instance=INST;charset=utf8 |
常見問題排查
- 連線失敗:The TCP/IP connection to the host has failed
- 確認 SQL Server TCP/IP 啟用、防火牆開放 1433、SQL Server Browser (UDP 1434) 啟動(命名執行個體)。
- 驅動類別找不到
- 確認 jar 放在
$DOMAIN_HOME/lib,並重啟 AdminServer 與 Managed Servers。
- 加密連線失敗
- SQL Server 強制加密時,JDBC URL 需加
encrypt=true;trustServerCertificate=true(測試環境)或匯入有效憑證(生產環境)。
- 分散式交易 (XA) 不支援
- Microsoft 驅動支援 XA(需啟用 MSDTC),jTDS 不支援 XA。若需跨資料源交易,請用 Microsoft 驅動並配置 MSDTC。
驗證清單
- [ ] Console 測試連線成功
- [ ] 應用注入
@Resource(lookup="jdbc/SQLServerDS") 可取得 DataSource
- [ ] 執行簡單查詢無誤
- [ ] 負載測試下連線池無洩漏、等待時間合理
- [ ] 啟用
JDBC Debug 或 WebLogic Diagnostics 監控連線生命週期