Linux ActiveMQ目标主题启动

时间:2013-02-19 19:52:33

标签: activemq startup jms-topic

我正在尝试在启动ActiveMQ时设置主题。我们将拥有Durable订阅者,但他们尚未推出。

Startup Config说要添加:

<destinations>
  <queue physicalName="FOO.BAR" />
  <topic physicalName="SOME.TOPIC" />
</destinations>

我已将此添加到activemq.xml但没有运气。在ActiveMQ启动时没有创建主题。我们正在运行5.7。

想法?

编辑:

我正在尝试在ActiveMQ的启动时设置主题。重新启动(或关闭并启动)ActiveMQ时,会删除主题,因为它们位于内存中。我想在XML配置中添加一个主题,以便在AMQ启动时即时创建。通过这种方式,我们的ESB可以直接访问它并开始工作。 ESB将是Durable订户,但尚未订购。仍在实施。文档说在XML配置中添加到上面的行。但我没有运气。启动时不会创建主题。

所以我会把它们添加到任何地方?

  <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.xsd
 http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">

<!-- Allows us to use system properties as variables in this configuration file -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>file:${activemq.conf}/credentials.properties</value>
    </property>
</bean>

<!--
    The <broker> element is used to configure the ActiveMQ broker.
-->
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">

    <!-- Like here? -->
    <destinations>
       <queue physicalName="FOO.BAR" />
       <topic physicalName="SOME.TOPIC" />
    </destinations>
    <!--
        For better performances use VM cursor and small memory limit.
        For more information, see:

        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
    -->

    <destinationPolicy>
        <policyMap>
          <policyEntries>
            <policyEntry topic=">" producerFlowControl="true">
                <!-- 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

                -->
              <pendingMessageLimitStrategy>
                <constantPendingMessageLimitStrategy limit="1000"/>
              </pendingMessageLimitStrategy>
            </policyEntry>
            <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">
              <!-- Use VM cursor for better latency
                   For more information, see:

                   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
    -->
    <managementContext>
        <managementContext createConnector="false"/>
    </managementContext>

    <!--
        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
    -->
    <persistenceAdapter>
        <kahaDB directory="${activemq.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
        If using ActiveMQ embedded - the following limits could safely be used:

    <systemUsage>
        <systemUsage>
            <memoryUsage>
                <memoryUsage limit="20 mb"/>
            </memoryUsage>
            <storeUsage>
                <storeUsage limit="1 gb"/>
            </storeUsage>
            <tempUsage>
                <tempUsage limit="100 mb"/>
            </tempUsage>
        </systemUsage>
    </systemUsage>
    -->
      <systemUsage>
        <systemUsage>
            <memoryUsage>
                <memoryUsage limit="64 mb"/>
            </memoryUsage>
            <storeUsage>
                <storeUsage limit="100 gb"/>
            </storeUsage>
            <tempUsage>
                <tempUsage limit="50 gb"/>
            </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
    -->
    <transportConnectors>
        <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
        <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/>
        <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/>
    </transportConnectors>

    <!-- destroy the spring context on shutdown to stop jetty -->
    <shutdownHooks>
        <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" />
    </shutdownHooks>

</broker>

<!--
    Enable web consoles, REST and Ajax APIs and demos

    Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details
-->
<import resource="jetty.xml"/>

/齐格

3 个答案:

答案 0 :(得分:0)

我刚刚将它们放入一个普通的5.7 AMQ安装(在MacOS上),我通过Web控制台看到了队列和主题......

你应该再次尝试使用干净安装的AMQ来尝试缩小问题范围

答案 1 :(得分:0)

我自己的解决方案有效。虽然在我们的Linux环境中我们有多个实例。一个在/ user / share下,一个在/ home / activemq /

所以当我编辑corret文件时它就起作用了。

感谢您的努力。

答案 2 :(得分:0)

将目的地放在<destinations>标签内,如

<destinations>
   <queue physicalName="FOO.BAR" />
   <topic physicalName="SOME.TOPIC" />
</destinations>

<broker></broker>代码。