blob: 7d70aaea0045725cba339cb3d6e854611daf63b4 [file] [log] [blame]
<div class="wiki-content maincontent"><h3 id="Configureversion5Brokers-Overview">Overview</h3><p>There is an updates XML syntax for configuring message brokers - <a shape="rect" class="external-link" href="http://activemq.apache.org/schema/core/activemq-core-5.0-SNAPSHOT.xsd">see here</a></p><p>So we decided that using XML would make this configuration much easier. we use <a shape="rect" class="external-link" href="http://xbean.org/" rel="nofollow">XBean</a> to perform the XML configuration.</p><p>For details of the XML see the <a shape="rect" href="xml-reference.html">Xml Reference</a></p><div class="confluence-information-macro confluence-information-macro-warning"><p class="title">Be careful with broker names and URIs</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Make sure you do not use any strange characters in the names of brokers as they are converted to URIs which <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.4.2/docs/api/java/net/URI.html" rel="nofollow">do not allow things like underscores</a> in them etc.</p></div></div><h2 id="Configureversion5Brokers-Examples">Examples</h2><p>The default ActiveMQ configuration: <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/activemq/trunk/assembly/src/release/conf/activemq.xml">current default config</a>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;beans
xmlns="http://www.springframework.org/schema/beans"
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.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"&gt;
&lt;!-- Allows us to use system properties as variables in this configuration file --&gt;
&lt;bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt;
&lt;property name="locations"&gt;
&lt;value&gt;file:${activemq.conf}/credentials.properties&lt;/value&gt;
&lt;/property&gt;
&lt;/bean&gt;
&lt;!-- Allows accessing the server log --&gt;
&lt;bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery"
lazy-init="false" scope="singleton"
init-method="start" destroy-method="stop"&gt;
&lt;/bean&gt;
&lt;!--
The &lt;broker&gt; element is used to configure the ActiveMQ broker.
--&gt;
&lt;broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}"&gt;
&lt;destinationPolicy&gt;
&lt;policyMap&gt;
&lt;policyEntries&gt;
&lt;policyEntry topic="&gt;" &gt;
&lt;!-- The constantPendingMessageLimitStrategy is used to prevent
slow topic consumers to block producers and affect other consumers
by limiting the number of messages that are retained
For more information, see:
http://activemq.apache.org/slow-consumer-handling.html
--&gt;
&lt;pendingMessageLimitStrategy&gt;
&lt;constantPendingMessageLimitStrategy limit="1000"/&gt;
&lt;/pendingMessageLimitStrategy&gt;
&lt;/policyEntry&gt;
&lt;/policyEntries&gt;
&lt;/policyMap&gt;
&lt;/destinationPolicy&gt;
&lt;!--
The managementContext is used to configure how ActiveMQ is exposed in
JMX. By default, ActiveMQ uses the MBean server that is started by
the JVM. For more information, see:
http://activemq.apache.org/jmx.html
--&gt;
&lt;managementContext&gt;
&lt;managementContext createConnector="false"/&gt;
&lt;/managementContext&gt;
&lt;!--
Configure message persistence for the broker. The default persistence
mechanism is the KahaDB store (identified by the kahaDB tag).
For more information, see:
http://activemq.apache.org/persistence.html
--&gt;
&lt;persistenceAdapter&gt;
&lt;kahaDB directory="${activemq.data}/kahadb"/&gt;
&lt;/persistenceAdapter&gt;
&lt;!--
The systemUsage controls the maximum amount of space the broker will
use before disabling caching and/or slowing down producers. For more information, see:
http://activemq.apache.org/producer-flow-control.html
--&gt;
&lt;systemUsage&gt;
&lt;systemUsage&gt;
&lt;memoryUsage&gt;
&lt;memoryUsage percentOfJvmHeap="70" /&gt;
&lt;/memoryUsage&gt;
&lt;storeUsage&gt;
&lt;storeUsage limit="100 gb"/&gt;
&lt;/storeUsage&gt;
&lt;tempUsage&gt;
&lt;tempUsage limit="50 gb"/&gt;
&lt;/tempUsage&gt;
&lt;/systemUsage&gt;
&lt;/systemUsage&gt;
&lt;!--
The transport connectors expose ActiveMQ over a given protocol to
clients and other brokers. For more information, see:
http://activemq.apache.org/configuring-transports.html
--&gt;
&lt;transportConnectors&gt;
&lt;!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --&gt;
&lt;transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt;
&lt;transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt;
&lt;transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt;
&lt;transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt;
&lt;transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt;
&lt;/transportConnectors&gt;
&lt;!-- destroy the spring context on shutdown to stop jetty --&gt;
&lt;shutdownHooks&gt;
&lt;bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /&gt;
&lt;/shutdownHooks&gt;
&lt;/broker&gt;
&lt;!--
Enable web consoles, REST and Ajax APIs and demos
The web consoles requires by default login, you can disable this in the jetty.xml file
Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details
--&gt;
&lt;import resource="jetty.xml"/&gt;
&lt;/beans&gt;
</pre>
</div></div><p>From the binary distributionthere is an <em>activemq</em> script allowing you to run a Message Broker as a stand alone process from the command line easily providing the $ACTIVEMQ_HOME/bin directory is on your PATH.</p></div>