6.23 We have a job stream that logs on to account A, but runs a program from account B. The run statement says:

!RUN PROGRAM.GROUP.B;XL="XL.PUB"

I had expected it to use the XL.PUB.A library since A is the logon account, but instead it is using the XL.PUB.B library, the account the program resides in. Is this a feature or a bug?

The short answer is "feature".

This behavior is probably designed to achieve consistency between NM and CM library references. CM programs use the "LIB=G|P|S" option to locate the proper SL. In particular, "LIB=P" means use the SL in the PUB group of the account in which the program resides. So, RUN CMPROG.GROUP.B;LIB=P would try to resolve library references first in SL.PUB.B. In the case of XLs, from the MPE/iX Commands Reference Manual: "If any library name in the list is not fully qualified, it will be qualified with a name consistent with the program file being loaded".