作業(yè)控制語言簡介1_第1頁
作業(yè)控制語言簡介1_第2頁
作業(yè)控制語言簡介1_第3頁
作業(yè)控制語言簡介1_第4頁
作業(yè)控制語言簡介1_第5頁
已閱讀5頁,還剩132頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

作業(yè)控制語言楊夢寧mnyang@基本概念主機(jī)包含的單元:處理器(Processor)Mainfram大型主機(jī),ES9000,S/390,zSeries輸入/輸出設(shè)備(Input/OutputDevice)Disk硬盤,如3390,3380Reader讀卡器(少用)Printer打印機(jī),如4248,3828,3800Terminal終端,如3270終端Punch打孔機(jī)(少用)Tape磁帶機(jī),如3490,3480操作系統(tǒng)(OperatingSystem)程序(Programs)數(shù)據(jù)(Data)基本概念作業(yè)包含下列信息:程序(Program)數(shù)據(jù)集(DataSets)外部設(shè)備(Devices)磁盤卷(Volumes)數(shù)據(jù)空間(Space)數(shù)據(jù)集屬性(DataSetAttributes)JCL語句將這些信息傳遞給系統(tǒng)JES系統(tǒng)概念在工作執(zhí)行前后,JES負(fù)責(zé)-接收作業(yè)-準(zhǔn)備執(zhí)行作業(yè)-在DASD臨時存儲直到OS390準(zhǔn)備好接收-選擇OS390執(zhí)行的作業(yè)在工作執(zhí)行時,JES負(fù)責(zé)-HANDLE輸出-執(zhí)行結(jié)束后,清除工作Input/Output設(shè)備DISKREADERTERMINALPUNCHHOSTSPRINTERTAPEInput/Output數(shù)據(jù)PROG1PROG2PROG3DATADATAInput/Output數(shù)據(jù)程序通常需要輸入和輸出數(shù)據(jù)數(shù)據(jù)存放在數(shù)據(jù)集中提交至系統(tǒng)的作業(yè)必須指明相關(guān)的數(shù)據(jù)集作業(yè)作業(yè)(Job)-用戶在完成某任務(wù)時要求計算機(jī)所做工作的集合。在大型服務(wù)器系統(tǒng)中,當(dāng)用戶需要使用計算機(jī)完成某項任務(wù)時,用戶必須準(zhǔn)備一個作業(yè)流(JobStream),作業(yè)流中包含一個或多個作業(yè)。作業(yè)控制語言作業(yè)控制語言JCL(JobControlLanguage)-用戶與操作系統(tǒng)的接口。用戶通過JCL的相應(yīng)語句與操作系統(tǒng)通訊,獲得作業(yè)所需的資源,并按自己的意圖來控制作業(yè)的執(zhí)行。JCL由幾個語句組成,對于一個作業(yè),JCL為被執(zhí)行的任務(wù)引導(dǎo)操作系統(tǒng),并注釋所需要的全部I/O設(shè)備。作業(yè)步作業(yè)步-在一個作業(yè)中,每一次程序的執(zhí)行就稱為一個作業(yè)步。一個作業(yè)可包含幾個作業(yè)步,一般的,一個作業(yè)由以下相對獨(dú)立的三步組成:(1)編譯:把源程序語句(源模塊)轉(zhuǎn)換成目標(biāo)模塊;作業(yè)步(2)鏈接編輯:把目標(biāo)模塊同子程序庫中的其他程序鏈接起來得到可執(zhí)行模塊;(3)執(zhí)行:運(yùn)行可執(zhí)行模塊得到結(jié)果。一個作業(yè)中的各步是順序執(zhí)行的,因此上一個作業(yè)步的輸出可以作為下一個作業(yè)步的輸入?;靖拍畲笮头?wù)器系統(tǒng)中用戶的作業(yè)可以由一個或多個作業(yè)步構(gòu)成。只有一個作業(yè)步的作業(yè)叫做單步作業(yè);由多個作業(yè)步構(gòu)成的作業(yè)叫做多步作業(yè)。不論單步作業(yè)還是多步作業(yè)都必須包含三個JCL基本語句(JCLStatement)。JCL基本語句(1)作業(yè)語句(JOB):標(biāo)識一個作業(yè)的開始,提供必要的運(yùn)行參數(shù)。(2)執(zhí)行語句(EXEC):標(biāo)識一個作業(yè)步的開始,定義本作業(yè)步所要執(zhí)行的程序或過程。(3)數(shù)據(jù)定義語句(DD):用于描述應(yīng)用程序所需要的數(shù)據(jù)文件。Example下面我們來看一個多步作業(yè)的例子://JOB1JOB…

