Sending message to temporary jmsReplyTo destination of another server failed since Wildfly 14
grischa.paul May 28, 2019 3:27 AMHello, I need help.
Since wildfly 14 the sending of a message to a temporary destination obtained from Message#getJMSReplyTo() of a message obtained from another cluster node fails up to wildfly 16 with error "Destination 7d89b97f-4097-4dee-b845-eef2afe304a0 does not exist". Probably it is caused by upgrade from artemis 1.5 to 2.6. It has worked fine up to Wildfly 13. I use standard standallone-full-ha.xml in both servers, just added some jms queue and topic and name entries to the InVmConnectionFactory (with RemoteConnectionFactory it makes no difference, with and without security). Both servers are started with different values for system property -Djboss.node.name=(jb1 and jb2).
Suspicious debug messages from artemis logger are
jms.tempqueue.7d89b97f-4097-4dee-b845-eef2afe304a002b51746-7e26-11e9-a29f-42f320524153]]@402831124 is not going anywhere as it didn't have a binding on address:activemq.notifications
ClientSessionFactoryImpl received backup update for live/backup pair = TransportConfiguration(name=in-vm, factory=org-apache-activemq-artemis-core-remoting-impl-invm-InVMConnectorFactory) ?bufferPooling=false&serverId=0 / null but it didn't belong to TransportConfiguration(name=in-vm, factory=org-apache-activemq-artemis-core-remoting-impl-invm-InVMConnectorFactory) ?bufferPooling=false&serverId=0
But I don't know whether this messages provide some hint. More log Messages you can find in attached Server.log.
I debugged it and saw that the socket connection used in the jms session points to the local node (port 8180) instead of the remote node where the original messsage was sent from. But I don't know whether this is correct or not in case of using the local InVmConnectionFactory.
org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection() calls org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory() where I see TransportConfiguration(name=http-connector, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?httpUpgradeEndpoint=http-acceptor&activemqServerName=default&httpUpgradeEnabled=true&port=8180&host=127-0-0-1
Probably this is caused by missing cluster support of temporary queues as mentioned in issue ARTEMIS-1967 (https://issues.apache.org/jira/browse/ARTEMIS-1967).
Thank you
-
server.log.zip 3.3 KB