I am new to this combination Apache with Weblogic. We have a situation as given below.
We are using the following configuration in the load balancer setup.
- Weblogic 9.2.3 with a cluster having two servers - The cluster node and both the servers are running on the same machine.
- Apache 18.104.22.168 server with the proxy plugin for weblogic on another machine.
- We are using HttpSession based session tracking in the application.
- We are not you using cookies or url parameters to maintain the session id in the application.
We have Machine A - D,
Machine A is having Apache and Weblogic Admin
Machine B,C,D - having Weblogic Cluster Nodes for Application
Apache is balancing the cluster.
We are facing a problem with the session stickyness - Sometimes we see that the apache server redirects the user to the server which was NOT initially serving the user request... and hence the user gets kicked out from the initial session.
We can not use any type of session replication since the architecture of the application doesn't support it (Objects that we keep in session are not Serializable) . We need a round robin load balancing to balance the load on the servers to have a better performance. However, once a client establishes a session between a given server we need the same server to serve the client. The plugin should NOT switch the client to the other server.
For your reference - httpd.conf file is as below(in case if needed):
1. You are using the web server to load balance between nodes.
2. Objects in the session are not serializable.
This presents a problem. Firstly, I would point to a cluster URL specified by weblogic, to perform the load balancing. This is because WL can create and maintain cluster aware stubs that can balance between nodes based on an algorithm that WL chooses. WL will also have the knowledge about session affinity which apache will not have.
Secondly, I doubt if clustering is achievable if your session objects are not serializable. Objects need to be serialized, and synchronized across nodes when they are clustered. If they cannot be replicated by serialization, how will clustering work ?