WebLogic Server Performance and Tuning

     Previous  Next    Contents  Open Index in new window  View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Introduction and Roadmap

Document Scope and Audience

Guide to this Document

Performance Features of this Release

One-Way Sends for Non-Persistent Messages

Related Documentation

Top Tuning Recommendations for WebLogic Server

Tune Pool Sizes

Use the Prepared Statement Cache

Use Logging Last Resource Optimization

Tune Connection Backlog Buffering

Tune the Chunk Size

Use Optimistic or Read-only Concurrency

Use Local Interfaces

Use eager-relationship-caching

Tune HTTP Sessions

Tune Messaging Applications

Performance Tuning Roadmap

Performance Tuning Roadmap

Understand Your Performance Objectives

Measure Your Performance Metrics

Monitor Disk and CPU Utilization

Monitor Data Transfers Across the Network

Locate Bottlenecks in Your System

Minimize Impact of Bottlenecks

Tune Your Application

Tune your DB

Tune WebLogic Server Performance Parameters

Tune Your JVM

Tune the Operating System

Achieve Performance Objectives

Tuning Tips

Operating System Tuning

Basic OS Tuning Concepts

Solaris Tuning Parameters

Setting TCP Parameters With the ndd Command

Setting Parameters In the /etc/system File

CE Gigabit Network Card Settings

Additional Solaris Tuning Information

Linux Tuning Parameters

HP-UX Tuning Parameters

Windows Tuning Parameters

Other Operating System Tuning Information

Tuning Java Virtual Machines (JVMs)

JVM Tuning Considerations

Which JVM for Your System?

Changing To a Different JVM

Garbage Collection

VM Heap Size and Garbage Collection

Choosing a Garbage Collection Scheme

Using Verbose Garbage Collection to Determine Heap Size

Specifying Heap Size Values

Tuning Tips for Heap Sizes

BEA JRockit JVM Heap Size Options

Java HotSpot VM Heap Size Options

Other Java HotSpot VM Options

Automatically Logging Low Memory Conditions

Manually Requesting Garbage Collection

Requesting Thread Stacks

Enable Spinning for IA32 Platforms


BEA JRockit

Tuning WebLogic Server

Setting Java Parameters for Starting WebLogic Server

Development vs. Production Mode Default Tuning Values

Thread Management

Tuning a Work Manager

How Many Work Managers are Needed?

What are the SLA Requirements for Each Work Manager?

Tuning Execute Queues

Understanding the Differences Between Work Managers and Execute Queues

Migrating from Previous Releases

Tuning the Stuck Thread Detection Behavior

Tuning Network I/O

Tuning Muxers

Which Platforms Have Performance Packs?

Enabling Performance Packs

Changing the Number of Available Socket Readers

Network Channels

Tuning Message Size

Tune the Chunk Parameters

Tuning Connection Backlog Buffering

Setting Your Compiler Options

Compiling EJB Classes

Setting JSP Compiler Options

Using WebLogic Server Clusters to Improve Performance

Scalability and High Availability

How to Ensure Scalability for WebLogic Clusters

Database Bottlenecks

Session Replication

Invalidation of Entity EJBs

Invalidation of HTTP sessions

JNDI Binding, Unbinding and Rebinding

Performance Considerations When Running Multiple Server Instances on Multi-CPU Machines

Monitoring a WebLogic Server Domain

Using the Administration Console to Monitor WebLogic Server

Using JMX to Monitor WebLogic Server

Using WLST to Monitor WebLogic Server

dev2dev Resources to Monitor WebLogic Server

Third-Party Tools to Monitor WebLogic Server

Tuning the WebLogic Persistent Store

Overview of Persistent Stores

Using the Default Persistent Store

Using Custom File Stores and JDBC Stores

Using JMS Paging Stores

Best Practices When Using Persistent Stores

Tuning JDBC Stores

Tuning File Stores

DataBase Tuning

General Suggestions

Database-Specific Tuning


Microsoft SQL Server


Tuning WebLogic Server EJBs

General EJB Tuning Tips

Tuning EJB Caches

Tuning the Stateful Session Bean Cache

Tuning the Entity Bean Cache

Transaction-Level Caching

Caching between transactions

Tuning the Query Cache

Tuning EJB Pools

Tuning the Stateless Session Bean Pool

Tuning the MDB Pool

Tuning the Entity Bean Pool

CMP Entity Bean Tuning

Use Eager Relationship Caching

Use JDBC Batch Operations

Tuned Updates

Using Field Groups



Bean-level Pessimistic Locking

Concurrency Strategy

Tuning In Response to Monitoring Statistics

Cache Miss Ratio

Lock Waiter Ratio

Lock Timeout Ratio

Pool Miss Ratio

Destroyed Bean Ratio

Pool Timeout Ratio

Transaction Rollback Ratio

Transaction Timeout Ratio

Tuning Message-Driven Beans

Use Transaction Batching

MDB Thread Management

Determining the Number of Concurrent MDBs

Selecting a Concurrency Strategy

Using Foreign Vendor MDBs

Determining Concurrency for Foreign MDBs

Thread Utilization When Using Foreign MDBs

Tuning JDBC Applications

Tune the Number of Database Connections

Waste Not

Use Test Connections on Reserve with Care

Cache Prepared and Callable Statements

Using Pinned-To-Thread Property to Increase Performance

Use Best Design Practices

Tuning Logging Last Resource

What is LLR?

LLR Tuning Guidelines

Tuning WebLogic JMS

Defining Quota

Quota Resources

Destination-Level Quota

JMS Server-Level Quota

Blocking Senders During Quota Conditions

Defining a Send Timeout on Connection Factories

Specifying a Blocking Send Policy on JMS Servers

Tuning for Large Messages

Tuning MessageMaximum

Tuning MessageMaximum Limitations

Setting Maximum Message Size on a Client

Compressing Messages

Paging Out Messages To Free Up Memory

Specifying a Message Paging Directory

Tuning the Message Buffer Size Option

Controlling the Flow of Messages on JMS Servers and Destinations

How Flow Control Works

Configuring Flow Control

Flow Control Thresholds

Handling Expired Messages

Defining a Message Expiration Policy

Configuring an Expiration Policy on Topics

Configuring an Expiration Policy on Queues

Configuring an Expiration Policy on Templates

Defining an Expiration Logging Policy

Expiration Log Output Format

Tuning Active Message Expiration

Configuring a JMS Server to Actively Scan Destinations for Expired Messages

Tuning Applications Using Unit-of-Order

Best Practices

Using UOO and Distributed Destinations

Migrating Old Applications to Use UOO

Using One-Way Message Sends For Improved Non-Persistent Messaging Performance

Configure One-Way Sends On a Connection Factory

One-Way Send Support In a Cluster With a Single Destination

One-Way Send Support In a Cluster With Multiple Destinations

When One-Way Sends Are Not Supported

Different Client and Destination Hosts

XA Enabled On Client’s Host Connection Factory

Higher QOS Detected

Destination Quota Exceeded

Change In Server Security Policy

Change In JMS Server or Destination Status

Looking Up Logical Distributed Destination Name

Hardware Failure

One-Way Send QOS Notes

Tuning Destination Performance

Messaging Performance Configuration Parameters

Compatibility With the Asynchronous Message Pipeline

Tuning WebLogic JMS Store-and-Forward

Best Practices

Tuning Tips

Tuning WebLogic Message Bridge

Best Practices

Changing the Batch Size

Changing the Batch Interval

Changing the Quality of Service

Using Multiple Bridge Instances

Changing the Thread Pool Size

Avoiding Durable Subscriptions

Co-locating Bridges with Their Source or Target Destination

Changing the Asynchronous Mode Enabled Attribute

Tuning Resource Adapters

Classloading Optimizations for Resource Adapters

Connection Optimizations

Thread Management

InteractionSpec Interface

Tuning Web Applications

Best Practices

Disable Page Checks

Use Custom JSP Tags

Precompile JSPs

Use Service Level Agreements

Related Reading

Session Management

Managing Session Persistence

Minimizing Sessions

Aggregating Session Data

Tuning Web Services

Web Services Best Practices

Tuning Web Service Reliable Messaging Agents

Tuning WebLogic Tuxedo Connector

Configuration Guidelines

Best Practices

Related Reading: Performance Tools and Information

BEA Systems, Inc. Information

Sun Microsystems Information

Linux OS Information

Hewlett-Packard Company Information

Microsoft Information

Web Performance Tuning Information

Network Performance Tools

Load Testing Tools

Performance Analysis Tools

Production Performance Management

Benchmarking Information

Java Virtual Machine (JVM) Information

Enterprise JavaBeans Information

WebLogic Store Information

Java Message Service (JMS) Information

Java Database Connectivity (JDBC) Information

General Performance Information

Using the WebLogic 8.1 Thread Pool Model

How to Enable the WebLogic 8.1 Thread Pool Model

Tuning the Default Execute Queue

Should You Modify the Default Thread Count?

Using Execute Queues to Control Thread Usage

Creating Execute Queues

Modifying the Thread Count

Tuning Execute Queues for Overflow Conditions

Assigning Servlets and JSPs to Execute Queues

Assigning EJBs and RMI Objects to Execute Queues

Monitoring Execute Threads

Allocating Execute Threads to Act as Socket Readers

Setting the Number of Socket Reader Threads For a Server Instance

Setting the Number of Socket Reader Threads on Client Machines

Tuning the Stuck Thread Detection Behavior

Capacity Planning

Capacity Planning Factors

Programmatic and Web-based Clients

RMI and Server Traffic

SSL Connections and Performance

WebLogic Server Process Load

Database Server Capacity and User Storage Requirements

Concurrent Sessions

Network Load

Clustered Configurations

Application Design

Assessing Your Application Performance Objectives

Hardware Tuning

Benchmarks for Evaluating Performance

Supported Platforms

Network Performance

Determining Network Bandwidth

Related Information

  Back to Top       Previous  Next