在Wildfly 10中启动JMS桥的问题

时间:2018-09-26 00:15:08

标签: configuration jms wildfly-10

我正在尝试在Wildfly 10的两个实例之间建立JMS或核心桥。

我的队列和网桥配置:

<subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">
    <server name="default">

        ...

        <jms-queue name="APIResponseSource" entries="queue/APIResponseSource java:/jms/queue/APIResponseSource java:jboss/exported/jms/queues/APIResponseSource" durable="false"/>

        ...

        <bridge name="APIResponseBridge" queue-name="jms.queue.APIResponseSource" forwarding-address="jms.queue.APIResponseTarget" use-duplicate-detection="true" static-connectors="response-bridge-connector"/>

        ...

    </server>
</subsystem>

我在这篇文章中使用了示例:

Wildfly 10 JMS bridge over HTTPS configuration issues

我得到的错误是:

2018-09-25 23:44:43,170 WARN  [org.apache.activemq.artemis.core.server] (ServerService Thread Pool -- 65) AMQ222125: No queue found with name jms.queue.APIResponseSource bridge APIResponseBridge will not be deployed.

我使用了我能想到的队列名称的每种组合,即APIResponseSource,jms.queue.APIResponseSource,jms.queues.APIResponseSource,queue.APIResponseSource,但最终结果是相同的。我已经看到了一些有关设置核心队列的讨论,但是在记录的Wildfly 10配置中似乎没有类似的东西。我也看到了有关“ jms-bridge”元素的一些讨论,但是我也没有在文档中找到类似的东西。出于性能原因,我宁愿使用核心网桥。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我相信这里的问题是资源部署的顺序。在部署JMS资源(例如JMS队列和主题)之前,先部署“核心”资源(例如核心队列,桥,转移)等。因此,将网桥部署在JMS队列之前,这意味着代表JMS队列的“核心”队列尚不存在,因此会出现错误。您应该定义“核心”队列jms.queue.APIResponseSource,该队列映射到同名地址,例如:

<queue name="jms.queue.APIResponseSource" address="jms.queue.APIResponseSource"/>

我不认为这是明确记录的,但是您会在docs / schema / wildfly-messaging-activemq_1_0.xsd中找到queue元素。