On Sat, 2009-09-12 at 07:27 -0700, sharongi wrote: > Hi Tim, > > Thanks for your answer, but this is not the case. > I have another question, regarding the same issue: > When I set the MessageListener, how can I "tell" it to run infinitely? > I came to notice that the Consumer finishes it's run prior to getting any > messages from the Producer. > > I'm new to activemq, and while in simple programming I can make the listener > thread run in an infinite loop, I have no idea how to do the same here. > > I'll appreciate any response and sorry if my question sounds too trivial. > >
A JMS client doesn't really have any knowledge about what messages it should receive from the producer other than what you give it, it can't sit and wait for all the messages from a Topic because there isn't really a concept of there being N messages that you need on this Topic before you are done. If you want to have you client sit and wait forever for a message then use one of the synchronous receive calls in the Consumer API, it will cause the consumer to block until it receives a message. If you want the client to run until some console input or other even then use the asynchronous method of adding a Message listener and have your client code poll the console for input etc. The problem you might be having with you separate Producer / Consumer application is that you are starting the consumer after your Producer has already finished sending messages to a Topic. Unless you are using retroactive consumers or durable subscriptions a Topic won't retain the messages, you'd want to use a Queue for a scenario like that. Regards Tim. > Timothy Bish wrote: > > > > On Wed, 2009-09-09 at 13:40 -0700, sharongi wrote: > >> Hello everyone! > >> > >> I've created 2 c++ classes: one is functioning as the consumer and one as > >> the producer. > >> I have 2 c++ projects (A and B), both defined as exe. application. > >> I wish that one project will function as the consumer and the other one > >> as > >> the producer..for that purpose, I added the consumer class to project A > >> and > >> the producer class to project B. > >> In the main class of project A I've started the consumer thread and in > >> the > >> main class of project B I've started the producer thread. > >> >From some reason, the consumer can't seem to get any messages from the > >> producer. > >> I've tested the exact same code in one project and it worked perfectly. > >> Can anyone seem to know what the problem is?? > > > > The usual culprit for consumers not getting messages is that you did not > > call connection.start() > > > > Regards > > Tim. > > > > > > -- > > Tim Bish > > http://fusesource.com > > http://timbish.blogspot.com/ > > > > > > > > > > >