Hallo zusammen,

ich muss ein Heap memory Problem auf der AS/400 analysieren. Dazu verwende ich folgende PEX Befehle:

Code:
ADDPEXDFN DFN(HEAP) TYPE(*TRACE) JOB((123456/MAT/MAT0 *ALL)) TASK(*ALL) MAXSTG(4000000) TRCTYPE(*SLTEVT) SLTEVT(*YES) MCHINST(*NONE) STGEVT((*ACTGRPHEAP))

STRPEX SSNID(HEAP)
- Aktion ausführen -

ENDPEX SSNID(HEAP) DTALIB(MATTRC) RPLDTA(*YES)
Es werden nun ein paar Outfiles erzeugt, die per SQL gejoint werden können, um die Heap-Segment Adresse, die allokierte Größe und den Aufrufstapel zu ermitteln:
Code:
CREATE VIEW mattrc/heapv1 AS
    (SELECT a.QRECN,
            a.QHPASA,
            a.QHPASZ,
            a.QHPOPR,
            a.QHPRET,
            (SELECT QPRPNM
                FROM mattrc/QAYPEPROCI
                WHERE QHPCK1 = QPRKEY) cs1,
            QIASTMT1,
            (SELECT QPRPNM
                FROM mattrc/QAYPEPROCI
                WHERE QHPCK2 = QPRKEY) cs2,
            QIASTMT2,
            (SELECT QPRPNM
                FROM mattrc/QAYPEPROCI
                WHERE QHPCK3 = QPRKEY) cs3,
            QIASTMT3,
            (SELECT QPRPNM
                FROM mattrc/QAYPEPROCI
                WHERE QHPCK4 = QPRKEY) cs4,
            QIASTMT4,
            (SELECT QPRPNM
                FROM mattrc/QAYPEPROCI
                WHERE QHPCK5 = QPRKEY) cs5,
            QIASTMT5
      FROM mattrc/QAYPEHEAP a
           INNER JOIN mattrc/QAYPETIDX c
             ON a.QRECN = c.QRECN
           LEFT JOIN mattrc/QAYPEIAD d
             ON a.QRECN = d.QRECN);
             

/* Zeige alle mallocs zu deren Adresse kein free ausgeführt wurde */
 SELECT *
  FROM mattrc/heapv1
  WHERE QHPOPR = 0
    AND QHPASA NOT IN(SELECT QHPASA FROM mattrc/heapv1
       WHERE QHPOPR = 1);
Mein Problem ist nun, dass die Datei QAYPEHEAP nur 5 Felder zur Speicherung der letzten 5 Aufrufstapeleinträge enthält. Weiß jemand, wie man mehr Aufrufstapeleinträge erhält?

Wie analysiert ihr Heap memory leak Probleme auf der AS/400?
Auf Windows kann man dazu recht bequem WPA (Windows Performance Analyzer) verwenden.

Viele Grüße
Matthias