大型機(jī)S390系統(tǒng)管理第三章1節(jié)作業(yè)控制語(yǔ)言_第1頁(yè)
大型機(jī)S390系統(tǒng)管理第三章1節(jié)作業(yè)控制語(yǔ)言_第2頁(yè)
大型機(jī)S390系統(tǒng)管理第三章1節(jié)作業(yè)控制語(yǔ)言_第3頁(yè)
大型機(jī)S390系統(tǒng)管理第三章1節(jié)作業(yè)控制語(yǔ)言_第4頁(yè)
大型機(jī)S390系統(tǒng)管理第三章1節(jié)作業(yè)控制語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三章 作業(yè)控制語(yǔ)言31 基本概念 在大型服務(wù)器系統(tǒng)中,當(dāng)用戶需要使用計(jì)算機(jī)完成某項(xiàng)任務(wù)時(shí),用戶必須準(zhǔn)備一個(gè)作業(yè)流(Job Stream)。作業(yè)流中包含一個(gè)或多個(gè)作業(yè)(Job)。作業(yè)是用戶在完成該任務(wù)時(shí)要求計(jì)算機(jī)所做工作的集合。 與COBOL等一般的編程語(yǔ)言不同,作業(yè)控制語(yǔ)言JCL(Job Control Language)是用戶與操作系統(tǒng)的接口。用戶通過(guò)JCL的相應(yīng)語(yǔ)句來(lái)與操作系統(tǒng)通訊,獲得作業(yè)所需的資源等,按自己的意圖來(lái)控制作業(yè)的執(zhí)行。由幾個(gè)語(yǔ)句組成,對(duì)于一個(gè)作業(yè),JCL為被執(zhí)行的任務(wù)引導(dǎo)操作系統(tǒng),并說(shuō)明所需要的全部設(shè)備。在一個(gè)作業(yè)中,每一次程序的執(zhí)行稱為一個(gè)作業(yè)步,一個(gè)作業(yè)可包含幾個(gè)作業(yè)

2、步。一般的,一個(gè)作業(yè)由以下相對(duì)獨(dú)立的三步組成:編譯:把源程序語(yǔ)句(源模塊)轉(zhuǎn)換成目標(biāo)模塊;鏈接編輯:把目標(biāo)模塊同子程序庫(kù)中的其他程序鏈接起來(lái)得到可執(zhí)行模塊;執(zhí)行:運(yùn)行可執(zhí)行模塊得到結(jié)果。一個(gè)作業(yè)中的各步是順序執(zhí)行的,因此一個(gè)作業(yè)步的輸出可以作為下一個(gè)作業(yè)步的輸入。大型服務(wù)器系統(tǒng)中用戶的作業(yè)可以由一個(gè)或多個(gè)作業(yè)步構(gòu)成。只有一個(gè)作業(yè)步的作業(yè)叫做單步作業(yè);由多個(gè)作業(yè)步構(gòu)成的作業(yè)叫做多步作業(yè)。不論單步作業(yè)還是多步作業(yè)都必須包含三個(gè)JCL基本語(yǔ)句(JCL Statement)。它們分別是:作業(yè)語(yǔ)句(JOB):標(biāo)識(shí)一個(gè)作業(yè)的開(kāi)始,提供必要的運(yùn)行參數(shù)。執(zhí)行語(yǔ)句(EXEC):標(biāo)識(shí)一個(gè)作業(yè)步的開(kāi)始,定義本作業(yè)步

3、所要執(zhí)行的程序或過(guò)程。數(shù)據(jù)定義語(yǔ)句(DD):用于描述應(yīng)用程序所需要的數(shù)據(jù)文件。系統(tǒng)規(guī)定這三種語(yǔ)句行必須以“/”開(kāi)頭。下面是一個(gè)多步作業(yè)的例子:/JOB1 JOB /STEP1 EXEC /DD1 DD 作業(yè)步1/STEP2 EXEC /INDD1 DD 作業(yè)步2 /INDD2 DD /除了上述一些基本概念,有關(guān)數(shù)據(jù)結(jié)構(gòu)和存取方法的概念在JCL的使用中也是非常重要的,由于這一部分已在本書(shū)的第二章中詳細(xì)討論過(guò),就本章不再重復(fù)了。32 JCL語(yǔ)句JCL語(yǔ)句分類(lèi)在大型服務(wù)器系統(tǒng)中,作業(yè)控制語(yǔ)言被分做兩類(lèi):JES2和JCL。JES2將在本書(shū)的后續(xù)章節(jié)中討論。作業(yè)控制語(yǔ)言由九種語(yǔ)句組成,除了上一節(jié)中討論過(guò)

4、的三種基本語(yǔ)句外,還有以下六種附加語(yǔ)句:(1)/* 語(yǔ)句:表示六內(nèi)數(shù)據(jù)結(jié)束或調(diào)用JES控制語(yǔ)句;(2)/*語(yǔ)句:注釋語(yǔ)句,由第4到第80列寫(xiě)出注釋內(nèi)容;(3)/語(yǔ)句:空語(yǔ)句,用以標(biāo)記一個(gè)作業(yè)的結(jié)束;PROC語(yǔ)句:流內(nèi)過(guò)程(IN-STREAM PROCEDURE)或編目過(guò)程(CATALOGED PROCEDURE)的起始標(biāo)記。PEND語(yǔ)句:標(biāo)志一個(gè)流內(nèi)過(guò)程的結(jié)束。Command語(yǔ)句:操作員用這個(gè)語(yǔ)句在輸入流中寫(xiě)入操作命令。在這九種語(yǔ)句中,JOB、EXEC和DD三種語(yǔ)句對(duì)于每個(gè)作業(yè)來(lái)說(shuō)都是必要的。下面給出一個(gè)單步作業(yè)的JCL實(shí)例。/BACKUP JOB ,EXAMPLE JOB/*/* IT IS

