About load balancing
I have read with a lot of interest the docs about new IceGrid features,
that, as usual, are really great !!
But checking (Java, easier for me
) source code to see what happens
on the client side, it seems that endpoints retrieved by locator are
always cached at Communicator level.
This means that on a middle tier, acting as multiple concurrent clients,
all the invocations should go to the same server.
In a usage patter like the following, for each request processed on the
middle tier (e.g. a servlet):
......
// select target server identity
ObjectPrx prx = communicator.stringToProxy(id);
//invoke operation on proxy
....
The endpoints attached to the Reference used by proxy prx will
never change because of the cache.
Am I wrong ?
Maybe there should be a way to trigger locator.findObjectById()
each time a proxy construction is requested, so that load balancing
strategies can take place.
Guido
that, as usual, are really great !!
But checking (Java, easier for me

on the client side, it seems that endpoints retrieved by locator are
always cached at Communicator level.
This means that on a middle tier, acting as multiple concurrent clients,
all the invocations should go to the same server.
In a usage patter like the following, for each request processed on the
middle tier (e.g. a servlet):
......
// select target server identity
ObjectPrx prx = communicator.stringToProxy(id);
//invoke operation on proxy
....
The endpoints attached to the Reference used by proxy prx will
never change because of the cache.
Am I wrong ?
Maybe there should be a way to trigger locator.findObjectById()
each time a proxy construction is requested, so that load balancing
strategies can take place.
Guido
0
Comments
http://www.zeroc.com/vbulletin/showthread.php?t=1697
I have read latest Connections' article on IceGrid (and the editorial, great as
usual !!!), but I stll wonder if load balancing is in effect if,
in the same client, multiple threads invoke operations on a balanced server.
Guido.
Benoit.