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

下載本文檔

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

文檔簡介

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

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

3、所要執(zhí)行的程序或過程。數(shù)據(jù)定義語句(DD):用于描述應(yīng)用程序所需要的數(shù)據(jù)文件。系統(tǒng)規(guī)定這三種語句行必須以“/”開頭。下面是一個多步作業(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的使用中也是非常重要的,由于這一部分已在本書的第二章中詳細(xì)討論過,就本章不再重復(fù)了。32 JCL語句JCL語句分類在大型服務(wù)器系統(tǒng)中,作業(yè)控制語言被分做兩類:JES2和JCL。JES2將在本書的后續(xù)章節(jié)中討論。作業(yè)控制語言由九種語句組成,除了上一節(jié)中討論過

4、的三種基本語句外,還有以下六種附加語句:(1)/* 語句:表示六內(nèi)數(shù)據(jù)結(jié)束或調(diào)用JES控制語句;(2)/*語句:注釋語句,由第4到第80列寫出注釋內(nèi)容;(3)/語句:空語句,用以標(biāo)記一個作業(yè)的結(jié)束;PROC語句:流內(nèi)過程(IN-STREAM PROCEDURE)或編目過程(CATALOGED PROCEDURE)的起始標(biāo)記。PEND語句:標(biāo)志一個流內(nèi)過程的結(jié)束。Command語句:操作員用這個語句在輸入流中寫入操作命令。在這九種語句中,JOB、EXEC和DD三種語句對于每個作業(yè)來說都是必要的。下面給出一個單步作業(yè)的JCL實例。/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)/在上述例子中,我們給出了一個名為BACKUP的單步作業(yè),在這個作業(yè)中我們通過調(diào)用公用程序IEBGENER完成了將庫S

6、YS1.LINKLIB中的PR.MASTER數(shù)據(jù)集備份到磁帶上的工作。通過該例我們可以初步了解JCL中各語句的使用方式,下面我們將詳細(xì)向大家介紹JCL的語法規(guī)則及語句的使用。JCL的語法規(guī)則與其計算機語言一樣,JCL有一套嚴(yán)格的語法規(guī)則。但與我們熟知的一些編程語言不同的是,JCL還有其嚴(yán)格的語句格式規(guī)范。用戶只有嚴(yán)格按照這些規(guī)則來編寫作業(yè)控制程序,系統(tǒng)才能按照其意圖正確完成用戶的作業(yè),否則系統(tǒng)就會給出錯誤信息,或產(chǎn)生不可預(yù)知的后果。JCL字符集字母(共26個)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個)1 2 3 4 5

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

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

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

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

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

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

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

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

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

16、以避免出錯。語句、參數(shù)或子參數(shù)無需用撇號括起的特殊字符例子JOB語句中記賬信息參數(shù)(accounting information)連字符“-”/JOBA JOB D58-D04JOB語句中程序員名參數(shù)(programmers-name)連字符“-” 及 “.”(當(dāng)“.”出現(xiàn)在字符前、字符間時無需撇號,但當(dāng)其出現(xiàn)在字符串最后時則需用撇號)/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ù)集名的“.”起語法功能的“&”(見表)DSNAME=&TEMPDSDSNAME=&PAYOUT“()”,其作用為表示(括起):PDS及PDSE的成員名索引順序數(shù)據(jù)集(indexed sequential data set)的域名(area name)PDS及PDSE的生成數(shù)據(jù)集(generation data set)的代號(generation number)生成數(shù)據(jù)集的代號DSNAME=PDS1(MEMA)DSNAME=ISDS(PRIM

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

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

20、例中,采取了兩種注釋說明的方式,一種為作業(yè)語句中的“EXAMLE”,這是在說明區(qū)中說明的方式;另一種則是注釋語句的方式。注釋語句以第13 列的“/*”開始,可以將它放在JOB語句后的任何JCL語句的前面或后面來說明JCL。JOB語句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è)名作業(yè)名是用戶給作業(yè)指定的名字。為使操作系統(tǒng)識別作業(yè),必須選擇確定的作業(yè)名字,由于系統(tǒng)不能同時運行具有相同名字得到作業(yè),因此只能給作業(yè)一個唯一確定的名字。一般來說,建議用

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

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

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

24、式。這些方式包括:取消作業(yè)(轉(zhuǎn)儲(dump)或不轉(zhuǎn)儲)或繼續(xù)作業(yè)并向操作員發(fā)出超過最大字節(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ù)超過nnnnnn時,系統(tǒng)將不轉(zhuǎn)儲而直接取消該作業(yè)。DUMP:當(dāng)作業(yè)輸出字節(jié)數(shù)超過nnnnnn時,系統(tǒng)在取消該作業(yè)前將發(fā)出轉(zhuǎn)儲請求。WARNING:當(dāng)作業(yè)輸出字節(jié)數(shù)超過nnnnnn時,作業(yè)繼續(xù)執(zhí)行,系統(tǒng)將按

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

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

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

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

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

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

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

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

33、長時間的秒鐘數(shù),取值范圍為059。NOLIMIT:表明作業(yè)的運行無時間限制,等同于TIME=1440。1440:表明表明作業(yè)的運行無時間限制,即24小時。MAXIMUM:表示作業(yè)的運行時間為357912分鐘。當(dāng)JOB語句中的TIME參數(shù)沒有指明時,每作業(yè)步的運行時間限制由以下值決定:在EXEC語句中TIME參數(shù)的值。當(dāng)EXE語句中沒有設(shè)置TIME參數(shù)時,采用默認(rèn)的時間限制值(也就是JES默認(rèn)作業(yè)步時間限制值)。例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語句中規(guī)定了2分鐘的作業(yè)運行時間限制,每個作業(yè)步允許1分鐘,如果任何一個作業(yè)步的執(zhí)行時間超過1分鐘,作業(yè)將會異常終止。例4:/SECOND JOB ,JONES,TIME=3/STEP1 EXEC PGM=ADDER,TIME=2 /STEP2 EXEC PGM=PRINT,TIME=2 上例中,JOB語句中規(guī)定了3分鐘的作業(yè)運行時間限制,每個作業(yè)步允許2分鐘,如果任何一個作業(yè)步的執(zhí)行時間超過2分鐘,作業(yè)將會異常終止。但兩個作業(yè)步的總共運行時間不得超過作業(yè)運行時間限制3

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

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

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

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

39、業(yè)步名作業(yè)步名是可以省略不寫的,如需標(biāo)明作業(yè)名時,該作業(yè)名必須在該作業(yè)內(nèi)以及該作業(yè)調(diào)用的所有過程中是唯一的,它由18個字母或通配符開頭的字符數(shù)字構(gòu)成。二、位置參數(shù)EXEC語句中的位置參數(shù)有兩個:PGM和PROC。每條EXEC語句必須有且僅有一個位置參數(shù)或過程名。PGMPGM參數(shù)用于指明所要執(zhí)行的程序名。該程序必須是一個分區(qū)數(shù)據(jù)集(PDS)的成員或用作系統(tǒng)庫(system library)、私有庫(private library)及臨時庫(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個字母或通配符開頭的字符數(shù)字構(gòu)成。*.stepname.ddname:表示要執(zhí)行的程序名由本作業(yè)步前名為“stepname”的作業(yè)步內(nèi)名為“ddname”的DD語句的DSN參數(shù)決定。:表示要執(zhí)行的程序名由本作業(yè)步前名為“stepname”的作業(yè)步里所調(diào)用過程內(nèi)名為“procstepname”的過程步中相應(yīng)名為“ddname”DD語句的DSN參數(shù)決定。在上述三種程序調(diào)用方法中,第一種為直接調(diào)用,而后兩種為

41、間接調(diào)用。間接調(diào)用采用向后參考的方法,這里的“后”指在本作業(yè)步讀入之前,已先讀入系統(tǒng)的本作業(yè)其它JCL語句。當(dāng)需調(diào)用的程序在系統(tǒng)庫(如SYS1.LINKLIB)或私有庫(由作業(yè)中的JOBLIB DD語句或本作業(yè)步中的STEPLIB DD定義)中時使用第一種調(diào)用方法;而當(dāng)需調(diào)用的程序在本作業(yè)步前的某一作業(yè)步創(chuàng)建的臨時庫中時采用后兩種調(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語句采用程序間接調(diào)用方式,所調(diào)用的程序名由作業(yè)步STEP2中的名為DDA的DD語句決定,在該DD語句中定義了系統(tǒng)庫SYS1.LINKLIB,程序P40是該庫的一個成員?!癙40”即STEP3中要調(diào)用執(zhí)行的程序名。關(guān)于DD語句的詳細(xì)情況我們將在3.2.5中討論。PROC指明作業(yè)步所要運行的過程名。格式:PROC=procedure-nameprocedure-name procedure-name:需要調(diào)用的過程名,過程名由18個字母或通配符開頭的字符數(shù)字構(gòu)成。所調(diào)用的過程名可以是:編目過程的成員名或別名。由PROC語句定義的流內(nèi)過程的過程名,該流內(nèi)過程必須在本作業(yè)內(nèi)且本作業(yè)步前定義。在

43、設(shè)定該參數(shù)時,可直接寫出過程名。例:/SP EXEC PROC=PAYWRKS/BK EXEC OPERATE關(guān)鍵字參數(shù)EXEC語句的關(guān)鍵字參數(shù)是可選的,這些參數(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ù)。因此如果想僅覆蓋過程中的某個EXEC語句的關(guān)鍵字參數(shù),則應(yīng)在設(shè)置關(guān)鍵字參數(shù)時,同時指出所調(diào)用過程的相關(guān)過程步的名字。書寫形式如下:關(guān)鍵字參數(shù).過程步名=值下面將分別介紹EXEC語句中常用的關(guān)鍵字參數(shù):ACCT指明作業(yè)步所需的一個或多個記

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

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

46、時間。當(dāng)作業(yè)步占用處理器時間超過指定值時,系統(tǒng)將終止該作業(yè)。格式:TIME.過程步名=(minutes,seconds) =1440 =NOLIMIT =MAXIMUM EXEC語句與JOB語句中的TIME參數(shù)的子參數(shù)的設(shè)置方法基本相同。值得注意的是:在JOB語句中不可設(shè)置TIME=0,而在EXEC語句中則可以設(shè)置TIME=0,當(dāng)TIME=0時表示本作業(yè)步的執(zhí)行時間由前面作業(yè)步的剩余執(zhí)行時間決定。例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í)行時間,STEP2的運行時間將由STEP1決定,也即STEP2的執(zhí)行時間為:(1分鐘 STEP2實際運行時間)。COND用于對先前作業(yè)步執(zhí)行的返回碼(return code)進(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)并非不正

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

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

50、不測試先前任何的異常終止作業(yè)步的返回碼。測試那些正常完成的作業(yè)步的返回碼,如果測試條件全部不滿足的話,本作業(yè)步將執(zhí)行。 ONLY:表示只有先前作業(yè)步異常終止,本作業(yè)步才執(zhí)行。當(dāng)ONLY子參數(shù)設(shè)定時:不測試先前任何的異常終止作業(yè)步的返回碼。測試那些正常完成的作業(yè)步的返回碼,如果測試條件全部不滿足的話,本作業(yè)步將執(zhí)行。EVEN與ONLY的具體情況見下表:EVEN/ ONLY先前作業(yè)步是否異常終止?測試條件是否滿足?本作業(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。由于沒有設(shè)置EVEN或ONLY,如果先前的作業(yè)步異常終止,系統(tǒng)將不會執(zhí)行本作業(yè)步。例2/TEST2 EXEC PGM=DUMPINT,COND=(16,GE),(90,LE,STEP1),ONLY)由于設(shè)置了ONLY子參數(shù),系統(tǒng)只在以下兩種情況滿足時執(zhí)行本作業(yè)步:先前作業(yè)步異常終止;返回值的測試條件都不滿足。那么對于本例來說,系統(tǒng)將會在以下三種情況都滿足的情況下執(zhí)行本作業(yè)步:一個先前作業(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í)行第一個返回碼測試。而由于STEP2并未被執(zhí)行,所以將不會進(jìn)行第二個返回碼的測試。由于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語句調(diào)用了一個名叫BILLING的過程。這條語句中定義了幾個不同的分別對過程步PAID、LATE、BILL的返回碼的測試。由于設(shè)置了EVEN子參數(shù),除非相應(yīng)的返回值測試滿足條件,那么即使先前作業(yè)步異常終止,過程步PAID都將被執(zhí)行。PARM用于向本作業(yè)步執(zhí)行的程序傳遞變量信息。該程序必須有相應(yīng)的指令接收這些信息,并使用它們。格式:PARM.過程步名= 子參數(shù)PARM.過程步名=( 子參數(shù), 子參數(shù))PARM.過程步名=(子參數(shù), 子參數(shù)) PARM.過程步名=子參數(shù), 子參數(shù)括所有的逗號、撇號以及括號在內(nèi),所有子參數(shù)的總長度不得超過100個字符。當(dāng)某子參數(shù)中含

54、有特殊字符或空格時,可以將該子參數(shù)用撇號括起來,在其它子參數(shù)一起用括號括起來,或?qū)⑺性趨?shù)用撇號括起來。子參數(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傳遞到過程ASFCLG中名為LKED的過程步。DD語句數(shù)據(jù)定義語句(DD語句)用于定義一個數(shù)據(jù)集以及該數(shù)據(jù)集所需的輸入輸出資源。DD語句相對與前面介紹過的JOB語句和EXEC語句來說,其參數(shù)的定義、子參數(shù)的設(shè)置要復(fù)雜一些,在本小節(jié)內(nèi)我們將僅討論DD語句的一般規(guī)則以及部分位置參數(shù),關(guān)于DD語句的一些常用參數(shù)以及特殊用法我們將用單獨的一節(jié)討論。格式:/dd名 DD 位置參數(shù),關(guān)鍵字參數(shù) 注釋 過程步名.dd名/dd名 DD 過程步名.dd名 二、dd名“dd名”是為DD語句定義的名字,它由18個字母或通配符開頭的字符數(shù)字構(gòu)成。在一個作業(yè)步內(nèi)可以有多個DD語句,但每個DD語句的dd名在本作業(yè)步中應(yīng)該是唯一確定的?!癲d名”可以由系統(tǒng)定義也可以由用戶自己定義,當(dāng)用戶需要調(diào)用公用程序時,

溫馨提示

  • 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

提交評論