Implementing Highly Available and Scalable Solutions Using the WebLogic Cluster
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 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 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.
Organizations have extremely high expectations for their mission-critical Web-enabled applications. They not only expect them to be up and running 24/7, but they also expect them to be scalable and transparently meet growing end-user demands. Meeting these requirements by leveraging larger, more powerful server machines is not only an expensive proposition, but can also be a short-lived solution that is prone to exhibiting signs of failure in the long term.
This article introduced the WebLogic cluster, which in conjunction with a load-balancing solution, is a far more cost-effective, flexible, and reliable solution for meeting the demands of highly available and scalable J2EE applications.
About the Authors
Jatinder Prem is the founder and the chief technology officer of ObjectMind Inc. (http://www.ObjectMind.com), a startup company focused on providing creative socio-technical solutions to organizations that need assistance in building J2EE enterprise solutions on the BEA WebLogic Platform. Educated at one of London's leading technology-focused universities, The City of London University, and maintaining professional certifications in Java Programming, Oracle, and Sybase Database Administration, Prem has more than 10 years of end-to-end software development experience, using a variety of methodologies and technologies with organizations such as Morgan Stanley, KPMG, Motability Finance, SMART Technologies, the Workers Compensation Board, and DuPont. Prem's other authoring successes include co-authoring the Oracle8 Bible and the custom Dev2Dev WebLogic Platform book provided to attendees at BEA eWorld 2003. Prem can be reached via e-mail through Prem@ObjectMind.com.
Bernard Ciconte is a software engineer for Blair Computing Systems, Inc. (BCSI). As an employee of BCSI since 1989, he has worked as a contractor for DuPont, Sterling Diagnostic Imaging, and Agfa Corporation. His technical expertise is in distributed computing and image processing for radiographical medical devices.
Manish Devgan is a Senior R&D Engineer with BEA Systems, where he is developing framework services for WebLogic Portal. At BEA, he has worked on WebLogic's Portal Entitlements Engine, Delegated Administration, Portal Administration Tools, and the end-to-end sample shipped with WebLogic Platform 7.
Scott Dunbar is an architect and senior software engineer for BEA Systems in Boulder, Colorado. At BEA he has been involved in several areas of the WebLogic Portal Server series, including e-commerce components, the entitlements subsystem, and partner integrations.
Peter Go is a senior software engineer with Mercury Interactive in Boulder, Colorado, where he is lead developer and strategist for Web Services APM (Application Performance Management) products.
Source of this material
|This material is from Chapter 25: Implementing Highly Available and Scalable Solutions Using the WebLogic Cluster from the book BEA WebLogic Platform 7.0 (ISBN: 0-7897-2712-9) written by Jatinder Prem, Bernard Ciconte, Manish Devgan, Scott Dunbar, Peter Go, published by Sams Publishing. |
To access the full Table of Contents for the book.
Other Chapters from Sams Publishing:Web Services and Flows (WSFL)
Overview of JXTA
Introduction to EJBs
Processing Speech with Java
The Java Database Control in BEA Weblogic
Databases and Tomcat
Working with JAX-RPC
Page 3 of 3