//STEP1EXEC…//DD1DD…作業(yè)步1//STEP2EXEC…//INDD1DD…作業(yè)步2//INDD2DD…//作業(yè)控制語句在大型服務(wù)器系統(tǒng)中,作業(yè)控制語句有兩種類型:一類是JES2控制語句(負(fù)責(zé)控制作業(yè)和給作業(yè)提供參數(shù));另一類就是JCL。作業(yè)控制語言由九種語句組成,分別是:三種基本語句:JOB,EXEC和DD。六種附加語句:(1)/*語句:表示流內(nèi)數(shù)據(jù)結(jié)束或調(diào)用JES控制語句;(2)//*語句:注釋語句,由第4到第80列寫出注釋內(nèi)容;作業(yè)控制語句(3)//語句:空語句,用以標(biāo)記一個作業(yè)的結(jié)束;(4)PROC語句:流內(nèi)過程(IN-STREAMPROCEDURE)或編目過程(CATALOGEDPROCEDURE)的起始標(biāo)記。(5)PEND語句:標(biāo)志一個流內(nèi)過程的結(jié)束。(6)Command語句:操作員用這個語句在輸入流中寫入操作命令。Example下面我們再來看一個單步作業(yè)的JCL實例://BACKUPJOB,’EXAMPLEJOB’//*ITISAEXAMPLE!*//STEP1EXECPGM=IEBGENER//STEPLIBDD//DSN=SYS1.LINKLIB,DISP=SHR//SYSINDDDUMMYExampleCont.//SYSPRINTDDSYSOUT=A//SYSUT1DDDSN=PR.MASTER,DISP=OLD//SYSUT2DD//DSN=PR.MAILY.BACKUP,//DISP=(NEW,CATLG),UNIT=TAPE,//DCB=(RECFM=FB,LRECL=200,//BLKSIZE=1000)/*JCL的語法規(guī)則與計算機(jī)語言一樣,JCL有一套嚴(yán)格的語法規(guī)則,不僅如此,JCL還有嚴(yán)格的語句格式規(guī)范。用戶只有嚴(yán)格按照這些規(guī)則來編寫作業(yè)控制程序,系統(tǒng)才能按照其意圖正確完成用戶的作業(yè),否則系統(tǒng)就會給出錯誤信息,甚至產(chǎn)生不可預(yù)知的后果。

JCL字符集(1)

字母26個(2)

數(shù)字10個(3)

特殊字符(共10個),./()*&+-=(4)

通配符(共3個)@$#(5)

關(guān)系字符集(共6個)GT,GE,EQ,LT,NE,LE特殊字符字符功能,分隔參數(shù)和子參數(shù)=分隔關(guān)鍵字參數(shù)與它的值,例:CLASS=A()括起子參數(shù)列表或PDS、PDSE的成員名&標(biāo)志一個符號參數(shù)(symbolicparameter),例:&LIB&&標(biāo)志一個臨時數(shù)據(jù)集名(temporarydatasetname)例:&&TEMPDS標(biāo)志一個流內(nèi)或系統(tǒng)輸出(sysout)數(shù)據(jù)集名,例:&&PAYOUT特殊字符字符功能.分隔受限數(shù)據(jù)集(qualifieddataset)名字的各部分,例:A.B.C分隔一些特定參數(shù)與子參數(shù)的各部分,例:nodename.userid*提及一條先前的語句,例:OUTPUT=*.name,或在特定的語句內(nèi),標(biāo)志特定的功能,例://ddnameDD*特殊字符字符功能‘’括起含有特殊字符的參數(shù)值空格劃分域一般語句格式規(guī)范在JCL中,除/*語句外的所有語句均以第一、二列的//符號作為開始標(biāo)志,系統(tǒng)規(guī)定這些語句的長度為80列。這80列在邏輯上被劃分為五個區(qū)域,分別是標(biāo)識符區(qū)、名字區(qū)、操作符區(qū)、參數(shù)區(qū)和注釋區(qū),即:一般語句格式規(guī)范標(biāo)識符區(qū)名字區(qū)操作符區(qū)參數(shù)區(qū)注釋區(qū)//名字操作符參數(shù)說明標(biāo)識符區(qū)一般情況下,標(biāo)識符區(qū)的符號為“//”,該符號表明該條語句為JCL語句,標(biāo)識符區(qū)位于每條語句的第一、二列。在特殊情況下,標(biāo)識符區(qū)的符號可以是“/*”語句和“//*語句。名字區(qū)名字區(qū)指明一個語句,便于系統(tǒng)控制塊或其他語句識別。名字可以由1~8個字母數(shù)字或通配符組成,但第一個字符必須是字母或通配符(#,@,$),且必須從第三列開始。名字區(qū)后必須跟一個或多個空格,可以選擇名字表達(dá)出這個JCL語句的作用。Example下面給出若干例子:CorrectWrong//Z//9Z//BACKUP#1//TAPEBACKUP//#99//TEST*9//$EXAM//EXAM(0)建議:用比較有意義的名字。操作符區(qū)操作符區(qū)位于名字區(qū)之后,規(guī)定了語句的類型:JOB、EXEC、DD、PROC、PEND或操作員命令。名字區(qū)后必須跟一個或多個空格。例如://EXAMPLEJOB//STEP1EXEC//INDD1DD參數(shù)區(qū)參數(shù)區(qū)在操作符區(qū)之后,其中包括被逗號分隔的參數(shù),參數(shù)由事先規(guī)定好的關(guān)鍵字組成,對于這些參數(shù)其數(shù)值必須是可被代換的變值。參數(shù)區(qū)沒有固定的長度及列的要求。例如://EXAMPLEJOB2000,CLASS=A//STEP1EXECPGM=IEYFORT//PRINTDDSYSOUT=A注釋區(qū)注釋區(qū)位于參數(shù)區(qū)后,用于對相應(yīng)語句進(jìn)行注釋說明,它可以是任何需要的注釋信息,注釋區(qū)后必須跟一空格。需要注意的是,僅當(dāng)參數(shù)出現(xiàn)時才能書寫注釋信息,不然容易與參數(shù)混淆。下面是一個注釋區(qū)的例子:

