使用 Telnet 跳出點程式
使用結束程式,有經驗的程式設計師可以在應用程式期間建立自訂處理程序。 如果 Telnet 伺服器找到已登錄到伺服器其中一個跳出點的程式,它會使用跳出點所定義的參數來呼叫該程式。
結束點 是 Telnet 程式中的特定點,控制可能會傳遞至結束程式。 結束程式 是結束點將控制傳遞至其中的程式。
每一個結束點都有一個相關聯的程式設計介面,稱為 結束點介面。 跳出點會使用這個介面,在 Telnet 應用程式與跳出程式之間傳遞資訊。 每一個結束點都有唯一名稱。 每一個跳出點介面都有一個跳出點格式名稱,定義如何在 Telnet 應用程式與客戶撰寫的跳出程式之間傳遞資訊。
不同的結束點可以共用相同的結束點介面。 在這種情況下,多個結束點可以呼叫單一結束程式。
結束點效能
起始階段作業要求的 Telnet 伺服器回應時間包括伺服器呼叫、處理及傳回 QIBM_QTG_DEVINIT 跳出程式所需的任何時間。 如果您的跳出程式正在執行重要處理程序,則效能影響可能會導致在建立階段作業之前等待更長時間。 如果您想要修改使用者結束程式的預設 60 秒逾時值,您可以使用 ADDEXITPGM 指令來新增讀取為逾時值的使用者資料。 在下列範例中, PGMDTA 參數會將預設 60 秒逾時置換為 10 秒:
ADDEXITPGM EXITPNT(QIBM_QTG_DEVINIT) FORMAT(INIT0100)
PGMNBR(1) PGM(USEREXIT/DEVINIT2) REPLACE(*YES)
CRTEXITPNT(*NO) PGMDTA(*JOB *CALC 10)
透過登入視窗或其他 IBM® i 模型建立 Telnet 程式之後,不會影響效能。 當發生此情況時,跳出程式不再位於 Telnet 路徑中。 已建立的 Telnet 階段作業不會因 QIBM_QTG_DEVINIT 跳出程式而延遲。
沒有與中斷階段作業連線相關聯的使用者可見效能影響。 中斷連線表示您結束終端機模擬階段作業,而不是您登出並回到登入畫面。 如果您切斷連線,則會呼叫 QIBM_QTG_DEVTERM 跳出程式,它會對您的階段作業執行切斷處理。 使用者無法看到此狀況,因為它會在連線中斷之後發生。
工作管理
您可以使用 Telnet 跳出程式來解決金鑰工作管理問題。 這些問題包括能夠要求 QPADEVxxxx以外的裝置說明、開啟互動式虛擬工作站工作的工作管理控制門,以及將那些工作遞送至特定子系統。
子系統遞送及裝置名稱選擇
使用者可以利用更好的 Telnet 虛擬裝置名稱,並配置其互動式子系統來細分工作。 使用「新增工作站登錄 (ADDWSE)」指令即可完成此作業。 此指令可讓您指定子系統應該或不應該配置虛擬終端機裝置的特定名稱。
下列指令具有 QINTER 配置所有 QPADEV* 工作站,這表示所有此類裝置都會遞送至 QINTER 子系統:
ADDWSE SBSD(QINTER) WRKSTN(QPADEV*) AT(*SIGNON)
下列指令具有未配置所有 QPADEV* 工作站的 QINTER ,這表示這些裝置可以配置給不同的子系統:
ADDWSE SBSD(QINTER) WRKSTN(QPADEV*) AT(*ENTER)
使用者可以開發自己的裝置命名慣例,以細分工作。 例如,一種細分類型是將特定裝置遞送至兩個位置中的國家語言支援 (NLS) 相關子系統。
範例
這兩個使用者分別在芝加哥和紐約。 根據使用者的地理位置,會將使用者指派給芝加哥或紐約子系統。 此範例的性質包括:
- 芝加哥的 IP 位址以 1.2.3. * 開頭。
- 紐約的 IP 位址以 2.3.4. * 開頭。
- 為了讓所有芝加哥 Telnet 階段作業在芝加哥子系統中執行,會使用使用者結束程式。 結束程式會針對來自 1.2.3的所有 Telnet 連線,建立以 'CHICAGO' 開頭的虛擬裝置名稱。 使用者結束程式也會針對來自 2.3.4的所有連線,建立以 ' NEWNY' 開頭的虛擬裝置名稱。
- 使用者結束程式會為 IP 位址 1.2.3.47指派虛擬裝置名稱 'CHICAGO01'。 程式會為 2.3.4.48中的 IP 位址指派虛擬裝置名稱 'NEWYORK01'。 程式會連接變數組件 ('01'、'02' 等) 至根名稱 'CHICAGO' ,並在將裝置指派給現行使用者之前,檢查是否尚未使用該裝置。
若要確保虛擬裝置 CHICAGO01 進入子系統 Chicago ,而 NEWYORK01 進入子系統 New York ,請設定工作站項目如下:
ADDWSE SBSD(QINTER) WRKSTN(CHICAGO*) AT(*ENTER)
ADDWSE SBSD(QINTER) WRKSTN(NEWYORK*) AT(*ENTER)
ADDWSE SBSD(CHICAGO) WRKSTN(CHICAGO*) AT(*SIGNON)
ADDWSE SBSD(NEWYORK) WRKSTN(NEWYORK*) AT(*SIGNON)