package org.apache.activemq.recipes; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import javax.jms.Connection; import javax.jms.Destination; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Session; import org.apache.activemq.ActiveMQConnectionFactory; public class AdvisorySourceApp implements Runnable { private final String connectionUri = "tcp://localhost:61616"; private ActiveMQConnectionFactory connectionFactory; private Connection connection; private Session session; private Destination destination; private final Random rand = new Random(); public void run() { try { connectionFactory = new ActiveMQConnectionFactory(connectionUri); connection = connectionFactory.createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); destination = session.createQueue("MyQueue"); TimeUnit.SECONDS.sleep(rand.nextInt(10)); MessageProducer producer = session.createProducer(destination); producer.send(session.createTextMessage()); TimeUnit.SECONDS.sleep(rand.nextInt(10)); MessageConsumer consumer = session.createConsumer(destination); consumer.receive(); TimeUnit.SECONDS.sleep(rand.nextInt(30)); System.out.print("."); if (connection != null) { connection.close(); } } catch (Exception ex) {} } public static void main(String[] args) { System.out.print("\n\n\n"); System.out.println("Starting Advisory Message Generation app now..."); try { ExecutorService service = Executors.newFixedThreadPool(10); for (int i = 0; i < 20; ++i) { service.execute(new AdvisorySourceApp()); } service.shutdown(); service.awaitTermination(5, TimeUnit.MINUTES); System.out.println(); } catch (Exception e) { System.out.println("Caught an exception during the example: " + e.getMessage()); } System.out.println("Finished running the Advisory Message Generation application."); System.out.print("\n\n\n"); } }