Installing and Configuring ActiveMQ on Mac OS X

Before we get started, I just want to clarify that this tutorial is for installing ActiveMQ on a development box, not in production! If you are installing ActiveMQ on a production box, please ensure at the very least that you have considered the following: using a proper persistence adapter, using authorization/authentication, and probably turning off the jetty admin console. Perhaps I’ll cover these in a later post.

Download and Install

Download and extract the latest version of ActiveMQ (at the time of this writing, it is 5.1.0):

wget http://www.eng.lsu.edu/mirrors/apache/activemq/apache-activemq/5.1.0/apache-activemq-5.1.0-bin.tar.gz

tar -zxvf apache-activemq-5.1.0-bin.tar.gz

sudo mv apache-activemq-5.1.0 /usr/local/

Configure

cd /usr/local/apache-activemq-5.1.0

Replace the configuration in conf/activemq.xml with the following:

<beans
  xmlns="http://www.springframework.org/schema/beans" 
  xmlns:amq="http://activemq.apache.org/schema/core" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
  http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
 
    <!-- Allows us to use system properties as variables in this configuration file -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
 
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.base}/data">
 
        <!-- Use the following to configure how ActiveMQ is exposed in JMX -->
        <managementContext>
            <managementContext createConnector="false"/>
        </managementContext>
 
        <persistenceAdapter>
            <amqPersistenceAdapter syncOnWrite="false" directory="${activemq.base}/data" maxFileLength="20 mb"/>
        </persistenceAdapter>
 
        <!-- The transport connectors ActiveMQ will listen to -->
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://localhost:61616" discoveryUri="multicast://default"/>
            <transportConnector name="ssl" uri="ssl://localhost:61617"/>
            <transportConnector name="stomp" uri="stomp://localhost:61613"/>
            <transportConnector name="xmpp" uri="xmpp://localhost:61222"/>
        </transportConnectors>
 
    </broker>
 
    <!-- An embedded servlet engine for serving up the Admin console -->
    <jetty xmlns="http://mortbay.com/schemas/jetty/1.0">
        <connectors>
            <nioConnector port="8161"/>
        </connectors>
        <handlers>
            <webAppContext contextPath="/admin" resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true"/>
        </handlers>
 
    </jetty>
 
</beans>

Create the file /Library/LaunchDaemons/com.apache.activemq and place the following in it:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>com.apache.activemq</string>
        <key>Program</key>
        <string>/usr/local/apache-activemq-5.1.0/bin/activemq</string>
        <key>WorkingDirectory</key>
        <string>/usr/local/apache-activemq-5.1.0</string>
</dict>
</plist>

Load and start the ActiveMQ server:

sudo launchctl load /Library/LaunchDaemons/com.apache.activemq

sudo launchctl start com.apache.activemq

Done!

You now have ActiveMQ installed and setup to automatically run at startup.

You can reach the admin web console for your locally running ActiveMQ server by going to http://localhost:8161/admin

Category: General | Tags: , , , | No Comments