[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2006
    Beiträge
    12

    Question RNX9998 bzw. MCH3402

    Hallo,

    wir haben Performance-Probleme in unseren Batch-Prozessen. Das kommt von vielen dynamischen Calls, die historisch bedingt so enthalten sind.
    Jetzt habe ich mal die Aufrufe von CALL nach CALLB geändert und der Batch-Job ist tatsächlich um ca. 40% schneller. So weit so gut.
    Wir haben aber die Möglichkeit, daß der Batchjob in der gleichen Job-Umgebung nochmals anläuft, also kein neuer SBMJOB abgesetzt wird, und jetzt kommt der oben beschriebene Fehler, weil ein CALLB Aufruf nicht mehr funktioniert.
    Wahrscheinlich habe ich irgendwo ein Parameter-Längen-Problem bei den Aufrufen, so daß irgendwas zerschossen wird.
    Jetzt meine Fragen:
    1. Kann ich irgendwie nachvollziehen, welches Programm bzw. Parameter dieses verursacht?
    2. Gibt es ein Tool, mit dem man rausfinden kann, ob Parameter zwischen rufendem und gerufenem Programm falsche Längen haben?

    Vielen Dank für Eure Hilfe.

    Matthias

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.246
    Es gibt kein Tool mit dem dieses Festgestellt werden kann, da letztendlich immer nur Adressen übergeben werden.
    Die Länge und Ausprägung der Parameter wird einzig und allein durch die Quelle des Programmes bestimmt.
    Es gib auch im Programm keine Möglichkeit festzustellen, welche Felder tatsächlich übergeben werden.

    Kleine Ausnahme: ILE mit Descriptoren. Die Descriptoren können allerdings ignoriert werden.

    Der Vorteil von CALL zu CALLB ist sicherlich das Binden der einzelnen Module zu einem Programm.
    Allerdings kann es da zu Schwierigkeiten führen, wenn ein ehemaliges OPM-Programm nun als Prozedur aufgerufen wird:
    *INLR = *ON beim Verlassen sowie *INZSR funktionieren nicht.
    Wenn sich ein Programm also bisher darauf verlassen hat, beim erneuten Aufruf initialisiert zu werden, so erfolgt das beim CALLB nicht mehr und es kommt eben zu obigen Problemen.
    Auch ein RCLRSC im aufrufenden CLP läuft so ggf. nicht mehr (das Problem hatten wir schon).
    Ggf. ist das Hauptprogramm mit einer eigenen ACTGRP oder *NEW zu erstellen, so dass RCLACTGRP verwendet werden kann.
    Dies löst dann auf jeden Fall das Initialisierungsproblem.

    Aber Achtung:
    Bei bestimmten Dateiformen (O-Bestimmungen) mit Blockung wird dann der letzte Puffer nicht in die Datei ausgegeben.
    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
    Jan 2006
    Beiträge
    12
    Hallo Fuerchau,

    das mit der eigenen Aktivierungsgruppe war eine gute Idee. Jetzt hats erstmal funktioniert, auch ohne Reclaim der Aktivierungsgruppe. Sollte ich den Befehl trotzdem absetzen?

    Vielen Dank.

    Matthias

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.246
    Wenn das 1. Programm der ACTGRP sich beendet, wird normalerweise auch die ACTGRP geschlossen.
    Ein RCLACTGRP kann nicht schaden.
    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

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Zitat Zitat von Fuerchau
    Wenn das 1. Programm der ACTGRP sich beendet, wird normalerweise auch die ACTGRP geschlossen.
    Ein RCLACTGRP kann nicht schaden.
    Nur bei Aktivierungs-Gruppe *NEW wird die Aktivierungs-Gruppe bei Programm-Ende beendet. Ein RCLACTGRP ist in diesem Fall überflüssig, da Aktivierung und Löschung an den Programm-Aufruf gekoppelt sind.

    Eine benannte Aktivierungs-Gruppe wird nicht beendet wenn das 1. Programm beendet wird, sondern nur auf inaktiv gesetzt, um bei einem erneuten Aufruf wieder aktiviert zu werden. (Siehe DSPJOB Auswahl 18)

    Benannte Aktivierungs-Gruppen können nur über RCLACTGRP oder Job-Ende beendet werden. Ein RCLACTGRP ist also erforderlich, wenn die Aktivierungs-Gruppe gelöscht werden soll.

    Birgitta
    Birgitta Hauser

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

Similar Threads

  1. Frage zu WDSC bzw. CODE400
    By Mr.iSeries in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 02-09-08, 10:16
  2. MCH3402 + Spool
    By Robi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 14-12-06, 11:12
  3. GFC 6224-002 bzw. MT50 gesucht
    By GAusthoff in forum NEWSboard Server & Hardware Markt
    Antworten: 0
    Letzter Beitrag: 24-11-06, 14:23
  4. Ihre iSeries bzw. i5 verarbeitet Excel und mehr
    By mk in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 30-10-06, 09:19
  5. Dateien in QDLS bzw. IFS über Explorer löschen
    By dino in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 22-05-06, 18:59

Berechtigungen

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