SteveB
SteveB

Reputation: 533

Problems starting JMS bridge in Wildfly 10

I'm trying to set up either a JMS or core bridge between two instances of Wildfly 10.

My queue and bridge configuration:

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

I used the example in this post:

Wildfly 10 JMS bridge over HTTPS configuration issues

The error I'm getting is this:

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.

I've used every combination of queue names I can think of, APIResponseSource, jms.queue.APIResponseSource, jms.queues.APIResponseSource, queue.APIResponseSource, but the end result is the same. I've seen some discussion about setting up a core queue, but there doesn't seem to be anything like that in the documented Wildfly 10 configuration. I've also seen some discussion about a "jms-bridge" element, but I haven't found anything like that in the docs either. I would prefer to use a core bridge for performance reasons.

Any ideas?

Upvotes: 0

Views: 518

Answers (1)

Justin Bertram
Justin Bertram

Reputation: 35028

I believe the issue here is the order in which the resources are deployed. "Core" resources like core queues, bridges, diverts, etc. are deployed before JMS resources like JMS queues and topics. Therefore the bridge is deployed before the JMS queue which means the "core" queue which represents the JMS queue doesn't exist yet hence the error. You should define the "core" queue jms.queue.APIResponseSource which maps to an address of the same name, e.g.:

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

I don't believe this is explicitly documented, but you'll find the queue element in docs/schema/wildfly-messaging-activemq_1_0.xsd.

Upvotes: 1

Related Questions