This section describes the attributes of newly created receive files of the following types:
PS data set
VSAM file
attributes of new PO data sets created for a receive file
of the type PO/PDSE member
The following rules governing the definition of the attributes for a new receive file (i.e. cases "N", "D + N" and "O" in the above table) only apply if the receive file is a PS data set or a VSAM file or if a new PO/PDSE data set was created for a receive file of the type "PO/PDSE member".
(If an entire PO/PDSE data set is being transferred, these rules only determine the attributes of the temporary PS data set created for the transfer. Information on determining the attributes for a PO/PDSE data set created as a receive file is given later.)
Record format
For both homogeneous and heterogeneous links, the record format attribute of the send file (F(ixed), V(ariable) or U(ndefined)) is transferred.
The following attributes are derived from this for the different types of receive file:
PS data set
The receive file is assigned the transferred record format attribute.VSAM file
F
AVGLRECL and MAXLRECL both have the same value (AVGLRECL: average logical record length;
MAXLRECL: maximum logical record length)V
the transferred record length determines the MAXLRECL; AVGLRECL = MAXLRECL - 1U
cannot be mapped --> FTR2096
PO/PDSE member
If the entire PO/PDSE data set is new, it is assigned the transferred record format attribute. If the PO/PDSE data set already exists then the attributes of the receive file and the data set must correspond.
openFT (z/OS) does not support the record format FS.
Notes
When transferring a file from a Windows or Unix system to z/OS, the record format attribute transferred depends on the specification for DATA-TYPE in the NCOPY command:
DATA-TYPE=*CHAR --> record format attribute VB (default value)
DATA-TYPE=*BIN --> record format attribute U
In the following cases, the records of PS data sets and of members of PO or PDSE data sets with undefined record length (RECFORM=U) are split up into smaller records:
The length of a record in the send file exceeds the block length. (BLKSIZE) of the receive file to be extended (WRITE-MODE=*EXTEND-FILE).
The length of a record in the send file exceeds the maximum length of a unit transferable between send system and receive system.
The length of a record in the send file exceeds the maximum block length in the receive system.
No record structure is used in the receive system.
The byte sequence of the data transferred is retained in all these cases.
Block length
The block length of the send file is only transferred in the case of a homogeneous link.
In the case of a heterogeneous link (and a homogeneous link where the block length of the send file cannot be used for the receive file because of the disk type), a standard block length of 2048 (or a integer multiple of this length) is assumed. (The smallest integer multiple of 2048 into which a record of maximum length - MAXLRECL, see below - will fit is selected as the standard block length.)
The following applies to the different types of receive file:
PS data set
The receive file is created with the above block length.VSAM file
The above block length is mapped onto the control interval size (CISIZE) as follows:block length < 8192: the value for CISIZE is rounded up to the nearest integer multiple of 512.
block length >= 8192: the value for CISIZE is rounded up to the nearest integer multiple of 2048, with 32760 as the maximum.
PO/PDSE member
If an entire new PO/PDSE data set is created, it is assigned the block length described above.
Record length
In the case of both homogeneous and heterogeneous links, the record length of the send file is transferred. The record length specification is interpreted as follows for the different record formats of the receive file:
F(ixed)
Every record has this length.V(ariable)
Record length including length field of 4 bytes> 0
The length of a record may not exceed this length.= 0
A record can have any length, with 32752 byte as the maximum (without record length field). However, there are restrictions depending on the file type, see below.
U(ndefined)
No meaning ( = 0 )
A maximum length (!=
0) must be specified in z/OS, however, for format V in the case of PS, PO and VSAM files. For this reason, if the record format = V and the record length transferred = 0 (as may be the case for heterogeneous links), openFT (z/OS) must specify a value it can use for the maximum record length. openFT (z/OS) selects this value in accordance with the type of receive file. The value 259 (255 + 4 bytes record length field) is used as the default value.
The following applies to the different types of receive files:
PS data set:
record length transferred > 0:
The file is created with this (maximum) record length.record length transferred = 0:
U format: OK.
F format:
This combination of attributes may not occur in the send file.V format:
If the longest record in the file is not longer than 259 bytes (incl. 4-byte record length field), then the file is created with a record length of 259 bytes. If the longest record length in the file (including the 4-byte record length field) is greater than 259 and does not exceed the block length - 4, this is taken as the maximum record length. Records longer than this value cannot therefore be transferred and result in a cancellation of the file transfer operation,
accompanied by an error message.
If files are received from BS2000, z/OS uses the BS2000 block size as the record length.
PO/PDSE member
The following applies if the entire PO/PDSE data set is newly created:
record length transferred > 0:
The PO/PDSE data set is created with this (maximum) record length.record length transferred = 0:
U format: OK.
F format:
This combination of attributes may not occur in the send file.V format:
The PO/PDSE data set is created with a maximum record length of 259 (255 + 4).
VSAM file:
record length transferred > 0:
F format:
MAXLRECL = record length transferredAVGLRECL = record length transferred
V format:
MAXRECL = record length transferred - 4 (since the length field is not counted)AVGLRECL = MAXLRECL - 1
record length transferred = 0:
F format:
This combination of attributes may not occur in the send file.V format:
MAXLRECL = 32752 (the length field is not counted)
AVGLRECL = 255 (since the length field is not counted)
If, during transfer, the length of a record received exceeds the maximum record length created for the receive file, the transfer is canceled with an error message.
Notes
The maximum length of the records that are to be transferred may not exceed the following values:
32760 byte for files with fixed record lengths
32752 byte for files with variable record lengths (record length without record length field)
for openFT
<=
V10.0: 32248 byte with compromised transfer (COMPRESS = *BYTE-REPETITION)
So it can be assumed that, send files from remote systems which are to be transferred in format V with a record length of = 0 cannot be stored in newly created receive files under the following circumstances.
The receive file is a newly created PS data set, and the send file contains records with more than 2040 characters (net) in the case of BS2000 send files, or 255 characters in the case of Windows or Unix send files.
The receive file is a PO member in a newly created PO/PDSE data set, and the send file contains records with more than 255 characters (net).
In either case, the transfer is canceled with an error message.
In z/OS, the same maximum record length applies to all members of a PO/PDSE data set. For LMS libraries under BS2000, however, the maximum record length is memberspecific. This means that the following situation may occur:
An LMS member is transferred to a PO/PDSE member. The PO/PDSE data set does not yet exist. It is therefore created with the maximum record length transferred.
A second member of the same LMS library is now to be transferred to the same PO/PDSE data set. If this LMS member (whose maximum record length may differ from that of the first member) contains at least one record whose length exceeds the maximum record length of the first LMS member, the transfer is canceled with an error message. This happens because the length of this record is not compatible with the maximum record length of the PO/PDSE data set, which was determined by the maximum record length of the first member to be transferred.
If, therefore, a number of members from the same LMS library are to be transferred to members of the same PO/PDSE data set, the member with the greatest maximum record length should be transferred first.
Spanned records attribute
The spanned records attribute of the send file is only transferred in the case of homogeneous links. The spanned records attribute transferred is only taken into account when creating non-VSAM files (PS data set, PO/PDSE member) with variable record length. It is then either set or not set in the receive file as in the send file.
In the case of heterogeneous file transfer, the spanned records attribute is only set if LRECL > BLKSIZE-4.
If the partner system specifies the value 0 as the record length of the send file, the spanned records attribute is never set.
If a record with LRECL > BLKSIZE-4 is to be written to a file (PS file or PO/PDSE library) with variable record length for which the spanned records attribute is not set, the transfer is canceled with an error message.
In the case of VSAM files, the spanned records attribute corresponds to the file attribute SPANNED. It is only set for a VSAM receive file if the record length transferred (including the length byte) is greater than the value already rounded up for CISIZE - 7 (VSAM block overhead).
If, however, during homogeneous transfer, a non-VSAM file is created as a receive file and the send file is a VSAM file with the SPANNED attribute, the spanned records attribute is also set for the receive file.
Blocked records attribute
The blocked records attribute can only be set for non-VSAM files (PS data set, PO/PDSE member). The blocked records attribute of the send file is only transferred in the case of a homogeneous link. It is then either set or not set for the receive file, as for the send file.
In the case of heterogeneous file transfer, the blocked records attribute is always set.
Note
If, during homogeneous transfer, a non-VSAM file is created as a receive file and the send file is a VSAM file, the blocked records attribute is always set for the receive file (in this case, VSAM is interpreted as "blocked").
Control character attributes
Control character attributes (ANSI and Machine control characters) are only taken into account in non-VSAM files.
The control character attributes of the send file are transferred and accepted when the receive file is created only in the case of a homogeneous link.
Number of directory blocks
PS data set, VSAM file: Not applicable
PO/PDSE member
If an entire new PO/PDSE data set is created, the value specified by the FT administrator for the number of directory blocks is used. If the FT administrator does not specify a value for the number of directory blocks, the default value 20 is used.
One important attribute of a PO data set, however, is not contained in the "unloaded data". This attribute must be defined in a different way:
Determine the number of directory blocks
If the attribute "number of directory blocks" transferred via a homogeneous link contains a value other than zero, the new PO data set is created with the corresponding number of directory blocks. This applies if the send file also contains an entire PO data set identified by the prefix ":L:" in the NCOPY command). In this case, the receive file is assigned the same number of directory blocks as the send file.
If, however, the attribute "number of directory blocks" transferred does not contain a valid value (e.g. because the send file is a PS data set containing a PO data set in "unloaded" format), the number of directory blocks for the new PO data set is defined by the value specified by the FT administrator or the default value 20, as for the transfer of a PO member.