- The Motivations for Clustered Infrastructure Solutions: Scalability and High Availability
- Understanding WebLogic Clusters
- Understanding How WebLogic Servers Communicate within a Cluster
- Designing the Architecture of a WebLogic Cluster
- Creating and Configuring a WebLogic Cluster
- Implementing a Load-Balancing Mechanism for Your Clustered Servlets and JSPs
- Implementing a Failover Mechanism for Your Clustered Servlets and JSPs
- Clustering Enterprise JavaBeans
- Summary
Understanding WebLogic Clusters
In general terms, a WebLogic cluster is a group (two or more) of WebLogic Server instances (managed servers) that have been configured to share their resources, and through coordinated load balancing and replication mechanisms, the WebLogic cluster provides a very highly available and scalable execution environment for deployed J2EE Web and enterprise applications. An application deployed homogeneously to every server instance in a WebLogic cluster appears as a single instance of the application to a client, regardless whether the client is Web or Java based.
As illustrated in Figure 25.3, the administration server is responsible for configuring, managing, and monitoring all WebLogic Server instances (nonclustered and clustered) and resources in that domain. Because the administration server contains the configuration information for a WebLogic cluster, it must be available for connection to enable the clustered server instances to start up. When the clustered server instances are running, the availability of the administration server has no effect on the load-balancing and failover capabilities of the cluster. In a production environment, the administration server should not be configured as part of a WebLogic cluster because it must always be available for monitoring all other WebLogic instances and hence should not be overloaded with client requests.
Figure 25.3 A WebLogic environment consisting of clustered WebLogic Server instances.
From an administration perspective, each WebLogic cluster is managed as a single logical entity in the domain. For this reason, all WebLogic Server instances that constitute a cluster must reside in the same domain. Clusters cannot span across WebLogic domains.
Understanding Which Objects Can Be Clustered
For a clustering solution to be realized for both J2EE Web and enterprise applications, the WebLogic cluster provides scalability (via load balancing) and high-availability (via failover mechanisms) support for the following J2EE objects:
JavaServer Pages (JSPs) and servlets
Enterprise JavaBeans (EJBs)
Remote Method Invocation (RMI) objects
Java Messaging Service (JMS) factories
Java Database Connectivity (JDBC) connections
NOTE
File and Time services can be used within a cluster but cannot take advantage of any load-balancing or failover mechanisms.
The mechanisms the WebLogic cluster implements to ensure failover and load balancing for these objects vary in their implementation and are discussed in their respective sections later in this chapter.
Examining Deployment Restrictions to the WebLogic Cluster
The deployment restrictions differ between WebLogic Server 7 and WebLogic Server 7 SP1 (Service Pack 1) as follows:
WebLogic Server 7 SP1 allows the deployment of an application to a partial cluster, where all the clustered servers may not be reachable during the deployment process. As soon as the unreachable managed servers become available, the deployment process is reinitiated to these servers to complete the deployment process.
WebLogic Server 7 SP1 allows you to deploy a pinned service, such as an application to individual servers in a WebLogic cluster. However, because this type of deployment does not take full advantage of the load-balancing and failover capabilities of a WebLogic cluster, it is recommended you deploy such services to managed servers outside a WebLogic cluster.