//EXAMPLEJOB,CLASS=AITISACOMMENT注意:不建議采用這種注釋方式

關(guān)于續(xù)行的說明JCL只允許在參數(shù)區(qū)和注釋區(qū)有續(xù)行,當(dāng)需要續(xù)行時,在當(dāng)前行的第71列前必須將某個參數(shù)或某個子參數(shù)以及參數(shù)后的逗號寫完整,且下一行第1、2列為“//”,第3列為空格,續(xù)行的內(nèi)容只能從4~16列開始,如從16列后開始,將被認(rèn)為是注釋語句。下面是一個續(xù)行的例子://DATADDDSN=SYS1.FORTLIB,//DISP=OLDExample//DD1DDDSNAME=STU118.GROUP12,//UNIT=3390,VOLUME=335230,//SPACE=(TRK,(8),15)),DISP=(,PASS)參數(shù)續(xù)行從第四列開始參數(shù)規(guī)則在JCL中,參數(shù)區(qū)內(nèi)的參數(shù)的類型分為兩類:(1)位置參數(shù)(positional):參數(shù)的含義與它在各個參數(shù)中的前后順序有關(guān),當(dāng)位置參數(shù)有子參數(shù)時,子參數(shù)也必須按順序排列在圓括號內(nèi),位置參數(shù)之間以及子參數(shù)之間用逗號分隔。規(guī)則如下:用逗號表示缺??;如果是最后一個位置參數(shù)省略,不需要用逗號;如果全部位置參數(shù)省略,不需要用逗號。Example//DD1OPER//POS1,POS2,KEY3=C,KEY1=A//DD2OPER,POS2,KEY2=B//DD3OPERPOS1,KEY2=B//DD4OPERKEY3=C,KEY1=A參數(shù)規(guī)則(2)關(guān)鍵字參數(shù)(keyword):由一個關(guān)鍵字和等號后面的可變數(shù)據(jù)組成。關(guān)鍵字參數(shù)和位置參數(shù)不一樣,關(guān)鍵字的意義與順序無關(guān)。參數(shù)規(guī)則如果在一個語句內(nèi)既有位置參數(shù)又有關(guān)鍵字參數(shù)時,所有的關(guān)鍵字參數(shù)必須位于位置參數(shù)之后。例如://EXAMPLEJOB2000,CLASS=A

位置參數(shù)關(guān)鍵字參數(shù)參數(shù)的書寫規(guī)則1.位置參數(shù)和關(guān)鍵字參數(shù)之間必須用逗號分開,不允許有空格。值得注意的是,在JCL語句中錯寫空格,會導(dǎo)致非常難以查出的錯誤。

參數(shù)的書寫規(guī)則2.必須按規(guī)定的次序書寫參數(shù):所有的關(guān)鍵字參數(shù)必須位于位置參數(shù)之后,而所有位置參數(shù)也必須按規(guī)定排列。3.當(dāng)缺省某個位置參數(shù)或某個子參數(shù)時,應(yīng)以一個逗號指明所在位置。當(dāng)缺省最后一個位置參數(shù)時,逗號可以省略。Example例如://EXPJOB(2000,,9),CLASS=A//SYSTEMJOB,SYSTEM,CLASS=S,//MSGLEVEL=(0,0)參數(shù)的書寫規(guī)則4.當(dāng)沒有任何位置參數(shù)時,可以不必書寫任何內(nèi)容表示。//EXPJOBCLASS=A5.關(guān)鍵字參數(shù)之間沒有相對位置的規(guī)定,可以按任何次序排列。//EXPJOB2000,CLASS=A,MSGLEVEL=1也可寫作://EXPJOB2000,MSGLEVEL=1,CLASS=A參數(shù)的書寫規(guī)則6.允許含有特殊字符的參數(shù)或子參數(shù),且其中的特殊字符并非起某種特定的語法功能時,必須用撇號‘’替代括號將這些參數(shù)和子參數(shù)括起來。例:ACCT=’123+456’。參數(shù)的書寫規(guī)則7.JCL的位置參數(shù)與關(guān)鍵字參數(shù)最多只能由兩級子參數(shù)。也就是說用于括起子參數(shù)列表的括號最多只能有兩層。

