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.