On 8/17/06, Naveen Rawat <[EMAIL PROTECTED]> 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 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 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 -- James ------- http://radio.weblogs.com/0112098/
