Greg,

I think you'll find that whether SVC 99 checks that a data set exists on disk 
or not depends on the text units used. 

If I want the 'does data set exist' check made I usually include the text unit 
to return data set organisation (DALRTORG). This ensures that the DSCB for the 
data set is read, thus generating an error if it does not exist. However, if I 
leave this text unit off the dynamic allocation then I can allocate the 
equivalent of the DD statement you quoted, and subsequently generate a 213-04 
abend at OPEN time.

However, I think standard TSO ALLOCATE does perform that check, so perhaps it 
too uses that same text unit.

In my understanding step allocation performs the same checks, based on the DD 
statement keywords you specify. However, some of the text units used in dynamic 
allocation have no equivalent in the DD statement. See Table 87 on page 692 in 
MVS Programming: Authorized Assembler Services Guide - SA23-1371-30 for the 
z/OS 2.3 version.

Lennie Dymoke-Bradshaw | Security Lead | RSM Partners Ltd  
Web:              www.rsmpartners.com
‘Dance like no one is watching. Encrypt like everyone is.’

-----Original Message-----
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of 
Greg Price
Sent: 07 August 2019 03:00
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: [IBM-MAIN] CPU time cost of dynamic allocation

On 2019-08-07 5:08 AM, Carmen Vitullo wrote:
> I suspect dynamic allocation may be doing more that the IEFBR14 possibly?

Well, DYNALLOC is certainly doing more that the job step initiation when it 
comes to allocation.

Device allocation at step-start time is a largely CPU-bound affair with the 
only I/O usually being for catalog look-ups.  That is why something like //MY 
DD DD DSN=FRED,DISP=OLD,UNIT=3390,VOL=SER=MYVOL1
will get a S213-04 at OPEN time when FRED does not exist.

DYNALLOC will check that FRED exists on the volume - yes! it does "lots" 
of I/O to the data set's volume which batch device allocation does not perform.

Data set name enqueue is done before device allocation, and most of it is done 
at job start time for data sets mentioned in JCL.  DYNALLOC has to do the ENQ 
when it is called before looking at devices.

Cheers,
Greg

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to