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.


On 8/17/06, Naveen Rawat <[EMAIL PROTECTED]> wrote: > > Hi all :) > > I am working with the binary version of ActiveMQ 4.0 broker and trying out > the openwire cpp apis for asynchronous messaging. > [https://svn.apache.org/repos/asf/incubator/activemq/tags/activemq-4.0/openw > ire-cpp] > > > > I wonder if I m resurrecting the mummies of issues already burnt. > > > > I am trying out having 3 consumers A, B and C listening on the same queue. > What I am trying to do is - > > A, B, C sending on Q1, and consuming Z's response on Q2 > Consumer Z listening on Q1, responding back on Q2. > > like this - > A/B/C >> Q1 >> Z >> Q2 >> A/B/C > > > Listening/responding to a single consumer is working well at present. BUT > broker is spoofing up the responses from Z to the simultaneous consumers > (either 2 or all three). Response for one consumer (A) is going to any of > the other consumer (B/C). Same is happening for other consumers. Being > prefetch size preset to 1000, the consumer that first manages session with > the broker on a queue is getting all the messages (and if it gets > terminated, the following one hogs the all and so on.) . > > As I m at presently testing, setting prefetch size to less (say 1), even > dont solves the purpose as not giving it frequest quick requests (man Vs > machine). Moreover as the hogging consumer is reading and acknowledging all > the responses, the prefetch size of even 1 is not surpassed. > > I tried out "with no success" the way of grid processing of messages (using > MessageGroups) as suggested in > http://activemq.org/site/how-do-i-preserve-order-of-messages.html > Code relevant of this is as follows - > > [........A/B/C.................................................... > producer = session->createProducer(Q1) ; > producer->setPersistent(true) ; > message = session->createBytesMessage() ; > message->setJMSXGroupID("cheese") ; > message->writeString("Hello World") ; > producer->send(message); > .................................................................] > > > [ .........Z ' s OnMessage(message)............................... > p<string> NGid; > NGid = message->getJMSXGroupID(); > producer = session->createProducer(Q2) ; > producer->setPersistent(true) ; > reqMessage = session->createBytesMessage() ; > reqMessage->setJMSXGroupID(NGid->c_str() ); > reqMessage->writeString("R E C E I V E D") ; //response string > producer->send(reqMessage); > .................................................................] > > Is there anymore needed in the code that I m loosing? > > > I come to know that there are certain issues yet not resolved pertaining to > the prefetch buffer initial size. Correct me please. > Will manipulation of prefetch buffer size help my cause? Please suggest a > way otherwise. >


                        THANKS IN ADVANCE

Regards,
Navin

Reply via email to