Цели Linux ActiveMQ Начало темы

Я пытаюсь настроить тему при запуске ActiveMQ. У нас будут постоянные подписчики, но они пока недоступны.

Конфигурация запуска говорит добавить:

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

Я добавил это в activemq.xml, но не повезло. Тема не создается при запуске ActiveMQ. У нас 5.7.

Идеи?

РЕДАКТИРОВАТЬ:

Я пытаюсь настроить тему при запуске ActiveMQ. При перезапуске ActiveMQ (или завершении работы и запуске) темы удаляются, поскольку они находятся в памяти. Я хочу добавить тему в конфигурацию XML, чтобы она создавалась «на лету» при запуске AMQ. таким образом, наш ESB может связаться с ним напрямую и начать работать. ESB будет постоянным подписчиком, но пока не будет. Еще реализую. В документации говорится, что нужно добавить к вышеуказанным строкам в конфигурации 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"/>

/Зигги


person ZiggyStardust    schedule 19.02.2013    source источник
comment
Вам нужно подробно рассказать о том, что вы пытаетесь сделать и в чем проблема. Не совсем понятно, о чем ваш вопрос.   -  person Tim Bish    schedule 20.02.2013
comment
См. редактирование. Я пытаюсь настроить тему при запуске AMQ.   -  person ZiggyStardust    schedule 20.02.2013


Ответы (3)


Я просто добавил их в установку vanilla 5.7 AMQ (на MacOS), и я вижу и очередь, и тему через веб-консоль...

вам следует повторить попытку с чистой установкой AMQ, чтобы попытаться сузить проблему.

person Ben ODay    schedule 20.02.2013

Мое собственное решение работает. Хотя в нашей среде Linux у нас было более одного экземпляра. Один в /user/share и один в /home/activemq/

Так что это сработало, когда я редактировал файл corret.

Спасибо за старания.

person ZiggyStardust    schedule 20.02.2013

Поместите пункт назначения внутри тега <destinations>, например

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

внутри

<broker></broker> теги.

person Aniket Thakur    schedule 27.02.2014