If you want load balancing and/or failover, you'll need Apache mod_jk or some other means (e.g., hardware) to accomplish this. The JBoss servers will run in a cluster without this (i.e., they'll communicate and share clustered artifacts) but you won't get load balancing or failover.
Without Apache mod_jk, if one of JBoss servers is down will the other JBoss server that is still standby in the cluster be able to continue the work?
It will if you use some other load balancer ...
So without mod_jk JBoss server in one cluster can still communicate to each other but I won't get failover and load balancing. What is the benefit then?
I think it would be nice if not only JBoss server could communicate with servers in one cluster but also including failover and load balancing feature without using third party products.
Think about it. If one of your JBoss instances fail, how can it redirect calls to another instance? Or how could another instance intercept calls directed to the IP/port of the first server?
You always need a layer in front that proxies requests to your cluster. BEA, IBM, Tomcat, you name it.
Your options are usually to use Apache or a hardware based load balancer, and in large deployments it is usually a combination of the two.
Why couldn't the client app handle it? Doesn't HAJNDI use client-side load balancing? Could the client use the same approach with the HTTP invoker?
Our configuration is a java app client that uses the HTTP invoker to tunnel the JNDI requests through a firewall. The problem is that we now have Apache and mod_jk only for the initial request for the initial context. After that the cluster and client handle the fail over...how come this does not exist for the initial request over HTTP?
Then is seems you would not need Apache at all.
Thanks for listeninng.