Hi, 
I agree with you however the only issue is I would be getting the number of
queue dynamically from some other class and hence according to requirement I
need to create queues dynamically in the program.
I have code something like this:
        public static void main(String[] args) throws Exception {
                listDestination = new ActiveMQAllProducer().createQueue();

                thread(new producerThread(), false);
                Thread.sleep(10000);
                thread(new consumerThread(), false);

        }

        public List<Destination> createQueue() {
                // Create a ConnectionFactory
                ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory(url);

                List<Destination> listDestination = new 
ArrayList<Destination>();
                try {

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

                        for(int i = 1; i < 11; i++){
                                // Create a Session
                                Session session = connection.createSession(true,
Session.AUTO_ACKNOWLEDGE);

                                // Create the destination (Topic or Queue)
                                Destination destination = 
session.createQueue("myQueue" + i);
                                listDestination.add(destination);

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

        public void QueueProducer(List<Destination> list){
                // Create a ConnectionFactory
                ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory(url);

                try {

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

                        // Create a Session
                        Session session = connection.createSession(true,
Session.AUTO_ACKNOWLEDGE);

                        // Create a MessageProducer from the Session to the 
Topic or Queue
                        for(int i = 0; i < list.size(); i++){
                                MessageProducer producer = 
session.createProducer(list.get(i));

                                // Create a messages
                                String text = "Hello world! From: " + i + " : " 
+ this.hashCode();
                                TextMessage message = 
session.createTextMessage(text);

                                // Tell the producer to send the message
                                System.out.println("Sent message: "+ 
message.hashCode() + " : " +
"message " + i);
                                producer.send(message);
                        }
                        // Clean up
                        session.close();
                        connection.close();
                }
                catch (Exception e) {
                        System.out.println("Caught: " + e);
                        e.printStackTrace();
                }
        }

        public void QueueConsumer(List<Destination> list){
                // Create a ConnectionFactory
                ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory(url);

                try {

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

                        // Create a Session
                        Session session = connection.createSession(true,
Session.AUTO_ACKNOWLEDGE);

                        // Create a MessageConsumer from the Session to the 
Topic or Queue
                        for(int i = 0; i < list.size(); i++){
                                MessageConsumer consumer = 
session.createConsumer(list.get(i));

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


However if I dont call producer in the main method then it wont create queue
(as you mentioned).
I cannot configure the queue in xml file as per my requirement of creating
queue in java program (as I would come to know the number of queue to create
at run time).

bit stuck with the requirement and not able to move forward, 
Any help would be appreciated.
Thank you very much




--
View this message in context: 
http://activemq.2283324.n4.nabble.com/How-to-setup-multiple-queues-tp3092113p4661199.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to