Call now: 252-767-6166  
Oracle Training Oracle Support Development Oracle Apps

 E-mail Us
 Oracle Articles
New Oracle Articles

 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog

 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Oracle Support

 SQL Tuning

 Oracle UNIX
 Oracle Linux
 Remote s
 Remote plans
 Application Server

 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S


 Consulting Staff
 Consulting Prices
 Help Wanted!


 Oracle Posters
 Oracle Books

 Oracle Scripts

Don Burleson Blog 









Oracle WebLogic Load Balancing

Oracle WebLogic Tips authored by JWG

USA's best Weblogic consulting Support! 

BC is America's leading independent provider of Oracle WebLogic support.  We differ from other WebLogic consulting support because we only used Oracle Certified experienced WebLogic consultants, working experts who use WebLogic on a daily basis.

Oracle WebLogic has several points where load balancing occurs (Figure 10.16)  Here we see the typical 3-tiered Oracle WebLogic architecture with the Coherence*Web layer, the Oracle WebLogic layer and the database layer.  Within this architecture we have the following areas of load balancing:

  • Coherence*Web to HTTP server:  The Coherence*Web interrogates HTTP server statistics and routes transaction to the least-loaded HTTP server.

  • HTTP server to database listener: The HTTP server load balances transactions to multiple database listeners.

  • Database Listener to MTS Dispatcher:  When using the Oracle multithreaded server (MTS), numerous dispatcher processes funnel transactions to the database.  The listener will route an incoming database transaction to the least loaded dispatcher.

  • MTS dispatcher to database instance:  When using Oracle real application clusters (RAC), the dispatcher can route a database transaction to the least loaded Oracle instance.  Each instance in the RAC cluster accesses the same back-end database files.

 Load balancing points within Oracle WebLogic

In addition, we also have the ability to perform hardware load balancing by defining a pool of spare servers and starting either a Coherence*Web or an Oracle WebLogic on these servers.  This allows the Oracle WebLogic administrator to re-allocate processing resources depending on the nature of the system load.

Oracle WebLogic Server Load Balancing

Measuring server stress (RAM and CPU) is a critical part of Oracle WebLogic tuning.  Most Oracle WebLogic administrators use the common vmstat utility to monitor server stress because it is common to all dialects of UNIX and easy to invoke and interpret.

When capturing server metrics it is important to note that server-level resource contention is transient and fleeting, and it is often very easy to miss a bottleneck unless we are constantly vigilant. For this reason, we can create an Oracle table that will accept vmstat data from all of our Oracle WebLogic servers and collect all data relating to resource contention.  The concept behind this collection is to execute the vmstat utility and capture the performance information within an Oracle table called stats$vmstat.  While this technique works very well for monitoring the Oracle database server, these operating system statistics can also be used to monitor all of the Oracle WebLogic servers in your farm.

If you want to monitor vmstat data on your Oracle database of Infrastructure server, it is quite easy to writer a vmstat scripts that will collect elapsed-time vmstat information and store it inside the oracle database.

Note: You must install the SQL*Net client software on all of the Oracle WebLogic servers with a tnsnames.ora file pointing to the Infrastructure database (iasdb).  This establishes connectivity for the vmstat scripts to place entries into your centralized Oracle WebLogic repository.

Capturing vmstat Information for all Oracle WebLogic server

It is a simple matter to create an Oracle table on the Infrastructure Oracle database server to store the vmstat server statistics from each server in the Oracle WebLogic enterprise.  Creating the automated vmstat monitor begins by creating an Oracle table to contain the vmstat output from each server:

connect perfstat/perfstat;

drop table stats$vmstat;
create table stats$vmstat
     start_date          date,
     duration            number,
     server_name         varchar2(20),
     runque_waits        number,
     page_in             number,
     page_out            number,
     user_cpu            number,
     system_cpu          number,
     idle_cpu            number,
     wait_cpu            number
tablespace perfstat
storage (initial   10m
         next       1m
         pctincrease 0)

Now that we have defined an Oracle table to capture the vmstat information, we need to write a UNIX script that will execute vmstat, capture the vmstat output, and place it into the Oracle table.

