Great James
Your suggestion is working. A major hurdle seems solved.
A little query down there.
> > 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
>
> http://incubator.apache.org/activemq/how-should-i-implement-request-response-with-jms.html
>
> 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
I went for this (2nd) one. Even though now a result is obtained, I would
like to ask which one approach is more favoured by you.
Is it the temporary queues overhead matter that makes 2nd score over 1st?
Any other reason please tell.
> 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
Thanks and Regards,
Navin
|