I am just starting out learning ActiveMQ. We are running into issues with
JMS Queue Bridging. I looked at the JMS to JMS Bridge
<http://activemq.apache.org/jms-to-jms-bridge.html> Article, and the
Network of Brokers <http://activemq.apache.org/networks-of-brokers.html>
Article. Both seem like similar ways of doing the same thing.
Here is our situation:
The idea is Application A will put messages on Broker A --> 'queue_in' in
one data center, which will get picked up by Broker B --> 'queue_in' in
another data center for Application B to process. If there is an error,
Application B will place a message on Broker B --> 'queue_out' for Broker A
--> 'queue_out' to pick up and process.
2 ActiveMQ Servers set up on a WAN.
Broker A is a Standalone Instance.
Broker B is an in JVM queue, and not a Standalone Instance.
Broker B connecting to Broker A using JMS Bridge Connector settings.
Broker B is set up with "duplex='true'".
Broker B has a Temporary Queue that is not to be forwarded back to Broker A.
There were different issues noticed:
Broker A Enqueue/Dequeue count would rise even though messages were not
Could put messages on one queue, but could not get messages off of other
queue, even though ActiveMQ Admin Console (not hawt.io console) showed there
were messages.
Sporadic behaviour when dealing with WAN. However, worked fine within a LAN.
What it seemed like was the reliability of ActiveMQ JMS Bridging was not
there. According to this article from 2006, JMS Bridging is supposed to be
used for different JMS Broker applications. Is this still true?
Is it better to just use a Network of Brokers instead of JMS Bridge when
going across data centers? Or will JMS Bridge work just fine, and we have a
configuration problem?
*Broker A Configuration:**Broker B Configuration:*

View this message in context: http://activemq.2283324.n4.nabble.com/JMS-to-JMS-Bridge-vs-Network-of-Brokers-tp4681063.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Search Discussions

  • Artnaseef at May 15, 2014 at 12:27 am
    The JMS bridge is a good solution to use. I disagree with the statement in
    the referenced discussion that the demand-forwarding bridge is always more
    efficient and a better choice always for ActiveMQ-to-ActiveMQ.

    Without getting into too much detail, the JMS bridge is a good choice when
    there is message flow that only ever crosses the network bridge in one
    direction. It will not work when messages need to flow both ways across the
    bridge. Demand-forwarding involves overhead that limits scaling which isn't
    there with the JMS bridge. Using the JMS bridge in this manner will scale
    very nicely. It also allows disabling of advisories, which are the biggest
    inhibitor of scaling ActiveMQ networks-of-brokers.

    One question comes to mind - is there an activemq-only static
    (non-demand-forwarding) bridge?

    Looking at the broker A and broker B configs, it appears that broker A is
    configured to forward messages for all Queues to broker B, and broker B is
    configured to forward messages for certain Queues to A. This will create a
    circular loop. While ActiveMQ has loop protection, I would need to research
    if it's effective when the JMS bridge is in-use. If so, that could explain
    the messages shown as in the queues, but inaccessible as that happens when
    message TTLs (max network hops) expire.

    Can you use a JMS bridge on broker A that only forwards the Queues needed?

    View this message in context: http://activemq.2283324.n4.nabble.com/JMS-to-JMS-Bridge-vs-Network-of-Brokers-tp4681063p4681112.html
    Sent from the ActiveMQ - User mailing list archive at Nabble.com.
  • Pminearo at May 14, 2014 at 5:40 pm
    Thanks for the response.
    To answer your question: What we want is a non demand forwarding bridge
    from Broker A to Broker B for one queue. And a non demand forwarding bridge
    from Broker B to Broker A for another queue.
    After doing some more fiddling around, I think we got it to work. Here is
    how we configured it.
    *Broker A:*
    *Broker B*

    View this message in context: http://activemq.2283324.n4.nabble.com/JMS-to-JMS-Bridge-vs-Network-of-Brokers-tp4681063p4681120.html
    Sent from the ActiveMQ - User mailing list archive at Nabble.com.
  • Artnaseef at May 14, 2014 at 5:47 pm
    That's what it looks like. Both bridges (A to B, and B to A) are defined on
    one broker.

    Looks good.

    View this message in context: http://activemq.2283324.n4.nabble.com/JMS-to-JMS-Bridge-vs-Network-of-Brokers-tp4681063p4681121.html
    Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupusers @
postedMay 12, '14 at 7:14p
activeMay 15, '14 at 12:27a

2 users in discussion

Artnaseef: 2 posts Pminearo: 2 posts



site design / logo © 2022 Grokbase