Q: V5R3 includes a change to the CRTPGM command; for the activation group if the *Entry module is an ILE module, the activation defaults to QILE.
We just had a very significant situation occur with an OPNQRYF in a CLLE program. The RPG program that was called to process the file in the OPNQRYF used to be an ILE program, *CALLER. However, it was not recompiled that way, and essentially ignored the selections made in the OPNQRYF and processed the whole file! This program needs to remain ACTGRP(*CALLER).
Am I correct that if this program were recompiled in activation group QILE, it would still not see the OPNQRYF selections and would still process the whole file?
A: Yes, you are correct. If the RPG program is compiled to run in QILE, then you’ll want to be sure to recompile the CLLE program as well, to run in QILE. Otherwise, the OPNQRYF path would not be used.
At V5R3, the CRTPGM command changed the default to ACTGRP(*ENTMOD), which lets the binder evaluate which activation group the program should use, depending upon the nature of the program entry module. If the module attribute is RPGLE, CBLLE, or CLLE, then ACTGRP(QILE) or ACTGRP(QILETS) is used. QILE is used when STGMDL(*SNGLVL) is specified, and QILETS is used when STGMDL(*TERASPACE) is specified. If the module attribute is not RPGLE, CBLLE, or CLLE, then ACTGRP(*NEW) is used.
You still have the options to specify ACTGRP(*CALLER), ACTGRP(*NEW), or ACTGRP(name).
If the CL program is a CLP program (not CLLE), then you’ll need to be sure that the RPG program is always compiled with ACTGRP(*CALLER), which is usually appropriate during the transition from OPM to ILE.