I have the following code so far:-

Producer code:-

public class TradeProducer implements Runnable {
        public void run() {
            try {
                // Create a ConnectionFactory
                ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory("vm://localhost");
 
                // Create a Connection
                javax.jms.Connection connection =
connectionFactory.createConnection();
                connection.start();
 
                // Create a Session
                Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
 
                // Create the Topic
                Topic topic = session.createTopic("prospective_trade");
 
                // Create a MessageProducer from the Session to the Topic
                MessageProducer producer = session.createProducer(topic);
                producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
 
                // Create a messages
                String text = "Hello world! From: " +
Thread.currentThread().getName() + " : " + this.hashCode();
                TextMessage message = session.createTextMessage(text);
 
                // Tell the producer to send the message
                System.out.println("Sent message: "+ message.hashCode() + "
: " + Thread.currentThread().getName());
                producer.send(message);
 
                // Clean up
                session.close();
                connection.close();
            }
            catch (Exception e) {
                System.out.println("Caught: " + e);
                e.printStackTrace();
            }
        }
    }

Consumer code:-

public class TradeConsumer implements Runnable, ExceptionListener {
        public void run() {
            try {
 
                // Create a ConnectionFactory
                ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory("vm://localhost");
 
                // Create a Connection
                javax.jms.Connection connection =
connectionFactory.createConnection();
                connection.start();
 
                connection.setExceptionListener(this);
 
                // Create a Session
                Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
 
                // Create the Topic
                Topic topic = session.createTopic("prospective_trade");
 
                // Create a MessageConsumer from the Session to the Topic
                MessageConsumer consumer = session.createConsumer(topic);
 
                // Wait for a message
                Message message = consumer.receive(1000);
 
                if (message instanceof TextMessage) {
                    TextMessage textMessage = (TextMessage) message;
                    String text = textMessage.getText();
                    System.out.println("Received: " + text);
                } else {
                    System.out.println("Received: " + message);
                }
 
                consumer.close();
                session.close();
                connection.close();
            } catch (Exception e) {
                System.out.println("Caught: " + e);
                e.printStackTrace();
            }
        }
 
        public synchronized void onException(JMSException ex) {
            System.out.println("JMS Exception occurred.  Shutting down
client.");
        }
    }

My question:-
Is it possible to enclose the "wait for a message' section of code in a loop
which has as a maximum number, the no. of active consumers minus 1 ?

i.e. I am trying to decide when I have received messages (one only) from
each of the other active consumers before continuing with the remainder of
the code




--
View this message in context: 
http://activemq.2283324.n4.nabble.com/First-activeMQ-use-help-please-tp4703506.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to