[omniORB] reliability -> load balancing

Okeefe, Michael K MOKEEFE at amfam.com
Fri Apr 22 17:18:27 BST 2005


"But how endPointNoListen can help me if they are no listening on port !"

Well, probably (I have not used this!) the other server would listen on that port, and then have an endPointNoListen also, specifying the main server.  

This would be fault-tolerant solution, not a true 'load balancing' as in Marc Anderson's article.  You would need to add logic to retrieve the load factor, something like the AWSLoadBalancing::selectObject() function in his article.

It would seem to me that your Cisco router could handle this at a lower level, so that you don't have to make any special configuration changes to your omniORB servers.  However, that however would not be load balancing either, according to your details on the router, but at least also fault-tolerant.

Anyway, here's some additional detail on using endpoints from
http://omniorb.sourceforge.net/omni40/omniORB/omniORB008.html#toc41


8.6.1  End point publishing

To publish an end point in IORs, without actually listening on that end point, the endPointNoListen parameter can be set. This can be useful in fault-tolerant applications where replicas of an object can be contacted at more than one server. endPointNoListen does not check that the transport specified is sensible for the current machine, so it allows the address of a different machine to be specified.

-Mike

-----Original Message-----
From: omniorb-list-bounces at omniorb-support.com [mailto:omniorb-list-bounces at omniorb-support.com] On Behalf Of Julien Teisseire
Sent: Friday, April 22, 2005 4:07 AM
To: Okeefe, Michael K
Cc: omniorb-list at omniorb-support.com
Subject: RE: [omniORB] reliability -> load balancing


Many thanks.

I try to understand endPoint which can be a way to implement load
balancing.

I have a load balancer (cisco) which manage virtual IP and make 'round-
robin' on servers.

Is the endPointNoListen able to help me.
I would be please of having more details regarding the explanation :
"-ORBendPointNoListen tells the ORB to publish the endpoint in its IORs
but do not listen on it. This option can be used to specify another host
port combination so that the client can try the endpoint if others
fail."

I believe it means that servant can have the same object implemantation,
and client will use a virtual IP for asking one by one the different
servers.

But how endPointNoListen can help me if they are no listening on port !

Should I have, for each server, to declare 2 endPoint like this in my
conf file ? :

# locally listen for object on port 6070
endPoint = giop:tcp:127.0.0.1:6070

# virtual ip x.x.x.x to be the ip provided in object reference
endPointNoListen = giop:tcp::x.x.x.x:6070

Thank you.
Regards,
Julien



Le mercredi 20 avril 2005 à 10:14 -0500, Okeefe, Michael K a écrit :
> Yes, and there are some good comments in the list archives:
> http://www.omniorb-support.com/pipermail/omniorb-list/1999-August/013435.html
> 
> The load balancing article mentioned in the above e-mail is dated and covers BOAs.  I think the general ideas should be supported in omniORB, i.e. using interceptors and the name service, however we didn't implement this as we are running on Citrix servers anyway (because of other requirements) and Citrix has load balancing.
> http://www.cuj.com/documents/s=8053/cuj9904anderson/anderson.htm
> 
> -Mike
> 
> -----Original Message-----
> From: omniorb-list-bounces at omniorb-support.com [mailto:omniorb-list-bounces at omniorb-support.com] On Behalf Of Julien Teisseire
> Sent: Wednesday, April 20, 2005 2:20 AM
> To: Wernke zur Borg
> Cc: omniorb-list at omniorb-support.com
> Subject: RE: [omniORB] reliability
> 
> 
> Ok !
> I did not catch my call the object function (I only catched call to
> omniobr func ...).
> Now I catch everything as you suggested me and my program became more
> reliable of course.
> 
> Thank you.
> Now I would like to know if it is possible to 'load balance' object
> between a pool of servers ... ?
> 
> Regards,
> Julien
> 
> Le mercredi 20 avril 2005 à 08:01 +0200, Wernke zur Borg a écrit :
> > > 
> > > Could someone tell me why client program exits when my server stops ?
> > >
> > 
> > Most probably there is a bug in your program. Are you catching exceptions?
> > 
> > >
> > > I need to know how to retry connect to server after loosing it.
> > >
> > 
> > I guess you have to restart your program. If you manage to keep it up just
> > re-invoke your method. Connection handling is ORB internal.
> >  
> > > It seams there isn't any exception management when server is
> > > disconnected from the network (or crashed).
> > 
> > Yes, there is. Are you catching exceptions?
> > 
> > > How to make client application reliable in all that cases ?
> > 
> > Put a try-catch block around all method invocations on remote objects.
> > 
> > Robustness and reliability does not come for free. You would have to become
> > more specific if this does not help.
> > 
> > Regards, Wernke
> > 
> > 
> > _______________________________________________
> > omniORB-list mailing list
> > omniORB-list at omniorb-support.com
> > http://www.omniorb-support.com/mailman/listinfo/omniorb-list
> 
> 
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list


_______________________________________________
omniORB-list mailing list
omniORB-list at omniorb-support.com
http://www.omniorb-support.com/mailman/listinfo/omniorb-list



More information about the omniORB-list mailing list