我正在尝试在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”元素的一些讨论,但是我也没有在文档中找到类似的东西。出于性能原因,我宁愿使用核心网桥。
有什么想法吗?
答案 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
元素。