Hi,

We have a setup where we have a server with it's own internal broker and
then multiple clients that also have their own internal brokers which are
connecting to the server broker.

The server is consuming messages from a queue "server.in" via a vm
-connection to the internal broker. The client is sending messages to the
"server.in" queue via its own vm -connection to its internal broker. The
messages are then forwarded by the client broker to the server broker as
expected. Until they are not.

When testing with just one client (the same thing happens with multiple
clients) I constantly end up in a situation where the client broker stops
forwarding messages to the server broker. The queue just starts growing
inside the client vm (as seen by using JMX) while the queue in the server vm
stays empty. I have enabled the lowest level of logging for ActiveMQ but
have not been able to notice any log messages related to this situation. It
only takes couple of hundred messages to reproduce this situation. Both the
server and the client are running on the same machine.

The only thing that has made this problem disappear is removal of the client
broker and having only one broker. But because our clients and server might
be on different sides of a firewall, we would like to use the network of
brokers feature with the duplex connection to be able to successfully
communicate through a firewall.

I have tried to create a test case to reproduce this situation, but for now
I've been unable to do that. I am not sure whether this is a bug in ActiveMQ
or if there is something funky in the way we use it. I've played around with
different kind of configurations but nothing seems to help.

Here is our configuration:

Server broker configuration:
    <broker xmlns="http://activemq.apache.org/schema/core";
brokerName="Server" useJmx="true" persistent="true">
      <managementContext>
        <managementContext createConnector="false"/>
      </managementContext>
      <transportConnectors>
        <transportConnector uri="tcp://0.0.0.0:27182" />
      </transportConnectors>
    </broker>

Client broker configuration:
    <broker xmlns="http://activemq.apache.org/schema/core";
brokerName="Client" useJmx="true" persistent="true">
      <managementContext>
        <managementContext createConnector="false"/>
      </managementContext>
      <networkConnectors>
        <networkConnector uri="static:(tcp://${server_address}:27182)"
duplex="true" conduitSubscriptions="true"/>
      </networkConnectors>
    </broker>

We have one queue for the server and one uniquely named queue per each
client. The server also broadcasts changes to data using a topic. In
addition to these we are using QueueRequestors, which internally uses
temporary queues, to do synchronous requests from the clients to the server.
The client also uses message selectors in its queue to direct messages to
different listeners.

I hope someone reading this list could point me to a solution for our
problem.

Best regards,
-Pauli Kaila


-- 
View this message in context: 
http://activemq.2283324.n4.nabble.com/Network-of-brokers-message-forwarding-between-brokers-stops-tp3060260p3060260.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to