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:
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<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="stomp" uri="stomp://localhost:61613"/>
</transportConnectors>
<!-- Permanent Queues -->
<destinations>
</destinations>
<!-- Authentication and authorization -->
<plugins>
</plugins>
</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