I finally managed to understand why I got the problems described earlier. The "producer" uses "artemis-jms" while the deployed MDB uses "artemis-ra". Both components uses org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.createQueue(…). However, "artemis-ra" tries to create the queue (although it already exists) because it calls org.apache.activemq.artemis.utils.AutoCreateUtil.autoCreateQueue(…) with "destAddress" set as "jms.queue.TEST.QUEUE.A" (with the 1.x prefix). In autoCreateQueue(…), the "response.getQueueNames().contains(queueName)" check fails since the list only contains "TEST.QUEUE.A" (without the 1.x prefix).
I thought it would be enough to add "anycastPrefix=jms.queue." (to the acceptor in "broker.xml" on the Artemis server) but apparently I also needed to set "enable-amq1-prefix=" to false on my "remote-artemis" pooled-connection-factory (in "standalone-full.xml" on the Wildfly server). I noticed it wasn't possible to set "enable-amq1-prefix" on a pooled-connection-factory when it was placed within "<server>". I removed "<server>" from my "messaging-activemq" subsystem and kept a minimum of configuration: <subsystem xmlns="urn:jboss:domain:messaging-activemq:15.0"> <in-vm-connector name="in-vm" server-id="0"> <param name="buffer-pooling" value="false"/> </in-vm-connector> <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/> <remote-connector name="remote-artemis" socket-binding="remote-artemis"/> <pooled-connection-factory name="remote-artemis" entries="java:/RemoteJMS" connectors="remote-artemis" ha="false" user="myUser" password="myPassword" min-pool-size="15" max-pool-size="30" statistics-enabled="true" enable-amq1-prefix="false"> <inbound-config rebalance-connections="true" setup-attempts="-1" setup-interval="5000"/> </pooled-connection-factory> </subsystem> (Not sure why I needed to keep the "in-vm-connector" and the "activemq-ra" pooled-connection-factory but I wasn't able to deploy the MDB without them.) What is the difference between configuring a pooled-connection-factory within or outside "<server>"? Is "<server>" only needed if I wan't to run a local Artemis on my Wildfly? Regards, Calle