DB2 for MVS/ESA 施行 DRDA 應用系統要求程式支援, 作為 DB2 for MVS/ESA「分散式資料機能 (DDF)」的其中一部份。 DDF 可獨立地從本端 DB2 for MVS/ESA 資料庫管理機能停止 DDF, 但無法在缺乏本端 DB2 for MVS/ESA 資料庫管理支援下執行。
當 DB2 for MVS/ESA 作為「應用系統要求程式」時, 可以將系統上執行的應用程式連接到遠端施行「DRDA 應用程式伺服器」功能的 DB2 Universal Database、DB2 for MVS/ESA、 DB2 Universal Database for OS/390、DB2 Universal Database for AS/400 及 DB2 for VSE & VM 資料庫伺服器。
為了使 DB2 for MVS/ESA 應用系統要求程式能夠提供分散式資料庫存取, 您需要執行下列項目:
在分散式資料庫環境中,有許多處理需要與您的網路中的其他位置交換訊息。 為了使這個處理能夠正確地執行,您需要執行下列:
網路中的每一個程式均被指定一個 NETID 及 LU 名稱,以便當它連接至網路時, 您的 DB2 for MVS/ESA 應用系統要求程式必須具有一個 NETID.LUNAME。 因為 DB2 for MVS/ESA 應用系統要求程式已整合到本端 DB2 for MVS/ESA 資料庫管理系統中, 所以應用系統要求程式也必須具有 RDB_NAME。 在 DB2 for MVS/ESA 出版品中,DB2 for MVS/ESA將 RDB_NAME 稱為位置名稱。
將 DB2 for MVS/ESA 應用系統要求程式定義至 SNA 網路,方法如下:
在啟動期間,DB2 for MVS/ESA 將讀取 BSDS 來取得系統安裝參數。 儲存在 BSDS 的其中一個記錄稱為 DDF 紀錄,因為它含有 DDF 與 VTAM 連接時所用的資訊。這個資訊是由下列所組成的:
您可透過兩種方式,提供 DDF BSDS 資訊給 DB2 for MVS/ESA:
圖 3. DB2 for MVS/ESA 安裝畫面 DSNTIPR
+--------------------------------------------------------------------------------+ | 1 DDF STARTUP OPTION ===> AUTO NO (DDF not startable), | | AUTO (automatic start up), or | | COMMAND (start by command) | | 2 DB2 LOCATION NAME ===> SYDNEY The name other DB2s use to | | refer to this DB2 | | 3 DB2 NETWORK LUNAME ===> LUDBD1 The name VTAM uses to refer to this DB2| | 4 DB2 NETWORK PASSWORD ===> PSWDBD1 Password for connecting to other DB2s | | 5 RLST ACCESS ERROR ===> NOLIMIT Action on non-local RLST access error | | NOLIMIT - Run without limit | | NORUN - Do not run at all | | 1-5000000 - Limit in CPU service units | | PRESS: ENTER to continue END to exit HELP for more information | +--------------------------------------------------------------------------------+ |
圖 4 顯示用位置名稱 SYDNEY、LU 名稱 LUDBD1 及通行碼 PSWDBD1 來更新 BSDS 的方法。
//SYSADMB JOB ,'DB2 2.3 JOB',CLASS=A //* //* CHANGE LOG INVENTORY: //* UPDATE BSDS WITH //* - DB2 LOCATION NAME FOR SYDNEY //* - VTAM LUNAME (LUDBD1) //* - DB2/VTAM PASSWORD //* //DSNBSDS EXEC PGM=DSNJU003 //STEPLIB DD DISP=SHR,DSN=DSN230.DSNLOAD //SYSUT1 DD DISP=OLD,DSN=DSNC230.BSDS01 //SYSUT2 DD DISP=OLD,DSN=DSNC230.BSDS02 //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * DDF LOCATION=SYDNEY,LUNAME=LUDBD1,PASSWORD=PSWDBD1 //* |
當啟動 DDF (在啟動 DB2 for MVS/ESA 時自動啟動它, 或是透過 DB2 for MVS/ESA START DDF 命令) 時,它將與 VTAM 連接,將 LU 名稱及通行碼傳遞給 VTAM。 VTAM 會經由以 DB2 for MVS/ESA VTAM APPL 陳述式中所定義的值, 檢查 LU 名稱及通行碼 (如果需要 VTAM 通行碼的話) 來識別 DB2 for MVS/ESA 系統。 VTAM 通行碼係用來驗證 DB2 for MVS/ESA 是否有權使用 VTAM 系統上指定的 LU 名稱。 VTAM 通行碼不會透過網路來傳輸,且不會用來使網路中的其他系統與 DB2 for MVS/ESA 連接。
如果 VTAM 不需要一個通行碼,請在變更日誌清單公用程式上,略過PASSWORD= keyword。 沒有關鍵字指出不需要任何 VTAM 通行碼。
在您將 VTAM LU 名稱及通行碼定義至 DB2 for MVS/ESA 之後, 您需要以 VTAM 來登記這些值。 VTAM 將使用 APPL 陳述式來定義本端 LU 名稱。 圖 5顯示如何將 LU 名稱 LUDBD1 定義至 VTAM。
圖 5. DB2 for MVS/ESA APPL 定義的範例
DB2APPLS VBUILD TYPE=APPL * *--------------------------------------------------------------------* * * * APPL DEFINITION FOR THE SYDNEY DB2 SYSTEM * * * *--------------------------------------------------------------------* * LUDBD1 APPL APPC=YES, X AUTH=(ACQ), X AUTOSES=1, X DMINWNL=10, X DMINWNR=10, X DSESLIM=20, X EAS=9999, X MODETAB=RDBMODES, X PRTCT=PSWDBD1, X SECACPT=ALREADYV, X SRBEXIT=YES, X VERIFY=NONE, X VPACING=2, X SYNCLVL=SYNCPT, X ATNLOSS=ALL X |
有許多關鍵字可在 VTAM APPL 陳述式上使用。 關鍵字的意義將在 DB2 Administration Guide 中詳細討論。 在此討論的少許關鍵字將說出本書的主題。 圖 5中有興趣的關鍵字將在底下加以描述:
您不必在任何兩個分散式資料庫友機之間, 自動啟動所有 APPC 階段作業。 如果 AUTOSES 值少於競爭贏家限制 (DMINWNL),則 VTAM 將延遲啟動剩餘的 SNA 階段作業, 直到分散式資料庫應用程式需要它們為止。
如果友機無法支援 DSESLIM、DMINWNL 或 DMINWNR 參數上所要求的階段作業數目, 則 CNOS 處理將協議可被友機接受的這些參數的新值。
最好恆指定 SECACPT=ALREADYV, 因為每一個 DB2 for MVS/ESA 友機的 SNA 交談機密保護層次均取自於 DB2 for MVS/ESA 通信資料庫 (SYSIBM.SYSLUNAMES 表格的 USERSECURITY 直欄)。 SECACPT=ALREADYV 將給與您在選取 USERSECURITY 的值方面的最大彈性。
DB2 for MVS/ESA 不會限制您選擇 VERIFY 關鍵字。 在非託管網路中,建議 VERIFY=REQUIRED。 VERIFY=REQUIRED 將使得 VTAM 拒絕無法執行友機 LU 驗證的友機。 如果您選擇 VERIFY=OPTIONAL,則 VTAM 將僅對那些提供支援的友機, 執行友機 LU 驗證。
DSESLIM、DMINWNL 及 DMINWNR 容許您建立所有友機的預設 VTAM 階段作業限制數。 對具有特殊階段作業限制數需求的友機而言, SYSIBM.SYSLUMODES 可用來置換預設階段作業限制數。 例如,您可能想要指定適合於您的 OS/2 系統的 VTAM 預設階段作業限制數。 對其他友機而言,您可以在 SYSIBM.SYSLUMODES 表格中建立橫列, 來定義想要的階段作業限制數。 考慮這些範例值:
DSESLIM=4,DMINWNL=0,DMINWNR=4
這些參數容許每一個友機可透過 DB2 for MVS/ESA 建立階段作業,最多四個, 在其中友機是每一個階段作業上的競爭贏家。 因為 OS/2 將經由使 OS/2 成為階段作業上的競爭贏家, 來建立與 DB2 for MVS/ESA 的 LU 6.2 交談,所以您將取得很小的效能優點。 如果 OS/2 具有可用的競爭贏家階段作業,它不必要求允許,即可啟動新的 LU 6.2 交談。
當 DB2 for MVS/ESA 應用程式從遠端系統 DB2 for MVS/ESA 中要求資料時, 將搜尋通信資料庫表格,尋找有關遠端系統的資訊,包括下列的搜尋:
通信資料庫即是 DB2 for MVS/ESA 系統管理者所管理的 SQL 表格群組。 作為 DB2 for MVS/ESA 系統管理者,您必須使用 SQL,在通信資料庫中插入橫列, 來描述每一個可能的 DRDA 友機。 通信資料庫是由五個表格所組成的:
這個表格容許 DB2 for MVS/ESA 判斷 DB2 for MVS/ESA 應用程式所選取的每一個 RDB_NAME 的 LU 名稱及 TPN 值。 直欄為:
如果遠端系統需要其他 TPN 值,而非預設 TPN 值,則您必須在此提供這個值。
這個表格將定義遠端系統的網路屬性。 直欄為:
如果 MODESELECT 含有 'Y' 以外的值, 將對系統引導的存取要求,使用模式名稱 IBMDB2LM,以及對 DRDA 要求,使用模式名稱 IBMRDB。
MODESELECT 直欄容許您經由指定與模式名稱有關聯的 VTAM 服務程式類別 (COS), 來設定分散式資料庫要求的優先順序。
這個表格將用來定義每一個友機系統的 LU 6.2 階段作業限制數 (CNOS 限制數)。 直欄為:
在 CNOS 期間,將使用 CONVLIMIT 中所選取的值,把 DMINWNR 及 DMINWNL 值設定為 CONVLIMIT/2。
這個表格容許您對個別一般使用者及 DB2 for MVS/ESA 應用程式, 指定不同的模式名稱。 因為每一個 VTAM 模式名稱均可具有一個相關的服務程式類別 (COS),所以您可以使用這個表格, 依據 AUTHID、PLANNAME 及 LUNAME 組合,來指定網路傳輸優先順序。 直欄為:
將使用這個表格,經由提供通行碼、名稱轉換及來源檢查, 來管理一般使用者名稱。 DB2 for MVS/ESA 將一般使用者的名稱稱之為授權 ID。 其他大多數產品則將這個名稱稱為使用者 ID。
透過這個表格,您可以使用名稱轉換,強迫對 SNA 使用者 ID及 DB2 for MVS/ESA 授權 ID,使用不同的值。 名稱轉換處理容許用於送至遠端系統的要求 (發送端要求), 以及用於來自遠端系統的要求 (接收端要求)。 如果通行碼未加密,則在使用者 ID 及通行碼均傳送至遠端位置時, 這個表格將是一般使用者的通行碼的來源。 直欄為:
VTAM 即是 MVS 系統的通信管理程式。 VTAM 接受來自 DB2 for MVS/ESA 的 LU 6.2 動詞, 並且將這些動詞轉換為您可以透過網路來傳輸的 LU 6.2 資料串流。 為了使 VTAM 能與 DB2 for MVS/ESA 通信資料庫中所定義的友機應用程式進行通信, 您需要提供 VTAM 下列資訊:
當 DB2 for MVS/ESA 與 VTAM 進行通信時, 將容許 DB2 for MVS/ESA 僅傳遞一個 LU 名稱 (非 NETID.LUNAME) 給 VTAM,以識別想要的目的地。 這個 LU 名稱必須在本端 VTAM 系統所知道的 LU 名稱內是唯一的, 如此可容許 VTAM 依據 DB2 for MVS/ESA 所傳遞的 LU 名稱值,來判斷 NETID 及 LU 名稱。 當 LU 名稱在整個企業的 SNA 網路內是唯一的時,它將大大地簡化 VTAM 資源定義處理。 不過,這可能不會恆是如此。 如果您的 SNA 網路內的 LU 名稱不是唯一的,則您必須使用 VTAM LU 名稱轉換,為非唯一的 LU 名稱,建立正確的 NETID.LUNAME 組合。 這個處理將在 VTAM Network Implementation Guide 內的"Resource Name Translation"中加以描述。
用來定義遠端 LU 名稱的 VTAM 定義的位置及語法將高度依賴遠端系統如何以邏輯方式及實體方式, 與本端 VTAM 系統進行連接而定。
您定義的 VTAM 模式表格登錄將指定 RU 大小及速率計數。 無法正確地定義這些值可能會對所有 VTAM 應用程式造成負面影響。
在選擇 RU 大小、階段作業限制數及速率計數之後,考慮這些值可對現存的 VTAM 網路造成的影響將是極端的重要。 當您安裝新的分散式資料庫系統時,您應該複查下列項目:
如果您指定 NCP MAXBFRU 參數,選取一個可容納 RU 大小加上 29 個位元組後的大小的值。 對 NCP 而言,MAXBFRU 參數定義可用來保留 PIU 的 VTAM I/O 緩衝區的數目。 如果您選擇 IOBUF 緩衝區大小為 441,則 MAXBFRU=10 將正確地處理 4K RU,因為 10*441 大於 4096+29。
當遠端系統代表 SQL 應用程式,執行分散式資料庫處理時, 它必須滿足應用系統要求程式、Application Server及連接它們的網路的機密保護需求。 這些需求將落在底下的一個或多個種類中:
在 MVS 系統上,將對一般使用者指定 1 到 8 個字元的使用者 ID。 這個使用者 ID 必須在特殊 MVS 系統內是唯一的,但可能在整個 SNA 網路內不是唯一的。 例如,在 NEWYORK 系統上,可有一個名為 JONES 的使用者,而在 DALLAS 系統上, 也有另一個名為 JONES 的使用者。 如果這兩個使用者是同一個人,將不會有任何衝突。 不過,如果 DALLAS 中的 JONES 不同於 NEWYORK 中的 JONES, 則 SNA 網路 (以及該網路內的分散式資料庫系統) 無法區分 NEWYORK 中的 JONES 及 DALLAS 中的 JONES。 如果您未更正這種情況,DALLAS 中的 JONES 可使用已授與 NEWYORK 系統中的 JONES 的專用權。
欲消除命名衝突,DB2 for MVS/ESA 將提供一般使用者名稱轉換的支援。 當 DB2 for MVS/ESA 應用系統要求程式中的應用程式產生一個分散式資料庫要求, 則當通信資料庫指定需要發送端名稱轉換時,DB2 for MVS/ESA 將執行名稱轉換。 如果選取了發送端名稱轉換,則 DB2 for MVS/ESA 恆會強迫隨著每一個發送端分散式資料庫要求, 傳送一個通行碼。
DB2 for MVS/ESA 中的發送端名稱轉換是經由將 SYSIBM.SYSLUNAMES 表格中的 USERNAMES 直欄設定為 'O' 或 'B' 來啟動。 如果 USERNAMES 設定為 'O',將對發送端要求執行一般使用者名稱轉換。 如果 USERNAMES 設定為 'B',將同時對接收端及發送端要求執行一般使用者名稱轉換。
因為 DB2 for MVS/ESA 授權要依靠一般使用者的使用者 ID 及 DB2 for MVS/ESA 規劃或資料包擁有者的使用者 ID 兩者來完成,所以將對一般使用者的使用者 ID、 規劃擁有者的使用者 ID 及資料包擁有者的使用者 ID 執行一般使用者名稱轉換。 2 名稱轉換處理將依下列順序搜尋 SYSIBM.SYSUSERNAMES 表格, 以找出符合下列其中一種型樣的橫列 (TYPE.AUTHID.LUNAME):
如果找不到相符的橫列, DB2 for MVS/ESA 將拒絕分散式資料庫要求。 如果找到一列,則 NEWAUTHID 直欄中的值將作為授權 ID。(空白的 NEWAUTHID 值指出將使用原始名稱, 不做任何轉換。)
考慮稍早所討論的例子。 當 JONES 向 DALLAS 產生分散式資料庫要求時, 您想要給與 NEWYORK 中的 JONES 不同的名稱 (NYJONES)。 在這個例子中,假定 JONES 所使用的應用程式將被 DSNPLAN (DB2 for MVS/ESA 計劃擁有者) 所擁有, 而且當這個使用者 ID 傳送至 DALLAS 時,您不需要轉換它。 在通信資料庫中提供名稱轉換時所需的 SQL 陳述式將顯示在圖 6中。
INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', 'O'); INSERT INTO SYSIBM.SYSLOCATIONS (LOCATION, LOCTYPE, LINKNAME, LINKATTR) VALUES ('DALLAS', ' ', 'LUDALLAS', ''); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'JONES', 'LUDALLAS', 'NYJONES', 'JONESPWD'); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'DSNPLAN', 'LUDALLAS', ' ', 'PLANPWD'); |
結果通信資料庫表格將顯示在圖 7中:
在應用系統要求程式選取一般使用者名稱,來代表遠端應用程式後, 應用系統要求程式必須提供所需的 LU 6.2 網路機密保護資訊。 LU 6.2 提供三種主要網路機密保護特性:
因為Application Server負責管理資料庫資源, 所以Application Server將指出應用系統要求程式需要的哪些網路機密保護特性。 您必須經由設定 SYSIBM.SYSLUNAMES 表格的 USERNAMES 直欄, 來反映應用程式伺服器的需求,將每一個Application Server的交談層次機密保護需求記錄在 SYSIBM.SYSLUNAMES 表格中。
可能的 SNA 交談機密保護選項為:
因為 DB2 for MVS/ESA 將一般使用者名稱轉換與發送端交談機密保護繫在一起, 所以當啟動一般使用者名稱轉換時,它將不容許您使用 SECURITY=SAME。
視在 SYSIBM.SYSLUNAMES 表格中所指定的選項而定, DB2 for MVS/ESA 將從兩個不同的來源,取得一般使用者的通行碼。
圖 8 定義 SMITH 及 JONES 的通行碼。 例子中的 LUNAME 直欄含有空白,所以這些通行碼將用於 SMITH 或 JONES 嘗試存取的任何遠端系統。
INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'JONES', ' ', ' ', 'JONESPWD'); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'SMITH', ' ', ' ', 'SMITHPWD'); |
DB2 for MVS/ESA 將搜尋 SYSIBM.SYSUSERNAMES 表格,判斷將傳輸至遠端系統的使用者 ID (NEWAUTHID 值)。 這個已轉換名稱將用於取出的 RACF 通行碼。 如果您不想要轉換名稱,您必須在 SYSIBM.SYSUSERNAMES 中建立橫列,使名稱傳送出去,而不必進行轉換。 圖 9 容許要求傳送至 LUDALLAS 及 LUNYC, 而不必轉換一般使用者的名稱 (使用者 ID)。
INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', ' ', 'LUNYC', ' ', ' '); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('O', ' ', 'LUDALLAS', ' ', ' '); |
應用系統要求程式可以參與分散式資料庫機密保護中的一種方式就是透過發送端名稱轉換, 如稍早在選取一般使用者名稱中所陳述的一般。 您可以使用發送端名稱轉換,依據產生要求的一般使用者的身分, 以及產生要求的應用程式,來控制每一個Application Server的存取。 DB2 for MVS/ESA 應用系統要求程式促成分散式系統機密保護的其他方法就是:
當您連結資料包時,請使用 ENABLE/DISABLE 選項, 指定 TSO, CICS/ESA, IMS/ESA 或遠端 DB2 for MVS/ESA 子系統是否將使用資料包。
MVS 系統上的外部機密保護子系統是由 RACF 及其他提供一個與 RACF 相容的介面的產品所提供的。 DB2 for MVS/ESA 應用系統要求程式沒有外部機密保護子系統的任何直接呼叫, 但網路機密保護中所描述的已加密通行碼支援除外。 不過,在下列情況中,外部機密保護子系統將以間接方式被使用於應用系統要求程式中:
DB2 for MVS/ESA 附有預設安裝編碼字集識別字 (CCSID) 500。 這個預設值可能不適用於您的安裝作業。
當安裝 DB2 for MVS/ESA 時,您必須將安裝 CCSID 設定為所建立的字元的 CCSID, 並經由您的位置中的輸入裝置傳送至 DB2 for MVS/ESA。 這個 CCSID 一般說來是由您使用的國家語言來決定。 如果安裝 CCSID 不正確,則字元轉換將產生不正確的結果。 請參閱 DB2 Connect User's Guide, 取得每一個國家或國家語言所支援的 CCSID 的列示。
您必須確定您的 DB2 for MVS/ESA 子系統, 具有將每一個應用程式伺服器的 CCSID 轉換為您的 DB2 for MVS/ESA 子系統的安裝 CCSID 的能力。 DB2 for MVS/ESA 將提供最常見來源及目標 CCSID 組合的轉換表格, 但不提供每一個可能組合的轉換表格。 必要時,您可以新增至可用轉換表格集及轉換常式集。 請參閱 DB2 Administration Guide, 取得關於 DB2 for MVS/ESA 字元轉換的詳細資訊。