JCL語句1.JOB語句。2.JOBLIB語句。3.JOBCAT及SYSCHK語句。4.任何流內(nèi)過程。5.EXEC語句。6.任何的STEPCAT、STEPLIB,或一般的屬于這一步的DD語句。7.任何空語句。JCL語句//commandJCLcommandEntersanMVSsystemoperatorcommandthroughtheinputstream.Thecommandstatementisusedprimarilybytheoperator.UsetheCOMMANDstatementinsteadoftheJCLcommandstatement.JCL語句//COMMANDcommandSpecifiesanMVSorJEScommandthatthesystemissueswhentheJCLisconverted.UsetheCOMMANDstatementinsteadoftheJCLcommandstatement.JCL語句//*commentcommentContainscomments.Thecommentstatementisusedprimarilytodocumentaprogramanditsresourcerequirements.//CNTLcontrolMarksthebeginningofoneormoreprogramcontrolstatements.//DDdatadefinitionIdentifiesanddescribesadataset.JCL語句/*delimiterIndicatestheendofdataplacedintheinputstream.Note:Ausercandesignateanytwocharacterstobethedelimiter.JCL語句//ENDCNTLendcontrolMarkstheendofoneormoreprogramcontrolstatements.//EXECexecuteMarksthebeginningofajobstep;assignsanametothestep;identifiestheprogramorthecatalogedorin-streamproceduretobeexecutedinthisstep.JCL語句//IF/THEN/ELSE/ENDIFSpecifiesconditionalexecutionofjobstepswithinajob.//INCLUDEincludeIdentifiesamemberofapartitioneddataset(PDS)orpartitioneddatasetextended(PDSE)thatcontainsJCLstatementstoincludeinthejobstream.JCL語句//JCLLIBJCLlibraryIdentifiesthelibrariesthatthesystemwillsearchfor:1.INCLUDEgroups2.ProceduresnamedinEXECstatements.//JOBjobMarksthebeginningofajob;assignsanametothejob.JCL語句//nullMarkstheendofajob//OUTPUToutputJCLSpecifiestheprocessingoptionsthatthejobentrysubsystemistouseforprintingasysoutdataset.//PENDprocedureendMarkstheendofanin-streamorcatalogedprocedure.JCL語句//PROCprocedureMarksthebeginningofanin-streamprocedureandmaymarkthebeginningofacatalogedprocedure;assignsdefaultvaluestoparametersdefinedintheprocedure.//SETsetDefinesandassignsinitialvaluestosymbolicparametersusedwhenprocessingJCLstatements.Changesornullifiesthevaluesassignedtosymbolicparameters.JCL語法實例作業(yè)語句//EXPJOBJOB,’USERNAME’,MSGLEVEL=(1,1),作業(yè)語句續(xù)行//MSGCLASS=Q,CLASS=A//**********************注釋語句//*ITISAEXAMPLE*//**********************執(zhí)行語句//STEP1EXECPGM=IEFBR14DD語句//DD1DDDSN=MJSN.TEAM01.ONE,DISP=(,CATLG),DD語句續(xù)行//SPACE=(TRK,(5,2)),UNIT=SYSDADD語句//DD2DDDSN=MJSN.TEAM01.TWO,DISP=(,KEEP),DD語句續(xù)行//SPACE=(TRK,(1,1)),UNIT=SYSDAJOB語句JOB語句標(biāo)志一個作業(yè)的開始、分配作業(yè)名并設(shè)置相關(guān)的位置參數(shù)及關(guān)鍵字參數(shù),每個作業(yè)的第一條語句必須是JOB語句,且僅有一條。JOB語句的格式如下://作業(yè)名JOB位置參數(shù)[,關(guān)鍵字參數(shù)][,關(guān)鍵字參數(shù)]…[注釋說明]作業(yè)名-JOBNAME作業(yè)名是用戶給作業(yè)指定的名字,為使操作系統(tǒng)識別作業(yè),必須選擇合適的作業(yè)名字,由于系統(tǒng)不能同時運(yùn)行具有相同名字的作業(yè),因此只能給作業(yè)一個唯一的名字。一般來說,建議用戶采用“用戶標(biāo)識USERID+數(shù)字或字符”的作業(yè)名,例如用戶標(biāo)識為JACK,則作業(yè)名可用JACKA(也是出于安全控制的考慮)。位置參數(shù)作業(yè)語句中的位置參數(shù)有兩個:1.記賬信息(accountinginformation):記賬信息位于操作符JOB后,它用于提供用戶使用系統(tǒng)的合法性、時間和紙張的收費(fèi)管理等。其格式為:([account-number][,accounting-information]…)account-number:用戶賬號;accounting-information:附加的記賬信息,如房間號和部門名等等。位置參數(shù)記賬信息參數(shù)及其子參數(shù)最多不可超過143個字符,特殊字符用單引號(包括分隔子參數(shù)的逗號,但不包括括起子參數(shù)列表的括號)。例如://EXAMPLE1JOB//(D548-8686,’12/8/98’,PGMBIN)//EXAMPLE2JOBD548-8686位置參數(shù)2.程序員名(programmer’sname)程序員名用于標(biāo)識作業(yè)的所有者(owner))信息,包括特殊字符在內(nèi),其長度不得超過20個字符,特殊字符用單引號包含。例如://EXAMPLE1JOB2000,J.A.C.K//EXAMPLE2JOB2001,JACK//EXAMPLE3JOB2003,‘OSUN’Example下面是幾個位置參數(shù)不同的書寫格式的例子:1.帶有全部位置參數(shù)的作業(yè)語句://JOBAJOB(20008,60),A.B.C,CLASS=S,…2.缺省記賬信息的作業(yè)語句://JOBBJOB,USER-NAME,CLASS=A,…3.不帶位置參數(shù)的作業(yè)語句://JOBCJOBCLASS=Q,…關(guān)鍵字參數(shù)CLASS指定輸入隊列COND指定作業(yè)執(zhí)行條件LINES輸出行數(shù)控制MSGCLASS指定輸出隊列MSGLEVEL顯示作業(yè)輸出信息NOTIFY作業(yè)結(jié)束時通知TSO用戶REGION指定作業(yè)使用的最大虛存RESTART控制作業(yè)的重新啟動TIME指定作業(yè)執(zhí)行的最大時間TYPRUN執(zhí)行類型控制ADDRSPC指定作業(yè)所需的存儲空間類型REGION指定存儲空間的大小PARM指明作業(yè)的參數(shù)關(guān)鍵字參數(shù)JOB語句中的關(guān)鍵字參數(shù)有如下幾個:

