activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "McDermott, Michael" <michael_mcderm...@brown.edu>
Subject Asynchronously emptying a queue
Date Mon, 14 Feb 2011 12:43:54 GMT
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,
brokerURL);
//jndi connection factory
connectionFactory =
(ActiveMQConnectionFactory) ctx.lookup("remoteConsumerConnectionFactory");

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


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


        consumer = session.createConsumer(queue);
        consumer.setMessageListener(this);
        connection.start();

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

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

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
     consumer.close();
        session.close();
        connection.close();
        System.out.println("Closed connection");
    }
    catch (Exception e) {
        System.out.println("Caught: " + e);
        e.printStackTrace();
    }
}

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

     Consumera consumer = new Consumera();
     try{
     consumer.createConsumer();
     } catch (NamingException e) {
  e.printStackTrace();
  } finally {
     consumer.closePublisher();
     }
}
}




Mike

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message