捷徑輸入編輯/遞送結束常式 (DBFHAGU0)
「捷徑輸入編輯/遞送」結束常式 (DBFHAGU0) 提供 IMS 使用「捷徑快速訊息處理程式 (EMH)」所需的最低支援層次。
具有極高交易率的 IMS 系統使用 EMH。 EMH 是一個效能選項,可透過對訊息長度及分段施加限制來加速訊息處理。 若要使用 EMH ,編輯/遞送常式必須接收來自「輸入」結束常式的控制,並判定送入訊息進行「捷徑」處理的資格。 範例結束程式提供使用「 IMS 捷徑」所需的最低支援層次。
子區段:
關於此常式
「捷徑 EMH」緩衝區是動態配置的,可能不會出現在項目中。 因此,視終端機類型而定, DBFHAGU0 可以在 EMH 緩衝區或佇列緩衝區中接收訊息。 不允許跳出常式將資料移出輸入位置。 如果訊息位於項目的佇列緩衝區中,則「捷徑」系統會將它移至 EMH 緩衝區。 在編輯輸入訊息時,應用程式不應增加超出任何訊息緩衝區的長度。
DFS3971 Unable to process Fast Path due to EMH buffer shortage下表顯示「捷徑輸入編輯/遞送」結束常式的屬性。
| 屬性 | 說明 |
|---|---|
| IMS 環境 | DB/DC , DCCTL |
| 命名慣例 | 您必須將此結束常式命名為 DBFHAGU0。 |
| 正在連結 | 如果 APPC/IMS 支援處於作用中狀態,則必須重新進入此結束常式。 |
| 包括常式 | DBFHAGU0 是 IMS.SDFSRESL中個別鏈結的模組。 IMS 會在「捷徑」起始設定期間自動載入它。 如果 IMS 找不到 DBFHAGU0, IMS 會異常終止 ABENDU1011 ,並顯示下列訊息: |
| IMS 可呼叫服務 | 若要搭配使用 IMS 可呼叫服務與此常式,您必須發出起始設定呼叫 (DFSCSII0) ,以取得可呼叫服務記號及參數清單,在其中建置所需可呼叫服務的函數特定參數清單。 使用在 DFSCSII0 呼叫的「捷徑輸入編輯/遞送結束程式」參數清單偏移 X' 0 ' 找到的 ECB。 IMS會自動將此結束常式鏈結至 DFSCSI00 。 使用可呼叫服務不需要其他鏈結。 |
| 範例常式位置 | IMS.SDFSSMPL (成員名稱 DBFHAGU0)。 |
展開常式
非「捷徑專用」的交易可以根據交易碼以外的某些條件,由展開的編輯/遞送常式導向至 EMH 處理。 例如,如果某些交易源自指定的實體或邏輯終端機,或它們參照訊息某些部分的內容 (例如,帳號) ,則可以將這些交易遞送至 EMH。 使用者提供的 DBFHAGU0 必須根據這類條件來開發適當的遞送碼。
搭配使用常式與共用 EMH 佇列
如果您的安裝使用共用 EMH 佇列,則 DBFHAGU0 可以將訊息放置在共用佇列結構上,以供 Sysplex 中任何共用 IMS 子系統處理。
您可以修改結束常式,為用來處理「捷徑」輸入訊息的應用程式指定應用程式名稱。 如果您未指定應用程式名稱,則「捷徑」會在本端 IMS 子系統中尋找交易或遞送碼。 如果輸入訊息找不到交易或遞送碼,則「捷徑」會拒絕輸入訊息。
- 本端第一個
- 指定如果 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 中。
| 偏移 (十進位) | 長度 (十進位) | 說明 |
|---|---|---|
| +0 | 4 | ECB 地址。 |
| +4 | 4 | SCD 位址。 |
| +8 | 4 | 輸入訊息。 |
| +12 | 4 | 如果這是「捷徑」專用交易,則為遞送碼表格登錄的位址,或零。 |
| +16 | 4 | 提供遞送碼名稱的 8 個字元工作區。 |
| +20 | 4 | ESCD 的位址。 |
| +24 | 4 | 此應用程式的 EMH 緩衝區長度。 |
| +28 | 4 | DBFHAGU0 延伸參數清單的位址。 如果使用共用 EMH 佇列,則此參數清單存在。 否則,延伸參數清單為 0。 |
下表列出「延伸參數」清單參數。
| 偏移 (十進位) | 長度 (十進位) | 說明 |
|---|---|---|
| +0 | 4 | 8 位元組 PSB 名稱的位址 |
| +4 | 4 | Sysplex 處理代碼 (十進位)
|
| +8 | 4 | 本端 PSB 名稱表格的位址 |
| +12 | 4 | 廣域 PSB 名稱表格的位址 |
| +16 | 4 | 系統定義碼 (十進位)
|
| +20 | 4 | 輸入訊息碼 (十進位)
|
附註:
|
||
結束時的暫存器內容
| 登錄(L) | 內容 | |
|---|---|---|
| 1 | 要傳送至輸入端的訊息號碼。 | |
| 15 | 下列其中一個回覆碼: | |
| 回覆碼 (十進位) | 意義 | |
| 00 | 使用捷徑排程。 登錄 3 指向要使用的 RCTE。 | |
| 04 | 使用交易碼作為遞送碼的「捷徑」排程。 | |
| 08 | 使用您提供的遞送碼,以「捷徑」排程。 | |
| 12 | 回到 IMS 進行處理。 | |
| 16 | 如果遞送碼等於交易碼處於作用中,則使用交易碼排定「捷徑」; 否則,讓 IMS 處理它。 | |
| 20 | 如果遞送碼處於作用中狀態,則使用遞送碼的「捷徑」排程; 否則,請讓 IMS 處理它。 此動作與使用者結束程式回覆碼 08 相同。 | |
| 24 | 捨棄輸入,將使用者表格中的訊息傳回給輸入端。 | |
| 28 | 捨棄輸入,從系統訊息表格傳送訊息。 | |