× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Gerald,

I think this could be related to that message you posted recently (quoted below), about "activation groups"...

If you are compiling ILE programs (either CLLE or RPGLE) with ACTGRP(*CALLER) and somehow getting them to run in the *DFTACTGRP, that could easily be a big part of your problems. ILE programs were never intended to run in the *DFTACTGRP, unless you specifically compile them with DFTACTGRP(*YES). Otherwise, even if you issue RCLRSC, that will not be able to "reclaim" the resources of those ILE *PGMs.

_D__iagnosis
_You can use the DSPJOB command to display your own job, or another user's job ... From the DSPJOB display menu, you can use option 12. Display locks, and on the next screen, press F10=Display job record locks to see if there are still records "locked", and from the main DSPJOB menu, use option 14. Display open files, if active to see what files, if any, are left open. Also, you can use option 11. Display call stack, if active and on the display of the call stack, press F11=Display activation group to see what activation group(s) programs are running in. (You need to look at this option 11 while a user is "deep down" in the application, and not after they have returned to the main menu, to see the programs on the stack and their activation groups.)

_Possible remediation steps:
_As a "next step" for any "top level" programs, (those called directly from a "menu"), compile them with ACTGRP(*NEW) and that way, a new activation group gets created automatically whenever they are called, and any programs called by that "top level" program will run in the same AG, so long as they are all compiled with ACTGRP(*CALLER)... then, when the user returns from that "top level" program to the "menu" the *NEW AG is automatically destroyed and "cleaned up" -- all files opened in that AG are closed, record locks released, etc.

If you still have some parts of the applications that are "OPM" and so must run in the *DFTACTGRP, you can still do that -- just add a "layer" or "jacket" -- a little OPM CLP program as the "top level" program that gets called from the menu(s), and it then CALLs the actual OPM program -- when that program eventually returns to this CLP program, the CL program issues: RCLRSC LVL(*) to "clean up" any resources for any OPM programs below this call level.

Any questions?

Hope t hat helps,

Mark S. Waterbury

> On 6/12/2017 4:25 PM, Gerald Magnuson wrote:
I believe I am having troubles with records remaining locked, when the user
gets back to the menu, but I can't find the program(s) that is causing
it.....
Is there a api for me to use, when the user get's back to the menu, to see
if they have any records locked?

the old menu system, was not ILE, and would issue a RCLRSC after it
returned from running an application..... I don't know if that did
anything or not?
> On 6/9/2017 4:34 PM, Gerald Magnuson wrote:
I have noticed that I am doing all kinds of "bad" things in respect to
activation groups...

I don't know where to start, other than maybe changing the command defaults
on CRTBNDCL
to DFTACTGRP(*NO) ACTGRP('<our_named_actgrp>')


we are kinda getting into the habit of compiling our RPGLE programs as
ACTGRP(*CALLER).
But since most of our CL and CLLE is set to *DFTACTGRP, most of our RPGLE
is running there as well....

we don't have /copy on our H specs, or any other real helps in place for
this....

what have others done to help with getting programs created with the
correct activation group settings?



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.