The load balancing policies available at bean(EJB) level is more justified in case of a web container (servlets, JSP) being a client, as the invocation happens from a single client (or may be a small set of clients, in case they are also clustered).
But what if the client to the EJB is a standalone application (like Swings), arguably every user would open a separate client session (separate process space), in this case load balancing would only happen on a per user basis and not on the system in totality.
Just to exemplify, if there are two users who have opened up separate Swings session, invocations from one user would be load balanced to different server w.r.t that user only and not taking into account how many other users are using the system. So if the poilicy chosen is Round Robin it is Round robin for a single user and not for all the calls received by the system.
Is this correct ?
all current load balancing policies are from the client side. round robin starts with a random server and then iterates through the servers in order. To have load balancing policies based on the server state you need to write your own load balancing policy.