Contents for Using WebLogic Server Clusters
Introduction to WebLogic Server Clustering
What Is a WebLogic Server Cluster?
How Does a Cluster Relate to a Domain?
What Are the Benefits of Clustering?
What Are the Key Capabilities of a Cluster?
What Types of Objects Can Be Clustered?
Servlets and JSPs
EJBs and RMI Objects
JDBC Connections
Getting Connections with Clustered JDBC
Failover and Load Balancing for JDBC Connections
JMS and Clustering
What Types of Objects Cannot Be Clustered?
What Are the New Clustering Features in WebLogic Server 8.1?
Server Affinity for Client Connections to RMI Objects
Communications in a Cluster
WebLogic Server Communication in a Cluster
One-to-Many Communication Using IP Multicast
Multicast and Cluster Configuration
Peer-to-Peer Communication Using IP Sockets
Pure-Java Versus Native Socket Reader Implementations
Configuring Reader Threads for Java Socket Implementation
Client Communication via Sockets
Cluster-Wide JNDI Naming Service
How WebLogic Server Creates the Cluster-Wide JNDI Tree
How JNDI Naming Conflicts Occur
Deploy Homogeneously to Avoid Cluster-Level JNDI Conflicts
How WebLogic Server Updates the JNDI Tree
Client Interaction with the Cluster-Wide JNDI Tree
Understanding Cluster Configuration and Application Deployment
Cluster Configuration and config.xml
Role of the Administration Server
What Happens if the Administration Server Fails?
How Dynamic Configuration Works
Application Deployment Topics
Deployment Methods
Introduction to Two-Phase Deployment
First Phase of Deployment
Second Phase of Deployment
Guidelines for Deploying to a Cluster
WebLogic Server 8.1 Supports "Relaxed Deployment" Rules
Methods of Configuring Clusters
Domain Configuration Wizard Capabilities
Administration Console Capabilities
Load Balancing in a Cluster
Load Balancing for Servlets and JSPs
HTTP Load Balancing and Tunneling
Load Balancing with a Proxy Plug-in
How Session Connection and Failover Work with a Proxy Plug-in
Load Balancing HTTP Sessions with an External Load Balancer
Load Balancer Configuration Requirements
Load Balancers and the WebLogic Session Cookie
Related Programming Considerations
How Session Connection and Failover Works with a Load Balancer
Load Balancing for EJBs and RMI Objects
Round Robin Load Balancing
Weight-Based Load Balancing
Random Load Balancing
Server Affinity Load Balancing Algorithms
Server Affinity and Initial Context
Server Affinity and IIOP Client Authentication Using CSIv2
Round-Robin Affinity, Weight-Based Affinity, and Random-Affinity
Parameter-Based Routing for Clustered Objects
Optimization for Collocated Objects
Transactional Collocation
Load Balancing for JMS
Server Affinity for Distributed JMS Destinations
Initial Context Affinity and Server Affinity for Client Connections
Load Balancing for JDBC Connections
Failover and Replication in a Cluster
How WebLogic Server Detects Failures
Failure Detection Using IP Sockets
The WebLogic Server "Heartbeat"
Replication and Failover for Servlets and JSPs
HTTP Session State Replication
Requirements for HTTP Session State Replication
Using Replication Groups
Accessing Clustered Servlets and JSPs Using a Proxy
Proxy Connection Procedure
Proxy Failover Procedure
Accessing Clustered Servlets and JSPs with Load Balancing Hardware
Connection with Load Balancing Hardware
Failover with Load Balancing Hardware
Replication and Failover for EJBs and RMIs
Clustering Objects with Replica-Aware Stubs
Clustering Support for Different Types of EJBs
Clustered EJBHomes
Clustered EJBObjects
Entity EJBs
Clustering Support for RMI Objects
Object Deployment Requirements
Other Failover Exceptions
Migration for Pinned Services
How Migration of Pinned Services Works
Migrating a Service When Currently Active Host is Unavailable
Defining Migratable Target Servers in a Cluster
Failover and JDBC Connections
Cluster Architectures
Architectural and Cluster Terminology
Architecture
Web Application "Tiers"
Combined Tier Architecture
De-Militarized Zone (DMZ)
Load Balancer
Proxy Plug-In
Recommended Basic Architecture
When Not to Use a Combined Tier Architecture
Recommended Multi-Tier Architecture
Physical Hardware and Software Layers
Web/Presentation Layer
Object Layer
Benefits of Multi-Tier Architecture
Load Balancing Clustered Objects in a in Multi-Tier Architecture
Configuration Considerations for Multi-Tier Architecture
IP Socket Usage
Hardware Load Balancers
Limitations of Multi-Tier Architectures
No Collocation Optimization
Firewall Restrictions
Recommended Proxy Architectures
Two-Tier Proxy Architecture
Physical Hardware and Software Layers
Multi-Tier Proxy Architecture
Proxy Architecture Benefits
Proxy Architecture Limitations
Proxy Plug-In Versus Load Balancer
Security Options for Cluster Architectures
Basic Firewall for Proxy Architectures
Firewall Between Proxy Layer and Cluster
DMZ with Basic Firewall Configurations
Combining Firewall with Load Balancer
Expanding the Firewall for Internal Clients
Additional Security for Shared Databases
DMZ with Two Firewall Configuration
Setting up WebLogic Clusters
Before You Start
Obtain a Cluster Licence
Understand the Configuration Process
Determine Your Cluster Architecture
Consider Your Network and Security Topologies
Choose Machines for the Cluster Installation
WebLogic Server Instances on Multi-CPU machines
Check Host Machines' Socket Reader Implementation
Setting Up a Cluster on a Disconnected Windows Machine
Identify Names and Addresses
Avoiding Listen Address Problems
Assigning Names to WebLogic Server Resources
Administration Server Address and Port
Managed Server Addresses and Listen Ports
Cluster Multicast Address and Port
Cluster Address
Cluster Implementation Procedures
Configuration Roadmap
Install WebLogic Server
Create a Clustered Domain
Starting a WebLogic Server Cluster
Configure Node Manager
Configure Load Balancing Method for EJBs and RMIs
Configure Server Affinity for Distributed JMS Destinations
Configuring Load Balancers that Support Passive Cookie Persistence
Configure Proxy Plug-Ins
Set Up the HttpClusterServlet
Configure Replication Groups
Configure Migratable Targets for Pinned Services
Configure Clustered JDBC
Clustering Connection Pools
Clustering Multipools
Package Applications for Deployment
Deploy Applications
Deploying to a Single Server Instance (Pinned Deployment)
Cancelling Cluster Deployments
Viewing Deployed Applications
Undeploying Deployed Applications
Deploying, Activating, and Migrating Migratable Services
Deploying JMS to a Migratable Target Server Instance
Activating JTA as a Migratable Service
Migrating a Pinned Service to a Target Server Instance
Configure In-Memory HTTP Replication
Additional Configuration Topics
Configure IP Sockets
Configure Multicast Time-To-Live (TTL)
Configure Multicast Buffer Size
Configure Machine Names
Configuration Notes for Multi-Tier Architecture
Enable URL Rewriting
Clustering Best Practices
General Design Considerations
Strive for Simplicity
Minimize Remote Calls
Session Facades Reduce Remote Calls
Transfer Objects Reduce Remote Calls
Distributed Transactions Increase Remote Calls
Web Application Design Considerations
Configure In-Memory Replication
Design for Idempotence
Programming Considerations
EJB Design Considerations
Design Idempotent Methods
Follow Usage and Configuration Guidelines
Cluster-Related Configuration Options
State Management in a Cluster
Application Deployment Considerations
Architecture Considerations
Avoiding Problems
Naming Considerations
Administration Server Considerations
Firewall Considerations
Evaluate Cluster Capacity Prior to Production Use
Troubleshooting Common Problems
Before You Start the Cluster
Check for a Cluster License
Check the Server Version Numbers
Check the Multicast Address
Check the CLASSPATH Value
Check the Thread Count
After You Start the Cluster
Check Your Commands
Generate a Log File
Getting a JRockit Thread Dump Under Linux
Check Garbage Collection
Run utils.MulticastTest
The WebLogic Cluster API
How to Use the API
Custom Call Routing and Collocation Optimization
Configuring BIG-IP
TM
Hardware with Clusters
Configuring Session Persistence
Configuring URL Rewriting
Configuring WebLogic Server for URL Rewriting
Configuring BIG-IP for URL Rewriting