BEA Logo BEA WebLogic Enterprise Release 5.1

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

 

   WebLogic Enterprise Doc Home   |   Tuning Topics   |   Previous Topic   |   Next Topic   |   Contents   |   Index

Scaling, Distributing, and Tuning Applications

 

This document explains how to scale, distribute, and tune CORBA, EJB, and RMI applications that run in the WebLogic EnterpriseTM environment. It describes how to build and deploy highly scalable applications using WebLogic Enterprise scalability features, such as handling object state management, load balancing, replicating server processes and server groups, using multithreaded Java servers (Java applications only), using factory-based routing (CORBA applications only), and multiplexing incoming client connections. It also describes how to tune application performance using WebLogic Enterprise and BEA Tuxedo® configuration features.

 

1. Scaling WebLogic Enterprise Applications

About Scaling WebLogic Enterprise Applications

Application Scalability Requirements

WebLogic Enterprise Scalability Features

Scalability Support for WebLogic Enterprise Applications

Using Object State Management

Object State Models

Implementing Stateless and Stateful Objects

Replicating Server Processes and Server Groups

About Replicating Server Processes and Server Groups

Configuration Options

Replicating Server Processes

Replicating Server Groups

Using Multithreaded Java Servers (Java only)

About Multithreaded Java Servers

When to Use Multithreaded Java Servers

Coding Recommendations

Configuring a Multithreaded Java Server

Using Factory-based Routing (CORBA only)

About Factory-based Routing

Characteristics of Factory-based Routing

How Factory-based Routing Works

Configuring Factory-based Routing in the UBBCONFIG File

Multiplexing Incoming Client Connections

IIOP Listener and Handler

Increasing the Number of ISH Processes

 

2. Scaling CORBA C++ Server Applications

About Scaling the Production Sample Application

Design Goals

How the Application Has Been Scaled

Changing the OMG IDL

Using a Stateless Object Model

Scaling by Replicating Server Processes and Server Groups

Replicating Server Processes in the Production Application

Replicating Server Groups in the Production Application

Configuring Replicated Server Processes and Groups in the Production Application

Scaling with Factory-based Routing

About Factory-based Routing in the Production Application

Configuring Factory-based Routing in the UBBCONFIG File

Implementing Factory-based Routing in a Factory

What Happens at Run Time

Additional Design Considerations

About the Additional Design Considerations

Instantiating the Registrar and Teller Objects

Ensuring That Student Registration Occurs in the Correct Server Group

Ensuring That the Teller Object Is Instantiated in the Correct Server Group

Scaling the Application Further

 

3. Scaling CORBA Java Server Applications

About Scaling the JDBC Bankapp Sample Application

Design Goals

How the Application Has Been Scaled

Scaling with Object State Management

Scaling by Replicating Server Processes and Server Groups

Replicating Server Processes in the Bankapp Application

Replicating Server Groups in the Bankapp Application

Configuring Replicated Server Processes and Groups in the Bankapp Application

Scaling with Factory-based Routing

About Factory-based Routing in the Bankapp Application

Configuring Factory-based Routing in the UBBCONFIG File

Implementing Factory-based Routing in a Factory

What Happens at Run Time

Additional Design Considerations

About the Additional Design Considerations

Instantiating the Teller Object

Ensuring That Account Updates Occur in the Correct Server Group

Scaling the Application Further

 

4. Scaling EJB Applications

Scaling Tasks for EJB Providers

Using Stateless Session Beans

Minimizing State Information in Stateful Session Beans

Using Pooled Connections

Implementing Methods for Bean Persistence

Completing Transactions Efficiently

Implementing the Process-entity Design Pattern

Scaling Tasks for Application Assemblers and Deployers

Organizing EJBs in Groups

Configuring the Persistent Storage Location

Specifying the Method to Invoke Before Passivation

Deploying Stateful Session Beans on the IIOP Listener Node

Configuring the EJB Cache

Scaling Tasks for System Administrators

Removing Orphan Files for File-based Persistence

Scaling and Tuning the EJB Cache

 

5. Distributing Applications

Why Distribute an Application?

About Distributing an Application

Benefits of a Distributed Application

Characteristics of Distributing an Application

Using Data-dependent Routing (BEA Tuxedo Servers Only)

About Data-dependent Routing

Characteristics of Data-dependent Routing

Sample Distributed Application

Configuring the UBBCONFIG File

About the UBBCONFIG File in Distributed Applications

Modifying the GROUPS Section

Modifying the SERVICES Section

Creating the ROUTING Section

Example of UBBCONFIG Sections in a Distributed Application

Configuring the factory_finder.ini (CORBA Applications Only)

Modifying the Domain Gateway Configuration File to Support Routing

About the Domain Gateway Configuration File

Parameters in the DM_ROUTING Section of the DMCONFIG File (BEA Tuxedo Only)

 

6. Tuning Applications

Maximizing Application Resources

When to Use MSSQ Sets (BEA Tuxedo Servers Only)

Enabling Load Balancing

About Load Balancing

Two Ways to Measure Service Performance Time (BEA Tuxedo Servers Only)

Configuring Replicated Server Processes and Groups

Configuring Multithreaded Java Servers

Setting the OPENINFO Parameter

Configuring the Number of Threads

Configuring the Number of Concurrent Accessors

Assigning Priorities to Interfaces or Services

About Priorities to Interfaces or Services

Characteristics of the PRIO Parameter

Bundling Services into Servers (BEA Tuxedo Servers Only)

About Bundling Services

When to Bundle Services

Enhancing Efficiency with Application Parameters

Setting the MAXACCESSERS, MAXSERVERS, MAXINTERFACES, and MAXSERVICES Parameters

Setting the MAXGTT, MAXBUFTYPE, and MAXBUFSTYPE Parameters

Setting the SANITYSCAN, BLOCKTIME, BBLQUERY, and DBBLWAIT Parameters

Setting Application Parameters

Determining IPC Requirements

Measuring System Traffic

About System Traffic and Bottlenecks

Example of Detecting a System Bottleneck

Detecting Bottlenecks on UNIX

Detecting Bottlenecks on Windows NT