Running a network of brokers
The servers participating in a network of brokers must have a <networkConnections> element in their activemq.xml. Do note that the elements within the <broker> elements *must* appear alphabetically - otherwise the server will fail without notice!
This is the configuation file for instance1 on sandkasse-01:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="[http://www.springframework.org/schema/beans|http://www.springframework.org/schema/beans]" xmlns:amq="[http://activemq.apache.org/schema/core|http://activemq.apache.org/schema/core]" xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance|http://www.w3.org/2001/XMLSchema-instance]" xsi:schemaLocation="[http://www.springframework.org/schema/beans|http://www.springframework.org/schema/beans] [http://www.springframework.org/schema/beans/spring-beans-2.0.xsd|http://www.springframework.org/schema/beans/spring-beans-2.0.xsd] [http://activemq.apache.org/schema/core|http://activemq.apache.org/schema/core] [http://activemq.apache.org/schema/core/activemq-core.xsd|http://activemq.apache.org/schema/core/activemq-core.xsd]"> <!-- Allows us to use system properties as variables in this configuration file --> <bean> <property name="locations"> <value>file:${activemq.base}/conf/credentials.properties</value> </property> </bean> <!-- The <broker> element is used to configure the ActiveMQ broker. --> <broker xmlns="[http://activemq.apache.org/schema/core|http://activemq.apache.org/schema/core]" brokerName="instance1" dataDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true"> <!-- For better performances use VM cursor and small memory limit. For more information, see: [http://activemq.apache.org/message-cursors.html|http://activemq.apache.org/message-cursors.html] Also, if your producer is "hanging", it's probably due to producer flow control. For more information, see: [http://activemq.apache.org/producer-flow-control.html|http://activemq.apache.org/producer-flow-control.html] --> <destinationPolicy> <policyMap> <policyEntries> <policyEntry memoryLimit="1mb" producerFlowControl="true" topic=">"> <pendingSubscriberPolicy> <vmCursor/> </pendingSubscriberPolicy> </policyEntry> <policyEntry memoryLimit="1mb" producerFlowControl="true" queue=">"> <!-- Use VM cursor for better latency For more information, see: [http://activemq.apache.org/message-cursors.html|http://activemq.apache.org/message-cursors.html] <pendingQueuePolicy> <vmQueueCursor/> </pendingQueuePolicy> --> </policyEntry> </policyEntries> </policyMap> </destinationPolicy> <!-- 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|http://activemq.apache.org/jmx.html] --> <managementContext> <managementContext createConnector="false"/> </managementContext> <!-- Added by csv 20110530: The network connectors enumerate other brokers participating in a network of brokers {color} [http://activemq.apache.org/networks-of-brokers.html|http://activemq.apache.org/networks-of-brokers.html] --> <networkConnectors> <networkConnector name="instance2" uri="static:(tcp://localhost:60002)"/> <networkConnector name="instance3" uri="static:(tcp://localhost:60003)"/> </networkConnectors> <!-- 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|http://activemq.apache.org/persistence.html] --> <persistenceAdapter> <kahaDB directory="${activemq.base}/data/kahadb"/> </persistenceAdapter> <!-- The systemUsage controls the maximum amount of space the broker will use before slowing down producers. For more information, see: [http://activemq.apache.org/producer-flow-control.html|http://activemq.apache.org/producer-flow-control.html] <systemUsage> <systemUsage> <memoryUsage> <memoryUsage limit="20 mb"/> </memoryUsage> <storeUsage> <storeUsage limit="1 gb"/> </storeUsage> <tempUsage> <tempUsage limit="100 mb"/> </tempUsage> </systemUsage> </systemUsage> --> <!-- 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|http://activemq.apache.org/configuring-transports.html] --> <transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:60001"/> </transportConnectors> </broker> <!-- Enable web consoles, REST and Ajax APIs and demos It also includes Camel (with its web console), see ${ACTIVEMQ_HOME}/conf/camel.xml for more info Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details --> <import resource="jetty.xml"/> </beans>