× 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.



On Wed, 06 Oct 2010 11:36:06 -0500, rpg400-l-request wrote
from: Alan Campin <alan0307d@xxxxxxxxx>
subject: Re: avoid running ILE programs in the DAG...

We had to put our service programs back into DAG because commitment control
would not work unless the program was running DAG.

I have never encountered this. Commitment control works just fine in ILE AGs.


We also ran into big problems with errors in named activation
groups. Every time that an error is thrown in a named activation
group the system destroys the activation group and when you try to
go back to it the program crashes because the pointer is now
pointing at a object that doesn't exist anymore.

This can only happen if the error reaches the control boundary (i.e. the first
program in the AG) without being handled. Since RPG includes default error
handling by design you have to work pretty hard for this to happen. IN the
early days of ILE the main cause we encountered was the nasty old habit of
coding an error indicator (or E extender) on a CALL and then doing nothing
with the resulting error. By telling the compiler you are going to handle
errors you effectively turn off the default handler. Is this perhaops what
your programs do?

The only way we could seem to get around this was to run the service
program and programs in the DAG so that it could not destroy the
activation group.

Running a Service Program in the DAG is the absolute last thing I would do -
particularly if it handles files. There are usually much simpler ways to
handle any problems introduced by a named AG than doing this.

Totally bizarre behavior on IBM's part. Errors occur all the time.
Why destroy the activation group but that what they do.

Sounds like you haven't really read and understood the ILE error handling
behavior. It is very well documented and very consistent in its behavior in my
opinion. The level of granularity of error handling you can achieve with it
goes far beyond what the old program model did. As I noted earlier - you
normally have to do something that was a bit "off" in the first place before
the AG will get destroyed in the manner you describe.

I don't like running everything in the DAG but pretty much have no choice.

Sorry - but unless you have no choice but to run a mixed RPG400 and RPGIV shop
you most certainly do. You can't avoid running at least one program in the
DAG - 'cos that's where you start - but _everything_ else can be accommodated
within named AGs.



Jon Paris
Partner400
www.Partner400.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.