EAP 6.3.3 HornetQ Bridges don't work on clean JBoss, no queue found with name X
japearson May 6, 2015 4:31 AMHi,
I have a problem with the embedded HornetQ 2.3.21.Final running inside JBoss EAP 6.3.3
I have found that when running on a clean JBoss, ie delete standalone/{tmp,work,data}, the HornetQ bridges don't work because the JMS queues don't exist yet. It seems that the first time JBoss is started it tries to configure the Bridges before creating queues.
I have taken these excerpts from the server.log, and you can see the timing seems to be deploy bridges and then deploy queues.
13:34:41,550 WARN [org.hornetq.core.server] (ServerService Thread Pool -- 58) HQ222125: No queue found with name jms.queue.event.forward.Misc bridge miscBridge will not be deployed.
13:34:42,297 INFO [org.hornetq.core.server] (ServerService Thread Pool -- 63) HQ221003: trying to deploy queue jms.queue.event.forward.Misc
13:34:42,308 INFO [org.jboss.as.messaging] (ServerService Thread Pool -- 63) JBAS011601: Bound messaging object to jndi name java:/queue/event.forward.Misc
Now if I delete the bridges using the cli, and then create them again, the bridges come up fine on subsequent restarts. But if I delete tmp, work, data, then it's broken until I recreate them through the CLI.
Is this expected behavour? It seems odd that you can't have a working bridge from a standalone.xml that has everything configured already.
Here is the relevant snippets from the standalone.xml:
<bridge name="miscBridge">
<queue-name>jms.queue.event.forward.Misc</queue-name>
<forwarding-address>jms.queue.event.group.Misc</forwarding-address>
<min-large-message-size>102400</min-large-message-size>
<check-period>30000</check-period>
<connection-ttl>60000</connection-ttl>
<retry-interval>2000</retry-interval>
<retry-interval-multiplier>1.5</retry-interval-multiplier>
<max-retry-interval>10000</max-retry-interval>
<reconnect-attempts>-1</reconnect-attempts>
<failover-on-server-shutdown>false</failover-on-server-shutdown>
<confirmation-window-size>1048576</confirmation-window-size>
<static-connectors>
<connector-ref>
remoteMiscConnector
</connector-ref>
</static-connectors>
</bridge>
<connector name="remoteMiscConnector" socket-binding="messaging-t
hroughput">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConn
ectorFactory</factory-class>
<param key="host" value="localhost"/>
<param key="port" value="5455}"/
>
</connector>
<jms-queue name="event.forward.Misc">
<entry name="queue/event.forward.Misc"/>
</jms-queue>