DB2 Connect 不僅是連接分布式應用與大型主機(z/OS、iSeries)數據庫的網關,更內建了完整的通信基礎設施與聯邦數據庫引擎,實現對異構數據源的統一訪問。本文為系列第一部分,重點剖析其通信服務器架構、聯邦數據庫原理,以及與 WebSphere Information Integrator 結合後的擴展能力。
DB2 Connect 以「通信服務器」形式提供基礎設施,可部署於 Windows、Linux(含 Linux for zSeries)及 UNIX 服務器。其代碼基礎與 DB2 UDB 數據庫服務器完全一致,繼承了後者的高可用性、工作負載管理等企業級特性。
在通信服務器上創建的數據庫不存儲實際業務數據,僅作為應用程序的單一連接入口(虛擬數據庫鏡像)。所有請求由通信服務器路由至真正管理數據的後端 DB2 for z/OS 或 DB2 for iSeries 實例,實現「應用見單庫,後端多實例」的透明訪問。
DB2 Connect 通過以下三種機制實現統一訪問:
自 Version 8 起,聯邦數據庫功能已集成於 DB2 Connect 及 DB2 UDB 服務器,無需額外購買產品。部署通信服務器後即可創建聯邦數據庫,應用連接該數據庫即可透明訪問多個後端數據源。
內建聯邦組件提供對以下數據源的讀/寫支持:
一條 SQL 即可跨服務器聯接:
SELECT * FROM T1, T2 WHERE T1.C1 = T2.C2
其中 T1 可位於 DB2 for z/OS,T2 位於 Informix IDS for Windows。開發人員在 IDE 中僅見「暱稱」,如同操作本地表,完全屏蔽異構差異。
加入 WebSphere Information Integrator(前身 DB2 Information Integrator)後,聯邦引擎可訪問:
聯邦優化器繼承 DB2 自治優化技術,能識別異構源的索引、基數、分布統計,自動重寫查詢、下推謂詞、剪枝分支樹,甚至在外部源上建立「溫緩存」以減少跨網絡訪問。
DB2 存儲過程支持 Java、COBOL、.NET、C 等多語言,可在過程內調用 CICS 事務、訪問 VSAM 等主機資源。調用方應用無需知曉實現細節,僅需一條 CALL 語句,實現了業務邏輯與數據訪問的解耦。
DB2 Connect 以「單一 API、單一 SQL 風格、位置透明、事務一致性」四大特性,為異構環境提供了極具成本效益的統一訪問層。下一部分將深入探討作為數據訪問平台的 DB2 Connect 在分布式事務、兩階段提交、跨庫 Join 等高級場景中的表現。