AS/400 系統將實施 DRDA 應用程式要求程式支援, 作為 OS/400 作業系統的其中一部份。 因為應用程式要求程式支援是 OS/400 作業系統的一部份, 所以每當作業系統作用時,它也在作用。 在 DB2 Universal Database for AS/400 中,的確也有應用程式伺服器支援。
當 DB2 Universal Database for AS/400 充當應用程式要求程式時,它可以連接至任何支援 DRDA 的應用程式伺服器。 為了使 DB2 Universal Database for AS/400 應用程式要求程式能夠提供分散式資料庫存取, 您需要考慮下列項目:
應用系統要求程式必須能夠接受關聯性資料庫名稱,並將它轉換成網路參數。 AS/400 系統將使用關聯性資料庫目錄, 登記關聯性資料庫名稱及其對應的網路參數。 這個目錄將容許 AS/400 應用程式要求程式,傳遞所需的網路資訊, 以便能夠在分散式資料庫網路中建立通信。
在分散式資料庫環境中,有許多的處理需要訊息, 以便與網路中的其他位置進行資訊交換。 為了使這個處理能夠在 SNA 環境中正確地執行, 您需要進行下列:
在分散式資料庫網路中的每一個應用程式要求程式均須在它的「關聯性資料庫目錄」中, 具有一個代表它的本端關聯性資料庫的登錄, 以及一個代表應用程式要求程式將存取的每一個遠端關聯性資料庫的登錄。 在分散式資料庫網路中,任何僅作為應用程式伺服器的 AS/400 系統須在它的關聯性資料庫目錄中, 具有一個代表本端關聯性資料庫的登錄。 關於關聯性資料庫目錄的詳細資訊, 請參閱AS/400 Distributed Database Programming。
若要定義本端系統,藉由使用遠端位置名稱 *LOCAL 新增登錄到關聯性資料庫目錄, 來指定本端資料庫的名稱。 欲做到這一點,請使用「新增關聯性資料庫目錄登錄 (ADDRDBDIRE)」命令。 下列例子將顯示 ADDRDBDIRE 命令, 其中應用程式要求程式的資料庫的名稱為 ROCHESTERDB:
ADDRDBDIRE RDB(ROCHESTERDB) RMTLOCNAME(*LOCAL)
關於關聯性資料庫目錄指令的詳細資訊,請參閱 AS/400 Distributed Database Programming。
註: | 在最新版本的 OS/400 中,如果本端 RDB 名稱登錄在需要時卻不存在的話, 即自動建立。 網路屬性中的系統名稱將用作區域 RDB 名稱。 |
分散式 DB 網路中每一個應用程式伺服器也必須在它的 RDB 目錄中, 具有一個本端登錄。 此外,每一個遠端資料庫的登錄必須呈現在每一個應用程式要求程式的 RDB 目錄中。 欲建立這些登錄, 請:
在大多數情況中,唯一所需的資訊是遠端資料庫名稱, 而 OS/400 中的遠端位置名稱 4 。 當僅指定遠端位置名稱,將對其餘參數使用預設值。 系統將使用遠端位置名稱,來選取一個裝置說明。
如果有多個裝置說明含有相同的遠端位置名稱,而且需要一個特定裝置說明, 則關聯性資料庫目錄登錄中的本端位置名稱及遠端網路識別字的值應該符合裝置說明中的值。 如果在多個裝置說明中,使用相同的遠端位置名稱,則裝置說明的選取可能會變得相當複雜。 在每一個裝置說明中,使用唯一的遠端位置名稱,即可避免這種困惑。 遠端資料庫的異動程式名稱將預設為 X'07F6C4C2' 的 DRDA 預設異動程式名稱。
關聯性資料庫目錄中的通信資訊將用來建立與遠端系統的交談
針對 DB2 Universal Database for AS/400 版本 4.2 中支援的 TCP/IP 連接, 只需要遠端資料庫名稱及相關的 IP 位址與埠。 請參閱使用 TCP/IP 連接 DRDA 網路中的 DB2 Universal Database for AS/400。
本段將描述如何使用 APPN,在 AS/400 系統上架構通信。 AS/400 系統也容許進階的程式對程式通信 (APPC) 架構, 但這種架構不提供網路遞送支援。 AS/400 分散式資料庫可使用這兩種架構之一。 關於 APPC 架構的詳細資訊, 請參閱 OS/400 Communications Configuration。
AS/400 上的 AnyNet 支援將容許 APPC 應用程式能夠透過 TCP/IP 網路來執行。 隨後段落中的範例包括 DDM、「SNA 分送服務程式」、「警示」及「5250 透通顯示站」。 這些應用程式 (包括 DRDA) 均可以透過 TCP/IP 網路,加上某些額外架構, 而以原貌方式執行。 欲指定 AnyNet 支援,您可在 CRTCTLAPPC 命令的 LINKTYPE 參數上, 指定 *ANYNW。
關於透過 TCP/IP 的 APPC 的詳細資訊,請參閱 OS/400 Communications Configuration 及 OS/400 TCP/IP Configuration and Reference。 (請注意!DB2 Universal Database for AS/400 版本 4.2 中提供了 DRDA 通信的原始 TCP/IP 支援 請參閱使用 TCP/IP 連接 DRDA 網路中的 DB2 Universal Database for AS/400。)
APPN 將提供網路支援,以便容許 AS/400 系統能夠參與及控制系統網路, 而不需要傳統上大型電腦所提供的網路支援。 底下步驟將告訴您,如何架構一個 AS/400 系統, 來取得 APPN 支援
網路屬性含有:
線路說明將描述在 AS/400 系統與網路之間所使用的實體線路連接, 以及資料鏈結通訊協定。 使用下列命令,即可建立線路說明:
控制器說明將描述網路中的鄰近系統。 指出當建立控制器說明時,經由指定 APPN(*YES),來使用 APPN 支援。 使用下列命令,即可建立控制器說明:
如果在記號環或以太網路線路說明上的 AUTOCRTCTL 參數設定為 *YES, 則在系統透過記號環或以太網路線路,收到一個階段作業啟動要求時, 將自動建立一個控制器說明。
您可以使用服務程式類別說明,來選取通信路徑 (傳輸群組), 以及給與傳輸優先順序。 系統提供五個服務程式類別說明:
模式說明將給與階段作業特性及可用來協議本端及遠端位置之間所容許的值的階段作業的數目。 模式說明同時也會指向將用於交談的服務程式類別。 系統將附有數個已預先定義的模式:
裝置說明將提供本端與遠端系統之間的邏輯連接的特性。 如果將對具有 APPN 的主電腦系統執行 AS/400 系統,且 AS/400 系統將作為獨立式邏輯單位 (LU), 則您不必以人工方式建立裝置說明。 當建立階段作業時,AS/400 系統將自動建立裝置說明,並使它連接至適當的控制器說明。 如果 AS/400 系統是一個相依的 LU,則您必須使用「建立裝置說明 (CRTDEVAPPC)」 命令,以人工方式建立裝置說明。 在裝置說明中,指定 APPN(*YES),指出將使用 APPN。
如果需要額外的本端位置 (在其他系統上稱為 LU), 或需要 APPN 的遠端位置的特殊特性,則您將需要建立 APPN 位置列示。 本端位置名稱將是網路屬性中所指定的控制點名稱。 如果您需要 AS/400 系統的額外位置, 將需要 APPN 本端位置列示。 舉例來說,遠端位置的特殊特性即是遠端位置與本端位置是否不在同一個網路中。 如果這些情況存在,將需要 APPN 遠端位置列示。 經由使用「建立架構命令 (CRTCFGL)」命令, 來建立 APPN 位置列示。
您可以經由使用「轉接架構 (VRYCFG)」,或「使用架構狀態 (WRKCFGSTS)」命令,來啟動通信說明。 如果已啟動線路說明,則已連接至該線路的適當控制器及裝置也會啟動。 WRKCFGSTS 命令同時也可以用來每一個連接的狀態。
RU 大小及速率是由模式說明中所指定的值來控制的。 當您建立模式說明時,將提供 RU 大小及速率的預設值。 預設值為適用於大多數環境 (包括分散式資料庫) 的 AS/400 預估值。 如果對 RU 大小採取了預設值,則 AS/400 系統將估計最好的值來使用。 當 AS/400 系統將與支援合適速率的另一個系統進行通信時, 所指定的速率值僅是一個起點而已。 每一個系統將調整速率,不過端視系統處理已傳送給它的資料的能力而定。 對不支援合適速率的系統而言,將在階段作業啟動時協議速率值, 並在爾後的階段作業中保持不變。 關於詳細資訊, 請參閱 OS/400 Communications Configuration。
註:
關於如何架構以取得網路支援及使用位置列示的詳細資訊, 請參閱 OS/400 Communications Configuration 及 APPN Support。 欲取得顯示如何使用 CL 命令來定義系統架構的範例, 請參閱 AS/400 Distributed Database Programming。
當遠端系統代表 SQL 應用程式,執行分散式資料庫處理時, 它必須滿足應用程式要求程式、應用程式伺服器及連接它們的網路的機密保護需求。 這些需求將分為一個或多個種類,如下:
在 AS/400 系統上,一般使用者將被指定 1 到 10 個字元的使用者 ID, 這個 ID 對該系統必須是唯一的,但在網路內不必如此。 這個使用者 ID 即是在兩個資料庫之間建立連接時, 傳遞給遠端系統的使用者 ID。 欲避免網路中系統上的使用者 ID 彼此之間發生衝突, 常會先進行發送端名稱轉換,以解決這種衝突,然後再透過網路, 將它傳送出去。 不過,AS/400 系統不提供任何發送端名稱轉換, 來解決伺服器中可能的衝突。 這些衝突必須在應用程式伺服器中先解決,除非您在 AS/400 SQL CONNECT 陳述式上, 使用額外的 USER 及 USING 子句。 USER 是應用程式伺服器上的有效 ID,而 USING 則是使用者的對應通行碼。
在應用程式要求程式選取一般使用者名稱,來代表遠端應用程式後, 它必須提供所需的 LU 6.2 網路機密保護資訊。 LU 6.2 提供三種主要網路機密保護特性:
階段作業層次機密保護是透過 LU 對 LU 驗證來提供的。 每一個 LU 均具有一個關鍵字,它必須符合遠端 LU 中的關鍵字。 您可以在 CRTDEVAPPC 命令上的 LOCPWD 關鍵字上指定關鍵字。
因為應用程式伺服器負責管理資料庫資源, 所以應用程式伺服器將指出需要應用程式要求程式的哪些網路機密保護特性。 AS/400 機密保護管理者必須驗證每一個應用程式伺服器的機密保護需求, 以便它們僅需要 AS/400 應用程式要求程式支援。
底下是可能的 SNA 交談機密保護選項:
AS/400 系統沒有外部機密保護子系統。 所有機密保護將透過 OS/400 作業系統來處理,其處理方式將在下列段落系統機密保護中討論。
OS/400 作業系統將控制系統上所有物件的授權,這些物件包括程式、 資料包、表格、概略表及集成。
應用程式要求程式將控制常駐在應用程式要求程式上的物件之授權。 應用程式伺服器上的物件的機密保護是否將在應用程式伺服器中加以控制, 是依據從應用程式要求程式中所傳送的使用者 ID 而定。 傳送至應用程式伺服器的使用者 ID 與 AS/400 應用程式要求程式的使用者, 或 AS/400 SQL CONNECT 陳述式的 USER 子句中所給與的使用者 ID 有關聯。 例如,CONNECT TO rdbname USER userid USING password。
您可以使用物件權限 CL 命令或透過 SQL 陳述式 GRANT 與 REVOKE, 來管理物件的機密保護。 物件 CL 權限命令包括「授與物件權限 (GRTOBJAUT)」及「取消物件權限 (RVKOBJAUT)」。 這些命令可用於系統上的任何物件之上。 陳述式 GRANT 及 REVOKE 僅能用於 SQL 物件上:表格、概略表及資料包。 如果您需要變更其他物件 (如程式或集成) 的授權,請使用 GRTOBJAUT 及 RVKOBJAUT 命令。
在 AS/400 系統上輸入下列命令, 即可將程式 PGMA 的 *USE 權限授與使用者 USER1:
GRTOBJAUT OBJ(PGMA) OBJTYPE(*PGM) USER(USER1) AUT(*USE)
取消相同權限的命令:
RVKOBJAUT OBJ(PGMA) OBJTYPE(*PGM) USER(USER1) AUT(*USE)
*PGM 將本例子中的物件類型識別為程式。 *SQLPKG 用來在資料包上作業、 *LIB 用於集成,而 *FILE 則用於表格。
GRTOBJAUT 及 RVKOBJAUT 也可以用來阻止使用者建立程式及資料包。 一旦從任何用來建立程式的 CRTSQLxxx 命令 (其中,xxx = RPG、C、CBL、FTN 或 PLI) 中取消權限, 則使用者將無法建立程式。 如果取消 CRTSQLPKG 命令的權限,則使用者將無法從應用程式要求程式中或在應用程式伺服器上, 建立資料包。
例如,在 AS/400 系統上輸入下列命令, 即可將 CRTSQLPKG 命令的 *USE 權限授與使用者 USER1:
GRTOBJAUT OBJ(CRTSQLPKG) OBJTYPE(*CMD) USER(USER1) AUT(*USE)
這將影響應用程式要求程式上的 crtsqlpkg 的執行。 在應用程式伺服器上,這個命令將容許資料包的建立。
取消相同權限的命令為:
RVKOBJAUT OBJ(CRTSQLPKG) OBJTYPE(*CMD) USER(USER1) AUT(*USE)
當建立物件時,將給與它們預設授權。 依據預設值,將給與表格、概略表或程式的建立者那些物件的所有權限。 此外,依據預設值,將給與公用那些物件的權限同於它們 (公用) 對物件的檔案庫或集成所具有的權限。
關於系統機密保護的詳細資訊,請參閱 AS/400 Security - Reference。
支援 DRDA 的產品將在接收系統中,自動執行任何需要的轉換。 為了能夠自動執行,應用程式要求程式 CCSID 值必須是接收系統能支援的轉換值。
在應用程式要求程式上,您應該關心與下列有關的 CCSID:
OS/400 工作管理支援將把工作 CCSID 起始設定為使用者設定檔上所指定的 CCSID。 如果使用者設定檔 CCSID 值為 *SYSVAL, 則工作管理支援將從 QCCSID 系統值中取得 CCSID。 剛開始, 系統值 QCCSID 將設定為 CCSID 65535。 對從 DB2 Universal Database 中提供連接嘗試服務的工作的 CCSID 使用 65535 將使得連接嘗試失敗。 變更系統值 QCCSID 將影響整個系統,所以建議的動作就是變更工作的使用者設定檔的 CCSID, 而伺服器工作正是在這個設定檔下執行。 將工作的使用者設定檔的 CCSID 設定為適當值。 例如,使用 CCSID 37 代表「美式英文」。一般說來, 適當的選擇就是使用您將連接的 AS/400 的預設編碼字集識別字。
工作 CCSID 可經由使用「變更工作 (CHGJOB)」命令來變更。 或是對後續的工作使用「變更使用者設定檔 (CHGUSRPRF)」命令, 來變更使用者設定檔的 CCSID 值。 欲察看哪些 CCSID 對工作有效, 在 CL 程式中,使用「擷取工作屬性 (RTVJOBA)」命令取得現行工作 CCSID 另一種方式,就是使用「使用工作 (WRKJOB)」命令,然後在「使用工作」顯示畫面上, 選取選項 2,「顯示工作定義屬性」。
在建立檔案時,如果在「建立實體檔 (CRTPF)」或「建立原始實體檔 (CRTSRCPF)」命令上, 未明確地指定一個 CCSID,則資料庫實體檔將預設為預設工作 CCSID (可以不同於工作 CCSID)。 在 DB2 for AS/400 V3R1 之前,工作 CCSID 的預設值通常為 65535, 這個值不適合 DRDA 用法。 預設工作 CCSID 從未是 65535, 因此它是透過 DRDA 存取的實體檔的 CCSID 的更好選擇。
您可以使用「顯示檔案說明 (DSPFD)」命令, 來察看檔案的 CCSID,或是使用「顯示檔案欄位說明 (DSPFFD)」命令, 來檢視檔案欄位的 CCSID。
使用「變更實體檔 (CHGPF)」命令,即可變更實體檔的 CCSID。 如果有下列一個或多個情況存在的話,恆無法變更實體檔: