AS400 上的 ACTGRP 查询

Kun*_*oy 0 rpg rpgle ibm-midrange

我有一个关于激活组的疑问。

如果我用 DFTACTGRP(*NEW) 声明一个程序,系统会为其创建一个激活组,并在程序结束后销毁该激活组。

假设该程序调用另一个程序,其中激活组定义为 DFTACTGRP(*CALLER)。因此,被调用的程序将使用系统生成的第一个程序的激活组,还是将在其自己的系统生成的新激活组中运行。

任何消除这个疑问的答案都会非常有帮助。

Cha*_*les 5

如果使用 ACTGRP(*NEW) 创建的 PGMA 调用使用 ACTGRP(*CALLER) 创建的 PGMB。然后 PGMB 将在为 PGMA 创建的新激活组中运行。

此外,如果 PGMC ACTGRP(*NEW) 也被 PGMA 调用,并且 PGMC 调用 PGMB,那么您将运行两个 PGMB 副本,一份在 A 的激活组中,一份在 C 的激活组中。

只需确保您没有通过命名不当的选项调用DFTACTGRP(*YES)ACTGRP(*CALLER).

  • 知识中心的 ILE 概念部分讨论了激活组。https://www.ibm.com/docs/en/i/7.5?topic=group-activation-creation (2认同)