We are having problems with developers implementing service programs with activation group *CALLER.
The problem with that is our Order Entry application uses several subprocedures in many different service programs. The application opens MANY files and a RCLRSC was placed in one of the programs so after an order is created and posted it closes most of the files. Well, after the RCLRSC the program will blow up when the user startes going through all their screens entering the second order. When it gets to the program using a service program that has *CALLER as the activation group we get the error that says "Tried to refer to all or part of an object that no longer exists." Users have to sign off and back on in order to get back into the programs when this happens. To fix the error and get our customer service back up I have been putting a named activation group back on the service program.
I am told the RCLRSC is necessary. And I am told that we must come up with a solution so that we can guarantee that this will never happen again (service program implemented with *CALLER instead of the named activation group) or stop using service programs.
My question is this...is there a way to make the OS re-activate the service programs? Setting on *INLR doesn't seem to work. What about either the CEETREC or CEE4ABN APIs? I need to know how to prevent this from happening, regarless of the activation group.