Yes – no – depends on the design
- No, if you update the program called as sign-on the user will have to sign off to get the new version.
- But, you could split the program calling Pgm1 1 on sign-on .. at least I think this will reload Menu1
&IN03 *char 1
Call Menu1 &IN03
if (&IN03 = ’1′) goto End
Each time a selection is made in Menu1 it processes that selection and then ends and returns to Pgm1
If the passed parameter isn’t a 1 it reloads Menu1 (which might be new)
I thought you were talking about the program specified in their profile or one they called from the initial program before you made the change and that’s still running. But are you saying that they don’t see any new program until they sign-off and sign back on?
They do not get the new program until the sign off and back on….
These are ILE programs? … SvcPgms? activation groups? Yes, there’s something banging around in my mind about this…I just can’t grab it.
Ok – found it, sorry it took so long, I’m just getting old. An article by Scott Klement.
Programs stay resident if the DFTACTGRP(*NO)
quote from the above web site & author:
In the old days of running RPG in the OPM environment, a program was activated when you called it. If you set the LR indicator on and ended the program, the variables would be reset, the files would be closed, and it would be deactivated from memory.
Today in ILE RPG, the behavior is exactly the same when you specify DFTACTGRP(*YES) on the CRTBNDRPG command. However, if you specify DFTACTGRP(*NO), it doesn’t quite work the same way. With DFTACTGRP(*NO), the RPG program follows the rules of ILE. In the ILE environment, a program is to remain activated until the activation group is reclaimed.
Don’t get me wrong. If you turn LR on, your files will still be closed, and your variables will be reset to their initial values the next time the program is called. However, in ILE, LR does not control whether the program is deactivated. Instead, the program is deactivated only if the activation group ends. The fact that it’s still activated is useful, because it means it can sit dormant in memory until a signal arrives, then “wake up” and handle the signal.
This is very similar to the way Terminate Stay Resident (TSR) programs work in MS-DOS. Those programs end (i.e., “terminate”) in a manner that keeps them loaded into memory (i.e. ,”stay resident” in memory). Then, they can be attached to a hardware device (such as the system clock or the keyboard) and can take action when these hardware events occur. ILE programs don’t work exactly like that, of course. They can’t be connected to hardware events, but they can be connected to signals–and signals can be activated based on an interval of time, so that makes them very similar to an MS-DOS TSR that’s based on the system clock.”