On 24-Jan-2014 11:33 -0800, Stone, Joel wrote:
I am NOT suggesting that the specs were ignored. I think that they
are working as IBM intended.
Just seems an odd interpretation IMO. If the DDS offers the ability
to specify the library name, but the run-time does not use those library
specifications to locate the resource, then I would consider those
library-name specifications to have been ignored. The obvious
implication seems to me, the DDS having given the ability to specify a
library-name on the PAGSEG(), that the library-name specification should
I think it would be comparable to a file spec in RPG source. For CUST
file, the lib name at COMPILE time need not be the same as the lib
name at RUN time.
An analogous situation would require that the file spec, having been
made by a constant or a variable-name, would include the library name.
The F-Spec [without any keywords] is just a file name; no library name
allowed. Thus, that name resolution at run-time is via a library list
is the natural effect [noting: the open-member-search algorithm is
different than the object-search algorithm when using a library-list].
I am suggesting that it is unfortunate it works that way, but it
appears to do just that.
The difference is that I cannot control what the output writer
resolves to - once the spool file is created, it is no longer under
my app's control.
But your DDS specifications, in combination with having set the
System-To-Program Field values would have explicitly defined,
library-qualified even, where the system should find\resolve the named
PAGSEG() resource. If a library name had not been specified, then I
would agree that what the system decides to use is more variable, but
library-qualified named object and object type is as explicit as it
gets; i.e. what is in effect as a user or device AFPRSCLIBL, is moot.
I suspect however, that during the creation of the spooled file [as I
just experienced in a test], there is a diagnostic being logged to warn
that indeed, unfortunately, that *it just works that way* [apparently at
least, for any one page]; i.e. contradicting what is IMO, an intuitive
expectation, such that merely a diagnostic logged at run-time with no
warning in the docs nor warning in the compiled DDS listing, would be a
rather frustrating outcome:
Message ID . . . . . . . . . : CPD4091
Message . . . . : Same object name (&6) used on a page with different
Cause . . . . . : A page segment or overlay with the same name cannot
be used with different libraries on the same page. Page segment or
overlay &6 will be library qualified to library &7, not library &8.
Recovery . . . : Rename the overlay or page segment and try the job
I will try your suggestion of commands to verify the resource name
and let you know what I find.
If the msg CPD4091 F/QWPPERRS is getting logged, then the resource
included in the list produced by the QGSLRSC should reflect the *PAGSEG
from the library name seen as the replacement value &7 in the that
message; i.e. there will not be two with the same name, but with
different library names.