JCL review

JCL is Job Control Language and is used for Batch processing. The startup procedures of OS and standard products like CICS etc are written in JCL. It is interface between operating system(MVS) & application program. when 2 related programs are combined together on control statements is called job control language

什麼是JCL?JCL用於批量處理,啓動OS和像CICS等標準產品程序都被寫入JCL,它是OS和應用程序的接口。把兩個相關程序用控制語句連接起來(的語言)叫JCL。

JCL中的語句基本都有位置參數和關鍵字參數 二者區別????

位置參數指參數對位置敏感,在不同的位置意思不同。例如:在DISP裏的三個位置的意思都不一樣,如果爲空,需要用‘,’表示參數是空的。關鍵字參數不care參數的相對位置,出現在不同的位置都可以被識別。

在一個作業流中有哪三種基本語句?

JOB(每個作業流一個);EXEC(每個作業流有一個或多個);DD(每個作業流有一個或多個)。

DD 語句的目的是什麼 ?

數據定義語句 (DD 語句 ) 用於定義一個數據集以及該數據所需的輸入輸出資源。

DD語句的三個位置參數:
(1)“*”
(2)“DATA”
(3)“DUMMY”

DD語句的關鍵字參數有很多,但總體上可分爲兩大類,一類與設備相關,如UNIT、VOLUME、SPACE、LABEL等;
另一類則與數據集或數據相關,如DSNAME、DISP、DCB、RECORG、EXPDT、RETPD、PROTECT、SYSOUT、HOLD等。

以下三種情況均將產生臨時數據集

(1) OMIT DSN//DD1 DD UNIT=SYSDA,SPACE=(TRK,1)(系統將指定臨時數據集名字:SYSdate.Timestamp.Jobname.Code.DDName)

(2) DSN=&&WORK//DD2 DD DSN=&&WORK,UNIT=SYSDA,SPACE=(TRK,1)(系統將指定臨時數據集名字:SYSdate.Timestamp.Jobname.Code.Work)

(3) DSN=&TEMP//DD3 DD DSN=&TEMP,UNIT=SYSDA,SPACE=(TRK,1)

DISP參數
NEW—表示在當前作業步中創建一個新的數據集。作業運行時獨佔 該數據集的訪問。
OLD—表示該數據集在當前作業步運行之前已經存在,並且當前作業步將以獨佔 的方式使用這個數據集。
SHR—表示該數據集在當前作業步運行之前已經存在,並且當前作業步將以共享的方式使用這個數據集,也就是說其它的作業也可以同時使用這個數據集。這個參數值也可以寫成SHARE。
MOD—表示數據集已經存在,記錄將被添加到數據集的結尾,這個數據集必須是順序數據集 或者分區數據集的新成員

DISP參數缺省:
NO DISP : DISP=(NEW,DELETE,DELETE)
DISP=OLD/SHR/MOD : DISP=(OLD/SHR/MOD,KEEP,KEEP)
DISP=(,CATLG): DISP=(NEW,CATLG,CATLG)
DISP=NEW : DISP=(NEW,DELETE,DELETE)

DCB參數還有很多內容,有時間再複習吧

流內過程(instream-procedure) 編目過程(cataloged-procedure)

調用編目過程 需要JOBCARD後面指定JCLLIB

PROC是打包後被PROC語句調用的JCL。流內過程是包括在JCL裏的。編目過程從外部的一個順序DATASET裏引用。

 

順序文件最多EXTENT 16次(包括首次分配) , VSAM 文件爲 123次

複寫proc

如何覆蓋一個在 PROC 中的特殊的 DDNAME/SYSIN

// DSN=...

一個 PROC 5 個作業步, Step 3 有一個條件代碼,如何 erride/nullify 這個條件代碼

在 EXEC 語句中用 override 如下:

//STEP001 EXEC procname, COND.stepname=value

象 COND, PARM 這樣的 EXEC 語句必須這樣覆蓋

What are SD37, SB37, SE37 abends?

All indicate dataset out of space. SD37 - no secondary allocation was specified. SB37 - end of vol. and no further volumes specified. SE37 - Max. of 16 extents already allocated.

What is S322 abend ?

需要更多的 CPU 時間

程序已經超過了默認的爲該作業分配的 CPU 時間,陷入一個無限循環

Time = 1440

當程序需要更多的CPU時間時用於克服S322 abends

TIME=1440表示作業的運行沒有時間限制,即24小時。

什麼是RESTART?怎麼調用?

RESTRAT是一個JOB語句的關鍵字。它可以從一個特定的步驟開始執進JOB語句。而不是從頭開始執行。

RESTART=step name.

COND

COND有兩個子參數。1,上一STEP的返回碼。2,條件。如果條件滿足,就跳過該步。

COND=EVEN

即使先前作業步異常終止,本作業步都要執行

COND=ONLY

只有先前作業步異常終止,本作業步才執行

在最近的MVS版本中對COND參數做了哪些改進?MVS現在允許等價的IF。。。ENDIF語句代替COND語句。如果IF語句爲真,該STEP將被跳過。

PARM

在EXEC語句中PARM後的值是一些控制參數,被傳遞到JOB STEP裏執行的PGM中。

定義 MSGLEVEL 參量的目的是什麼

用於控制 JCL 作業輸出清單的內容。

MSGLEVEL(A,B): 一般用 (1,1) 就可以了。

A-0,1,2 (0-- 僅打印 JCL; 1-- 打印全部 ; 2--JCL 和 JES2)

B-0,1 (0-- 作業異常終止纔打印 ;1-- 無論如何都打印 )

在 EXEC 語句中用到的關鍵字參數是什麼

PGM PROC

以下語句之間有什麼不同

I) step#1 exec PGM=accpay 調用系統函數

ii) step#1 exec tbalance 調用外部

JCL裏有多少種類型的庫?

3種。1,系統庫:2:私有庫:在JOBLIB或STEPLIB中指定的。3,臨時庫:在JOB之前的一步驟中創建的。

JOBLIB 語句的目的是什麼

通過 JOBLIB DD 語句用戶可以創建一個私有庫或爲作業指定一個私有庫。

 

IDCAMS utility中的IEBGENER, IEBCOPY 和 REPRO有甚麼區別

IEBGENER –copy順序數據集,?????

IEBCOPY copy一個PDS給另一個或合併多個PDS

REPRO copy順序數據集,有點象IEBGENER

發佈了27 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章