When I think I understand something about RPG and Barbara claims she doesn't, it is time to start worrying :-)
This is how I understand it:
- When program P, which uses service program S, is activated, S is located and P receives pointers to the procedures it uses;
- When service program S is recreated, the old version is moved to QRPLOBJ; P keeps the pointers to the old version in QRPLOBJ; thus it doesn't "see" the new version;
- When program P is recreated and activated, S is located and so the new P receives pointers to the new S; and thus it "sees" the new version.
Am I wrong in my understanding?
Op 16-11-2019 om 14:17 schreef Barbara Morris:
On 2019-11-15 10:01 p.m., smith5646midrange@xxxxxxxxx wrote:
What I still don't understand is that I didn't add or remove any procedures. I only modified the code within an existing one but the changes won't execute until I recompile the program. I thought the idea of a service program is that you could make changes (if you found a bug for example) and not have to recompile everything that used it because it would automatically pick up the new version. Is there a restriction that if you change an existing function that you have to recompile all of the calling programs?
I also thought the service program was not bound into the program (like a module would be) but when I deleted the service program, the program still ran.
When a service program has been used in an activation group, the activation group "remembers" the service program. If you change the service program, the change won't be noticed by anything in the activation group. (It might be "anything already in the activation group, which would explain why recompiling the program made it see the new version of the srvpgm, but I don't really understand how that aspect of activation groups works.)
When you change a service program, you _could_ (but shouldn't) reclaim the activation group. I say "shouldn't" because reclaiming activation groups can sometimes cause strange problems if other activation groups have hooks into the reclaimed one.
So I find it's safer, and easier in the long run, to just sign off and sign back on again.
As an Amazon Associate we earn from qualifying purchases.
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.