Адрес был автоматически создан в ActiveMQ Artemis, даже если значение auto-create-address равно «false» - PullRequest
0 голосов
/ 17 октября 2019

Я использую Wildfly 14 и ActiveMQ Artemis 2.7.0. Конфигурация ActiveMQ Artemis в Wildfly standalone-full-ha.xml, как показано ниже.

<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
    <server name="default">
        <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
        <remote-connector name="remote-artemis1" socket-binding="remote-artemis1"/>
        <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="remote-artemis1" ha="true" client-failure-check-period="1000" retry-interval="1000" reconnect-attempts="-1"/>
        <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="remote-artemis1" ha="true" client-failure-check-period="1000" connection-ttl="-1" call-timeout="300000" client-id="Wildfly-14" retry-interval="1000" reconnect-attempts="-1" use-global-pools="false" thread-pool-max-size="120" transaction="xa" user="admin" password="admin" min-pool-size="40" max-pool-size="200" initial-connect-attempts="10"/>
    </server>
</subsystem>

Создана фабрика соединений с использованием java: / JmsXA в моем приложении Ниже приведен код для очереди поиска /тема во внешнем артемисе

Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory");
env.put(JmsUtils.JMS_CONNECTION_FACTORY_URL, "tcp://localhost:61616");
context = new InitialContext(env);
(Destination) context.lookup("dynamicQueues/TestQueue");

В ActiveMQ Artemis 2.7.0 я добавил следующие настройки в address-settings:

<auto-create-queues>true</auto-create-queues>
<auto-create-addresses>false</auto-create-addresses>

Когда я развертываю свое приложение в Wildfly и пытаюсь отправитьсообщение TestQueue, тогда мое приложение успешно создаст адрес, хотя в broker.xml очереди нет; также я добавил параметр auto-create-addresses как false

Можете ли вы предоставитьРешение, если очередь не существует в broker.xml, приложение выдает исключение.

...