]
Ondřej Chaloupka updated WFLY-5049:
-----------------------------------
Attachment: ejb-jar.xml
Settings of activation properties for ejb where MDB resides
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.