WebLogic Server Clustering
Introduction
- 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
- 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
- Server Affinity and Initial Context
- Load Balancing Algorithms for RMI Objects and EJBs
- Round Robin Load Balancing
- Weight-Based Load Balancing
- Random Load Balancing
- 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
- 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