0
votes

I'm new to ActiveMQ. I'm running the ActiveMQ server on windows using the default settings on the local machine. I've tried to create a simple queue to test sending a message.

public class Foo {

    public static void main(String[] args) {
        new Foo().send();
    }

    public void send(){    
        try {
            ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost:61616");
            Connection connection = connectionFactory.createConnection();
            connection.start();

            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            Destination destination = session.createQueue("TESTQUEUE");
            MessageProducer producer = session.createProducer(destination);
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

            TextMessage message = session.createTextMessage("MESSAGE123");
            producer.send(message);

            session.close();
            connection.close();

        } catch (JMSException ex) {
            Logger.getLogger(Foo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }    
}

This code doesn't seem to do anything when I try to check it by logging on to ActiveMQ admin page and check the queue. (localhost:8161/admin/queues.jsp) The queue is not created. Then tried creating a queue manually from the admin page and the message is not sent to the queue even though the queue is created.

When I test the server using the commands activemq producer and activemq consumer the queue is created and the messages are passed to the queue and read from the queue. So I'm certain that there is nothing wrong with the server.

When I run the code this is the terminal output

WARN | Memory Usage for the Broker (1024mb) is more than the maximum available for the JVM: 887 mb - resetting to 70% of maximum available: 621 mb
 INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[C:\Users\Prashan\Desktop\Test\activemq-data\localhost\KahaDB]
 INFO | JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
 INFO | KahaDB is version 6
 INFO | Recovering from the journal @1:3712
 INFO | Recovery replayed 1 operations from the journal in 0.01 seconds.
 INFO | PListStore:[C:\Users\Prashan\Desktop\Test\activemq-data\localhost\tmp_storage] started
 INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) is starting
 INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) started
 INFO | For help or more information please see: http://activemq.apache.org
 WARN | Store limit is 102400 mb (current store usage is 0 mb). The data directory: C:\Users\Prashan\Desktop\Test\activemq-data\localhost\KahaDB only has 6947 mb of usable space. - resetting to maximum available disk space: 6947 mb
 WARN | Temporary Store limit is 51200 mb (current store usage is 0 mb). The data directory: C:\Users\Prashan\Desktop\Test\activemq-data\localhost\tmp_storage only has 6947 mb of usable space. - resetting to maximum available disk space: 6947 mb
 INFO | Connector vm://localhost started
 INFO | Connector vm://localhost stopped
 INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) is shutting down
 INFO | PListStore:[C:\Users\Prashan\Desktop\Test\activemq-data\localhost\tmp_storage] stopped
 INFO | Stopping async queue tasks
 INFO | Stopping async topic tasks
 INFO | Stopped KahaDB
 INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) uptime 1.918 seconds
 INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) is shutdown
1

1 Answers

3
votes

You are actually creating an embedded broker and the message is sent there. You should connect to your local machine broker by: tcp://localhost:61616" rather than vm://....