|
- EXLST=address
- The address of an exit
list that you have written for exception conditions. The format and
purpose of the exit list are provided in z/OS DFSMS Using Data Sets .
- EODAD=address
- The
address of your end-of-data-set routine for input data sets. If this
routine is not available when it is required, the task is abnormally
terminated.
It is required when you issue an EOV macro for the
last volume containing data and bit 0 of DCBOFLGS indicates that the
last operation was a read. (See Handling End of Volume and End-Of-Data-Set Conditions for
more information concerning EOV.) An exception to this is when another
data set is concatenated after the current data set.
The
EODAD address used here is a 24-bit address in the DCB. If you use
the DCB extension (DCBE), and its 31-bit EODAD field is non-zero,
the system uses that address instead.
- DSORG=PS or PO or DA
- The
data set organization (one of the following codes). Each code indicates
that the format of the device-dependent portion of the DCB is to be
similar to that generated for a particular access method:
Code |
DCB Format: |
---|
PS |
QSAM or BSAM |
PO |
BPAM |
DA |
BDAM |
When writing in a partitioned or sequential DASD
data set, you can cause EOV or CLOSE to write a file mark. Refer
to Device-Dependent Parameters for further information.
Do
not issue the STOW macro against an EXCP DCB; it can corrupt the directory
contents.
- IOBAD=address
- The address of an input/output block. You can use this field for
any purpose.
- RECFM=code
- The
record format of the data set. (Record format codes are given in z/OS DFSMS Macro Instructions for Data Sets.)
When writing a data set to be read later, RECFM, LRECL, and BLKSIZE
should be specified to identify the data set attributes. LRECL and
BLKSIZE can only be specified in a DD statement, in an SVC 99 call,
or in the JFCB, because these fields do not exist in a DCB used by
EXCP.
IBM® recommends that
when you are creating a data set you issue a RDJFCB macro and set
JFCLRECL and JFCBLKSI before issuing OPEN TYPE=J. This will allow
LRECL and BLKSIZE to be in the data set label. An alternate
way to set or learn the block size is to use the BLKSIZE field in
the DCBE.
The RECFM parameter is not used by the EXCP
routines. It provides information stored for subsequent use by access
methods that read or update the data set.
The following parameters are optional. The system does not manage
the buffers described. - BFALN=F or D
- The word boundary alignment of each buffer, either word or doubleword.
- BUFL=length
- The length in bytes of each buffer; the maximum length is 32760.
- BUFCB=address
- The address of a buffer pool control block, that is, the 8-byte
field preceding the buffers in a buffer pool. If the low order bit
is on, the address is invalid and if you issue the FREEPOOL macro,
it has no effect. The FREEPOOL macro sets the low order bit on. The
DCB macro sets the low order bit on if the common interface portion
is valid.
- BUFNO=number
- The number of buffers assigned to the associated data set; the
maximum number is 255. For an EXCP DCB, OPEN ignores this parameter
and the BFALN, BUFL, and BUFCB parameters. They have an effect only
if your program uses those fields or if your program issues a GETPOOL
or GETBUF macro.
Buffer
number and block size affect the data transfer rate and the operating
system overhead per block. Using more buffers reduces (per block transferred)
the system overhead. If you allocate more buffers than your program
can process effectively, the virtual pages containing those buffers
might be paged out, adding to the system overhead for the job. A large
number of buffers also causes a large amount of real storage to be
allocated to the job while the data is being transferred.
A
job in a low-performance group can get swapped out more frequently
than a higher-priority job. The number of buffers allocated for the
job effect the number of pages that have to be swapped out.
Programs
that access data sets with a small block size (for example, 80) can
easily make effective use of 30 buffers, which fit in, at most, two
4096-byte pages. The use of 30 buffers in this case is more efficient
than 5, resulting in only 1 channel program rather than 6 channel
programs to transfer 30 blocks.
Using data sets with large
blocking factors such as half-track blocking on DASD can
be effective if only three or four buffers are specified, rather than
five or more. The slightly lower DASD performance and small increase
in system instruction costs should be more than offset by a reduction
in paging or swapping in a constrained environment.
The
DCB OPEN installation exit can use installation criteria for a default
buffer number for EXCP DCBs (for a description of the OPEN installation
exit, see z/OS DFSMS Installation Exits).
Your program can use the BUFNO value that the OPEN installation exit
might set.
|