JCL中IEFBR14和COND
? COND CODE,就是反映JCL中STEP運行狀態的參數,JCL正常終了的COND CODE 是0000,另外筆者在執行某些工具JCL時候,比方說簡單一個COMPARE吧,可能會出現0012、0004或者0016,0001,常規的JCL一般就是SUB后盼望出現0000。
? IEFBR14是一種雞肋的簡單,其實不太明白JCL教程中的COND,指的是上一個STEP中的返回CODE,還是說本STEP的返回CODE,但在思考了一下,給出了一種解釋,JCL在打出COND CODE這一行執行結果后,后面跟著的其實是執行本STEP的處理LOG,最后想了很久還是沒搞懂這個CODE是怎么回事。咱就是說,測試條件滿足時,不執行該作業步,測試條件滿足時候,執行該作業步,讓我很迷茫
一、IEFBR14
? 正如同每個編程體系中都會封裝大量的庫函數,比如說JAVA中的MAP、C語言中的scanf,在IBM大機的編程體系中同樣如此,比方說IEFBR14這個庫函數。這個庫函數在官方定義其功能為“DO NOTNING”,和DUMMY一樣,無為且百搭,在指定系統日付,在DD中創建數據集,刪除文件時候都可以用。在IBM的OS/360研發小組,編制這個程序的時候,確定了一個命名規則,IEF是研發這個模塊的小組名稱,BR是匯編語言中寄存器地址的名字(BR即BRANCH,分支,無條件跳轉到芯片支持的所有地址范圍),14是指匯編程序結束時、分配到通用寄存器14的地址。
1.1 用IEFBR14創建順序數據集,指定系統日付
? 這里面用了數據集長度定義:VB,并且指定了一個固定卷:MVSDL3,創建了一個順序數據集:D08926.GAC0.TEST.OUTDD1
? PS:順序數據集,數據集的一種,它相當于一個文本文件,但在物理存儲上完全按照數據存入的先后順序存儲的
1.2 用IEFBR14創建分區數據集
? PDS(PO):分區數據集,相當于一個文件夾,PDS內包含若干個順序的member,每個member都是一個數據集。但物理存儲上,每個PDS包含兩部分:Directory(目錄)和members(數據集成員)。Directory中存有每個member的名字和地址。
? PDS的缺陷是member被刪除后,該member所占用的空間沒有釋放,無法立即使用,需要對該分區數據集壓縮之后才會被釋放,也就是說需要Z一下。
1.3 用IEFBR14刪除文件
二、COND參數
? 因為BATCH是一個作業流嘛,不是說一串作業流的執行是嘎嘎順利的,所以有些后續作業步的執行與否,要依賴于先頭JOB傳遞過來的參數,后續我晚上試著再補充一篇,真就挺復雜的。