activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <>
Subject Re: Queue hogging by a single consumer.
Date Thu, 17 Aug 2006 11:10:27 GMT
On 8/17/06, Naveen Rawat <> wrote:
> Hi James,
> Thanks for your response.
> > Are you trying to implement request-response with A, B, C making
> > requests on Z and getting the response? Or can A, B, C process any
> > message from Z?
> Exactly the first case.
> A, B, C making requests on Z and getting the response from Z
> > I'm not sure if your issue is that say A doesn't see the responses for
> > its request (if thats the case use either 3 queues, use temporary
> > queues for the responses or use a selector and a correlationID on the
> > request & response) - or is it that you have a small number of
> > responses from Z and they are being hogged by one consumer - in which
> > case setting a small prefetch and a round robin dispatch policy will
> > fix this.
> Its that,  A doesn't see the responses for its requests made.
> I would really appreciate if I can get some help stuff on -
>         1) Creating, destroying and maintaining data in temporary queues.
>         2) Setting selector and correlationID in messages.

Details here

for 1) just call session.createTemporaryQueue() and set that queue on
the Message.setJMSReplyTo() property so that services can reply to
your temporary queue. They are deleted when A terminates so there's no
issue with maintaining data.

for 2) just add a JMSCorrelationID() to the request messages you send
as requests. You can then use a selector such as "JMSCorrelationID =
'abc'" on the consumer for responses so that responses are filtered to
only return A's results etc

The contract of Z whichever option you go with is the to copy the
JMSCorrelationID property from the request to the response message and
send the response message to the request.getJMSReployTo() destination



View raw message