*
The moose likes EJB and other Java EE Technologies and the fly likes AUTO_ACK for JMS P2P Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "AUTO_ACK for JMS P2P" Watch "AUTO_ACK for JMS P2P" New topic
Author

AUTO_ACK for JMS P2P

Sam Gehouse
Ranch Hand

Joined: Jul 21, 2003
Posts: 281
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?


I am providing some sample code below:


try {
queueConnection =
queueConnectionFactory.createQueueConnection();
queueSession =
queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
queueReceiver = queueSession.createReceiver(queue);
queueConnection.start();
while (true) {
Message m = queueReceiver.receive(1);
if (m != null) {
if (m instanceof TextMessage) {
message = (TextMessage) m;
System.out.println("Reading message: " +
message.getText());
} else {
break;
}
}
}
} catch (JMSException e) {
System.out.println("Exception occurred: " +
e.toString());
}
Valentin Tanase
Ranch Hand

Joined: Feb 17, 2005
Posts: 704
Hi Sam,

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
Mohana Murali
Greenhorn

Joined: Sep 26, 2002
Posts: 27
Sam,

here is good article on it. May be in will help more on understanding JMS transactions and acknowledgements.

http://www.javaworld.com/javaworld/jw-03-2002/jw-0315-jms_p.html

Mohana
 
 
subject: AUTO_ACK for JMS P2P