ibm-midrangerpglerpg

ACTGRP query on AS400


I have a query in regard to activation group.

If I declare a program with DFTACTGRP(*NEW), the system creates an activation group for it and the activation group is destroyed after the program ends.

Suppose this program calls another program where the activation group is defined as DFTACTGRP(*CALLER). So will the called program use the system generated activation group of the first program or will it run in a new system generated activation group of it's own.

Any answer clearing this doubt will be really helpful.


Solution

  • If PGMA, created with ACTGRP(*NEW), calls PGMB, created with ACTGRP(*CALLER). Then PGMB will run in the NEW activation group created for PGMA.

    Additionally, if a PGMC, ACTGRP(*NEW), also gets called by PGMA and PGMC calls PGMB then you will have two copies of PGMB running, one in A's activation group and one in C's activation group.

    Just make sure you don't have a PGMD created in "OPM compatibility mode" via the poorly named option DFTACTGRP(*YES) call a actual ILE program that's defined with ACTGRP(*CALLER).