Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-10484

JMS Durable Subscription doesn't start again after camel route is stopped and started against external AMQ 7.2.4

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Critical Critical
    • None
    • fuse-7.3
    • Camel, Fuse EAP
    • None
    • % %
    • Hide

      1. Run external AMQ 7.2.4 e.g.

      docker run -it -p 8162:8161 -p 61617:61616 -e AMQ_USER=admin -e AMQ_PASSWORD=admin123. -e AMQ_ROLE=admin -e AMQ_NAME=broker -e AMQ_TRANSPORTS='openwire,amqp,stomp,mqtt,hornetq' -e AMQ_ADDRESSES='durableInTopic' -e AMQ_REQUIRE_LOGIN=true -e AMQ_ANYCAST_PREFIX='jms.queue.' -e AMQ_MULTICAST_PREFIX='jms.topic.' registry.access.redhat.com/amq-broker-7/amq-broker-72-openshift:1.3-4
      

      2. Run EAP and execute configuration of remote connection factory using CLI

      $EAP_HOME/jboss-cli.sh --file=../config-connection-factories.cli -c
      

      3. Execute following testcase vkasala/wildfly-camel

      mvn clean test -Dtest=JMSDurableSubscriptionTest
      
      Show
      1. Run external AMQ 7.2.4 e.g. docker run -it -p 8162:8161 -p 61617:61616 -e AMQ_USER=admin -e AMQ_PASSWORD=admin123. -e AMQ_ROLE=admin -e AMQ_NAME=broker -e AMQ_TRANSPORTS= 'openwire,amqp,stomp,mqtt,hornetq' -e AMQ_ADDRESSES= 'durableInTopic' -e AMQ_REQUIRE_LOGIN= true -e AMQ_ANYCAST_PREFIX= 'jms.queue.' -e AMQ_MULTICAST_PREFIX= 'jms.topic.' registry.access.redhat.com/amq-broker-7/amq-broker-72-openshift:1.3-4 2. Run EAP and execute configuration of remote connection factory using CLI $EAP_HOME/jboss-cli.sh --file=../config-connection-factories.cli -c 3. Execute following testcase vkasala/wildfly-camel mvn clean test -Dtest=JMSDurableSubscriptionTest

      Currently, the config-connection-factories.cli attachment contains 2 different connection factories. One is PooledConnectionFactory and the other one is simple non pooling RemoteConnectionFactory. The Durable Subscription scenario doesn't with with PooledConnectionFactory because of limitions of Java EE && JMS. For that scenario, we recommended our customers to use the simple RemoteConnectionFactory. From AMQ 7.2 (not sure), you should configure broker with prefixes if you use embedded resource adapter in EAP to connect to external AMQ - docker env variables AMQ_ANYCAST_PREFIX='jms.queue.' -e AMQ_MULTICAST_PREFIX='jms.topic.'

      The durable scenario test case:

      1. does work against AMQ Broker without the specified prefixes
      2. doesn't work against AMQ Broker with prefixes

      The scenario doesn't configure the JMS topic in JNDI/remote context as described in [1], but that configuration is connected with PooledConnectionFactory that I don't use.

      [1] https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.2/html/configuring_messaging/resource_adapters#using_jboss_amq_for_remote_jms_communication

        1. amq.log
          7 kB
        2. camel-jms.log
          3.56 MB
        3. config-connection-factories.cli
          1 kB

            janstey@redhat.com Jonathan Anstey
            vkasala@redhat.com Viliam Kasala
            Viliam Kasala Viliam Kasala
            Votes:
            0 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:
              Resolved: