Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-7493

JMS bridge not able to lookup remote destination

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • 7.1.0.DR11
    • 7.1.0.DR8, 7.1.0.DR10
    • JMS
    • None
    • Regression
    • Hide

      Steps to reproduce the issue:

      git clone git://git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git
      cd eap-tests-hornetq/scripts/
      git checkout b9a7d942199bd394c0b8d09a2a0d3ccbb7dde2eb
      
      groovy -DEAP_VERSION=7.1.0.DR8 PrepareServers7.groovy
      export WORKSPACE=$PWD
      export JBOSS_HOME_1=$WORKSPACE/server1/jboss-eap
      export JBOSS_HOME_2=$WORKSPACE/server2/jboss-eap
      export JBOSS_HOME_3=$WORKSPACE/server3/jboss-eap
      export JBOSS_HOME_4=$WORKSPACE/server4/jboss-eap
      cd ../jboss-hornetq-testsuite/
      mvn clean test -Dtest=JMSBridgeTestCase#testReloadOfServerWithJMSBridge -DfailIfNoTests=false -Deap=7x | tee log
      
      Show
      Steps to reproduce the issue: git clone git: //git.app.eng.bos.redhat.com/jbossqe/eap-tests-hornetq.git cd eap-tests-hornetq/scripts/ git checkout b9a7d942199bd394c0b8d09a2a0d3ccbb7dde2eb groovy -DEAP_VERSION=7.1.0.DR8 PrepareServers7.groovy export WORKSPACE=$PWD export JBOSS_HOME_1=$WORKSPACE/server1/jboss-eap export JBOSS_HOME_2=$WORKSPACE/server2/jboss-eap export JBOSS_HOME_3=$WORKSPACE/server3/jboss-eap export JBOSS_HOME_4=$WORKSPACE/server4/jboss-eap cd ../jboss-hornetq-testsuite/ mvn clean test -Dtest=JMSBridgeTestCase#testReloadOfServerWithJMSBridge -DfailIfNoTests= false -Deap=7x | tee log

      There is regression in EAP 7.1.0.DR8. JMS bridge is not able to lookup queue or connection factory from remote EAP 7.1.0.DR8 server.

      If server with JMS bridge is started then following warning is logged in server.log:

      13:30:14,006 WARN  [org.apache.activemq.artemis.jms.bridge] (Thread-102) AMQ342010: Failed to connect JMS Bridge N/A: javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.NoClassDefFoundError: org/jboss/remoting3/Remoting]
      	at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:51) [jboss-remote-naming-2.0.4.Final-redhat-1.jar:2.0.4.Final-redhat-1]
      	at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:152) [jboss-remote-naming-2.0.4.Final-redhat-1.jar:2.0.4.Final-redhat-1]
      	at org.jboss.as.naming.InitialContext.getDefaultInitCtx(InitialContext.java:114)
      	at org.jboss.as.naming.InitialContext.init(InitialContext.java:99)
      	at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154) [rt.jar:1.8.0_71]
      	at org.jboss.as.naming.InitialContext.<init>(InitialContext.java:89)
      	at org.jboss.as.naming.InitialContextFactory.getInitialContext(InitialContextFactory.java:43)
      	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) [rt.jar:1.8.0_71]
      	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313) [rt.jar:1.8.0_71]
      	at javax.naming.InitialContext.init(InitialContext.java:244) [rt.jar:1.8.0_71]
      	at javax.naming.InitialContext.<init>(InitialContext.java:216) [rt.jar:1.8.0_71]
      	at org.apache.activemq.artemis.jms.bridge.impl.JNDIFactorySupport.createObject(JNDIFactorySupport.java:43) [artemis-jms-server-1.5.0.redhat-1.jar:1.5.0.redhat-1]
      	at org.apache.activemq.artemis.jms.bridge.impl.JNDIDestinationFactory.createDestination(JNDIDestinationFactory.java:32) [artemis-jms-server-1.5.0.redhat-1.jar:1.5.0.redhat-1]
      	at org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl.setupJMSObjects(JMSBridgeImpl.java:1072) [artemis-jms-server-1.5.0.redhat-1.jar:1.5.0.redhat-1]
      	at org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl.setupJMSObjectsWithRetry(JMSBridgeImpl.java:1247) [artemis-jms-server-1.5.0.redhat-1.jar:1.5.0.redhat-1]
      	at org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl.access$2600(JMSBridgeImpl.java:75) [artemis-jms-server-1.5.0.redhat-1.jar:1.5.0.redhat-1]
      	at org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl$FailureHandler.run(JMSBridgeImpl.java:1747) [artemis-jms-server-1.5.0.redhat-1.jar:1.5.0.redhat-1]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_71]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_71]
      	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_71]
      Caused by: java.lang.NoClassDefFoundError: org/jboss/remoting3/Remoting
      	at org.jboss.naming.remote.client.EndpointCache.get(EndpointCache.java:47) [jboss-remote-naming-2.0.4.Final-redhat-1.jar:2.0.4.Final-redhat-1]
      	at org.jboss.naming.remote.client.InitialContextFactory.createEndpoint(InitialContextFactory.java:226) [jboss-remote-naming-2.0.4.Final-redhat-1.jar:2.0.4.Final-redhat-1]
      	at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateEndpoint(InitialContextFactory.java:207) [jboss-remote-naming-2.0.4.Final-redhat-1.jar:2.0.4.Final-redhat-1]
      	at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateNamingStore(InitialContextFactory.java:170) [jboss-remote-naming-2.0.4.Final-redhat-1.jar:2.0.4.Final-redhat-1]
      	at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:146) [jboss-remote-naming-2.0.4.Final-redhat-1.jar:2.0.4.Final-redhat-1]
      	... 18 more
      
      

      This seems to be related to upgrade remote-naming -> wildfly-naming. As JMS bridge is using "artemis" module the dependency for wildfly-naming should be updated.

      Configuration of JMS bridge:

      <jms-bridge name="myBridge" module="org.apache.activemq.artemis" quality-of-service="ONCE_AND_ONLY_ONCE" failure-retry-interval="1000" max-retries="-1" max-batch-size="10" max-batch-time="100" add-messageID-in-header="true">
                      <source connection-factory="java:/ConnectionFactory" destination="jms/queue/InQueue"/>
                      <target connection-factory="jms/RemoteConnectionFactory" destination="jms/queue/OutQueue">
                          <target-context>
                              <property name="java.naming.factory.initial" value="org.jboss.naming.remote.client.InitialContextFactory"/>
                              <property name="java.naming.provider.url" value="http-remoting://127.0.0.1:10080"/>
                          </target-context>
                      </target>
                  </jms-bridge>
      

              jmesnil1@redhat.com Jeff Mesnil
              mnovak1@redhat.com Miroslav Novak
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: