PDA

View Full Version : Negative Auswirkungen ACTGRP(*NEW)



Starocotes
10-03-14, 10:13
Hi

ich müsste ein Programm rekursiv aufrufen. Gibt es außer der Ressourcennutzung noch andere negative Auswirkungen beim ACTGRP(*NEW) in einem Programm?

Will nur nix übersehen und mir die Maschine abschiessen.

Starocotes
10-03-14, 10:52
Nachtrag:

Was ich vorhabe ist folgendes

ProgrammA:
- läuft recht häufig
- wird mit ACTGRP(*CALLER) erstellt
- Ruft unter bestimmten Voraussetzungen Programm B auf

ProgrammB:
- läuft selten (1-2 x am Tag)
- wird mit ACTGRP(*NEW) erstellt
- Ruft imer Programm A auf

Es ist sicher gestellt das ProgrammA nicht ProgrammB aufruft wenn es selbst von ProgrammB aufgerufen wurde, also kann keine Endlosschleife entstehen.

BenderD
10-03-14, 11:19
... man muss halt die Nebenwirkungen, wie OVRSCOPE und CMTSCOPE im Auge behalten. Der etwas kleinere Hammer wäre ein Procedure Aufruf, der geht auch rekursiv in derselben ACTGRP.

D*B

Robi
10-03-14, 11:23
Kanst du so machen, wir haben das auch oft.

Allerdings läuft bei uns Pgm B auch in *caller und wird Über ein CL, das als Weiche fungiert und das in *new läuft, gerufen, wenn Rekursion gewünscht ist.
So ist die Rekursion immer ein bewustes tun und kann nicht versehendlich ausgelöst werden.
Robi

Starocotes
10-03-14, 11:28
... man muss halt die Nebenwirkungen, wie OVRSCOPE und CMTSCOPE im Auge behalten. Der etwas kleinere Hammer wäre ein Procedure Aufruf, der geht auch rekursiv in derselben ACTGRP.

D*BUhm, jetzt steh ich auf dem Schlauch.

Programm B ist ein ILE Programm und da wird ProgrammA über ein callp (bzw. eben nur über den Namen aus dem Prototyp) aufgerufen. Das ist aber scheinbar nicht das was Du meinst.

BenderD
10-03-14, 11:46
... entscheidend ist, was dann im Prototyp steht, EXTPRC oder EXTPGM. Bei EXTPGM wird ein *PGM Objekt aufgerufen und bei EXTPRC eine exportierte Procedure eines anderen Moduls. Procedure Aufrufe gehen (auch aus demselben Modul) gehen auch rekursiv.

D*B