下列各節提供使用 Microsoft DRDA 服務進行規劃與設計解決方案的說明。
規劃
企業 IT 組織需要提供新的解決方案,同時提高開發人員效率並降低成本。 DRDA 服務提供技術和工具,讓 IT 專業人員和企業開發人員根據 MICROSOFT SQL Server 部署新的解決方案,同時根據 IBM DB2 連接現有的工作負載。 下圖提供DRDA服務解決方案中相關技術與元件的高階架構,此解決方案會將IBM DB2用戶端連線到Microsoft SQL Server 資料庫。
上個插圖顯示透過DB2 for z/OS和DRDA服務將IBM CICS for z/OS用戶端程式連接到遠端Microsoft SQL Server資料庫的計劃。
適用於DRDA的Microsoft服務(分散式關係資料庫架構)是一個應用程式伺服器(AS),可以讓DRDA應用程式要求者(AR)用戶端,例如 IBM DB2 for z/OS 和 DB2 for IBM i,執行與 SQL Server 預存程序對應的靜態 SQL 語句。 DRDA 服務為企業在分階段的工作負載遷移期間,或每日執行支援遠端批次或商業智慧解決方案的操作時,提供主機主導的資料整合。
DRDA 服務提供下列功能。
透過 TCP/IP 網路連線從 DRDA 用戶端存取 SQL Server。
安全性驗證和數據加密。
分散式雙階段認可交易。
對應到 SQL Server 預存過程調用的靜態 SQL 陳述式。
有限的動態數據操作語言命令映射到 T-SQL 命令。
數據類型對應和轉換、字串編碼和日期時間格式設定。
錯誤碼和文字被映射到DRDA回覆訊息及格式化錯誤物件。
用於記錄流程和命令的追蹤公用程式,可針對問題進行疑難解答。
分散式關係資料庫架構
IBM DB2 用戶端和伺服器會使用分散式關係資料庫架構 (DRDA) 通訊協定和格式進行通訊。 DRDA 服務會以DRDA應用程式伺服器 (AS) 的形式運作,讓DRDA應用程式要求者 (AR) 用戶端與 Microsoft SQL Server 資料庫互動。 DRDA 服務僅支援有限的一組DRDA碼點,這些碼點由Open Group發佈的架構參考中所定義。
DRDA 第 5 版第 1 卷:分散式關係資料庫架構 (DRDA)
DRDA 第 5 版第 2 卷:格式化的數據物件內容架構 (FD:OCA)
DRDA 第 5 版第 3 卷:分散式數據管理 (DDM) 架構
您可以從開放群組書籍存放區下載DRDA V5第3卷:分散式數據管理架構、出版物號碼 C114(https://go.microsoft.com/fwlink/?LinkID=219127&clcid=0x409)。
IBM DB2 伺服器和用戶端
Microsoft、IBM 和第三方廠商會以各種DRDA應用程式要求者(AR) 客戶端技術實作DRDA通訊協定和格式。 DRDA 服務支援來自符合 DRDA 第 5 版標準的 DRDA AR 用戶端的連入連線,包括在這些 IBM 和 Microsoft 產品中封裝的 DRDA AR 用戶端。
IBM DB2 for z/OS 12 和 11
IBM DB2 for IBM i 7.4、7.3 和 7.2
IBM DB2 for LUW 11.5、11 和 10.5
Microsoft主機整合伺服器包含兩個DRDA應用程式要求者用戶端,一個設計用來連線到遠端IBM DB2資料庫伺服器,另一個設計用來連線到遠端 IBM Informix 資料庫伺服器。 這些DRDA ARS支援DRDA 5.0版的子集。 DB2 的 Microsoft 用戶端支援 DB2 的這些資料提供者:
Microsoft ODBC 驅動程式(適用於 DB2)
Microsoft OLE DB Provider for DB2
Microsoft ADO.NET 框架 DB2 的資料提供者
Microsoft BizTalk Adapter for DB2
DRDA 服務提供 Microsoft DRDA 用戶端和 IBM DRDA 用戶端的基本 DRDA 支援。
企業單一 Sign-On
DRDA 服務依賴 Microsoft Enterprise Single Sign-On,將入站主機憑證(例如 RACF 使用者授權標識符)對應至出站的 Windows Active Directory(AD)憑證,讓 DRDA 服務能夠使用整合式安全性連接到 SQL Server。
上圖顯示,在啟用企業單一 Sign-One 後,DRDA 服務能夠將輸入的 DRDA 認證對應到輸出的 SQL Server 認證。
主機起始的 ESSO 需要在 Active Directory 中提高許可權(Kerberos 限制委派和使用任何驗證通訊協定)。 ESSO 需要DRDA服務所連線之 SQL Server 電腦的 Kerberos 服務主體名稱。 .
Microsoft SQL Server
企業系統管理員和開發人員依賴 Microsoft SQL Server 來建置企業營運應用程式的任務關鍵性數據平臺。 SQL Server 可協助企業通過整個組織的數據探索,開啟新的見解,同時提供一致的數據工具,以及大規模的分析和數據倉儲功能。 DRDA 服務可以根據 MICROSOFT SQL Server 將現有的 IBM 主機工作負載連線到新的解決方案,以啟用異質企業應用程式和商業智慧。
DRDA 服務仰賴 Microsoft SQL Server 網路客戶端和 ADO.NET Framework SQL Server 資料提供者,以進行 SQL Server 資料庫的連線和數據存取。 若想了解有關 Microsoft SQL Server 的更多資訊,請參閱 http://www.microsoft.com/sql。
建築
DRDA 服務提供相容性服務,讓遠端 IBM DB2 用戶端程式和本地 Microsoft SQL Server 資料庫能夠連線。此服務根據業界標準 DRDA(分散式關係資料庫架構)運作,定義了以一組通訊協定代碼點和格式形式的 DB2 用戶端對伺服器的通訊。 DRDA 服務會在DRDA內以應用程式伺服器 (AS) 的形式運作。 IBM DB2 用戶端程式(例如 COBOL TOS 和適用於 z/OS 的 CICS)會直接連結至 DB2 for z/OS,並在 DRDA 中作為應用程式要求者(AS)用戶端運行。 DRDA 服務是一項 Windows 服務,裝載一個 Microsoft .NET Framework 實例,使用 Microsoft ADO.NET Framework Data Provider for SQL Server 和基礎 Microsoft SQL Server 網路用戶端連線到本機或遠端 Microsoft SQL Server。
上圖顯示DRDA服務解決方案,將IBM DB2 for z/OS 連線到 Microsoft SQL Server。
連通性
分散式關係資料庫架構
DRDA 服務會將DRDA代碼點和數據格式轉換成對應的Microsoft ADO.NET 連線、交易、命令、數據類型和錯誤物件。 DRDA 服務的主要功能是將 DB2 套件的靜態 SQL 和語句執行功能對應到 Microsoft SQL Server 的預存程序和 CALL 語句。 DRDA 服務會根據各種 DRDA 管理程式所建立的架構,處理定義於其中的 DRDA 通訊協定流程。
網路傳輸和交易
DRDA 服務支援跨 TCP/IP 網路內系結的已驗證 DRDA 用戶端連線。 DRDA 服務不支援使用 HPR/IP (透過因特網協定的高效能路由) 的 SNA APPC 於 LU6.2。 為了連線到 SQL Server,DRDA 服務會使用基礎Microsoft ADO.NET Provider for SQL Server 和 SQL 網路客戶端,支援記憶體內、命名管道和 TCP/IP 網路連線。
根據預設,DRDA 服務會接聽預設DRDA埠446以進行內送連線,接受任何DRDA用戶端連線要求。 選擇性地,DRDA 服務可以接聽另一個預先設定的埠號碼。 此外,為了改善安全性,DRDA 服務可以設定為接受來自預先定義遠端網路位址清單的系結連線要求。
為了確保跨網路可靠地進行更新,DRDA 服務支援 DRDA DUW(分散式工作單位)的兩階段提交交易。 DRDA DUW 交易會透過 Microsoft ADO.NET Framework Data Provider for SQL Server 和基礎 SQL 網路客戶端對應至 SQL Server 交易。
共用和故障轉移
DRDA 服務透過在DRDA 服務應用程式設定中的SQL Server連接字串參數中設定 SQL 用戶端連線池選項,以支援 SQL 用戶端連線池功能。此外,DRDA 服務也提供內部連線池功能,將入站的DRDA AR客戶端連線及驗證憑證對應至出站的SQL Server資料庫連線及憑證。
DRDA 服務主要伺服器與備援伺服器協同運作,以進行容錯故障轉移。
DRDA 服務可以在每部電腦一部的兩部伺服器群組中運作,以提供基本的容錯能力。 當DRDA AR用戶端連線到 SQL Server 資料庫時,DRDA 服務會傳回DRDA SRVLST (伺服器清單),其中包含資料伺服器實例的加權清單。 如果是主要DRDA服務的故障轉移,DRDA AR 可以使用這項資訊來連線到一對DRDA服務計算機的替代成員。 結合 SQL Server 叢集或鏡像,這項技術可以提供合理的容錯故障轉移保護層級。
驗證和加密
為了保護資訊,DRDA 服務支援常見的DRDA驗證和數據加密技術。 例如,DRDA 服務可以支援基本身份驗證(純文本 EBCDIC 編碼的使用者名稱與密碼),或使用 256 位進階加密標準 (AES) 進行安全驗證。 此外,DRDA 服務可以使用安全套接字層 (SSL) V3.0 或傳輸層安全性 (TLS) V1.0 來支援合併的驗證和加密。
為了提供整合式驗證,DRDA 服務可以使用 Microsoft Enterprise Single Sign-On (ESSO),結合入站憑證驗證和映射,以及使用 Windows SSPI (安全性支援提供者介面)進行向外的 SQL Server 驗證。 例如,DRDA 服務可以使用ESSO,將IBM RACF(資源訪問控制設施)用戶名稱和密碼對應至Microsoft Windows Active Directory 網域\用戶名稱,以將整合式安全性連線到遠端 SQL Server 資料庫。
相容性
靜態和動態 SQL
DRDA 服務主要透過將封裝語句對應至 SQL Server 預存程式,讓 DB2 用戶端程式能夠針對 DB2 套件執行遠端定義的靜態 SQL。 例如,當 DB2 系統管理員或程式設計人員將 DB2 套件綁定複製到 SQL Server 時,DRDA 服務會將 DRDA BNDSQLSTT(Bind SQL 語句)數據流轉換成 SQL Server T-SQL CREATE PROCEDURE 程序。 當 DB2 程式執行遠端封裝語句時,DRDA 服務會將 DRDA OPNQRY (Open Query) 或 EXCSQLSTT (Execute SQL Statement) 轉換成 CALL 語句。
其次,DRDA 服務支援有限的動態 SQL 作業,以允許 DB2 用戶端程式執行遠端 SQL Server T-SQL 命令。 例如,DB2 系統管理員可以利用 z/OS 的 QMF(查詢管理設施)來查詢遠端的 SQL Server 數據表。
SQL 語法
DRDA 服務擁有一個有限的 DB2 ANSI 到 SQL Server T-SQL 命令語法轉換器,可以用來繫結套件、執行靜態和動態 SQL 語句。 或者,DRDA 服務會以 SQL Server CLR 型函式的形式提供額外的相容 DB2 函式。
DRDA 服務提供可替換的套件綁定元件,以將 DRDA BNDSQLSTT(Bind SQL 語句)處理為 SQL Server T-SQL CREATE PROCEDURE 語句。 例如,ISV(獨立軟體廠商)或企業開發人員可以實作自定義定義的套件系結元件,以支援語法、數據類型、編碼或其他必要的轉換。
目錄和架構名稱
DRDA 服務提供高階物件標識碼的基本對應,包括目錄和架構名稱。 例如,DRDA 服務可以將傳入的 DRDA RDBNAM(關係資料庫名稱)對應至傳出的 SQL Server 資料庫名稱。 此外,DRDA 服務可以將入站的 DRDA COLLID(集合標識符)對應到出站的 SQL Server 架構名稱。
數據類型轉換
為了支援在 Windows作系統上執行的 SQL Server 資料庫與在 z/OS 和 IBM i 上執行的 DB2 伺服器之間的跨平臺互作性,DRDA 服務提供 XML 檔案中定義的一組數據類型對應和轉換(DB2ToMSSql.xml 和 MSSQLToDB2.xml)。 例如,DRDA 服務可以將輸入的 DB2 DECIMAL 對應並轉換為輸出的 SQL Server money。
字串編碼
DRDA 服務支援從 DB2 EBCDIC 字串編碼轉換成 SQL Server ANSI 和 UNICODE 編碼。 DRDA 服務選擇性支援已修改並可替換的 Windows EBCDIC-to-UNICODE NLS(國家語言支援)轉換檔案。 此外,DRDA 服務根據使用 CCSID(編碼字元集標識符)十六進位值組預先定義的對應,提供線上字元替換。
日期時間格式設定
DRDA 服務提供直接將 DB2 DATE/TIME/TIMESTAMP 轉換為 SQL Server 的 date/time/datetime2 格式和字串文字值的功能。 例如,DRDA 服務可以將格式為 YYYY-MM-DD-hh.mm.ss.tttttt 的輸入 DB2 格式化 TIMESTAMP 字串常值轉換為格式為 YYYY-MM-DD hh:mm:ss.tttttt 的輸出 SQL Server datetime2(6) 值。
管理部門
系統管理員可以在啟動DRDA服務之前修改 MsDrdaService.exe.config 檔案以及輔助 XML 檔案(資料類型和錯誤對應),來設定DRDA服務。 如果需要,DRDA 服務支援立即讀取 MsDrdaService.exe.config,以啟用動態設定更新。
設定
安裝後,IT 專業人員可以藉由編輯 MsDrdaService.exe.config 檔案和更新其他 XML 檔案,來自定義 DRDA 服務設定。 以下是DRDA服務元件、可設定專案和組態存放區的清單。
元件 | 物品 | 設定存放區 |
---|---|---|
DRDA 服務 | 服務認證 安全政策權限 連線管理員 安全性管理員 SQL Access Manager 資料庫管理員 |
Windows 註冊表 MsDrdaService.exe.config MSDRDAErrorMappings.xml |
數據轉換 | 資料類型映射 Date、Time、DateTime 格式 |
DB2ToMSSql.xml MSSQLToDB2.xml MsDrdaService.exe.config |
代碼頁轉換 | 自訂代碼頁 代碼點映射 |
Windows 註冊表 MsDrdaService.exe.config |
系結接聽程式 | 默認接聽程式 自訂接聽程式 |
MsDrdaService.exe.config |
追蹤監聽器 | 文字接聽程式 主控台接聽程式 ETW 監聽器 自訂接聽程式 |
MsDrdaService.exe.config |
事件記錄檔 | 事件 | 應用程式記錄檔 |
性能監視器 | 計數器 | Windows 註冊表 MsDrdaService.exe.config |
上表列出可設定的DRDA服務元件、專案和組態存放區。
追踪
DRDA 服務支援多個追蹤選項主控台接聽程式追蹤、文字接聽程式追蹤、事件記錄檔接聽程式、ETW(Windows 事件追蹤)接聽程式,以及自定義追蹤。 系統管理員在 Windows 控制台模式中執行DRDA服務時,會使用主控台追蹤,將追蹤資料輸出到畫面。 系統管理員在 Windows 服務模式或控制台模式中執行DRDA服務時,會使用文字追蹤,將追蹤資料輸出至可讀取的檔案。 DRDA 服務會自動將事件日誌監聽追蹤項目記錄到 Windows 事件日志。 系統管理員使用 ETW 追蹤進行高速數據收集。 或者,企業開發人員可以實作自定義追蹤接聽程式,將所有或選取的追蹤數據輸出至另一個元件。
會計和日誌記錄
DRDA 服務支援標準DRDA帳戶代碼點:用戶端工作站名稱;用戶端使用者標識碼;用戶端應用程式名稱;和客戶端會計。 企業開發人員可以在其程式中指定動態值,以填入DRDA用戶端會計屬性。 DRDA 服務會在運行時間讀取值,以填入DRDA服務追蹤,讓問題與特定應用程式和用戶內容相互關聯。 選擇性地,企業開發人員可以實作DRDA服務客戶追蹤接聽程式,以便記錄DRDAAR用戶端要求。 例如,客戶追蹤接聽程式可以根據客戶客戶帳戶值,將選取的網路和數據庫存取記錄到遠端 SQL Server 記錄資料庫。
錯誤對應
DRDA 服務會以DRDA代碼點回覆訊息 (RM) 或DRDA SQLCARD (SQL 通訊區域回復資料) 的形式傳回 SQL Server 錯誤。 根據預設,針對常見問題,DRDA 服務會使用內建數據表,將 SQL 錯誤碼和錯誤字串對應至 DRDA 回復訊息和錯誤。 此外,DRDA 服務會使用外部 MsDrdaErrorMappings.xml 檔案,從 SQL Server 錯誤碼和錯誤文字對應至 SQLCODE、SQLSTATE、原因碼和錯誤訊息。