In MB Flow controlling mechanism is cluster unaware. Hence when one node enables flow control other node doesn't know about it. IMO we have two approaches to tackle this.
- After client retries to connect to killed node (after failing to connect) it will try to connect to second node. At that time, since we are connecting to a new node, client can reset all flow control related information, from client, so that it can publish without waiting for flow control disable message from second node (That will never be sent to publisher by second node) - Or we can send a flow control disable message from MB node when a publisher connects (If global flow control is not enabled). I think the first option is better. Regards, On Fri, Mar 20, 2015 at 3:32 PM, Pumudu Ruhunage <[email protected]> wrote: > Hi All, > > We did fail over testing on mb nodes in AWS instances and came across > following issue. Following is the scenario tested in cluster. > > 1. Start 2 node mb cluster with nodeA (coordinator), nodeB. > 2. Add queue subscriber "MyQueue" to nodeB. > 3. Start publish "MyQueue" queue messages to nodeA. > 4. After flow control enabled in nodeA, disconnect nodeA from the cluster. > > At a moment where flow control is enabled for the publisher, the > coordinator is killed. Even though(assuming) that the publisher moves to > the other node, it is still under flow control and the node does not > disable the flow control for the publisher. Therefore the publisher does > not publish any messages afterwards. How can we overcome this issue ? > > Regards, > -- > Pumudu Ruhunage > Associate Software Engineer | WSO2 Inc > M: +94 779 664493 | http://wso2.com > -- *Asitha Nanayakkara* Software Engineer WSO2, Inc. http://wso2.com/ Mob: + 94 77 85 30 682
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
