I am looking at some sample code for JMS for simple P2P.
If I use AUTO_ACKNOWLEDGE, does my program automatically listen whenever a message is put into the queue? If I use AUTO_ACKNOWLEDGE, do I not need any listener to listen every time a message is put into the queue?
Actually the meaning of message acknowledgement is little bit different. Basically when a jms message consumer finishes processing a message it needs to notify the jms provider that the message could be removed. The AUTO_ACKNOWLEDGE flag says that the messages are automatically acknowledged one by one after consumption. This is the easiest form of message acknowledgement but it is the most inefficient one as well, because it acknowledges only one message at a time. You might use other message acknowledgement types, including DUPS_ ACKNOWLEDGE (this is kind of lazy acknowledgement, which is very efficient) or CLIENT_ ACKNOWLEDGE (whicih is the opposite: the client will manually acknowledge the jms provider). They could also be other vendor specific flags, like MULTICAST_NO_ACKNOWLEDGE which invokes multicasting, etc. Regards.
I think, therefore I exist -- Rene Descartes
Joined: Sep 26, 2002
here is good article on it. May be in will help more on understanding JMS transactions and acknowledgements.