Consider what can happen when you read from a DD concatenation containing an empty data set with EXECIO under REXX for TSO/E

Description: When EXECIO is used to read a DD consisting of a concatenation of 2 or more data sets, that concatenation might contain empty sequential data sets (as of V2R1) as long as any empty data sets are SMS managed.

Steps to take: This item is intended to alert users of EXECIO to a behavioral change that may occur due to a relaxing the restriction on null data sets within a concatenation being read by EXECIO DISKR or DISKRU. If your exec tests the EXECIO return code and handles RC=4, you will likely have no action that needs to be taken. The RC=4 that was previously returned when EXECIO detected a null data set within the DD concatenation being read by EXECIO is still a possible return code, if the concatenation contains a null data set which is not SMS managed. Yet, if the EXECIO read against a DD containing a null data set completes successfully (i.e. RC=0 or 2), you would typically have no exceptional action to take, since the read operation will have worked as if the empty data set were not even present.

On the other hand, if you have an exec that expects EXECIO to fail whenever it reads a concatenation containing a null data set, and you exec depends on this EXECIO read failure, you should now look for RC=0 or RC=2 to allow for the possibility of success.

For example, if you use EXECIO RC=4 and the associated message IRX0566E to determine whether a DD concatenation contains a null data set, this will no longer work if the null data set is an SMS managed sequential data set. The read would work (RC=0). You could still determine if a data set is empty by allocating that data set alone to a DD and reading it with EXECIO. RC=2 (or RC=0, if execio * were used) and zero records read would indicate that the data set was empty.
Note: Note that EXECIO against a single null data set that is not part of a multi data set concatenation has always worked successfully, regardless of whether or not the empty data set is SMS managed.

Reference information: For details about EXECIO see, z/OS TSO/E REXX Reference. For details about messages IRX0670E and IRX0566E, see z/OS TSO/E Messages.