[jboss-user] [Clustering/JBoss] - Re: Ejb clustered registering
do-not-reply at jboss.com
Tue Feb 5 10:17:40 EST 2008
You can call an EJB on another node, except if that EJB is deployed on the node making the call. If the EJB is available locally, JBoss will detect that and optimize the call by routing it to the local bean. In that case your caller wouldn't be able to spread the calls to other nodes in the cluster. If you need a workaround for that, see "Why are calls between clustered session beans not load balanced even though load balancing policy is Round Robin?" on http://wiki.jboss.org/wiki/Wiki.jsp?page=ClusteringFAQ.
If your client needs to use HA-JNDI to find things on other nodes in the cluster, that's fine. Just don't configure your context via a jndi.properties file. Populate a Map with the key/value pairs you listed and call new InitialContext(Map). You can even externalize the key/value pairs into a .properties file and programatically read in the properties. Just don't name the file jndi.properties. If you put a file named jndi.properties on the classpath, it may be picked up by all sorts of other code and break their JNDI usage.
You can use JMX to invoke on specific nodes. To make remote JMX calls, use the RMIAdaptor (http://wiki.jboss.org/wiki/Wiki.jsp?page=UsingTheRMIAdaptor). But you'd need to know the address/port JNDI is using on each node in order to find that node's RMIAdaptor.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4126577#4126577
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4126577
More information about the jboss-user