By default, service program binding is resolved when the program is
loaded (not when the CALLPRC happens). However, this can be changed by
changing the activation from *IMMED (default) to *DEFER.
Also, you need to look at how the library was specified when the srvpgm
was bound. It can be specified as *LIBL or a hard-coded library.
(Though, I don't think it's possible to specify *CURLIB.)
On 12/24/2012 8:59 AM, Jeff Young wrote:
I have a CLLE program that is specified as the initial program for my user.
This program calls a program to set the users library list and changes the
Current Library to *CRTDFT. The library list set by this program contains
the library that the service program resides in.
After the library list is set it then calls a procedure in a service
call pgm(ZZZ/xxx) /* this is a qualified call specifying the library
containing the program to set the library list */
. do more stuff
1. When the user profile specifies the Current Library as a library
containing the service program, all works just fine.
2. When the user profile specifies the Current Library as either *CRTDFT or
a library not containing the service program, the signon is aborted by the
system and the following message is received:
CH3401 Escape 40 12/24/12 09:49:38.946985
#mnrnrl 000518 QCMD QSYS 04FA
Message . . . . : Cannot resolve to
object XASRVPG. Type and Subtype X'0203'
Since the service program XASRVPG is in the library list at the time the
CALLPRC is issued, I do not understand why there is a problem.