DB2 for VM 將實施 DRDA 應用系統要求程式支援,作為與應用程式一起常駐在一般使用者虛擬機器上的資源配接卡的一部份。 您可以使用應用系統要求程式支援,即使當本端資料庫管理程式的虛擬機器不在作用中時,也是如此。 您可以經由以 protocol(auto) 或 protocol(drda),執行 SQLINIT EXEC,來啟動 DRDA 應用系統要求程式支援。 (請參閱前置處理或執行應用程式的選項)。
當 DB2 for VM 作為應用系統要求程式時,它可以與 DB2 for VM Application Server或任何其他支援 DRDA 架構的產品伺服器連接。 為了使 DB2 for VM 應用系統要求程式能夠提供分散式資料庫存取,您需要知道如何執行下列事項:
在分散式資料庫環境中,有許多處理需要訊息,以便與您的網路中的其他位置進行資訊交換。 欲正確地執行這個處理,請採取下列步驟:
DB2 for VM 應用系統要求程式與 DB2 for VM 應用程式伺服器彼此無關。 DB2 for VM 應用系統要求程式直接將連接要求引導至本端或遠端應用程式伺服器中。 不過,它不會將自己定義為接收端連接要求的目標。 僅有 DB2 for VM 應用程式伺服器可接受 (或拒絕) 接收端連接要求。 因此,DB2 for VM 應用系統要求程式不會替自己識別 RDB_NAME 及 TPN,如同 DB2 Universal Database for OS/390 一般。
將 DB2 for VM 應用系統要求程式定義至 SNA 網路,方法如下:
應用系統要求程式必須已定義閘道名稱 (例如,LU 名稱),方可將它的發送端要求遞送至網路。 圖 30顯示這樣的例子。 這些陳述式常駐在 VTAM 虛擬機器上。 當啟動 VTAM 時,將向網路識別閘道,但不會啟動它,直到控制 AVS 虛擬機器啟動為止。 每一個 AVS 虛擬機器均可以在 VM 主電腦上,定義多個閘道。
VBUILD TYPE=APPL ************************************************************* * * * Gateway Definition for Toronto DB2 for VM System * * * ************************************************************* TORGATE APPL APPC=YES, X AUTHEXIT=YES, X AUTOSES=1, X DMINWNL=10, X DMINWNR=10, X DSESLIM=20, X EAS=9999, X MAXPVT=100K, X MODETAB=RDBMODES, X PARSESS=YES, X SECACPT=ALREADYV, X SYNCLVL=SYNCPT, X VPACING=2 |
底下列示描述將適用於本手冊中主題的 VTAM APPL 陳述式關鍵字。 (VTAM APPL 陳述式可支援的關鍵字比在此顯示的關鍵字還要多)。
DB2 for VM 不會限制您選擇 VERIFY 關鍵字,但您將執行的 VTAM 版本可以影響這個選擇。 在非託管網路中,DB2 for VM 建議編寫 VERIFY=REQUIRED。 如果您選擇 VERIFY=OPTIONAL,則 VTAM 將僅對那些提供支援的友機,執行友機 LU 驗證。VERIFY=REQUIRED 將使得 VTAM 拒絕無法執行友機 LU 驗證的友機。
從在同一個主電腦 (或在同一個 TSAF 內的其他主電腦) 上,以 DB2 for VM 應用系統要求程式來作業的 AVS 虛擬機器中執行閘道啟用。 將 AGW ACTIVATE GATEWAY GLOBAL 命令包括在 AVS 機器的設定檔中,或是從 AVS 機器主控台中,以交談方式發出這個命令,以便每一次啟動 AVS 時,即會自動啟用閘道。
確定 AVS 閘道機器的 CP 目錄中的 MAXCONN 值大的足以支援所需的階段作業的總數。
從 AVS 虛擬機器中發出 AGW DEACTIVE GATEWAY 命令,來停用閘道。 閘道定義仍會留下來。 可隨時使用 AGW ACTIVATE GATEWAY GLOBAL 命令,再次啟用閘道
請參閱 VM/ESA Connectivity Planning, Administration and Operation,取得 AVS 命令格式。
當要求進入網路時,VTAM 將提供 應用系統要求程式 常駐的主電腦 (或同一個 TSAF 集成內的其它主電腦) 的 NETID。NETID 儲存在 CMS 檔 SNA NETID,以及常駐在應用系統要求程式所存取的 DB2 for VM 產品磁碟。 在建立隨著每一個交談流動的 LUWID 時,應用系統要求程式將使用這個 NETID。
您必須經由登記使 VTAM 能夠找出想要網路目的地的 LU 名稱,來定義遠端系統。 當 AVS 啟動時,它將識別在透過網路,將 SQL 要求遞送至 VTAM 時,可供使用的廣域閘道名稱 (LU 名稱)。 閘道名稱在本端 VTAM 系統所辨識的一組 LU 名稱內必須是唯一的,以便接收端及發送端要求均可遞送至適當的 LU 名稱。 這是確定閘道名稱在整個使用者網路中唯一的最好方法。 這將簡化 VTAM 資源定義處理。
當 DB2 for VM 應用程式從遠端系統中要求資料時,DB2 for VM 將搜尋「CMS 通信目錄」,取得與遠端系統有關的下列資訊:
CMS 通信目錄即是具有檔案類型 NAMES 的 CMS 檔,它是由 DB2 for VM 系統管理者所建立及管理的。 作為管理者,您可以使用 XEDIT 來建立這個檔案,並新增想要的登錄,來識別每一個可能的 DRDA 友機。 目錄中的每一個登錄均是標示及其相關值的集合。 圖 31顯示範例登錄。 當執行搜尋時,搜尋鍵將與檔案中的每一個登錄的 :dbname 標示值作比較,直到找到相符值或到達檔案的尾端為止。 在圖 31的例子中,Toronto 中的銷售經理想要經由從遠端存取 MONTREAL_SALES 資料庫,來存取資料,以建立 Montreal 分公司的每月銷售報告。
+--------------------------------------------------------------------------------+ | SCOMDIR NAMES A1 V 132 Trunc=132 Size=10 Line=1 Col=1 Alt=8 | |====> | |00001 :nick.MTLSALES | |00002 :tpn.SALES | |00003 :luname.TORGATE MTLGATE | |00004 :modename.BATCH | |00005 :security.PGM | |00006 :userid.SALESMGR | |00007 :password.GREATMTH | |00008 :dbname.MONTREAL_SALES | |00009 | +--------------------------------------------------------------------------------+ |
:tpn 標示識別啟動Application Server的異動程式名稱。 :luname 標示的第一部份將識別用來取得 SNA 網路 的存取的 AVS 閘道 (本端 LU)。 第二部份識別遠端 LU 名稱。 :modename 標示將識別可定義在本端及遠端 LU 之間所配置的階段作業特性的 VTAM 模式。 要求單元 (RU) 大小、 速率及服務程式類別 COS) 即是如此特性的例子。 :security 標示指出將在使應用系統要求程式與Application Server連接的交談上使用的機密保護層次。
CMS 通信目錄位在可供特殊 VM 系統上所有應用系統要求程式存取的公用系統磁碟上。 任何需要透過 VTAM 的遠端存取的程式或產品均可使用 CMS 通信目錄。
您可以存取兩種層次的 CMS 通信目錄:系統層次及使用者層次。 例如,您可以在可供特殊 VM 系統上所有應用系統要求程式存取的公用系統磁碟上,建立一個系統層次目錄。 您也可以建立自己的使用者層次目錄,來置換現存的登錄,或是引進未出現在系統層次目錄中的新登錄。 使用者層次目錄首先將被搜尋,而且如果搜尋失敗,將搜尋系統層次目錄。 系統層次目錄是使用者層次目錄的擴充; 僅在使用者層次目錄中找不到值時,才會搜尋它。
這些目錄的每一個將向應用程式識別,且會透過 CMS SET COMDIR 命令來啟動。 例如,您可以使用下列命令順序,來識別系統及使用者層次目錄 (分別位在 S 及 A 迷你碟),但選擇僅啟動系統層次目錄來進行搜尋:
SET COMDIR FILE SYSTEM SCOMDIR NAMES S SET COMDIR FILE USER UCOMDIR NAMES A SET COMDIR OFF USER
「CMS 通信目錄」將在 VM/ESA Connectivity Planning, Administration and Operation中詳細描述 CMS SET COMDIR 命令將在 VM/ESA CMS Command Reference中加以描述
在 VM 環境中,元件的結合將執行通信管理。 在非類似 DRDA 系統之間的通信中所包括的元件為 APPC/VM、「CMS 通信目錄」、TSAF、AVS 及 VTAM。
APPC/VM 為 DB2 for VM 應用系統要求程式用來要求通信服務程式的 LU 6.2 組合器層次 API。 CMS 通信目錄將提供分散式友機系統的遞送及機密保護資訊。 AVS 將啟動閘道,並把發送端 APPC/VM 流程轉換為 APPC/VTAM 流程,以及把接收端 APPC/VTAM 流程轉換為 APPC/VM 流程。
APPC/VM、TSAF 及 AVS 將依賴「CMS 通信目錄」、 VTAM 及 *IDENT,把要求遞送至適當的 DRDA 友機。
為了使 VTAM 能與「CMS 通信目錄」中所識別的友機應用程式進行通信,您必須提供 VTAM 下列資訊:
當應用系統要求程式使用 AVS,與遠端應用程式伺服器進行通信時,將起始一個連接。 如果這個連接使得已建立的階段作業限制數被超出,則 AVS 將延遲連接並將它置於擱置狀態中,直到階段作業變成可使用為止。 當階段作業變成可使用時,AVS 將配置階段作業上已擱置的連接,且控制權將傳回給使用者應用程式。 欲避免這種情況,經由增加階段作業限制數,以容許額外的連接,來規劃高峰時的用量。 確定 AVS 閘道機器的 CP 目錄中的 MAXCONN 值大的足以支援高峰時 APPC/VM 連接的數目。
您在 VTAM 模式表格中所定義的登錄將指定要求單元 (RU) 大小及速率計數。 無法正確地定義這些值可能會對所有 VTAM 應用程式造成負面影響。
在選擇要求單元 (RU) 大小、階段作業限制數及速率計數後,考慮這些值可對您的現存 SNA 網路 造成的影響。 當您安裝新的分散式資料庫系統時, 您應該複查下列項目:
如果您指定 NCP MAXBFRU 參數,選取一個可容納 RU 大小加上 29 個位元組後的大小的值。 對 NCP 而言,MAXBFRU 參數定義可保留 PIU 的 VTAM I/O 緩衝區的數目。 如果您選擇 IOBUF 緩衝區大小為 441,則 MAXBFRU=10 將正確地處理 4K RU,因為 10*441 大於 4096+29。
DB2 for VM 應用系統要求程式可能未安裝 DRDA 支援。 請遵循下列步驟,為 DRDA 通信準備 DB2 for VM 應用系統要求程式:
請參閱 DB2 for VM System Administration 手冊,取得詳細資訊。
當遠端系統代表 SQL 應用程式,執行分散式資料庫處理時,它必須滿足應用系統要求程式、Application Server及連接它們的網路的機密保護需求。 這些需求將落在底下的一個或多個種類中:
在 SQL 及 LU 6.2 中,將指定一個 1 到 8 個字元的使用者 ID 給一般使用者。 這個使用者 ID 值必須在特殊作業系統內是唯一的,但在整個 SNA 網路內可以不必是唯一的。 例如,在 TORONTO 系統上,可有一個名為 JONES 的使用者,而在 MONTREAL 系統上,也有另一個名為 JONES 的使用者。 如果這兩個使用者是同一個人,將不會有任何衝突。 不過,如果 TORONTO 中的 JONES 不同於 MONTREAL 中的 JONES,則 SNA 網路 (以及該網路內的分散式資料庫系統) 將無法區分 TORONTO 中的 JONES 及 MONTREAL 中的 JONES。 如果您未採取任何步驟來阻止這種情況,則 TORONTO 中的 JONES 可使用已授與 MONTREAL 中的 JONES 的專用權,反之亦然。
欲消除命名衝突,DB2 for VM 將提供一般使用者名稱轉換的支援。 不過,系統不強制使用者 ID 的轉換。 如果需要系統強制的轉換,您應該確定在應用程式伺服器中,執行適當的接收端轉換。
使用 CMS 通信目錄執行發送端轉換。 CMS 通信目錄中須有一個登錄指定 :security.PGM。 在這種情況中,:userid 與 :password 標示中的對應值將流向連接要求中的遠端位置 (Application Server)。
經由建立圖 32中所顯示的登錄,當他與 MONTREAL 系統上的 MONTREAL_SALES_DB Application Server連接時,具有本端 (TORONTO) 系統上的 ID JONES 的使用者將對映至使用者 ID JONEST。 在這種情況中,將消除使用者 ID 的不確定性。
+--------------------------------------------------------------------------------+ | UCOMDIR NAMES A1 V 132 Trunc=132 Size=10 Line=1 Col=1 Alt=8 | |====> | |00001 :nick.MTLSALES | |00002 :tpn.SALES | |00003 :luname.TORLU MTLGATE | |00004 :modename.BATCH | |00005 :security.PGM | |00006 :userid.JONEST | |00007 :password.JONESPW | |00008 :dbname.MONTREAL_SALES_DB | |00009 | +--------------------------------------------------------------------------------+ |
在遠端位置 (Application Server) 中選取一般使用者名稱,來代表應用系統要求程式後,應用系統要求程式必須提供所需的 LU 6.2 網路機密保護資訊。 LU 6.2 提供三種主要網路機密保護機制:
因為應用程式伺服器負責管理資料庫資源,所以應用程式伺服器將指出應用系統要求程式必須提供的網路機密保護機制。 您必須在 :security 標示中設定適當的值,將應用程式伺服器的機密保護需求記錄在應用系統要求程式的通信目錄中。
DRDA 支援的 SNA 交談層次機密保護選項為:
DB2 for VM 不會支援通行碼暗碼化。 通行碼可以在 :password 標示中加以指定,或是可以使用 APPCPASS 目錄陳述式,將它儲存在一般使用者的 CP 目錄登錄。 如果您想要取得通行碼的最大機密保護程度,建議您使用 APPCPASS 陳述式。 如果未在 CMS 通信目錄登錄中指定通行碼,將搜尋使用者系統 (VM) 目錄登錄,取得 APPCPASS 陳述式。
VM 提供 APPCPASS 陳述式,使您取得將與Application Server連接的應用系統要求程式所使用的使用者 ID 及通行碼的最大機密保護程度。 APPCPASS 是有彈性的,它容許您用下列其中一種方法,儲存機密保護資訊:
圖 33 描述使用者 ID 將儲存在使用者的通信目錄,以及通行碼將儲存在使用者的 VM 目錄登錄中的情況。 在通信目錄登錄中,使用者 ID 將設定為 MTLSOU,但不設定通行碼。 通行碼將儲存在使用者的 VM 目錄登錄中。
+--------------------------------------------------------------------------------+ | UCOMDIR NAMES A1 V 132 Trunc=132 Size=8 Line=1 Col=1 Alt=8 | |====> | |00001 :nick.MTLSALES | |00002 :tpn.SALES | |00003 :luname.TORGATE MTLGATE | |00004 :modename.BATCH | |00005 :security.PGM | |00006 :userid.MTLSOU | |00007 :password. | |00008 :dbname.MONTREAL_SALES_DB | |00009 | +--------------------------------------------------------------------------------+ |
當 APPC/VM 使用交談 SECURITY=PGM,在應用系統要求程式與Application Server之間起始連接時,它將讀取 :userid 及 :password 標示值,並將它們傳遞給Application Server。 如果這兩個標示的一個或兩個設定為空白,將搜尋使用者的 VM 目錄登錄,取得遺失的資訊。 在這個情況中,您必須在 VM 目錄登錄中,具有如下的 APPCPASS 陳述式:
APPCPASS TORGATE MTLGATE MTLSOU Q6VBN8XP
這個陳述式告訴 APPC/VM,透過 (本端) AVS 閘道 TORGATE 要求連接的使用者 (應用系統要求程式)、 名為 MTLGATE 的友機 LU,以及使用者 ID MTLSOU 應該將通行碼 Q6VBN8XP 傳送至Application Server。 Application Server中的兩個識別片斷認識使用者。
將 APPCPASS 陳述式置於 VM 目錄中不是一般使用者的作業。 一般使用者必須透過 VM 系統設計師,置放一個要求來做到這一點。
關於交談層次機密保護及 APPCPASS 陳述式的詳細資訊,請參閱 VM/ESA Connectivity Planning, Administration, and Operation。
作為 DRDA 的整體分散式資料庫機密保護架構的一部份,應用系統要求程式可以扮演一個角色,來控制哪些一般使用者被容許產生分散式資料庫要求。 在 DB2 for VM 中,應用系統要求程式可用三種方法,參與分散式資料庫機密保護:
VM 系統上的外部機密保護子系統是由 RACF 及功能相等且提供一個與 RACF 相容的介面的產品所提供的。 DB2 for VM 應用系統要求程式不會直接聯繫外部機密保護子系統。 外部機密保護子系統不是用來提供交談層次機密保護的通行碼。 如果您選擇使用階段作業層次機密保護,則在驗證友機 LU 時,VTAM 將呼叫外部機密保護子系統,來驗證遠端 LU 名稱的身分。
應用系統要求程式必須具有適當的預設 CHARNAME 及 CCSID 值。 選擇正確的值將確定字元資料表示法的完整性,並減少與 CCSID 轉換有關聯的額外效能執行時間。
例如,如果您的 DB2 for VM 應用系統要求程式是以代表美式英文的字碼頁 37 及字集 697(CP/CS 37/697) 來建立的,則應用系統要求程式應該將預設 CHARNAME 設定為 ENGLISH。 這是因為 CP/CS 37/697 對應於 CCSID 37,亦即使 CHARNAME 對應於 ENGLISH。
新安裝或移轉的系統的預設 CHARNAME 為 INTERNATIONAL,且 CCSID 為 500。 這可能對您的安裝作業不正確。 欲顯示現行預設 CCSID 的值,請使用下列命令:
SQLINIT QUERY
適用於應用系統要求程式的 CCSID 值可能是一個不被應用程式伺服器中的轉換表格所支援的值。 如果是這種情況,您可以經由執行下列其中一項來建立連接:
應用系統要求程式將使用以 CP/CS 37/697 定義的控制器。 應用程式伺服器不支援來自 CCSID 37 的轉換,但的確支援來自 CCSID 285 (這是適用於 SQL/DS 的 CHARNAME UK-ENGLISH) 的轉換。
如果將變更應用系統要求程式,以便使用 CHARNAME 的預設值 UK-ENGLISH (及 CCSID 285),將不會維護資料完整性。 例如,在應用程式伺服器表示英鎊符號字元 (£) 之處,應用系統要求程式會顯示一個貨幣符號 ($)。其他字元可能也會不同。
欲變更 DB2 for VM 應用系統要求程式的 CCSID 值,您必須指定 SQLINIT EXEC 的 CHARNAME 參數。 請參閱 DB2 for VM System Administration 手冊,取得詳細資訊。
適用於應用程式伺服器的 CCSID 值可能是一個不被應用系統要求程式中的轉換表格所支援的值。 如果是這種情況,您可以經由執行下列其中一項來建立連接:
下列核對清單將彙總啟用「DRDA 應用系統要求程式」進行 DRDA 通信所需的步驟,從下列假定開始:您的 VM 系統已透過 ACF/VTAM 來安裝,作為它的電傳處理存取方法,以及將與遠端系統進行通信所需的 VTAM 定義,如 NCP 定義已完成。