[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Apr 2005
    Beiträge
    60
    Zitat Zitat von B.Hauser
    ILE-Programme mit Aktivierungs-Gruppe *CALLER, die von OPM-Programmen aufgerufen werden bzw. Programmen, die in der Default-Aktivierungs-Gruppe laufen, werden weder mit RCLRSC noch mit RCLACTGRP freigegeben. Beim erneuten Aufruf werden nur die Variablen initialisiert und *INSR ausgeführt. Default-Aktivierungs-Gruppen werden nur durch das Job-Ende (normal oder abnormal) beendet.
    Birgitta
    Gehst du jetzt davon aus das die ILE-Programme *INLR = *OFF haben? Falls ja: Ich dachte die Variablen werden beim erneuten Aufruf nicht initialisiert?
    Ausserdem, wenn ich mir das Beispiel aus dem Redbook ILE Concepts (V5R2M0) auf Seite 96-97 ansehe sieht es schon so aus als ob die Resourcen eines ILE-RPG Programms das in der Standard-Aktivierungsgruppe läuft nach einem RCLRSC wieder freigegeben werden.

    Zum Testen: Wie krieg ich raus ob von einem Programm noch Teile im Speicher sind (z.B. Variablen,...). Kann man sich das irgendwo anzeigen lassen?

    MfG
    Martin Stöberl

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Testen kannst du das konkret mittels STRDBG, indem du z.B. eine *INZSR-Routine einbaust und dort einen Breakpoint setzt (alternativ ein DSPLY in der *INZSR).
    Bei Neu-/Aktivierung wird *INZSR ausgeführt, ansonsten nicht.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Wenn ein Modul mit *INLR = *ON verlassen wird, wird IMMER die *INZSR ausgeführt bzw. die Variablen intitialisiert, unabhängig davon, ob eine Aktivierung stattgefunden hat oder nicht.

    Wird eine Modul mit Return verlassen, wird die *INZSR nur beim ersten Aufruf ausgeführt bzw. immer dann, wenn eine neue Aktivierung stattgefunden hat. Hat also das rufende Programm die Aktivierungsgruppe *New wird bei dem aufgerufenden Programm die *INZSR jedes Mal ausgeführt.

    Wäre dies nicht so, hatte es für manch einen nach der Konvertierung von RPGIII zu RPGIV ein böses Erwachen gegeben.

    Prozeduren unterliegen nicht mehr dem Zyklus und sind daher von *INLR und Return unabhängig und können rekursiv aufgerufen werden. Return muss sogar nur angegeben werden, wenn ein Rückgabe-Wert ausgegeben werden muss. Prozeduren erhalten für jeden Aufruf ein neues initialisiertes Variablen Set.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Apr 2005
    Beiträge
    60
    OK, ich denke soweit hab ich's begriffen.

    Wie sieht es eigentlich bei der Performance (= Zeit zum Initialisieren/Einrichten des Speichers für das Programm) beim ersten Aufruf aus? Macht es da einen Unterschied ob ich das Programm in der Standardaktivierungsgruppe, einer benannten Aktivierungsgruppe oder der Aktivierungsgruppe *NEW laufen lasse?

    cu
    Martin

Similar Threads

  1. RMTOUTQ vs. DEVD
    By shorty in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 20-12-06, 16:11
  2. Threads vs. JVMs
    By Beffe in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 08-11-06, 15:43
  3. dynamische Satzauswahl / Rumba vs. CA
    By y-richy in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 10-08-06, 13:59
  4. Datenbankmodellierung: Rational vs. AllFusion?
    By Stoeberl in forum NEWSboard Server Software
    Antworten: 1
    Letzter Beitrag: 29-06-06, 14:56
  5. D2 UDB vs. V5R2M0
    By Andreas.Meyer in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 11-06-06, 09:08

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •