I'd like to make clear about it. For example, one ejb jar file deployed on app server on machine1, and another (same content) on machine2. Is it possible that one client connects to machine1, but ejb container on it considers too many beans in pool and then put the request to the other container on machine2? When does it happen? How? What is its flow? Moreover,where is the naming server? Does it exist on app server when running(on both machines?)? What is the content of JNDI name after registering ejb? Is there any info about machine/port(one machine, or two)? I'm new to its internal flow, eager to wait for any explanation? Thanks a lot!
I think your first question is really asking is it possible to workload manage EJBs. Certainly it is. A properly developed application will spray EJB requrest to less busy servers. I think the actual implementation of this functionality has alot to do with the actual vendor, but I'm not totally sure.
As far as JNDI goes, I believe that's fairly vendor specific too. I know IBM had one sort of JNDI implementation with WAS 3.x and 4.x, but changed to a federated namespace with 5. Essentially, with a JNDI lookup, you can do a bad lookup, and end up looking up an EJB on just one machine all the time. On the otherhand, you can do a lookup to the federated namespace, and this becomes less dependent on any one machine. With WAS, each JVM maintains its own JNDI namespace, with becomes part of a federated namespace.
For a mind numbing amount of info on JNDI, check out my JndiBindiBoBindi link on pulpjava.com
Further, (1) how to see the setting of �topology dependent JNDI name� in was console? (2) how to test the effect of such setting? (3) is it the reason why the war module can not access (lookup) ejb when war module deployed in ear1 and ejb module in ear2 on the same server? (if deploy the war and ejb module into one ear, it is ok) (4) is there any detailed information of implementation of �topology dependent JNDI name�, at least how one machine knows the information of another machine, is there any specific flag? (5) where is naming server? located in admin server instance? (6) how about the implementation of that in weblogic?
I'm obscure about it for a long time, wish to become clear to some extent, thanks for reply! ->
Joined: Jul 24, 2006
Any update from any kindly senior person? Thanks in advance!
You may find more information when searching for "clustering" - I'm not sure if this is the kind of thing you're looking for - this isn't necessarily done at the EJB level, but is more directed at duplicating entire application server instances. However, it's much more common to do this, because if you're interested in load balancing/failover on one tier, you're probably interested in the others. (You *can* however, specify only specific tiers/services/EJBs to be duplicated in the cluster if you so wish.) Here is a starting document about clustering in Weblogic.
Write once, run anywhere, because there's nowhere to hide! - /. A.C.
Cameron Wallace McKenzie
author and cow tipper