系統定義前置處理器概觀
使用 IMS 系統定義前置處理器,以確保階段 1 輸入不包含重複的資源名稱,例如交易碼、邏輯終端機及系統名稱。
IMS 提供前置處理器,您可以用來檢查階段 1 輸入中您已定義的名稱之間的重複名稱。 前置處理器也會確保名稱的長度和格式正確。 指派的名稱也會跨資源類型進行檢查,因此交易碼、LTERM 及 IMS 系統名稱 (用於多個系統連結) 不會包含重複。 前置處理器協助維護階段 1 輸入串流的完整性。

系統定義前置處理器是選用的。
如果針對 IMS 系統定義選取 IMSCTRL NAMECHK=NO 選項,請執行系統定義前置處理器。
第 1 階段來源陳述式用作輸入,並且可以包括複製陳述式。 不過,它們無法包含來自階段 1 輸入、行內使用者巨集、使用者巨集呼叫或條件式組譯器陳述式的 IMS 巨集行內副本。
前置處理器會使用複製成員作為輸入,來尋找、讀取及處理複製陳述式。 符合 z/OS® 標準的搜尋順序取決於您連結程式庫的順序。 從 SYSLIB DD 陳述式指定的資料集擷取副本成員。 前置處理器會掃描下列 IMS 巨集的輸入:
- APPLCTN
- DATABASE
- MSLINK
- MSNAME
- MSPLINK
- 名稱
- RTCODE
- SUBPOOL
- TERMINAL
- TRANSACT
前置處理器無法辨識跨接續陳述式分割的關鍵字。 與這些關鍵字相關聯的相關參數會從前置處理器產生錯誤訊息。
- 在每一種資源類型內,前置處理器會驗證沒有該類型的資源具有重複名稱。 會驗證下列類型的資源名稱:
- DBD 名稱
- PSB 名稱
- VTAM ® 節點名稱
- MS 鏈結名稱
- 邏輯終端機名稱
- 交易碼
- 遞送碼
- 子儲存區名稱
- MSLINK 友機 ID
- MSPLINK 實體鏈結名稱
- 遠端系統 VTAM 節點名稱
- 會檢查這些資源名稱,以確保它們的長度適當且為英數。
- 會交叉檢查指定給交易、邏輯終端機及多個系統的名稱,以確保這三種資源類型之間沒有重複的名稱。
預估前置處理器的儲存體需求
前置處理器會使用預設值來保留每一個資源名稱表格 (RNT) 的起始儲存體數量。 如果此儲存體不足,則前置處理器會動態擴充表格,直到耗盡所有延伸專用儲存體為止。 未新增至適當 RNT 的資源名稱會被忽略,並從進一步處理中排除。
如果任何給定資源名稱的錯誤數超過 50 ,或巢狀複製陳述式數超過 50 ,則需要額外空間。 在大部分情況下,這個額外儲存體會計入基本系統儲存體號碼中。
儲存體大小是可以在前置處理器呼叫 JCL 上指定的區域大小下限。
前置處理器也需要低於 16 MB 界限的 1 MB 專用儲存體。
標準系統定義:
- 基本系統 1000 KB。
- 結束常式 DFSPRE60 及 DFSPRE70所需的空間 (如果已載入的話)。
- 表格空間超過預設值。 對於超出 5120 的下列每一種資源類型,請決定 表 1中的儲存體量。
- APPLCTN
- DATABASE
- 名稱
- RTCODE
- SUBPOOL
- 終端機 (VTAM)
- TRANSACT
| 資源範圍 | 儲存體數量 (以 KB 為單位) | |
|---|---|---|
| 5120 至 10,240 | 80 | |
| 10,240 至 20,480 | 240 | |
| 20,480 至 41,060 | 560 | |
| 41,060 至 82,120 | 1200 | |
| 82,120 至 164,240 | 2480 | |
| 164,240 至 328,480 | 5040 | |
| 328,480 至 656,960 | 10,160 | |
| 656,960 至 1,313 920 | 20,400 | |
前置處理器結束常式
- 結束 DFSPRE60
在讀取階段 1 輸入中的每一筆記錄之後,但在進行任何其他處理之前,此常式會取得控制。 它可以修改記錄的內容,甚至可以將進一步陳述式提交給前置處理器進行檢查。 此常式所做的任何變更都不是永久的,這些變更也不會自動傳遞至階段 1。
- 結束 DFSPRE70
當完成所有交叉檢查時,此常式增益控制。 它具有所有資源名稱表格的存取權。 然後,常式可以將這些表格格式化,作為文件工作的一部分。
用來執行前置處理器的範例 JCL
// JOB
// EXEC PGM=DFSPRE00,REGION=32M,PARM='xxx' 1
//STEPLIB DD DSN=IMS.SDFSRESL,DISP=SHR 2
// DD DSN=USER.EXITLIB,DISP=SHR 3
//SYSLIB DD DSN=USER.MACLIB,DISP=SHR 4
// DD DSN=IMS.SDFSMAC,DISP=SHR 4
//SYSPRINT DD SYSOUT=A
//SYSIN DD * 5- 指出的區域大小是在 z/OS 系統上執行前置處理器所需的大小。 用於判定區域大小的準則位於 預估前置處理器的儲存體需求中。
只有在應該置換預設結束常式指示器時,才會指定 PARM 欄位。
- 這個 DD 陳述式應該指定包含您要執行之前置處理器版本的檔案庫。 由於 SMP 維護,可能存在不同的版本。
- 只有在要求結束常式時,才需要這個連結的 DD 陳述式。
- SYSLIB DD 陳述式應該指向包含副本成員的檔案庫。 如果階段 1 來源 COPY 陳述式存在,則需要此 DD 陳述式。
- 您也可以使用陳述式:
//SYSIN DD DSN=....,DISP=SHR
EXEC 陳述式上的 PARM 欄位指定如下:PARM='a,b'
- a
- 指出在此前置處理器呼叫期間是否使用 (Y) 或 (N) 結束常式 DFSPRE60 。 如果要使用 DFSPRE60 ,它必須位於 STEPLIB DD 陳述式所指向的程式庫上。 預設值為 N。
- b
- 指出在此前置處理器呼叫期間是否使用 (Y) 或 (N) 結束常式 DFSPRE70 。 如果要使用 DFSPRE70 ,它必須位於 STEPLIB DD 陳述式所指向的程式庫上。 預設值為 N。