DRDA 會定義分散式 DBMS 函數的類型。 DB2 Universal Database for OS/390 支援遠端工作單元。 透過遠端工作單元,在系統中執行的應用程式可以使用遠端 DBMS 所提供的 SQL,來存取遠端 DBMS 中的資料。
DB2 Universal Database for OS/390 也支援分散式工作單元。透過分散式工作單元, 在某個系統中執行的應用程式可以使用遠端 DBMS 所提供的 SQL, 來存取多個遠端 DBMS 中的資料。關於 DRDA 所定義的分送類型的詳細資訊,請參閱 DRDA Connectivity Guide。
如圖 14 中所示一般,DB2 Universal Database for OS/390 將使用兩種存取方法, 來支援分散式資料庫連接的三種架構:
[1] 系統引導的存取 (亦即使用 DB2 Universal Database for OS/390 專用通訊協定) 容許 DB2 Universal Database for OS/390 要求程式與一個或多個 DB2 Universal Database for OS/390 伺服器連接。 在 DB2 Universal Database for OS/390 要求程式與伺服器之間所建立的連接不會遵守 DRDA 中所定義的通訊協定, 而且不能用來使非 DB2 Universal Database for OS/390 產品與 DB2 Universal Database for OS/390 連接。 您可透過在應用程式中編寫三部份名稱或別名,來建立這種類型的連接。
[2] 應用程式引導的存取可讓 DB2 Universal Database for OS/390 或非 DB2 Universal Database for OS/390 要求程式 (如 DB2 Connect) 使用 DRDA 通訊協定, 與一個或多個 DB2 Universal Database for OS/390 或非 DB2 Universal Database for OS/390 應用程式伺服器 (如 DB2 Universal Database 及 DB2 Universal Database for AS/400) 連接 一次可與應用系統要求程式連接的應用程式伺服器的數目端視應用系統要求程式的 DB2 Universal Database for OS/390 的層次而定。 如果應用系統要求程式是 DB2 for MVS/ESA V2R3,則一次僅能連接一個應用程式伺服器。 您可透過在應用程式中編寫 SQL CONNECT 陳述式,來建立這種類型的連接。 如果應用系統要求程式是 DB2 for MVS/ESA V3R1 或更新版, 則一次可連接一個或多個應用程式伺服器。
[3] 應用程式引導及系統引導的存取可一起用來建立連接。 您無法在同一個緒中,使用 DRDA 及系統引導的儲存體,來進行連接。
如果架構中的所有系統均支援兩階段確定,則將支援分散式工作單元 (多個位置讀取及多個位置更新)。 如果並非所有系統均支援兩階段確定,則工作單元內的更新不是拘限於不支援兩階段確定的單一位置, 就是拘限於支援兩階段確定的位置的次集。
圖 14. DB2 Universal Database for OS/390 分散式連接
表 2 將比較 DB2 Universal Database for OS/390
分散式資料庫連接類型。
表 2. DB2 Universal Database for OS/390 分散式資料庫連接類型的比較
[1] 系統引導的存取 | [2] 應用程式引導的存取 (所有系統均具有兩階段確定) | [3] 應用程式引導及系統引導的存取 |
---|---|---|
所有友機均須是 DB2 Universal Database for OS/390 系統 | 可與任兩個 DRDA 系統交互連接 | 應用系統要求程式可以是任何 DRDA 系統; 而伺服器必須是 DB2 Universal Database for OS/390 系統 |
可直接與許多友機連接 | 可直接與許多友機連接 | 應用系統要求程式可直接與Application Server連接; Application Server可與許多 DB2 Universal Database for OS/390 次要伺服器連接 |
每一個 SQL 應用程式均可具有多個與每一個伺服器的交談 | 每一個 SQL 應用程式均可具有一個與每一個伺服器的交談 | SQL 應用程式具有一個與每一個伺服器的交談; DB2 Universal Database for OS/390 應用程式伺服器可對應用程式,與每一個伺服器建立許多交談 |
可同時存取在一個確定範圍內的本端及遠端資源 | 可同時存取在一個確定範圍內的本端及遠端資源 | 應用系統要求程式及Application Server可存取本端及遠端資料 |
在大型查詢及多個並行查詢中更有效率 | 在某個確定範圍內,執行若干次的 SQL 陳述式中更有效率 | 應用系統要求程式-Application Server的連接行為類似於 [2]; 次要伺服器的連接行為則類似於 [1] |
可支援靜態或動態 SQL,但第一次在確定範圍內執行時, 伺服器將以動態方式連結靜態 SQL | 可以發出靜態或動態 SQL | 應用系統要求程式及Application Server可發出靜態或動態 SQL; 次要伺服器支援靜態或動態 SQL,但第一次在確定範圍內執行它時, 將以動態方式連結靜態 SQL |
限制為 SQL INSERT, DELETE 及 UPDATE 陳述式,以及限制為支援 SELECT 的陳述式 | 可以使用可執行陳述式的系統所支援的任何陳述式 | 應用程式伺服器支援任何 SQL; 次要伺服器僅支援 DML SQL (例如,CREATE 或 ALTER) |
直到 DB2 Universal Database for OS/390 版本 5.1,提供使用者 ID 或通行碼的連接要求可能會失效, 理由碼為 SQL30082 ,但沒有其他說明,指出到底發生了什麼錯誤。
DB2 Universal Database for OS/390 版本 5.1 引進一個加強功能,提供擴充機密保護碼的支援。 指定擴充機密保護等於提供理由碼之外的診斷,如 (PASSWORD EXPIRED) 。
若要充分利用這個功能,擴充機密保護的 DB2 Universal Database for OS/390 ZPARM 安裝參數應該設定為 YES。 使用 DB2 Universal Database for OS/390 安裝畫面 DSN6SYSP,設定 EXTSEC=YES。 您也可以使用 DDF 畫面 1 (DSNTIPR),設定這個值。 預設值為 EXTSEC=NO。當通行碼過期時,使用 DB2 Connect 的 PC、UNIX、Apple Macintosh 和 Web 應用程式將會接收到錯誤訊息 SQL01404。
如果您想要提供 DB2 Universal Database 機密保護選項 AUTHENTICATION=CLIENT 的支援, 請使用 DB2 Universal Database for OS/390 安裝畫面 DSNTIP4 (DDF 畫面 2),將「已驗證 TCP/IP 機密保護」設定為 YES。
工作站 ODBC 和 Java 應用程式使用動態 SQL。這可能在某些安裝作業中, 造成安全問題。 DB2 Universal Database for OS/390 引進了新的連結選項DYNAMICRULES(BIND), 以容許在擁有者或連結者的授權下,執行動態 SQL。 請參閱 Command Reference,來查看如何透過 DB2 Connect 來指定 DYNAMICRULES
DB2 Universal Database 及 DB2 Connect 在 DB2CLI.INI 架構檔中 提供了一個新的 CLI/ODBC 架構參數 CURRENTPACKAGESET。 這應該設定為具有適當專用權的綱目名稱。 在進行應用程式的每一個連接之後,會自動發出 SET CURRENT PACKAGESET 綱目陳述式。
您可以使用「ODBC 管理程式」, 來更新 DB2CLI.INI。 請參閱安裝與架構補充,取得更進一步的資訊。
如果 SQL CONNECT 陳述式傳回訊息,指出使用者 ID 的通行碼已經過期, 則可以使用 DB2 Connect 版本 5.2 及更新的版本來變更該通行碼,而不需要登入 TSO。透過 DRDA, DB2 Universal Database for OS/390 可以為您變更通行碼。
使用者必須提供舊通行碼、新通行碼及驗證通行碼。 如果在 DB2 Connect Enterprise Edition 伺服器指定的機密保護是 DCS, 則變更通行碼的要求會送到 DB2 Universal Database for OS/390 資料庫伺服器; 如果所指定的機密保護為 SERVER,則會變更 DB2 Connect 伺服器的通行碼。
附加的好處就是不須要個別 LU 的定義。 如需詳細資訊, 請參閱 DB2 Connect Enterprise Edition 快速入門一書。