|
To be a like data set, a sequential data
set must meet all the following conditions:
- All the data sets in a concatenation should have compatible record
formats. They are all processed with the record format of the first
data set in the concatenation (see Persistence of DCB and DCBE Fields). For example
a data set with unblocked records can be treated as having short blocked
records. A data set with fixed-blocked-standard records (format-FBS)
can be treated as having just fixed-blocked records (format-FB), but
the reverse cannot work.
Having compatible record formats does
not ensure that like processing is successful.
For example, if the record format of the first data set in the concatenation
is fixed (format-F) and a concatenated data set has fixed-blocked
records (format-FB), then unpredictable results, such an I/O errors
or open ABENDs, can occur, but the reverse should work.
The
results of concatenating data sets of different characteristics can
also depend on the actual data record size and on whether the data
sets are system managed. For example, you can process two concatenated
data sets successfully if the first data set is format-F with a BLKSIZE
and LRECL of 80, the second data set is format-FB with a BLKSIZE of
800 and an LRECL of 80, the second data set is not system managed,
and the actual data size of all the blocks in the second data set
is 80 bytes. However, if the actual data size of a block is greater
than 80 bytes, an I/O error occurs when the system reads that record
from the second data set. Alternatively, if SMS manages the second
data set, the system processes data from the first data set. An open
failure (ABEND 013-60) occurs when EOV switches to the concatenated
data set, however, even though the actual data size of all the records
can be compatible.
If incompatible record formats
are detected in the concatenation and BSAM is being used, the system
issues a warning message, see BSAM Block Size with Like Concatenation.
- LRECL is same as the LRECL of the preceding data set. With format-V
or -VB records, the new data set can have a smaller LRECL than is
in the DCB.
- All the data set block sizes should be compatible. For format-F
or -FB records, each block size should be an integral multiple of
the same LRECL value.
- If you code the BLKSIZE parameter in the DCB or DCBE macro, or
on the first DD statement, the block size of each data set must be
less than or equal to that block size.
Note: If
you specify DCB parameters such as BLKSIZE, LRECL, or BUFNO when allocating
a data set after the first one, they have no effect when your program
uses like concatenation, except as described
in BSAM Block Size with Like Concatenation.
You can specify a large BLKSIZE for
the first data set to accommodate a later data set with blocks of
that size.
- DASD data sets that are accessed by QSAM or BSAM can be concatenated
in any order of block size. If you are using QSAM, you must use system-created
buffers for the data set. The size of each system-created buffer
equals the block sizes rounded up to a multiple of 8. For QSAM the
system-created buffers are used to process all data sets in the concatenation
unless the next data set's BLKSIZE is larger than the buffers. In
that case, the buffers are freed by end-of-volume processing and new
system-created buffers are obtained. This also means the buffer address
returned by GET is only guaranteed valid until the next GET or FEOV
macro is issued, because the buffer pool can have been freed and a
new system-created buffer pool obtained during end-of-volume concatenation
processing. For system-managed data set processing, see SMS-Managed Data Sets with Like Concatenation. For BSAM processing see BSAM Block Size with Like Concatenation.
- For QSAM, if a data set after the first one is on magnetic tape
and has a block size larger than all prior specifications, the volume
must have IBM or ISO/ANSI standard tape labels or the BLKSIZE must
be specified on the DD statement.
- For BSAM, if a data set after the first one is on magnetic tape
and has a block size larger than all prior specifications, the BLKSIZE
must be specified on the DD statement.
- The device is a DASD, tape, or SYSIN device, as is the device
of the preceding data set. For example, you can concatenate a tape
data set to a DASD data set, or you can concatenate a DASD data set
to a tape data set. However, you cannot concatenate a tape data set
to a card reader.
Tip: Regard an extended-format
sequential data set as having the same characteristics as a sequential
data set.
- If mixed tape and DASD, the POINT or CNTRL macros are not used.
Related reading: For more information, see Concatenating UNIX Files and Directories and Concatenating Extended-Format Data Sets with Other Data Sets.
|