0

ActiveMQの起動時にトピックを設定しようとしています。耐久性のあるサブスクライバーがありますが、まだ利用できません。

StartupConfigは次のように追加します。

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

/ジギー

4

3 に答える 3

0

私自身の解決策は機能します。Linux環境では、複数のインスタンスがありましたが。1つは/user/ shareの下に、もう1つは/ home /activemq/の下にあります

そのため、corretファイルを編集したときに機能しました。

どうぞよろしくお願いいたします。

于 2013-02-20T08:05:08.313 に答える
0

それらをバニラ5.7AMQインストール(MacOS上)にドロップしたところ、Webコンソールを介してキューとトピックの両方が表示されます...

問題を絞り込むために、AMQのクリーンインストールで再試行する必要があります

于 2013-02-20T01:51:45.863 に答える
0

<destinations>次のようなタグ内に目的地を配置します

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

中身

<broker></broker>タグ。

于 2014-02-27T06:21:15.400 に答える