Jeff,

You're probably not going to like this.

First, calling an ILE program with ACTGRP(*CALLER) from an OPM program is
not a good idea. The reason you see one post say one thing and the next
another is that it depends. You can call the ILE program from OPM, but
don't use ACTGRP(*CALLER). If you run an ILE program in the default
activation group (i.e, *DFTACTGRP where OPM programs run), files are not
closed, storage is not released, and a whole bunch of other potential
problems are left waiting to happen. In general if your ILE program
doesn't open files, you can call it from OPM and be fine--just don't
compile your program with ACTGRP(*CALLER). Another thing to watch for is
if you expect certain working-storage items to be initialized when you
call the program, that may change with an ILE program running in a named
activation group. While you can get away with it at times, the general
recommendation is to avoid mixing ILE with OPM and to never call an ILE
program with ACTGRP(*CALLER) from an OPM program.

Michael Quigley

cobol400-l-bounces@xxxxxxxxxxxx wrote on 10/31/2009 01:00:09 PM:

----- Message from Jeff Buening <JeffBuening@xxxxxxxxxxxxxxxxxxx> on
Fri, 30 Oct 2009 13:02:44 -0400 -----

To:

cobol400-l@xxxxxxxxxxxx

Subject:

[COBOL400-L] DFTACTGRP(*YES) vs ACTGRP(*Caller)


I have seen the below on some post...........

Programs compiled with DFTACTGRP(*YES) do not behave the same as
ACTGRP(*CALLER), even if the ACTGRP(*CALLER) program was called from
the
default activation group. This is because specifying DFTACTGRP(*YES)
does
more than control which activation group the program is compiled
into,
it also controls some other OPM compatibility things.

I have seen post that say DFTACTGRP(*YES) was to help RPG programs
convert
to ILE with out all the goodies of ILE, but still use SEP, content
assist
etc.. CRTBNDCBL for cobol does not have a DFTACTGRP parm just ACTGRP
parm.
So can I assume using ACTGRP(*CALLER) in cobol is similar to the
DFTACTGRP
(*YES) that RPG has? Not sure what the other compatibility things are?

If I have Cobol "Program A" calls "Program B" and "Program B" is a
program
that gets used all throughout the system not just in my "Program A" Call
"Program B" application. If I am changing just my application to ILE
would
making "Progam B" ACTGRP(*Caller) be the way to go since other
applications
that are still ALL IN OPM COBOL will still be calling "Program B"? Has
anyone done something similar and sees issues with this thinking,
because
one post will say one thing and the next another? Or did you create
duplicate programs one for ILE and one for OPM?

Thanks,
Jeff Buening

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