The main script to collect the vmstat information is a Korn shell script called get_vmstat.ksh. As we noted earlier, each dialect of UNIX displays vmstat information in different columns, so we need slightly different scripts for each type of UNIX.

The idea is to write a script that continually runs the vmstat utility on every Oracle WebLogic server and then directs the results into our Oracle table on the Infrastructure database (iasdb), as shown in Figure 10.17.

Figure 10.17: Capturing vmstat output into the Infrastructure table

The script shows the vmstat capture utility script for the Linux operating system. The scripts at the Oracle Press Web site contain complete code for a vmstat script for all of the major UNIX dialects. 

Note that you must change this script in several places to make it work for you:

* You must set the ORACLE_HOME to your directory:


* You must set your ORACLE_SID in the sqlplus command:

$ORACLE_HOME/bin/sqlplus -s perfstat/perfstat@iasdb<<EOF

* You can change the duration of samples by re-setting SAMPLE_TIME UNIX variable:


get_vmstat.ksh (Linux version)

# This is the Linux version


export PATH
SERVER_NAME=`uname -a|awk '{print $2}'`
typeset -u SERVER_NAME

# sample every five minutes (300 seconds) . . . .

while true
   vmstat ${SAMPLE_TIME} 2 > /tmp/msg$$

# run vmstat and direct the output into the Oracle table . . .
cat /tmp/msg$$|sed 1,3d | awk  '{ printf("%s %s %s %s %s %s\n", $1, $8, $9,
14, $15, $16) }' | while read RUNQUE PAGE_IN PAGE_OUT USER_CPU SYSTEM_CPU

      $ORACLE_HOME/bin/sqlplus -s perfstat/perfstat@iasdb<<EOF
      insert into perfstat.stats\$vmstat
                           values (

rm /tmp/msg$$

Because of the differences in implementations of vmstat, the first task is to identify the columns of the vmstat output that contain the information that we want to capture. Once we know the columns that we want to capture, we can add these columns to the vmstat script to put the output into our table.  In Oracle WebLogic , it is common to have multiple types of server types, and Linux server are very popular with Oracle WebLogic HTTP server (OHS), while the database back-end may be Sun or HP/UX (table 10.3).

Run queue Page-in Page-out User System
IdleWait Dialect column column column column column column column HP/UX 189
161718NAAIX 16714151617Solaris  189202122NALinux  189141516NA

Table 10.3: vmstat columns for Oracle WebLogic server types

Using this table, you can adjust the capture script according to your operating system. You customize the script by changing the line in the script that reads the vmstat output and places it into the stats$vmstat table. Here is a summary of the UNIX dialect changes to this line.

HP/UX vmstat Columns
cat /tmp/msg$$|sed 1,3d |\
 awk  '{ printf("%s %s %s %s %s %s\n", $1, $8, $9, $16, $17, $18) }' |\
IBM AIX vmstat Columns
cat /tmp/msg$$|sed 1,3d |\
 awk  '{ printf("%s %s %s %s %s %s\n", $1, $6, $7, $14, $15, $16, $17) }' |\
Sun Solaris vmstat Columns
cat /tmp/msg$$|sed 1,3d |\
 awk  '{ printf("%s %s %s %s %s %s\n", $1, $8, $9, $20, $21, $22) }' |\
Linux vmstat columns
cat /tmp/msg$$|sed 1,3d |\
 awk  '{ printf("%s %s %s %s %s %s\n", $1, $8, $9, $14, $15, $16) }' |\

Advanced WebLogic Server Automation Book

The above is an excerpt from the book "Advanced WebLogic Server Automation: Administration and Monitoring with WLST and JMX". This book covers everything administrators need to know for WebLogic scripting and automation, and includes a comprehensive code download of powerful WLST and JMX scripts.


Oracle Training at Sea
oracle dba poster

Follow us on Twitter 
Oracle performance tuning software 
Oracle Linux poster


Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


Copyright © 1996 -  2017

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.

Remote Emergency Support provided by Conversational