activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nakarikanti, Nageswara" <>
Subject RE: Asynchronously emptying a queue
Date Thu, 17 Feb 2011 16:25:22 GMT
For fast replys post it to Forum

I did not see any code in your program that is responsible for producing the messages into
Queue you created?


-----Original Message-----
From: McDermott, Michael [] 
Sent: Monday, February 14, 2011 7:44 AM
Subject: Asynchronously emptying a queue

Hello folks,
I'm an ActiveMQ noob and I'm trying to figure out how to write a program to
loop through the contents of the queue and having a devil of a time.  I've
bought the Manning book and tried my best on google but have been unable to
find out how.

>From what I'm reading, it seems like I should set up an asynchronous
connection and implement the MessageListener interface.  But when I do, I
don't usually seem to get back anything, let alone loop through the entire
queue.  I was able to achieve the results in a pretty straight forward
manner using the Stomp client, so I think it is my Java.  Any suggestions on
where I've went awry:

import javax.jms.*;
import javax.naming.*
import org.apache.activemq.*;
import java.util.Date;

public class Consumera implements MessageListener {

ActiveMQConnectionFactory connectionFactory;
Context ctx;
Connection connection;
Session session;
MessageConsumer consumer;
boolean useTransaction = false;
Queue queue;
Message message;
 public void createConsumer() throws JMSException, NamingException {
try {

ctx = new InitialContext();
 //this section is for local create
        // Create a ConnectionFactory

// ditrect connection factory
//connectionFactory = new ActiveMQConnectionFactory(username, password,
//jndi connection factory
connectionFactory =
(ActiveMQConnectionFactory) ctx.lookup("remoteConsumerConnectionFactory");

        // Create a Connection
        connection = connectionFactory.createConnection();

        // Create a Session
        session = connection.createSession(useTransaction,
        // Create the destination (Topic or Queue)
        queue= (Queue) ctx.lookup("GoogleGroupQueue");

        consumer = session.createConsumer(queue);

        // Create a MessageProducer from the Session to the Topic or Queue

    catch (Exception e) {
        System.out.println("Caught: " + e);

public void onMessage(Message message) {
System.out.println("Received message: " );
//if (message instanceof TextMessage) {
// System.out.println("Received message: " + message);
 public void closePublisher() throws JMSException {
try {
        // Clean up
        System.out.println("Closed connection");
    catch (Exception e) {
        System.out.println("Caught: " + e);

public static void main(String[] args) throws JMSException {

     Consumera consumer = new Consumera();
     } catch (NamingException e) {
  } finally {


View raw message