1.ADDRSPC指明作業(yè)所需之存貯類型,它有兩個子參數(shù):VIRT及REAL。VIRT表示作業(yè)請求虛擬頁式存貯,而REAL表示作業(yè)請求實存空間。缺省值為VIRT。其格式為:ADDRSPC={VIRT}{REAL}Example例如://PEHJOB,BAKER,ADDRSPC=VIRT//DEBJOB,ERIC,ADDRSPC=REAL,//REGION=100KCLASSCLASS參數(shù):-將作業(yè)置于JES輸入隊列;-一個字符,A-Z,0-9;-如果不指定CLASS,JES使用初始化時缺省的CLASS。CLASSCLASS參數(shù)規(guī)定了作業(yè)的類別,JCL中可選用的作業(yè)類別有36個,用字母A~Z及數(shù)字0~9表示。相同類別的作業(yè)處于同一輸入隊列等待執(zhí)行,并具有相同的處理屬性。作業(yè)類別的屬性定義在JES中,當(dāng)CLASS參數(shù)缺省時,JES將會根據(jù)安裝時的缺省值賦予該作業(yè)一個缺省的CLASS值。格式:CLASS=jobclassMSGCLASSMSGCLASS參數(shù)-控制輸出CLASS;-一個字符,A-Z,0-9;-缺省與CLASS參數(shù)一致。MSGCLASS用于為作業(yè)日志(joblog)設(shè)置輸出類別。作業(yè)日志是為程序員提供的與作業(yè)相關(guān)信息的記錄。當(dāng)該參數(shù)省略時,系統(tǒng)將會采用默認(rèn)值。格式:MSGCLASS=class例如://EXMP1JOB,GEORGE,MSGCLASS=FMSGLEVEL用于控制JCL作業(yè)輸出清單的內(nèi)容。格式:MSGLEVEL=([statements][,messages])statements:指明在JCL作業(yè)輸出清單中應(yīng)打印出的作業(yè)控制語句的類型,取值范圍為:0~2。MSGLEVELMSGLEVEL=0,僅輸出JOB語句;MSGLEVEL=1,輸出所有JCL和JES語句包括PROCEDURE中的語句;MSGLEVEL=2,僅輸出被提交的JCL和JES語句,不輸出PROCEDURE中的語句。MSGLEVEL第二個子參數(shù)控制輸出哪一條信息。MSGLEVEL=(,0),如果正常結(jié)束,僅輸出JCL信息,否則輸出所有信息;MSGLEVEL=(,1),不管是否正常結(jié)束,都輸出所有信息。如果省略MSGLEVEL,JES提供初始化時的缺省值。Example例如://EXMP3JOB,MSGLEVEL=(2,1)//EXMP4JOB,MENTLE,MSGLEVEL=0//EXMP5JOB,MIKE,MSGLEVEL=(,0)缺省設(shè)置為:MSGLEVEL=(1,1)NOTIFY用于請求系統(tǒng)在后臺作業(yè)處理完畢時給指定用戶發(fā)送信息。如果作業(yè)完成時,該用戶未在系統(tǒng)登錄,則系統(tǒng)所發(fā)送的信息將會保留到此用戶下次登錄。格式:NOTIFY=USERIDNOTIFY參數(shù)使得作業(yè)結(jié)束時,系統(tǒng)通知NOTIFY參數(shù)指定的TSO用戶。USERID必須是有效的用戶ID。命名規(guī)則USERID:必須以字母或通配符開頭的1~8個字母、數(shù)字或通配符組成,其值必須是一個存在的TSO用戶標(biāo)識。例://SIGNJOB,//TLOMP,NOTIFY=STU123TYPRUNTYPRUN參數(shù)-修改JES處理作業(yè)的方式。

TYPRUN=SCAN僅檢查語法錯誤,不執(zhí)行TYPRUN=HOLD作業(yè)在輸入隊列HOLD住,操作員必須釋放它才能執(zhí)行TYPRUN=COPY作業(yè)流COPY的是提交到MSGCLASS參數(shù)指定的系統(tǒng)輸出CLASS的作業(yè)流(僅用于JES2)PRTY用于為相應(yīng)的輸入隊列中的作業(yè)分配優(yōu)先級。系統(tǒng)根據(jù)作業(yè)優(yōu)先級的高低來選擇作業(yè)執(zhí)行,對于同一級的作業(yè)的選擇將采取“先進(jìn)先出”的原則。格式:PRTY=PRIORITYPRTYPRIORITY:用數(shù)字量來表示優(yōu)先級,數(shù)字越大表示優(yōu)先級越高。根據(jù)作業(yè)進(jìn)入子系統(tǒng)的類型,在JES2系統(tǒng)中,其取值范圍是0~15;例://JOBAJOB1,//‘JIMWEBSTER’,PRTY=12REGIONREGION參數(shù)指定作業(yè)或一個作業(yè)步所使用的虛存大小。用于JOB或EXEC語句。-定義在JOB語句,優(yōu)先于定義在EXEC語句;-如果某個作業(yè)步所需要的虛存超過了JOB語句REGION參數(shù)指定的虛存,或者REGION參數(shù)指定的虛存大小值不能夠被獲得,就會導(dǎo)致ABEND;-如果在EXEC語句指定REGION參數(shù),則參數(shù)指定的虛存值為該作業(yè)步所使用的虛存大??;-如果一個作業(yè)步所需要的大于指定的空間大小,或者指定的無法獲得,就會導(dǎo)致該作業(yè)步ABEND。格式:REGION={valueK}={valueM}

