David Robison wrote:
What I want to do is to allow the client to detect when the node
supporting one of its subscriptions is down and to "move" its
subscription to another node. We have developed a plugin that allows a
node to send a periodic heart beat. If the client misses the heart
beat for a node on which it has subscribed for messages, it then will
be able to unsubscribe and then resubscribe, hopefully onto a node
that is up. What is missing in XMLBlaster is the ability to give
preference to nodes that are up and not just pick any node that
supports the data domain. This would need to be done (in my estimation
with the little bit I know of the code) in the ClusterManager and the
getConnection routine.
Does this seem like a reasonable approach? Should it be possible to
make the change in getConnection to give preference to nodes that are
"up"? Could it be implemented as a special version of load balancing?
Any other ideas?
In ClusterManager.java:822
We have a masterSet of nodes which are available:
NodeDomainInfo nodeDomainInfo =
loadBalancer.getClusterNode(masterSet); // Invoke for
masterSet.size()==1 as well, the balancer may choose to ignore it
and now the loadBalancer may choose the appropriate, which it does in
the plugin RoundRobin.java
which chooses the node with the lowest stratum.
I think here is the place for any more advanced preference logic
or even another plugin,
regards
Marcel
David Robison
--
David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: [EMAIL PROTECTED]
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/bookstore/titles/1597816523.htm