DB2 Connect 定位重審
DB2 Connect 不僅是「連接主機 DB2 的驅動程式」,更是一個資料存取平台,提供:
- 通訊伺服器:部署於 Windows/Linux/UNIX,繼承 DB2 引擎架構品質。
- 單一連接點:在 Connect 伺服器建立一個「虛擬資料庫」,應用僅連接此處,請求路由至真實後端 (z/OS、iSeries、LUW、Informix、Oracle、SQL Server、VSAM、IMS、XML、MQ 等)。
- 三大統一存取機制:聯邦資料庫、存儲過程、SQL 函數 (UDF)。
機制一:內建聯邦資料庫 (Federated Database)
核心能力 (V8+ 免費內建)
- 支援讀/寫:DB2 LUW、DB2 z/OS、DB2 iSeries、DB2 VSE/VM、Informix IDS。
- 透明路由:
SELECT * FROM T1, T2 WHERE T1.C1=T2.C2 → T1 來自 z/OS,T2 來自 Windows Informix,應用無感知。
- 昵稱機制:
CREATE NICKNAME n1 FOR zos_db.schema.table,本地像操作原生表。
- 補償/轉換/優化:函數補償、資料類型映射、謂詞下推、分支裁剪、全域優化器重寫查詢計劃。
結合 WebSphere Information Integrator (WII) 擴展
- WII 擴充聯邦引擎至:Oracle、SQL Server、Sybase、IMS、VSAM、ADABAS、OLE DB、XML、Web Services 等。
- 統一架構:DB2 Connect + WII = 企業級聯邦伺服器,單一 API (JDBC/ODBC/.NET) 存取所有資料源。
聯邦優化器智慧特性
- 遠端目錄統計快取:知曉 Oracle 索引、基數、分佈,重寫查詢下推謂詞。
- 動態決定:下推 vs 回傳全量本地過濾,依並發特徵/業務需求自適應。
- 暖資料快取:在外部源建立暖快取,減少跨網路往返。
機制二:存儲過程統一非關系資料存取
獨特優勢
- 程式碼可用任意語言 (Java、COBOL、C、.NET) 撰寫,部署於目標伺服器 (如 z/OS)。
- 封裝 CICS 交易、IMS 交易、VSAM/IMS 存取、MQ 訊息佇列操作。
- 呼叫端完全不知後端技術細節:VB.NET 開發者調用 SP 即可觸發 CICS 交易。
- 原子性保證:z/OS RRS (Resource Recovery Service) 確保 SP 內 DB2 更新 + CICS 交易 + MQ 寫入 同成敗。
關鍵範例
DSNACICS:IBM 提供範例 SP,簡化分散式應用呼叫 CICS 交易。
DSNACICX:用戶出口,DBA 可抽象 CICS 介面、檢查/覆蓋參數。
DSNAIMS:對應 IMS 交易的範例 SP。
為何選 SP 而非 ODBC/OLE DB 直連?
- 單一驅動/單一連接,無需管理多種異構驅動。
- 資料完整性由 DB2/RRS 保證,非應用自管。
- WLM (Workload Manager) 管理 SP 執行環境,資源消耗可控、可計費。
- 授權集中控制:GRANT EXECUTE ON PROCEDURE 即可精細管控存取權。
機制三:SQL 函數 (UDF) 即時資料虛擬化
四大內建加速器 UDF 類型
- OLE DB UDF:連接任何有 OLE DB Provider 的資料源 (Access、Excel、文字檔、SQL Server、Oracle 等)。
- XML File UDF:讀取檔案系統 XML,結構化輸出 (表函數)。
- Web Services UDF:呼叫標準 Web Service (SOAP/REST),結果集化為表。
- MQ UDF:讀/寫 WebSphere MQ 佇列,表函數介面。
表函數特性
- 回傳結果集如同本地表:
SELECT * FROM TABLE(xml_udf('file.xml')) AS t。
- 可定義視圖封裝:
CREATE VIEW v_xml AS SELECT * FROM TABLE(xml_udf(...)),應用查視圖而非直接呼叫函數。
- Development Center 提供嚮導:滑鼠點擊即可建立 OLE DB/XML/MQ/Web Service UDF 及視圖。
實用範例
-- 將表資料發布到 MQ 佇列
SELECT MQSEND(col1) FROM my_table;
-- 從 MQ 佇列讀取並寫入表
INSERT INTO target_tab SELECT * FROM TABLE(MQRECEIVEALL()) AS t;
XML 與訊息佇列整合
- DB2 Connect 內建 XML Extender / SQL/XML (SQLx) 支援:剖析、驗證 (DTD/Schema)、XSLT 轉換、發布/分解。
- z/OS XML 資料可透過 SQLx 或 XML Extender 存取。
- MQ 整合獨立於 SP 機制,UDF 直接讀寫佇列,開發者無需學 MQ API。
架構演進總覽
| 階段 | 產品/功能 | 關鍵能力 |
| 早期 | DB2 Connect (驅動/通訊) | 應用 ↔ 主機 DB2 (z/OS, iSeries) |
| V8 | 內建聯邦 (DataJoiner 併入) | DB2 家族 + Informix 聯邦、單一虛擬資料庫 |
| V8+ | WII (WebSphere Information Integrator) | 擴展至 Oracle、SQL Server、IMS、VSAM、XML、Web Services、MQ |
| 現代 | DB2 Connect + WII = 聯邦伺服器 | 企業級資料虛擬化平台,單一 API、全域優化、暖快取、RRS 交易完整性 |
結語
DB2 Connect 已進化為超越主機連接的異構資料存取平台。其三大機制——聯邦資料庫 (查詢整合)、存儲過程 (交易/邏輯封裝)、SQL 函數 (即時資料虛擬化)——互補覆蓋「查、改、虛」全谱系需求。配合 WII,可構建企業級聯邦架構,以單一標準 API 統一存取關系、非關系、結構化、非結構化、同步、非同步所有資料資產,同時保證交易完整性、資源可控、授權集中。這正是當今混合雲、多源異構環境下最務實的資料整合路徑。