× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On Tue, 2002-04-02 at 11:13, Philipp Rusch wrote:
[snip]
Hi Philipp

This is the CHKTMPSTG routine I mentioned. Just compile & call it.
Change the size threshold (scan on L_KeyValue) from 50Mb to whatever
value seems useful.

Regards, Martin

      
**********************************************************************************************
      * CHKTMPSTG: Check jobs for Temporary storage over 50Mb
      
**********************************************************************************************
      
**********************************************************************************************
      *  Data Structures
      
**********************************************************************************************
      *  Standard error code DS for API error handling
     D Error_Code      DS
     D  BytesProvd                   10I 0 INZ(0)
     D  BytesAvail                   10I 0 INZ(0)
     D  Except_ID                     7
     D  Reserved                      1
     D  Exception                   256
      *  Receiver value DS for user space header info (used in first call to 
QUSRTVUS)
     D GenRcvrDS       DS
     D  UserArea                     64
     D  GenHdrSize                   10I 0
     D  StrucLevel                    4
     D  FormatName                    8
     D  APIUsed                      10
     D  CreateStamp                  13
     D  InfoStatus                    1
     D  SizeUsUsed                   10I 0
     D  InpParmOff                   10I 0
     D  InpParmSiz                   10I 0
     D  HeadOffset                   10I 0
     D  HeaderSize                   10I 0
     D  ListOffset                   10I 0
     D  ListSize                     10I 0
     D  ListNumber                   10I 0
     D  EntrySize                    10I 0
      *****************************************************************
      * Type Definition for the JOBL0100 format.
      *****************************************************************
     D ListDataDS      DS
     D  L_JobName                    10
     D  L_JobUser                    10
     D  L_JobNbr                      6
     D  L_JobIdent                   16
     D  L_Status                     10
     D  L_JobType                     1
     D  L_JobSubTy                    1
     D  L_Reserved                    2
     D  L_JobInfoSts                  1
     D  L_Reserved2                   3
     D  L_NbrFldsRtn                 10I 0
     D  L_LenInfoRtn                 10I 0
     D  L_KeyFld                     10I 0
     D  L_DataType                    1
     D  L_Reserved3                   3
     D  L_LenDataRtn                 10I 0
     D  L_KeyValue                   10I 0
      
**********************************************************************************************
      * Field definitions
      
**********************************************************************************************
     D DataLength      S             10I 0 INZ(140)
     D CurrentEnt      S              5P 0 INZ(1)
     D ExtendAttr      S             10    INZ('USRSPC    ')
     D InitialSiz      S             10I 0 INZ(1024)
     D InitialVal      S              1    INZ(X'00')
     D JobStatus       S             10    INZ('*ACTIVE   ')
     D JobType         S              1    INZ('*')
     D ListFormat      S              8    INZ('JOBL0200')
     D NbrToRtn        S             10I 0 INZ(1)
     D KeysToRtn       S             10I 0 INZ(2009)
     D P_DataLength    S             10I 0
     D P_MsgData       S            512
     D P_MsgFile       S             20    INZ('QCPFMSG   *LIBL')
     D P_MsgID         S              7    INZ('CPDA0FF')
     D P_MsgKey        S              4
     D P_MsgType       S             10
     D P_PgmQueue      S             10
     D P_PgmStack      S             10I 0
     D PublicAut       S             10    INZ('*ALL      ')
     D QualifyJob      S             26    INZ('*ALL      *ALL      *ALL  ')
     D ReplaceSpc      S             10    INZ('*YES      ')
     D StartPos        S             10I 0 INZ(1)
     D TextDescrp      S             50    INZ('User space for List Job API')
     D UserSpace       S             20    INZ('CHKTMPSTG QTEMP     ')
      
**********************************************************************************************
      * MAINLINE:
      
**********************************************************************************************
      * Create a user space to hold the job list entries
     C                   CALL      'QUSCRTUS'
     C                   PARM                    UserSpace
     C                   PARM                    ExtendAttr
     C                   PARM                    InitialSiz
     C                   PARM                    InitialVal
     C                   PARM                    PublicAut
     C                   PARM                    TextDescrp
     C                   PARM                    ReplaceSpc
     C                   PARM                    Error_Code
      * List all the jobs on the system
     C                   CALL      'QUSLJOB'
     C                   PARM                    UserSpace
     C                   PARM                    ListFormat
     C                   PARM                    QualifyJob
     C                   PARM                    JobStatus
     C                   PARM                    Error_Code
     C                   PARM                    JobType
     C                   PARM                    NbrToRtn
     C                   PARM                    KeysToRtn
      * Get the header info for this space
     C                   CALL      'QUSRTVUS'
     C                   PARM                    UserSpace
     C                   PARM                    StartPos
     C                   PARM                    DataLength
     C                   PARM                    GenRcvrDS
     C                   PARM                    Error_Code
      * Check to see if any entries returned
B001 C                   IF        ListNumber > 0
      * Set the initial offset for the start of the list entries
     C                   EVAL      ListOffset = ListOffset + 1
      * Loop through the entries held in the list section of the user space
B002 C                   DOW       CurrentEnt <= ListNumber
      * Get the header info for this space
     C                   CALL      'QUSRTVUS'
     C                   PARM                    UserSpace
     C                   PARM                    ListOffset
     C                   PARM                    EntrySize
     C                   PARM                    ListDataDS
     C                   PARM                    Error_Code
      *
B003 C                   IF        L_KeyValue > 50
     C                   EVAL      P_MsgData = 'Job ' + L_JobNbr + '/' +
     C                             %TRIM(L_JobUser) + '/' + %TRIM(L_JobName) +
     C                             ' is using temp storage of ' +
     C                             %EDITC(L_KeyValue : 'Z') + 'Mb'
     C
     C                   EVAL      P_DataLength = 78
     C                   EVAL      P_PgmStack = 0
     C                   EVAL      P_PgmQueue = '*EXT'
     C                   EVAL      P_MsgType = '*INFO'
      *
     C                   CALL (E)  'QMHSNDPM'
     C                   PARM                    P_MsgID
     C                   PARM                    P_MsgFile
     C                   PARM                    P_MsgData
     C                   PARM                    P_DataLength
     C                   PARM                    P_MsgType
     C                   PARM                    P_PgmQueue
     C                   PARM                    P_PgmStack
     C                   PARM                    P_MsgKey
     C                   PARM                    Error_Code
E003 C                   ENDIF
      *  Bump up the counter & offset for the next entry
     C                   EVAL      ListOffset = ListOffset + EntrySize
     C                   EVAL      CurrentEnt = CurrentEnt + 1
E002 C                   ENDDO
E001 C                   ENDIF
      *
     C                   EVAL      *INLR = *ON
     C                   RETURN
      
**********************************************************************************************
--
martin@dbg400.net  jamaro@firstlinux.net  http://www.dbg400.net
/"\
DBG/400 - DataBase Generation utilities - AS/400 / iSeries Open        \
/
Source free test environment tools and others (file/spool/misc)
X
[this space for hire]  ASCII Ribbon Campaign against HTML mail & news  /
\



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.