Consultor Eletrônico



Kbase P112607: 4GL code example to count messages of a JMS queue
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   17/01/2006
Status: Unverified

GOAL:

4GL code example to count messages of a queue

GOAL:

Using the SonicMQ adapter

FACT(s) (Environment):

OpenEdge 10.0x
Sonic MQ 6.x

FIX:

/* Counts messages of queue SampleQ1 using a queue browser. */
DEFINE VARIABLE ptpsession AS HANDLE.
DEFINE VARIABLE consumerH AS HANDLE.
DEF VAR i AS INT INITIAL 0.
DEFINE VARIABLE stillWaiting AS LOGICAL INIT yes.
DEFINE VARIABLE vQueue AS CHAR INITIAL "SampleQ1" NO-UNDO.
/* Creates a session object. */
RUN jms/ptpsession.p PERSISTENT SET ptpsession ("-H localhost -S 5162 ").
RUN setBrokerURL IN ptpsession ("localhost:2506").
RUN SETUSER IN ptpsession ("Administrator").
RUN setPassword IN ptpsession ("Administrator").

RUN beginSession IN ptpsession.
/* vQueue Messages are handled by the "countHandler" procedure. */
RUN createMessageConsumer IN ptpsession (
THIS-PROCEDURE, /* This proc will handle it */
"countHandler", /* name of internal procedure */
OUTPUT consumerH).
RUN browsequeue IN ptpsession(vQueue, ?, consumerH).

/* Wait 1s to browse all messages.in SampleQ1. */
RUN waitForMessages IN ptpsession ("inWait", THIS-PROCEDURE, 1).
MESSAGE "Counted " STRING(i) " messages within " vQueue VIEW-AS ALERT-BOX.
RUN deleteSession IN ptpsession.
PROCEDURE countHandler:
DEFINE INPUT PARAMETER messageH AS HANDLE.
DEFINE INPUT PARAMETER msgConsumerH AS HANDLE.
DEFINE OUTPUT PARAMETER replyH AS HANDLE.
RUN deleteMessage IN messageH.
/*Counting there */
i = i + 1 .
MESSAGE i.
END.
FUNCTION inWait RETURNS LOGICAL.
RETURN stillWaiting.
END.