First question... does your application need HttpSession Replication? This is very important because it seriously affects your options.
I am going to assume your application is either stateless or it is an acceptable risk to lose some session information in the event of a server failure. In this case you have two basic options:
1) Use a hardware load balancer that supports server affinity. Basically it will distribute incoming requests out across multiple servers. If a server dies the load balancer will stop forwarding to that server until it comes back up. This tends to be a pretty good solution, just make sure you have proper backup for you load balancer in the case of failure (that would hurt wouldn't it?)
2) Use a piece of software to reverse proxy incoming requests across your servers. Again the software must support server affinity and fail-over detection. Good news is WebLogic supports this with the use of the WebLogic Proxy Plugin.
Option 1 will cost you some money for the hardware. Option 2 is part of the WebLogic and does not require a Clustering license, however you will probably want a separate physical server for the Http Server the the WebLogic Proxy Plugin forwards from.
Check out this link for more information:
Load Balancing in a Cluster If you need In-Memory HttpSession Replication, then I suggest you take a look at
Tangosol Coherence.
[ February 13, 2003: Message edited by: Chris Mathews ]