git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cannot consume msg by a duplex network connect broke.


As you said in #2, without a network bridge consumer, there will be no
message flow through the network of brokers. So the question then is why
network consumers aren't being created, given that in #1 you said that the
logs indicate that the network bridge was successfully built.

I notice that the snippet of activemq.xml that you quoted doesn't include
any indication that you're including destinations either dynamically or
statically (see Dynamic Networks and Pure Static Networks in
http://activemq.apache.org/networks-of-brokers.html). Is that an accurate
and complete quote from the file, or did you omit some of the content to
focus our attention on the pieces you did include? What you quoted would be
expected to result in no message flow between A and B, which matches your
description of the problematic behavior wouldn't explain why this would
have ever worked for you.

If that doesn't lead us to an answer and you're able to reproduce the
problem, I'd start by attempting to see if a socket connection between the
brokers exists, and then using JMX to see whether a network consumer is
built for the topic in question. If there's a network connection but no
network consumer, then I'd want to attach a debugger and step through the
code where the subscriptions are propagated.
https://activemq.apache.org/maven/apidocs/org/apache/activemq/network/DemandForwardingBridgeSupport.html#isPermissableDestination-org.apache.activemq.command.ActiveMQDestination-boolean-
should be the right place to set your breakpoint, should you need to go
down this path.

Tim

On Mon, Aug 27, 2018 at 7:26 AM ievanliu <ievanliu@xxxxxx> wrote:

> version:5.14.0
> architecture: Broke A(a 3 instances jdbc cluster) and Broke B(a 3 instances
> jdbc cluster), use duplex network connect, from brokeB to brokeA
> productor produce messages into brokeA, consumers consume messages from
> broke B, bridge queue like queueA,queueB
>
>
> networkConnector config:
>
> <networkConnectors>
>             <networkConnector
> uri="masterslave:(tcp://172.16.202.62:61616,tcp://172.16.202.65:61616
> ,tcp://172.16.202.68:61616)"
> duplex="true" name="bridge_111"></networkConnector>
> </networkConnectors>
>
> problem:
> early this morning, brokeB happened a master change, by the pre-master lost
> the jdbc lock.
> broke B2 in the broke B cluster, successfuly became the master, and build
> the network connection to broke A.
> But, there is a problem that , producer can produce messages to BrokeA, but
> consumers cannot consumer message from brokeB.
>
> process:
> 1、as the log shows, the network bridge has successfully been built。and
> there
> are no other error logs info.
> 2、I found that, when consumer connect to brokeB to consume queueA, in broke
> A, there is no consumers.Normally, here should be a network bridge consumer
> to brokeA.maybe this is the reason.
> 3、restart the broke A and broke B,the problem happened as same
>
>
> result:
> about 1 hours later, the problem disappear automaticly, and I can see there
> is a network bridge consumer to brokeA.
>
>
> who can help me how to troubleshooting this problem?
>
>
>
> --
> Sent from:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>