Service Program Activation
- Service program activation starts indirectly as part of a dynamic program call to an ILE program.
- Service program activation includes completion of interprogram binding connections by mapping the symbolic links into physical links.
- Service program activation includes signature check processing.
These activation activities are performed for service programs that are bound for deferred activation when one of their imported procedures runs.
A program activated for the first time within an activation group is checked for binding to any service programs. If service programs are bound for immediate activation to the program that is activated, they are also activated as part of the same dynamic call processing. If service programs are bound for deferred activation to the program that is activated, those that satisfy procedure imports might not be activated until one of its imported procedures is called. Those that satisfy data imports are, at least, partially activated to initialize the static data. This process is repeated until all necessary service programs are activated.
Figure 1 shows ILE program A bound to service programs B, C, and D. Service programs B and C are also bound to service program E. The activation group attribute for each program and service program is shown.

- The service programs are located by using an explicit library name or by using the current library list. This option is controlled by you at the time the programs and service programs are created.
- Just like programs, a service program activation occurs only once within an activation group. In Figure 1, service program E is activated only one time, even though it is used by service programs B and C.
- A second activation group (Y) is created for service program D.
- Signature checking occurs among all of the programs and service programs.
Conceptually this process may be viewed as the completion of the binding process started when the programs and service programs were created. The CRTPGM command and CRTSRVPGM command saved the name and library of each referenced service program. An index into a table of exported procedures and data items was also saved in the client program or service program at program creation time. The process of service program activation completes the binding step by changing these symbolic references into addresses that can be used at runtime.
Once a service program is activated static procedure calls and static data item references to a module within a different service program are processed. The amount of processing is the same as would be required if the modules had been bound by copy into the same program. However, modules bound by copy require less activation time processing than service programs.
The activation of programs and service programs requires execute authority to the ILE program and all bound service program objects. In Figure 1, the current authority of the caller of program A is used to check authority to program A and all of the bound service programs. The authority of program A is also used to check authority to all of the bound service programs. Note that the authority of service program B, C, or D is not used to check authority to service program E.
- Service program C, D, and E are located by using an explicit library name or by using the current library list. You can specify this option when you create the programs and service programs. D is located because it satisfies a data import and must be activated at least to the point that its static data is initialized.
- E is activated on behalf of C. When B runs and calls a procedure in E, E is not activated again because a service program activation only occurs once with an activation group.
- A second activation group (Y) is created for service program D.
- Signature checking occurs among all of the programs and the service programs that are bound for immediate activation or that require partial or full, immediate activation when A is activated. In this example, signature checking is done for C, D, and E.
Locating service program B and performing a signature check for B does not take place until one of its imported procedures is called.
The current authority of the caller of program A is used to check authority to program A and service programs C, D, and E. The current authority of the caller of service program B is used to check authority to B. The authority check of B might produce different results than for the case when B is bound for immediate activation.