Coding the LOC=ANY DCBE option

OPEN and RDJFCB support the DCBE option LOC=ANY, to signify that the application program supports the XTIOT, UCB nocapture, and DSAB-above-the-line options of dynamic allocation or that it is not sensitive to the use of those options. The default value is LOC=BELOW, which results in OPEN giving a return code of 8 and RDJFCB giving a return code of 4 if the DD name has any of these three dynamic allocation options. Open also issues message IEC133I.

The LOC=ANY option is the 10 bit in the DCBEFLG3 byte. It is named DCBELOCANY.

If you set this option before issuing an OPEN or RDJFCB macro, it means that the allocation can have an XTIOT that can reside above the line (instead of a TIOT entry), the UCB can reside above the line and the DSAB can reside above the line. If any of these is true, then OPEN will set the two-byte DCBTIOT field to zero instead of setting it to an offset in the TIOT.

If the application program sets this DCBE option before OPEN or RDJFCB but the new NON_VSAM_XTIOT=YES option in PARMLIB is not in effect, and any of the three dynamic allocation options is in effect, then OPEN will issue an ABEND 113–4C and existing message IEC142I, and RDJFCB will give a non-zero return code (normally 8). If OPEN succeeds, it will set the DCBTIOT field to zeroes instead of to the offset to an entry in the TIOT, task I/O table. An EXCP DCB for a device other than DASD or tape will continue to get the existing failures.

If the DEB has a DASD or tape UCB address, then for EXCP, BSAM, BPAM or QSAM, the resulting DEB will have an optional bit on the DEB basic section that means: UCB address is 31–bit and the address may not point above the line. The bit is DEB31UCB. The DEB31UCB bit and other new DEB symbols were shipped in R11, but with no code to set or test them. This allows you to assemble z/OS V1R12 code on V1R11, but the DEB31UCB bit will not be set to on in V1R11.

For tape, this means that the device-dependent section will be 8 bytes instead of 4 bytes. It will cause a problem for programs that assume the tape section is four bytes.
Note: Having a 31–bit UCB address field in the DEB does not mean that the UCB has not been captured or that it is above the line. The actual UCB might be below the line so the 24–bit UCB address might be in a four-byte field.

If the DD does not have an XTIOT, then the DEB is the old format and it will not matter whether you code the LOC=ANY DCBE option. It also means that if the DD has an XTIOT, then DCBTIOT will be zero, but the DEB might be in the old or the new format.