REGIONvalueK:以千字節(jié)(Kb)為單位指出所需空間大小,系統(tǒng)以每4k為一存儲單位分配空間,所以value值應(yīng)取4的倍數(shù),如REGION=68K。當(dāng)value值不是4的倍數(shù)時,系統(tǒng)會將其增至一最為接近的4的倍數(shù)的值。valueK:1-7digitsfrom1-2096128REGIONvalueM:以兆字節(jié)(Mb)為單位指出所需空間大小。注:REGION值必須是有效的存儲空間,如果取值為0或任何大于系統(tǒng)極限的值時都有可能會引起存儲問題。valueM:1-4digitsfrom1-2047Example例如://ACCT1JOB//A23,SMITH,REGION=100K,//ADDRSPC=REAL//ACCT2JOB175,FRED,REGION=250KLINESLINES參數(shù)用于限定作業(yè)的系統(tǒng)輸出數(shù)據(jù)集的打印行數(shù)(以K為單位)行數(shù)超過限制時,系統(tǒng)可以使用下列三種處理方式://MAXLINE1JOBLINES=(50,CANCEL)如果輸出超過50,000行,取消該作業(yè)。//MAXLINE2JOBLINES=(50,DUMP)如果輸出超過50,000行,出DUMP。//MAXLINE3JOBLINES=(50,WARNING)如果輸出超過50,000行,向操作員發(fā)出警告信息。RESTARTRESTARTJOB出錯時重新執(zhí)行??梢允褂孟旅?種方式:-自動步重起:從發(fā)生錯誤的作業(yè)步開始處重新執(zhí)行。-自動點(diǎn)重起:從發(fā)生錯誤的作業(yè)步中的某個語句重新執(zhí)行。-延遲步重起:系統(tǒng)允許檢查錯誤,可以修改并重新提交。從失敗的作業(yè)步開始處重新執(zhí)行。-延遲點(diǎn)重起:系統(tǒng)允許檢查錯誤,可以修改并重新提交。從失敗的作業(yè)步中的某個語句重新執(zhí)行。RESTART用NOTIFY參數(shù)以達(dá)到等待用戶修改的目的使用延遲重起RESTART參數(shù)表明系統(tǒng)重起作業(yè)時的作業(yè)步。例://JOBNAMEJOB//ACCOUNTING,’PRGMR//NAME’,CLASS=A,//NOTIFY=TSOMJ01,RESTART=STEP10TIME用于指定作業(yè)占用處理器的最長時間并可通過一些信息得知該作業(yè)占用處理器的時間。當(dāng)作業(yè)占用處理器時間超過指定值時,系統(tǒng)將終止該作業(yè)。TIME通常情況下,此參數(shù)不用設(shè)置。當(dāng)作業(yè)所需處理器時間長于系統(tǒng)缺省值時,或出于某種測試目的才設(shè)置此參數(shù)。格式:TIME={([minutes][,seconds])}={1440}={NOLIMIT}={MAXIMUM}TIMEminutes:指定作業(yè)可占用處理器最長時間的分鐘數(shù)。注意:不可以將TIME參數(shù)寫作TIME=0,這樣將導(dǎo)致不可預(yù)知的后果。TIMESeconds:作為minutes的補(bǔ)充,定義指定作業(yè)可占用處理器最長時間的秒鐘數(shù)(1-59)。NOLIMIT:表明作業(yè)的運(yùn)行無時間限制,等同于TIME=1440。1440:表明作業(yè)的運(yùn)行無時間限制,即24小時。TIMEMAXIMUM:表示作業(yè)的運(yùn)行時間為357912分鐘。當(dāng)JOB語句中的TIME參數(shù)沒有指明時,每作業(yè)步的運(yùn)行時間限制由以下值決定:1.在EXEC語句中TIME參數(shù)的值;2.當(dāng)EXEC語句中也沒有設(shè)置TIME參數(shù)時,采用默認(rèn)的時間限制值(也就是JES默認(rèn)的作業(yè)步時間限制值)。Example例1://STD1JOBACCT271,TIME=(12,10)例2://STD2JOB,GOR,TIME=(,30)Example例3://FIRSTJOB,SMITH,TIME=2……//STEP1EXECPGM=READER,TIME=1……//STEP2EXECPGM=WRITER,TIME=1……Example說明:在例3中,JOB語句中規(guī)定了2分鐘的作業(yè)運(yùn)行時間限制,每個作業(yè)步允許的時間為1分鐘,如果任何一個作業(yè)步的執(zhí)行時間超過1分鐘,作業(yè)將會異常終止。下面我們再來看一個例子:Example例4://SECONDJOB,JONES,TIME=3……//STEP1EXECPGM=ADDER,TIME=2……//STEP2EXECPGM=PRINT,TIME=2……Example說明:在例4中,JOB語句中規(guī)定了3分鐘的作業(yè)運(yùn)行時間限制,每個作業(yè)步允許2分鐘,如果任何一個作業(yè)步的執(zhí)行時間超過2分鐘,作業(yè)將會異常終止。但兩個作業(yè)步的總共運(yùn)行時間不得超過作業(yè)運(yùn)行時間限制——3分鐘,也即:如果作業(yè)步1的運(yùn)行時間為1.56分鐘,則作業(yè)步2的運(yùn)行時間不得超過1.44分,否則作業(yè)也會異常終止。其他參數(shù)JOB語句中的關(guān)鍵字參數(shù)還有:COND、GROUP,PASSWOR、PERFORM、RD、SECLABEL、USER等?!禡VSJCLReference》EXEC語句EXEC語句標(biāo)志要執(zhí)行的程序或者過程,標(biāo)明作業(yè)或過程中的每一作業(yè)步的開始,并告知系統(tǒng)如何執(zhí)行該作業(yè)步。一個作業(yè)最多可以有255個作業(yè)步,包括所有在EXEC語句中調(diào)用的過程中的所有作業(yè)步。EXEC語句格式如下://[作業(yè)步名]EXEC位置參數(shù)[,關(guān)鍵字參數(shù)]…[符號參數(shù)=值]…[注釋]作業(yè)步作業(yè)步名是可以省略不寫的,如需要標(biāo)明作業(yè)名時,該作業(yè)名必須在該作業(yè)內(nèi)以及該作業(yè)調(diào)用的所有過程中是唯一的,它由1~8個字母或通配符開頭的字符數(shù)字構(gòu)成,作業(yè)步名和作業(yè)名的命名規(guī)則相同。

位置參數(shù)EXEC語句中的位置參數(shù)有兩個:PGM和PROC。每條EXEC語句必須有且僅有一個位置參數(shù)。PGM參數(shù)用于指明所要執(zhí)行的程序名。該程序必須是一個分區(qū)數(shù)據(jù)集(PDS)的成員或者是系統(tǒng)庫(systemlibrary)、私有庫(privatelibrary)及臨時庫(temporarylibrary)的擴(kuò)充分區(qū)數(shù)據(jù)集(PDSE)的成員。程序名的調(diào)用方法分為直接調(diào)用和間接調(diào)用。PGM參數(shù)格式:PGM={program-name}{*.stepname.ddname}{*.cstepname.ddname}

program-name:指明要執(zhí)行的程序名或別名,程序名由1~8個字母或通配符開頭的字符數(shù)字構(gòu)成。PGM參數(shù)*.stepname.ddname:表示要執(zhí)行的程序名由本作業(yè)步前名為“stepname”的作業(yè)步內(nèi)名為“ddname”的DD語句的DSN參數(shù)決定。*.cstepname.ddname:表示要執(zhí)行的程序名由本作業(yè)步前名為“stepname”的作業(yè)步里所調(diào)用過程名為“procstepname”的過程步中相應(yīng)名為“ddname”DD語句的DSN參數(shù)決定。程序調(diào)用方法

1.直接調(diào)用;2.間接調(diào)用:采用向“后”參考的方法。這里的“后”指在本作業(yè)步讀入之前,已先讀入系統(tǒng)的本作業(yè)的其它JCL語句。

Example例如://JOBCJOB,JOHN,MSGCLASS=H//STEP2EXECPGM=UPDT//DDADDDSN=SYS1.LINKLIB(P40),//DISP=OLD//STEP3EXECPGM=*.STEP2.DDAExample說明:在上例中,名為STEP3的EXEC語句采用程序間接調(diào)用方式,所調(diào)用的程序名由作業(yè)步STEP2中的名為DDA的DD語句決定,在該DD語句中定義了系統(tǒng)庫SYS1.LINKLIB,程序P40是該庫的一個成員,“P40”即STEP3中要調(diào)用執(zhí)行的程序名。PROC參數(shù)指明作業(yè)步所要運(yùn)行的過程名。格式:{PROC=procedure-name}{procedure-name}procedure-name需要調(diào)用的過程名,過程名由1~8個字母或通配符開頭的字符數(shù)字構(gòu)成。所調(diào)用的過程名可以是:1.編目過程的成員名或別名。2.由PROC語句定義的流內(nèi)過程的過程名,該流內(nèi)過程必須在本作業(yè)內(nèi)且在本作業(yè)步前定義。Example例如://SPEXECPROC=PAYWRKS//BKEXECOPERATE在本例中,PORC可以省略關(guān)鍵字參數(shù)EXEC語句的關(guān)鍵字參數(shù)只作用于本作業(yè)步。當(dāng)EXEC語句的位置參數(shù)指定程序名時,關(guān)鍵字參數(shù)的寫法同JOB語句;當(dāng)EXEC語句的位置參數(shù)指定編目或流內(nèi)過程時,EXEC語句的關(guān)鍵字參數(shù)將覆蓋所調(diào)用過程中各EXEC語句的關(guān)鍵字參數(shù)。關(guān)鍵字參數(shù)如果想僅覆蓋過程中的某個EXEC語句的關(guān)鍵字參數(shù),則應(yīng)在設(shè)置關(guān)鍵字參數(shù)時,同時指出所調(diào)用過程的相關(guān)過程步的名字。格式如下:關(guān)鍵字參數(shù).過程步名=值A(chǔ)CCT參數(shù)指明作業(yè)步所需的一個或多個記賬信息子參數(shù)。記賬信息參子參數(shù)最多不可超過142個字符(包括分隔子參數(shù)的逗號,但不包括括起子參數(shù)列表的括號)。ADDRSPC參數(shù)指明作業(yè)步所需之存貯類型,它有兩個子參數(shù):VIRT及REAL,缺省值為VIRT。EXEC語句中的ADDRSPC參數(shù)僅在本作業(yè)步中起作用,JOB語句中的ADDRSPC參數(shù)會覆蓋該作業(yè)中的所有EXEC語句中的ADDRSPC參數(shù)。格式:ADDRSPC[.過程步名]={VIRT}{REAL}Example例如://CAC1EXECPGM=A,ADDRSPC=VIRT//CAC2EXECPROC=B,//ADDRSPC=REAL,REGION=100KREGION參數(shù)用于指定本作業(yè)步所需的實存或虛存空間的大小,系統(tǒng)僅在本作業(yè)步中使用該值。格式:REGION[.過程步名]={valueK}={valueM}

EXEC語句中REGION的子參數(shù)定義與JOB語句中相同。TIME參數(shù)用于指定作業(yè)步占用處理器的最長時間,并可通過作業(yè)輸出清單得知該作業(yè)步占用處理器的時間。當(dāng)作業(yè)步占用處理器時間超過指定值時,系統(tǒng)將終止該作業(yè)。格式:TIME[.過程步名]={([minutes][,seconds])}={1440}={NOLIMIT}={MAXIMUM}TIME參數(shù)EXEC語句與JOB語句中的TIME參數(shù)的子參數(shù)的設(shè)置方法基本相同。值得注意的是:在JOB語句中不可設(shè)置TIME=0,而在EXEC語句中則可以設(shè)置TIME=0,當(dāng)TIME=0時表示本作業(yè)步的執(zhí)行時間由前面作業(yè)步的剩余執(zhí)行時間決定。COND參數(shù)用于對先前作業(yè)步執(zhí)行的返回碼(returncode)進(jìn)行測試,以決定是否執(zhí)行本作業(yè)步。用戶可以對特定作業(yè)步的返回碼進(jìn)行測試,也可以對每一步執(zhí)行完畢的的返回碼都進(jìn)行測試。如果測試條件不滿足,系統(tǒng)執(zhí)行本作業(yè)步;如果測試條件滿足系統(tǒng)則不執(zhí)行該作業(yè)步。作業(yè)中的第一個EXEC語句中的COND參數(shù)將被系統(tǒng)忽略。注意,當(dāng)測試條件滿足時,系統(tǒng)并非不正常終止該作業(yè)步,而只是跳過該作業(yè)步,該作業(yè)仍將正常執(zhí)行。COND參數(shù)格式:(1)COND[.過程步名]=(code,operator)(2)COND[.過程步名]=((code,operator[,作業(yè)步名][,過程步名])[,(code,operator[,作業(yè)步名][,過程步名])]…[,EVEN])[,ONLY](3)COND=EVENCOND=ONLYCOND參數(shù)code:系統(tǒng)使用code(測試碼)與先前作業(yè)步或某特定作業(yè)步的返回碼進(jìn)行比較。Code的取值范圍為:0~4095。Returncode:系統(tǒng)代碼,0,4,8,16以及ABEND等。operater:表示code與返回碼的比較類型,這些比較的操作符是:GT(大于)、GE(大于等于)、EQ(等于)、NE(不等于)、LT(小于)、LE(小于等于)。COND參數(shù)作業(yè)步名:指定先前某一作業(yè)步,并用該作業(yè)步的返回碼與本作業(yè)步的測試碼進(jìn)行比較。當(dāng)省略作業(yè)步名時,表示本作業(yè)步的測試碼將與先前所有作業(yè)的返回碼進(jìn)行比較測試。作業(yè)步名.過程步名:指定先前某一作業(yè)步調(diào)用過程的過程步。系統(tǒng)將用該過程步的返回碼與給定的測試碼進(jìn)行比較。其中該作業(yè)步由“作業(yè)步名”指定,而過程步由“過程步名”指定。COND參數(shù)利用COND參數(shù)最多可以有8個返回碼測試,如果有EVEN或ONLY時,最多有7個測試。格式(1)只有在先前作業(yè)步?jīng)]有非正常終止時,才能進(jìn)行該測試。格式(2)、(3)測試決定于EVEN和ONLY的設(shè)置。EVENEVEN:表示無論即使先前作業(yè)步異常終止,本作業(yè)步都要執(zhí)行(execut

溫馨提示

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

評論

0/150

提交評論