捷徑輸入編輯/遞送結束常式 (DBFHAGU0)

「捷徑輸入編輯/遞送」結束常式 (DBFHAGU0) 提供 IMS 使用「捷徑快速訊息處理程式 (EMH)」所需的最低支援層次。

具有極高交易率的 IMS 系統使用 EMH。 EMH 是一個效能選項,可透過對訊息長度及分段施加限制來加速訊息處理。 若要使用 EMH ,編輯/遞送常式必須接收來自「輸入」結束常式的控制,並判定送入訊息進行「捷徑」處理的資格。 範例結束程式提供使用「 IMS 捷徑」所需的最低支援層次。

子區段:

關於此常式

「捷徑 EMH」緩衝區是動態配置的,可能不會出現在項目中。 因此,視終端機類型而定, DBFHAGU0 可以在 EMH 緩衝區或佇列緩衝區中接收訊息。 不允許跳出常式將資料移出輸入位置。 如果訊息位於項目的佇列緩衝區中,則「捷徑」系統會將它移至 EMH 緩衝區。 在編輯輸入訊息時,應用程式不應增加超出任何訊息緩衝區的長度。

如果無法取得 EMH 緩衝區,則會將下列訊息傳送至輸入端:
DFS3971 Unable to process Fast Path due to EMH buffer shortage

下表顯示「捷徑輸入編輯/遞送」結束常式的屬性。

表 1. 捷徑輸入編輯/遞送結束常式屬性
屬性 說明
IMS 環境 DB/DC , DCCTL
命名慣例 您必須將此結束常式命名為 DBFHAGU0。
正在連結 如果 APPC/IMS 支援處於作用中狀態,則必須重新進入此結束常式。
包括常式 DBFHAGU0 是 IMS.SDFSRESL中個別鏈結的模組。 IMS 會在「捷徑」起始設定期間自動載入它。 如果 IMS 找不到 DBFHAGU0, IMS 會異常終止 ABENDU1011 ,並顯示下列訊息:
DFS2730A UNABLE TO LOAD FP INPUT ROUTING EXIT: DBFHAGU0
IMS 可呼叫服務

若要搭配使用 IMS 可呼叫服務與此常式,您必須發出起始設定呼叫 (DFSCSII0) ,以取得可呼叫服務記號及參數清單,在其中建置所需可呼叫服務的函數特定參數清單。 使用在 DFSCSII0 呼叫的「捷徑輸入編輯/遞送結束程式」參數清單偏移 X' 0 ' 找到的 ECB。 IMS會自動將此結束常式鏈結至 DFSCSI00 。 使用可呼叫服務不需要其他鏈結。

範例常式位置 IMS.SDFSSMPL (成員名稱 DBFHAGU0)。

展開常式

非「捷徑專用」的交易可以根據交易碼以外的某些條件,由展開的編輯/遞送常式導向至 EMH 處理。 例如,如果某些交易源自指定的實體或邏輯終端機,或它們參照訊息某些部分的內容 (例如,帳號) ,則可以將這些交易遞送至 EMH。 使用者提供的 DBFHAGU0 必須根據這類條件來開發適當的遞送碼。

搭配使用常式與共用 EMH 佇列

如果您的安裝使用共用 EMH 佇列,則 DBFHAGU0 可以將訊息放置在共用佇列結構上,以供 Sysplex 中任何共用 IMS 子系統處理。

您可以修改結束常式,為用來處理「捷徑」輸入訊息的應用程式指定應用程式名稱。 如果您未指定應用程式名稱,則「捷徑」會在本端 IMS 子系統中尋找交易或遞送碼。 如果輸入訊息找不到交易或遞送碼,則「捷徑」會拒絕輸入訊息。

您也可以指定 Sysplex 處理代碼,以決定如何處理訊息交易或遞送代碼。 可用的 Sysplex 遞送選項如下:
本端第一個
指定如果 IFP 區域可用,則在本端子系統上處理訊息。 如果沒有可用的 IFP 區域,則會將訊息傳遞至 EMH 佇列結構。 在訊息處理的跳出常式中指定的程式名稱會置換交易或遞送碼。 「本端優先」是預設值。
僅限本端
指定「捷徑」不會將訊息放在 EMH 佇列結構上。 在本端 IMS 子系統上處理「捷徑」輸入訊息。
僅廣域
指定「捷徑」將輸入訊息放在 EMH 佇列結構上。 處理輸入訊息的應用程式必須在所有共用 IMS 子系統上處於作用中。 如果應用程式不在作用中,「捷徑」會捨棄輸入訊息,並發出錯誤訊息。 在訊息處理的跳出常式中指定的程式名稱會置換交易或遞送碼。

