× 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.


  • Subject: RE: Is there a formula for calculating max entries on a dataqueue ?
  • From: "Westdorp, Tom" <tom.westdorp@xxxxxxxxxxxxxxxxxx>
  • Date: Tue, 28 Nov 2000 09:52:39 -0800

You can just use the API to ask the system.  Here's a cmd, cl & dds that
does it:
****************************************************************************
********             
             CMD        PROMPT('Display Data Queue Information')     
             PARM       KWD(DATAQ) TYPE(QUAL1) MIN(1) +              
                          PROMPT('Data Queue' 1)                     
 QUAL1:      QUAL       TYPE(*NAME) LEN(10) MIN(1)                   
             QUAL       TYPE(*NAME) LEN(10) MIN(1) PROMPT('Library')  
****************************************************************************
********
             PGM        PARM(&DATAQUEUE)                        
             DCL        VAR(&DATAQUEUE ) TYPE(*CHAR) LEN(  20)  
             DCL        VAR(&QNAME     ) TYPE(*CHAR) LEN(  10)  
             DCL        VAR(&QLIBRARY  ) TYPE(*CHAR) LEN(  10)  
             DCL        VAR(&RCVR      ) TYPE(*CHAR) LEN( 108)  
             DCL        VAR(&RCVRLEN   ) TYPE(*CHAR) LEN(   4)  
             DCL        VAR(&COUNT     ) TYPE(*DEC ) LEN( 9 0)  
             DCL        VAR(&CURRENT   ) TYPE(*DEC ) LEN( 9 0)  
             DCL        VAR(&MAXIMUM   ) TYPE(*DEC ) LEN( 9 0)  
             DCL        VAR(&MINIMUM   ) TYPE(*DEC ) LEN( 9 0)  
             DCL        VAR(&QLENGTH   ) TYPE(*DEC ) LEN( 9 0)  
             DCL        VAR(&KLENGTH   ) TYPE(*DEC ) LEN( 9 0)  
             DCL        VAR(&TYPE      ) TYPE(*CHAR) LEN(   1)  
             DCL        VAR(&QTYPE     ) TYPE(*CHAR) LEN(   4)  
             DCL        VAR(&RCL       ) TYPE(*CHAR) LEN(   1)  
             DCL        VAR(&SEQ       ) TYPE(*CHAR) LEN(   1)  
             DCL        VAR(&SEQUENCE  ) TYPE(*CHAR) LEN(   6)  
             DCL        VAR(&SND       ) TYPE(*CHAR) LEN(   1)  
             DCL        VAR(&MAXENTRIES) TYPE(*CHAR) LEN(   8)  
             DCL        VAR(&MSGTXT    ) TYPE(*CHAR) LEN( 512)

             DCLF       FILE(DSPDTAQINF)

             CHGVAR     VAR(%BIN(&RCVRLEN 1 4)) VALUE(108)

             SNDF       RCDFMT(FOOT)

             CHGVAR     VAR(&QNAME     ) VALUE(%SST(&DATAQUEUE  1 10))

             CHGVAR     VAR(&QLIBRARY  ) VALUE(%SST(&DATAQUEUE 11 10))

 TOP:        CHGVAR     VAR(&MSGTXT) VALUE('Retrieving data queue +

                          information... Please be patient')

             SNDPGMMSG  MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA(&MSGTXT) +

                          TOPGMQ(*EXT) MSGTYPE(*STATUS)

                        MONMSG     MSGID(CPF0000)

             CALL       PGM(QMHQRDQD) PARM(&RCVR &RCVRLEN RDQD0100 +

                          &DATAQUEUE)

                        MONMSG     MSGID(CPF0000) EXEC(CALL PGM(QMHRSNEM) +

                                     PARM('    ' X'00000000'))

             CHGVAR     VAR(&QLENGTH) VALUE(%BIN(&RCVR 9 4))

             CHGVAR     VAR(&IN50) VALUE('1')

             IF         COND(%SST(&RCVR 17 1) *EQ 'K') THEN(DO)

                        CHGVAR     VAR(&KLENGTH) VALUE(%BIN(&RCVR 13 4))  
                        CHGVAR     VAR(&SEQ) VALUE(*KEYED)

                        CHGVAR     VAR(&IN50) VALUE('0')

             ENDDO

             ELSE       CMD(IF COND(%SST(&RCVR 17 1) *EQ 'L') +

                          THEN(CHGVAR VAR(&SEQUENCE) VALUE(*LIFO)))

             ELSE       CMD(CHGVAR VAR(&SEQUENCE) VALUE(*FIFO))

             IF         COND(%SST(&RCVR 18 1) *EQ 'N') THEN(CHGVAR +

                          VAR(&SENDER) VALUE(*NO))

             ELSE       CMD(CHGVAR VAR(&SENDER) VALUE(*YES))

             IF         COND(%SST(&RCVR 19 1) *EQ 'N') THEN(CHGVAR +

                          VAR(&FORCE) VALUE(*NO))

             ELSE       CMD(CHGVAR VAR(&FORCE) VALUE(*YES))

             IF         COND(%SST(&RCVR 70 1) *EQ '0') +

                          THEN(CHGVAR VAR(&QTYPE) VALUE(*STD))

             ELSE       CMD(CHGVAR VAR(&QTYPE) VALUE(*DDM))

             IF         COND(%SST(&RCVR 71 1) *EQ '0') +

                          THEN(CHGVAR VAR(&RECLAIM) VALUE(*NO ))

             ELSE       CMD(CHGVAR VAR(&RECLAIM) VALUE(*YES))

             CHGVAR     VAR(&COUNT  ) VALUE(%BIN(&RCVR  73 4))

            CHGVAR     VAR(&COUNT  ) VALUE(%BIN(&RCVR  73 4))             
            CHGVAR     VAR(&CURRENT) VALUE(%BIN(&RCVR  77 4))             
            CHGVAR     VAR(&MAXIMUM) VALUE(%BIN(&RCVR 101 4))             
            CHGVAR     VAR(&MINIMUM) VALUE(%BIN(&RCVR 105 4))             
            IF         COND(&RECLAIM *EQ '*YES') THEN(CHGVAR +            
                         VAR(&MAXENTRIES) VALUE('*MAX2GB'))               
            ELSE       CMD(CHGVAR VAR(&MAXENTRIES) VALUE('*MAX16MB'))     
            CHGVAR     VAR(&TEXT) VALUE(%SST(&RCVR 20 50))                
            SNDRCVF    RCDFMT(INFO)                                       
            IF         COND(&IN03 = '1') THEN(RETURN)                     
            IF         COND(&IN05 = '1') THEN(GOTO CMDLBL(TOP))           
            IF         COND(&IN12 = '1') THEN(RETURN)                     
            ENDPGM  
****************************************************************************
********
     A                                      DSPSIZ(24 80 *DS3)

     A                                      CHGINPDFT

     A                                      MSGLOC(24)

     A                                      PRINT

     A                                      ERRSFL

 
*------------------------------------------------------------------------- 
     A          R INFO

     A                                      CLRL(*NO)

     A                                      OVERLAY

     A                                      CA03(03)

     A                                      CA05(05)

     A                                      CA12(12)

     A                                  1  2DATE

     A                                      EDTCDE(Y)

     A                                  1 13TIME

     A                                  1 29' Data Queue Information '

     A                                      DSPATR(HI)

     A                                  1 59SYSNAME

     A                                  1 70USER

     A                                  4  2'Data Queue . . . . . . . . . .
.'  
     A            QNAME         10A  O  4 37

     A                                  5  4'Library  . . . . . . . . . . .'

     A            QLIBRARY      10A  O  5 39

     A                                  6  2'Type . . . . . . . . . . . . .
.'  
     A            QTYPE          4A  O  6 37

     A                                  7  2'Maximum entry length . . . . .
.'  
     A            QLENGTH        9Y 0O  7 37EDTCDE(1)

     A                                  8  2'Force to auxiliary storage . .
.'  
     A            FORCE          4A  O  8 37

     A                                  9  2'Sequence . . . . . . . . . . .
.'  
     A            SEQUENCE       6A  O  9 37

     A                                 10  2'Key length . . . . . . . . . .
.'  
     A  50                                  DSPATR(ND)

     A            KLENGTH        9Y 0O 10 37EDTCDE(3)

     A  50                                  DSPATR(ND)

     A                                 11  2'Include Sender ID  . . . . . .
.'  
     A            SENDER         4A  O 11 37

     A                                 12  2'Queue size:'

     A                                 13  4'Maximum number of entries  . .'

     A            MAXENTRIES     8A  O 13 37

     A                                 13 46'or'

     A            MAXIMUM        9Y 0O 13 49EDTCDE(1)

     A                                 13 61'entries'

     A                                 14  4'Initial number of entries  . .'

     A            MINIMUM        9Y 0O 14 37EDTCDE(1)

     A                                 15  2'Automatic reclaim  . . . . . .
.'   
     A            RECLAIM        4A  O 15 37

     A                                 16  2'Text ''description'' . . . . .
. .' 
     A            TEXT          50A  O 16 37

     A                                 18  2'Current allocation . . . . . .
.'   
     A            CURRENT        9Y 0O 18 37EDTCDE(1)

     A                                 18 49'entries'

     A                                 20  2'Current entry count  . . . . .
.'   
     A            COUNT          9Y 0O 20 37EDTCDE(1)

     A                                 20 49'entries'

 
*------------------------------------------------------------------------- 
     A          R FOOT

     A                                 22  3'F3=Exit   F5=Refresh
F12=Cancel' 
     A                                      COLOR(BLU)

****************************************************************************
********                                                           

-----Original Message-----
From: watern@cbs.fiserv.com [mailto:watern@cbs.fiserv.com]
Sent: Monday, November 27, 2000 11:59 PM
To: MIDRANGE-L@midrange.com
Subject: Is there a formula for calculating max entries on a dataqueue ?






Dear all,

Is there a formula that an be used to calculate the maximum no of messages
that
can be placed on a dataqueue ?

I thought it may be something like:

     MaxEntries = MaxQueueSize divided by (x + y + z)

where
  x=max entry length,
  y=some constant, if sender-id is *yes  (36?)
  z=key-length

Also, until recently I thought that the max size for a dataqueue was 16Mb,
but
when doing two tests for the above I got one queue which went to just under
20mb
before it reached max capacity, and the other went to over 22mb.

Is there another different formula for calculating what the max size (in
bytes,
not messages) that a queue will reach before it is at capacity ?

I guess it will be a multiple of either 4k or 8k, but why did my tests
produce
different values before the queue max-ed out ?

One test was for entry length 100, the second for entry len 300.
Both were non-keyed, sender-id(*no)

thanks
Nigel.



+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator:
david@midrange.com
+---
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.