Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-5049

AMQ Artemis does not support slash character used in activation property of MDB

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • Major
    • None
    • 10.0.0.Alpha6
    • JMS
    • None

    Description

      When using slash character / in configuration of artemis messaging subsystem as jms queue name then MDB fails to connect to remote messaging server.

      My settings is following - I have a remote messaging server where queue is defined like

      <jms-queue name="queue/crashRecoveryQueue" entries="java:jboss/queue/crashRecoveryQueue"/>
      

      Then there is a server where MDB is deployed. That server configures connection factory

      <pooled-connection-factory name="messaging-broker-remote" transaction="xa" entries="java:/RemoteJmsXA" connectors="messaging-broker-http-remote"/>
      

      http connector

      <http-connector name="messaging-broker-http-remote" socket-binding="remote-messaging">
        <param name="http-upgrade-endpoint" value="http-acceptor"/>
      </http-connector>
      

      outbound socket binding

      <outbound-socket-binding name="remote-messaging">
        <remote-destination host="127.0.0.1" port="8280"/>
      </outbound-socket-binding>
      

      and resource reference for ejb subsystem

      <mdb>
        <resource-adapter-ref resource-adapter-name="messaging-broker-remote"/>
        <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
      </mdb>
      

      The MDB uses ejb-jar with activation properties

      <?xml version="1.0" encoding="UTF-8"?>
      <ejb-jar id="EJBJar_1060639024453" version="3.0"
      xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
      metadata-complete="false">
      <enterprise-beans>
        <message-driven>
          <ejb-name>JMSCrashMessageDrivenBean</ejb-name>
          <ejb-class&gt;org.jboss.as.test.jbossts.crashrec.jms.mdb.JMSCrashMessageDrivenBean</ejb-class&gt;
          <activation-config>
            <activation-config-property>
               <activation-config-property-name>destination</activation-config-property-name>
               <activation-config-property-value>queue/MDBTriggerQueue</activation-config-property-value>
             </activation-config-property>
             <activation-config-property>
               <activation-config-property-name>destinationType</activation-config-property-name>
               <activation-config-property-value>javax.jms.Queue</activation-config-property-value>
             </activation-config-property>
           </activation-config>
         </message-driven>
      </enterprise-beans>
      </ejb-jar>
      

      The server does not show any warning that the connection was not found, just MDB does not receive any message from the queue.

      If I use MDBTriggerQueue instead of queue/MDBTriggerQueue the same setup starts working perfectly.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: