版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
作業(yè)控制語言楊夢寧mnyang@基本概念主機包含的單元:處理器(Processor)Mainfram大型主機,ES9000,S/390,zSeries輸入/輸出設備(Input/OutputDevice)Disk硬盤,如3390,3380Reader讀卡器(少用)Printer打印機,如4248,3828,3800Terminal終端,如3270終端Punch打孔機(少用)Tape磁帶機,如3490,3480操作系統(tǒng)(OperatingSystem)程序(Programs)數據(Data)基本概念作業(yè)包含下列信息:程序(Program)數據集(DataSets)外部設備(Devices)磁盤卷(Volumes)數據空間(Space)數據集屬性(DataSetAttributes)JCL語句將這些信息傳遞給系統(tǒng)JES系統(tǒng)概念在工作執(zhí)行前后,JES負責-接收作業(yè)-準備執(zhí)行作業(yè)-在DASD臨時存儲直到OS390準備好接收-選擇OS390執(zhí)行的作業(yè)在工作執(zhí)行時,JES負責-HANDLE輸出-執(zhí)行結束后,清除工作Input/Output設備DISKREADERTERMINALPUNCHHOSTSPRINTERTAPEInput/Output數據PROG1PROG2PROG3DATADATAInput/Output數據程序通常需要輸入和輸出數據數據存放在數據集中提交至系統(tǒng)的作業(yè)必須指明相關的數據集作業(yè)作業(yè)(Job)-用戶在完成某任務時要求計算機所做工作的集合。在大型服務器系統(tǒng)中,當用戶需要使用計算機完成某項任務時,用戶必須準備一個作業(yè)流(JobStream),作業(yè)流中包含一個或多個作業(yè)。作業(yè)控制語言作業(yè)控制語言JCL(JobControlLanguage)-用戶與操作系統(tǒng)的接口。用戶通過JCL的相應語句與操作系統(tǒng)通訊,獲得作業(yè)所需的資源,并按自己的意圖來控制作業(yè)的執(zhí)行。JCL由幾個語句組成,對于一個作業(yè),JCL為被執(zhí)行的任務引導操作系統(tǒng),并注釋所需要的全部I/O設備。作業(yè)步作業(yè)步-在一個作業(yè)中,每一次程序的執(zhí)行就稱為一個作業(yè)步。一個作業(yè)可包含幾個作業(yè)步,一般的,一個作業(yè)由以下相對獨立的三步組成:(1)編譯:把源程序語句(源模塊)轉換成目標模塊;作業(yè)步(2)鏈接編輯:把目標模塊同子程序庫中的其他程序鏈接起來得到可執(zhí)行模塊;(3)執(zhí)行:運行可執(zhí)行模塊得到結果。一個作業(yè)中的各步是順序執(zhí)行的,因此上一個作業(yè)步的輸出可以作為下一個作業(yè)步的輸入。基本概念大型服務器系統(tǒng)中用戶的作業(yè)可以由一個或多個作業(yè)步構成。只有一個作業(yè)步的作業(yè)叫做單步作業(yè);由多個作業(yè)步構成的作業(yè)叫做多步作業(yè)。不論單步作業(yè)還是多步作業(yè)都必須包含三個JCL基本語句(JCLStatement)。JCL基本語句(1)作業(yè)語句(JOB):標識一個作業(yè)的開始,提供必要的運行參數。(2)執(zhí)行語句(EXEC):標識一個作業(yè)步的開始,定義本作業(yè)步所要執(zhí)行的程序或過程。(3)數據定義語句(DD):用于描述應用程序所需要的數據文件。Example下面我們來看一個多步作業(yè)的例子://JOB1JOB…
//STEP1EXEC…//DD1DD…作業(yè)步1//STEP2EXEC…//INDD1DD…作業(yè)步2//INDD2DD…//作業(yè)控制語句在大型服務器系統(tǒng)中,作業(yè)控制語句有兩種類型:一類是JES2控制語句(負責控制作業(yè)和給作業(yè)提供參數);另一類就是JCL。作業(yè)控制語言由九種語句組成,分別是:三種基本語句:JOB,EXEC和DD。六種附加語句:(1)/*語句:表示流內數據結束或調用JES控制語句;(2)//*語句:注釋語句,由第4到第80列寫出注釋內容;作業(yè)控制語句(3)//語句:空語句,用以標記一個作業(yè)的結束;(4)PROC語句:流內過程(IN-STREAMPROCEDURE)或編目過程(CATALOGEDPROCEDURE)的起始標記。(5)PEND語句:標志一個流內過程的結束。(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ī)則與計算機語言一樣,JCL有一套嚴格的語法規(guī)則,不僅如此,JCL還有嚴格的語句格式規(guī)范。用戶只有嚴格按照這些規(guī)則來編寫作業(yè)控制程序,系統(tǒng)才能按照其意圖正確完成用戶的作業(yè),否則系統(tǒng)就會給出錯誤信息,甚至產生不可預知的后果。
JCL字符集(1)
字母26個(2)
數字10個(3)
特殊字符(共10個),./()*&+-=(4)
通配符(共3個)@$#(5)
關系字符集(共6個)GT,GE,EQ,LT,NE,LE特殊字符字符功能,分隔參數和子參數=分隔關鍵字參數與它的值,例:CLASS=A()括起子參數列表或PDS、PDSE的成員名&標志一個符號參數(symbolicparameter),例:&LIB&&標志一個臨時數據集名(temporarydatasetname)例:&&TEMPDS標志一個流內或系統(tǒng)輸出(sysout)數據集名,例:&&PAYOUT特殊字符字符功能.分隔受限數據集(qualifieddataset)名字的各部分,例:A.B.C分隔一些特定參數與子參數的各部分,例:nodename.userid*提及一條先前的語句,例:OUTPUT=*.name,或在特定的語句內,標志特定的功能,例://ddnameDD*特殊字符字符功能‘’括起含有特殊字符的參數值空格劃分域一般語句格式規(guī)范在JCL中,除/*語句外的所有語句均以第一、二列的//符號作為開始標志,系統(tǒng)規(guī)定這些語句的長度為80列。這80列在邏輯上被劃分為五個區(qū)域,分別是標識符區(qū)、名字區(qū)、操作符區(qū)、參數區(qū)和注釋區(qū),即:一般語句格式規(guī)范標識符區(qū)名字區(qū)操作符區(qū)參數區(qū)注釋區(qū)//名字操作符參數說明標識符區(qū)一般情況下,標識符區(qū)的符號為“//”,該符號表明該條語句為JCL語句,標識符區(qū)位于每條語句的第一、二列。在特殊情況下,標識符區(qū)的符號可以是“/*”語句和“//*語句。名字區(qū)名字區(qū)指明一個語句,便于系統(tǒng)控制塊或其他語句識別。名字可以由1~8個字母數字或通配符組成,但第一個字符必須是字母或通配符(#,@,$),且必須從第三列開始。名字區(qū)后必須跟一個或多個空格,可以選擇名字表達出這個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參數區(qū)參數區(qū)在操作符區(qū)之后,其中包括被逗號分隔的參數,參數由事先規(guī)定好的關鍵字組成,對于這些參數其數值必須是可被代換的變值。參數區(qū)沒有固定的長度及列的要求。例如://EXAMPLEJOB2000,CLASS=A//STEP1EXECPGM=IEYFORT//PRINTDDSYSOUT=A注釋區(qū)注釋區(qū)位于參數區(qū)后,用于對相應語句進行注釋說明,它可以是任何需要的注釋信息,注釋區(qū)后必須跟一空格。需要注意的是,僅當參數出現時才能書寫注釋信息,不然容易與參數混淆。下面是一個注釋區(qū)的例子:
//EXAMPLEJOB,CLASS=AITISACOMMENT注意:不建議采用這種注釋方式
關于續(xù)行的說明JCL只允許在參數區(qū)和注釋區(qū)有續(xù)行,當需要續(xù)行時,在當前行的第71列前必須將某個參數或某個子參數以及參數后的逗號寫完整,且下一行第1、2列為“//”,第3列為空格,續(xù)行的內容只能從4~16列開始,如從16列后開始,將被認為是注釋語句。下面是一個續(xù)行的例子://DATADDDSN=SYS1.FORTLIB,//DISP=OLDExample//DD1DDDSNAME=STU118.GROUP12,//UNIT=3390,VOLUME=335230,//SPACE=(TRK,(8),15)),DISP=(,PASS)參數續(xù)行從第四列開始參數規(guī)則在JCL中,參數區(qū)內的參數的類型分為兩類:(1)位置參數(positional):參數的含義與它在各個參數中的前后順序有關,當位置參數有子參數時,子參數也必須按順序排列在圓括號內,位置參數之間以及子參數之間用逗號分隔。規(guī)則如下:用逗號表示缺?。蝗绻亲詈笠粋€位置參數省略,不需要用逗號;如果全部位置參數省略,不需要用逗號。Example//DD1OPER//POS1,POS2,KEY3=C,KEY1=A//DD2OPER,POS2,KEY2=B//DD3OPERPOS1,KEY2=B//DD4OPERKEY3=C,KEY1=A參數規(guī)則(2)關鍵字參數(keyword):由一個關鍵字和等號后面的可變數據組成。關鍵字參數和位置參數不一樣,關鍵字的意義與順序無關。參數規(guī)則如果在一個語句內既有位置參數又有關鍵字參數時,所有的關鍵字參數必須位于位置參數之后。例如://EXAMPLEJOB2000,CLASS=A
位置參數關鍵字參數參數的書寫規(guī)則1.位置參數和關鍵字參數之間必須用逗號分開,不允許有空格。值得注意的是,在JCL語句中錯寫空格,會導致非常難以查出的錯誤。
參數的書寫規(guī)則2.必須按規(guī)定的次序書寫參數:所有的關鍵字參數必須位于位置參數之后,而所有位置參數也必須按規(guī)定排列。3.當缺省某個位置參數或某個子參數時,應以一個逗號指明所在位置。當缺省最后一個位置參數時,逗號可以省略。Example例如://EXPJOB(2000,,9),CLASS=A//SYSTEMJOB,SYSTEM,CLASS=S,//MSGLEVEL=(0,0)參數的書寫規(guī)則4.當沒有任何位置參數時,可以不必書寫任何內容表示。//EXPJOBCLASS=A5.關鍵字參數之間沒有相對位置的規(guī)定,可以按任何次序排列。//EXPJOB2000,CLASS=A,MSGLEVEL=1也可寫作://EXPJOB2000,MSGLEVEL=1,CLASS=A參數的書寫規(guī)則6.允許含有特殊字符的參數或子參數,且其中的特殊字符并非起某種特定的語法功能時,必須用撇號‘’替代括號將這些參數和子參數括起來。例:ACCT=’123+456’。參數的書寫規(guī)則7.JCL的位置參數與關鍵字參數最多只能由兩級子參數。也就是說用于括起子參數列表的括號最多只能有兩層。
JCL語句1.JOB語句。2.JOBLIB語句。3.JOBCAT及SYSCHK語句。4.任何流內過程。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語句標志一個作業(yè)的開始、分配作業(yè)名并設置相關的位置參數及關鍵字參數,每個作業(yè)的第一條語句必須是JOB語句,且僅有一條。JOB語句的格式如下://作業(yè)名JOB位置參數[,關鍵字參數][,關鍵字參數]…[注釋說明]作業(yè)名-JOBNAME作業(yè)名是用戶給作業(yè)指定的名字,為使操作系統(tǒng)識別作業(yè),必須選擇合適的作業(yè)名字,由于系統(tǒng)不能同時運行具有相同名字的作業(yè),因此只能給作業(yè)一個唯一的名字。一般來說,建議用戶采用“用戶標識USERID+數字或字符”的作業(yè)名,例如用戶標識為JACK,則作業(yè)名可用JACKA(也是出于安全控制的考慮)。位置參數作業(yè)語句中的位置參數有兩個:1.記賬信息(accountinginformation):記賬信息位于操作符JOB后,它用于提供用戶使用系統(tǒng)的合法性、時間和紙張的收費管理等。其格式為:([account-number][,accounting-information]…)account-number:用戶賬號;accounting-information:附加的記賬信息,如房間號和部門名等等。位置參數記賬信息參數及其子參數最多不可超過143個字符,特殊字符用單引號(包括分隔子參數的逗號,但不包括括起子參數列表的括號)。例如://EXAMPLE1JOB//(D548-8686,’12/8/98’,PGMBIN)//EXAMPLE2JOBD548-8686位置參數2.程序員名(programmer’sname)程序員名用于標識作業(yè)的所有者(owner))信息,包括特殊字符在內,其長度不得超過20個字符,特殊字符用單引號包含。例如://EXAMPLE1JOB2000,J.A.C.K//EXAMPLE2JOB2001,JACK//EXAMPLE3JOB2003,‘OSUN’Example下面是幾個位置參數不同的書寫格式的例子:1.帶有全部位置參數的作業(yè)語句://JOBAJOB(20008,60),A.B.C,CLASS=S,…2.缺省記賬信息的作業(yè)語句://JOBBJOB,USER-NAME,CLASS=A,…3.不帶位置參數的作業(yè)語句://JOBCJOBCLASS=Q,…關鍵字參數CLASS指定輸入隊列COND指定作業(yè)執(zhí)行條件LINES輸出行數控制MSGCLASS指定輸出隊列MSGLEVEL顯示作業(yè)輸出信息NOTIFY作業(yè)結束時通知TSO用戶REGION指定作業(yè)使用的最大虛存RESTART控制作業(yè)的重新啟動TIME指定作業(yè)執(zhí)行的最大時間TYPRUN執(zhí)行類型控制ADDRSPC指定作業(yè)所需的存儲空間類型REGION指定存儲空間的大小PARM指明作業(yè)的參數關鍵字參數JOB語句中的關鍵字參數有如下幾個:
1.ADDRSPC指明作業(yè)所需之存貯類型,它有兩個子參數:VIRT及REAL。VIRT表示作業(yè)請求虛擬頁式存貯,而REAL表示作業(yè)請求實存空間。缺省值為VIRT。其格式為:ADDRSPC={VIRT}{REAL}Example例如://PEHJOB,BAKER,ADDRSPC=VIRT//DEBJOB,ERIC,ADDRSPC=REAL,//REGION=100KCLASSCLASS參數:-將作業(yè)置于JES輸入隊列;-一個字符,A-Z,0-9;-如果不指定CLASS,JES使用初始化時缺省的CLASS。CLASSCLASS參數規(guī)定了作業(yè)的類別,JCL中可選用的作業(yè)類別有36個,用字母A~Z及數字0~9表示。相同類別的作業(yè)處于同一輸入隊列等待執(zhí)行,并具有相同的處理屬性。作業(yè)類別的屬性定義在JES中,當CLASS參數缺省時,JES將會根據安裝時的缺省值賦予該作業(yè)一個缺省的CLASS值。格式:CLASS=jobclassMSGCLASSMSGCLASS參數-控制輸出CLASS;-一個字符,A-Z,0-9;-缺省與CLASS參數一致。MSGCLASS用于為作業(yè)日志(joblog)設置輸出類別。作業(yè)日志是為程序員提供的與作業(yè)相關信息的記錄。當該參數省略時,系統(tǒng)將會采用默認值。格式:MSGCLASS=class例如://EXMP1JOB,GEORGE,MSGCLASS=FMSGLEVEL用于控制JCL作業(yè)輸出清單的內容。格式:MSGLEVEL=([statements][,messages])statements:指明在JCL作業(yè)輸出清單中應打印出的作業(yè)控制語句的類型,取值范圍為:0~2。MSGLEVELMSGLEVEL=0,僅輸出JOB語句;MSGLEVEL=1,輸出所有JCL和JES語句包括PROCEDURE中的語句;MSGLEVEL=2,僅輸出被提交的JCL和JES語句,不輸出PROCEDURE中的語句。MSGLEVEL第二個子參數控制輸出哪一條信息。MSGLEVEL=(,0),如果正常結束,僅輸出JCL信息,否則輸出所有信息;MSGLEVEL=(,1),不管是否正常結束,都輸出所有信息。如果省略MSGLEVEL,JES提供初始化時的缺省值。Example例如://EXMP3JOB,MSGLEVEL=(2,1)//EXMP4JOB,MENTLE,MSGLEVEL=0//EXMP5JOB,MIKE,MSGLEVEL=(,0)缺省設置為:MSGLEVEL=(1,1)NOTIFY用于請求系統(tǒng)在后臺作業(yè)處理完畢時給指定用戶發(fā)送信息。如果作業(yè)完成時,該用戶未在系統(tǒng)登錄,則系統(tǒng)所發(fā)送的信息將會保留到此用戶下次登錄。格式:NOTIFY=USERIDNOTIFY參數使得作業(yè)結束時,系統(tǒng)通知NOTIFY參數指定的TSO用戶。USERID必須是有效的用戶ID。命名規(guī)則USERID:必須以字母或通配符開頭的1~8個字母、數字或通配符組成,其值必須是一個存在的TSO用戶標識。例://SIGNJOB,//TLOMP,NOTIFY=STU123TYPRUNTYPRUN參數-修改JES處理作業(yè)的方式。
TYPRUN=SCAN僅檢查語法錯誤,不執(zhí)行TYPRUN=HOLD作業(yè)在輸入隊列HOLD住,操作員必須釋放它才能執(zhí)行TYPRUN=COPY作業(yè)流COPY的是提交到MSGCLASS參數指定的系統(tǒng)輸出CLASS的作業(yè)流(僅用于JES2)PRTY用于為相應的輸入隊列中的作業(yè)分配優(yōu)先級。系統(tǒng)根據作業(yè)優(yōu)先級的高低來選擇作業(yè)執(zhí)行,對于同一級的作業(yè)的選擇將采取“先進先出”的原則。格式:PRTY=PRIORITYPRTYPRIORITY:用數字量來表示優(yōu)先級,數字越大表示優(yōu)先級越高。根據作業(yè)進入子系統(tǒng)的類型,在JES2系統(tǒng)中,其取值范圍是0~15;例://JOBAJOB1,//‘JIMWEBSTER’,PRTY=12REGIONREGION參數指定作業(yè)或一個作業(yè)步所使用的虛存大小。用于JOB或EXEC語句。-定義在JOB語句,優(yōu)先于定義在EXEC語句;-如果某個作業(yè)步所需要的虛存超過了JOB語句REGION參數指定的虛存,或者REGION參數指定的虛存大小值不能夠被獲得,就會導致ABEND;-如果在EXEC語句指定REGION參數,則參數指定的虛存值為該作業(yè)步所使用的虛存大小;-如果一個作業(yè)步所需要的大于指定的空間大小,或者指定的無法獲得,就會導致該作業(yè)步ABEND。格式:REGION={valueK}={valueM}
REGIONvalueK:以千字節(jié)(Kb)為單位指出所需空間大小,系統(tǒng)以每4k為一存儲單位分配空間,所以value值應取4的倍數,如REGION=68K。當value值不是4的倍數時,系統(tǒng)會將其增至一最為接近的4的倍數的值。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參數用于限定作業(yè)的系統(tǒng)輸出數據集的打印行數(以K為單位)行數超過限制時,系統(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í)行。-自動點重起:從發(fā)生錯誤的作業(yè)步中的某個語句重新執(zhí)行。-延遲步重起:系統(tǒng)允許檢查錯誤,可以修改并重新提交。從失敗的作業(yè)步開始處重新執(zhí)行。-延遲點重起:系統(tǒng)允許檢查錯誤,可以修改并重新提交。從失敗的作業(yè)步中的某個語句重新執(zhí)行。RESTART用NOTIFY參數以達到等待用戶修改的目的使用延遲重起RESTART參數表明系統(tǒng)重起作業(yè)時的作業(yè)步。例://JOBNAMEJOB//ACCOUNTING,’PRGMR//NAME’,CLASS=A,//NOTIFY=TSOMJ01,RESTART=STEP10TIME用于指定作業(yè)占用處理器的最長時間并可通過一些信息得知該作業(yè)占用處理器的時間。當作業(yè)占用處理器時間超過指定值時,系統(tǒng)將終止該作業(yè)。TIME通常情況下,此參數不用設置。當作業(yè)所需處理器時間長于系統(tǒng)缺省值時,或出于某種測試目的才設置此參數。格式:TIME={([minutes][,seconds])}={1440}={NOLIMIT}={MAXIMUM}TIMEminutes:指定作業(yè)可占用處理器最長時間的分鐘數。注意:不可以將TIME參數寫作TIME=0,這樣將導致不可預知的后果。TIMESeconds:作為minutes的補充,定義指定作業(yè)可占用處理器最長時間的秒鐘數(1-59)。NOLIMIT:表明作業(yè)的運行無時間限制,等同于TIME=1440。1440:表明作業(yè)的運行無時間限制,即24小時。TIMEMAXIMUM:表示作業(yè)的運行時間為357912分鐘。當JOB語句中的TIME參數沒有指明時,每作業(yè)步的運行時間限制由以下值決定:1.在EXEC語句中TIME參數的值;2.當EXEC語句中也沒有設置TIME參數時,采用默認的時間限制值(也就是JES默認的作業(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è)步允許的時間為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è)步允許2分鐘,如果任何一個作業(yè)步的執(zhí)行時間超過2分鐘,作業(yè)將會異常終止。但兩個作業(yè)步的總共運行時間不得超過作業(yè)運行時間限制——3分鐘,也即:如果作業(yè)步1的運行時間為1.56分鐘,則作業(yè)步2的運行時間不得超過1.44分,否則作業(yè)也會異常終止。其他參數JOB語句中的關鍵字參數還有:COND、GROUP,PASSWOR、PERFORM、RD、SECLABEL、USER等?!禡VSJCLReference》EXEC語句EXEC語句標志要執(zhí)行的程序或者過程,標明作業(yè)或過程中的每一作業(yè)步的開始,并告知系統(tǒng)如何執(zhí)行該作業(yè)步。一個作業(yè)最多可以有255個作業(yè)步,包括所有在EXEC語句中調用的過程中的所有作業(yè)步。EXEC語句格式如下://[作業(yè)步名]EXEC位置參數[,關鍵字參數]…[符號參數=值]…[注釋]作業(yè)步作業(yè)步名是可以省略不寫的,如需要標明作業(yè)名時,該作業(yè)名必須在該作業(yè)內以及該作業(yè)調用的所有過程中是唯一的,它由1~8個字母或通配符開頭的字符數字構成,作業(yè)步名和作業(yè)名的命名規(guī)則相同。
位置參數EXEC語句中的位置參數有兩個:PGM和PROC。每條EXEC語句必須有且僅有一個位置參數。PGM參數用于指明所要執(zhí)行的程序名。該程序必須是一個分區(qū)數據集(PDS)的成員或者是系統(tǒng)庫(systemlibrary)、私有庫(privatelibrary)及臨時庫(temporarylibrary)的擴充分區(qū)數據集(PDSE)的成員。程序名的調用方法分為直接調用和間接調用。PGM參數格式:PGM={program-name}{*.stepname.ddname}{*.cstepname.ddname}
program-name:指明要執(zhí)行的程序名或別名,程序名由1~8個字母或通配符開頭的字符數字構成。PGM參數*.stepname.ddname:表示要執(zhí)行的程序名由本作業(yè)步前名為“stepname”的作業(yè)步內名為“ddname”的DD語句的DSN參數決定。*.cstepname.ddname:表示要執(zhí)行的程序名由本作業(yè)步前名為“stepname”的作業(yè)步里所調用過程名為“procstepname”的過程步中相應名為“ddname”DD語句的DSN參數決定。程序調用方法
1.直接調用;2.間接調用:采用向“后”參考的方法。這里的“后”指在本作業(yè)步讀入之前,已先讀入系統(tǒng)的本作業(yè)的其它JCL語句。
Example例如://JOBCJOB,JOHN,MSGCLASS=H//STEP2EXECPGM=UPDT//DDADDDSN=SYS1.LINKLIB(P40),//DISP=OLD//STEP3EXECPGM=*.STEP2.DDAExample說明:在上例中,名為STEP3的EXEC語句采用程序間接調用方式,所調用的程序名由作業(yè)步STEP2中的名為DDA的DD語句決定,在該DD語句中定義了系統(tǒng)庫SYS1.LINKLIB,程序P40是該庫的一個成員,“P40”即STEP3中要調用執(zhí)行的程序名。PROC參數指明作業(yè)步所要運行的過程名。格式:{PROC=procedure-name}{procedure-name}procedure-name需要調用的過程名,過程名由1~8個字母或通配符開頭的字符數字構成。所調用的過程名可以是:1.編目過程的成員名或別名。2.由PROC語句定義的流內過程的過程名,該流內過程必須在本作業(yè)內且在本作業(yè)步前定義。Example例如://SPEXECPROC=PAYWRKS//BKEXECOPERATE在本例中,PORC可以省略關鍵字參數EXEC語句的關鍵字參數只作用于本作業(yè)步。當EXEC語句的位置參數指定程序名時,關鍵字參數的寫法同JOB語句;當EXEC語句的位置參數指定編目或流內過程時,EXEC語句的關鍵字參數將覆蓋所調用過程中各EXEC語句的關鍵字參數。關鍵字參數如果想僅覆蓋過程中的某個EXEC語句的關鍵字參數,則應在設置關鍵字參數時,同時指出所調用過程的相關過程步的名字。格式如下:關鍵字參數.過程步名=值ACCT參數指明作業(yè)步所需的一個或多個記賬信息子參數。記賬信息參子參數最多不可超過142個字符(包括分隔子參數的逗號,但不包括括起子參數列表的括號)。ADDRSPC參數指明作業(yè)步所需之存貯類型,它有兩個子參數:VIRT及REAL,缺省值為VIRT。EXEC語句中的ADDRSPC參數僅在本作業(yè)步中起作用,JOB語句中的ADDRSPC參數會覆蓋該作業(yè)中的所有EXEC語句中的ADDRSPC參數。格式:ADDRSPC[.過程步名]={VIRT}{REAL}Example例如://CAC1EXECPGM=A,ADDRSPC=VIRT//CAC2EXECPROC=B,//ADDRSPC=REAL,REGION=100KREGION參數用于指定本作業(yè)步所需的實存或虛存空間的大小,系統(tǒng)僅在本作業(yè)步中使用該值。格式:REGION[.過程步名]={valueK}={valueM}
EXEC語句中REGION的子參數定義與JOB語句中相同。TIME參數用于指定作業(yè)步占用處理器的最長時間,并可通過作業(yè)輸出清單得知該作業(yè)步占用處理器的時間。當作業(yè)步占用處理器時間超過指定值時,系統(tǒng)將終止該作業(yè)。格式:TIME[.過程步名]={([minutes][,seconds])}={1440}={NOLIMIT}={MAXIMUM}TIME參數EXEC語句與JOB語句中的TIME參數的子參數的設置方法基本相同。值得注意的是:在JOB語句中不可設置TIME=0,而在EXEC語句中則可以設置TIME=0,當TIME=0時表示本作業(yè)步的執(zhí)行時間由前面作業(yè)步的剩余執(zhí)行時間決定。COND參數用于對先前作業(yè)步執(zhí)行的返回碼(returncode)進行測試,以決定是否執(zhí)行本作業(yè)步。用戶可以對特定作業(yè)步的返回碼進行測試,也可以對每一步執(zhí)行完畢的的返回碼都進行測試。如果測試條件不滿足,系統(tǒng)執(zhí)行本作業(yè)步;如果測試條件滿足系統(tǒng)則不執(zhí)行該作業(yè)步。作業(yè)中的第一個EXEC語句中的COND參數將被系統(tǒng)忽略。注意,當測試條件滿足時,系統(tǒng)并非不正常終止該作業(yè)步,而只是跳過該作業(yè)步,該作業(yè)仍將正常執(zhí)行。COND參數格式:(1)COND[.過程步名]=(code,operator)(2)COND[.過程步名]=((code,operator[,作業(yè)步名][,過程步名])[,(code,operator[,作業(yè)步名][,過程步名])]…[,EVEN])[,ONLY](3)COND=EVENCOND=ONLYCOND參數code:系統(tǒng)使用code(測試碼)與先前作業(yè)步或某特定作業(yè)步的返回碼進行比較。Code的取值范圍為:0~4095。Returncode:系統(tǒng)代碼,0,4,8,16以及ABEND等。operater:表示code與返回碼的比較類型,這些比較的操作符是:GT(大于)、GE(大于等于)、EQ(等于)、NE(不等于)、LT(小于)、LE(小于等于)。COND參數作業(yè)步名:指定先前某一作業(yè)步,并用該作業(yè)步的返回碼與本作業(yè)步的測試碼進行比較。當省略作業(yè)步名時,表示本作業(yè)步的測試碼將與先前所有作業(yè)的返回碼進行比較測試。作業(yè)步名.過程步名:指定先前某一作業(yè)步調用過程的過程步。系統(tǒng)將用該過程步的返回碼與給定的測試碼進行比較。其中該作業(yè)步由“作業(yè)步名”指定,而過程步由“過程步名”指定。COND參數利用COND參數最多可以有8個返回碼測試,如果有EVEN或ONLY時,最多有7個測試。格式(1)只有在先前作業(yè)步沒有非正常終止時,才能進行該測試。格式(2)、(3)測試決定于EVEN和ONLY的設置。EVENEVEN:表示無論即使先前作業(yè)步異常終止,本作業(yè)步都要執(zhí)行(execut
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 卓越研究生英語(理工篇)綜合教程2 課件 B2U2 Rural revival
- 城市節(jié)約用水管理規(guī)定范文(2篇)
- 誠信計生實施方案樣本(5篇)
- 《華夏之祖》課件
- 醫(yī)院119消防宣傳月活動實施方案
- 頸椎病艾灸案例分享會
- 合成材料制造的市場推廣策略考核試卷
- 智能人工智能消費設備創(chuàng)造與應用分享考核試卷
- 野生動物救護審批告知承諾書
- 生態(tài)農業(yè)二手房交易合同
- 2024年大學生法律知識競賽題庫及答案(共100題)
- 消費合伙人模式協議書(2篇)
- 廣東省中山市紀中教育集團2024-2025學年九年級上學期11月期中聯考數學試題(無答案)
- 安全駕駛培訓
- GB/T 30595-2024建筑保溫用擠塑聚苯板(XPS)系統(tǒng)材料
- 山東濟南天橋區(qū)2024-2025學年八年級物理第一學期期中考試試題(含答案)
- 《中華人民共和國突發(fā)事件應對法》知識培訓
- 托班語言夏天課程設計
- 湖北省武漢市洪山區(qū)2023-2024學年八年級上學期期中英語試題(無答案)
- 光伏項目施工總進度計劃表(含三級)
- 醫(yī)院培訓課件:《健康教育 知-信-行》
評論
0/150
提交評論