]
Jeff Mesnil commented on WFLY-5049:
-----------------------------------
I'd advise to use the destination+useJNDI=false for your setup to make it clear that
the JMS destination is created based on the JMS destination name and not on any JNDI
lookups.
AMQ Artemis does not support slash character used in activation
property of MDB
-------------------------------------------------------------------------------
Key: WFLY-5049
URL:
https://issues.jboss.org/browse/WFLY-5049
Project: WildFly
Issue Type: Bug
Components: JMS
Affects Versions: 10.0.0.Alpha6
Reporter: Miroslav Novak
Assignee: Jeff Mesnil
Attachments: ejb-jar.xml, mdb-deployed-standalone-full.xml,
remote-activemq-broker-standalone-full.xml
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
{code}
<jms-queue name="queue/crashRecoveryQueue"
entries="java:jboss/queue/crashRecoveryQueue"/>
{code}
Then there is a server where MDB is deployed. That server configures connection factory
{code}
<pooled-connection-factory name="messaging-broker-remote"
transaction="xa" entries="java:/RemoteJmsXA"
connectors="messaging-broker-http-remote"/>
{code}
http connector
{code}
<http-connector name="messaging-broker-http-remote"
socket-binding="remote-messaging">
<param name="http-upgrade-endpoint" value="http-acceptor"/>
</http-connector>
{code}
outbound socket binding
{code}
<outbound-socket-binding name="remote-messaging">
<remote-destination host="127.0.0.1" port="8280"/>
</outbound-socket-binding>
{code}
and resource reference for ejb subsystem
{code}
<mdb>
<resource-adapter-ref
resource-adapter-name="messaging-broker-remote"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>
{code}
The MDB uses ejb-jar with activation properties
{code}
<?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>org.jboss.as.test.jbossts.crashrec.jms.mdb.JMSCrashMessageDrivenBean</ejb-class>
<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>
{code}
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.