JCL - 基礎庫



基礎庫是分割槽資料集 (PDS),它包含在 JCL 中執行的程式的載入模組或程式中呼叫的已編目過程。基礎庫可以在整個 JCL 中的JOBLIB庫中指定,或者在特定作業步驟中的STEPLIB語句中指定。

JOBLIB 語句

JOBLIB語句用於標識在 JCL 中執行的程式的位置。JOBLIB 語句在 JOB 語句之後和 EXEC 語句之前指定。這隻能用於流內過程和程式。

語法

以下是 JCL JOBLIB 語句的基本語法

//JOBLIB DD DSN=dsnname,DISP=SHR                                      

JOBLIB 語句適用於 JCL 中的所有 EXEC 語句。EXEC 語句中指定的程式將在 JOBLIB 庫中搜索,然後是系統庫。

例如,如果 EXEC 語句正在執行 COBOL 程式,則 COBOL 程式的載入模組應放在 JOBLIB 庫中。

STEPLIB 語句

STEPLIB語句用於標識在作業步驟內執行的程式的位置。STEPLIB 語句在 EXEC 語句之後和作業步驟的 DD 語句之前指定。

語法

以下是 JCL STEPLIB 語句的基本語法

//STEPLIB DD DSN=dsnname,DISP=SHR                                      

EXEC 語句中指定的程式將在 STEPLIB 庫中搜索,然後是系統庫。在作業步驟中編碼的 STEPLIB 會覆蓋 JOBLIB 語句。

示例

以下示例顯示了 JOBLIB 和 STEPLIB 語句的用法

//MYJCL JOB ,,CLASS=6,NOTIFY=&SYSUID
//*
//JOBLIB DD DSN=MYPROC.BASE.LIB1,DISP=SHR
//*
//STEP1 EXEC PGM=MYPROG1
//INPUT1 DD DSN=MYFILE.SAMPLE.INPUT1,DISP=SHR
//OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
//           RECFM=FB,LRECL=80
//*
//STEP2 EXEC PGM=MYPROG2
//STEPLIB DD DSN=MYPROC.BASE.LIB2,DISP=SHR
//INPUT2 DD DSN=MYFILE.SAMPLE.INPUT2,DISP=SHR
//OUTPUT2 DD DSN=MYFILES.SAMPLE.OUTPUT2,DISP=(,CATLG,DELETE),
//           RECFM=FB,LRECL=80                                      

這裡,程式 MYPROG1(在 STEP1 中)的載入模組在 MYPROC.SAMPLE.LIB1 中搜索。如果未找到,則在系統庫中搜索。在 STEP2 中,STEPLIB 覆蓋 JOBLIB,程式 MYPROG2 的載入模組在 MYPROC.SAMPLE.LIB2 中搜索,然後在系統庫中搜索。

INCLUDE 語句

可以使用INCLUDE語句將 PDS 成員中編碼的一組 JCL 語句包含到 JCL 中。當 JES 解釋 JCL 時,INCLUDE 成員中的一組 JCL 語句將替換 INCLUDE 語句。

語法

以下是 JCL INCLUDE 語句的基本語法

//name INCLUDE MEMBER=member-name                                      

INCLUDE 語句的主要目的是可重用性。例如,可在 INCLUDE 成員中將跨多個 JCL 使用的公共檔案編碼為 DD 語句,並在 JCL 中使用。

虛擬 DD 語句、資料卡規範、PROC、JOB、PROC 語句不能在 INCLUDE 成員中編碼。INCLUDE 語句可以在 INCLUDE 成員中編碼,最多可以巢狀 15 層。

JCLLIB 語句

JCLLIB語句用於標識作業中使用的私有庫。它可以與流內過程和已編目過程一起使用。

語法

以下是 JCL JCLLIB 語句的基本語法

//name JCLLIB ORDER=(library1, library2....)                                  

將按照給定的順序搜尋 JCLLIB 語句中指定的庫,以查詢作業中使用的程式、過程和 INCLUDE 成員。JCL 中只能有一個 JCLLIB 語句;在 JOB 語句之後和 EXEC 和 INCLUDE 語句之前指定,但不能在 INCLUDE 成員中編碼。

示例

在以下示例中,程式 MYPROG3 和 INCLUDE 成員 MYINCL 將按照 MYPROC.BASE.LIB1、MYPROC.BASE.LIB2、系統庫的順序搜尋。

//MYJCL JOB ,,CLASS=6,NOTIFY=&SYSUID
//*
//MYLIB JCLLIB ORDER=(MYPROC.BASE.LIB1,MYPROC.BASE.LIB2)
//*
//STEP1 EXEC PGM=MYPROG3
//INC INCLUDE MEMBER=MYINCL
//OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
//           RECFM=FB,LRECL=80
//*                                
廣告