5、 A EXAMPLE! */*/STEP1 EXEC PGM=IEBGENER/STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR/SYSIN DD DUMMY /SYSPRINT DD SYSOUT=A/SYSU1 DD DSN=PR.MASTER,DISP=OLD/SYSU2 DD DSN=PR.MAILY.BACKUP,DISP=(NEW,CATLG),UNIT=TAPE,/ DCB=(RECFM=FB,LRECL=200,BLKSIZE=1000)/在上述例子中,我們給出了一個(gè)名為BACKUP的單步作業(yè),在這個(gè)作業(yè)中我們通過(guò)調(diào)用公用程序IEBGENER完成了將庫(kù)S

6、YS1.LINKLIB中的PR.MASTER數(shù)據(jù)集備份到磁帶上的工作。通過(guò)該例我們可以初步了解JCL中各語(yǔ)句的使用方式,下面我們將詳細(xì)向大家介紹JCL的語(yǔ)法規(guī)則及語(yǔ)句的使用。JCL的語(yǔ)法規(guī)則與其計(jì)算機(jī)語(yǔ)言一樣,JCL有一套嚴(yán)格的語(yǔ)法規(guī)則。但與我們熟知的一些編程語(yǔ)言不同的是,JCL還有其嚴(yán)格的語(yǔ)句格式規(guī)范。用戶只有嚴(yán)格按照這些規(guī)則來(lái)編寫(xiě)作業(yè)控制程序,系統(tǒng)才能按照其意圖正確完成用戶的作業(yè),否則系統(tǒng)就會(huì)給出錯(cuò)誤信息,或產(chǎn)生不可預(yù)知的后果。JCL字符集字母(共26個(gè))A B C D E F G H I J K L M N O P Q R S T U V W X Y Z數(shù)字(共10個(gè))1 2 3 4 5

7、 6 7 8 9特殊字符(共10個(gè)), . / ( ) * & + - =通配符(共6個(gè)) $ # (也可分別用X7C X5B 和 X7B表示)EBCDIC 可打印字符集(參見(jiàn)附錄)使用十六進(jìn)制值表示:X40 XFE在JCL語(yǔ)法中會(huì)用到一些特殊字符,其作用列表如下表3.2.1:字符語(yǔ)法功能,分隔參數(shù)和子參數(shù)=分隔關(guān)鍵字參數(shù)(見(jiàn)3.2.2節(jié))與它的值,例:CLASS=A(b )括起子參數(shù)列表或PDS、PDSE的成員名&標(biāo)志一個(gè)符號(hào)參數(shù)(symbolic parameter),例:&LIB&標(biāo)志一個(gè)臨時(shí)數(shù)據(jù)集名(temporary data set name)例:&TEMPDS標(biāo)志一個(gè)流內(nèi)或系統(tǒng)輸

8、出(sysout)數(shù)據(jù)集名,例:&PAYOUT.分隔一些特定參數(shù)與子參數(shù)的各部分,例:nodename.userid*提及一條先前的語(yǔ)句,例:OUTPUT=*.name ,或在特定的語(yǔ)句內(nèi),標(biāo)志特定的功能,例:/ddname DD * 括起含有特殊字符的參數(shù)值(空格)劃分域一般語(yǔ)句格式規(guī)范在JCL中,除/*語(yǔ)句外的所有語(yǔ)句均以第一、二列的/符號(hào)作為開(kāi)始標(biāo)志,系統(tǒng)規(guī)定這些語(yǔ)句的長(zhǎng)度為80列。這80列在邏輯上被劃分為五個(gè)區(qū)域,分別是標(biāo)識(shí)符區(qū)、名字區(qū)、操作符區(qū)、參數(shù)區(qū)和說(shuō)明區(qū),即:標(biāo)識(shí)符區(qū)名字區(qū)操作符區(qū)參數(shù)區(qū)說(shuō)明區(qū)/名字操作符參數(shù)說(shuō)明 標(biāo)識(shí)符區(qū)一般情況下,標(biāo)識(shí)符區(qū)的符號(hào)為“/”,該符號(hào)表明該條語(yǔ)句為

9、JCL語(yǔ)句。標(biāo)識(shí)符區(qū)位于每條語(yǔ)句的第一、二列。在特殊情況下,標(biāo)識(shí)符區(qū)的符號(hào)將有所變化。如3.2.1中所討論過(guò)的“/*”語(yǔ)句和“/*語(yǔ)句,則分別在標(biāo)識(shí)符區(qū)中使用的符號(hào)“/*”和“/*”表示。名字區(qū)名字區(qū)指明一個(gè)語(yǔ)句,便于系統(tǒng)控制塊或其他語(yǔ)句引用它。名字可以由18個(gè)字母數(shù)字或通配符組成,但第一個(gè)字符必須是字母或通配符,且必須從第三列開(kāi)始。名字區(qū)后必須跟一個(gè)或多個(gè)空格,可以選擇名字表達(dá)出這個(gè)JCL語(yǔ)句的作用。下面給出幾個(gè)正確與錯(cuò)誤的名字區(qū)的例子: 正確的 錯(cuò)誤的 /Z /9Z /BACKUP#1 /TAPEBACKUP /#99 /TEST*9 /$EXAM /EXAM(0) 操作符區(qū)操作符區(qū)位于名

10、字區(qū)之后,規(guī)定了語(yǔ)句的類(lèi)型:JOB、EXEC、DD、PROC、PEND,或操作員命令。名字區(qū)后必須跟一個(gè)或多個(gè)空格。例如:/EXAMPLE JOB/STEP1 EXEC/INDD1 DD 參數(shù)區(qū) 參數(shù)區(qū)在操作符區(qū)之后,其中包括被逗號(hào)分隔的參數(shù),參數(shù)由事先規(guī)定好的關(guān)鍵字組成,對(duì)于這些參數(shù)其數(shù)值必須是可被代換的變值。參數(shù)區(qū)沒(méi)有固定的長(zhǎng)度及列的要求。例如:/EXAMPLE JOB 2000,CLASS=A/STEP1 EXEC PGM=IEYFORT/PRINT DD SYSOUT=A說(shuō)明區(qū)說(shuō)明區(qū)位于參數(shù)區(qū)后,用于對(duì)相應(yīng)語(yǔ)句進(jìn)行注釋說(shuō)明,它可以是任何需要的說(shuō)明信息,注釋區(qū)后必須跟一空格。需要注意的是

11、,僅當(dāng)參數(shù)出現(xiàn)時(shí)才能書(shū)寫(xiě)說(shuō)明信息,不然容易與參數(shù)混淆。下面是一個(gè)說(shuō)明區(qū)的例子: /EXAMPLE JOB ,CLASS=A IT IS A COMMENTJCL只允許在參數(shù)區(qū)和說(shuō)明區(qū)有續(xù)行,當(dāng)需要續(xù)行時(shí),在當(dāng)前行的第71列前必須將某個(gè)參數(shù)或某個(gè)子參數(shù)以及參數(shù)后的逗號(hào)寫(xiě)完整,且下一行第1、2列為“/”,第3列為空格,續(xù)行的內(nèi)容只能從416列開(kāi)始,如從16列后開(kāi)始,將被認(rèn)為是注釋語(yǔ)句。下面是一個(gè)續(xù)行的例子:/DATA DD DSN=SYS1。FORTLIB,/ DISP=OLD參數(shù)規(guī)則在JCL中,參數(shù)區(qū)內(nèi)的參數(shù)的類(lèi)型分為兩類(lèi):位置參數(shù)(positional):與其他參數(shù)保持相對(duì)位置的參數(shù);關(guān)鍵字參

12、數(shù)(keyword):由一個(gè)關(guān)鍵字和等號(hào)后面的可變數(shù)據(jù)組成。如果在一個(gè)語(yǔ)句內(nèi)既有位置參數(shù)又有關(guān)鍵字參數(shù)時(shí),所有的關(guān)鍵字參數(shù)必須位于位置參數(shù)之后。例: /EXAMPLE JOB 2000,CLASS=A 位置參數(shù) 關(guān)鍵字參數(shù) 一個(gè)位置參數(shù)或關(guān)鍵字參數(shù)中的可變數(shù)字,也可能是一個(gè)子參數(shù)表。該表中同樣可能含有位置和關(guān)鍵字這兩種類(lèi)型的參數(shù),它們同樣遵循位置參數(shù)和關(guān)鍵字參數(shù)的所有規(guī)則。當(dāng)參數(shù)有子參數(shù)時(shí),子參數(shù)必須順序排列在圓括號(hào)括內(nèi)。例:/EXAMPLE JOB (2000,100,30),COND=(9,LT)在了解參數(shù)類(lèi)型的概念后,我們總結(jié)出參數(shù)的書(shū)寫(xiě)規(guī)則如下:1位置參數(shù)和關(guān)鍵字參數(shù)之間必須用逗號(hào)分開(kāi)

13、,不允許有空格。值得注意的是,在 JCL語(yǔ)句中錯(cuò)寫(xiě)空格,經(jīng)常導(dǎo)致非常難以查出的錯(cuò)誤。 正確的 錯(cuò)誤的/EXAMPLE JOB 2000,CLASS=A /EXAMPLE JOB 2000, CLASS=A /EXP JOB (2000,9),CLASS=A /EXP JOB (2000,9)CLASS=A2必須按規(guī)定的次序書(shū)寫(xiě)參數(shù):所有的關(guān)鍵字參數(shù)必須位于位置參數(shù)之后,而所有位置參數(shù)也必須按規(guī)定排列。 正確的 錯(cuò)誤的/EXAMPLE JOB 2000,CLASS=A /EXAMPLE JOB CLASS=A,2000 3當(dāng)缺省某個(gè)位置參數(shù)或某個(gè)子參數(shù)時(shí),應(yīng)以一個(gè)逗號(hào)指明所在位置。當(dāng)缺省最后一個(gè)

14、位置參數(shù)時(shí),逗號(hào)可以省略。/EXP JOB (2000, ,9),CLASS=A/SYSTEM JOB ,SYSTEM,CLASS=S,MSGLEVEL=(0,0)4 當(dāng)沒(méi)有任何位置參數(shù)時(shí),則不必書(shū)寫(xiě)任何內(nèi)容表示。/EXP JOB CLASS=A5關(guān)鍵字參數(shù)之間沒(méi)有相對(duì)位置的規(guī)定,可以按任何次序排列。/EXP JOB 2000,CLASS=A,MSGLEVEL=1也可寫(xiě)作:/EXP JOB 2000, MSGLEVEL=1,CLASS=A6允許含有特殊字符的參數(shù)或子參數(shù),且其中的特殊字符并非起某種特定的語(yǔ)法功能(見(jiàn)表3.2.1)時(shí),必須用撇號(hào)“”替代括號(hào)將這些參數(shù)和子參數(shù)括起來(lái),例:ACCT=

15、123+456。而在這些參數(shù)與子參數(shù)中要用到撇號(hào)時(shí),則需兩個(gè)連續(xù)的撇號(hào)表示,例:ONEIL需寫(xiě)作ONEIL。有些語(yǔ)句中的某些參數(shù)或子參數(shù)含有一些特定的特殊字符時(shí),將不需要用撇號(hào)括起來(lái),詳細(xì)的情況清參考表。在表3.2.1中我們可以知道,在JCL中用“&”來(lái)表識(shí)符號(hào)參數(shù)的開(kāi)始。當(dāng)參數(shù)中含有“&”且不用來(lái)表示符號(hào)參數(shù)時(shí),則需使用連續(xù)的兩個(gè)“&”來(lái)表示“&”。例:/S1 EXEC PGM=IEFBR14,ACCT=&ABC/DD1 DD DSN=&TEST,UNIT=SYSDA,SPACE=(TRK,(1,1)MVS系統(tǒng)中,系統(tǒng)將視連續(xù)的兩個(gè)“&”為一個(gè)字符。所以建議用戶將含有“&”的參數(shù)用撇號(hào)括起來(lái)

16、以避免出錯(cuò)。語(yǔ)句、參數(shù)或子參數(shù)無(wú)需用撇號(hào)括起的特殊字符例子JOB語(yǔ)句中記賬信息參數(shù)(accounting information)連字符“-”/JOBA JOB D58-D04JOB語(yǔ)句中程序員名參數(shù)(programmers-name)連字符“-” 及 “.”(當(dāng)“.”出現(xiàn)在字符前、字符間時(shí)無(wú)需撇號(hào),但當(dāng)其出現(xiàn)在字符串最后時(shí)則需用撇號(hào))/JOBB JOB ,S-M-T/JOBC JOB ,.ABC/JOBE JOB ,A.B.C.EXEC ACCT連字符“-” 或 “+0” /S1 EXEC ACCT=D-L/S2 EXEC ACCT=D+0DD VOLUME=SER連字符“-”VOLUME=

17、SER=PUB-RDDD UNIT device-type連字符“-”UNIT=3330-1DD DSNAME連字符“-”DSNAME=A-B-C分隔數(shù)據(jù)集名的“.”起語(yǔ)法功能的“&”(見(jiàn)表)DSNAME=&TEMPDSDSNAME=&PAYOUT“()”,其作用為表示(括起):PDS及PDSE的成員名索引順序數(shù)據(jù)集(indexed sequential data set)的域名(area name)PDS及PDSE的生成數(shù)據(jù)集(generation data set)的代號(hào)(generation number)生成數(shù)據(jù)集的代號(hào)DSNAME=PDS1(MEMA)DSNAME=ISDS(PRIM

18、E)DSNAME=GDS(+1)標(biāo)識(shí)生成數(shù)據(jù)集代號(hào)的加號(hào)“+”及減號(hào)“-”DSNAME=GDS(-2)7JCL的位置參數(shù)與關(guān)鍵字參數(shù)最多只能由兩級(jí)子參數(shù)。也就是說(shuō)用于括起子參數(shù)列表的括號(hào)最多只能有兩層。四、JCL語(yǔ)句的位置在下面各界中我們將詳細(xì)討論各語(yǔ)句的書(shū)寫(xiě)方法,為了便于編寫(xiě)JCL,下面按照J(rèn)CL語(yǔ)句的放置順序來(lái)說(shuō)明它們的位置:JOB 語(yǔ)句。JOBLIB語(yǔ)句。JOBCAT及SYSCHK語(yǔ)句。任何流內(nèi)過(guò)程。第一個(gè)EXEC語(yǔ)句任何的STEPCAT、STEPLIB,或一般的屬于這一步的DD語(yǔ)句。任何更多的EXEC語(yǔ)句及與他們相關(guān)聯(lián)的DD語(yǔ)句。任何空語(yǔ)句。JCL語(yǔ)法實(shí)例作業(yè)語(yǔ)句 /EXPJOB JO

19、B ,USERNAME,MSGLEVEL=(1,1), EXAMPLE作業(yè)語(yǔ)句續(xù)行 / MSGCLASS=Q,CLASS=A /*注釋語(yǔ)句 /* IT IS A EXAMPLE * /*執(zhí)行語(yǔ)句 /STEP1 EXEC PGM=IEFBR14DD語(yǔ)句 /DD1 DD DSN=MJSN.TEAM01.ONE,DISP=(,CATLG),DD語(yǔ)句續(xù)行 / SPACE=(TRK,(5,2), UNIT=SYSDA DD語(yǔ)句 / DD1 DD DSN=MJSN.TEAM01.TWO,DISP=(,KEEP), DD語(yǔ)句續(xù)行 / SPACE=(TRK,(1,1), UNIT=SYSDA值得注意的是:在本

20、例中,采取了兩種注釋說(shuō)明的方式,一種為作業(yè)語(yǔ)句中的“EXAMLE”,這是在說(shuō)明區(qū)中說(shuō)明的方式;另一種則是注釋語(yǔ)句的方式。注釋語(yǔ)句以第13 列的“/*”開(kāi)始,可以將它放在JOB語(yǔ)句后的任何JCL語(yǔ)句的前面或后面來(lái)說(shuō)明JCL。JOB語(yǔ)句JOB語(yǔ)句標(biāo)志一個(gè)作業(yè)的開(kāi)始、分配作業(yè)名并設(shè)置相關(guān)的位置參數(shù)及關(guān)鍵字參數(shù),每個(gè)作業(yè)的第一個(gè)語(yǔ)句必須是JOB語(yǔ)句。JOB語(yǔ)句的格式如下:/作業(yè)名 JOB 位置參數(shù),關(guān)鍵字參數(shù),關(guān)鍵字參數(shù)。注釋說(shuō)明作業(yè)名作業(yè)名是用戶給作業(yè)指定的名字。為使操作系統(tǒng)識(shí)別作業(yè),必須選擇確定的作業(yè)名字,由于系統(tǒng)不能同時(shí)運(yùn)行具有相同名字得到作業(yè),因此只能給作業(yè)一個(gè)唯一確定的名字。一般來(lái)說(shuō),建議用

21、戶采用“用戶標(biāo)識(shí)USERID+數(shù)字或字符”的作業(yè)名,例如用戶標(biāo)識(shí)為JACK,則作業(yè)名可用JACKA。二、位置參數(shù) 作業(yè)語(yǔ)句中的位置參數(shù)有兩個(gè):記賬信息(accounting information):記賬信息位于操作符“JOB”后,它用于提供用戶使用系統(tǒng)的合法性、及時(shí)、紙張的收費(fèi)管理等。其格式為:(account-number,accounting-information)account-number:用戶賬號(hào);accounting-information:附加的記賬信息,如房間號(hào)、部門(mén)名等等。記賬信息參數(shù)及其子參數(shù)最多不可超過(guò)143個(gè)字符(包括分隔子參數(shù)的逗號(hào),但不包括括起子參數(shù)列表的括號(hào))

22、。例:/EXAMPLE1 JOB (D548-8686,12/8/98,PGMBIN)/EXAMPLE2 JOB D548-8686程序員名(programmers name)程序員名用于標(biāo)識(shí)作業(yè)的所有者(owner)信息,包括特殊字符在內(nèi),其長(zhǎng)度不得超過(guò)20個(gè)字符。例:/EXAMPLE1 JOB 2000,J.A.C.K/EXAMPLE2 JOB 2001,JACK/EXAMPLE3 JOB 2003,OSUN下面是幾個(gè)位置參數(shù)不同的書(shū)寫(xiě)格式的例子:帶有全部位置參數(shù)的作業(yè)語(yǔ)句:/JOBA JOB (20008,60),A.B.C,CLASS=S,缺省記賬信息的作業(yè)語(yǔ)句:/JOBB JOB ,

23、USER-NAME,CLASS=A, 不帶位置參數(shù)的作業(yè)語(yǔ)句:/JOBC JOB CLASS=Q,關(guān)鍵字參數(shù)JOB語(yǔ)句中的關(guān)鍵字參數(shù)有如下幾個(gè):ADDRSPC指明作業(yè)所需之存貯類(lèi)型,它有兩個(gè)子參數(shù):VIRT及REAL。VIRT表示作業(yè)請(qǐng)求虛擬頁(yè)式存貯,而REAL表示作業(yè)請(qǐng)求實(shí)存空間。缺省值為VIRT。其格式為:ADDRSPC=VIRT REAL例:/PEH JOB ,BAKER,ADDRSPC=VIRT/DEB JOB ,ERIC,ADDRSPC=REAL,REGION=100KBYTES指明打印作業(yè)的系統(tǒng)輸出數(shù)據(jù)集的最大千字節(jié)數(shù),同時(shí)該參數(shù)還指出當(dāng)超過(guò)所給出的最大字節(jié)數(shù)時(shí),系統(tǒng)對(duì)作業(yè)的處理方

24、式。這些方式包括:取消作業(yè)(轉(zhuǎn)儲(chǔ)(dump)或不轉(zhuǎn)儲(chǔ))或繼續(xù)作業(yè)并向操作員發(fā)出超過(guò)最大字節(jié)數(shù)的警告信息。其格式為:BYTE=nnnnn (nnnnnn,CANCEL) (nnnnnn,DUMP) (nnnnnn,WARNING)nnnnnn:指明打印輸出的最大千字節(jié)數(shù),例:nnnnnn取值500,則表示500,000字節(jié)。nnnnnn取值范圍為:0 999999。CANCEL:當(dāng)作業(yè)輸出字節(jié)數(shù)超過(guò)nnnnnn時(shí),系統(tǒng)將不轉(zhuǎn)儲(chǔ)而直接取消該作業(yè)。DUMP:當(dāng)作業(yè)輸出字節(jié)數(shù)超過(guò)nnnnnn時(shí),系統(tǒng)在取消該作業(yè)前將發(fā)出轉(zhuǎn)儲(chǔ)請(qǐng)求。WARNING:當(dāng)作業(yè)輸出字節(jié)數(shù)超過(guò)nnnnnn時(shí),作業(yè)繼續(xù)執(zhí)行,系統(tǒng)將按

25、照安裝時(shí)規(guī)定的時(shí)間間隔不斷向操作員發(fā)送警告信息。當(dāng)BYTE參數(shù)或其子參數(shù)省略不寫(xiě)時(shí),系統(tǒng)將采用安裝時(shí)定義的默認(rèn)值。例:/JOB1 JOB (123456),R F B,BYTES=(5000,CANCEL)/ JOB1 JOB (123456),R F B,BYTES=40除了BYTES參數(shù)外,JOB語(yǔ)句中還有另三個(gè)參數(shù)可以限制作業(yè)輸出的最大值,其格式及子參數(shù)的意義也與BYTES類(lèi)似,它們是:CARDS、LINES及PAGES。上述三個(gè)參數(shù)與BYTES不同之處在于子參數(shù)nnnnnn的單位不同,分別是:卡數(shù)、行數(shù)及頁(yè)數(shù),讀者可以類(lèi)推使用。CLASSCLASS 參數(shù)規(guī)定了作業(yè)的類(lèi)別,JCL中可選用

26、的作業(yè)類(lèi)別有36個(gè),用字母AZ及數(shù)字09表示。相同類(lèi)別的作業(yè)處于同一輸入隊(duì)列等待執(zhí)行(如圖3.2.1),并具有相同的處理屬性。作業(yè)類(lèi)別的屬性定義在JES中。當(dāng)CLASS參數(shù)缺省時(shí),JES將會(huì)根據(jù)安裝時(shí)的缺省值賦予該作業(yè)一個(gè)缺省的CLASS值。格式:CLASS=jobclass A D T S 輸 入 隊(duì) 列 /J1 JOB ,CLASS=A, /J2 JOB ,CLASS=T 4MSGCLASS用于為作業(yè)日志(job log)設(shè)置輸出類(lèi)別。作業(yè)日志是為程序員提供的與作業(yè)相關(guān)信息的記錄。當(dāng)該參數(shù)省略時(shí),系統(tǒng)將會(huì)采用默認(rèn)值。格式:MSGCLASS=classclass:定義作業(yè)日志的類(lèi)別。與輸入隊(duì)

27、列相似,class是一個(gè)AZ的字母或一個(gè)09的數(shù)字。例:/EXMP1 JOB ,GEORGE,MSGCLASS=F5MSGLEVEL用于控制JCL作業(yè)輸出清單的內(nèi)容,用戶可以要求系統(tǒng)打印出如下內(nèi)容:JCL語(yǔ)句;輸入流中的所有控制語(yǔ)句,即:所有的JCL語(yǔ)句及JES2或JES3語(yǔ)句;任何作業(yè)步調(diào)用的流內(nèi)過(guò)程和編目過(guò)程語(yǔ)句;作業(yè)控制語(yǔ)句的信息;JES及操作員對(duì)作業(yè)的處理信息:設(shè)備和卷的分配、作業(yè)步及作業(yè)的執(zhí)行和終止、數(shù)據(jù)集的處理等。格式:MSGLEVEL=(statements,messages) statements:指明在JCL作業(yè)輸出清單中應(yīng)打印出的作業(yè)控制語(yǔ)句的類(lèi)型,取值范圍為:0 2。取值

28、0:僅打印出作業(yè)的JOB語(yǔ)句;取值1:打印出作業(yè)中包括過(guò)程語(yǔ)句在內(nèi)的所有JCL語(yǔ)句;取值2:輸入流中的所有控制語(yǔ)句。messages:指明在JCL作業(yè)輸出清單中應(yīng)打印出信息的類(lèi)型,取值范圍為:0 1。取值0:只有在作業(yè)異常終止時(shí),打印出有關(guān)JCL、JES、操作員及SMS的處理信息;取值1:無(wú)論作業(yè)是否異常終止,都打印出有關(guān)JCL、JES、操作員及SMS的處理信息。例:/EXMP3 JOB ,MSGLEVEL=(2,1)/EXMP4 JOB ,MENTLE,MSGLEVEL=0/EXMP5 JOB ,MIKE,MSGLEVEL=(,0)6NOTIFY用于請(qǐng)求系統(tǒng)在后臺(tái)作業(yè)處理完畢時(shí)給指定用戶發(fā)送

29、信息。如果作業(yè)完成時(shí),該用戶未在系統(tǒng)登錄,則系統(tǒng)所發(fā)送的信息將會(huì)保留到此用戶下次登錄。格式:NOTIFY=useriduserid:必須以字母或通配符開(kāi)頭的17個(gè)字母、數(shù)字或通配符組成,其值必須是一個(gè)存在的TSO用戶標(biāo)識(shí)。例:/SIGN JOB ,TLOMP,NOTIFY=TSOUSER 7PRTY 用于為相應(yīng)的輸入隊(duì)列中的作業(yè)分配優(yōu)先級(jí)。系統(tǒng)根據(jù)作業(yè)優(yōu)先級(jí)的高低來(lái)選擇來(lái)選擇作業(yè)執(zhí)行,對(duì)于同一級(jí)的作業(yè)的選擇將采取“先進(jìn)先出”的原則。格式:PRTY=priority priority:用數(shù)字量來(lái)表示優(yōu)先級(jí),數(shù)字越大表示優(yōu)先級(jí)越高。根據(jù)作業(yè)進(jìn)入子系統(tǒng)的類(lèi)型,其取值范圍是JES2:015;JES3:

30、014。例:/JOBA JOB 1,JIM WEBSTER,PRTY=12 8REGION用于指定作業(yè)所需的實(shí)存或虛存空間的大小,系統(tǒng)將在該作業(yè)中的每一作業(yè)步使用該值。所需空間大小必須包含以下內(nèi)容:運(yùn)行所有程序所需的空間在運(yùn)行期間,程序中宏指令GETMAIN所需的所有附加空間任務(wù)初始化和終止時(shí)需要的自由空間如果JOB語(yǔ)句中的REGION參數(shù)省略不寫(xiě)的話,系統(tǒng)將采用每條EXEC語(yǔ)句中所定義的REGION參數(shù),當(dāng)EXEC語(yǔ)句中的REGION參數(shù)省略不寫(xiě)時(shí),系統(tǒng)將采用安裝缺省值。格式:REGION=valueK =valueM valueK:以千字節(jié)(Kb)為單位指出所需空間大小,value可取17

31、 位的十進(jìn)制數(shù),其取值范圍為12096128。系統(tǒng)以每4k為一存儲(chǔ)單位分配空間,所以value值應(yīng)取4的倍數(shù),如REGION=68K。當(dāng)value值不是4的倍數(shù)時(shí),系統(tǒng)會(huì)將其增至一最為接近的4的倍數(shù)的值。valueM:以兆字節(jié)(Mb)為單位指出所需空間大小,value可取14 位的十進(jìn)制數(shù),其取值范圍為12047注:REGION值必須是有效的存儲(chǔ)空間,如果取值為0或任何大于系統(tǒng)極限的值時(shí)都有可能會(huì)引起存儲(chǔ)問(wèn)題。當(dāng)系統(tǒng)未定義極限值時(shí),value值不能超過(guò)16384K或16M。例:/ACCT1 JOB A23,SMITH,REGION=100K,ADDRSPC=REAL/ACCT2 JOB 175

32、,FRED,REGION=250K9TIME用于指定作業(yè)占用處理器的最長(zhǎng)時(shí)間并可通過(guò)一些信息得知該作業(yè)占用處理器的時(shí)間。當(dāng)作業(yè)占用處理器時(shí)間超過(guò)指定值時(shí),系統(tǒng)將終止該作業(yè)。通常情況下,此參數(shù)不用設(shè)置。當(dāng)作業(yè)所需處理器時(shí)間長(zhǎng)于系統(tǒng)缺省值時(shí),或出于某種測(cè)試目的才設(shè)置此參數(shù)。格式:TIME=(minutes,seconds) =1440 =NOLIMIT =MAXIMUM minutes:指定作業(yè)可占用處理器最長(zhǎng)時(shí)間的分鐘數(shù),取值范圍為0357912(248.55天)。不可以將TIME參數(shù)寫(xiě)作TIME=0,這樣將導(dǎo)致不可預(yù)知的后果。Seconds:作為minutes的補(bǔ)充,定義指定作業(yè)可占用處理其最

33、長(zhǎng)時(shí)間的秒鐘數(shù),取值范圍為059。NOLIMIT:表明作業(yè)的運(yùn)行無(wú)時(shí)間限制,等同于TIME=1440。1440:表明表明作業(yè)的運(yùn)行無(wú)時(shí)間限制,即24小時(shí)。MAXIMUM:表示作業(yè)的運(yùn)行時(shí)間為357912分鐘。當(dāng)JOB語(yǔ)句中的TIME參數(shù)沒(méi)有指明時(shí),每作業(yè)步的運(yùn)行時(shí)間限制由以下值決定:在EXEC語(yǔ)句中TIME參數(shù)的值。當(dāng)EXE語(yǔ)句中沒(méi)有設(shè)置TIME參數(shù)時(shí),采用默認(rèn)的時(shí)間限制值(也就是JES默認(rèn)作業(yè)步時(shí)間限制值)。例1:/STD1 JOB ACCT271,TIME=(12,10)例2:/STD2 JOB ,GOR,TIME=(,30)例3:/FIRST JOB ,SMITH,TIME=2/STEP

34、1 EXEC PGM=READER,TIME=1 /STEP2 EXEC PGM=WRITER,TIME=1 在上例中,JOB語(yǔ)句中規(guī)定了2分鐘的作業(yè)運(yùn)行時(shí)間限制,每個(gè)作業(yè)步允許1分鐘,如果任何一個(gè)作業(yè)步的執(zhí)行時(shí)間超過(guò)1分鐘,作業(yè)將會(huì)異常終止。例4:/SECOND JOB ,JONES,TIME=3/STEP1 EXEC PGM=ADDER,TIME=2 /STEP2 EXEC PGM=PRINT,TIME=2 上例中,JOB語(yǔ)句中規(guī)定了3分鐘的作業(yè)運(yùn)行時(shí)間限制,每個(gè)作業(yè)步允許2分鐘,如果任何一個(gè)作業(yè)步的執(zhí)行時(shí)間超過(guò)2分鐘,作業(yè)將會(huì)異常終止。但兩個(gè)作業(yè)步的總共運(yùn)行時(shí)間不得超過(guò)作業(yè)運(yùn)行時(shí)間限制3

35、分鐘,也即:如果作業(yè)步1的運(yùn)行時(shí)間為1.56分鐘,則作業(yè)步2的運(yùn)行時(shí)間不得超過(guò)1.44分,否則作業(yè)也會(huì)異常終止。 10TYPRUN用于請(qǐng)求特殊的作業(yè)處理。TYPRUN可以告知系統(tǒng)如下要求:在JES2中,將輸入作業(yè)流直接拷貝到系統(tǒng)輸出數(shù)據(jù)集并對(duì)其進(jìn)行輸出處理。在JES2或JES3中,掛起一個(gè)作業(yè),直至某特定事件發(fā)生。當(dāng)該特定事件發(fā)生時(shí),操作員根據(jù)用戶的要求釋放該作業(yè),并允許系統(tǒng)選擇該作業(yè)執(zhí)行。使用JES2中的/*MASSAGE語(yǔ)句或JES3中的/*OPERATOR語(yǔ)句通知操作員釋放該作業(yè)。在JES2或JES3中,對(duì)作業(yè)的JCL進(jìn)行語(yǔ)法檢查。 值得注意的是:不能對(duì)已經(jīng)開(kāi)始的任務(wù)(task)設(shè)置該參

36、數(shù),否則該作業(yè)將會(huì)出錯(cuò)。 格式: TYPRUN=COPY HOLD JCLHOLD SCAN 子參數(shù)說(shuō)明:COPY(僅支持JES2): 請(qǐng)求JES2將輸入作業(yè)流直接拷貝到系統(tǒng)輸出數(shù)據(jù)集并對(duì)其進(jìn)行輸出處理。系統(tǒng)并不執(zhí)行該作業(yè)。系統(tǒng)輸出數(shù)據(jù)集的類(lèi)別與該作業(yè)JOB語(yǔ)句中MSGCLASS參數(shù)定義的信息類(lèi)別(massage class)相同。HOLD:請(qǐng)求系統(tǒng)在執(zhí)行作業(yè)之前將其掛起,等待某特定事件發(fā)生后,請(qǐng)求操作員將其釋放。如果在作業(yè)的輸入過(guò)程中出現(xiàn)錯(cuò)誤,JES將不會(huì)掛起該作業(yè)。JCLHOLD(僅支持JES2):請(qǐng)求JES2在JCL執(zhí)行前將其掛起,直到操作員將其釋放。SCAN:請(qǐng)求系統(tǒng)只對(duì)作業(yè)的JCL進(jìn)

37、行語(yǔ)法檢查,不執(zhí)行也不為其分配設(shè)備。例:/UPDTAE JOB ,HUBBARD/STEP1 EXEC PGM=LIBUTIL /LIST JOB ,HUBBARD,TYPRUN=HOLD/STEPA EXEC PGM=LIBLIST 上例中,作業(yè)UPDATE與LIST在同一個(gè)作業(yè)流中被提交執(zhí)行。作業(yè)UPDATE的功能是在庫(kù)中增加一個(gè)成員再刪除一個(gè)成員;作業(yè)LIST則列出該庫(kù)的成員目錄。顯然,LIST應(yīng)在UPDATE之后在執(zhí)行。作業(yè)LIST的JOB語(yǔ)句中設(shè)置的TYPRUN=HOLD使得保證了這一執(zhí)行順序。如果輸入流中或操作員已執(zhí)行了MONITOR JOBNAMES的命令,當(dāng)UPDATE執(zhí)行完后

38、,系統(tǒng)會(huì)通知控制臺(tái)操作員。操作員釋放作業(yè)后,系統(tǒng)可以選擇該作業(yè)執(zhí)行。 11其他參數(shù)在JCL的JOB語(yǔ)句中的關(guān)鍵字參數(shù)還有:COND、GROUP、PASSWORD、PERFORM、RD、RESTART、SECLABEL、USER,由于本書(shū)篇幅有限,在這里就不再一一介紹了,詳細(xì)的使用方法讀者可以參考MVS JCL Reference一書(shū)。EXEC語(yǔ)句EXEC語(yǔ)句標(biāo)明作業(yè)或過(guò)程中的每一作業(yè)步的開(kāi)始,并告知系統(tǒng)如何執(zhí)行該作業(yè)步。包括所有在EXEC語(yǔ)句中調(diào)用的過(guò)程中的所有作業(yè)步在內(nèi),一個(gè)作業(yè)最多可以有255個(gè)作業(yè)步。EXEC語(yǔ)句格式如下:/作業(yè)步名 EXEC 位置參數(shù),關(guān)鍵字參數(shù)符號(hào)參數(shù)=值 注釋一、作

39、業(yè)步名作業(yè)步名是可以省略不寫(xiě)的,如需標(biāo)明作業(yè)名時(shí),該作業(yè)名必須在該作業(yè)內(nèi)以及該作業(yè)調(diào)用的所有過(guò)程中是唯一的,它由18個(gè)字母或通配符開(kāi)頭的字符數(shù)字構(gòu)成。二、位置參數(shù)EXEC語(yǔ)句中的位置參數(shù)有兩個(gè):PGM和PROC。每條EXEC語(yǔ)句必須有且僅有一個(gè)位置參數(shù)或過(guò)程名。PGMPGM參數(shù)用于指明所要執(zhí)行的程序名。該程序必須是一個(gè)分區(qū)數(shù)據(jù)集(PDS)的成員或用作系統(tǒng)庫(kù)(system library)、私有庫(kù)(private library)及臨時(shí)庫(kù)(temporary library)的擴(kuò)充分區(qū)數(shù)據(jù)集(PDSE)的成員。程序名的調(diào)用方法分為直接調(diào)用和間接調(diào)用。格式:PGM=program-name *.s

40、tepname.ddname *.cstepname.ddnameprogram-name:program-name(程序名)指明要執(zhí)行程序的成員名或別名。程序名由由18個(gè)字母或通配符開(kāi)頭的字符數(shù)字構(gòu)成。*.stepname.ddname:表示要執(zhí)行的程序名由本作業(yè)步前名為“stepname”的作業(yè)步內(nèi)名為“ddname”的DD語(yǔ)句的DSN參數(shù)決定。:表示要執(zhí)行的程序名由本作業(yè)步前名為“stepname”的作業(yè)步里所調(diào)用過(guò)程內(nèi)名為“procstepname”的過(guò)程步中相應(yīng)名為“ddname”DD語(yǔ)句的DSN參數(shù)決定。在上述三種程序調(diào)用方法中,第一種為直接調(diào)用,而后兩種為

41、間接調(diào)用。間接調(diào)用采用向后參考的方法,這里的“后”指在本作業(yè)步讀入之前,已先讀入系統(tǒng)的本作業(yè)其它JCL語(yǔ)句。當(dāng)需調(diào)用的程序在系統(tǒng)庫(kù)(如SYS1.LINKLIB)或私有庫(kù)(由作業(yè)中的JOBLIB DD語(yǔ)句或本作業(yè)步中的STEPLIB DD定義)中時(shí)使用第一種調(diào)用方法;而當(dāng)需調(diào)用的程序在本作業(yè)步前的某一作業(yè)步創(chuàng)建的臨時(shí)庫(kù)中時(shí)采用后兩種調(diào)用方法。例:/JOBC JOB ,JOHN,MSGCLASS=H/STEP2 EXEC PGM=UPDT/DDA DD DSNAME=SYS1.LINKLIB(P40),DISP=OLD/STEP3 EXEC PGM=*.STEP2.DDA在上例中,名為STEP3的

42、EXEC語(yǔ)句采用程序間接調(diào)用方式,所調(diào)用的程序名由作業(yè)步STEP2中的名為DDA的DD語(yǔ)句決定,在該DD語(yǔ)句中定義了系統(tǒng)庫(kù)SYS1.LINKLIB,程序P40是該庫(kù)的一個(gè)成員。“P40”即STEP3中要調(diào)用執(zhí)行的程序名。關(guān)于DD語(yǔ)句的詳細(xì)情況我們將在3.2.5中討論。PROC指明作業(yè)步所要運(yùn)行的過(guò)程名。格式:PROC=procedure-nameprocedure-name procedure-name:需要調(diào)用的過(guò)程名,過(guò)程名由18個(gè)字母或通配符開(kāi)頭的字符數(shù)字構(gòu)成。所調(diào)用的過(guò)程名可以是:編目過(guò)程的成員名或別名。由PROC語(yǔ)句定義的流內(nèi)過(guò)程的過(guò)程名,該流內(nèi)過(guò)程必須在本作業(yè)內(nèi)且本作業(yè)步前定義。在

43、設(shè)定該參數(shù)時(shí),可直接寫(xiě)出過(guò)程名。例:/SP EXEC PROC=PAYWRKS/BK EXEC OPERATE關(guān)鍵字參數(shù)EXEC語(yǔ)句的關(guān)鍵字參數(shù)是可選的,這些參數(shù)制作用于本作業(yè)步。當(dāng)EXEC語(yǔ)句的位置參數(shù)指定程序名時(shí),關(guān)鍵字參數(shù)的寫(xiě)法同JOB語(yǔ)句;當(dāng)EXEC語(yǔ)句的位置參數(shù)指定編目或流內(nèi)過(guò)程時(shí),EXEC語(yǔ)句的關(guān)鍵字參數(shù)將覆蓋所調(diào)用過(guò)程中各EXEC語(yǔ)句的關(guān)鍵字參數(shù)。因此如果想僅覆蓋過(guò)程中的某個(gè)EXEC語(yǔ)句的關(guān)鍵字參數(shù),則應(yīng)在設(shè)置關(guān)鍵字參數(shù)時(shí),同時(shí)指出所調(diào)用過(guò)程的相關(guān)過(guò)程步的名字。書(shū)寫(xiě)形式如下:關(guān)鍵字參數(shù).過(guò)程步名=值下面將分別介紹EXEC語(yǔ)句中常用的關(guān)鍵字參數(shù):ACCT指明作業(yè)步所需的一個(gè)或多個(gè)記

44、賬信息子參數(shù)。記賬信息參子參數(shù)最多不可超過(guò)142個(gè)字符(包括分隔子參數(shù)的逗號(hào),但不包括括起子參數(shù)列表的括號(hào))。格式:ACCT.過(guò)程步名=(記賬信息)例: /STP3 EXEC PROC=LOOKUP,ACCT=(/83468)2ADDRSPC指明作業(yè)步所需之存貯類(lèi)型,它有兩個(gè)子參數(shù):VIRT及REAL。VIRT表示作業(yè)步請(qǐng)求虛擬頁(yè)式存貯,而REAL表示作業(yè)步請(qǐng)求實(shí)存空間,不能進(jìn)行頁(yè)式處理。缺省值為VIRT。EXEC語(yǔ)句中的ADDRSPC參數(shù)僅在本作業(yè)步中起作用,JOB語(yǔ)句中的ADDRSPC參數(shù)會(huì)覆蓋該作業(yè)中的所有EXEC語(yǔ)句中的ADDRSPC參數(shù)。 格式:ADDRSPC.過(guò)程步名=VIRT R

45、EAL例:/CAC1 EXEC PGM=A,ADDRSPC=VIRT/CAC2 EXEC PROC=B,ADDRSPC=REAL,REGION=100K3REGION用于指定作業(yè)步所需的實(shí)存或虛存空間的大小,系統(tǒng)僅在本作業(yè)步中使用該值。格式:REGION.過(guò)程步名=valueK =valueM EXEC語(yǔ)句中REGION的子參數(shù)定義與JOB語(yǔ)句中相同。例:/MKBOYLE EXEC PROC=A,REGION=100K,ADDRSPC=REAL/STEP6 EXEC PGM=CONT,REGION=250KTIME用于指定作業(yè)步占用處理器的最長(zhǎng)時(shí)間,并可通過(guò)作業(yè)輸出清單得知該作業(yè)步占用處理器的

46、時(shí)間。當(dāng)作業(yè)步占用處理器時(shí)間超過(guò)指定值時(shí),系統(tǒng)將終止該作業(yè)。格式:TIME.過(guò)程步名=(minutes,seconds) =1440 =NOLIMIT =MAXIMUM EXEC語(yǔ)句與JOB語(yǔ)句中的TIME參數(shù)的子參數(shù)的設(shè)置方法基本相同。值得注意的是:在JOB語(yǔ)句中不可設(shè)置TIME=0,而在EXEC語(yǔ)句中則可以設(shè)置TIME=0,當(dāng)TIME=0時(shí)表示本作業(yè)步的執(zhí)行時(shí)間由前面作業(yè)步的剩余執(zhí)行時(shí)間決定。例1:/STP1 EXEC PGM=ACCT,TIME=(12,10)例2:/STP2 EXEC PGM=PAY,TIME=(,30)例3:/FIRST JOB ,SMITH MSGLEVEL=(1,

47、1)/STEP1 EXEC PGM=READER,TIME=1 /STEP2 EXEC PGM=WRITER 在上例中,STEP1規(guī)定了1分鐘的執(zhí)行時(shí)間,STEP2的運(yùn)行時(shí)間將由STEP1決定,也即STEP2的執(zhí)行時(shí)間為:(1分鐘 STEP2實(shí)際運(yùn)行時(shí)間)。COND用于對(duì)先前作業(yè)步執(zhí)行的返回碼(return code)進(jìn)行測(cè)試,以決定是否執(zhí)行本作業(yè)步。用戶可以對(duì)特定作業(yè)步的返回碼進(jìn)行測(cè)試也可以對(duì)每一執(zhí)行完畢的的返回碼都進(jìn)行測(cè)試。如果測(cè)試條件不滿足,系統(tǒng)執(zhí)行本作業(yè)步;如果測(cè)試條件滿足系統(tǒng)則不執(zhí)行該作業(yè)步。作業(yè)中的第一個(gè)EXEC語(yǔ)句中的COND參數(shù)將被系統(tǒng)忽略。注意,當(dāng)測(cè)試條件滿足時(shí),系統(tǒng)并非不正

48、常終止該作業(yè)步,而只是跳過(guò)該作業(yè)步,該作業(yè)仍將正常執(zhí)行。格式:(1)COND.過(guò)程步名=(code,operator)(2)COND.過(guò)程步名=(code,operator,作業(yè)步名,過(guò)程步名) ,(code,operator,作業(yè)步名,過(guò)程步名),EVEN) ,ONLY(3)COND=EVEN COND=ONLY利用COND參數(shù)最多可以有8個(gè)返回碼測(cè)試,如果有EVEN或ONLY時(shí),最多有7個(gè)測(cè)試。格式(1)只有在先前作業(yè)步?jīng)]有非正常終止時(shí),才能進(jìn)行該測(cè)試。格式(2)、(3)測(cè)試決定于EVEN和ONLY的設(shè)置。code:系統(tǒng)使用code(測(cè)試碼)與先前作業(yè)步或某特定作業(yè)步的返回碼進(jìn)行比較。Co

49、de的取值范圍為:04095。operater:表示code與返回碼的比較類(lèi)型,這些比較的操作符是:GT(大于)、GE(大于等于)、EQ(等于)、NE(不等于)、LT(小于)、LE(小于等于)。作業(yè)步名:指定先前某一作業(yè)步,并用該作業(yè)步的返回碼與本作業(yè)步的測(cè)試碼進(jìn)行比較。當(dāng)省略作業(yè)步名時(shí),表示本作業(yè)步的測(cè)試碼將與先前所有作業(yè)定額的返回碼進(jìn)行比較測(cè)試。作業(yè)步名.過(guò)程步名:指定先前某一作業(yè)步調(diào)用過(guò)程的過(guò)程步。系統(tǒng)將用該過(guò)程步的返回碼與給定的測(cè)試碼進(jìn)行比較。其中該作業(yè)步由“作業(yè)步名”指定,而過(guò)程步由“過(guò)程步名”指定。EVEN:表示無(wú)論即使先前作業(yè)步異常終止,本作業(yè)步都要執(zhí)行。當(dāng)EVEN子參數(shù)設(shè)定時(shí):

50、不測(cè)試先前任何的異常終止作業(yè)步的返回碼。測(cè)試那些正常完成的作業(yè)步的返回碼,如果測(cè)試條件全部不滿足的話,本作業(yè)步將執(zhí)行。 ONLY:表示只有先前作業(yè)步異常終止,本作業(yè)步才執(zhí)行。當(dāng)ONLY子參數(shù)設(shè)定時(shí):不測(cè)試先前任何的異常終止作業(yè)步的返回碼。測(cè)試那些正常完成的作業(yè)步的返回碼,如果測(cè)試條件全部不滿足的話,本作業(yè)步將執(zhí)行。EVEN與ONLY的具體情況見(jiàn)下表:EVEN/ ONLY先前作業(yè)步是否異常終止?測(cè)試條件是否滿足?本作業(yè)步是否執(zhí)行?EVEN否否是EVEN否是否EVEN是否是EVEN是是否ONLY否否否ONLY否是否ONLY是否是ONLY是是否例1/STEP6 EXEC PGM=DISKUTIL,C

51、OND=(4,GT,STEP3)在本例中如果STEP3的返回碼小于4,系統(tǒng)將不執(zhí)行STEP6。由于沒(méi)有設(shè)置EVEN或ONLY,如果先前的作業(yè)步異常終止,系統(tǒng)將不會(huì)執(zhí)行本作業(yè)步。例2/TEST2 EXEC PGM=DUMPINT,COND=(16,GE),(90,LE,STEP1),ONLY)由于設(shè)置了ONLY子參數(shù),系統(tǒng)只在以下兩種情況滿足時(shí)執(zhí)行本作業(yè)步:先前作業(yè)步異常終止;返回值的測(cè)試條件都不滿足。那么對(duì)于本例來(lái)說(shuō),系統(tǒng)將會(huì)在以下三種情況都滿足的情況下執(zhí)行本作業(yè)步:一個(gè)先前作業(yè)步異常終止。所有先前作業(yè)步的返回碼大于等于17。STEP1的返回碼小于等于89。例3/STEP1 EXEC PGM=

52、CINDY /STEP2 EXEC PGM=NEXT,COND=(4,EQ,STEP1) /STEP3 EXEC PGM=LAST ,COND=(8,LT,STEP1),(8,GT,STEP2) 在本例中,如果STEP1的返回碼為4,STEP2 將不被執(zhí)行。在STEP3執(zhí)行前,系統(tǒng)將執(zhí)行第一個(gè)返回碼測(cè)試。而由于STEP2并未被執(zhí)行,所以將不會(huì)進(jìn)行第二個(gè)返回碼的測(cè)試。由于8大于4所以STEP3被執(zhí)行。例4/STP4 EXEC PROC=BILLING,COND.PAID=(20,LT),EVEN),/ COND.LATE=(60,GT,FIND),/ COND.BILL=(20,GE),(30,

53、LT,CHGE)在本例中的EXEC語(yǔ)句調(diào)用了一個(gè)名叫BILLING的過(guò)程。這條語(yǔ)句中定義了幾個(gè)不同的分別對(duì)過(guò)程步PAID、LATE、BILL的返回碼的測(cè)試。由于設(shè)置了EVEN子參數(shù),除非相應(yīng)的返回值測(cè)試滿足條件,那么即使先前作業(yè)步異常終止,過(guò)程步PAID都將被執(zhí)行。PARM用于向本作業(yè)步執(zhí)行的程序傳遞變量信息。該程序必須有相應(yīng)的指令接收這些信息,并使用它們。格式:PARM.過(guò)程步名= 子參數(shù)PARM.過(guò)程步名=( 子參數(shù), 子參數(shù))PARM.過(guò)程步名=(子參數(shù), 子參數(shù)) PARM.過(guò)程步名=子參數(shù), 子參數(shù)括所有的逗號(hào)、撇號(hào)以及括號(hào)在內(nèi),所有子參數(shù)的總長(zhǎng)度不得超過(guò)100個(gè)字符。當(dāng)某子參數(shù)中含

54、有特殊字符或空格時(shí),可以將該子參數(shù)用撇號(hào)括起來(lái),在其它子參數(shù)一起用括號(hào)括起來(lái),或?qū)⑺性趨?shù)用撇號(hào)括起來(lái)。子參數(shù):包含傳遞給程序的變量信息。 例1/RUN3 EXEC PGM=APG22,PARM=P1,123,P2=5在本例中,系統(tǒng)將參數(shù)P1、123及P2=5傳遞給程序APG22。例2/ STP6 EXEC PROC=ASFCLG,PARM.LKED=(MAP,LET)在本例中系統(tǒng)將MAP、LET傳遞到過(guò)程ASFCLG中名為L(zhǎng)KED的過(guò)程步。DD語(yǔ)句數(shù)據(jù)定義語(yǔ)句(DD語(yǔ)句)用于定義一個(gè)數(shù)據(jù)集以及該數(shù)據(jù)集所需的輸入輸出資源。DD語(yǔ)句相對(duì)與前面介紹過(guò)的JOB語(yǔ)句和EXEC語(yǔ)句來(lái)說(shuō),其參數(shù)的定義、子參數(shù)的設(shè)置要復(fù)雜一些,在本小節(jié)內(nèi)我們將僅討論DD語(yǔ)句的一般規(guī)則以及部分位置參數(shù),關(guān)于DD語(yǔ)句的一些常用參數(shù)以及特殊用法我們將用單獨(dú)的一節(jié)討論。格式:/dd名 DD 位置參數(shù),關(guān)鍵字參數(shù) 注釋 過(guò)程步名.dd名/dd名 DD 過(guò)程步名.dd名 二、dd名“dd名”是為DD語(yǔ)句定義的名字,它由18個(gè)字母或通配符開(kāi)頭的字符數(shù)字構(gòu)成。在一個(gè)作業(yè)步內(nèi)可以有多個(gè)DD語(yǔ)句,但每個(gè)DD語(yǔ)句的dd名在本作業(yè)步中應(yīng)該是唯一確定的?!癲d名”可以由系統(tǒng)定義也可以由用戶自己定義,當(dāng)用戶需要調(diào)用公用程序時(shí),

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論