Display Memory Usage
Displays the used heap memory from the various heaps.
/** * \brief Display Memory Usage * * Displays the memory usage of a job grouped by * activation group. * * If no parameter is passed the memory of the current job * will be displayed. * * \author Mihael Schmidt * \date 11.02.2008 */ /copy QCPYSRC,RPGHEADER *--------------------------------------------------------------- * PEP *--------------------------------------------------------------- D main PR extpgm('DSPMEM') D job 26A const options(*nopass) D main PI D job 26A const options(*nopass) *--------------------------------------------------------------- * Prototypen *--------------------------------------------------------------- D getActivationGroupAttr... D PR extpgm('QWVOLAGP') D receiver 65535A options(*varsize) D recLength 10I 0 const D listInfo 80A D numberRecords 10I 0 const D format 8A const D job 26A const D intJobId 16A const D error likeds(apiErrDs) options(*varsize) * D closeList PR extpgm( 'QGYCLST' ) D listHandle 4A D error 10I 0 *--------------------------------------------------------------- * Data Structures *--------------------------------------------------------------- D raga0100 DS qualified D actGroupName 10A D reserved1 6A D actGroupNumber... D 10I 0 D numberActGroups... D 10I 0 D numberHeaps 10I 0 D staticSize 10I 0 D heapSize 10I 0 D rootPgmName 10A D rootPgmLib 10A D rootPgmType 1A D actGroupState 1A D shrActGroupInd... D 1A D inUse 1A D reserved2 4A D actGroupNumberLong... D 20I 0 D reserved3 8A * D listInfoDs DS qualified D listTotal 10I 0 D listReturned 10I 0 D listHandle 4A D listRecLen 10I 0 D listComplete 1A D listDate 13A D listStatus 1A D 1A D listLength 10I 0 D listFirst 10I 0 D 40A /copy QCPYSRC,API_ERR_H *--------------------------------------------------------------- * Variablen *--------------------------------------------------------------- D receiver S 65355A D formatPtr S * D format DS likeds(raga0100) based(formatPtr) D listInfo DS likeds(listInfoDs) D i S 10I 0 D intRetVal S 10I 0 /free getActivationGroupAttr( receiver : %len(receiver) : listInfo : %len(receiver) / %size(raga0100) : 'RAGA0100' : '*' : '' : apiErrDs); if (apiErrCode = *blank); // check if list is finished // todo for i = 0 to listInfo.listReturned - 1; formatPtr = %addr(receiver) + (i * listInfo.listRecLen); dsply %trimr(format.actGroupname + ' ' + %char(format.staticSize) + ' / ' + %char(format.heapSize) + '(' + %char(format.numberHeaps) + ')'); endfor; // close list closeList(listInfo.listHandle : intRetVal); else; dsply apiErrCode; endif; *inlr = *on; return; /end-free