• Aucun résultat trouvé

A passed data set is one you defined with the D·ISP= ( , PASS) parameter

Dans le document IBM System/360 Operating System: (Page 168-176)

-For example, if you want to incl

u~de :act~ta

set without :JCL statements for PINI< and a data set with JCL statements for TEA, code:

r--·---,

I //STEPZ EXEC PROC=ROSE I

I //PINl<.BLANK DD UNIT=#:2400,LABEL==(,BLP) I

I /.IPINK.INDD DATA I

I data records I

I

/*

I

I /.IPINK.IN2 DD * I

I data records I

I

/*

I

I /.ITEA.IN'rAK.E DD * I

I data records I

I

/*

I

I /.ITEA.GULP DD DATA 1

I data records I

I

/*

I

L ___________________________ . ___________________________________________ J

Data Attributes

In MFT and MVT input stream data sets are written by the system onto direct access devices so that the data can be retrieved rapidly when required by the processing program. As the data is written onto the direct access deviCe the data is blocked. The block size and number of buffers used for blocking the data are default values selected by your installation. Your manager or supervisor can tell you what those values are. If you want to specify shorter blocks or less buffers you can do so with the BLKSIZE and BUFNO subparameters of the DCB parameter. You cannot request larger blocks or more buffers.

DCB:: Only the BLKSIZE and BUFNO subparameters can be coded in a DD* or DD DATA statement for MFT or MVT. You must find out what your

installation'S default values are and then you can specify smaller values, if applicable to your data set.

For exa'mple,;assume that your installation' s default values are BLR:SIZE=2400 and BUFNO==4. If you want to specify a block size of 1600 fOJ:' your data set, code

//SYSIN DD DATA,DCB==BLKSIZE==1600

If yOU want to specify two buffers for your data set, code:

//IN DD *,DCB==BUFNO=2

If you want to specify a blocksizeof 1200 and three buffers, code:

//INPUT DD *,DCB=(BUFNO:::::3,BLI<SIZE=1200)

Pal!5sed Data Set

A passed data set is one you defined with the D·ISP= ( , PASS) parameter.

ThE~

most common type of passed data set is a "temporary-for the duration of the job" data set, although you can also have nontemporary passed dat:a sets.

Passed Data Set

A passed data set can only be retrieved in the same job i t was created. However, if you have a nontemporary passed data set, you can change it~s disposition to KEEP or CATLG when you retrieve i t so that i t can be rE~trieved in other jobs.

The parameters shown in Table 15 are used to retrieve passed data sets.

'rhis section is sununarized in Table 69 of Appendix D.

Data Set Information

The DSNAME and DISP parameters are required. DSNAME identifies the data set. DISP specifies if you are retrieving or extending the data set.

DSNAME: You can identify the passed data set in one of two ways:

1. Givi.ng its name exactly as i t appeared in the DD statement where you defined it, or

2. Maki.ng a backward reference to the DD statement that defined the data set.

Both ways are equally valid, but the second is more useful because if you decide to change the data set's name you only have to change i t in the origi.nal DD statement.

1. The format of the DSNAME parameter for identifying the passed data set (or member of a partitioned data set) by name is:

r---·---,

I dsname I

I

dsname(membername)

I

I

DSNAME= ~&name

I

I &&name(membername) I

I

&&name

I

I

&name(membername)

I

L __________________________________________________________________ J

Code the DSNAME parameter exactly as you coded i t in the original DD statement. For example, if you coded

DSNAME=&~AREA

you must again code

DSNAME=&~AREA

2. The format of the DSNAME parameter for identifying the passed data set with a packwar~ reference is:

r---,

I {* • ddname } I

I DSNAME= *.stepname.ddname I

I *.stepname.procstepname.ddname I

L __________________________________________________________________ J

168

Replace "ddname" with the name of the DD statement, where the passed data set is defined. Replace "stepname" with the name of the EXEC statement of the step that has the earlier DD statement.

If the earlier DD statement is contained in the same step, omit the stepname, i. e. ,

DSNAME=*.ddname

When the earlier DD statement is contained in a cataloged procedure step, you must give both the name of the job step that invokes the procedure and the procedure step name, i.e.,

DSNAME=*.stepname.procstepname.ddnarne

T'l1'e:}JflQ:~Ji~w*ilg ff~x'an1p11e' ~sho\li;t)' '~o~: :to,!'~oa.:e~ ~ :tne;:~SNAttE' ;pa·£'a.luE!fttei:'

't9

i,dentify :,a.":iriembar'Qf'a;:pa:~sea':data s~t:"defitied"'in' a'pt:'evi<:lus, step.

, . ' y ' " .' y ' '" . y , "

r··7-.... ~-~~ .. ~~-~.·--:-~ .... '~~:-~~~-...-...;~ .... --:~--~~ ... ~;-.. ~~~-~ .. :-"~:~~..,.-~~~--,-.... ---~---... --,

'I"

//S¢,EP2 ,EXiC ... " '" , ',',,,;, " " ... ' " :

I

J?, /:/TEMP;;'DP ,D$NAME~&&ALPHA'(Ji'~llS1'l:,:otSP::::(.,PASS) , ... ..

I

, ( , ' , " , " " , ' , " " , " . , ' , ' . , . ,,'" , " , . ' , . , '>,

I

J}'

I

:;L ",,' "," , t , , , ' . " « I

,:1';

'/ISfJ£Ptt.'. ~XE(;'.,","". . ... " .' ... .' .

1

'·;1,

/):USE,.:DD;'DSNAME==*. S'lEP2~

TEMP, .. -.• ' I

·L~ ____ ~_ ...

:._y ...

~

...

~

__________ ...

_~·~

... ...;; __

~_<!II"I!'i'~_"""""";' ___ - _ " " " _ _ ~_" _ _ _ _ _ _ ... _ _ _ _ _ _ _ _ J

:~hefQll<lW,incg~'e,x;.;l:mP:lesbQ~s,;hqW,to

p6a.e,

t:lle"D~;NAM:e· }?ara'mErter .to

~t:~,eJlti,~¥' :'a~assed"data'set ,d~f,itle~',':;l:j:;ada-tet'l<.i~';eds proqe'dl,ilre :step.

,~)1~, fi1i~t, p~;r:t :()f.'t~~ :'~x~mp~t; ::s:no~a ; Y9,ui 'input de,ck.;the: second

·p~r,t.irh0W's:~ '(l"ataloge d"procedux:e 'cailed'l;>y ,th~,STF;P3 .EXEC, statement

",;~jt:'Y~~r:<d~a~.,

,,' , ,,' ',': ' " '""

, -"<'..-,j.

, ,

. '

i:t~~~ ... '~~Y";":~..,~~.,...:~---~~':;'~ ... -i.--~--~~~~~~-:";'--"~~;";"'--... ~~--;'--... ,....~ ____ ... _ ... _ ... __ .... _,

:l,'

':IN~UT"£])E9K . ' " .

1

~~t---~~~-~.~.;...~~

...

~~~

...

~-

...

~...",.

...

--..,..~~;..;..:"--

...

--.--~

... .,...--... ---...

---..;..---~~

...

....;;.---~

:f . . . , ", ,

J .,

I .,

~h~(Sn~EC PR0C=PR0C7

. ,I' .. "

's:tetJname··.' .

j: ;/S,TE~5, EX~C ~

' . . '

I

1

/IODA'DD;DSN;AME=*. STbP3.,NOVA. Fll.,E

2 ·· ' I

I ' , •... '. ' /

ddrname"', , . ' ,

t--~A;~ooiD;;~;;;;;r----:---~··.-~---~---1

~---~-""'-":'-;~-:-:7-~"';~-'~-:---":''';''':''''';';''';''~---:';''----:-:--''';-''''''';---of

I,' .', . ' •. : ,p.:J:o.:~.~.':

..

'.~~.,e.pp.nnaamm~e

. . : ...

~ I

::.'·tZ;~' :

J

//N~V~;!~t~c'~'PS~=N , . " ' . . ,

I I

I/FiLE DD])!3Nj\MF;::LEF'r~pI"SP~ (,(1?~S~) , • _.. .,'. , .

I

~-~-~~~"!fII!""~~----"'r""'~~"""t!"""~~~~-~""-

....

~~-i"~-";~~~""""';~""";"""''''''';'''-_'''''-''''''"'...w---''';'' __ -.' ... _ ... ~ _ _ -____________ J

DISP: You can code the DISP parameter in one of two ways depending on whether other steps in the job will also use the data set or whether this is the last time you are using the data set.

Passed Data Set

1. The format of the DISP parameter for passing the data set to a subsequent job step is:

r---[~--J---1

I DISP= COLD, PASS , DELETE ) I

I ,CATLG I

I ,KEEP I

l __________________________________________________________________ J

You must code OLD. The PASS subparameter indicates that the data set can be used by later steps in the job. The third subparameter tells the system what is to be done with the data set if the step ABENDs. You can specify PASS or DELETE for both temporary and nontemporary data sets. PASS is assumed if you omit the third subparameter. If the data set is nontemporary you can specify KEEP or CATLG.

Note: When you are retrieving members of a partitioned data set, the disposition (PASS, DELETE, CATLG, KEEP) you specify applies to the entire data set and not to the one member. If you want to delete a particular member of a nontemporary partitioned data set you must use the IEHPROGM utility program. The entire temporary partitioned data set is deleted at the end of the job.

2. The format of the DISP parameter for the last time you use a passed temporary data set in a job is:

r---·---.,

I DISP=(OLD, DELETE, DELETE) I

l _________________________________________________________________ J

You must code OLD. A passed temporary data set will always be deleted at the end of the job so you do not have to code the DELETE subparameter.

The format of the DISP parameter for the last time you use a passed nontemporary data set in a job is:

[---[:i;;;--J--[~--J---.---1

I DISP=(OLD ,DELETE: ,DELETE) I

I ,CATLG ,CATLG I

I , I

l _________________________________________________________________ J

You must code OLD. At the end of the step, the data set will also be kept unless you specify DELETE or CA'lLG. If the step ABENDs, the data set will also be kept unless you specify DEI.ETE or CATLG.

In the following example, two data sets named &&DATA(MEM1) and LIST are defined in the first step of a job. In the second step,

&&DATACMEM1) is retrieved and passed again. In the third step, LIST is retrieved and passed again. In the fourth step, &&DATACMEM1) is

retrieved and all of &&DATA is deleted, and LIST is retrieved and cataloged.

170

r--;;M~d~~~,~qi-T~-~"""~~-.~~-~~~-'~-:~~~-·"---'~·~-'-~f-~.-~--,---1

I

//:Slf'iEl ,'EiU~.(> PGM==UNO,..,. '-, .. ' , ' . ' . ' . ',,; : ,

I I I

[DS1 . .:D'p,DSt'J1ilil!J:!='&J~Datt'a(~Ml'~ ,nISl?~{tt PlkpS)',,:UNl '1'=2311,

I I / / .

.v:()~ti~!E=PJ{IY~TE,iJ3,l?A~E:;;:·(1}T{:K.;·:t~:5.;" i3:)J

1 I

//D52 DD DSNAME~Ii:t'S';n,D'If§P=l~ PA:sSf~UNIT=2'q (to.

I

I ' . . " . . I

I I

I I

I

/1

S.T.:$P 2

EXEC; j>GM:::;:DO$· .,' . , .: . . .' .

I I

//'083, "DI) ·OSNAME::::;;* .. STEl?1~:D'Sl,DISP:::COLD,PAS$)

I

I I

I I

t ' I

I /

/$TEP~ : 'E'ifEC :,PGM==TRES

I

1 //084' 'DD DSNAMEi;.LJIS,T;D'I$cP=(:9:L:D, l>ASS) I

I I

I I

I · , I

J ////'DS;~l?~ 'E,XEC PGlvl::=CUATl<.O.,

I

I

0 ; . ) IDD', DSN:A.ME=::*· .. S,TE~,l~,DS1:,bISP:e:OLD ,

I

I

//D56 Df> DSNAlJlE=*;. STEI?1.:nS2',Dl:SP==(OLD,CA'I'LG)

I

L __ ;...; ___ ;.... __ ;..,. ___ .... -,.;.--;....;....-.-·-.-;....--.,;..--.;..,.--;...; .... - - -... -..;...;.---______ ..-_. ___ , _____ J

Location of the Data Set

ThE~ system obtains unit and volume information from the original DD sta.tement. The UNIT and LABEL parameters are only needed in the following cases:

1. The UNIT parameter is used if you want more devices allocated to the data set than were requested the last time the data set was passed.

2. The LABEL parameter is used if the data set does not have standard labels.

UNIT: The UNIT parameter should be used only if the passed data set is a J~ultivolume data set. The system assigns the same number of devices to the data set as i t did in a previous step. If you want more devices assigned to the data set, code in the unit count subparameter th~ total number of devices needed.

The format of the UNIT parameter for passed data sets is:

r---,

I UNIT=(,unit count) I

L ______________________________________________________________________ J

Replace nunit count n with the number of devices needed for the data set.

Remember that you should not request more devices than there are volumes.

, . I n ,th~:· :t;~;l~lowj;,pg>,~~a,mple a d.ata,s,eb,'named&'ilU,NK,i};i,defiIled in the fir$'K:~~t~~;:~':A: ::max1mum;·of'f1ve voltffit~B:': a:r:ereq.u~rJ~(l:for~'&J:nNK,:

ana

they a,re,' tcibe.Jnt?u,~1t:edi"iIi;"f)licG,e;ssion.on.

two:

miits'", ,In the,'second step, you re:tri.eve, :&"JUNl{,,' but request ,that f;pur; units ps':used.

~, ' '~.( ~

Passed Data Set

r---·---·---.---,

I

//SAM JOB

I

j //STEPA EXEC PGM=X

I

I//DATA DD DSNAME=&'JUNK,DISP=(,PASS),UNIT=(2314,2)

I

I //

VOLUME=(PRIVATE",S),SPACE=(CYL,(20,lS»

I

I · I

I · I

I · I

I

//STEPB EXEC PGM=Y

I

I

//GET DD DSNAME=*.STEPA.DATA,DISP=(OLD,PASS),UNIT=(,4}

I

I · I

I · I

I •

L-_____________________________________________________________________ J

I

LABEL: The LABEL parameter is used only if the passed data set does not have standard labels. You must code the ~ label type you specified when you defined the data set. No other subparameters are allowed. The format of the LABEL parameter for passed data sets is:

r---.---,

I

,SUL

I

I

LABEL= ( ,NL

I

I

,NSL

I

I ,BLP I

L ________ . _______________________________________________________________ J

Code:

SUL

if the data set has standard and user labels.

NL

if the data set has no labels.

NSL

if the data set has nonstandard labels.

BLP

to bypass label processing.

In the following example, a data set named BANK is defined in the first step. BANK has nonstandard labels. BANK is retrieved and passed in the second step.

r---.---,

I

//MAC JOB

I

I //STEPA EXEC PGM=ZYZ I

I

//DDAA DD DSNAME=BANK,OISP=(,PASS),UNIT=2400,LABEL=(,NSL)

I

I · I

I .

I

I • I

I //STEPB EXEC PGM=WZW I

I

//DDAB DO DSNAME=*.STEPA.ODAA,DISP=(OLD,PASS),LABEL=(,NSL»

I

L ________________________________________________________ ~ ________ - ____ J

172

Da1:.a Attr ibutes

ThE~ DCB parameter is used only if the dat.a set does not have standard labels and the DD statement that defined the passed data set contains the DCB parameter.

DCB: You must specify the DCB parameter in one of two ways:

1,. Copy the DCB parameter exactly as i t appeared in the DD statement where you defined the passed data set, or

2.. Make a backward reference to the DD statement that defined the data set.

Making a backward reference reduces the possibliity of error in copyinq tht= parameter.

The format of the DCB parameter for copying the attributes of the passed data set is:

r-·---,

I DCB=(list of attributes> I

L_. ______________________________________________________________________ J

Code exactly the same DCB subparameters you coded in the DD statement where the passed data set is defined. You may not add, change, or delete subparameters. For example, if you coded

DCB=(BLKSIZE=800,LRECL=80) you must again code

DCB= (BLKSIZE=8 00, LRECL=8 0)

The format of the DCB parameter for making a backward reference is:

r---,

I {*.ddname } I

I DCB=( *.stepname.ddname [,list of attributes]> I

I

*.stepname.procstepname.ddname

I

L _______________________________________ ~ _______________________________ J

Replace "ddname" with the name of the DD statement whose DCB parameter you want to copy. Replace "stepnamen with the name of the EXEC

statement of the step that contains that DO statement. If the DD statement you want to copy is contained in the same job step, omit the stepname, i.e.,

DCB=*.ddname

If you want to copy the DCB parameter of a DD statement contained in a cataloged procedure step, you must give both the name of the job step that invokes the procedure and the procedure step, i.e.,

DCB=*.stepname.procstepname.ddname

RetrieviI1

Passed Data Set

The following example shows how to code the DCB parameter to copy the DCB parameter of a DD statement in a previous step:

r---,

I

I/STEP2 EXEC...

I

I

IIDDl DD ••• DISP=(,PASS),LABEL=(,NL),DCB=BLKSIZE=1600

I

I . I

I . I

I · I

I

I ISTEPL~ EXEC...

I

I IICOPY DD ••• DISP=(OLD,PASS),LABEL=(,NL),DCB=*.STEP2.DDl I

I . I

I . I

I · I

L ______________________________________________________________________ J

The following example shows how to code the DCB parameter to copy the attributes of a passed data set defined in a cataloged procedure step.

The first part of the example shows your input deck, the second part shows a cataloged procedure called by the T~C EXEC statement in your deck.

r---,

I INPUT DECK I

~---.---~

I • I

I · I

I · I

I II TWO I

I · I

I • I

I .

-Stepname

I

I

IICOPY EXEC... ~

I

I IIDDl DD ••• DISP=(OLD,PA$S),LABEL=(,BLP),DCB=*.TWO.STEP4~DATA I

~---~-~~~~~:-_\---~

I CATALOGED PROCEDURE ~ ____ ~ I

~---~- ---~

I •

procstepname

I

I · ~ I

I · ~ I

I IISTEP4 E;§C... I

IIIDATA-DD ••• DISP=(,PASS),LABEL=(,BLP),DCB=BUFNO=4

I

I . I

I • I

I • I

L ______________________________________________________ - _______________ J

Special Processing Optio!!

You can use the DUMMY parame"ter to bypass operations and data set disposition on a sequential data set (maqnetic tape or direct access).

DUMMY: The DUMMY parameter allows you to bypass 1/0 operations and data set disposition. When your processing programs ask to read the dummy data sets, the read request is recognized, but no data is transmitted.

This facility is particularly useful when you are debugging your program because i t saves you processing time. For example, you can suppress the reading of a data set until you are sure your program is going to

process i t correctly.

174

\

T'he DUMMY parameter is a positional parameter. That means that i t must be coded first in the operand field. FOr example: .

/,1

INPUT DD DUMMY, DSN'AME=* .. STEP1 ..

,DDA.,

DISP=( OLD, FASS) ,LAEfbL= ( , NL) ,

/,1 DCB=':BLl~'8I;ZE=£900'

.. '

Dans le document IBM System/360 Operating System: (Page 168-176)