Using Clusters
Introduction and Roadmap
Document Scope and Audience
Guide to this Document
Related Documentation
New and Changed Clustering Features in This Release
Understanding 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?
Communications In a Cluster
WebLogic Server Communication In a Cluster
Using IP Multicast for Backward Compatibility
Multicast and Cluster Configuration
If Your Cluster Spans Multiple Subnets In a WAN
Firewalls Can Break Multicast Communication
Do Not Share the Cluster Multicast Address with Other Applications
One-to-Many Communication Using Unicast
Considerations When Using Unicast
Peer-to-Peer Communication Using IP Sockets
Pure-Java Versus Native Socket Reader Implementations
Configuring Reader Threads for Java Socket Implementation
Determining Potential Socket Usage
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
Cluster Configuration and config.xml
Role of the Administration Server
What Happens if the Administration Server Fails?
How Dynamic Configuration Works
Application Deployment for Clustered Configurations
Deployment Methods
Introduction to Two-Phase Deployment
Guidelines for Deploying to a Cluster
WebLogic Server Supports “Relaxed Deployment” Rules
Deployment to a Partial Cluster is Allowed
Deploying to Complete Clusters in WebLogic Server
Pinned Services can be Deployed to Multiple Managed Servers.
Methods of Configuring Clusters
Load Balancing in a Cluster
Load Balancing for Servlets and JSPs
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
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
Supported Server and Proxy Software
Programming Considerations for Clustered Servlets and JSPs
Accessing Clustered Servlets and JSPs Using a Proxy
Using URL Rewriting to Track Session Replicas
Accessing Clustered Servlets and JSPs with Load Balancing Hardware
Connection with Load Balancing Hardware
Failover with Load Balancing Hardware
Session State Replication Across Clusters in a MAN/WAN
Network Requirements for Cross-cluster Replication
Configuration Requirements for Cross-Cluster Replication
Configuring Session State Replication Across Clusters
Configuring a Replication Channel
MAN HTTP Session State Replication
MAN Replication, Load Balancers, and Session Stickiness
WAN HTTP Session State Replication
Failover Scenarios Within a WAN
Database Configuration for WAN Session State Replication
Replication and Failover for EJBs and RMIs
Clustering Objects with Replica-Aware Stubs
Clustering Support for Different Types of EJBs
Failover for Stateful Session EJBs
Failover for Entity Beans and EJB Handles
Clustering Support for RMI Objects
Object Deployment Requirements
Failover and JDBC Connections
Whole Server Migration
Understanding Server and Service Migration
Migration Terminology
Leasing
Features That Use Leasing
Leasing Versions
Determining Which Type of Leasing To Use
High-availability Database Leasing
Non-database Consensus Leasing
Automatic Whole Server Migration
Preparing for Automatic Whole Server Migration
Configuring Automatic Whole Server Migration
Using High Availability Storage for State Data
Server Migration Processes and Communications
Startup Process in a Cluster with Migratable Servers
Automatic Whole Server Migration Process
Manual Whole Server Migration Process
Administration Server's Role in Whole Server Migration
Migratable Server Behavior in a Cluster
Node Manager's Role in Whole Server Migration
Cluster Master's Role in Whole Server Migration
Service Migration
Understanding the Service Migration Framework
Migratable Services
JTA Transaction Recovery Service
User-defined Singleton Services
Understanding Migratable Targets In a Cluster
Policies for Manual and Automatic Service Migration
Options For Attempting to Restart Failed Services Before Migrating
User-Preferred Servers and Candidate Servers
Example Migratable Targets In a Cluster
Targeting Rules for JMS Servers
Targeting Rules for SAF Agents
Re-targeting SAF Agents to Migratable Targets
Targeting Migratable SAF Agents For Increased Message Throughput
Targeting SAF Agents For Consistent Quality-of-Service
Targeting Rules for Path Service
Special Considerations For Targeting a Path Service
Targeting Rules for Custom Stores
Migratable Targets For the JTA Transaction Recovery Service
Migration Processing Tools
Automatic Service Migration Infrastructure
Leasing for Migratable Services
Administration Server Not Required When Migrating Services
How Health Monitoring of the JTA Transaction Recovery Service Triggers Automatic Migration
How Health Monitoring of JMS-related Services Triggers Automatic Migration
In-Place Restarting of Failed Migratable Services
Migrating a Service From an Unavailable Server
JMS and JTA Automatic Service Migration Interaction
Pre-Migration Requirements
Custom Store Availability for JMS Services
Default File Store Availability for JTA
Server State and Manual Service Migration
Roadmap for Configuring Automatic Migration of JMS-related Services
Step 1: Configured Managed Servers and Node Manager
Step 2: Configure the Migration Leasing Basis
Step 3: Configure Migratable Targets
Configuring a Migratable Server As an Automatically Migratable Target
Create a New Migratable Target
Select a User Preferred Server
Select a Service Migration Policy
Optionally Select Constrained Candidate Servers
Optionally Specify Pre/Post-Migration Scripts
Optionally Specify In-Place Restart Options
Step 4: Configure and Target Custom Stores
Step 5: Target the JMS Services
Special Considerations When Targeting SAF Agents or Path Service
Step 6: Restart the Administration Server and Managed Servers With Modified Migration Policies
Step 7: Manually Migrating JMS Services Back to the Original Server
Best Practices for Targeting JMS when Configuring Automatic Service Migration
Roadmap for Configuring Manual Migration of JMS-related Services
Step 1: Configured Managed Servers
Step 2: Configure Migratable Targets
Configuring a Migratable Server As a Migratable Target
Create a New Migratable Target
Accept the Default Manual Service Migration Policy
Optionally Select Constrained Candidate Servers
Optionally Specify Pre/Post-Migration Scripts
Optionally Specify In-Place Restart Options
Step 3: Configure and Target Custom Stores
Step 4: Target the JMS Services
Special Considerations When Targeting SAF Agents or Path Service
Step 5: Restart the Administration Server and Managed Servers With Modified Migration Policies
Step 6: Manually Migrating JMS Services
Roadmap for Configuring Automatic Migration of the JTA Transaction Recovery Service
Step 1: Configured Managed Servers and Node Manager
Step 2: Configure the Migration Basis
Step 3: Enable Automatic JTA Migration
Select the Automatic JTA Migration Check Box
Optionally Select Candidate Servers
Optionally Specify Pre/Post-Migration Scripts
Step 4: Configure the Default Persistent Store For Transaction Recovery Service Migration
Step 5: Restart the Administration Server and Managed Servers With Modified Migration Policies
Step 6: Automatic Failback of the Transaction Recovery Service Back to the Original Server
Manual Migration of the JTA Transaction Recovery Service
Automatic Migration of User-Defined Singleton Services
Overview of Singleton Service Migration
Implementing the Singleton Service Interface
Deploying a Singleton Service and Configuring the Migration Behavior
Packaging and Deploying a Singleton Service Within an Application
Deploying a Singleton Service As a Standalone Service in WebLogic Server
Configuring Singleton Service Migration
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
Benefits of Multi-Tier Architecture
Load Balancing Clustered Objects in a in Multi-Tier Architecture
Configuration Considerations for Multi-Tier Architecture
Limitations of Multi-Tier Architectures
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
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
When Internal and External DNS Names Vary
Assigning Names to WebLogic Server Resources
Administration Server Address and Port
Managed Server Addresses and Listen Ports
Cluster Multicast Address and Port
Multicast and Multiple Clusters
Multicast and Multi-Tier Clusters
Explicitly Defining Cluster Address for Production Environments
Explicitly Defining Cluster Address for Development and Test Environments
Explicitly Defining Cluster Address for Single, Multihomed Machine
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
Specifying a Timeout Value For RMIs
Configure Server Affinity for Distributed JMS Destinations
Configuring Load Balancers that Support Passive Cookie Persistence
Configure Proxy Plug-Ins
Proxy Servlet Deployment Parameters
Accessing Applications Via the Proxy Server
Configure Replication Groups
Configure Migratable Targets for Pinned Services
Configure Clustered JDBC
Clustering Multi Data Sources
Package Applications for Deployment
Deploy Applications
Deploying to a Single Server Instance (Pinned Deployment)
Pinned Deployment from the Command Line
Cancelling Cluster Deployments
Cancel Deployment from the Command Line
Cancel Deployment Using the Administration Console
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
Migrating When the Currently Active Host is Unavailable
Configure In-Memory HTTP Replication
Additional Configuration Topics
Configure Native IP Sockets Readers on Machines that Host Server Instances
Set the Number of Reader Threads on Machines that Host Server Instances
Set the Number of Reader Threads on Client Machines
Configure Multicast Time-To-Live (TTL)
Configure Multicast Buffer Size
Configure Multicast Data Encryption
Configuration Notes for Multi-Tier Architecture
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 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
Troubleshooting Multicast Configuration
Verifying Multicast Address and Port Configuration
Possible Errors
Checking the Multicast Address and Port
Identifying Network Configuration Problems
Physical Connections
Address Conflicts
nsswitch.conf Settings on UNIX Systems
Using the MulticastTest Utility
Tuning Multicast Features
Multicast Timeouts
Cluster Heartbeats
Multicast Storms
Multicast and Multihomed Machines
Multicast in Different Subnets
Debugging Multicast
Debugging Utilities
Debugging Flags
Setting Debug Flags on the Command Line
Setting Debug Flags by Using weblogic.Admin
Miscellaneous Issues
Multicast on AIX
File Descriptor Problems
Other Resources for Troubleshooting Multicast Configuration
The WebLogic Cluster API
How to Use the API
Custom Call Routing and Collocation Optimization
Configuring BIG-IP Hardware with Clusters
Configuring Session Persistence
Configuring URL Rewriting
Configuring WebLogic Server for URL Rewriting
Configuring BIG-IP for URL Rewriting
Configuring F5 Load Balancers for MAN/WAN Failover
Requirements
Configure Local Load Balancers
Virtual Server IPs and Pools
Create a Failover Trigger Virtual Server and Pool
Create a Multi-layered Virtual Server and IP Pool
Configure the 3-DNS Global Hardware Load Balancer
Configure DNS Zones
Configure BIG-IP Addresses Managed by 3-DNS
Configure Data Centers
Configure Wide IPs
Configuring WebLogic Server Components
Configuring Radware Load Balancers for MAN/WAN Failover
Requirements
Step 1: Configure an Authoritative Delegation Zone
Step 2: Configure Farm Virtual IPs and Servers
Create a Farm IP
Configure the Dispatch Method for the Server Farm
Creating Farm Servers
Step 3: Configure Port Multiplexing
Step 4: Configure HTTP Redirects
Step 5: Configure Session ID Persistency
Step 6: Configure LRP
Step 7: Configure WebLogic Server Components