qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Arnaud Simon <asi...@redhat.com>
Subject Java failover manager
Date Tue, 03 Mar 2009 16:17:45 GMT

I have been playing with our 0.10 cluster. When testing it I used a java 
client and 2 brokers. I quickly ran into this issue:

org.apache.qpid.transport.ConnectionException: connection closed
 at org.apache.qpid.transport.Connection.send(Connection.java:294)
 at org.apache.qpid.transport.Session.send(Session.java:455)
 at org.apache.qpid.transport.Session.invoke(Session.java:599)

It appears that this is an expected behaviour of our default Java 
failover manager. The default heuristic is to go roundrobin through the 
list of brokers. This is fine really but our implementation does not 
reset the  cursor position after a successful failover. This means that 
if you failover from A to B you will never failover from B to A anymore 
(assuming that our list of broker only contains two brokers A and B).   
So, there is an optional parameter "cyclecount" that can be used to 
define the number of times to loop through the list of available brokers 
before failure. If this parameter can be used to solve the issue of 
failing over to A after a successful failover from A to B, it does solve 
this issue only for "cyclecount" times :( Moreover, I believe that we 
don't really want to cycle through all the brokers more than once when 
all the nodes of the broker are down. We rather want to define a kind of 
back-retry mechanism.

I would suggest that default implementation of our roundrobin failover 
manbager should be changed to reset the cursor position within the 
broker list to the current broker. Moreover, I believe that some people 
are currently implementing a failover manager that uses a failover 
exchange. I am wondering whether this manager shouldn't the default 
manager for our 0.10 client?

Please let me know what you think. Should we open a JIRA?



Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org

View raw message