建議: 若要避免「僅限本端」訊息的隱含優先順序高於「僅限本端」訊息,請在個別程式名稱下處理「僅限本端」及「僅限本端」訊息。 IMS 會將「僅限本端」訊息放置在平衡群組 (BALG) 佇列上,並將「最先本端」訊息放置在共用 EMH 佇列上。 當 IFP 區域變成可用時,它會先檢查 BALG 佇列中要處理的訊息,然後再檢查共用 EMH 佇列。 此順序提供隱含的優先順序給在相同程式中處理的「僅限本端」訊息。

限制

您必須根據 DBFHAGU0 範例 (位於 IMS.SDFSSMPL 程式庫中) 及此 小節中的準則,重寫此版本 IMS的「捷徑輸入編輯/遞送」結束常式。

結束常式無法將資料移出輸入位置。

結束常式不得增加訊息長度超過任何訊息緩衝區的長度。

與 IMS 通訊

IMS 使用進入和結束暫存器以及參數清單來與結束常式通訊。

登錄項目的內容

進入時,結束常式必須使用提供的儲存區來儲存所有暫存器。 暫存器包含下列:
登錄(L) 內容
1 標準結束程式參數清單的位址。
13 儲存區域位址。
14 將位址傳回至 IMS。
15 結束常式的進入點位址。

此結束常式使用第 1 版標準結束程式參數清單。

下表列出「捷徑」結束程式參數。 此參數清單的位址位於標準結束參數清單欄位 SXPLFSPL 中。

表 2. 捷徑輸入編輯/遞送結束程式參數清單
偏移 (十進位) 長度 (十進位) 說明
+0 4 ECB 地址。
+4 4 SCD 位址。
+8 4 輸入訊息。
+12 4 如果這是「捷徑」專用交易,則為遞送碼表格登錄的位址,或零。
+16 4 提供遞送碼名稱的 8 個字元工作區。
+20 4 ESCD 的位址。
+24 4 此應用程式的 EMH 緩衝區長度。
+28 4 DBFHAGU0 延伸參數清單的位址。 如果使用共用 EMH 佇列,則此參數清單存在。 否則,延伸參數清單為 0。

下表列出「延伸參數」清單參數。

表 3. DBFHAGU0 延伸參數清單
偏移 (十進位) 長度 (十進位) 說明
+0 4 8 位元組 PSB 名稱的位址
+4 4 Sysplex 處理代碼 (十進位)
0
本端優先 (預設值)
4
僅限本端
8
僅廣域
+8 4 本端 PSB 名稱表格的位址
+12 4 廣域 PSB 名稱表格的位址
+16 4 系統定義碼 (十進位)
0
定義在本端系統中的交易
4
交易未定義在本端系統中
+20 4 輸入訊息碼 (十進位)
0
捷徑專用交易
4
捷徑潛在交易
附註:
  1. 本端程式名稱表格及廣域程式名稱表格的範例 DSECT 可在 DBFPGNT 巨集中找到。

結束時的暫存器內容

傳回時,除了暫存器 1 和 15 之外,必須還原所有暫存器,其中必須包含下列項目:
登錄(L) 內容  
1 要傳送至輸入端的訊息號碼。
15 下列其中一個回覆碼:
  回覆碼 (十進位) 意義
00 使用捷徑排程。 登錄 3 指向要使用的 RCTE。
04 使用交易碼作為遞送碼的「捷徑」排程。
08 使用您提供的遞送碼,以「捷徑」排程。
12 回到 IMS 進行處理。
16 如果遞送碼等於交易碼處於作用中,則使用交易碼排定「捷徑」; 否則,讓 IMS 處理它。
20 如果遞送碼處於作用中狀態,則使用遞送碼的「捷徑」排程; 否則,請讓 IMS 處理它。 此動作與使用者結束程式回覆碼 08 相同。
24 捨棄輸入,將使用者表格中的訊息傳回給輸入端。
28 捨棄輸入,從系統訊息表格傳送訊息。