在ActiveMQ Artemis中自动创建了地址,即使auto-create-addresses值为“ false”

时间:2019-10-17 09:14:55

标签: wildfly activemq-artemis

我正在使用Wildfly 14和ActiveMQ Artemis 2.7.0。 如下在Wildfly standalone-full-ha.xml中配置ActiveMQ Artemis。

<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 创建连接工厂 以下是外部Artemis中查找队列/主题的代码

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中没有队列,我的应用程序也会成功创建地址,并且我添加了{{1 }}为 false

能否请您提供解决方案,如果auto-create-addresses中不存在队列,那么应用程序将引发异常。

0 个答案:

没有答案